Commit Graph

4972 Commits

Author SHA1 Message Date
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
Alex Dale
e15c0607c7 Enable the CDM to track the DRM private key type.
[ Merge of http://go/wvgerrit/110923 ]

The CDM is responsible for telling OEMCrypto the underlying DRM
private key type when loading it into a session.  To do this, the
CDM must determine and store the key type of a successfully loaded
provisioning response.  The type of key is available from the
DRM certificate proto that is provided in the reponse.

This change introduces a class to contain the wrapped key and
type together.  To store the type, the CDM device files have been
updated to include a key type with the DRM certificate and to
store from and load to the new class.

Unittests have been updated for using the new class where the
wrapped key was used before.

Test: Linux unit tests
Bug: 140813486
Change-Id: I09249afe9c291632fb651ecd00eac697d6939ec7
(cherry picked from commit 6c457402e944079271cef488aa4699f986da6a2e)
Merged-In: I09249afe9c291632fb651ecd00eac697d6939ec7
2021-02-18 23:10:39 +00:00
Alex Dale
e70c7a116e Report OEMCrypto's ECC capabilities.
[ Merge of http://go/wvgerrit/110824 ]

When generating a provisioning request, the CDM includes the different
certificate key types that are supported.

This change will enable the reporting of ECC certificate types if
OEMCrypto supports them.

Test: Linux unit tests and Android integration test
Bug: 140813486
Change-Id: I713ff1c469dff5c8a41461727ce63486d962575e
(cherry picked from commit 547d2f8775)
Merged-In: I713ff1c469dff5c8a41461727ce63486d962575e
2021-02-18 23:09:53 +00:00
Alex Dale
5e982e8fff Updated DrmDeviceCertificate for signature algo.
[ Merge of http://go/wvgerrit/110823 ]

DrmDeviceCertificate is the CDM's reduced version of DrmCertificate
used in the backend.  With the introduction of ECC, the CDM needs to
extract the signature algorithm to determine how to handle the wrapped
private key used by OEMCrypto post-provisioning.

This change brings the DrmDeviceCertificate in line with the
provisioning service's DrmCertificate message as the new source of
truth.

Bug: 140813486
Test: Compiled proto
Change-Id: I164a1c9266fb74b6cdd0ff35f1986ca032033bba
(cherry picked from commit 667c672c80)
Merged-In: I164a1c9266fb74b6cdd0ff35f1986ca032033bba
2021-02-18 23:08:29 +00:00
Robert Shih
027b61caa3 Merge "wv hidl: map CdmResponseType to drm@1.4 Status" into sc-dev am: 9397f5b972
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13526141

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iebef20947e294aa7bfecf6582607a410b053ca44
2021-02-18 00:48:21 +00:00
Robert Shih
6936b1efee WVDrmPlugin: map OEMCryptoResult to drm@1.4 Status am: 0450bfcda1
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13593533

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I9d37e77799ea2075df1dc4811304921c587e8974
2021-02-18 00:47:48 +00:00
Robert Shih
9397f5b972 Merge "wv hidl: map CdmResponseType to drm@1.4 Status" into sc-dev 2021-02-18 00:25:48 +00:00
Robert Shih
c3c84ea380 Merge "Run git-clang-format on log.{h,cpp}" into sc-dev am: bbfa2b4ff4
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13580486

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5a9559765e84ea8c561803ab37223c2bd1577cf5
2021-02-17 09:38:53 +00:00
Robert Shih
0450bfcda1 WVDrmPlugin: map OEMCryptoResult to drm@1.4 Status
Bug: 162255728
Change-Id: Ieb7de4e3d40e132ab17d5907132879714ef7e918
Test: MediaDrmTest#testExceptionMessage
2021-02-17 09:05:21 +00:00
Robert Shih
bbfa2b4ff4 Merge "Run git-clang-format on log.{h,cpp}" into sc-dev 2021-02-17 09:01:14 +00:00
Alex Dale
47fc031576 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
2021-02-16 10:30:30 -08:00
Robert Shih
89b9cb2706 Run git-clang-format on log.{h,cpp}
Bug: 168341163
Test: build
Change-Id: Ie51b1d4ab66e256992b6fffa524331ec124e047d
2021-02-16 00:39:43 -08:00
Robert Shih
d754094d27 Run git-clang-format am: fa49fdade0
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13549770

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5e61f1c9d701212a7ad5093790dfc648ebc22aa5
2021-02-16 08:17:08 +00:00
Robert Shih
fa49fdade0 Run git-clang-format
Bug: 168341163
Test: build
Change-Id: Icf8bd644ee5e87cd499ee017c8c522a96d385d4c
2021-02-11 08:40:31 -08:00
Jeff Tinker
bcc3313828 Create a build_all_unit_tests.sh script
bug: 163163467
test: ./build_all_unit_tests.sh
      ./build_and_run_all_unit_tests.sh

Merge from: go/wvgerrit/116524

Change-Id: I5eaf5ed34b46445d23530ca0edca94bfaeb3abaf
2021-02-09 12:10:31 -08:00
Robert Shih
6ed2c30a0a wv hidl: map CdmResponseType to drm@1.4 Status
Bug: 162255728
Test: VtsHalDrmV1_4TargetTest
Change-Id: Icc96c17f38218475efc7489348b75c9978f16b01
2021-02-08 19:10:43 -08:00
Alex Dale
0a68fbf9d7 Merge "Enable the CDM to track the DRM private key type." 2021-02-08 23:23:20 +00:00
Robert Shih
37991d8ee2 Merge "libwvhidl: implement API to get plugin logs" into sc-dev am: e77b029214
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13473325

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I18037e6f04ad5df060c2dbcf9a8dab379acb3634
2021-02-05 06:15:50 +00:00
Robert Shih
e77b029214 Merge "libwvhidl: implement API to get plugin logs" into sc-dev 2021-02-05 05:28:00 +00:00
Edwin Wong
044b7684d5 Fix potential decrypt src pointer overflow. am: c3a24e6c86 am: 25f89c373c am: 15ba854123 am: 37e0991645 am: 3ee1f400e7
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I53ec7a77f80c37409a1b3bde1b4a866c88eda095
2021-02-04 18:29:47 +00:00
Robert Shih
e04cb8dac2 Save recent Widevine CDM logs am: 83ef9081d1
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13472557

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I2d46fa52ea2552df7f40ec634b4f82f438e70d94
2021-02-04 18:29:23 +00:00
Edwin Wong
3ee1f400e7 Fix potential decrypt src pointer overflow. am: c3a24e6c86 am: 25f89c373c am: 15ba854123 am: 37e0991645
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I71106d21ee571a1446ffe9271e8c1f5672505abf
2021-02-04 18:25:22 +00:00
Robert Shih
12995287fa libwvhidl: implement API to get plugin logs
Bug: 162255728
Test: VtsHalDrmV1_4TargetTest
Change-Id: I333cb1ee2f25ae718e7f544f4a5f7ee50668041a
2021-02-04 06:43:54 -08:00
Robert Shih
83ef9081d1 Save recent Widevine CDM logs
Bug: 162255728
Test: cdm unit tests
Change-Id: Ibc0daf374bedd8ac2a9a0515835e2775045962a7
2021-02-04 05:12:09 +00:00
TreeHugger Robot
041157e3f0 Merge "Shell quoting in move_widevine_data.sh" 2021-02-03 05:29:45 +00:00
Edwin Wong
5ac6a8ff3d Fix potential decrypt src pointer overflow. am: c3a24e6c86 am: 25f89c373c am: 15ba854123 am: 0126cc541f am: cd37425acb am: 2b094e710e
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7a0954e9047c777f924622d1f32cc1b01b1cb127
2021-02-03 02:53:50 +00:00
Edwin Wong
2b094e710e Fix potential decrypt src pointer overflow. am: c3a24e6c86 am: 25f89c373c am: 15ba854123 am: 0126cc541f am: cd37425acb
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia0171ddb362a84d8b08c9a429e40adab4baf1b8c
2021-02-03 02:19:51 +00:00
Edwin Wong
fc806387f0 Fix potential decrypt src pointer overflow. am: c3a24e6c86 am: 25f89c373c am: 15ba854123 am: 37e0991645
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5171e6e3c74b379e759526fe6610e89bac62aacd
2021-02-03 01:34:34 +00:00
Edwin Wong
cd37425acb Fix potential decrypt src pointer overflow. am: c3a24e6c86 am: 25f89c373c am: 15ba854123 am: 0126cc541f
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I1644e541f8f21e85f58b600880537da9bd7d9301
2021-02-03 01:33:24 +00:00
Edwin Wong
37e0991645 Fix potential decrypt src pointer overflow. am: c3a24e6c86 am: 25f89c373c am: 15ba854123
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I3356e46dd849cd63e90f36d33e72dec525403f7d
2021-02-03 01:13:28 +00:00
Edwin Wong
0126cc541f Fix potential decrypt src pointer overflow. am: c3a24e6c86 am: 25f89c373c am: 15ba854123
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0ca1b56fb48691be44e302dc0acaecfdf14b7e5c
2021-02-03 01:11:50 +00:00
Edwin Wong
15ba854123 Fix potential decrypt src pointer overflow. am: c3a24e6c86 am: 25f89c373c
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie5c32617a1ebbed4805aa0a048a2ab92ff958c11
2021-02-03 00:35:53 +00:00
Edwin Wong
25f89c373c Fix potential decrypt src pointer overflow. am: c3a24e6c86
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13421305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I243e7a6e4ea799af9759be2ee41f9d9ff7805f0e
2021-02-03 00:03:49 +00:00
Alex Dale
247cf053e5 Enable the CDM to track the DRM private key type.
[ Merge of http://go/wvgerrit/110923 ]

The CDM is responsible for telling OEMCrypto the underlying DRM
private key type when loading it into a session.  To do this, the
CDM must determine and store the key type of a successfully loaded
provisioning response.  The type of key is available from the
DRM certificate proto that is provided in the reponse.

This change introduces a class to contain the wrapped key and
type together.  To store the type, the CDM device files have been
updated to include a key type with the DRM certificate and to
store from and load to the new class.

Unittests have been updated for using the new class where the
wrapped key was used before.

Test: Linux unit tests
Bug: 140813486
Change-Id: I09249afe9c291632fb651ecd00eac697d6939ec7
2021-02-01 13:37:57 -08:00
Alex Dale
4a7633a4ad Merge "Report OEMCrypto's ECC capabilities." 2021-01-29 22:54:39 +00:00
Alex Dale
57c861a793 Merge "Updated DrmDeviceCertificate for signature algo." 2021-01-29 22:54:18 +00:00
Edwin Wong
c3a24e6c86 Fix potential decrypt src pointer overflow.
Merged from http://go/wvgerrit/114903

There is a potential integer overflow to bypass the
source base size check in decrypt. The source pointer
can then point to the outside of the source buffer,
which could potentially leak arbitrary memory content
to destination pointer.

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

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

Bug: 176496160
Bug: 176444786
Change-Id: I208e0d5d949e8ef003fcf7d6f129eab66b9b3656
2021-01-28 17:59:08 +00:00
bohu
c56df8e8e0 [automerger skipped] widevine: allows to build service on 64bit only guest am: f225e9876e am: a62b32a0ee -s ours
am skip reason: Change-Id I0181dcc355e706dd923f940018821fcae244a941 with SHA-1 8d723e7b8c is in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13418915

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id25b8a855efe5b98ecc58034a68e1e3c74ab7424
2021-01-27 22:36:41 +00:00
bohu
a62b32a0ee widevine: allows to build service on 64bit only guest am: f225e9876e
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/13418915

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I04b8a96fad6d81a7e64a12cfb563fddd92484103
2021-01-27 21:58:52 +00:00
Alex Dale
547d2f8775 Report OEMCrypto's ECC capabilities.
[ Merge of http://go/wvgerrit/110824 ]

When generating a provisioning request, the CDM includes the different
certificate key types that are supported.

This change will enable the reporting of ECC certificate types if
OEMCrypto supports them.

Test: Linux unit tests and Android integration test
Bug: 140813486
Change-Id: I713ff1c469dff5c8a41461727ce63486d962575e
2021-01-27 11:37:21 -08:00
Alex Dale
667c672c80 Updated DrmDeviceCertificate for signature algo.
[ Merge of http://go/wvgerrit/110823 ]

DrmDeviceCertificate is the CDM's reduced version of DrmCertificate
used in the backend.  With the introduction of ECC, the CDM needs to
extract the signature algorithm to determine how to handle the wrapped
private key used by OEMCrypto post-provisioning.

This change brings the DrmDeviceCertificate in line with the
provisioning service's DrmCertificate message as the new source of
truth.

Bug: 140813486
Test: Compiled proto
Change-Id: I164a1c9266fb74b6cdd0ff35f1986ca032033bba
2021-01-27 11:32:30 -08:00
bohu
f225e9876e widevine: allows to build service on 64bit only guest
BUG: 177228019
Change-Id: I0181dcc355e706dd923f940018821fcae244a941
Merged-In: I0181dcc355e706dd923f940018821fcae244a941
(cherry picked from commit 8d723e7b8c)
2021-01-27 18:17:24 +00:00
bohu
8d723e7b8c widevine: allows to build service on 64bit only guest
Change-Id: I0181dcc355e706dd923f940018821fcae244a941
2021-01-25 22:05:53 -08:00