Vicky Min
18369730b9
Refactor OEMCrypto_SetDecryptHash
...
The current implementation of OEMCrypto_SetDecryptHash gives developers
flexibility to use different types of hashes. However, all the
implementations we have seen thus far use crc32. Because of this, crc32
should be sufficient and we can refactor OEMCrypto_SetDecryptHash to
only use the crc32 hash.
Bug: 287706586
Change-Id: I4aaa253b2656dfd9c984f77dfb08fe160b23b47c
2024-02-22 13:52:26 -08:00
Junfeng Yang
65abd1deb7
Remove the extra call to OEMCrypto_GenerateNonce
...
The extra call to OEMCrypto_GenerateNonce is not needed. And it would
also lead to failure when the fuzzers are linked with the OPK
serialization layer.
Bug: 324666282
Change-Id: I43941fd5ee1f15f7106e6f0be2b65dce206225cf
2024-02-19 01:15:57 -08:00
Ian Benz
14c5d6ee5f
Move internal fuzz target naming scheme to g3doc
...
Change-Id: I400b0a34c670673aba9dd347ec41060b4b23897a
2024-01-26 16:26:25 -08:00
Ian Benz
e19927f4bf
Update OEMCrypto fuzzing documentation
...
- Add details for triaging crashes and writing fuzz tests.
- Move internal documentation not needed by partners to g3doc.
- Remove infrastructure details covered in the design document.
Change-Id: Ib60b2bea954f4371595b0f891434e2274366fdd2
2024-01-26 16:26:23 -08:00
Ian Benz
9a24732f5b
Replace entitled key session fuzzer
...
Enable multiple OEMCrypto calls in arbitrary order, multiple OEMCrypto
sessions, and OEMCrypto_ReassociateEntitledKeySession fuzzing.
Merged from https://widevine-internal-review.googlesource.com/174990
Merged from https://widevine-internal-review.googlesource.com/178330
Change-Id: Ic1ac754c74bf0299c8c9f04ffdbfe82cf9f7569d
2024-01-26 16:25:06 -08:00
Ian Benz
79c809840e
Add OEMCrypto_QueryKeyControl fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/177111
Merged from https://widevine-internal-review.googlesource.com/177117
Change-Id: Iea28155a369f71557a32cc34da7bd328f78e2413
2024-01-26 16:21:38 -08:00
Ian Benz
078682a897
Simplify fuzz tests using LicenseWithUsageEntryFuzz
...
Merged from https://widevine-internal-review.googlesource.com/175060
Change-Id: I2f245ac998883e2a31cde361e30b36f00681262c
2024-01-26 16:21:25 -08:00
Ian Benz
5c5433a8d8
Update OEMCrypto_LoadLicense corpus for ODK_Packing_ParsedLicense
...
- Regenerate corpus files.
- Change nonce endianness.
Merged from https://widevine-internal-review.googlesource.com/177010
Change-Id: I5f288a054325097d6ea696cd755fc0557d0eadd1
2024-01-26 16:20:39 -08:00
Ian Benz
ed55c511a3
Add OEMCrypto_GenerateCertificateKeyPair second stage fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/176771
Change-Id: I8afee6636a44f46a573be5a94f6c12161b57eace
2024-01-26 15:27:29 -08:00
Ian Benz
4aa2bcde49
Fix OEMCrypto_LoadEntitledContentKeys fuzzer
...
- Pass entitled key session to OEMCrypto_LoadEntitledContentKeys.
- Refresh corpus files.
Merged from https://widevine-internal-review.googlesource.com/176750
Merged from https://widevine-internal-review.googlesource.com/176758
Change-Id: I7edb081933d37897e3b9d83dd00a627b5de64bc9
2024-01-26 15:26:46 -08:00
Ian Benz
3a05989920
Add OEMCrypto_GetDeviceSignedCsrPayload fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/175050
Change-Id: I28e4b1bc1f82deaf5644d0b2e31d916bf65365d3
2024-01-26 15:23:50 -08:00
Ian Benz
ea43147a08
Add OEMCrypto_GetDeviceInformation fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/174936
Change-Id: I79bbb8506a13d3142a8b323a7c67d0155973a3f4
2024-01-26 15:22:49 -08:00
Ian Benz
4f29280b3e
Remove unused OEMCrypto_GenerateSignature fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/174772
Merged from https://widevine-internal-review.googlesource.com/176633
Merged from https://widevine-internal-review.googlesource.com/176634
Merged from https://widevine-internal-review.googlesource.com/176670
Change-Id: I36438c102bfe68ff16eab3db301377e858f533c1
2024-01-26 15:21:21 -08:00
Ian Benz
09e6f1c60f
Add OEMCrypto_GetKeyHandle fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/174934
Change-Id: If44423ed51cc2ff10c1b471d39db962a653d8c14
2024-01-26 15:18:06 -08:00
Ian Benz
31a2f09792
Enable OEMCrypto_MoveEntry/ReuseUsageEntry fuzzers
...
Merged from https://widevine-internal-review.googlesource.com/174893
Change-Id: Ia46e74450bc20302edaf1c5e2bbde957a1d31c95
2024-01-26 15:17:45 -08:00
Ian Benz
8a4160bf8a
Add OEMCrypto_GetRandom fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/174771
Merged from https://widevine-internal-review.googlesource.com/174854
Change-Id: Ia654123bcbe8fa2e7daadaab79c1149ff3cde6b0
2024-01-26 15:17:36 -08:00
Ian Benz
76cf1cd985
Simplify and enable create and remove entitled key session fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/174851
Change-Id: Iebddae2412c66dbaf5bac042518aea58f9b0c315
2024-01-26 15:17:12 -08:00
Ian Benz
708670c98b
Simplify OEMCrypto_InstallOemPrivateKey fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/174890
Merged from https://widevine-internal-review.googlesource.com/174856
Change-Id: If863e4a8f739ca5645311d7f7b08e6aec4cc7aca
2024-01-26 15:16:55 -08:00
Ian Benz
75d4778531
Fix spelling mistake
...
Merged from https://widevine-internal-review.googlesource.com/172590
Merged from https://widevine-internal-review.googlesource.com/172610
Merged from https://widevine-internal-review.googlesource.com/172650
Merged from https://widevine-internal-review.googlesource.com/174011
Change-Id: I88cb66704509010fa2e0bee5d0f580173db6fdcd
2024-01-26 15:16:55 -08:00
Ian Benz
a66143bec4
Fix OEMCrypto_GenerateRSASignature fuzzer
...
Ensure OEMCrypto is in the correct state before invoking
OEMCrypto_GenerateRSASignature.
Merged from https://widevine-internal-review.googlesource.com/168857
Merged from https://widevine-internal-review.googlesource.com/172171
Merged from https://widevine-internal-review.googlesource.com/172410
Merged from https://widevine-internal-review.googlesource.com/173130
Change-Id: I774f59af8044939c5a9618de348f2120a834e043
2024-01-26 15:16:55 -08:00
Ian Benz
57b391c8b9
Fix bugs impacting fuzzing coverage
...
- Update ConvertDataToValidEnum to not use FuzzedDataProvider since it
causes unexpected parsing results.
- Add OEMCryptoLicenseAPIFuzz::LoadLicenseWithGenericCryptoKeys so that
generic crypto fuzz tests can load appropriate keys.
- Remove custom mutator from oemcrypto_generic_verify_fuzz because it
provides minimal additional coverage.
- Refresh affected corpus files.
Merged from https://widevine-internal-review.googlesource.com/168557
Merged from https://widevine-internal-review.googlesource.com/171191
Merged from https://widevine-internal-review.googlesource.com/172170
Merged from https://widevine-internal-review.googlesource.com/172250
Change-Id: Ie676a36cbf4c12bdda9566fad3590a7b69168d9c
2024-01-26 15:15:36 -08:00
Ian Benz
55ef762c08
Improve fuzzers with FuzzedDataProvider inputs
...
- Remove redundant input size checks handled by FuzzedDataProvider.
- Allow passing null when buffer size is used as an in/out parameter.
Merged from https://widevine-internal-review.googlesource.com/168637
Merged from https://widevine-internal-review.googlesource.com/171190
Merged from https://widevine-internal-review.googlesource.com/172090
Merged from https://widevine-internal-review.googlesource.com/172251
Change-Id: Ib5779ab969f646f306088b3d75d513e1f07a3886
2024-01-26 13:40:22 -08:00
Ian Benz
53fe55cb72
Clean up fuzz helper classes
...
- Remove OEMCrypto state changes hidden in constructors and destructors.
- Use composition instead of inheritance to structure classes.
- Avoid calling non-trivial destructors for objects with static
lifetime.
Merged from https://widevine-internal-review.googlesource.com/168497
Merged from https://widevine-internal-review.googlesource.com/171170
Merged from https://widevine-internal-review.googlesource.com/171171
Merged from https://widevine-internal-review.googlesource.com/171870
Change-Id: I20476a7b1132d11f011b8650ec01e3c2dc3fc0e8
2024-01-26 13:40:22 -08:00
Ian Benz
af070601b0
Add OEMCrypto_SetDecryptHash/GetHashErrorCode fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/169021
Merged from https://widevine-internal-review.googlesource.com/170030
Change-Id: I209d280b0478620197fc514966af3c93fc2272aa
2024-01-26 13:40:20 -08:00
Ian Benz
7b592f1990
Add OEMCrypto_GenerateCertificateKeyPair fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/168817
Merged from https://widevine-internal-review.googlesource.com/169915
Change-Id: If4d3f4cd2b028765072a14c74781e9750dc3e38b
2024-01-26 13:39:28 -08:00
Ian Benz
c0c349cd28
Fix OEMCrypto_LoadUsageEntry fuzzer
...
- Ensure OEMCrypto is in the correct state before invoking
OEMCrypto_LoadUsageEntry.
- Do not use FuzzedDataProvider to parse usage_entry_number since it
causes unexpected parsing results.
Merged from https://widevine-internal-review.googlesource.com/168859
Merged from https://widevine-internal-review.googlesource.com/169293
Merged from https://widevine-internal-review.googlesource.com/169970
Merged from https://widevine-internal-review.googlesource.com/170011
Change-Id: I6c3ddfe457facef9c9d0fc524fc3cf76aba90f64
2024-01-26 13:36:26 -08:00
Ian Benz
fb1f3af60f
Add OEMCrypto_GetBootCertificateChain fuzzer
...
Merged from https://widevine-internal-review.googlesource.com/168818
Merged from https://widevine-internal-review.googlesource.com/169890
Change-Id: I2530555a1cf94726c82511504e480b843b244c7b
2024-01-26 13:36:21 -08:00
Ian Benz
8a9b3c5c75
Fix OEMCrypto_LoadEntitledContentKeys fuzzer
...
- Create an entitled key session for OEMCrypto v17 and later.
- Refresh corpus files.
Merged from https://widevine-internal-review.googlesource.com/168897
Merged from https://widevine-internal-review.googlesource.com/169292
Change-Id: Ied9fce445a837e417077381de71d2834f385f120
2024-01-26 12:19:08 -08:00
Ian Benz
c579a79462
Fix null passed to memcpy in generic verify fuzz
...
Merge from Widevine repo of http://go/wvgerrit/169048
Do not generate a new signature during mutation if a key handle cannot
be retrieved by OEMCrypto_GetKeyHandle().
Bug: 275264353
Test: luci tests
Change-Id: I9a804328c4b6d3e50d14c3f9c71043e71a88e3da
2023-03-28 20:28:57 +00:00
Fred Gylys-Colwell
e51bb19296
Refresh corpus for oemcrypto fuzz tests with modified format
...
Merge from Widevine repo of http://go/wvgerrit/165958
and http://go/wvgerrit/165862
Bug: 275264353
Test: test only code
Change-Id: I30829ad72d58e2233f4cc9963d17cb07314b7720
2023-03-28 20:28:57 +00:00
Cong Lin
e8add8eed8
Sync oemcrypto files from cdm udc-dev to Android
...
Changes included in this CL:
166806: Update OEMCrypto_GetDeviceInformation() | https://widevine-internal-review.googlesource.com/c/cdm/+/166806
166808: Update Android L3 after OEMCrypto_GetDeviceInformation() signature changes | https://widevine-internal-review.googlesource.com/c/cdm/+/166808
166809: Decode device info and write it to CSR payload | https://widevine-internal-review.googlesource.com/c/cdm/+/166809
167158: Fix Android include path and copy_files | https://widevine-internal-review.googlesource.com/c/cdm/+/167158
167159: Fix common typos and use inclusive language suggested by Android linter | https://widevine-internal-review.googlesource.com/c/cdm/+/167159
165618: Explicitly state python3 where needed. | https://widevine-internal-review.googlesource.com/c/cdm/+/165618
166757: Update Android.bp for Android | https://widevine-internal-review.googlesource.com/c/cdm/+/166757
164993: Refactor basic oemcrypto unit tests | https://widevine-internal-review.googlesource.com/c/cdm/+/164993
164978: Update OEMCrypto Unit Test Docs | https://widevine-internal-review.googlesource.com/c/cdm/+/164978
166941: Update make files for OEMCrypto | https://widevine-internal-review.googlesource.com/c/cdm/+/166941
165279: Refactor license unit tests | https://widevine-internal-review.googlesource.com/c/cdm/+/165279
165318: Refactor provisioning unit tests | https://widevine-internal-review.googlesource.com/c/cdm/+/165318
164800: Add extra check for renew on license load unit test | https://widevine-internal-review.googlesource.com/c/cdm/+/164800
165860: Remove duplicate definition of MaybeHex() | https://widevine-internal-review.googlesource.com/c/cdm/+/165860
164889: Updated CoreCommonRequestFromMessage and fix test | https://widevine-internal-review.googlesource.com/c/cdm/+/164889
164967: Add OPK pre-hook and post-hook error codes | https://widevine-internal-review.googlesource.com/c/cdm/+/164967
165140: Add hidden device_id_length to v18 provisioning message | https://widevine-internal-review.googlesource.com/c/cdm/+/165140
165204: Fix memory leak in oemcrypto test | https://widevine-internal-review.googlesource.com/c/cdm/+/165204
165958: Fix oemcrypto_generic_verify_fuzz mutator signature offset | https://widevine-internal-review.googlesource.com/c/cdm/+/165958
166037: Support SHA-256 in OEMCrypto Session Util | https://widevine-internal-review.googlesource.com/c/cdm/+/166037
Test: Run GtsMediaTests on Pixel 7
Bug: 270612144
Change-Id: Iff0820a2de7d043a820470a130af65b0dcadb759
2023-02-28 11:21:05 -08:00
Kyle Zhang
11255b7426
Pick widevine oemcrypto-v18 change
...
No-Typo-Check: From a third party header file
Bug: 260918793
Test: unit tests
Test: atp v2/widevine-eng/drm_compliance
Change-Id: I36effd6a10a99bdb2399ab1f4a0fad026d607c70
2022-12-21 00:03:50 +00:00
Kyle Zhang
af0168dbed
Merge cdm changes to android repo
...
Bug: 251924225
Test: GtsMediaTestCases
Change-Id: I1b4e64c0abf701fe1f5017f14dc72b72c3ea6770
2022-10-11 00:40:42 +00:00
Alex Dale
e3697c6595
Fix oemcrypto_decrypt_cenc_fuzz null reference
...
[ Merge of http://go/wvgerrit/153669 ]
The oemcrypto_decrypt_cenc_fuzz fuzz test found a null reference error.
This adds a check to ensure that the input_buffer vector used for the
sample descriptions is not empty before attempting to access it.
Bug: 192310854
Bug: 236317198
Change-Id: If3909b01d3bc19434bbd5b6b77e7cd76182b2bdf
2022-08-19 14:38:33 -07:00
Alex Dale
cc29f745f9
Re-enabled OEMCrypto fuzz tests
...
[ Merge of http://go/wvgerrit/153121 ]
`run_oemcrypto_fuzz_tests` script was disabled while OPK was
transitioning between v16 and v17. Now that OPK is v17, the
fuzz tests can be re-enabled.
Some targets could not be built due to a missing header file.
`oemcrypto/ref/src/cppbor.cpp` was updated to include the missing
header.
Bug: 235414753
Bug: 229160033
Bug: 236317198
Test: run_oemcrypto_fuzz_tests
Change-Id: Ieeebae1f6d84c5735a669d44ea45875675fdb5a3
2022-08-01 15:20:05 -07:00
Rahul Frias
d6362f6e6b
Update fuzz tests to match output desriptor struct
...
[ Merge of http://go/wvgerrit/147110 ]
The OEMCrypto_DestBufferDesc had fields address/address_length renamed
to clear_buffer/clear_buffer_length in v17. However this was not updated
for the fuzz tests thus causing some code coverage errors. This should
fix those errors.
Merged from https://widevine-internal-review.googlesource.com/146889
Bug: 220946359, 220946990
Test: GtsMediaTestCases on sunfish
Change-Id: I2837de2f79c0e731d072e3712d6b769df17a1c7e
2022-03-16 01:38:19 -07:00
Rahul Frias
83a4100d11
Update cipher mode elsewhere
...
[ Merge of http://go/wvgerrit/144696 ]
In v17,
OEMCrypto_CipherMode_CTR renamed to OEMCrypto_CipherMode_CENC
OEMCrypto_CipherMode_CBC renamed to OEMCrypto_CipherMode_CBCS
Bug: 224375138
Test: GtsMediaTestCases on sunfish
Change-Id: I2d96e9c6d22a9d9e2fbbd15a8aea3f2d5dac6dcb
2022-03-16 01:33:02 -07:00
Kyle Zhang
642965c678
Merge latest oemcrypto-v17 change
...
No-Typo-Check: Not related to this change.
Bug: 161477208
Change-Id: I99e4780f6855b7045aa0cd5a49c13d2d0d51ed64
2022-01-27 20:07:15 -08:00
Fred Gylys-Colwell
c7e237eb00
Update fuzz tests
...
Several updates to fuzz tests, including
http://go/wvgerrit/124043
Add documentation for partners to run fuzzing
http://go/wvgerrit/128224
Fix generic verify fuzz script
http://go/wvgerrit/120507
Fuzzing: Add fuzzer for reportusage API
http://go/wvgerrit/120503
Fuzzing: Add fuzzer for deactivate usageentry API
http://go/wvgerrit/120463
Fuzzing: Add logic to exit fuzzer script
http://go/wvgerrit/120444
Fuzzing: Add fuzzer for loadusageentry API
Bug: 183154879
Bug: 202994773
Bug: 186785830
Test: test only code
Change-Id: I877681461824c51bc82f0766a9973378aafadba7
2021-10-15 04:15:57 +00:00
Fred Gylys-Colwell
d3942b242c
LUCI: Add build fuzz tests script to presubmits
...
Merge from Widevine repo of http://go/wvgerrit/123803
Update fuzz build script to use gyp from third_party folder.
Test: ran fuzz tests on luci
bug: 186271314
bug: 184866351
Change-Id: If530872aa1e60d2108932610415aa5315979390c
2021-05-10 17:44:50 +00:00
Fred Gylys-Colwell
e51c9fbbb8
Update license comment
...
Merge from Widevine repo of http://go/wvgerrit/121950
Remove term "Master" from "Widevine Master License Agreement".
Bug: 168562298
Change-Id: I655babf1bc447f4872f6a0f849107262be42df7a
2021-04-12 14:10:08 -07:00
Fred Gylys-Colwell
6628c7f693
Update OEMCrypto test comments and logs
...
Merge from Widevine repo of http://go/wvgerrit/121886
This CL merges some changes from branch rvc-dev to sc-dev
that prepared it for merge.
One change is that the unit tests now say they are part of
Android S instead of R.
Bug: 180546871
Change-Id: I2ebbd8f7b8586389ebb75f3743a2dc2ad8caa214
2021-04-12 14:00:53 -07:00
Bharath Chandra Elluru
6b548748b2
Merge oemcrypto buffer overflow tests from cdm
...
Widevine CLs:
http://go/wvgerrit/112243
http://go/wvgerrit/110563
http://go/wvgerrit/95483
http://go/wvgerrit/107047
http://go/wvgerrit/111123
http://go/wvgerrit/106224
http://go/wvgerrit/106263
http://go/wvgerrit/106223
http://go/wvgerrit/104223
http://go/wvgerrit/108583
http://go/wvgerrit/111403
http://go/wvgerrit/111623
http://go/wvgerrit/106264
http://go/wvgerrit/110483
http://go/wvgerrit/111944
http://go/wvgerrit/108684
http://go/wvgerrit/104183
http://go/wvgerrit/111443
http://go/wvgerrit/111869
http://go/wvgerrit/108843
http://go/wvgerrit/104363
http://go/wvgerrit/104423
http://go/wvgerrit/104263
http://go/wvgerrit/106584
http://go/wvgerrit/105924
http://go/wvgerrit/104524
http://go/wvgerrit/113023
Bug:175401639
Test: We would like to run these tests on pixel devices from master
branch using go/wv-and-dash
Change-Id: Ic4188504af64de9ce79941f75ac6feaf29189a4d
2021-01-11 22:13:16 +00:00
Fred Gylys-Colwell
20bb84ffee
Merge recent doc changes for OEMCrypto
...
This is a cherry pick of recent changes to OEMCrypto and ODK. Most of
these are part of the document migration to doxygen.
See http://go/wvgerrit/106005 and its parents for code reviews.
Bug: 144715340
Bug: 148232693
Bug: 167580674
Change-Id: I658f99c8117b974faed97322d61fac0f382283af
2020-09-15 19:10:53 -07:00