Commit Graph

963 Commits

Author SHA1 Message Date
Jeff Tinker
93bf77ed6d Merge "Pack structure OEMCrypto_PST_Report" 2014-05-19 02:26:09 +00:00
Jeff Tinker
8aec8fe0bd Merge "Clean comments, namespace, and variable names" 2014-05-19 02:25:54 +00:00
Fred Gylys-Colwell
6bac5bc50d Clean comments, namespace, and variable names
This CL removes TODOs and email addresses from comments, unifies some
namespaces and cleans a few variable names.  It is a copy of multiple
CLs on the widevine side.

Change-Id: I1bb649096476a5001a56d746427399de6a88ff69
2014-05-16 15:53:12 -07:00
Fred Gylys-Colwell
4b83f96adf Pack structure OEMCrypto_PST_Report
This change is copied from the widevine CL:
https://widevine-internal-review.googlesource.com/#/c/10163/

Because the OEMCrypto_PST_Report is sent as a signed block to the
server, it needs to be a fixed, platform independent, size.  This CL
adds the packed attribute to the structure, which reduces its size
from 56 bytes to 47 bytes.

Change-Id: I2bae058b7eb0ac54ba9fad355f3d85ddc2cd4a58
2014-05-16 13:16:51 -07:00
Fred Gylys-Colwell
86e73deb4c Make test URLs more external
This CL changes several test URLs so that they do not reference
internal test servers.

Copied from many CLs on the widevine side.

Change-Id: Ia0e6d6faa19e1841bacaf3b90043aca3a12aaf8a
2014-05-16 13:14:22 -07:00
Fred Gylys-Colwell
1dfd204f22 Merge "Correct test vector in base64 test" 2014-05-16 19:25:08 +00:00
John "Juce" Bruce
1de68fb7c2 Merge "Remove Unused OEMCrypto Wrapper Methods" 2014-05-16 18:00:22 +00:00
John "Juce" Bruce
5a1bf27fd3 Upgrade Integration Test to Use Latest EME Spec
(This is a merge of
https://widevine-internal-review.googlesource.com/#/c/10140/
from the Widevine CDM repo.)

Updates the integration test from using "video/avc" to "cenc".

Bug: 13731637
Change-Id: Idfa0eabb6eb359a3d08008952bff495bea164cc7
2014-05-14 20:12:08 -07:00
John "Juce" Bruce
d6c98f1290 Remove Unused OEMCrypto Wrapper Methods
(This is a merge of
https://widevine-internal-review.googlesource.com/#/c/10141/
from the Widevine CDM repo.)

Over the course of revising the CAST support, the need for the
MediaDrm to call open and close session was removed. However, the
methods to do that were not. This removes the unused code.

Change-Id: I577f5314b6b20f36c308ac6753f1084ff3c707d9
2014-05-14 16:03:26 -07:00
Fred Gylys-Colwell
b0694bef17 Correct test vector in base64 test
This is a copy of
https://widevine-internal-review.googlesource.com/#/c/10050

The non-encoded base64 test vectors were modifed for the source
release, but the encoded test vectors were not updated to match.  This
CL updates the encoded test vectors to match.

Change-Id: I95ed881007e80da2d464f303eacf55cda38b586d
2014-05-07 13:06:30 -07:00
Fred Gylys-Colwell
7f9bff5ef5 Correct message size in call to OEMCrypto_RewrapDeviceRSAKey
This is a copy of https://widevine-internal-review.googlesource.com/#/c/10040/

The message size was wrong on several OEMCrypto_RewrapDeviceRSAKey
unit tests.  The function was supposed to fail in these tests.
However, a vendor found that they were failing with a different error
code because the buffer size was incorrect.  Now the function should
fail with the correct error code, and the test should pass for the
vendor.

Change-Id: Iea27b489f9bc386241d9add4f99ccb50560dfef6
2014-05-06 17:54:18 -07:00
Colin Cross
ad27688791 cryptoPlugin: only build libwvdecryptcommon for 32-bit
WVCryptoPlugin::decrypt stores a pointer in a uint32, so it cannot
be built for 64-bit until the api is changed.  Force it to only
build for 32-bit for now.

Also set -Wno-unused-parameter to silence unnecessary warnings
so I can see the build error.

Change-Id: I7cc13cc1d8a06b17468fab6f3b28886f9af02e24
2014-05-05 18:48:18 -07:00
John "Juce" Bruce
e924571282 Fix Crash When Renewing Licenses
The changes to support the newest EME spec did not account for an
empty init data.

(This is a merge of
https://widevine-internal-review.googlesource.com/#/c/9991/
from the Widevine CDM repo.)

Bug: 14410226
Change-Id: Ieb818751fa49e92068014d64767c563da2050431
2014-04-29 14:38:39 -07:00
Edwin Wong
e17c61edb1 am ebce9a58: am 7eb1a295: am 77fcf29b: am 35c8fc94: am 15d45e0c: am 8ca56c3f: am 01403eff: am c9c20cc6: am 62d84540: am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit 'ebce9a58de23c0883fb4f5d02bc4c699d697e87a':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 18:37:20 +00:00
Edwin Wong
ebce9a58de am 7eb1a295: am 77fcf29b: am 35c8fc94: am 15d45e0c: am 8ca56c3f: am 01403eff: am c9c20cc6: am 62d84540: am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit '7eb1a295106c98308ee57f9006f768d280b56578':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 18:30:20 +00:00
Edwin Wong
7eb1a29510 am 77fcf29b: am 35c8fc94: am 15d45e0c: am 8ca56c3f: am 01403eff: am c9c20cc6: am 62d84540: am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit '77fcf29b157da9c26d2a9cec14e01eca214d544f':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 18:26:19 +00:00
Edwin Wong
77fcf29b15 am 35c8fc94: am 15d45e0c: am 8ca56c3f: am 01403eff: am c9c20cc6: am 62d84540: am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit '35c8fc94708ea1a476014035b66d372051d509db':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 18:23:11 +00:00
Edwin Wong
35c8fc9470 am 15d45e0c: am 8ca56c3f: am 01403eff: am c9c20cc6: am 62d84540: am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit '15d45e0c77c6bd6f7f6931957b254b01339d69ea':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 18:13:18 +00:00
Edwin Wong
15d45e0c77 am 8ca56c3f: am 01403eff: am c9c20cc6: am 62d84540: am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit '8ca56c3f12f4aaa145288b0838b23fa6c2d7c6fb':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 18:11:02 +00:00
Edwin Wong
8ca56c3f12 am 01403eff: am c9c20cc6: am 62d84540: am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit '01403eff12109f2388d85971b5c17b67bd0c4925':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 18:08:40 +00:00
Edwin Wong
01403eff12 am c9c20cc6: am 62d84540: am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit 'c9c20cc64803bf885746b3c9ebe6b8f19bff9bfd':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 18:05:17 +00:00
Edwin Wong
c9c20cc648 am 62d84540: am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit '62d845404c0b5cfb5bb0e0e3f4fcd12970a5ba72':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 18:01:34 +00:00
Edwin Wong
62d845404c am 1825fda8: am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit '1825fda8fda9c5037cacc175f3d2ef1579fd7cb0':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 17:59:32 +00:00
Edwin Wong
1825fda8fd am 96449440: Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
* commit '964494409f2ce720557eb617ef44caf9ac10c05d':
  Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
2014-04-25 17:56:16 +00:00
Edwin Wong
964494409f Add Widevine Classic Security Integration Guide docs to /vendor/widevine/proprietary/docs.
To make the information readily accessible for vendors who have signed the IDA
and to better sync the doc to our code base.

Access to /vendor/widevine is controlled and vendors need to sign the IDA.

bug: 14228621
Change-Id: I3aaa2574d99c0123cb5e0fe0f093763a973aefaf
2014-04-24 15:32:29 -07:00
Fred Gylys-Colwell
1cd8195d88 OEMCrypto Usage Tables
This CL adds usage tables to the OEMCrypto reference implementation
(mock) and unit tests.

There is also a new parameter called oem_crypto_require_usage_tables
that determines if the usage tables are required or not.  This is set
to true for Android and false for all other platforms.

This CL is most of OEMCrypto version 9 updates.

This CL is a copy of
https://widevine-internal-review.googlesource.com/#/c/9720
https://widevine-internal-review.googlesource.com/#/c/9874
https://widevine-internal-review.googlesource.com/#/c/9873

Change-Id: I78c4f7651306f9f79ba2260c3e04fb1eca7e20e3
2014-04-24 11:40:30 -07:00
John "Juce" Bruce
951f08c2da Support Latest Version of EME Spec Init Data Specification
(This is a merge of
https://widevine-internal-review.googlesource.com/9711 from the
Widevine CDM repo.)

This change updates the CDM's handling of init data types, previously
known as MIME types, to comply with the latest version of the EME
spec.

Following this change, in addition to accepting the deprecated MIME
types "video/mp4", "audio/mp4", "video/webm", and "audio/webm", the
CDM will accept the new standard: Init data types "cenc" and "webm".

Furthermore, this removes the non-PSSH-parsing path from the CDM. All
platforms have unified on the CDM being responsible for parsing the
concatenated PSSH box list, as outlined in the latest EME spec.

As Android has shipped code that expects pre-unwrapped PSSH boxes and
must maintain backwards-compatibility, code has been inserted on that
platform to detect pre-unwrapped data and re-wrap it with a PSSH
header before sending it to the CDM.

There are some small changes to unit tests because of this change:

1) The CDM Engine unit test now no longer needs to unwrap the PSSH on
   any platforms when testing ISO-BMFF. It now pre-caches the
   unwrapped key ID for use when testing WebM.

2) Several substantially-similar unit tests in the Android code have
   been rolled into one test.

Bug: 13564917
Bug: 13570595
Bug: 9465346
Bug: 13570288
Change-Id: I7f27b16b8503f24a26746b5dce71fb61b6fd1bb2
2014-04-17 20:35:02 +00:00
Rahul Frias
de6f6f6324 Merge "Handle key expiry error on decryption" 2014-04-14 21:35:05 +00:00
Fred Gylys-Colwell
e95eebf326 Refactor OEMCrypto mock and its unit tests
This is a copy of the Widevine CL:
https://widevine-internal-review.googlesource.com/#/c/9708/

This CL refactors some of code in oemcrypto/mock and oemcrypto/test in
preparation for adding usage table code.

Change-Id: I7e58c8ecd6d92b3e177cb915733212fcad645485
2014-04-10 17:34:51 -07:00
Fred Gylys-Colwell
026a04701e Test Key Control Block with HDCP Version
This is a copy of the Widevine CL:
https://widevine-internal-review.googlesource.com/#/c/9480/

This change is part of OEMCrypto API version 9.

This CL adds verification that a key control block which requires a
specific version of HDCP can be loaded.  Also, if secure data path is
not set, it verifies that data is still decrypted.

This CL also adds test that verify DecryptCTR fails when the current
HDCP version is below that in the key control block.  The expected
error is OEMCrypto_ERROR_INSUFFICIENT_HDCP.  This error code is newly
introduced in this CL.

This is one attempt to clarify HDCP, as specified in b/13626021, and
is a slight modification from previous behavior for the mock and the
level 3 haystacked code.

This CL also tests the two valid verification codes "kctl"
and "kc09".

bug: 13626021
Change-Id: If380709d2306a3489470b29fb148a45b609b089d
2014-04-10 16:22:25 -07:00
Rahul Frias
9a59086d00 Handle key expiry error on decryption
OEMCrypto now returns OEMCrypto_ERROR_KEY_EXPIRED rather than
OEMCrypto_UNKNOWN_ERROR when the key has expired. This CL adds
a test to verify that CDM is handling this correctly.

[Merge of https://widevine-internal-review.googlesource.com/#/c/9730
from the Widevine cdm repo]

b/9205119

Change-Id: I6b13b43d71f7fa51531c309ffd3f93d3648f9b89
2014-04-10 12:46:14 -07:00
Jeff Tinker
45dc595f92 am d875310a: am d3e06ad1: am eafc65e7: resolved conflicts for merge of 65a35c7d to klp-dev
* commit 'd875310a7650a8606acbfc64e4315c05376b6881':
  Update DASH demo player for OEMs
2014-04-05 00:45:59 +00:00
Jeff Tinker
d875310a76 am d3e06ad1: am eafc65e7: resolved conflicts for merge of 65a35c7d to klp-dev
* commit 'd3e06ad1e5b58b4d81c5e465d753fc6e08fc8273':
  Update DASH demo player for OEMs
2014-04-05 00:36:55 +00:00
Jeff Tinker
d3e06ad1e5 am eafc65e7: resolved conflicts for merge of 65a35c7d to klp-dev
* commit 'eafc65e79459497a0890776b968e7ac64ab8197d':
  Update DASH demo player for OEMs
2014-04-05 00:31:28 +00:00
Jeff Tinker
eafc65e794 resolved conflicts for merge of 65a35c7d to klp-dev
Change-Id: If8f3ff6b3f638038da57fde85edee982f7ef8144
2014-04-04 15:48:47 -07:00
Jeff Tinker
65a35c7df6 Update DASH demo player for OEMs
OEMs testing Widevine/DASH playback have requested
additional test content.  This updated demo apk
provides it.

bug: 12789209
Change-Id: Idba85a1569bc59e43cfcb15b762d0d5da74c91aa
2014-04-04 12:09:53 -07:00
Jeff Tinker
05a83a8faa am f9b1a2e1: Merge "Add signature|system permission to MediaDrm signer APIs" into klp-modular-dev
* commit 'f9b1a2e1f1b989acc66d4969d11690f8d3407e25':
  Add signature|system permission to MediaDrm signer APIs
2014-04-03 02:11:53 +00:00
John "Juce" Bruce
31aa8eea04 resolved conflicts for merge of 7eea20df to master
Change-Id: Ibd8b16745d36b24041856f315fbb09a6c25cf4fb
2014-04-02 18:59:05 -07:00
Jeff Tinker
f9b1a2e1f1 Merge "Add signature|system permission to MediaDrm signer APIs" into klp-modular-dev 2014-04-03 01:30:44 +00:00
Jeff Tinker
aaf4427950 Add signature|system permission to MediaDrm signer APIs
Update test to require the system permission

Merge of https://widevine-internal-review.googlesource.com/#/c/9652
from the Widevine cdm repo.

Change-Id: I071e55f09f85c420e6778ebf170f5110cf39809e
related-to-bug: 12702350
2014-04-02 23:41:12 +00:00
John "Juce" Bruce
7eea20df86 Add Support for Audio MIME Types
The EME spec technically requires CDMs to treat audio/mp4 and
video/mp4 equivalently, as well as audio/webm and video/webm. We had
only been accepting video/mp4 and video/webm up until now.

This change also centralizes handling of init data types in the shared
CDM code instead of having it spread across multiple places in the
codebase.

(This is a merge of https://widevine-internal-review.googlesource.com/9532/
from the Widevine CDM repo.)

Bug: 13564917
Change-Id: Ib8bdfb2b003ffb00e8f0559561335abb3c5778b0
2014-04-02 15:39:12 -07:00
John "Juce" Bruce
46be6edcc3 am b920034e: Add Yet More Backwards-Compatibility
* commit 'b920034e3be73eb010a349115cf25ca2a4ef83a7':
  Add Yet More Backwards-Compatibility
2014-04-02 00:12:09 +00:00
Rahul Frias
1549f7b9bd am ef875d25: am 7e5c5c75: am cbcc609d: Update YT CP server URI to point to the UAT server
* commit 'ef875d25edf56d7f52d7b77d86b7576134635022':
  Update YT CP server URI to point to the UAT server
2014-04-02 00:03:23 +00:00
Jeff Tinker
965cedd5ee resolved conflicts for merge of 3db90f54 to master
Change-Id: Ie9e46292e003fefce9ca44a31cb338a0ecf51930
2014-04-01 16:57:14 -07:00
John "Juce" Bruce
b920034e3b Add Yet More Backwards-Compatibility
It turns out the array of things certain apps pass as the MIME type is
greater than we believed. To support this, we will treat anything that
is not a known type as video/mp4 to mimic old behavior.

(This is a merge of https://widevine-internal-review.googlesource.com/9636
from the Widevine CDM repo.)

Bug: 13750843
Change-Id: I4b7bbe7d266ade9b35c6c5beb21502bf0715b854
2014-04-01 16:01:27 -07:00
Rahul Frias
ef875d25ed am 7e5c5c75: am cbcc609d: Update YT CP server URI to point to the UAT server
* commit '7e5c5c75d6f3064ce76b64fa1f389ab24dbeddaf':
  Update YT CP server URI to point to the UAT server
2014-04-01 22:15:09 +00:00
Rahul Frias
7e5c5c75d6 am cbcc609d: Update YT CP server URI to point to the UAT server
* commit 'cbcc609d5b8488b33861a745bf73d3f134dbccad':
  Update YT CP server URI to point to the UAT server
2014-04-01 22:09:31 +00:00
Jeff Tinker
3db90f54c1 Support CAST V2 authentication
bug: 12702350

Squashed commit of these CLs from the widevine cdm repo:

Cast V2 cdm support
https://widevine-internal-review.googlesource.com/#/c/9190/

Add CASTv2 Support to DrmPlugin
https://widevine-internal-review.googlesource.com/#/c/9228/

Test for CastV2 authentication APIs
https://widevine-internal-review.googlesource.com/9550

Change-Id: I6d66bc1bbd653db5542c68687b30b441dd20617f
2014-04-01 14:26:27 -07:00
Rahul Frias
cbcc609d5b Update YT CP server URI to point to the UAT server
Privacy tests from request license were failing as the YTCP drm
server location had changed.

Also updates the MediaDrmAPI test to reference the UAT server

This affects OEMs doing Widevine integrations on KK devices.

Merge of https://widevine-internal-review.googlesource.com/#/c/9233/
from wv cdm git repository

b/13324394

Change-Id: I97152b2a79a9088303e5fc4a5c07a413e4c85e15
2014-04-01 01:36:49 +00:00
John "Juce" Bruce
c3444dc9e9 resolved conflicts for merge of f111bea1 to master
Change-Id: I7f95eba8d5fb1e9a20800b9c1ef7fcb813eff41c
2014-03-31 17:35:24 -07:00