Commit Graph

472 Commits

Author SHA1 Message Date
Fred Gylys-Colwell
bd2ac27684 Add backwards compatibility for OEMCrypto version 9
This is a merge of http://go/wvgerrit/13710

The oemcrypto adapter loads a version 8, 9 or 10 library and adds
backwards compatibility for version 8 or 9.

The only function whose signature has changed from v9 to v10 is
OEMCrypto_GetHDCPCability. This CL adds backwards compatibility for
that function.

Level 3 libraries are now:
level3/arm/libwvlevel3.a  Level3 Library Mar 17 2015 14:33:34
level3/x86/libwvlevel3.a  Level3 Library Mar 17 2015 14:30:23

b/19785099 L1 Widevine missing/broken on master (Fugu)
b/19789909 L1 Widevine missing on master (AAY75B)

Change-Id: I9bd716f5cdffaf1bfbdfcd8ed067af3f5d0ac9ba
2015-03-17 15:35:56 -07:00
KongQun Yang
9ee523a3cd Use requested_security_level_ in SupportsUsageTable
Also fix a build warning from an earlier CL.

Merged from Widevine CDM repo:
https://widevine-internal-review.googlesource.com/#/c/13669/

Change-Id: I87f161afac76e622869e5370e4f63476cb3ea97f
2015-03-16 14:59:13 -07:00
Fred Gylys-Colwell
12a986f808 Clean up some compiler warnings
This is a cherry pick of http://go/wvgerrit/13665

Added a few static casts and removed some unused parameters.

Change-Id: I4f2d1c26580a188de429defc8d1d22757f4c6917
2015-03-16 11:31:48 -07:00
KongQun Yang
76eca48f76 Merge "Defines placeholder for v10 APIs in oemcrypto_adapter_dynamic" 2015-03-13 01:31:49 +00:00
Fred Gylys-Colwell
d266f6010b Merge "Docment OEMCrypto changes from v9 to v10." 2015-03-12 21:11:27 +00:00
Fred Gylys-Colwell
c5e0b1bb05 Docment OEMCrypto changes from v9 to v10.
This is a merge of http://go/wvgerrit/13391 from the Widevine
repository.  Most of the changes were already merged, but I forgot to
"git add" this new file.

Change-Id: Ie6875dc7f0d5a81c04bc5247e7d5ae0d033f695b
2015-03-12 11:59:40 -07:00
KongQun Yang
6109cddb6f Defines placeholder for v10 APIs in oemcrypto_adapter_dynamic
Merged from Widevine CDM repo:
https://widevine-internal-review.googlesource.com/#/c/13610

Change-Id: Ibc0b8f372e752ec217b6bcfc01aee5dcbb5a5c99
2015-03-12 09:57:57 -07:00
KongQun Yang
7e5d016531 Reorder OEMCrypto definitions according to OEMCryptoCENC.h
Merged from Widevine CDM repo:
https://widevine-internal-review.googlesource.com/#/c/13510/

Change-Id: I0ce612a5ff2167704a87e3b3b650beaddf095c61
2015-03-12 09:21:40 -07:00
Fred Gylys-Colwell
68034dd900 OEMCrypto Version 10 API
This is a merge of http://go/wvgerrit/13391 from the Widevine repository.

This CL adds the OEMCrypto version 10 API to the header, and changes
just enough code so that code still compiles.  There are no unit tests
or implementation.

The level 3 libraries are just stubs so that tests will compile.
level3/arm/libwvlevel3.a  Level3 Library Mar 11 2015 13:33:21
level3/x86/libwvlevel3.a  Level3 Library Mar 11 2015 15:20:27

Change-Id: I41de753a2a60da29b756c3327341ece72069d8bb
2015-03-11 15:29:45 -07:00
John "Juce" Bruce
3398b1f8e7 Fix Repository Inconsistencies from LMP
Back when we were being proactive about merging LMP changes to master
in the Widevine repository, there were a few changes that got merged
in a different form than what got checked into the Android repository.
Mostly, this happened due to several large core changes that were
brought over to the master branch in multiple parts so as not to break
other teams using the Widevine repository. This patch brings the two
trees in sync.

Change-Id: I4e56a742686d73d1c6ace209684ce0e8542fd93f
2015-03-11 13:26:23 -07:00
John "Juce" Bruce
85daefb89d Restore Lost Formatting Fixes
Due to merges happening out-of-order, some formatting fixes that had
previously been merged from the Widevine repository were subsequently
wiped out by later merges.

Change-Id: I9f02d281d276b0f5b5f93b02a699144400db7520
2015-03-11 11:47:05 -07:00
John "Juce" Bruce
1bd405fc40 Merge Tweaks Originating in Merge Review Comments
This merges several small changes that were made in response to
comments that arose when LMP changes were merged into the Widevine
repository's master branch.

Change-Id: Ifec968af54dbc3288f24654ec0c6ca9b5962e1aa
2015-03-10 16:08:20 -07:00
Jeff Tinker
fb6d83398c Merge "Specify OEMCrypto API version in client capabilities"
Merges missing bits from the Widevine CDM repo for
https://widevine-internal-review.googlesource.com/#/c/10653

Most of this change was submitted into lmp-dev, but some tests
were ommitted.  This CL completes the missing changes from the
original widevine repo commit.

It also fixes some missing test installation commands.

b/15388863

Change-Id: Id59d885780134c6c6863477f8c49fb9d8ffe509d
2015-03-10 23:03:20 +00:00
John "Juce" Bruce
f17ef05ebf Fix Build
A nonexistant member field was being initialized.

Change-Id: I12b0917e70e163e71f09d5d4c03fd0bd59ad6002
2015-03-10 14:55:41 -07:00
Fred Gylys-Colwell
4e6fd5d2d8 Merge "Lock session list in CdmEngine OnTimerEvent (master)" 2015-03-10 20:48:13 +00:00
John Bruce
7c9d1224d2 Merge "Cleanup namespace ending comment" 2015-03-10 18:48:52 +00:00
KongQun Yang
c495694601 Merge "Merge MaxNumberOfSessions changes from CDM" 2015-03-10 00:31:05 +00:00
John "Juce" Bruce
da10592386 Merge "Drop google3 BUILD and OWNERS files for stringencoders." 2015-03-09 21:16:33 +00:00
John "Juce" Bruce
2667effe19 Drop google3 BUILD and OWNERS files for stringencoders.
This is a merge of http://go/wvgerrit/12740 from the Widevine CDM
repository.

Change-Id: I1dc40b464d6ea6edf9d62e0a04e18da99d0ae05e
2015-03-09 13:43:00 -07:00
KongQun Yang
0a564039ca Cleanup namespace ending comment
(This is a merge of http://go/wvgerrit/13400 from the Widevine CDM
repository.)

Replace "};  // namespace" with "}  // namespace":
ag -l --ignore-dir third_party "};  //" | \
while read f; do sed -r -i 's/\};  \/\//}  \/\//' $f ; done

Replace "// unnamed namespace" with "// namespace":
ag -l --ignore-dir third_party "unnamed namespace" | \
while read f; do sed -r -i 's/unnamed namespace/namespace/' $f ; done

Change-Id: I50ece9a127ce669f15cd532dfae1dd741338a075
2015-03-09 13:05:25 -07:00
KongQun Yang
23c95a1251 Merge MaxNumberOfSessions changes from CDM
Bug: 18377675

Implement new OEMCrypto function to get max number of sessions
https://widevine-internal-review.googlesource.com/#/c/12980/

Add oemcrypto static adapter for v9
https://widevine-internal-review.googlesource.com/#/c/13022/

Support new property to query MaxNumberOfSessions in CDM
https://widevine-internal-review.googlesource.com/#/c/13020/

Fix GetHdcpCapabilities incorrect return if not initialized
https://widevine-internal-review.googlesource.com/#/c/13210/

Change-Id: I02738c543cedd6e38d8826f845fec6cb2b1ede3c
2015-03-09 13:05:21 -07:00
KongQun Yang
ec0b7aae14 Merge "Exit on error when build and run Android unit tests" 2015-03-09 20:02:28 +00:00
KongQun Yang
891bd057f4 Merge "Fix race condition in CDM policy timer" 2015-03-09 19:04:04 +00:00
John "Juce" Bruce
978f530e8b Merge "Fix C++11 Narrowing Errors in WVDrmPlugin" 2015-03-09 19:03:12 +00:00
John "Juce" Bruce
625d8ed99a Merge "Generate New Obfuscated L3 Libraries for Android" 2015-03-09 19:02:22 +00:00
KongQun Yang
e3f668785e Exit on error when build and run Android unit tests
Merged from Widevine CDM repo:
https://widevine-internal-review.googlesource.com/#/c/13200/

Change-Id: Ifd785a9b30293746f0ae0262b37f03bc905a5e09
2015-03-06 16:57:01 -08:00
KongQun Yang
87f179307f Fix race condition in CDM policy timer
Merged from Widevine CDM repo:
https://widevine-internal-review.googlesource.com/#/c/13345/

Bug: 19592752
Change-Id: I73a215f9e67330caaced0110262448973aaae0a7
2015-03-06 16:41:35 -08:00
John "Juce" Bruce
854a47981a Generate New Obfuscated L3 Libraries for Android
(This is a merge of http://go/wvgerrit/13420 from the Widevine
repository.)

Generates new obfuscated libraries that include @kqyang's recent
changes to add OEMCrypto_GetMaxNumberOfSessions().

libwvdrmengine/level3/arm/libwvlevel3.a  Level3 Library Mar  6 2015 15:16:17
libwvdrmengine/level3/x86/libwvlevel3.a  Level3 Library Mar  6 2015 15:20:30

Change-Id: Ibea299a372617f98c0f24861c673f56a97845ad8
2015-03-06 16:14:18 -08:00
Fred Gylys-Colwell
6444332cd7 Lock session list in CdmEngine OnTimerEvent (master)
Cherry pick of
https://widevine-internal-review.googlesource.com/#/c/12935/

Change-Id: I029d36b2b6d092ae938fca2a7f6d893814c25a8a
2015-03-06 16:00:37 -08:00
John "Juce" Bruce
b331822558 Fix C++11 Narrowing Errors in WVDrmPlugin
(This contains a merge of http://go/wvgerrit/13382 from the Widevine
repository.)

This undoes the previous change to silence harmless C++11 narrowing
warnings and instead changes the code to no longer trigger them. The
fix was to delcare the type of our PSSH prefix constant to be uint8_t*
and then convert it to char* at usage-time rather than defining the
not-technically-char* data as a char* to start.

Change-Id: I68ff8c3ed0859096863b49c61cd60ae8461b5b29
2015-03-06 15:57:40 -08:00
John "Juce" Bruce
2c809b62ca Replace Uses of .compare() in Device Files
(This is a merge of http://go/wvgerrit/13390 from the Widevine CDM
repository.)

Change-Id: I5b3595d5ef52b670e5ba5019746f03d934ae9625
2015-03-06 12:06:47 -08:00
John "Juce" Bruce
a3b0d83d19 Run clang-format on Core
This copies over formatting changes from the Widevine CDM repository
that resulted from running clang-format with Google style on the
shared core/ directory. It also copies over some rewordings of log
messages that were made at the same time.

Aside from the changed log messages, this should not affect behavior
or functionality.

Change-Id: I69c57c188f7a79f30fa3517afeed17365929b6b6
2015-03-05 16:46:01 -08:00
John "Juce" Bruce
dff91b48c1 Merge "Generate Key Set IDs at Key Request Generation Time" 2015-03-05 20:05:13 +00:00
John "Juce" Bruce
f66fd68caa Merge "Make PSSH parser more robust." 2015-03-05 20:04:53 +00:00
John "Juce" Bruce
614abba6c2 Merge "Remove OEMCrypto v8 adapter" 2015-03-05 20:04:43 +00:00
John "Juce" Bruce
cba04ecddf Merge "Merge Widevine CDM-Side Core Changes" 2015-03-05 20:04:14 +00:00
John "Juce" Bruce
9340b3e869 Merge "Merge Widevine CDM-Side Test Changes" 2015-03-05 20:04:05 +00:00
John "Juce" Bruce
6d1ceb2e18 Merge "Rename CancelKeyRequest" 2015-03-05 20:03:40 +00:00
Chih-Hung Hsieh
991b0eded5 Merge "Ignore benign clang/llvm warnings." 2015-03-05 19:46:19 +00:00
KongQun Yang
dc0ecfea7c Merge "Update usage table when session is closed" 2015-03-05 02:11:04 +00:00
Chih-Hung Hsieh
a15abbe428 Ignore benign clang/llvm warnings.
Change-Id: Ibb8d60c6e238504dfe6a15425a65405bcf083358
2015-03-04 15:37:31 -08:00
John "Juce" Bruce
620b05dba0 Generate Key Set IDs at Key Request Generation Time
(This is a merge of http://go/wvgerrit/11285 from the Widevine CDM
repository.)

The key set ID is now available earlier, in order to support the CE
CDM 4.5 interface, which needs it at key request generation time, not
later at key response receipt time. It is still possible to receive
the key set ID at key response time, for Android's purposes. Either
API may now be passed a pointer to store the ID in, which may also be
left NULL if this is not needed.

Change-Id: I47e80ea4005c80282e36cfae92cb91142208f624
2015-03-04 15:02:01 -08:00
John "Juce" Bruce
4252a4b790 Make PSSH parser more robust.
(This is a merge of http://go/wvgerrit/12700 from the Widevine CDM
repository.)

Adds unit tests which cover several cases, including five which are
fixed in this patch:

* Find a Widevine PSSH after a PSSH with non-zero flags.
  (We have no control over another provider's abuse of the flags field,
   so we should not give up if such a PSSH appears before ours.)
* Find a Widevine PSSH after a v1 PSSH.
  (CENC now specifies a general v1 format.  We don't have to support it
   directly in the CDM, but we do have to skip it gracefully.)
* Find a Widevine PSSH after a non-PSSH box.
  (This would be unusual input, but we can easily recover from it.)
* Parse a PSSH box with a size field of 0, which means "the rest of the
  buffer."
  (This would be unusual input, too, but is technically allowed for any
   MP4 box.)
* Parse a v1 Widevine PSSH box, ignoring the new fields we don't need.

Bug: 19288007
Change-Id: I355df9e34ba4d53cc02e8501de965a0d193ee554
2015-03-04 15:00:57 -08:00
John "Juce" Bruce
d5fdd89071 Remove OEMCrypto v8 adapter
Android has never used the static adapters. This code is and has
always been dead in the Android codebase.

Change-Id: Ia6bb12a3fafb2c9b08349b0aca31fde45a58dada
2015-03-04 15:00:57 -08:00
John "Juce" Bruce
7639e0297f Merge Widevine CDM-Side Core Changes
This is a combined merge of several small changes to the core in the
Widevine CDM repository:

http://go/wvgerrit/10941
  Rename privacy_crypto to allow more variants.

http://go/wvgerrit/11530
  Add Missing Header to properties.h

http://go/wvgerrit/11531
  More Loosely Couple CdmEngine and CdmSession

Change-Id: I5b3f738ae495ab267da1440421dd7aa6f7860194
2015-03-04 13:25:54 -08:00
John "Juce" Bruce
33ddce2298 Merge Widevine CDM-Side Test Changes
This is a combined merge of several small test changes in the
Widevine CDM repository:

http://go/wvgerrit/11252
  Chain CreateSession() Helpers in CDM Session Unit Test

http://go/wvgerrit/10931
  Increase URLRequest timeouts and tolerate 502's.

http://go/wvgerrit/10695
  Remove dead CHROMIUM_BUILD code in engine test.

Change-Id: I75a6c9509880a20c85e54cbd2fcbf34b101ce70e
2015-03-04 12:39:06 -08:00
John "Juce" Bruce
2ae1f717f3 Rename CancelKeyRequest
(This is a merge of http://go/wvgerrit/10674 from the Widevine CDM
repository.)

Now that the CE CDM has CloseSession to handle closing sessions, we
can rename CancelKeyRequest on the CDM Engine & CDM Session to better
resemble its purpose and the name it is known by on Android.

Change-Id: I68d55b3be733579e5875ab33d8e94a62fe1f651d
2015-03-04 12:24:57 -08:00
KongQun Yang
a0b016ecf6 Update usage table when session is closed
Merge from the widevine CDM repo:
https://widevine-internal-review.googlesource.com/#/c/13310/

Bug: 19003762
Change-Id: Icaa1978c16437d36c99b0b0dabbbfa15fe469bc3
2015-03-03 17:43:52 +00:00
Fred Gylys-Colwell
87ea4f6ad4 Merge OEMCrypto changes from CDM to android repository
This is a merge of the following CLs:

Style clean up in oemcrypto/mock
https://widevine-internal-review.googlesource.com/#/c/10660

Split off default keybox.
https://widevine-internal-review.googlesource.com/#/c/10661/

Split off several properties from CryptoEngine.
https://widevine-internal-review.googlesource.com/#/c/10662/

Split off Keybox installation.
https://widevine-internal-review.googlesource.com/#/c/10680/

Wii-U build compatibility fixes.
https://widevine-internal-review.googlesource.com/#/c/10720/

Fix style issues in oemcrypto_logging_test.
https://widevine-internal-review.googlesource.com/#/c/10824/

Correct OEMCrypto error codes in the mock.
https://widevine-internal-review.googlesource.com/#/c/10821/

Enable logging during OEMCrypto unit tests.
https://widevine-internal-review.googlesource.com/#/c/10833/

Wait to create usage table path until needed.
https://widevine-internal-review.googlesource.com/#/c/10831/

Allow keybox installation to be unimplemented.
https://widevine-internal-review.googlesource.com/#/c/10850/

Minor clean up in the OEMCrypto header.
https://widevine-internal-review.googlesource.com/#/c/10921/

Add usage table device property to the mock oemcrypto
https://widevine-internal-review.googlesource.com/#/c/11092/

Change-Id: I02a818a620bcd4bd2291f1b3c0ac9308ae444319
2015-03-02 16:45:43 -08:00
Dan Albert
723d67c88f Remove Widevine CDM Dependency on STLPort
* Replace an stlport static assert with a C++11 static_assert.
 * Move some libraries that were being built with the NDK but
   statically included into platform code off the NDK.
 * Rebuild the obfuscated binaries to use the new STL.
 * Remove MIPS support temporarily due to an inability to generate
   obfuscated binaries for it. (To be fixed in b/19482469.)

Bug: 15193147
Change-Id: Icc166583b0c6af68550baf17ab8c33076a1179d3
2015-02-25 15:53:36 -08:00