Commit Graph

3791 Commits

Author SHA1 Message Date
Alex Dale
8453477daa Merge "Test CDM sessions prevent multiple usage entries." into rvc-dev am: c628c5aca2 am: 62462f4ec5
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11925460

Change-Id: I46c0b2e57cedfdac19b622c9191e604c05301eeb
2020-06-25 19:50:16 +00:00
Alex Dale
52901002a1 Merge "Test CDM sessions prevent multiple usage entries." into rvc-dev am: c628c5aca2 am: 3adda0dfe1
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11925460

Change-Id: I2c3237138f100970ab62dddb377122a980a211f1
2020-06-25 19:50:03 +00:00
Alex Dale
3adda0dfe1 Merge "Test CDM sessions prevent multiple usage entries." into rvc-dev am: c628c5aca2
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11925460

Change-Id: Ia63d263ae89bc14836704f1dc2d95f5b06590754
2020-06-25 19:39:21 +00:00
Alex Dale
62462f4ec5 Merge "Test CDM sessions prevent multiple usage entries." into rvc-dev am: c628c5aca2
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11925460

Change-Id: I9d6813c4a20dbc679c1526f73dc1be5593d2fee5
2020-06-25 19:38:17 +00:00
Alex Dale
c628c5aca2 Merge "Test CDM sessions prevent multiple usage entries." into rvc-dev 2020-06-25 19:25:18 +00:00
Rahul Frias
999dabbc6e Merge "Handle SPOID calculation for L3" into rvc-dev am: 25d1646138 am: 652258d70e
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11736137

Change-Id: I6d182f166720bf8a925f6182d03f8ca1150f7ec2
2020-06-22 18:21:54 +00:00
Rahul Frias
61f64a00c6 Merge "Handle SPOID calculation for L3" into rvc-dev am: 25d1646138 am: dffadd204c
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11736137

Change-Id: I86a70f3bd0c351932270bfd985fcce6461a1bdbe
2020-06-22 18:21:18 +00:00
Rahul Frias
dffadd204c Merge "Handle SPOID calculation for L3" into rvc-dev am: 25d1646138
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11736137

Change-Id: Ia4c431617789fbbb5f973f076b29408df2b2a2bc
2020-06-22 18:14:28 +00:00
Rahul Frias
652258d70e Merge "Handle SPOID calculation for L3" into rvc-dev am: 25d1646138
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11736137

Change-Id: Ifb2d04b609a00905c5c42ee629e83674822b64cb
2020-06-22 18:14:27 +00:00
Rahul Frias
25d1646138 Merge "Handle SPOID calculation for L3" into rvc-dev 2020-06-22 18:04:18 +00:00
Alex Dale
0aaf1df125 Test CDM sessions prevent multiple usage entries.
[ Merge of http://go/wvgerrit/102068 ]

CDM sessions should not be able to load multiple usage entries.
OEMCrypto already prevents multiple entries from being loaded by the
same OEMCrypto session; however, restoring a key typically creates a
new OEMCrypto session, which should not be allowed twice within the
same CDM session.

This test verifies that CDM returns an error if restore key is called
multiple times within the same session.

Bug: 136143733
Test: Android integration test
Change-Id: I594c91250217fd958837328162f909bc931d373f
2020-06-19 20:40:54 -07:00
Rahul Frias
7e689a1828 Handle SPOID calculation for L3
[ Merge of http://go/wvgerrit/101443 ]

The WVDrmPlugin has a single CdmIdentifier. The CdmIdentifier contains
a SPOID that is calculated from the device ID (keybox or OEM cert),
an application reverse domain name and possibly an origin.

The CdmIdentifier is set and SPOID calculated on certain calls into
WVDrmPlugin. Once it is set, it will not be recalculated. We prevent
certain operations such as modifying the origin once the CdmIdentifier
has been set as this will require recalculating the SPOID.
Recalculating the SPOID may affect open sessions or calls in progress.

In a similar way, modifying the security level, will affect the
Device ID value and in turn the SPOID. The security level cannot be modified
if any sessions are open. This does leave open the possibility that the
SPOID may be calculated at one security level, sessions are then closed,
and the security level is then changed without an error being flagged.

The provisioning certificate file name is based on the SPOID. When
the SPOID does not match the security level, either the provisioning
information may not be found even though that security level has
been provisionined or the provisioning information may be stored
in an incorrect location if provisioning occurs.

The correct solution is to prevent modifications to the security level
once the CdmIdentifier is set. This is a behavior change and might
impact apps. We will reevaluate this for the next release.

For now, we will work around this. When the CdmIdentifier is set for L3,
we will calculate SPOIDs with both L1 and L3 device IDs and check if
provisioning previously occurred with SPOIDs calculated for that level.
If so, use that level, otherwise use L3.

Bug: 147703382
Test: Android unit/integration tests, GtsMediaDrmTests
Change-Id: Ia64adfc5848e431ee3876af03eebdb4b6eb83116
2020-06-17 00:50:14 -07:00
Edwin Wong
8ac53ecf87 Merge "Add v16 Widevine Integration Guide Android Supplement" into rvc-dev am: 6b8d0e034d am: f596c0929e
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11838915

Change-Id: Iecc5344c3f153fa085faeda6e526c7432d960038
2020-06-17 01:14:25 +00:00
Edwin Wong
2efe1ab43a Merge "Add v16 Widevine Integration Guide Android Supplement" into rvc-dev am: 6b8d0e034d am: 656db1857b
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11838915

Change-Id: Ia81efaffabcb99ab931a8538aa39d88fbf3f5835
2020-06-17 01:14:13 +00:00
Edwin Wong
f596c0929e Merge "Add v16 Widevine Integration Guide Android Supplement" into rvc-dev am: 6b8d0e034d
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11838915

Change-Id: I9969623efb2098fecdd9cfd5d38e3477a37dabed
2020-06-17 01:00:02 +00:00
Edwin Wong
656db1857b Merge "Add v16 Widevine Integration Guide Android Supplement" into rvc-dev am: 6b8d0e034d
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11838915

Change-Id: I3b1f5fa74f157d7ffc336ec53f61f6dacf29d2d9
2020-06-17 00:59:46 +00:00
Edwin Wong
6b8d0e034d Merge "Add v16 Widevine Integration Guide Android Supplement" into rvc-dev 2020-06-17 00:47:04 +00:00
Edwin Wong
72dc93ed1d Add v16 Widevine Integration Guide Android Supplement
The doc is based on
WidevineSecurityIntegrationGuideforCENCAndroidSupplement_v15.pdf.
The "Build Files" and "Reference Implementation" sections are
updated for v16.

merged from http://go/wvgerrit/101747

Please see revision history in:
https://docs.google.com/document/d/19pSOpV5_6AtyK82p1b5DajlYZnVOfyL63p5h72yWW5k/edit?usp=sharing

Test: revision history

bug: 147596889
Change-Id: If3e9fc6bb268d1d3be62b56e2e43752d8df3fc03
2020-06-16 15:19:34 -07:00
Automerger Merge Worker
0e2311c1ed Merge "Merge changes I295f66f9,I142f286c into rvc-dev am: 05fbb3dd87 am: 4868f95704" into rvc-d1-dev-plus-aosp 2020-06-16 09:03:36 +00:00
Rahul Frias
82c6448e9c Merge changes I295f66f9,I142f286c into rvc-dev am: 05fbb3dd87 am: 4868f95704
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11620164

Change-Id: I2433ef31b467cfda8396743db887169c8bd5a218
2020-06-16 09:03:32 +00:00
Rahul Frias
1c6633d408 Merge changes I295f66f9,I142f286c into rvc-dev am: 05fbb3dd87 am: 0db9b974c2
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11620164

Change-Id: I31070cfbc0f7f8742fea3dc5e25c1328df68de22
2020-06-16 09:03:23 +00:00
Rahul Frias
4868f95704 Merge changes I295f66f9,I142f286c into rvc-dev am: 05fbb3dd87
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11620164

Change-Id: I3e94398b1ae4670f33a3c128e653e38d2baaa525
2020-06-16 08:54:41 +00:00
Rahul Frias
0db9b974c2 Merge changes I295f66f9,I142f286c into rvc-dev am: 05fbb3dd87
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11620164

Change-Id: I59aa80b62824a29a8350b99a8f9a35d193aa968e
2020-06-16 08:54:27 +00:00
Rahul Frias
05fbb3dd87 Merge changes I295f66f9,I142f286c into rvc-dev
* changes:
  Add ATSC support - part 2
  Add ATSC support - part 1
2020-06-16 08:46:02 +00:00
Automerger Merge Worker
9833b1e86d Merge "Remove Android.mk for OEMCrypto ref code am: 119932ea69 am: 859038e6c8" into rvc-d1-dev-plus-aosp 2020-06-16 02:20:20 +00:00
Fred Gylys-Colwell
1ee911150a Remove Android.mk for OEMCrypto ref code am: 119932ea69 am: 859038e6c8
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11870737

Change-Id: I47571f3ab78d1e917f3361258b3c29ee1f4883c4
2020-06-16 02:20:16 +00:00
Fred Gylys-Colwell
8ff9d2255d Remove Android.mk for OEMCrypto ref code am: 119932ea69 am: d0259e0942
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11870737

Change-Id: I90988810cb3a1e5443ca58fe65a9ddb775e6f326
2020-06-16 02:20:15 +00:00
Fred Gylys-Colwell
859038e6c8 Remove Android.mk for OEMCrypto ref code am: 119932ea69
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11870737

Change-Id: Iab024d334ba53aacd6813a350749f6a31568d635
2020-06-16 02:12:45 +00:00
Fred Gylys-Colwell
d0259e0942 Remove Android.mk for OEMCrypto ref code am: 119932ea69
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11870737

Change-Id: I3eba5d14aa17dc70888964154b11e70ff7e6bdbc
2020-06-16 02:12:30 +00:00
Fred Gylys-Colwell
119932ea69 Remove Android.mk for OEMCrypto ref code
Merge from Widevine repo of http://go/wvgerrit/101905

The reference OEMCrypto should not be built as part of Android.

Test: Builds
Bug: 146361995
Change-Id: Ic25e6e567fcac519636f64dabc0d59b3df78990e
2020-06-15 17:40:28 -07:00
Dan Willemsen
abf67e2910 Replace libcrypto_static with libcrypto am: 761d1723ff
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11815604

Change-Id: If659bab9de0b6878e21035aac6b99c4d4bf83e15
2020-06-15 20:00:10 +00:00
Rahul Frias
8da1145012 Add ATSC support - part 2
[ Merge of http://go/wvgerrit/100905 and http://go/ag/10708438 ]

Add support for ATSC certificate and licenses handling. ATSC
files are distinguished from the apps DRM certificate and licenses
by file naming conventions.

Bug: 139730600
Test: WV unit/integration test, GtsMediaTestCases
Change-Id: I295f66f92fe01d7716978deac9dc360d74addedd
2020-06-12 03:48:58 -07:00
Dan Willemsen
761d1723ff Replace libcrypto_static with libcrypto
libcrypto_static has restricted visibility, which is now being
implemented in Make, so we either need to allow it for all vendor
modules, or use the shared library instead.

Bug: 158599308
Test: treehugger
Test: mmma vendor/widevine/libwvdrmengine
Change-Id: I88ddce7ad221c66a20f4e05409ae77421e4196ad
2020-06-10 00:10:06 +00:00
Rahul Frias
bbe9f6afc4 Add ATSC support - part 1
[ Merge of http://go/wvgerrit/100864 and http://go/ag/10704773 ]

ATSC 3.0 allows for licenses to be downloaded OTA and are tied to
a DRM certificate that may be shared across apps. The provisioning
process for ATSC may happen at the factory or during an OS update.

This contrasts from the regular OTT model, which requires that
provisioning and license download have an uplink as well as a
downlink connection.

This adds support for the ATSC mode property. ATSC mode can only be
set (or unset) before sessions are opened. Once the CDM identifier is
set/sealed, requests to modify the ATSC mode will be rejected.

If one needs to open sessions with both ATSC mode and regular (non-ATSC)
mode, separate MediaDrm objects will need to be created. The default
mode is to not use ATSC.

Enable ATSC mode by calling
  mediaDrm.setPropertyString("atscMode", "enable")

Disable ATSC mode by calling
  mediaDrm.setPropertyString("atscMode", "disable")

Provisioning and unprovisioning requests for ATSC will be rejected as
certificates will be retrieved by the ATSC service.

Bug: 139730600
Test: WV unit/integration test, GtsMediaTestCases
Change-Id: I142f286c711fe007ff42125c3c8cdc6450b6ea36
2020-06-08 14:56:48 -07:00
Automerger Merge Worker
b8d8bdbf38 Merge "Update OEMCrypto documentation to v16.3 am: aa5fc5afd0 am: d974c03dd1" into rvc-d1-dev-plus-aosp 2020-06-04 22:00:34 +00:00
Fred Gylys-Colwell
798ceec5d6 Update OEMCrypto documentation to v16.3 am: aa5fc5afd0 am: d974c03dd1
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11707216

Change-Id: I8fda483d3c35d05b89979937845887a8d65af851
2020-06-04 22:00:31 +00:00
Fred Gylys-Colwell
615bf191a5 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: Ie1c3ac931db1c7f969d8e0a9e75a46b08b9ec02f
2020-06-04 22:00:28 +00:00
Fred Gylys-Colwell
d974c03dd1 Update OEMCrypto documentation to v16.3 am: aa5fc5afd0
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11707216

Change-Id: Ic40d39691e70d6ad30d9061ee510f0c38c6c4b02
2020-06-04 21:34:15 +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
ee6c56b6fd Update OEMCrypto unit tests to require ODK 16.3 am: 45681615b8 am: b831ee0237
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677949

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

Change-Id: I98251e8de8cf9e874e74215968c2b56cd197ecec
2020-06-02 22:01:59 +00:00
Fred Gylys-Colwell
5d89bcbfa8 Unit test for loading nonce-free offline license am: a615671f48 am: e93082da54
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677947

Change-Id: I8cd1cdf4ff1a726cee5c007b4d1ad84fd1887a17
2020-06-02 22:01:57 +00:00
Fred Gylys-Colwell
54c6559f83 Check for null pointers in oemcrypto adapter am: 42eb79a3ff am: bc78188bb3
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11677946

Change-Id: I362073af914d6b19980490c8571b0865d76c587c
2020-06-02 22:01:56 +00:00
Fred Gylys-Colwell
26d6f84917 Update ODK Library to 16.3 am: 166b3e8403 am: 3b9be16415
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/11699230

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

Change-Id: I13b7aadbb059d1754ca7634e1fdae99ee7914421
2020-06-02 22:01:53 +00:00
Fred Gylys-Colwell
a12d082a11 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: If664f8732bd8cbef5184aea7d6679481f95e457e
2020-06-02 22:01:36 +00:00
Fred Gylys-Colwell
23f9a69a7f 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: I9e90fca0b5539c7a99ea5c840f32a81e1d32fab6
2020-06-02 22:01:34 +00:00
Fred Gylys-Colwell
32b318e7c4 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: Ie8a0e3ab425a263b07cf3a265f46ffb6aa11fc20
2020-06-02 22:01:32 +00:00
Fred Gylys-Colwell
2643b76731 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: I17badea700bcf40780baf33787a496da1c5b67c9
2020-06-02 22:01:30 +00:00