Commit Graph

3100 Commits

Author SHA1 Message Date
Vicky Min
0972c59fc0 Filter CAS tests
Merge from Widevine repo of http://go/wvgerrit/169080

We want to transition to using GTEST_SKIP to skip unit tests instead of
modifying the GTEST_FILTER variable. This does so for tests that require
CAS support.

Bug: 251240681
Merged from https://widevine-internal-review.googlesource.com/167739

Change-Id: Ifb971bf01e2c21fe672bbe4bfa15c797456256ef
2023-03-28 20:30:22 +00:00
Vicky Min
f83698a164 Refactor missed provisioning and renewal tests
Merge from Widevine repo of http://go/wvgerrit/169079

Bug: 253779846
Merged from https://widevine-internal-review.googlesource.com/167738

Change-Id: If8fc484f02fc1544977f1fb3a5fe1fa42d7367d7
2023-03-28 20:30:22 +00:00
Vicky Min
225a3e50ed Use GTEST_SKIP to skip prov40 tests
Merge from Widevine repo of http://go/wvgerrit/169076

We want to transition to using GTEST_SKIP to skip unit tests instead of
modifying the GTEST_FILTER variable. This does so for provisioning 4.0
tests.

Bug: 251240681
Merged from https://widevine-internal-review.googlesource.com/167497

Change-Id: I65a879fba24b199bd115980bdd556c123fcc1cdc
2023-03-28 20:30:22 +00:00
Fred Gylys-Colwell
6c834acc50 Update test updates and known issues to ChangeLog
Merge from Widevine repo of http://go/wvgerrit/169075

Merged from https://widevine-internal-review.googlesource.com/167677

Bug: 275264353
Test: luci tests
Change-Id: I247e5fd73ad53d526a662badbca43520fed5f1bd
2023-03-28 20:30:22 +00:00
Fred Gylys-Colwell
2f45350921 Update oemcrypto unit tests version number
Merge from Widevine repo of http://go/wvgerrit/169074

And update a few scripts that check for version number.

Merged from https://widevine-internal-review.googlesource.com/167657

Bug: 275264353
Test: luci tests
Change-Id: Ic3c16323e993075c9bfe206fc73bf82c0e67f65b
2023-03-28 20:30:22 +00:00
John "Juce" Bruce
8dd8fc5a79 Update CHANGELOG for late-breaking OPK v17.1.1 changes
Merge from Widevine repo of http://go/wvgerrit/169073

Due to the late-breaking maximum_minor_version change, we had to revise
the CHANGELOG on the release branch. This patch ports this change to the
development branches.

Bug: 275264353
Test: luci tests
Change-Id: I46a18bd05ad1ae2afc766eaaf39c563f82f4eeea
2023-03-28 20:30:22 +00:00
Fred Gylys-Colwell
d7ee89bab0 Filter Cast Reciver tests
Merge from Widevine repo of http://go/wvgerrit/169070

This turns on the cast receiver tests for any device that
claims to support this feature. Previously, we had to
explicitly request these tests on the command line.

But since they do not pass for Prov 4.0, we fitler them out
in this case and reference a bug tracking that work.

We also switch to using GTEST_SKIP to skip the tests instead
of modifying the GTEST_FILTER.

Bug: 251240681
Bug: 269310676
Bug: 259455058
Bug: 259454969
Merged from https://widevine-internal-review.googlesource.com/166497

Change-Id: I1bcd749243a474b3f638547aa43c2805e86731af
2023-03-28 20:30:22 +00:00
Matt Feddersen
803617b783 Document RSA keypair issue on OP-TEE 64-bit
Merge from Widevine repo of http://go/wvgerrit/169069
Merged from https://widevine-internal-review.googlesource.com/167604

Bug: 275264353
Test: luci tests
Change-Id: Ib77b2f7d3855779dd6d97696d6066ad361e6e416
2023-03-28 20:30:22 +00:00
Vicky Min
64521717d8 Use GTEST_SKIP to skip prov 3.0 tests
Merge from Widevine repo of http://go/wvgerrit/169068

We want to transition to using GTEST_SKIP to skip unit tests instead of
modifying the GTEST_FILTER variable. This does so for provisioning 3.0
tests.

Bug: 251240681
Merged from https://widevine-internal-review.googlesource.com/167498

Change-Id: I997e1051f3bd7925bc69cf1b269a5bbbae8031b7
2023-03-28 20:30:22 +00:00
John "Juce" Bruce
d3183f504e Remove V17 backwards-compatibility decrypt functions
Merge from Widevine repo of http://go/wvgerrit/169066

Now that we only have to support the v18 API, we can drop the v17
versions of these functions. For SelectKey, the new function fully
replaces it, so it has been removed. For the other functions, the v18
functions were calling the v17 functions previously. Now, they have been
rolled together.

These functions were not actually deprecated in the OEMCryptoCENC.h
header to allow OPK's serialization generator to still support them for
backwards-compatibility. Now that they are gone, this patch also
deprecates the functions.

Bug: 240995221
Merged from https://widevine-internal-review.googlesource.com/167338

Change-Id: I10261142121d4de8c96e2cd5fac570f7b536a82e
2023-03-28 20:30:22 +00:00
Vicky Min
54e6b3d45d Small changes to refactored unit tests
Merge from Widevine repo of http://go/wvgerrit/169064

This CL should cleanup some minor issues that existed after the initial
CLs refactoring the unit tests went in. The issues fixed should be:
1) duplicate decrypt tests
2) decrypt tests added to be run
3) removed unecessary header files
4) refactored some provisioning tests that I had previously overlooked

Bug: 253779846
Merged from https://widevine-internal-review.googlesource.com/167537

Change-Id: Ic474fbcf69a08c0482b5e74d0c80be2cd16702d8
2023-03-28 20:30:22 +00:00
John "Juce" Bruce
ea3d319879 Add CHANGELOG entry for OPK v17.1.1
Merge from Widevine repo of http://go/wvgerrit/169062

Bug: 269670984
Merged from https://widevine-internal-review.googlesource.com/167378

Merged from https://widevine-internal-review.googlesource.com/167369

Change-Id: I309aff7aa0e7f662893f20e54975009c427a525f
2023-03-28 20:30:22 +00:00
Vicky Min
26aa378ca5 Refactor usage table tests
Merge from Widevine repo of http://go/wvgerrit/169061

Bug: 253779846
Merged from https://widevine-internal-review.googlesource.com/167477

Change-Id: I6046e59449700c8be05641f71dcbb2bba6ce493b
2023-03-28 20:30:22 +00:00
Vicky Min
6897bc1a1c Refactor decrypt unit tests
Merge from Widevine repo of http://go/wvgerrit/169052

Refactor the decrypt unit tests into a separate file.

Bug: 253779846
Merged from https://widevine-internal-review.googlesource.com/167180

Change-Id: I10a4a987b0d597f0c6d2953c0723bea4d790fb9c
2023-03-28 20:30:22 +00:00
Matt Feddersen
dbd5bd2a4d Update OPK v18 documentation
Merge from Widevine repo of http://go/wvgerrit/169050

- Update changelog
- Update copy parter files script to include linux port
- Update opk_partner_test script (used to make sure everything works out
  of the box) with third party dependencies, refactored downloads into
  a public setup.sh script
- Remove WTPI_BUILD_INFO from OPK makefiles and gyp files, since it is
  no longer needed
- Remove FILES.md since it is out of date and ree-sources.mk and
  tee-sources.mk satisfy the same purpose
- Add debug flag in comments for OP-TEE and Linux ports. As a hint for
  how to enable debug in OPK
- Remove oemcrypto_build_info.h since it is no longer needed. Move the
  XSTR macro it contained to oemcrypto_api_macros.h
- Add provisioning method macro to OPTEE and Linux build files to hint
  at how to build Prov 2 and Prov 4 using the same build files but
  different build-time values.

Merged from https://widevine-internal-review.googlesource.com/166219

Bug: 275264353
Test: luci tests
Change-Id: I220e3296f631d895a7c4504454635fe396efc0a4
2023-03-28 20:28:57 +00: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
322355dbbf Update documentation for Cast
Merge from Widevine repo of http://go/wvgerrit/169044

Document changes needed for supporting cast and provisioning
4.0 at the same time.

Bug: 259454830
Merged from https://widevine-internal-review.googlesource.com/166459

Change-Id: Iebf50d856c18f29db66352041b2b0429c43bd594
2023-03-28 20:28:57 +00:00
Fred Gylys-Colwell
9e7877a95d Document lacking signature of Prov 3.0 message
Merge from Widevine repo of http://go/wvgerrit/169039

Bug: 243734378
Merged from https://widevine-internal-review.googlesource.com/166458

Change-Id: I3eae16d09cf42e554d450f746390744ef580ac03
2023-03-28 20:28:57 +00:00
Rahul Frias
b3a57e7375 Dump BCC on failed provisioning request
[ Merge of http://go/wvgerrit/168357  and http://go/wvgerrit/168177 ]

When we get an error from the provisioning server while
running a test, we should log extra provisioning
information.

Bug: 273990016
Test: GtsMediaTestCases
Change-Id: I44095261e07ae079c632873f254d8e6879bab8c3
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
Alex Dale
5ed89d16e2 Merge "Fixed test and log formatting for CdmResponseType." into udc-dev 2023-03-28 19:21:20 +00:00
Cong Lin
b7280404bd Merge "Fix CSR in wv factory upload tool" into udc-dev 2023-03-28 18:02:05 +00:00
Jooyung Han
a4de7eb9b5 Set min_sdk_version for the Widevine APEX
also remove `use_vndk_as_stable: true` to remove dependency to VNDK
libs.

Bug: 251299786
Test: build WV APEX with V and install it on U device
Change-Id: Ie7f7f9b699119478d4b33f95ab9e6ba7f459346c
2023-03-28 06:57:46 +00:00
Jooyung Han
81171a7e75 Link dependencies statically
This reduces the APEX size from 6754304 to 4378624.

Bug: 274818387
Test: m com.google.android.widevine
Test: adb install $OUT/vendor/apex/com.google.android.widevine.apex
Test: adb reboot
Change-Id: Ib31291e5ee35297b9d85120f5eca118ebf10f55f
(cherry picked from commit 78f0b81ece)
2023-03-27 23:43:17 +00:00
Cong Lin
6db1ae5167 Fix CSR in wv factory upload tool
Merge of https://widevine-internal-review.googlesource.com/c/cdm/+/169024

The CSR extracted by WV internal BCC extraction tool is missing a
field "unverifiedDeviceInfo". This is required by the RKP's device
uploading tool for the CSR to be accepted.

Also updated the size of the randomly generated challenge from 32 bytes
to 64 bytes, same as what is used by rpk_factory_extraction_tool.

Test: extracted CSR v2 and v3 and dry run uploading
Bug: 275075496
Change-Id: Icc776f810c81ac6589d82935950167925f95f906
2023-03-27 21:10:03 +00:00
Alex Dale
52bd76e0e2 Fixed test and log formatting for CdmResponseType.
[ Merge of http://go/wvgerrit/168397 ]

When CdmResponseType (enum) was transformed to CdmResponseType
(struct), the test printers where not updated to print the result
of failed comparisons.  In addition, several logs statements were
updated haphazardly, leaving inconsistencies and potential
compiler-specific behavior.

This CL replaces CdmResponseType std::string operator with a ToString()
method.  This is to make it consistent with Google's C++ style guide
on conversion operators vs methods.  The string conversion function is
now defined in wv_cdm_types.cpp instead of inline in the header file.

The PrintTo function has been implemented along with the other CDM
test printers in test_printers.cpp.

Bug: 273989359
Test: run_x86_64_tests
Test: MediaDrmParameterizedTests on redfin
Test: Forrest drm_compliance
Change-Id: Ibfaa17029046b75b1c8c278f7bd7e04a24379848
2023-03-27 11:21:45 -07:00
Fred Gylys-Colwell
bfa8d39a63 Remove some names
Merge from Widevine repo of http://go/wvgerrit/168657

Some people who have left were still in OWNERS files and TODOs.

Bug: 274772704
Test: comments only
Change-Id: I583da815586e5ca52316b2e238d1c1bb3a5e919a
2023-03-27 02:45:01 +00:00
Fred Gylys-Colwell
ab8c06906a Fix logging error type
Merge from Widevine repo of http://go/wvgerrit/166942

The error type is no longer an enumeration.

Bug: 271146682

Change-Id: I64f60fde94d1e8a586128a59f1455041622444b6
2023-03-23 16:23:43 +00:00
Alex Dale
ce25b9d44c Avoid null dereference with empty BCC strings.
[ Merge of http://go/wvgerrit/168482 ]

The function OEMCrypto_GetBootCertificateChain() does not always
provide an additional signature depending on the device.  However, the
CDM would still attempt to dereference the first character in the
additional signature buffer when empty.  This CL changes how the data
pointer to an output string is acquired.  Empty string will instead
pass in a null pointer.

Bug: 272643393
Test: run_prov40_tests
Test: atest GtsMediaTestCases
Change-Id: I10b0a3c7df4fc73272aa701bb01c60672645d4fc
(cherry picked from commit a878e7b98d)
2023-03-20 20:29:58 +00:00
TreeHugger Robot
4e8c713f8b Merge "Add Widevine lazy apex" into udc-dev 2023-03-18 04:02:05 +00:00
Cong Lin
412e1bfa13 Merge "Update Android L3 after entitled key session fix" into udc-dev 2023-03-16 18:18:09 +00:00
Alex Dale
7c213563ca Merge "Add mutex to CdmEngine for use of cert_provisioning_." into udc-dev 2023-03-15 21:34:37 +00:00
Kyle Zhang
2be47ada77 Add Widevine lazy apex
Bug: 244498309
Test: m com.google.android.widevine.lazy
Change-Id: I226ae922e9ab7817353d3e94d509b9579c6551e1
2023-03-15 21:02:14 +00:00
Cong Lin
3dd24639b3 Update Android L3 after entitled key session fix
This is a merge of
https://widevine-internal-review.googlesource.com/c/cdm/+/168143

Original commit message:
Level3_RemoveEntitledKeySession(key_session) can be called when the
entitled key_session is already released by its entitlement session.
Do not return an error if the key_session to be removed is no longer
valid.

Test: run_dynamic_level3, oemcrypto unit tests on Pixel
Test: GTS media tests
Bug: 264688931
Change-Id: If0e0d0db2137c29e1dab4df321cf11ebcad2451f
2023-03-15 09:52:05 -07:00
Pete Bentley
965a7f308d Include hmac.h in test_base.cpp. am: 4247f72e79
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/21985924

Change-Id: I83c97a129c52454782e9d1641ec3fec5c36fb568
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-13 18:31:19 +00:00
Pete Bentley
4247f72e79 Include hmac.h in test_base.cpp.
Cherry-pick note: Compile fix only, needed for latest AOSP BoringSSL in tm-qpr-dev-plus-aosp and downstream branches, e.g. udc-*-dev.

Original change description:
Include what you use - this is no longer pulled in
by the other headers used in this file.

Bug: 272749540
Test: m
Change-Id: I0d4b480e47f84f367d1a9547b89811c52073a2fc
Merged-In: I0d4b480e47f84f367d1a9547b89811c52073a2fc
(cherry picked from commit c785e91ec3)
2023-03-13 10:44:08 +00:00
TreeHugger Robot
cb0d5e24be Merge "Adding ApexInfo utility" into udc-dev 2023-03-10 06:11:13 +00:00
Alex Dale
6e5ab021d8 Add mutex to CdmEngine for use of cert_provisioning_.
[ Merge of http://go/wvgerrit/167618 ]
[ PoC http://ag/21922303 ]

Bug: 258188673
Test: sts-tradefed run sts-dynamic-develop -m StsHostTestCases \
    -t android.security.sts.Bug_258188673
Test: GtsMediaTestCases
Change-Id: If71a0e7a81f376cf28688a590b6cb9dcea699545
2023-03-09 14:01:40 -08:00
Robert Shih
3c9cbc6cbe Compact aidl exception message
[ Merge of go/wvgerrit/c/cdm/+/167499 ]

Bug: 249941041
Change-Id: I81ce1ecef22bd87c6d879d1ccfd6874e9786f892
2023-03-07 19:08:02 +00:00
Edwin Wong
09bf7fd932 Fixed race condition in closeSession am: 4222daa047 am: 0d063388de am: b0f8ed6518
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/20918774

Change-Id: Ie32cb2c358216cbdf4f47e732c06e77e8e268a49
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-07 01:01:15 +00:00
Edwin Wong
b0f8ed6518 Fixed race condition in closeSession am: 4222daa047 am: 0d063388de
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/20918774

Change-Id: Ieb1a7a2c8bd6d8d5d9488124cfb4998041232104
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-07 00:25:12 +00:00
Edwin Wong
0d063388de Fixed race condition in closeSession am: 4222daa047
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/20918774

Change-Id: I89dd8d6e85e00e22b06ac6d454411024874f3730
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-06 23:49:11 +00:00
Edwin Wong
4222daa047 Fixed race condition in closeSession
Merged from http://go/wvgerrit/165061
poc: http://go/ag/20978750

Fix race that corrupts mCryptoSessions std::map,
and race that occurs when CryptoSessions are used after free.

Test: poc
Test: atest MediaDrmParameterizedTests
Test: atest GtsMediaTestCases

Bug: 258189255
Change-Id: I298d3e0770ace9cd590dfaacaa4c52a0732c2fe3
Merged-In: I298d3e0770ace9cd590dfaacaa4c52a0732c2fe3
2023-03-06 08:00:46 +00:00
Cong Lin
1a2e90be1a Merge "Re-generate Android L3 after memset fix" into udc-dev 2023-03-03 19:48:04 +00:00
Jooyung Han
f63f6011fa Adding ApexInfo utility
This is to get name/version when the HAL is started from an APEX. This
is the initial work and just prints name/version on startup.

Bug: 268439003
Test: adb logcat | grep com.google.android.widevine
Change-Id: I756c042d544f973999738f7d17022d916b9712cd
2023-03-03 00:02:38 +00:00
Cong Lin
eed03c1bd1 Re-generate Android L3 after memset fix
This is a merge of
167280: Re-generate Android L3 after memset fix | https://widevine-internal-review.googlesource.com/c/cdm/+/167280

Original fix and commit message:
167279: Fix a few memset calls in L3 haystack | https://widevine-internal-review.googlesource.com/c/cdm/+/167279

Test: GtsMediaTest on Pixel 7
Bug: 264978856
Change-Id: Id7a801389edec23f020297b762ccf5e0e3d77c6a
2023-03-02 12:55:07 -08:00
Cong Lin
5e24549b1a Internal factory tool implements CSR v3
Widevine internal BCC extraction tool to extract CSR v3 for testing
purpose. The difference it has from the factory tool is it doesn't rely
on Widevine IRPC HAL.

It just extracts BCC/CSR in the specified format from cli.

Test: Extract CSR v3 on Pixel 7 and upload
Bug: 268246995
Change-Id: I52abe09f991c89c6e7601bcef4d980f24c020c9f
2023-03-02 12:19:43 -08:00
Cong Lin
8dc7cc0c74 Factory tool implements Widevine IRPC HAL v3
Implement IRPC HAL v3 interfaces for extracting device registration CSR.
The new interface calls OEMCrypto_GetDeviceInformation() and
OEMCrypto_GetSignedCsrPayload() and then constructs the CSR.

Also added all mandatory fields of device info in the request.

Test: Run extraction tool on Pixel 7 and upload CSR
Test: Verified Widevine remote provisioning
Bug: 268246995
Change-Id: I24097ba32c7a105266071c1341c938b5874b38d8
2023-03-02 10:51:45 -08: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
Rahul Frias
3f7ecbc43e Merge changes Ia54117ff,I4d469a73,I926d8309 into udc-dev
* changes:
  Remove comment.
  Request debug headers and log URL correctly
  Integration tests for renew on license load
2023-02-25 00:09:25 +00:00