Commit Graph

2876 Commits

Author SHA1 Message Date
John W. Bruce
9d384305b7 Add widevine.com Default Provisioning Service Certificate
(This is a merge from http://go/wvgerrit/46447)

The Production Provisioning Service is moving to the "widevine.com"
certificate from the "license.widevine.com" certificate it was using.
This replaces the two places this certificate appears in the source
code. This is expected to be the last such update.

Also, the Staging Provisioning Service was already using this
certificate, but our code had it listed as using the old certificate. It
has also been updated.

Bug: 77244492
Test: CE CDM Unit Tests
Test: Android Unit Tests
Change-Id: I2ce14ea8e672c453ce0f74fbd3345f7e40f2f297
2018-04-09 13:47:15 -07:00
Jeff Tinker
0b09804158 Merge "Revert "Create unique cdm engines per WVDrmPlugin instance"" into pi-dev am: c3bce4d845
am: b911a8f8f7

Change-Id: I53710d0f23826be3580ac17de0f5b35b0f0a4bb7
2018-04-05 13:23:20 -07:00
Jeff Tinker
b911a8f8f7 Merge "Revert "Create unique cdm engines per WVDrmPlugin instance"" into pi-dev
am: c3bce4d845

Change-Id: I1c7ef15eee82bbde0c44e9e2b6c4e380f93c4690
2018-04-05 13:15:49 -07:00
TreeHugger Robot
c3bce4d845 Merge "Revert "Create unique cdm engines per WVDrmPlugin instance"" into pi-dev 2018-04-05 20:03:26 +00:00
Jeff Tinker
90441e24df Revert "Create unique cdm engines per WVDrmPlugin instance"
This change introduced b/77618383, need to revert.

This reverts commit 58234a69f2.

Change-Id: Ie7d515bcd94f2dcee6fa9b885cd0441845c82c22

Bug: 77618383
2018-04-05 20:03:15 +00:00
Adam Stone
1f63e00ca3 Merge "Create unique cdm engines per WVDrmPlugin instance" into pi-dev am: 6cd7ed1688
am: ffd21f49bd

Change-Id: Ib80cb08b303a454d46ac21b7f4f420c0f6ae4322
2018-04-04 16:53:21 -07:00
Adam Stone
ffd21f49bd Merge "Create unique cdm engines per WVDrmPlugin instance" into pi-dev
am: 6cd7ed1688

Change-Id: Ice4bb3e1e5839b6d1e3513e95f9888b0732b2103
2018-04-04 16:28:25 -07:00
Adam Stone
6cd7ed1688 Merge "Create unique cdm engines per WVDrmPlugin instance" into pi-dev 2018-04-04 23:09:43 +00:00
Adam Stone
58234a69f2 Create unique cdm engines per WVDrmPlugin instance
This change creates a unique id in the cdm identifier in order to force
a one-to-one mapping between WVDrmPlugin instances and CDM Engines. This
change simplifies some assumptions. This includes ensuring that the
metrics for a given MediaDrm instance map to a given CdmEngine instance.

Bug: 73724453
Test: Updated unit tests. GTS test pass. Shaka Player, Netflix and Google Play test.
Change-Id: I7e041b6cdf3e272d067da49d25a297b4a4663f1f
2018-04-04 12:28:57 -07:00
Rahul Frias
52f3a439b2 Merge changes Ie4a63ac2,I8523ef28 into pi-dev am: 92e6a1bb66
am: 6f0e0d0257

Change-Id: I84420e6a690184534530337836c9d161b9c8cd42
2018-04-03 14:58:52 -07:00
Rahul Frias
6f0e0d0257 Merge changes Ie4a63ac2,I8523ef28 into pi-dev
am: 92e6a1bb66

Change-Id: I9baed687ac21b9a72b0a625f0112935fb1b6d53f
2018-04-03 14:43:24 -07:00
Rahul Frias
9dc19a36af Correct unit test compile error am: 142e80f750
am: 70a5cd2a17

Change-Id: I94e609b656025147e459823fe6c2714bab1f7a0d
2018-04-03 14:07:42 -07:00
Rahul Frias
70a5cd2a17 Correct unit test compile error
am: 142e80f750

Change-Id: I208dba1a91485cf6bf5826d8c5a76f592de84c89
2018-04-03 13:50:27 -07:00
Rahul Frias
92e6a1bb66 Merge changes Ie4a63ac2,I8523ef28 into pi-dev
* changes:
  Recovery from usage info corruption
  Correct segfault in WvCdmRequestLicenseTest.UsageRemoveSecureStopTest
2018-04-03 18:12:34 +00:00
Rahul Frias
d7d8940174 Recovery from usage info corruption
[ Merge of http://go/wvgerrit/46623 ]

If corruption of the usage information file is detected while saving a
streaming license with a PST, usage information file is deleted, so that
a subsequent load keys may succeed.

Also when calling the MediaDrm API releaseAllSecureStops(), an error would
be returned if usage info file was corrupted. Since this file is
deleted successfully, errors have been replaced with warnings.

Bug: 73447733
Test: wv unit/integration tests
Change-Id: Ie4a63ac202fd6009609105f38ffa8a3b23ed334e
2018-04-02 19:04:09 -07:00
Rahul Frias
4e201c2700 Correct segfault in WvCdmRequestLicenseTest.UsageRemoveSecureStopTest
[ Merge of http://go/wvgerrit/46622 ]

Secure stop API related changes introduced in b/69674645 caused
segfaults on taimen/walleye but not other devices due to a difference
in OEMCrypto version.

Bug: 77294890
Test: WV unit/integration tests on sailfish and walleye
Change-Id: I8523ef283334d7d32d180e902072fe1dd6e665c1
2018-04-02 19:03:26 -07:00
Rahul Frias
142e80f750 Correct unit test compile error
[ Merge of http://go/wvgerrit/46640 ]

Bug: 72994956
Test: WV unit/integration tests on walleye, sailfish and linux.
Change-Id: I7319a4b79ab9a02e0ca9a50fb48c6107f8c3a762
2018-04-02 11:02:31 -07:00
Adam Stone
ec60fdfd82 Merge changes If99c1873,I3a3aa4fb into pi-dev am: 084c370db6
am: 1103c83a6c

Change-Id: Ic39ca1a0bb4c8572b5391085b4078fdbe3c1ee3d
2018-03-31 07:48:16 +00:00
Edwin Wong
3169e7318c Merge "Upgrade widevine HIDL service to v1.1." into pi-dev am: 07bf196fc0
am: 348ecdb8f2

Change-Id: If8f67fd7badf18bf511693f777b5cf84c7330b16
2018-03-31 05:03:25 +00:00
Srujan Gaddam
898c894944 Fixed loading mac keys in mock and Level3 am: f217742582
am: bc18460165

Change-Id: I442cb641ee576ed7f5a4e1b237c14c7cebfeb0d8
2018-03-31 05:02:41 +00:00
Srujan Gaddam
35b6266f19 Remove call to DeriveKeys for release am: 5064731d02
am: 6f074ca35c

Change-Id: Ic76a26a11642aa41ef78ef2bd1ad053e714ae6fc
2018-03-31 05:02:29 +00:00
Adam Stone
1103c83a6c Merge changes If99c1873,I3a3aa4fb into pi-dev
am: 084c370db6

Change-Id: Ia9685e25dc8a43f39f2f0c3f18cc1c190b4a6877
2018-03-31 02:27:49 +00:00
Edwin Wong
348ecdb8f2 Merge "Upgrade widevine HIDL service to v1.1." into pi-dev
am: 07bf196fc0

Change-Id: I72c04731a45bf50e45b3f8131943babfd252bc49
2018-03-31 01:21:25 +00:00
Srujan Gaddam
bc18460165 Fixed loading mac keys in mock and Level3
am: f217742582

Change-Id: I7e656c60c9bc3238a3c660384118ad43f9817c45
2018-03-31 01:21:00 +00:00
Srujan Gaddam
6f074ca35c Remove call to DeriveKeys for release
am: 5064731d02

Change-Id: I53457bd625f4877f7f7e71cd04829653f993134c
2018-03-31 01:20:57 +00:00
Adam Stone
084c370db6 Merge changes If99c1873,I3a3aa4fb into pi-dev
* changes:
  Creates a new license request latency metric
  Fixes missing or broken metrics in Widevine CDM
2018-03-31 00:50:34 +00:00
Edwin Wong
07bf196fc0 Merge "Upgrade widevine HIDL service to v1.1." into pi-dev 2018-03-31 00:43:02 +00:00
Edwin Wong
bc66aebfe2 Upgrade widevine HIDL service to v1.1.
Merged from http://go/wvgerrit/44803.

Upgrade HIDL service to v1.1 and implements new 1.1 media API.

Test: Netflix and Play Movies & TV
  streaming and offline playback

Test: GTS WidevineH264PlaybackTests test
  e.g. ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts -m GtsMediaTestCases
  --test com.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P30

Test: GTS MediaDrmTest tests
  e.g. ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts -m GtsMediaTestCases
  --test com.google.android.media.gts.MediaDrmTest#testWidevineApi28

Test: unit tests

bug: 69674645
Change-Id: I91e7e43f9178b61a531e846beffb5f5c17050a3c
2018-03-30 14:57:16 -07:00
Adam Stone
09c45c4440 Creates a new license request latency metric
Previously, we did not have a license request latency metric. This is a
notable limitation in our metrics. This adds a metric that captures the
timing between a GenerateKeyRequest and an AddKey operation.

Bug: 72994956
Test: New unit tests. Google Play
Change-Id: If99c187399c02f9b5d4c355732af7588bbbefb11
2018-03-30 21:43:48 +00:00
Adam Stone
e1fe90372f Fixes missing or broken metrics in Widevine CDM
A few metrics were missing or not properly collected in the CDM metrics.
This CL addresses them.

Bug: 64570194
Bug: 72866232

Test: Unit tests and Google Play manual test.
Change-Id: I3a3aa4fb3eb8422c9c8c398016f02409307beb33
2018-03-30 14:07:04 -07:00
Srujan Gaddam
f217742582 Fixed loading mac keys in mock and Level3
Merge of http://go/wvgerrit/45521/

Bug: b/73818548

Test: request_license_tests and GTS tests on sailfish and taimen

This change loads the mac keys into the session to be used in
GenerateSignature from the last call to one of: DeriveKeysFromSessionKey,
GenerateDerivedKeys, LoadKeys, and LoadUsageEntry. OEMCrypto tests are
changed to reflect this as well (specifically the order in which we call
the above methods).
2018-03-29 10:39:21 -07:00
Srujan Gaddam
5064731d02 Remove call to DeriveKeys for release
Merge of http://go/wvgerrit/45520/

Bug: b/70650789

Test: request_license_tests and GTS tests on sailfish and taimen

This is related to b/70650789. An extra call to DeriveKeysFromSessionKey
in the case where there is a provider session token results in the
OEMCrypto mock incorrectly using the derived mac keys to sign the release
message, since a future call to LoadKeys is never called.
2018-03-29 10:37:09 -07:00
John W. Bruce
f73b67c1a8 Load Certificate to Confirm Provisioning am: db0911df54
am: c96cb92fd4

Change-Id: Iba298ae3f751cbcd2dd0321d46470df981cf22bf
2018-03-29 04:39:45 +00:00
John W. Bruce
c96cb92fd4 Load Certificate to Confirm Provisioning
am: db0911df54

Change-Id: I1f6170281f2b6ec950b80f2d1e8f368bed20773d
2018-03-29 01:58:08 +00:00
John W. Bruce
db0911df54 Load Certificate to Confirm Provisioning
(This is a merge of http://go/wvgerrit/46203)

Previously, IsProvisioned() only confirmed the existence of a
certificate file, not whether the contents of that file were actually
valid. This patch changes its behavior so that it actually validates the
loadability of the file before returning.

This is sufficient to resolve Netflix's use case in b/65835227, but it
is only part of the solution for Android's use case in b/72353451. A
second patch will be required to cover cases where the certificate can
be loaded but cannot be used with the current OEMCrypto or with the
server.

Bug: 65835227
Bug: 72353451
Test: Android and CE CDM unit tests
Change-Id: Id3987a6f3c4097d7d356dfa631b023287354439a
2018-03-28 03:33:02 -07:00
Adam Stone
316d2ad9b3 Fixes widevine metrics proto serialization am: b19f0d106f
am: 07155523d6

Change-Id: Id2a427bb3f6feaceed4565e2e07d3b52b03af384
2018-03-26 17:40:48 +00:00
Adam Stone
07155523d6 Fixes widevine metrics proto serialization
am: b19f0d106f

Change-Id: Ie8d42f96590f63bfebb3f517061d4189e30d5910
2018-03-26 17:36:42 +00:00
Adam Stone
b19f0d106f Fixes widevine metrics proto serialization
Changes to a much more efficient and more reusable protobuf format for
metrics.

Test: Widevine tests, Google Play and MediaDrm CTS test.
Bug: 73724218

Change-Id: I3299051d7a16bcd7758c8f272415ca40e10c1313
2018-03-22 16:36:18 -07:00
Rahul Frias
0fdcae660c Merge changes I04ac8224,Iee6e60b9 into pi-dev am: efc008c5a1
am: 5fffcd79b6

Change-Id: I09c240546983229de5f01b6400e5628caf3a6509
2018-03-16 23:26:28 +00:00
Rahul Frias
5fffcd79b6 Merge changes I04ac8224,Iee6e60b9 into pi-dev
am: efc008c5a1

Change-Id: Ia64a9ffd7c5ca5a1a5a5e41e13c37371ae2fe7d0
2018-03-16 23:13:40 +00:00
Rahul Frias
efc008c5a1 Merge changes I04ac8224,Iee6e60b9 into pi-dev
* changes:
  Secure stop API related changes
  Rename ReleaseAllUsageInfo to RemoveAllUsageInfo
2018-03-16 22:52:06 +00:00
John W. Bruce
bf8f938966 Merge "Sync Android CDM Version with OEMCrypto" into pi-dev am: d24ff56def
am: a5392a3986  -s ours

Change-Id: I6235109e95365a2d2e1a329a23a14e617c380686
2018-03-16 20:12:52 +00:00
John W. Bruce
a5392a3986 Merge "Sync Android CDM Version with OEMCrypto" into pi-dev
am: d24ff56def

Change-Id: I7c0011472807addc3887b2bb467da7c6cfed3696
2018-03-16 19:53:26 +00:00
Rahul Frias
29a99099a8 Disable UsageOverflowTest am: a6e8a38c20
am: 8a9db7350d

Change-Id: If0e7b2203bb8ab9cc98a382cd6158718b435c112
2018-03-16 19:52:43 +00:00
TreeHugger Robot
d24ff56def Merge "Sync Android CDM Version with OEMCrypto" into pi-dev 2018-03-16 19:37:51 +00:00
Rahul Frias
8a9db7350d Disable UsageOverflowTest
am: a6e8a38c20

Change-Id: I8fd1ee9264226b9fb819a427ff75c7c42ab387d9
2018-03-16 19:30:16 +00:00
Rahul Frias
a6e8a38c20 Disable UsageOverflowTest
[ Merge of http://go/wvgerrit/45661 ]

This test was written to verify that the last 50 entries were maintained
by the usage table (OEMCrypto v9-11). With OEMCrypto v13+, that limit has
been removed and this is no longer an appropriate test. I have
disabled the test for now and will replace/rewrite with one
appropriate for big usage tables.

Bug: 30022298
Test: Ran cdm_extended_duration_tests
Change-Id: I23d54bb57c92b391f80817945626898fd590078f
2018-03-16 00:36:37 -07:00
John W. Bruce
376b96512f Sync Android CDM Version with OEMCrypto
(This is a cherry-pick of http://go/ag/3684977 that got left behind when
pi-dev was branched.)

The various Shared Source CDM groups have agreed on a more unified
version numbering scheme. Henceforth, the pattern for the version number
will be:

<max-oemcrypto-version-supported>.<minor-version>.<patch-version>

Where "minor-version" and "patch-version" are incremented independently
at the discretion of each CDM product.

This patch updates the version number for the Android CDM to match the
new scheme and updates the relevant tests.

Bug: 73090259
Test: request_license_test --gtest_filter=VersionNumberTest.*
Merged-In: Idcead5d92565dd549aa35565da632f01abb9e513
Change-Id: Idcead5d92565dd549aa35565da632f01abb9e513
2018-03-15 13:21:13 -07:00
Rahul Frias
4ba82e4585 Secure stop API related changes
[ Merge of http://go/wvgerrit/44921 ]

* Added the ability to remove a single usage information record.
* Added a method to retrieve all secure stop Ids.

Bug: 69674645
Test: WV unit, integration tests
Change-Id: I04ac8224b4bdda69541e61ff1103af3836138228
2018-03-14 15:24:10 -07:00
Jeff Tinker
f425d23132 Remove error code INVALID_QUERY_STATUS am: 6a4abc15fe
am: db3d773db6

Change-Id: I1a7a1a52114eb43c7db5270e144ef81ff9e9ea8e
2018-03-14 19:09:37 +00:00