Commit Graph

3612 Commits

Author SHA1 Message Date
Alex Dale
e89b38d75f Reworked DeleteEntry() into InvalidateEntry(). am: da48461ba2 am: 44cc2500b3 am: 9e0e33244c
Change-Id: Ie68f666c1072635dc7df22b38b18b0096aceaff7
2020-05-01 01:57:39 +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
44cc2500b3 Reworked DeleteEntry() into InvalidateEntry(). am: da48461ba2
Change-Id: Ic6a6d107a138f9a2ad9b2a935751249587bf540e
2020-05-01 01:22:29 +00:00
Alex Dale
da48461ba2 Reworked DeleteEntry() into InvalidateEntry().
[ Merge of http://go/wvgerrit/95406 ]

There was an issue with DeleteEntry() where it would result in an
invalid table state if shrinking the usage table when the number of
sessions is at its max.

This required changing how the usage table invalidates entries.  Now,
after invalidating an entry (marking an entry as kStorageTypeUnknown)
the table is defragmented if specified to.

Defragmentation involves:
1)  Move valid entries near the end of the table to the position of
    invalid entries near the front of the table.
2)  Shrinking the table to cut off trailing invalid entries.

This change updates the existing tests to pass, but still needs new
tests for some of the edge cases.

Bug: 150887808
Bug: 149100568
Test: Linux unit tests and Android unit tests
Change-Id: I70c7b296e5e4b367746fcdaabbf0f12dcfb39230
2020-04-30 18:00:25 -07:00
Alex Dale
12f443a173 Merge "Suppress error for removing lingering offline licenses." into rvc-dev am: 792e17a8c4 am: d7f5a74ea3 am: f5d4746529
Change-Id: Ieed0176425675853df00e2125904fa36a16be8ac
2020-05-01 00:35:53 +00:00
Alex Dale
f5d4746529 Merge "Suppress error for removing lingering offline licenses." into rvc-dev am: 792e17a8c4 am: d7f5a74ea3
Change-Id: Idb87851939277a1950b0ad5605c48a772ae56a6d
2020-05-01 00:24:13 +00:00
Alex Dale
d7f5a74ea3 Merge "Suppress error for removing lingering offline licenses." into rvc-dev am: 792e17a8c4
Change-Id: Ia522d7b007a4088ff7f1812115196a06408ea186
2020-05-01 00:09:49 +00:00
Alex Dale
792e17a8c4 Merge "Suppress error for removing lingering offline licenses." into rvc-dev 2020-04-30 23:53:44 +00:00
Rahul Frias
faedb21020 Merge "Do not log nonces" into rvc-dev am: d627fdfdd4 am: da19e563f5 am: aa6c60fbbf
Change-Id: I7aaaf63f99cc0683578bc3832572b9c469e67f7a
2020-04-30 21:33:56 +00:00
Rahul Frias
aa6c60fbbf Merge "Do not log nonces" into rvc-dev am: d627fdfdd4 am: da19e563f5
Change-Id: Ib59472b51397e0838ce6b412f324ab630a7b41f5
2020-04-30 21:12:36 +00:00
Rahul Frias
da19e563f5 Merge "Do not log nonces" into rvc-dev am: d627fdfdd4
Change-Id: I1a767568408f306b5ff8b2070f362556ba331ef6
2020-04-30 20:55:12 +00:00
Rahul Frias
d627fdfdd4 Merge "Do not log nonces" into rvc-dev 2020-04-30 20:40:42 +00:00
Rahul Frias
6ea6723462 Do not log nonces
[ Merge of http://go/wvgerrit/99063 ]

Bug: 155329753
Test: wv unit/integration tests
Change-Id: I642b19f817ce69cb0838512cb8922a2e9c51cef2
2020-04-30 00:34:44 -07:00
Rahul Frias
ad06c10609 Accept a security level to be specified during provisioning am: e27bc4ba6a am: 8429ab587a am: 8cc100c11a
Change-Id: I1b45aebfc57799f89a789a2ac839bf1c8f95a9c6
2020-04-30 00:53:35 +00:00
Alex Dale
2a16d70a06 Suppress error for removing lingering offline licenses.
[ Merge of http://go/wvgerrit/97963 ]

There are situations where an offline license file will remain on the
system after it's usage entry has been deleted.  This would result in
its key set ID being reported as present by the CDM, but any
operations acting upon it will result in an error.

The app should be able to remove the license without error, so long
as the license file exists and no other OEMCrypto operations fail.

This change introduces a new error code LICENSE_USAGE_ENTRY_MISSING,
which indicates that a license's usage entry cannot be found.

A new integration test checks that the CDM can handle the calls to
removeOfflineLicense().

Bug: 137034719
Test: Android unit and integration tests
Change-Id: Ibdbe963b7f7e3ac97b446300d8e3896cdee7abc5
2020-04-29 17:48:26 -07:00
Rahul Frias
8cc100c11a Accept a security level to be specified during provisioning am: e27bc4ba6a am: 8429ab587a
Change-Id: I713649c76556b91afcd6ebcc0042c415ff2eee4b
2020-04-30 00:42:47 +00:00
Rahul Frias
8429ab587a Accept a security level to be specified during provisioning am: e27bc4ba6a
Change-Id: I20b0adbb6c27507b7d63a6cd0084b4230d5ed6e0
2020-04-30 00:27:03 +00:00
Rahul Frias
e27bc4ba6a Accept a security level to be specified during provisioning
[ Merge of http://go/wvgerrit/97267 ]

In earlier releases, provisioning would occur based on a cached
security level. If an open session call returned a NotProvisionedException
the security level would be cached for use with any future provisioning
call.

An app would have to set the security level, then call openSession,
have it fail and then request provisioning. This fits the normal flow of
most apps. Still on occasion, an app might change requested security level
after an openSession call failed. Using the cached security level
would result in unexpected behavior.

This change allows provisioning to occur at the last security level that
was set.

Bug: 129356527
Test: wv unit/integration tests, GTS tests (GtsMediaTestCases)
Merged-In: I8d9234eec2b23a9c913e77a709943b431e25e43e
Change-Id: I8d9234eec2b23a9c913e77a709943b431e25e43e
2020-04-28 11:58:59 -07:00
TreeHugger Robot
85dd06e0ef Merge "Verify error code when usage entry in use" into rvc-dev am: 6bd68c9660 am: 6fd344812d am: 8118bb3bc4
Change-Id: I08c6c360051222f3a5ce1e88bbb7aaf1fdda2aa3
2020-04-28 18:12:11 +00:00
TreeHugger Robot
d0d94be3ff Merge "Fix buffer size on generic decrypt tests" into rvc-dev am: 9448696b9f am: ed4daa7583 am: 04d320094e
Change-Id: Ia71fc1499168da08fa7f9c2dc8e7ee29f02efc44
2020-04-28 18:11:52 +00:00
TreeHugger Robot
8118bb3bc4 Merge "Verify error code when usage entry in use" into rvc-dev am: 6bd68c9660 am: 6fd344812d
Change-Id: I552f241a05393459f83a5ad53373221483649d00
2020-04-28 17:58:03 +00:00
TreeHugger Robot
04d320094e Merge "Fix buffer size on generic decrypt tests" into rvc-dev am: 9448696b9f am: ed4daa7583
Change-Id: I0cf5b550600d0d0b487bfe9a20ad8e035778c191
2020-04-28 17:57:52 +00:00
TreeHugger Robot
6fd344812d Merge "Verify error code when usage entry in use" into rvc-dev am: 6bd68c9660
Change-Id: I59fa7ba554c560f0c8e68f69747a4eb98f297e51
2020-04-28 17:42:14 +00:00
TreeHugger Robot
ed4daa7583 Merge "Fix buffer size on generic decrypt tests" into rvc-dev am: 9448696b9f
Change-Id: I6d367165623fd96fa21fee3e274b9c9b99b0aba3
2020-04-28 17:42:03 +00:00
TreeHugger Robot
6bd68c9660 Merge "Verify error code when usage entry in use" into rvc-dev 2020-04-28 17:25:22 +00:00
TreeHugger Robot
9448696b9f Merge "Fix buffer size on generic decrypt tests" into rvc-dev 2020-04-28 17:23:37 +00:00
Rahul Frias
fbc9019888 Correct OpenSessions_1_1 test failure am: 3df8bc5133 am: 3601ac7387 am: e8e0dcd887
Change-Id: I36103187fc1c7a8501a971141b44ba4c3994cda8
2020-04-24 23:49:20 +00:00
Rahul Frias
e8e0dcd887 Correct OpenSessions_1_1 test failure am: 3df8bc5133 am: 3601ac7387
Change-Id: I98328c3518339defb48053038aa4c3d82e983e07
2020-04-24 23:27:30 +00:00
Rahul Frias
3601ac7387 Correct OpenSessions_1_1 test failure am: 3df8bc5133
Change-Id: I3a11cc8034711d6e1219d3b248fdcf73d7f155e8
2020-04-24 23:11:45 +00:00
Fred Gylys-Colwell
a3a61a68c4 Verify error code when usage entry in use
Merge from Widevine repo of http://go/wvgerrit/98265

Previously, if we tried to shrink the usage table over an entry in
use, we expected an error. Now, we expect the specific error,
OEMCrypto_ERROR_ENTRY_IN_USE.

Test: unit tests on taimen
Bug: 124776024
Change-Id: I2b4b872943bf65401c0a6b5dc1237d77341b1f5b
2020-04-24 14:13:15 -07:00
Rahul Frias
3df8bc5133 Correct OpenSessions_1_1 test failure
[ Merge of http://go/wvgerrit/98025 ]

This adds mocking for WvContentDecryptionModule::QuerySessionStatus
to WvDrmPluginTest which was missing. This corrects the failure in
WVDrmPluginTest.OpensSessions_1_1 from libwvdrmdrmplugin_hidl_test

Bug: 154011452
Test: wv unit/integration tests
Change-Id: I9904595a62a71541ab534aca7d7dfbf95f3225c9
2020-04-20 15:48:20 -07:00
Rahul Frias
3614e47762 Merge "Correct reporting of KeyStatus usable in future" into rvc-dev am: d260c2cf2d am: dec9af442b am: 7ef5203a00
Change-Id: I2c39d917e6608b39a3328a18e6af5731b04f6546
2020-04-20 19:59:22 +00:00
Rahul Frias
7ef5203a00 Merge "Correct reporting of KeyStatus usable in future" into rvc-dev am: d260c2cf2d am: dec9af442b
Change-Id: Idd0c126798678cd92b3c61f8c2f217914e8155f5
2020-04-20 19:38:37 +00:00
Rahul Frias
dec9af442b Merge "Correct reporting of KeyStatus usable in future" into rvc-dev am: d260c2cf2d
Change-Id: I8f6bd2763d68abbba6e7728ea58cc80a8f6516be
2020-04-20 19:19:37 +00:00
Rahul Frias
d260c2cf2d Merge "Correct reporting of KeyStatus usable in future" into rvc-dev 2020-04-20 19:06:18 +00:00
Rahul Frias
6404b42fb2 Correct reporting of KeyStatus usable in future
[ Merge of http://go/wvgerrit/98004 ]

This corrects mapping for KeyStatus event kKeyStatusUsableInFuture in
the legacy WVDrmPlugin. It earlier reported DrmPlugin KeyStatusType
kKeyStatusType_StatusPending and now reports kKeyStatusType_UsableInFuture.

This fixes the test failure WVDrmPluginTest.MarshalsEvents

Bug: 153509007
Bug: 116738851
Test: WV unit/integration tests
Change-Id: I4b2c74f5a0757975861ef41fa575a749ff9da391
2020-04-20 10:23:27 -07:00
Fred Gylys-Colwell
eb227bdc61 Fix buffer size on generic decrypt tests
Merge from Widevine repo of http://go/wvgerrit/98264

The generic decrypt tests changed the variable controlling buffer size
after it initialized the buffer -- so the buffer was not changed. This
CL fixes that.

Also, RefreshLargeBuffer changed the size of the license message
buffer, not the renewal message buffer.

Bug: 153590142
Test: ran unit tests on taimen
Change-Id: Ib01b411478a181ba956ac2e23c03634a2d971cc0
2020-04-18 09:07:07 -07:00
Fred Gylys-Colwell
fa4d43d550 Update OEMCrypto documents am: 15b1cd9cc9 am: 02443e2142 am: 0214b1eb5e
Change-Id: Ie87e22ded86e810c6fa71e2dff095edc05b7a676
2020-04-13 19:20:32 +00:00
Fred Gylys-Colwell
0214b1eb5e Update OEMCrypto documents am: 15b1cd9cc9 am: 02443e2142
Change-Id: Icffccaa3f44c618d615e352cbfa93c3138c9f9a9
2020-04-13 18:52:56 +00:00
Fred Gylys-Colwell
02443e2142 Update OEMCrypto documents am: 15b1cd9cc9
Change-Id: I3036f1fb8c73fa3c8ede0c3686e466f24a90c000
2020-04-13 18:23:24 +00:00
Fred Gylys-Colwell
15b1cd9cc9 Update OEMCrypto documents
Merge from Widevine repo of http://go/wvgerrit/97763

There were no function signature changes, so the API version number
did not change from 16.2. There were several grammar and spelling
errors. There were also the following corrections:

1. The description of OEMCrypto_LoadProvisioning now says that devices
with a keybox use keys derived from the keybox device key, and devices
using Provisioning 3.0 use keys derived from the session key. The
description was previously reversed.

2. The function OEMCrypto_SupportedPatterns is no longer
discussed. This function was never fully defined.

3. The function OEMCrypto_LoadRenewal no longer says that keys and key
control blocks should be verified. This is because the function
OEMCrypto_LoadRenewal processes a message with no key control
block. It should update timers for the entire license.

Test: doc and comment change only
Bug: 153731804
Change-Id: I11a3069fcdbf67b369e2e2bc3fea8c08842eeb7b
2020-04-10 10:12:10 -07:00
Robert Shih
5e84bd348b WVDrmPlugin signRSA: check arguments before caller am: 2278917116 am: 983698e6cb am: 4337951ae6
Change-Id: I8353f7e20a1fd6f2c9d71e1f88f4e3c1e8c6e6ad
2020-04-08 20:38:30 +00:00
Robert Shih
4337951ae6 WVDrmPlugin signRSA: check arguments before caller am: 2278917116 am: 983698e6cb
Change-Id: I876f45a8f9d101dc2019e73bc9623cab8c6786c2
2020-04-08 20:25:07 +00:00
Robert Shih
983698e6cb WVDrmPlugin signRSA: check arguments before caller am: 2278917116
Change-Id: Ic5b158f14835176a412b3d350cdd080f674f6b61
2020-04-08 20:08:33 +00:00
Robert Shih
2278917116 WVDrmPlugin signRSA: check arguments before caller
Merge of http://go/wvgerrit/97444

Bug: 153356263
Test: VtsHalDrmV1_0Target
Test: VtsHalDrmV1_3Target
Change-Id: Ic27056d86804972859a85c0eb2a0e79a0563d040
2020-04-06 16:13:40 -07:00
John W. Bruce
69b754b3f9 Fix Entitlement Licenses am: 4444ba3b47 am: c9caa507b3 am: 1dbfe524cd
Change-Id: If849e86228dae304e4b965f493ec2d7fbf33e463
2020-04-03 23:39:44 +00:00
John W. Bruce
1dbfe524cd Fix Entitlement Licenses am: 4444ba3b47 am: c9caa507b3
Change-Id: I0a82b9409708fb4a32609be4c663954f896b9194
2020-04-03 23:17:09 +00:00
John W. Bruce
c9caa507b3 Fix Entitlement Licenses am: 4444ba3b47
Change-Id: I8fc3a51bf829a0036928d2ae7b55d6d69cd7a483
2020-04-03 22:54:25 +00:00
John W. Bruce
4444ba3b47 Fix Entitlement Licenses
(This is a merge of http://go/wvgerrit/97083.)

The switch from LoadKeys to LoadLicense broke entitlement licenses
entirely because the LoadLicense path in CryptoSession didn't include
any affordances for updating the KeySession, unlike the LoadKeys path.
This patch adds code to handle this.

Bug: 152814106
Test: CE CDM Unit Tests
Test: Android Unit Tests
Change-Id: Id0c33a566e17e6be8da04e12be4b0fc87559aa8f
2020-04-03 22:33:40 +00:00
Fred Gylys-Colwell
32ac45f9bb Merge "Adjust time for unit tests" into rvc-dev am: bab44e0ad4 am: b1d7728b29 am: f7da678770
Change-Id: If50288cf22f06b3c828d2d478563f8099a43a066
2020-04-03 17:41:53 +00:00