Merge changes If26ecc5d,I8ae472f1
* changes: Correct ExoPlayer version Match GenerateRSASignature unit test code with actual code
This commit is contained in:
committed by
Android (Google) Code Review
commit
12edc84be8
@@ -2879,14 +2879,15 @@ TEST_F(DISABLED_TestKeybox, RSASignature) {
|
|||||||
OEMCrypto_GetRandom(&licenseRequest[0], licenseRequest.size());
|
OEMCrypto_GetRandom(&licenseRequest[0], licenseRequest.size());
|
||||||
size_t signature_length = 0;
|
size_t signature_length = 0;
|
||||||
|
|
||||||
|
uint8_t signature[500];
|
||||||
|
|
||||||
sts = OEMCrypto_GenerateRSASignature(s.session_id(), &licenseRequest[0],
|
sts = OEMCrypto_GenerateRSASignature(s.session_id(), &licenseRequest[0],
|
||||||
licenseRequest.size(), NULL,
|
licenseRequest.size(), signature,
|
||||||
&signature_length, kSign_RSASSA_PSS);
|
&signature_length, kSign_RSASSA_PSS);
|
||||||
|
|
||||||
ASSERT_EQ(OEMCrypto_ERROR_SHORT_BUFFER, sts);
|
ASSERT_EQ(OEMCrypto_ERROR_SHORT_BUFFER, sts);
|
||||||
ASSERT_NE(static_cast<size_t>(0), signature_length);
|
ASSERT_NE(static_cast<size_t>(0), signature_length);
|
||||||
|
ASSERT_GE(sizeof(signature), signature_length);
|
||||||
uint8_t* signature = new uint8_t[signature_length];
|
|
||||||
|
|
||||||
sts = OEMCrypto_GenerateRSASignature(s.session_id(), &licenseRequest[0],
|
sts = OEMCrypto_GenerateRSASignature(s.session_id(), &licenseRequest[0],
|
||||||
licenseRequest.size(), signature,
|
licenseRequest.size(), signature,
|
||||||
@@ -2898,7 +2899,6 @@ TEST_F(DISABLED_TestKeybox, RSASignature) {
|
|||||||
s.PreparePublicKey();
|
s.PreparePublicKey();
|
||||||
s.VerifyRSASignature(&licenseRequest[0], licenseRequest.size(), signature,
|
s.VerifyRSASignature(&licenseRequest[0], licenseRequest.size(), signature,
|
||||||
signature_length, kSign_RSASSA_PSS);
|
signature_length, kSign_RSASSA_PSS);
|
||||||
delete[] signature;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(DISABLED_TestKeybox, LoadRSASessionKey) {
|
TEST_F(DISABLED_TestKeybox, LoadRSASessionKey) {
|
||||||
|
|||||||
Binary file not shown.
@@ -1,12 +1,22 @@
|
|||||||
ExoPlayerDemo.apk can be used to do end-to-end verification of your Modular DRM.
|
ExoPlayerDemo.apk can be used to do end-to-end verification of Modular DRM.
|
||||||
|
|
||||||
To install, side load ExoPlayerDemo.apk app to your device:
|
To install, side load ExoPlayerDemo.apk app to your device:
|
||||||
|
|
||||||
adb install ExoPlayerDemo.apk
|
adb install ExoPlayerDemo.apk
|
||||||
|
|
||||||
To run, launch ExoPlayer, then choose the Revenge (DASH CENC) clip, which is encrypted
|
To run, launch ExoPlayer, then choose the clip to play. The
|
||||||
using DASH Common Encryption. Then press "Play" to start playback. The other clips
|
Widevine-encrypted DASH CENC assets are in the "WIDEVINE DASH GTS"
|
||||||
in the list are clear (i.e. not encrypted).
|
section.
|
||||||
|
|
||||||
|
These assets test various configurations of the Key Control Block (KCB)
|
||||||
|
with various protections and expirations:
|
||||||
|
|
||||||
|
WV: HDCP not specified (KCB: Observe_HDCP=false)
|
||||||
|
WV: HDCP not required (KCB: Observe_HDCP=true && HDCP=not required && DataPath=normal)
|
||||||
|
WV: HDCP required (KCB: Observe_HDCP=true && HDCP=required && DataPath=normal)
|
||||||
|
WV: Secure video path required (KCB: Observe_HDCP=true && HDCP=not required && DataPath=secure)
|
||||||
|
WV: HDCP + secure video path required (KCB: Observe_HDCP=true && HDCP=required && DataPath=secure)
|
||||||
|
WV: 30s license duration (KCB: test timer expiration)
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
|
|
||||||
@@ -24,5 +34,6 @@ Notes:
|
|||||||
AudioTrack.getTimestamp API to do A/V sync. It will fall back to how it used to do things if
|
AudioTrack.getTimestamp API to do A/V sync. It will fall back to how it used to do things if
|
||||||
the API isn't available.
|
the API isn't available.
|
||||||
|
|
||||||
- The apk is still built against API level 18. The features above are accessed via reflection.
|
- Exoplayer will retrieve a new license when playing "WV: 30s license duration",
|
||||||
|
after the license duration has expired. Integrators should verify by means
|
||||||
|
other than visual inspection that license duration is being enforced.
|
||||||
|
|||||||
Reference in New Issue
Block a user