Commit Graph

3670 Commits

Author SHA1 Message Date
Fred Gylys-Colwell
a4b30d900e Update OEMCrypto documentation to v16.3 am: aa5fc5afd0 am: 30ea7ee843
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11707216

Change-Id: Ie80d8d3aa4f0825ac68065ab38eeaba46169ca29
2020-06-04 22:00:27 +00:00
Fred Gylys-Colwell
30ea7ee843 Update OEMCrypto documentation to v16.3 am: aa5fc5afd0
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11707216

Change-Id: Ie462379eedd98d16a3ac33d9184147baf7a47988
2020-06-04 21:34:08 +00:00
Fred Gylys-Colwell
aa5fc5afd0 Update OEMCrypto documentation to v16.3
Merge from Widevine repo of http://go/wvgerrit/101243

Changed the version number to 16.3 and the date to June 1st.  The
delta document has a short description of CL's added since
April 6th.

Test: documentation changes only
Bug: 157030231
Change-Id: I93c2b09d6a24efc71ed77110b115cafbd6fde1c6
2020-06-03 06:14:35 -07:00
Fred Gylys-Colwell
ed6f7c1347 Update OEMCrypto unit tests to require ODK 16.3 am: 45681615b8 am: d599c74011
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677949

Change-Id: I53611ff17e99da2aa051b3222f3eb6ac8a248ca5
2020-06-02 22:01:57 +00:00
Fred Gylys-Colwell
b72520df48 Do not verify decrypt hash when no key selected am: 36968de671 am: 51992ab155
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677948

Change-Id: I2664ea17c562ae77c192abff4cd54328dc2867ee
2020-06-02 22:01:55 +00:00
Fred Gylys-Colwell
299d866412 Unit test for loading nonce-free offline license am: a615671f48 am: ed900f242b
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677947

Change-Id: I08a1dddc3bd787a4c8484373e1614a83cf79c67c
2020-06-02 22:01:53 +00:00
Fred Gylys-Colwell
0f63c0191d Check for null pointers in oemcrypto adapter am: 42eb79a3ff am: 7a4313483c
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677946

Change-Id: Ibdd1da583e249fc412e3a2c2d2a40835f7a77f65
2020-06-02 22:01:50 +00:00
Fred Gylys-Colwell
253eb191ea Update ODK Library to 16.3 am: 166b3e8403 am: 62802d8e10
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11699230

Change-Id: Ife7bba778cd3a2eca3da66898539e81faaee2051
2020-06-02 22:01:48 +00:00
Fred Gylys-Colwell
d2830141cc ODK: forward compatibility and nonce-free offline license support am: 8dc1d7a11d am: 5bb396fb72
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11688972

Change-Id: I92345d75991bfbe9f1214dd61350b0be90eac8fb
2020-06-02 22:01:46 +00:00
Fred Gylys-Colwell
d599c74011 Update OEMCrypto unit tests to require ODK 16.3 am: 45681615b8
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677949

Change-Id: Ic8c45cc7fce842f67777ab0a003a541fbae7f9fb
2020-06-02 21:49:26 +00:00
Fred Gylys-Colwell
51992ab155 Do not verify decrypt hash when no key selected am: 36968de671
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677948

Change-Id: I7f9acec222c2840720be3b36423b502582c2ee25
2020-06-02 21:49:24 +00:00
Fred Gylys-Colwell
ed900f242b Unit test for loading nonce-free offline license am: a615671f48
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677947

Change-Id: Ia129aba764568a853b6b89a7f35f902ef2068942
2020-06-02 21:49:22 +00:00
Fred Gylys-Colwell
7a4313483c Check for null pointers in oemcrypto adapter am: 42eb79a3ff
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677946

Change-Id: I01d29869ce9f1ce6c252066cbb8f9b4f5286a5ef
2020-06-02 21:49:21 +00:00
Fred Gylys-Colwell
62802d8e10 Update ODK Library to 16.3 am: 166b3e8403
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11699230

Change-Id: I4d951b808e21128d8dbe4e0fafe4fd24b4753124
2020-06-02 21:49:19 +00:00
Fred Gylys-Colwell
5bb396fb72 ODK: forward compatibility and nonce-free offline license support am: 8dc1d7a11d
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11688972

Change-Id: I61a70e52e875c017a706f1337d75405f19748dfa
2020-06-02 21:49:17 +00:00
Fred Gylys-Colwell
45681615b8 Update OEMCrypto unit tests to require ODK 16.3
Merge from Widevine repo of http://go/wvgerrit/101144

This CL updates the version string of the oemcrypto unit tests.

Test: unit tests on taimen and with reference oemcrypto v16.
Bug: 156789529
Change-Id: I504a32f0c3781870052b58d30312c58e090b145c
2020-06-02 09:36:38 -07:00
Fred Gylys-Colwell
36968de671 Do not verify decrypt hash when no key selected
Merge from Widevine repo of http://go/wvgerrit/101143

This CL removes the check for a decrypt hash error when CopyBuffer is
used instead of DecryptCenc because a key was not selected.

We also remove the attempt to check the decrypt hash when there are
multiple buffers, because that is not well defined behavior.

Bug: 155185867
Bug: 155192141
Test: ran unit tests on taimen and on v16  reference oemcrypto
Change-Id: I640e904e256f0913ca606bb5db891430b23f44a3
2020-06-02 08:30:34 -07:00
Fred Gylys-Colwell
a615671f48 Unit test for loading nonce-free offline license
Merge from Widevine repo of http://go/wvgerrit/100964

The previous nonce-free test used the same session to generate the
request as to load the license. However, it is a realistic use case to
have a new session used for loading the license.

The use case relates to a pre-loaded, shared license.

Test: Ran unit tests on taimen and on v16 ref implementation
Bug: 156853321
Change-Id: Ibc07744a16edcd3952d88d73660a75d0c3e8eeb8
2020-06-02 08:30:34 -07:00
Fred Gylys-Colwell
42eb79a3ff Check for null pointers in oemcrypto adapter
Merge from Widevine repo of http://go/wvgerrit/100963

Test: unit tests on taimen
Bug: 156967805
Change-Id: Ic8ba7461ffcaa371a5239dca84e8a3007b0df517
2020-06-02 08:30:34 -07:00
Fred Gylys-Colwell
166b3e8403 Update ODK Library to 16.3
Merge from Widevine repo of http://go/wvgerrit/101130

https://cr/314253512
ODK Library: roll version number to 16.3

https://cr/314253425
ODK Library: Accept release request as renewal request

To support forward compatibility, the v16 server should parse a
release request as a renewal request.

https://cr/314213725
ODK: Accept larger message sizes

The ODK should accept a message size that is larger than the
current
API requires. This allows for future API versions to append
fields to
a message that current the current license SDK will
ignore.

https://cr/313962712
ODK: accept messages with future API version numbers

This CL updates the ODK parse functions to accept future versions
of
the message. This will allow a v16 server to talk to a v17
device.

https://cr/313814938
ODK Version String

Add an automatically generated version string to odk_structs.h

Bug: 157030231
Bug: 157512150
Bug: 157822248
Bug: 157512322
Test: unit tests on taimen
Change-Id: I346f73c41bc984fe17856d3b61cd08cf92b39919
2020-06-02 08:30:34 -07:00
Fred Gylys-Colwell
8dc1d7a11d ODK: forward compatibility and nonce-free offline license support
Merge of http://go/wvgerrit/101183

This is a combination of multiple commits from google3:
* http://cl/313814938
  ODK Version String
* http://cl/313962712
  ODK: accept messages with future API version numbers
* http://cl/312219187
  Ignore hash if initial load of license, and the nonce not required
  (squashed into http://cl/313962712)

Test: OEMCryptoLicenseTest.LoadKeyWithNoRequest
Bug: 157822248
Bug: 156853321
Change-Id: I735d355241876bddb0c52440b0049efb72a4b26f
2020-06-01 19:13:32 +00:00
Cong Lin
f588353820 Merge "Fix implicit type conversion issue in ODK" into rvc-dev am: c34e2af181 am: 4f895ec8ec
Change-Id: I5c0a0f13e91c8f0182683a1deacc26ec3c43cb25
2020-05-30 03:31:05 +00:00
Cong Lin
4f895ec8ec Merge "Fix implicit type conversion issue in ODK" into rvc-dev am: c34e2af181
Change-Id: Idcdbf54471e640b79a9af2a924b139d1c5def0f5
2020-05-30 03:13:36 +00:00
Cong Lin
c34e2af181 Merge "Fix implicit type conversion issue in ODK" into rvc-dev 2020-05-30 02:56:31 +00:00
John Bruce
00792ac231 Merge "OEMCrypto Unit Test Fix: Do Not Derive Keys Immediately" into rvc-dev am: 729723b3d2 am: b349680d3f
Change-Id: I98a604729446a2e3ade173e4e473331034937dd0
2020-05-29 23:57:09 +00:00
John Bruce
b349680d3f Merge "OEMCrypto Unit Test Fix: Do Not Derive Keys Immediately" into rvc-dev am: 729723b3d2
Change-Id: I72df59375a2c05e47978abc37418ebc69f308bdc
2020-05-29 23:40:52 +00:00
John Bruce
729723b3d2 Merge "OEMCrypto Unit Test Fix: Do Not Derive Keys Immediately" into rvc-dev 2020-05-29 23:26:50 +00:00
Cong Lin
69e7e21882 Fix implicit type conversion issue in ODK
Merging CL
https://widevine-internal-review.googlesource.com/c/cdm/+/100924 Fix implicit type conversion issue in ODK

1. Implicit cast is reported as error when compiling ODK with Level3
2. Override odk_add_overflow_xxx function with the built in functions can cause
redefinition issue when compiling Level3; Let's use odk customized overflow functions.

Bug: b/157510403
Test: ODK unittests and CDM unittests passed.
Change-Id: Ieef8ccfb41d08007ec72f4a061f92968e55539cb
2020-05-29 10:07:08 -07:00
Alex Dale
de022fbb0a Rolled expected version number for R. am: dd70d63b76 am: 9329bf331c
Change-Id: Iae1998e8dd00a286c7d44bdb2093be860d97fb0d
2020-05-27 21:43:58 +00:00
Alex Dale
9329bf331c Rolled expected version number for R. am: dd70d63b76
Change-Id: Id8ddfa7e676b57eb0ab8261d166dd0cf8901a458
2020-05-27 21:24:39 +00:00
Alex Dale
dd70d63b76 Rolled expected version number for R.
[ Merge of http://go/wvgerrit/100403 ]

VersionNumberTest.VersionNumberChangeCanary was expecting a version
string of "R".  However, Android rvc branch is now far enough into
development to use a numbered version: version "11".

Bug: 156853733
Test: Android license request test
Change-Id: I63d33f742c849b672b2d2402ab8423fdf2450f6f
2020-05-27 17:27:46 +00:00
TreeHugger Robot
2308e673b2 Merge "The Entitlement key map was not being cleaned up." into rvc-dev am: bd8e573e0c am: 5bedd9c4ad
Change-Id: I2750207868d9444d83a627882d2c80d70767935a
2020-05-27 04:17:35 +00:00
TreeHugger Robot
55a8c8742a Merge "Start playback timer in integration tests" into rvc-dev am: 7534d9795b am: 208a088e8e
Change-Id: I78b3ed5fd43578fe750630d37ae774a871846d00
2020-05-27 04:17:20 +00:00
TreeHugger Robot
5bedd9c4ad Merge "The Entitlement key map was not being cleaned up." into rvc-dev am: bd8e573e0c
Change-Id: I992d0c2d9da83a6d192a019b1fca2c1b774bad92
2020-05-27 04:00:54 +00:00
TreeHugger Robot
208a088e8e Merge "Start playback timer in integration tests" into rvc-dev am: 7534d9795b
Change-Id: I9e2aadbdbfa628e5987df9ea780c85f8a64e7b86
2020-05-27 04:00:22 +00:00
TreeHugger Robot
bd8e573e0c Merge "The Entitlement key map was not being cleaned up." into rvc-dev 2020-05-27 03:43:48 +00:00
TreeHugger Robot
7534d9795b Merge "Start playback timer in integration tests" into rvc-dev 2020-05-27 03:43:30 +00:00
John W. Bruce
b8e13cec2d OEMCrypto Unit Test Fix: Do Not Derive Keys Immediately
(This is a merge of http://go/wvgerrit/100053.)

The OEMCrypto Unit Tests were previously deriving keys from the session
key as part of loading the test RSA key. This creates an invalid
function call order, since the OEMCrypto session will likely next be
used for actions that need to be done *before* deriving these keys. With
ODKiTEE, which is more strict about this order, all OEMCrypto tests were
failing.

Bug: 156655072
Test: OEMCrypto Unit Tests
Change-Id: Ibfede587da30cfff4a44a5e0687e4199b1430372
2020-05-27 01:19:48 +00:00
Fred Gylys-Colwell
88ef970b90 Update TimeRollbackPrevention unit test am: 75575418d0 am: 7cd14be01d
Change-Id: I3cb29d5429ba53accf3709303df2f59cd2ef86f7
2020-05-21 22:41:21 +00:00
Fred Gylys-Colwell
7cd14be01d Update TimeRollbackPrevention unit test am: 75575418d0
Change-Id: I3c6e54676e35581d0dfa255e230b7b4094f783bb
2020-05-21 22:29:14 +00:00
Fred Gylys-Colwell
75575418d0 Update TimeRollbackPrevention unit test
Merge from Widevine repo of http://go/wvgerrit/100110

The unit test TimeRollbackPrevention was broken for several
reasons. This CL reduces the test to its most basic functionality and
updates it to be compatible with a v16 oemcrypto.

This CL also adjusts the fake clock used by the buildbot to fake
sleeping backwards, so that the TimeRollbackPrevention test can also
be run on the buildbot.

Bug: 155773482
Bug: 79422351
Test: unit tests on buildbot, and on flame w/v16 modmock
Change-Id: I3027018b17b738281989e63ae6b0729757217d05
2020-05-20 13:47:28 -07:00
Fred Gylys-Colwell
e9dfca1219 The Entitlement key map was not being cleaned up.
Merge from Widevine repo of http://go/wvgerrit/100385

The map now contains unique_ptr instead of raw pointers
to ensure the memory is released.

Bug: 156780432 OEMCrypto Fuzzing: Fix OEMCrypto Memory Leak.
Test: oemcrypto reference code only
Change-Id: I78054f9207399f052d6e4bfdfa96824f6e050bac
2020-05-19 10:58:05 -07:00
Fred Gylys-Colwell
f6229788b0 Start playback timer in integration tests
Merge from Widevine repo of http://go/wvgerrit/100328

Several integration tests in WvCdmRequestLicenseRollbackTest had been
testing the duration of a license. However, the license they request
sets the playback duration and not the rental duration. That means the
timer we are checking does not start until the first playback. To fix
the tests, we simply add a decrypt operation right after the license
is received.

Test: integration tests w/v16 mod mock.
Bug: 156854660
Change-Id: Ie4f017c82db8aaf084ad050de3fcb7f51987c97e
2020-05-18 20:57:41 +00:00
Fred Gylys-Colwell
4c61d20ab1 License release does not use core message am: 760bf71908 am: 98ca694dcd
Change-Id: I08a2f7065da8b9f8dada01ff241a3585a91fa889
2020-05-14 22:05:19 +00:00
Fred Gylys-Colwell
98ca694dcd License release does not use core message am: 760bf71908
Change-Id: Ief5646322d0311f44d9b1040bda5200fdfe76cee
2020-05-14 21:45:15 +00:00
Fred Gylys-Colwell
760bf71908 License release does not use core message
Merge from Widevine repo of http://go/wvgerrit/99843

When processing a license release, the license is not loaded, so
OEMCrypto does not know nonce version information for the core
message. It assumes that all license releases are v15, so it is not an
error for a license release to not have a core message.

This CL also adds some extra logging to tests so that we can track
content id and the pssh. This CL also updates some of the test content
policies when running the local license server. The local license
server is only used for debugging problems.

Bug: 152648172 Integration test WvCdmEngineTest.LicenseRenewal failing
Bug: 156259697 License release does not need core message
Test: Unit tests with v16 mod mock
Change-Id: I04c896adadfb17877ce1115345d2419e0d2489f0
2020-05-13 21:22:43 +00:00
Alex Dale
616b9a8489 Update AddEntry() for usage table changes. am: 66e3d69300 am: 4c97abd57a
Change-Id: If59a035ccfde69a7467002dd722085a8d33dce69
2020-05-01 01:37:51 +00:00
Alex Dale
41ed193982 Added a few edge case unittests for InvalidateEntry(). am: 1e5e221909 am: 51f5315a62
Change-Id: I6380107c6373b1ed721e2dba3a9c51dd4af5c3e8
2020-05-01 01:37:49 +00:00
Alex Dale
9e0e33244c Reworked DeleteEntry() into InvalidateEntry(). am: da48461ba2 am: 44cc2500b3
Change-Id: I9c6ffa1e315173b47de86a946f42d7a6834b3000
2020-05-01 01:37:48 +00:00
Alex Dale
4c97abd57a Update AddEntry() for usage table changes. am: 66e3d69300
Change-Id: I83808cf7ebd0ed0f616766564864943fd152f7c3
2020-05-01 01:22:33 +00:00