Commit Graph

2278 Commits

Author SHA1 Message Date
Rahul Frias
870162db98 Fix test sleep on iOS. am: a9f051faac
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13805070

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I31ecfb95fb38161e88923743b86a42c609f4b010
2021-03-09 19:57:35 +00:00
Rahul Frias
0275dc360f Restrict a2b_hex to 2000 bytes. am: 9a659e31c1
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13805068

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ibdaaf80a067aff3764062ec1f698b68ff9e8e6fa
2021-03-09 19:57:33 +00:00
Rahul Frias
c5f308ac9f Return error when test initialization fails am: 616a9b38dc
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13798630

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I28c4774387c120a0b6e55379510e2b34b3c8d621
2021-03-09 19:57:31 +00:00
Rahul Frias
7cae719e46 Set renewal server on command line for tests am: 50efa73e34
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13798629

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I175b7b4343ced8563410d1cd5e6b59a27c493b97
2021-03-09 19:57:30 +00:00
Rahul Frias
ed0b7fb569 Fix deprecated and printf warnings. am: 24e4c33262
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13798628

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic995c1b470c82ddbdd9905cf8c22d61bba779212
2021-03-09 19:37:54 +00:00
Rahul Frias
a9f051faac Fix test sleep on iOS.
[ Merge of http://go/wvgerrit/117203 ]

clock_settime isn't available on iOS (even though settimeofday is).  But
we can't change the system time on iOS anyway, so this just disallows
iOS.

Bug: 182058081
Test: WV unit/integration tests
Change-Id: I96e5b6634803bd4e6aaf5cc6d64f4441296247d4
2021-03-08 15:28:48 -08:00
Rahul Frias
9a659e31c1 Restrict a2b_hex to 2000 bytes.
[ Merge of http://go/wvgerrit/109144 ]

Because it doesn't help anybody when a buffer overflow test chokes the
logger.

Bug: 182058081
Test: Ran unit tests with verbose logging
Change-Id: Ibcb3379b9eb9bdd94a8959b977e8de32ea116859
2021-03-08 15:27:01 -08:00
Rahul Frias
616a9b38dc Return error when test initialization fails
[ Merge of http://go/wvgerrit/116243 ]

Currently if a command line argument is not understood, all tests are
skipped and the test suite passes.

Bug: 182058081
Test: WV unit/integration tests
Change-Id: I9725a9ed9446f15f08372e68c7a25dffd99c7cef
2021-03-08 15:25:50 -08:00
Rahul Frias
50efa73e34 Set renewal server on command line for tests
[ Merge of http://go/wvgerrit/110903 ]

This CL adds the ability to set the renewal server on the command
line, and adds some comments to the build scripts' README file to
explain how to test a server rollout.

Bug: 173031207
Test: WV unit/integration tests
Change-Id: Ibe71e77469c94601627fb85a1ad4654553d3eb1a

Change-Id: I7e9bfc873c78e26c0cece113dc8a3d08cd9163db
2021-03-08 15:24:27 -08:00
Rahul Frias
24e4c33262 Fix deprecated and printf warnings.
[ Merge of http://go/wvgerrit/118703 ]

Bug: 182058081
Test: WV unit/integration tests
Change-Id: I2d8995b8aab864a2d2f5161d12a473d34e67bad4
2021-03-08 15:22:56 -08:00
Rahul Frias
ff102739b4 Throw DeniedByServerException when provisioning detects a revoked device am: 71cf45fb3f
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13798627

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie04a7bd2e2aac34fa8388ee81cf1e2233ec3bac9
2021-03-08 22:34:54 +00:00
Rahul Frias
71cf45fb3f Throw DeniedByServerException when provisioning detects a revoked device
[ Merge of http://go/wvgerrit/117267 ]

This includes some clang-format corrections that were missed in the
original merge from wvgerrit.

Bug: 174174765
Test: WvCdmRequestLicenseTest.ProvisioningRevocationTest,
      WV unit/integration tests
Change-Id: Ifd16ab51eb89530fa5e0b91acc42f30864246d38
2021-03-06 23:53:49 -08:00
Alex Dale
e52086c283 Include DRM key type to SessionMetrics.
[ Merge of http://go/wvgerrit/111903 ]

CDM metrics has been updated to include the DRM key type.  The CDM
session records the key type when the wrapped DRM key is successfully
loaded into an OEMCrypto session.

Now that the API refers to a general DRM key rather than an RSA key,
the timer metric for loading the DRM key has been renamed on the client
to reflect this.

Test: Metric unit tests
Bug: 140813486
Change-Id: I9069f13ac7c979cc8556e08591e1cf8f623d0a84
(cherry picked from commit 47fc031576)
Merged-In: I9069f13ac7c979cc8556e08591e1cf8f623d0a84
2021-03-06 23:47:30 -08:00
Robert Shih
92ff004556 Merge "libwvhidl: map errors to PROVISIONING_REQUEST_REJECTED" into sc-dev am: 6c03986218
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13756452

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia2db6beef77be11e30fab636740f5f380eb165b7
2021-03-07 06:40:24 +00:00
Robert Shih
6c03986218 Merge "libwvhidl: map errors to PROVISIONING_REQUEST_REJECTED" into sc-dev 2021-03-07 06:01:18 +00:00
Alex Dale
24102741e6 Merge "Map CERT_PROVISIONING_RESPONSE_ERROR_9 to HAL status." into sc-dev am: bb2e41adfd
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13692447

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iec769c3caedd5d677b52907e5846ca5089694a8b
2021-03-06 02:14:44 +00:00
Alex Dale
bb2e41adfd Merge "Map CERT_PROVISIONING_RESPONSE_ERROR_9 to HAL status." into sc-dev 2021-03-06 01:51:03 +00:00
Alex Dale
7e355910a8 Wrapped OEMCrypto RSA key operations. am: 7a46bc3c87
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13619897

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I1ad4d61a21319c403ab8b1a29414736cd9e7ba26
2021-03-05 05:10:29 +00:00
Alex Dale
a47e5bb5d9 Added unittests for reference ECC implementation. am: c42782f6d3
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13619896

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I84681dc5718caf500d92eec197fbdbe08f8cee1d
2021-03-05 04:25:26 +00:00
Alex Dale
7a46bc3c87 Wrapped OEMCrypto RSA key operations.
[ Merge of http://go/wvgerrit/115545 ]

This change wraps the RSA key in a public and private key class that is
similar to how ECC keys are wrapped.

This new wrapper replaces deprecated OpenSSL/BoringSSL RSA signing and
signature verification API and uses the generic key digest context for
RSASSA-PSS signatures.

Bug: 135283522
Test: Future CL
Change-Id: Ifff649a3abcca127cc539f937c429c7da8acdcc6
2021-03-03 20:25:46 -08:00
Alex Dale
c42782f6d3 Added unittests for reference ECC implementation.
[ Merge of http://go/wvgerrit/114284 ]

The unittests check that the ECC keys are being created as expected
and that they can perform their basic operations.

Bug: 135283522
Test: oemcrypto_unittests
Change-Id: I1bdb26421ba47e1ab135f5ce5a54da304627a7c3
2021-03-03 20:25:36 -08:00
Robert Shih
23182c9404 libwvhidl: map errors to PROVISIONING_REQUEST_REJECTED
[ Merge of http://go/wvgerrit/118623 ]

Bug: 180579631
Test: VtsHalDrmV1_4TargetTest
Change-Id: I95298218faffc97c19b4c8d4ac78187a62957dd1
2021-03-04 04:14:23 +00:00
Alex Dale
74eb71ecab Merge "Reference code for ECC operations." into sc-dev am: 4568ed6a04
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13619895

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Idcdd928d1aa936ac68510a29aaf35f82a672a039
2021-03-03 08:36:19 +00:00
Alex Dale
4568ed6a04 Merge "Reference code for ECC operations." into sc-dev 2021-03-03 05:46:49 +00:00
Alex Dale
0e0ce7cb34 Map CERT_PROVISIONING_RESPONSE_ERROR_9 to HAL status.
[ Merge of http://go/wvgerrit/117787 ]

The CdmResponseType code CERT_PROVISIONING_RESPONSE_ERROR_9 was
created while the discussion of mapping the other codes to 1.4 HAL
codes.  CERT_PROVISIONING_RESPONSE_ERROR_9 should be mapped to the HAL
code PROVISIONING_PARSE_ERROR.

Bug: 180579631
Change-Id: Iba51511bfea3139b3b0d9e3022be17375812b671
2021-03-02 17:48:28 -08:00
Robert Shih
4263295dcb Merge "wvcdm: filter logs by app uid" into sc-dev am: 1f796bc4e3
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13577645

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie9084b3e16655257555a3fbdd6b2cf1644f8d834
2021-03-02 10:44:05 +00:00
Robert Shih
1f796bc4e3 Merge "wvcdm: filter logs by app uid" into sc-dev 2021-03-02 09:54:32 +00:00
Robert Shih
48ca2c099c wvoec3: add membarriers to complete cache flush am: cbfc3c7193
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13719187

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I6f57d5bacfef47e2ebed665cb540e29a1fd44fe6
2021-03-02 05:34:28 +00:00
Robert Shih
7cb52c1ccf wvcdm: filter logs by app uid
This commit is a combination of the following:
* http://go/wvgerrit/117003
* http://go/wvgerrit/118303

Bug: 162255728
Test: MediaDrmTest#testGetLogMessages
Change-Id: I5699b64d5c4bab463e5b587595fa7d324dc1d93f
2021-03-01 11:56:37 -08:00
Robert Shih
cbfc3c7193 wvoec3: add membarriers to complete cache flush
Merge of http://go/wvgerrit/104543

Bug: 159465432
Test: oemcrypto_test
Change-Id: Idcf345088c1d40836b5e100d2f758147986a4b04
2021-02-28 05:57:40 +00:00
Alex Dale
f7389f1b3a Reference code for ECC operations.
[ Merge of http://go/wvgerrit/113750 ]

This introduces two classes EccPublicKey and EccPrivateKey which
perform all ECC-specific crypto operations.  The main operations
required by ECC are:
- Load/serialize keys from/to X.509 DER formats
- Generate ECC signatures
- Verify ECC signatures
- Derive session keys used by other OEMCrypto operations

These new classes still need to be plugged into rest of the reference
OEMCrypto implementation.

Bug: 135283522
Test: Future CL
Change-Id: Id071cad9129f95a6eb08662322154ba7d1548d40
2021-02-25 22:10:28 -08:00
Edwin Wong
49c6d9d548 Merge "Fix potential decrypt destPtr overflow." 2021-02-24 22:14:08 +00:00
Jeff Tinker
2204d5c960 Merge "Create a build_all_unit_tests.sh script" into sc-dev am: 1ffc6ab16a
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13534779

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I847086ea482abbbe2eb53cbbf615ddb17607e3e4
2021-02-24 21:51:45 +00:00
Jeff Tinker
1ffc6ab16a Merge "Create a build_all_unit_tests.sh script" into sc-dev 2021-02-24 19:51:46 +00:00
Rahul Frias
16ab61ac59 Merge changes I5ff61496,Ic1a41ed8 into sc-dev am: 01f597eed2
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13613380

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I798684a183430a27ffec426b783cea6aaafb6361
2021-02-24 00:14:12 +00:00
Rahul Frias
01f597eed2 Merge changes I5ff61496,Ic1a41ed8 into sc-dev
* changes:
  Throw DeniedByServerException when provisioning detects a revoked device
  Certificate provisioning proto updates
2021-02-23 23:43:39 +00:00
Alex Dale
2f10256f50 Merge "Include DRM key type to SessionMetrics." 2021-02-23 23:25:51 +00:00
Rahul Frias
64d5b38ff5 Throw DeniedByServerException when provisioning detects a revoked device
[ Merge of http://go/wvgerrit/117267 ]

The client will now advertise the ability to handle provisioning errors
by a minor version updated to the provisioning protocol version.
The provisioning service may indicate that the individual device
is revoked or all devices with the same make/model have been revoked.

If the provisoning service has not been upgraded, the protocol version
field in the request will be ignored. The provisioning service/SDK
will respond with an HTTP 400 error to a provisioning request from
a revoked device.

Bug: 174174765
Test: WvCdmRequestLicenseTest.ProvisioningRevocationTest,
      WV unit/integration tests
Change-Id: I5ff61496685f310de6704a90452b8b76b3505cbb
2021-02-23 14:36:21 -08:00
Edwin Wong
52019cfbc4 Merge "Display menu if no argument is given." into sc-dev am: 8659675556
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13669989

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I33806b889e616fe034b811d208b738d051aa76cf
2021-02-23 21:51:51 +00:00
Edwin Wong
8659675556 Merge "Display menu if no argument is given." into sc-dev 2021-02-23 21:03:08 +00:00
Rahul Frias
41ecde78cc Certificate provisioning proto updates
[ Merge of http://go/wvgerrit/117266 ]

These changes facilitate communication of provisioning errors from
provisioning service/SDK to the client.

Clients will indicate in the SignedProvisioningMessage whether they
support handling of error information in the ProvisioningResponse.
The provisioning service/SDK can then indicate why the provisioning
request is being rejected.

The protocol_version field from SignedProvisioningMessage has also been
broken into separate protocol version and provisioning type fields.
This will support changes planned for future releases.

Bug: 174174765
Test: WV unit/integration tests
Change-Id: Ic1a41ed8f83b69697300c586a78266fac20298fb
2021-02-23 00:09:32 -08:00
Edwin Wong
0ac0ee50eb Display menu if no argument is given.
If not argument is given, the app just sits and wait
for stdin input, this can be confusing for the user.
Add logic to display menu if no argument is given.

Test: metrics_dump
  display menu

Test: metrics_dump [bugreport from sabrina-q.gz]
  display mediadrm and widevine metrics

Test: metrics_dump --mediadrm [adb shell dumpsys media.metrics output]
  display mediadrm metrics

Test: metrics_dump --widevine [adb shell dumpsys media.metrics output]
  display widevine metrics

Test: metrics_dump [bugreport from sabrina-q.gz] --widevine
  display menu because the order is app_name, options, input file

Bug: 180983850
Change-Id: I9b35f782d8f59663661148d3950f89e4724b6bce
Merged-In: I9b35f782d8f59663661148d3950f89e4724b6bce
2021-02-22 23:04:59 -08:00
Alex Dale
a1d66834de Merge changes I09249afe,I713ff1c4 into sc-dev
* changes:
  Enable the CDM to track the DRM private key type.
  Report OEMCrypto's ECC capabilities.
2021-02-23 06:53:31 +00:00
Alex Dale
19e1008df7 Merge "Updated DrmDeviceCertificate for signature algo." into sc-dev 2021-02-23 06:53:18 +00:00
Robert Shih
82b5bc00cb Merge "OEMCrypto_LoadLicense doc cleanup" into sc-dev am: ae9b1cd128
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13639625

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I3c41c6e2e3e7f86c1446676cd7e4e79679791da5
2021-02-23 00:18:26 +00:00
Robert Shih
1c9c26af01 wvhidl: map wvcdm LogPriority to hidl LogPriority am: f7285fb0e9
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13580488

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ifdc6695f78522ca045b6e779138114a1968876fd
2021-02-23 00:18:21 +00:00
Robert Shih
ae9b1cd128 Merge "OEMCrypto_LoadLicense doc cleanup" into sc-dev 2021-02-22 23:30:55 +00:00
Edwin Wong
4787c8eec4 Fix potential decrypt destPtr overflow.
There is a potential integer overflow to bypass the
destination base size check in decrypt. The destPtr
can then point to the outside of the destination buffer.

Test: sts-tradefed
  sts-tradefed run sts-engbuild-no-spl-lock -m StsHostTestCases --test android.security.sts.Bug_176444622#testPocBug_176444622

Test: push to device with target_hwasan-userdebug build
  adb shell /data/local/tmp/Bug-17644462264

Bug: 176444622
Bug: 176496353
Change-Id: Id3aece61d46d548c304782d4e1dc3a4747795c01
2021-02-22 18:09:29 +00:00
Robert Shih
00b4a9b5b5 OEMCrypto_LoadLicense doc cleanup
Bug: 162255728
Change-Id: I11f74b1f38e0e073e0e2e464bdce41e720f00549
2021-02-20 08:38:39 +00:00
Robert Shih
f7285fb0e9 wvhidl: map wvcdm LogPriority to hidl LogPriority
[Merge of http://go/wvgerrit/117343]

Bug: 162255728
Test: VtsHalDrmV1_4TargetTest
Change-Id: I368b2d7a125e62e46ded322c1e171a15a9a7a1b4
2021-02-19 01:53:22 -08:00