(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
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
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
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
(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
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
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
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
OEMs testing Widevine/DASH playback have requested
additional test content. This updated demo apk
provides it.
bug: 12789209
Change-Id: Idba85a1569bc59e43cfcb15b762d0d5da74c91aa
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
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
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
Adds support for WebM to the CDM. Decryption remains untouched,
however the initialization data is passed differently for WebM.
The previous version of this change broke playback for certain
apps that were being allowed to pass invalid MIME types before
this change was made. This version maintains backwards-compatiblity
for these apps for now by rewriting their MIME types as "video/mp4".
Merge of https://widevine-internal-review.googlesource.com/9225/
and https://widevine-internal-review.googlesource.com/9611/ from
the Widevine cdm repo.
Bug: 10638562
Change-Id: Ib37e838d08363f07b34b3a2e79a3f80a1f43e9ad
This CL removes the test keybox from the reference
implementation. This keybox is only needed temporarily for Cast
testing with the test server before the real certificate server is
working.
Change-Id: Icb8b5587acc91fd9f3ec35f04f91734437f804e0
Adds support for WebM to the CDM. Decryption remains untouched,
however the initialization data is passed differently for WebM.
Merge of https://widevine-internal-review.googlesource.com/#/c/9225/
from the widevine cdm repo.
Bug: 10638562
Change-Id: I7b8cf4888fa408af77cee103f768f5a7c8ffdc7e
This change allows the security level, after it is forced from L1 to
L3, to be reset back to L1 using the string "L1" instead of only
allowing the reset string. (the empty string)
Merge of https://widevine-internal-review.googlesource.com/#/c/8928/
from the widevine cdm repo.
Bug: 10651521
Change-Id: I39797bb0a51b82db3543aec800a08ad36e11d661
This is a copy from the Widevine CDM repository:
https://widevine-internal-review.googlesource.com/#/c/9177/4
This CL modifies some unit tests to make sure that OEMCrypto returns
the correct error code when the key has expired. This behaviour is
required for OEMCrypto version 9.
It also updates the code for the reference implementation and the
Level 3 implementation.
This is half of b/9205119
The other half is for the CDM layer to respond to this error code.
bug: 9205119
Change-Id: I60f934886f4ecdd1ee04825dea289fda1c0a4303
This is a copy of the Widevine CDM change:
https://widevine-internal-review.googlesource.com/#/c/9337/
This CL provides some shim code that allows the Eureka
version 8 oemcrypto library to be linked and run with CDM.
As part of this change, obfuscated names in OEMCryptoCENC.h have been
changed.
Change-Id: I18a1f91f0dfde0006591f800f8f8a034f32d9004
From the Widevine CDM repository:
https://widevine-internal-review.googlesource.com/#/c/9182/
This CL adds a test to verify that at most 20 nonces may be created in
one second. This should prevent the replay attack that an
appplication could do by generating large quantities of nonces until
it finds a repeat.
I've also updated the Level 3 and reference implementations.
This feature is required for OEMCrypto version 9.
Change-Id: Ia86323133810fcbbd79d7bb27bd5a004d7c87314
From the Widevine CDM repository:
https://widevine-internal-review.googlesource.com/#/c/9183/
This adds unit tests for RSA signing with PKCS1 block type 1. It also
adds a reference implementation. This is part of OEMCrypto v9.
Change-Id: I2a40dbff65f6e09d75f16ae048499512f60c168d
From Widevine CL:
https://widevine-internal-review.googlesource.com/#/c/9184/
This is some shim code that will load either an OEMCrypto
version 8 or version 9 library. This should allow us
to test and run stable devices until all OEM's have
updated to version 9.
Android Level 3 library versions are:
level3/mips/libwvlevel3.a Level3 Library Feb 27 2014 18:18:34
level3/x86/libwvlevel3.a Level3 Library Feb 27 2014 18:22:14
level3/arm/libwvlevel3.a Level3 Library Feb 27 2014 12:31:29
Change-Id: I82911e3b4d9056cf3c3ab2b47194fe81ac2776d9
This change updates gMock to the new release, 1.7.0. This is
necessary for Android, as Android Master has updated their gTest to
1.7.0, and we must always use the matching version of gMock.
This CL cleans up some removed files that were missed in the
previous commit.
Change-Id: I67ab17425aea8d44fff765f79737b6eb23d16b52