Cas Client repo update-2.
-Parse EMM in Cas plugin -Entitlement key rotation support -Multi_content_license support
This commit is contained in:
@@ -1736,6 +1736,45 @@ TEST_P(OEMCryptoLicenseTest,
|
||||
strlen(content_key_id_1), OEMCrypto_CipherMode_CTR));
|
||||
}
|
||||
|
||||
// This verifies that an entitled key session can be reassociated to an OEMCrypto session.
|
||||
TEST_P(OEMCryptoLicenseTest, ReassociateEntitledKeySessionAPI16) {
|
||||
ASSERT_NO_FATAL_FAILURE(session_.GenerateNonce());
|
||||
license_messages_.set_license_type(OEMCrypto_EntitlementLicense);
|
||||
ASSERT_NO_FATAL_FAILURE(license_messages_.SignAndVerifyRequest());
|
||||
ASSERT_NO_FATAL_FAILURE(license_messages_.CreateDefaultResponse());
|
||||
ASSERT_NO_FATAL_FAILURE(license_messages_.EncryptAndSignResponse());
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, license_messages_.LoadResponse());
|
||||
// Setup another session.
|
||||
Session session2;
|
||||
ASSERT_NO_FATAL_FAILURE(session2.open());
|
||||
ASSERT_NO_FATAL_FAILURE(InstallTestRSAKey(&session2));
|
||||
ASSERT_NO_FATAL_FAILURE(session2.GenerateDerivedKeysFromSessionKey());
|
||||
// Setup an entitled key session in the first OEMCrypto session.
|
||||
uint32_t key_session_id;
|
||||
OEMCryptoResult sts = OEMCrypto_CreateEntitledKeySession(
|
||||
session_.session_id(), &key_session_id);
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, sts);
|
||||
EntitledMessage entitled_message(&license_messages_);
|
||||
entitled_message.FillKeyArray();
|
||||
entitled_message.SetEntitledKeySession(key_session_id);
|
||||
ASSERT_NO_FATAL_FAILURE(entitled_message.LoadCasKeys(
|
||||
OEMCrypto_SUCCESS, /*load_even=*/true, /*load_odd=*/true));
|
||||
|
||||
// Now reassociate the entitled key session to the second OEMCrypto session.
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, OEMCrypto_ReassociateEntitledKeySession(
|
||||
key_session_id, session2.session_id()));
|
||||
// session2 does not have entitlement keys.
|
||||
ASSERT_NO_FATAL_FAILURE(entitled_message.LoadCasKeys(
|
||||
OEMCrypto_ERROR_INVALID_CONTEXT, /*load_even=*/true, /*load_odd=*/true));
|
||||
|
||||
// Now reassociate the entitled key session back to the first OEMCrypto
|
||||
// session.
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, OEMCrypto_ReassociateEntitledKeySession(
|
||||
key_session_id, session_.session_id()));
|
||||
ASSERT_NO_FATAL_FAILURE(entitled_message.LoadCasKeys(
|
||||
OEMCrypto_SUCCESS, /*load_even=*/true, /*load_odd=*/true));
|
||||
}
|
||||
|
||||
// 'cens' mode is no longer supported in v16
|
||||
TEST_P(OEMCryptoLicenseTest, RejectCensAPI16) {
|
||||
ASSERT_NO_FATAL_FAILURE(session_.GenerateNonce());
|
||||
|
||||
Reference in New Issue
Block a user