Commit Graph

1395 Commits

Author SHA1 Message Date
Fred Gylys-Colwell
7858372033 Clarify HDCP Type (mnc-dev branch)
Merge from widevine repo of http://go/wvgerrit/15735

This is a documentation only change.

This CL updates the docs for OEMCrypto to clarify that HDCP v2.2
should be type 1.  The document version number is rolled to 10.3.

See original document for version history:
https://docs.google.com/document/d/1pHSJ2IKL0axmQz2gmDZ7olxPWb_ZcULaJrYwDZAeS7k/edit#

bug: 24098055
Change-Id: If2dd677cd824482ab18eeed03a335d7b82adbcbe
2015-09-23 17:16:14 -07:00
Rahul Frias
25a6185c84 Address releaseAllSecureStops crash
[ Merge of http://go/wvgerrit/15474 ]

Changes to releaseAllSecureStops made use of a session that was
initialized only if getSecureStops had been previously called. If it was not,
accessing the session resulted in a segfault. This was uncovered by a change
in how the Netflix app invoked mediaDrm.

b/23498809

Change-Id: Ib426ae1830c3a42c5e0849f1b6e8bbfe0d2c74ff
2015-08-25 10:40:12 -07:00
Jeff Tinker
6a7d526def am c48fedc1: (-s ours) am af90b037: am 1827f14b: am c1447241: (-s ours) am 693f0813: am 87922237: DO NOT MERGE Part of fix for libmedia OOB write anywhere
* commit 'c48fedc14cb0a47bc99db89faf9b875525cd5fab':
  DO NOT MERGE Part of fix for libmedia OOB write anywhere
2015-08-21 17:01:59 +00:00
Jeff Tinker
c48fedc14c am af90b037: am 1827f14b: am c1447241: (-s ours) am 693f0813: am 87922237: DO NOT MERGE Part of fix for libmedia OOB write anywhere
* commit 'af90b037a4baa6e12ee2399c85c7e3d4b592498e':
  DO NOT MERGE Part of fix for libmedia OOB write anywhere
2015-08-21 16:55:19 +00:00
Jeff Tinker
af90b037a4 am 1827f14b: am c1447241: (-s ours) am 693f0813: am 87922237: DO NOT MERGE Part of fix for libmedia OOB write anywhere
* commit '1827f14b689c909973d8e859c8a7a00db7044bd7':
  DO NOT MERGE Part of fix for libmedia OOB write anywhere
2015-08-21 16:40:47 +00:00
Jeff Tinker
1827f14b68 am c1447241: (-s ours) am 693f0813: am 87922237: DO NOT MERGE Part of fix for libmedia OOB write anywhere
* commit 'c14472413260a6b233282a6ff3acb58b6571ab5c':
  DO NOT MERGE Part of fix for libmedia OOB write anywhere
2015-08-21 16:27:34 +00:00
Jeff Tinker
6bf90ce0ae am cee546e5: (-s ours) am bcf3a11f: am e5d4a0be: DO NOT MERGE Part of fix for libmedia OOB write anywhere
* commit 'cee546e501a3e2c0591f259bb25a114130d58eb0':
  DO NOT MERGE Part of fix for libmedia OOB write anywhere
2015-08-21 15:58:06 +00:00
Jeff Tinker
cee546e501 am bcf3a11f: am e5d4a0be: DO NOT MERGE Part of fix for libmedia OOB write anywhere
* commit 'bcf3a11f0fe87ef7b56c374ed89b91ed8a17f44b':
  DO NOT MERGE Part of fix for libmedia OOB write anywhere
2015-08-21 15:46:33 +00:00
Jeff Tinker
c144724132 am 693f0813: am 87922237: DO NOT MERGE Part of fix for libmedia OOB write anywhere
* commit '693f0813814b10bfd23bea578fa258255477b207':
  DO NOT MERGE Part of fix for libmedia OOB write anywhere
2015-08-21 15:36:22 +00:00
Jeff Tinker
bcf3a11f0f am e5d4a0be: DO NOT MERGE Part of fix for libmedia OOB write anywhere
* commit 'e5d4a0be30bac8fdba7194841084dcf61be6e8a2':
  DO NOT MERGE Part of fix for libmedia OOB write anywhere
2015-08-21 15:34:51 +00:00
Jeff Tinker
693f081381 am 87922237: DO NOT MERGE Part of fix for libmedia OOB write anywhere
* commit '87922237de893b92c7b4d252999dd91d04470bd0':
  DO NOT MERGE Part of fix for libmedia OOB write anywhere
2015-08-21 15:28:57 +00:00
Jeff Tinker
e5d4a0be30 DO NOT MERGE Part of fix for libmedia OOB write anywhere
Prevent usage of client provided address on
non-secure devices spoofed as being secure.

b/23223325

merge of go/wvgerrit/15420 from widevine repo

Change-Id: I1d4f3a652b3d5e78fca508f92005cfa8df5ec6db
2015-08-20 21:56:50 +00:00
Jeff Tinker
87922237de DO NOT MERGE Part of fix for libmedia OOB write anywhere
Prevent usage of client provided address on
non-secure devices spoofed as being secure.

b/23223325

merge of go/wvgerrit/15420 from widevine repo

Change-Id: I1d4f3a652b3d5e78fca508f92005cfa8df5ec6db
2015-08-20 14:49:43 -07:00
John Bruce
0e1839ac4d Merge "Do Not Clean Up Licenses As Aggressively" into mnc-dev 2015-08-20 21:21:43 +00:00
John "Juce" Bruce
1d4339d0df Do Not Clean Up Licenses As Aggressively
(This is a merge of http://go/wvgerrit/15430)

Previously, after provisioning, any existing offline licenses would be
deleted, as they were inevitably tied to the certificate that was just
replaced. However, due to the way per-origin provisioning works on
Android, this is no longer a safe assumption. Licenses from different
origins are all stored together, so this behavior would delete all
offline licenses across all origins every time any origin is
provisioned. And it is not possible to delete only the licenses for
specific origins without changing how licenses are stored. It is too
late to change how licenses are stored in Android M, so we need to
stop proactively cleaning up licenses in this edge case for now. Once
b/23354606 is resolved, we can reinstate this clean-up and properly
only clean up the licenses associated with the origin that was just
provisioned.

Bug: 23324167
Change-Id: Ic21db8c21bdb4243266cd49020ed52287eb21d9a
2015-08-19 21:21:44 +00:00
Jeff Tinker
1319c43361 Part of fix for libmedia OOB write anywhere
Prevent usage of client provided address on
non-secure devices spoofed as being secure.

b/23223325

merge of go/wvgerrit/15420 from widevine repo

Change-Id: I1d4f3a652b3d5e78fca508f92005cfa8df5ec6db
2015-08-17 17:56:27 -07:00
Fred Gylys-Colwell
9a714edc6f Merge "Fix RSA Key Padding in OEMCrypto Unit Tests" into mnc-dev 2015-08-14 22:01:06 +00:00
Fred Gylys-Colwell
631d3e7a4c Relax test on forbidden signing [DO NOT MERGE]
Copy from widevine repo of http://go/wvgerrit/15390

Because some devices are failing oemcrypto unit tests related to
signing schemes that they do not support, we are relaxing the
requirement that they return the correct error code.

We are still requiring that the device does NOT sign with a forbidden
scheme.  However, it is OK if they do not return an error code from
OEMCrypto_GenerateRSASignature.   They will be required to return the
correct error code in the next release.

bug: 21668896
bug: 21708882

Change-Id: I1b8a410909b364d0086cba38eadca11aceaac5f6
2015-08-11 17:05:20 -07:00
Fred Gylys-Colwell
29e08f2166 Fix RSA Key Padding in OEMCrypto Unit Tests
Merge from widevine of http://go/wvgerrit/15371

incorrectly have leading 0x00 bytes added to all integers.  This
leading 0 should only be added to integers that had a leading byte
larger than 0x80 because those would be parsed as negative numbers.

bug: 23105200
Change-Id: I1dd01cc2b83a807bbdb78c079c6ce4e01d41f616
2015-08-11 13:52:50 -07:00
Rahul Frias
496bfc87b3 Correct android release version number in tests
[ Merge of http://go/wv/15293 ]

b/22916797

Change-Id: I120bae5e656c6d766f8ab7a21d578f17ff22d37a
2015-08-04 14:59:08 -07:00
Rahul Frias
bf10061929 Merge "Verification of client identification in Secure Stop messages" into mnc-dev 2015-07-13 18:45:18 +00:00
Jeff Tinker
47014df2e8 Return specific error code when decrypting on invalid session
bug: 22235465
Change-Id: I7b4d47d86d35270291ced02112a96800ba03ed1a
2015-07-07 08:55:22 -07:00
Rahul Frias
12ccd847cf Verification of client identification in Secure Stop messages
[ Merge of http://go/wvgerrit/14993 ]

b/22047007

Change-Id: I8f3de72f0746fad4a2382a826cb301408398a4c4
2015-07-06 15:23:24 -07:00
Fred Gylys-Colwell
e280ba6c41 Merge "Add Short Key ID Test" into mnc-dev 2015-07-01 22:50:10 +00:00
Fred Gylys-Colwell
4b3c02267a Add Short Key ID Test
Merge from widevine repo of http://go/wvgerrit/14970

Even if devices cannot handle key ids with different lengths in the
same license, they should still handle keys with a shorter key id.

This is a partial fix for:
bug: 21935358

Change-Id: Ibc84f0b5d7d9bc5d24a2081f0581a2b256e51f44
2015-07-01 13:21:21 -07:00
Kyle Alexander
86adf4a25c Add secure VP9 content to GTS content list.
ExoPlayerDemo build is based on the demo-debug.apk built from:
google3/third_party/java_src/android_libs/exoplayer

Supporting cl in google3: cl/97176187

Bug: 19571315
Change-Id: I611e9e5f363ecfeb66e4813c1f6939abbf855d09
2015-07-01 10:02:49 -07:00
Rahul Frias
460d24b135 Merge "Return Client Identification information in Secure Stop" into mnc-dev 2015-06-29 22:59:47 +00:00
Rahul Frias
6e2cc1a3ed Avoid multiple deletions of a usage entry
[ Merge of http://go/wvgerrit/14900 ]

When releasing a license, usage entries were being released twice with
both OEMCrypto_DeleteUsageEntry and OEMCrypto_ForceDeleteUsageEntry being
called. The second call would always fail because the usage information had
already been released. The CdmSession::DeleteLicense methods will now only
handles deletion of license metadata and leave deletion of usage entries to
the CdmLicense class.
b/22097805

Change-Id: Ic55764d5357043d136e7d88583f709a4ceea3e64
2015-06-29 14:47:24 -07:00
Rahul Frias
d220d41425 Return Client Identification information in Secure Stop
[ Merge of http://go/wvgerrit/14920 ]

The renew_with_client_id field was not being correctly set when licenses
were being restored for usage reporting.

b/22047007

Change-Id: Ib769431b1e49bb498f53d8153a970b6c0a2776d2
2015-06-29 14:06:17 -07:00
Chad Jones
53d9ade2ef Merge "Revert "Add XtsMediaTestCases.apk to google-tests.zip"" into mnc-dev 2015-06-26 15:34:45 +00:00
Chad Jones
c72407657a Revert "Add XtsMediaTestCases.apk to google-tests.zip"
This reverts commit fe71d17236.

Change-Id: I8119b307b7fa4dd0a9971e37c6c004de10400233
2015-06-26 15:33:56 +00:00
Kyle Alexander
7c1c5f77cc Merge "Add XtsMediaTestCases.apk to google-tests.zip" into mnc-dev 2015-06-25 21:52:57 +00:00
Kyle Alexander
fe71d17236 Add XtsMediaTestCases.apk to google-tests.zip
Need to add our Xts Media tests to the test package, so that we can
execute those tests with our nightly regression.

Bug: 22094009
Change-Id: I7e7ed8bf5f6edb905832495bea6347f97b6c5894
2015-06-25 12:22:36 -07:00
Rahul Frias
57eb7cb6ba Merge "Add unit tests for offline licenses without session usage" into mnc-dev 2015-06-25 06:40:21 +00:00
Fred Gylys-Colwell
666031026c Make MaxSessionsOpenCloseAPI10 More Lenient
Merge from widevine repo of http://go/wvgerrit/14870

OEMCrypto_GetMaxNumberOfSessions is not required to return a hard
limit for the number of sessions.  This CL adjusts the test to verify
we can open within 5% of the maximum number of sessions.

bug: 22029687
Change-Id: I6e72e39338cead8d547cdb194a32fb7e7dc53037
2015-06-24 17:49:06 -07:00
Rahul Frias
f5f2e826f2 Add unit tests for offline licenses without session usage
[ Merge of http://go/wvgerrit/14824 ]

OEMCrypto v9 added support for secure usage reporting with the help of
a session usage table. This was enabled through the replay control bits
in the key control block. It was expected that streaming licenses
would enable the nonce required bit, while offline licenses would
enable session usage table entry flag. There are certain cases
where content providers would prefer not to enable the flag for offline
licenses and this test verifies that this scenario works.

b/17514500

Change-Id: Icd1bea8cec2fd52be2be249424891ce1755d5f25
2015-06-22 15:38:33 -07:00
John "Juce" Bruce
9fcaf2c6ec Merge "Update Widevine Classic to 4.5.0.10139" into mnc-dev 2015-06-22 19:10:57 +00:00
Rahul Frias
9aca14e4fe Merge "Allow interspersed provisioning attempts to succeed." into mnc-dev 2015-06-20 01:06:01 +00:00
John "Juce" Bruce
256dd1a5b4 Merge "Re-Add MIPS to Android CDM Build" into mnc-dev 2015-06-20 00:33:01 +00:00
John "Juce" Bruce
da8e2beb28 Merge "Do Not Use GNU-Style Hashing on MIPS" into mnc-dev 2015-06-20 00:31:50 +00:00
John "Juce" Bruce
64d9be5615 Fix OEMCrypto Tests
(This is a merge of http://go/wvgerrit/14810)

By making this constant unsigned, all calculations in EXPECT_ALMOST
were cast to unsigned, leading to underflow problems when it was
subtracted from zero.

Change-Id: Iefc4e30604c45fec8b203375074b26fb12ec385f
2015-06-19 17:08:56 -07:00
Rahul Frias
a1895e7e2e Allow interspersed provisioning attempts to succeed.
merge of http://go/wvgerrit/14807 from the widevine repo.

The mediaDrm API only allows for a single provisioning attempt at a time.
If concurrent provisioning attempts occur, resources are released from
all but the last request, in order to allow at least that one to be successful.

Any provisioning responses received before one from the last request will
be rejected. A side-effect was that all provisioning resources would
then be released. This caused a provisioning response from the last attempt
to be rejected as well. This CL corrects this behavior and releases resources
only if a provisioning attempt is successful.

The side-effect is that, if the response to the last request is not received
or failure occurs while processing, a crypto session may be held until the
next provisioning attempt.

In other cases of concurrency, provisioning responses to requests other than
the last which are received after the last response will be declared successful.

b/21879484

Change-Id: I3a840ceda1a16ee6adb40c2dbca6c4adf3da12c3
2015-06-19 23:40:05 +00:00
John "Juce" Bruce
8443abc555 Re-Add MIPS to Android CDM Build
(This is a merge of http://go/wvgerrit/14795)

This change restores the ability to build the Widevine CDM for Android
for MIPS devices. It restores the precompiled binaries for MIPS and
re-adds MIPS to all makefiles.

This change includes a new build of the obfuscated binaries for
MIPS32r1 that were built using a MIPS device on the emulator.

level3/mips/libwvlevel3.a  Level3 Library Jun 19 2015 12:32:49

Bug: 19482469
Change-Id: Ifa1c299a5751f3772c42289d8333a2b8cec51f69
2015-06-19 16:34:08 -07:00
John "Juce" Bruce
123c469d3e Do Not Use GNU-Style Hashing on MIPS
(This is a merge of http://go/wvgerrit/14801)

The MIPS compiler does not support GNU hashing, which means this
compiler option needs to be excluded.

Bug: 19482469
Change-Id: I913f666a39eb535a33ebfbc49e5e7531115db5d4
2015-06-19 16:33:11 -07:00
John "Juce" Bruce
303a809cf4 Update Widevine Classic to 4.5.0.10139
This restores the MIPS builds of Widevine Classic. All targets are
also built against their respective mini-emulator targets instead of a
specific device, now.

Contains "Use Local libopenssl"
https://widevine-internal-review.googlesource.com/#/c/14606/

Contains "Fix MIPS Build"
https://widevine-internal-review.googlesource.com/#/c/14701/

Contains "Move Classic ARM and x86 Builds to Emulator By Default"
https://widevine-internal-review.googlesource.com/#/c/14741/

Contains "Re-Add MIPS to Android Build Script"
https://widevine-internal-review.googlesource.com/#/c/14746/

Bug: 19200196
Change-Id: Ib2366543746a688dc7b967dab78547b59c0e6315
2015-06-19 16:02:38 -07:00
Fred Gylys-Colwell
20b07afad9 Merge "Disable Flaky Key Id Length Tests" into mnc-dev 2015-06-19 22:27:26 +00:00
Fred Gylys-Colwell
592f8ad6db Disable Flaky Key Id Length Tests
Merge from widevine directory of http://go/wvgerrit/14784

These tests are not passing on multiple devices so I will disable them
until I am sure they are giving a clear signal.

bug: 21935358
Change-Id: I1e0cf01e64ea50b02d61d4b8334c0efb55e47d35
2015-06-19 13:29:52 -07:00
Rahul Frias
dcc5cc1ee1 Merge "Address compiler warning" into mnc-dev 2015-06-19 19:40:32 +00:00
John "Juce" Bruce
3efe87583d Merge "Be More Forgiving in EXPECT_ALMOST()" into mnc-dev 2015-06-19 18:20:30 +00:00
John "Juce" Bruce
b0cfa834f1 Merge "Fail Test if LoadOfflineLicense() Helper Fails" into mnc-dev 2015-06-19 18:17:55 +00:00