Commit Graph

2721 Commits

Author SHA1 Message Date
Rahul Frias
67639f2a42 Merge "Correct an error reported when a license is restored and then released" into sc-dev am: d30c5043d1 am: 38209bedb6
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15150547

Change-Id: I280ee9296643f7f328fb99b4cb5dd42b6189a8fb
2021-07-01 19:36:29 +00:00
Rahul Frias
44cde1757a Merge "Correct an error reported when a license is restored and then released" into sc-dev am: d30c5043d1
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15150547

Change-Id: I6417a1091f4d69055c2ecbed6e79bcc61b80f109
2021-07-01 19:29:43 +00:00
Rahul Frias
151d0b15d3 Disable expiration for legacy DRM certificates
[ Merge of http://go/wvgerrit/128163 ]

In android S, we added a feature b/169740403 [Limited lifespan DRM
certificates with license preservation]

Due to uncertainties of when the provisioning service will
launch, we are disabling expiration for legacy DRM certificates.
If the feature does not launch in time, existing DRM certificates
will expire and be replaced. Offline licenses associated with these
expired DRM certificates will fail to load.

Expiration of legacy certificates will be reenabled at a later time.
The main portion of feature, the issuing of new DRM certificates with
expiration time will still be supported.

Bug: 192428783
Bug: 169740403
Test: WV unit/integration tests
Change-Id: I1d1184249848f215953a837f369528d3b74c9618
2021-07-01 19:24:02 +00:00
Rahul Frias
d30c5043d1 Merge "Correct an error reported when a license is restored and then released" into sc-dev 2021-07-01 19:17:21 +00:00
Alex Dale
bd36f43d35 Merge "PST and non PST can handle unlimited license durations." into sc-dev am: 1229aedcea am: 4ed10d691f am: ca0ce02872
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15159035

Change-Id: Iccbdf48ea02e7342675560f1a19f49ff228f41a5
2021-07-01 07:21:12 +00:00
Alex Dale
4ed10d691f Merge "PST and non PST can handle unlimited license durations." into sc-dev am: 1229aedcea
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15159035

Change-Id: I4c6493fd8a2abfdddcaa6b6b694122b814c27118
2021-07-01 06:57:30 +00:00
Alex Dale
1229aedcea Merge "PST and non PST can handle unlimited license durations." into sc-dev 2021-07-01 06:45:07 +00:00
Alex Dale
5a3a50262f Merge "Updated integration test to handle unlimited license durations." into sc-dev am: 16a0ab2309 am: 5e2297dc7e
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15136759

Change-Id: Ic6e44caa6530313f50f15048f8cc2d50bcc07e81
2021-07-01 06:02:33 +00:00
Alex Dale
da0d78bf0b Merge "Updated integration test to handle unlimited license durations." into sc-dev am: 16a0ab2309
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15136759

Change-Id: I975afd30a91155770f9e21e48db5184ef63440f4
2021-07-01 05:51:31 +00:00
Alex Dale
16a0ab2309 Merge "Updated integration test to handle unlimited license durations." into sc-dev 2021-07-01 05:35:29 +00:00
Fred Gylys-Colwell
1c82e33cb8 Merge "Cache security level" into sc-dev am: 47324cc6fe
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15085899

Change-Id: Ie95935d67d2959db0877f6425d83d0d23246e51a
2021-07-01 04:42:50 +00:00
TreeHugger Robot
a1dd61ba6d Merge "Add extra RSA private keys to unit tests" into sc-dev am: 853ab51cb3
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15136762

Change-Id: I6bf6290d1c8605536d47d502171fef3d790edd18
2021-07-01 04:42:45 +00:00
Fred Gylys-Colwell
2b66fc3475 Merge "Cache security level" into sc-dev am: 47324cc6fe am: 6d2598a291
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15085899

Change-Id: I1a562f26c3de4adf1216f8f1d7c0fc98df3d5bab
2021-06-30 21:43:34 +00:00
TreeHugger Robot
62b27c1b9c Merge "Add extra RSA private keys to unit tests" into sc-dev am: 853ab51cb3 am: 85f91e021a
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15136762

Change-Id: Icbd32dfdcb2178f2b0dc86ebb814c88a3c3239fe
2021-06-30 21:43:31 +00:00
Fred Gylys-Colwell
47324cc6fe Merge "Cache security level" into sc-dev 2021-06-30 21:35:36 +00:00
TreeHugger Robot
853ab51cb3 Merge "Add extra RSA private keys to unit tests" into sc-dev 2021-06-30 21:32:01 +00:00
TreeHugger Robot
fd01107b54 Merge "Allow delayed error code in generic crypto" into sc-dev am: 99c4d463d9 am: 6e6bdad32a
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15008617

Change-Id: Icdea1cd603a893c05e63088567cbabebeba9ee71
2021-06-30 21:24:26 +00:00
TreeHugger Robot
6d1898f20f Merge "Sync oemcrypto reference code" into sc-dev 2021-06-30 21:20:58 +00:00
TreeHugger Robot
0daff1c13d Merge "Allow delayed error code in generic crypto" into sc-dev am: 99c4d463d9
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15008617

Change-Id: I57414ecc7b7e99f4ce2714a96d4b550798ce8071
2021-06-30 21:15:47 +00:00
TreeHugger Robot
af0ac69fad Merge "Update OEMCrypto buffer offset tests" into sc-dev am: 41d7b74558 am: ae3815c1fa
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15055162

Change-Id: I2baacf116ca77a092953532ee6997cb55a9890ed
2021-06-30 21:11:21 +00:00
TreeHugger Robot
99c4d463d9 Merge "Allow delayed error code in generic crypto" into sc-dev 2021-06-30 21:06:17 +00:00
TreeHugger Robot
88c6500ba2 Merge "Update OEMCrypto buffer offset tests" into sc-dev am: 41d7b74558
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/15055162

Change-Id: I7f3f64bec9748f6045cc33b67b9f8c7dbe0ded15
2021-06-30 21:02:07 +00:00
TreeHugger Robot
41d7b74558 Merge "Update OEMCrypto buffer offset tests" into sc-dev 2021-06-30 20:49:57 +00:00
Rahul Frias
1c74895135 Merge "Address unit test failures" into sc-dev am: 5271d95ce4 am: 171096b9bb
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/14940264

Change-Id: I2dc400c613a289a51ddb546cd31a9b4aae4d589a
2021-06-30 19:57:09 +00:00
Rahul Frias
725f3d9e18 Merge "Address unit test failures" into sc-dev am: 5271d95ce4
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/14940264

Change-Id: Ic5924bf04b90398d41863f95f7a2d43b732d60f2
2021-06-30 19:42:13 +00:00
Rahul Frias
5271d95ce4 Merge "Address unit test failures" into sc-dev 2021-06-30 19:30:22 +00:00
Fred Gylys-Colwell
2d9bdfea58 Update OEMCrypto buffer offset tests
Merge from Widevine repo of http://go/wvgerrit/127524

Some unit tests used the response buffer size before the size had been
computed. This CL updates the tests.

Bug: 183440999
Bug: 184866351
Test: Ran unit tests on Prov 3.0 device.
Change-Id: I0b23dc7b0dafa9b9eab3cdbd7f29074898e4709b
2021-06-30 17:46:18 +00:00
Alex Dale
14bd15a08c PST and non PST can handle unlimited license durations.
[ Merge of http://go/wvgerrit/128183  ]

As was the case with WvCdmStreamingUsageReportTest.ReportTest, the
following tests were also updated to handle the case where "license
duration" is unlimited:
- WvCdmStreamingNoPstTest.UsageTest
- WvCdmStreamingPstTest.UsageTest
- WvCdmOfflineUsageReportTest.UsageTest

This is due to the new license duration model used for V16 licenses.

Bug: 163542905
Test: cdm_extended_duration_test
Change-Id: I24d3fc17fcf19129a19ed39a5c6c1ddd59ed073d
2021-06-30 10:41:07 -07:00
Rahul Frias
c882bd8230 Correct an error reported when a license is restored and then released
[ Merge of http://go/wvgerrit/128143 ]

Now reports LICENSE_STATE_ERROR rather than ERROR_DRM_GENERIC_PLUGIN
to make the cause of failure and suggested action more clear for app
developers. Also added an additional error log.

Bug: 190645000
Test: WV unit/integration tests
Change-Id: Ib23ca628c590316f90f497d8fdfbab24fd644d6f
2021-06-29 20:21:06 -07:00
TreeHugger Robot
f6211cf0ee Merge "Remove OEMCrypto reference" 2021-06-29 18:10:29 +00:00
Fred Gylys-Colwell
052016eb57 Add extra RSA private keys to unit tests
Merge from Widevine repo of http://go/wvgerrit/128047

There have been some failures with various RSA private keys. We add
them to the unit tests to make sure that OEMCrypto is able to load
these types of keys:
* Shorter: than normal private exponents. This seems to occur
  occasionally even with Euler totients. But it occurs more with
  Carmichael totients.
* 0-leading-byte: private exponents. This also occurs naturally for
  both Euler and Carmichael totients.
* Carmichael: vs Euler totients. I think we may already have tests for
  this. But just in case.

Bug: 190450051
Test: ran unit tests on bonito (and they passed!)
Change-Id: Id64ec738479eb8a0f77e253bace319cebe918d3f
2021-06-29 16:47:20 +00:00
Fred Gylys-Colwell
42188c007a Remove OEMCrypto reference
Merge from Widevine repo of http://go/wvgerrit/125203

The OEMCrypto reference is not used/built on Android.  It was being
published to aid OEMs in their development, but now the OPK library
is the implementation to be used by OEMs.

Bug: 187556088
Bug: 184866351
Test: Ran android/copy_files
Change-Id: Ie787bcf9c66a7605700c3dc29a8aa16406926ce3
2021-06-29 15:51:12 +00:00
Fred Gylys-Colwell
58c1ea1fa2 Cache security level
Merge from Widevine repo of http://go/wvgerrit/127743

There was some confusion about who owned the OEMCrypto security level
string in a multithreaded environment. This is solved by caching the
security level at initialization time.

Bug: 188706160
Test: ran unit tests on bonito
Change-Id: I93af3bb2e5a8bf190627ee568f752b5ea9543306
2021-06-29 05:42:41 +00:00
Alex Dale
a9e26bdc2b Updated integration test to handle unlimited license durations.
[ Merge of http://go/wvgerrit/128046 ]

Test case WvCdmStreamingUsageReportTest.WvCdmStreamingUsageReportTest
was failing comparing "license duration" values returned when querying
for key information for licenses with unlimited "rental duration".

This is due to the new license duration model used for V16 licenses.

From the Widevine MediaDrm doc for "LicenseDurationRemaining":

  For OEMCrypto v16+ (Android 11 and later), license duration is no
  longer being enforced. If rental duration is set to never expire,
  ”9223372036854775807” (LLONG_MAX) will be returned.

Similarly, the test has been updated for "playback duration" queries
of the same case.

Bug: 163542905
Test: cdm_extended_duration_test

Change-Id: I57e0e435631a151fac45c963d865de256a773644
2021-06-28 22:35:52 -07:00
Cong Lin
e98c9150df [RESTRICT AUTOMERGE] Fix L3 clock loading issue
This is a manual merge of ag/14930112 to address an auto merge conflict.

Changes in the obfuscated L3 library:

L3 loads clock info from an encrypted file during initialization. There
is a bug which calls the clock loading function before the decryption
key gets intialized in InitializeEngine(). Clock will be loaded with bad
decrypted data, which caused playback failure after system reboot.

The fix is to move clock loading after InitializeEngine() to ensure
decryption key is ready.

Bug: 191988567
Test: L3 unit tests;
Test: Manual playback tests on Netflix
      Download, play, reboot device, play again
Test: GTS tests https://android-build.googleplex.com/builds/tests/view?invocationId=I02800009363823424&testResultId=TR23225132004211909&redirect=http://sponge2/73efa8e8-951a-48bb-b2a9-0b09d5038ed3
Change-Id: I947775dc05eb000f1860a889510927861e1d169c
2021-06-25 18:46:21 +00:00
Cong Lin
49f23ff25b Fix L3 clock loading issue am: 61218ec6cf am: c16317b811
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/14930112

Change-Id: I42fdcdeef1e21ecf8cbeae8d67428de93b7757c5
2021-06-24 19:13:18 +00:00
Fred Gylys-Colwell
830a7acc48 Sync oemcrypto reference code
This is a merge from the Widevine repo of
http://go/wvgerrit/117311
Update backwards compatibility builds

http://go/wvgerrit/117423
Restrict maximum size of key id
To protect from out-of-memory found by fuzz testing.

http://go/wvgerrit/117683
Generation number should wrap

The master generation number should wrap around on overflow. This
means that we cannot use less than to check for a skew of 1.

http://go/wvgerrit/119232
Replace 0 with nullptr

Bug: 176234903
Bug: 184866351
Bug: 161243686
Test: ran unit tests (CL affects test code only)
Merged-In: Ie787bcf9c66a7605700c3dc29a8aa16406926ce3
Change-Id: I2b02a36a70a0920f31ffc00de102a23516d4b20e
2021-06-24 03:38:55 +00:00
Cong Lin
61218ec6cf Fix L3 clock loading issue
This is a merge of http://go/wvgerrit/126703
Only obfuscated libraries for Android are included in this CL.

L3 loads clock info from an encrypted file during initialization. There
is a bug which calls the clock loading function before the decryption
key gets intialized in InitializeEngine(). Clock will be loaded with bad
decrypted data, which caused playback failure after system reboot.

The fix is to move clock loading after InitializeEngine() to ensure
decryption key is ready.

Bug: 188873354
Bug: 188892717
Test: L3 unit tests;
Test: Manual playback tests on Netflix
      Download, play, reboot device, play again
Test: GTS tests https://android-build.googleplex.com/builds/tests/view?invocationId=I02800009363823424&testResultId=TR23225132004211909&redirect=http://sponge2/73efa8e8-951a-48bb-b2a9-0b09d5038ed3

Change-Id: Icf34aa3135fdcb77dea8104a90ce90f14e79e61c
2021-06-21 22:15:18 +00:00
Fred Gylys-Colwell
50a52710fa Allow delayed error code in generic crypto
Merge from Widevine repo of http://go/wvgerrit/127246

The unit tests WvGenericCryptoTest expected an error code to be
returned from SelectKey. But we allow an invalid key to be signaled
either at SelectKey or later when the decrypt operation occurs.

This CL just updates the tests.

Bug: 190745519
Test: ran tests on bonito
Change-Id: Ibacc92d6a6e708f2f104cb549b5845335f6c8cf5
2021-06-17 04:33:50 +00:00
Rahul Frias
37df759734 Update VersionNumberTest.VersionNumberChangeCanary am: 52d3c9f7c1 am: 90fd9b76ef
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/14899053

Change-Id: I8baa27feb3ca0b279db880930990f1b5767aba54
2021-06-15 18:19:01 +00:00
Rahul Frias
8e8cbfac39 Update VersionNumberTest.VersionNumberChangeCanary am: 52d3c9f7c1
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/14899053

Change-Id: I2fb9f742375cc7191aed1a7748126f36f4ff9b40
2021-06-15 18:07:47 +00:00
Rahul Frias
52d3c9f7c1 Update VersionNumberTest.VersionNumberChangeCanary
[ Merge of http://go/wvgerrit/126463 ]

The Version Number in the test is being updated to 12 to reflect
android OS version (Test only change)

Bug: 190467766
Test: WV request_license_test:
      requestVersionNumberTest.VersionNumberChangeCanary
Change-Id: Iad4bb3f178fb2dcb454027c1323e51fe34dfdfff
2021-06-15 03:01:55 -07:00
Rahul Frias
8e92fef410 Address unit test failures
[ Merge of http://go/wvgerrit/126744 ]

* EngineMetrics previous_oemcrypto_initialization_failure is set only
  on a previous failure. Removing it from the list of expectations
  as we cannot be certain that it will or will not be set unless we
  know the previous state of the device.

* Corrected client_capabililties expectations in
  CdmLicenseTest.PrepareKeyRequestValidation

* Correct error expected in
  - WVDrmPluginTest.RejectsAtscProvisioningRequests
  - WVDrmPluginTest.RejectsAtscUnprovisionDeviceRequests

* Correct expectations
  - CdmSessionTest.InitWithBuiltInCertificate,
  - CdmSessionTest.InitWithCertificate
  - CdmSessionTest.ReInitFail,
  - CdmSessionTest.InitFailCryptoError

Bug: 181693982
Test: WV unit/integration tests
Change-Id: I2f1e1c38604d768e0532b30d8551c77ea45e63f4
2021-06-14 08:04:40 +00:00
TreeHugger Robot
7bcf74adc9 Merge "L3 Load RSA private key from two parts [sc-dev]" into sc-v2-dev 2021-06-09 21:42:14 +00:00
TreeHugger Robot
1f1f35f56a Merge "[RESTRICT AUTOMERGE] L3 Load RSA key from two parts and re-generate build" into sc-dev 2021-06-09 21:33:04 +00:00
Cong Lin
3e25e65b4d Merge "[RESTRICT AUTOMERGE] L3 Load RSA key from two parts and re-generate build" 2021-06-09 20:32:13 +00:00
TreeHugger Robot
c8a8c2f876 Merge "Use drm@1.4 vintf fragments for drm@1.3" into sc-dev am: b791286119 am: ad70624aae
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/14842900

Change-Id: Ic0ccd418b539a2b1cec403cbf4c4587311cc0a19
2021-06-09 01:12:05 +00:00
TreeHugger Robot
44e24b148f Merge "Use drm@1.4 vintf fragments for drm@1.3" into sc-dev am: b791286119
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/14842900

Change-Id: I0fce9d92e4babe3756fd044f4b7e1f6f41a4eb66
2021-06-09 00:59:17 +00:00
Rahul Frias
4fff0ec502 Merge "Disallow restoring an offline license multiple times" into sc-dev am: d1d0fa431a am: 56c2bf4b75
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/14731758

Change-Id: I360cf14c69e35843870035706d4346c5becaf456
2021-06-09 00:42:39 +00:00
TreeHugger Robot
b791286119 Merge "Use drm@1.4 vintf fragments for drm@1.3" into sc-dev 2021-06-09 00:40:00 +00:00