Remove error OEMCrypto_KEY_NOT_LOADED
Merge from master branch of Widevine repo of http://go/wvgerrit/66066 Merge from oemcrypto-v15 branch of Widevine repo of http://go/wvgerrit/63628 The error code OEMCrypto_KEY_NOT_LOADED is redundant with OEMCrypto_ERROR_NO_CONTENT_KEY and OEMCrypto_KEY_NOT_ENTITLED. The function LoadEntitledContentKey should return KEY_NOT_ENTITLED if it does not find the corresponding entitlement key in its key table. All other functions that do not find a key id in the key table should return OEMCrypto_ERROR_NO_CONTENT_KEY. This includes QueryKeyControl, SelectKey, and RefreshKeys. Test: unit tests Test: tested as part of http://go/ag/5501993 Bug: 115574797 Change-Id: Ida2111f32e331b99f3f0c77fa404a42654d0870c
This commit is contained in:
@@ -850,7 +850,7 @@ TEST_F(OEMCryptoSessionTests, LoadEntitlementKeysAPI14) {
|
||||
ASSERT_NO_FATAL_FAILURE(InstallTestSessionKeys(&s));
|
||||
ASSERT_NO_FATAL_FAILURE(s.FillSimpleEntitlementMessage(0, 0, 0));
|
||||
ASSERT_NO_FATAL_FAILURE(s.EncryptAndSign());
|
||||
ASSERT_NO_FATAL_FAILURE(s.LoadEnitlementTestKeys());
|
||||
ASSERT_NO_FATAL_FAILURE(s.LoadEntitlementTestKeys());
|
||||
s.FillEntitledKeyArray();
|
||||
ASSERT_NO_FATAL_FAILURE(s.LoadEntitledContentKeys());
|
||||
s.FillEntitledKeyArray();
|
||||
@@ -863,10 +863,26 @@ TEST_F(OEMCryptoSessionTests, LoadEntitlementKeysNoEntitlementKeysAPI14) {
|
||||
ASSERT_NO_FATAL_FAILURE(InstallTestSessionKeys(&s));
|
||||
ASSERT_NO_FATAL_FAILURE(s.FillSimpleEntitlementMessage(0, 0, 0));
|
||||
ASSERT_NO_FATAL_FAILURE(s.EncryptAndSign());
|
||||
// We do NOT call LoadEntitlementTestKeys.
|
||||
s.FillEntitledKeyArray();
|
||||
s.LoadEntitledContentKeys(OEMCrypto_ERROR_INVALID_CONTEXT);
|
||||
}
|
||||
|
||||
TEST_F(OEMCryptoSessionTests, LoadEntitlementKeysWrongEntitlementKeysAPI14) {
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
ASSERT_NO_FATAL_FAILURE(InstallTestSessionKeys(&s));
|
||||
ASSERT_NO_FATAL_FAILURE(s.FillSimpleEntitlementMessage(0, 0, 0));
|
||||
ASSERT_NO_FATAL_FAILURE(s.EncryptAndSign());
|
||||
ASSERT_NO_FATAL_FAILURE(s.LoadEntitlementTestKeys());
|
||||
s.FillEntitledKeyArray();
|
||||
const std::string key_id = "no_key";
|
||||
s.entitled_key_array()[0].entitlement_key_id =
|
||||
reinterpret_cast<const uint8_t*>(key_id.c_str());
|
||||
s.entitled_key_array()[0].entitlement_key_id_length = key_id.length();
|
||||
s.LoadEntitledContentKeys(OEMCrypto_KEY_NOT_ENTITLED);
|
||||
}
|
||||
|
||||
// This tests GenerateSignature with an 8k licnese request.
|
||||
TEST_F(OEMCryptoSessionTests, ClientSignatureLargeBuffer) {
|
||||
Session s;
|
||||
@@ -1267,6 +1283,21 @@ TEST_F(OEMCryptoSessionTests, LoadKeyNoKeyWithNonce) {
|
||||
OEMCrypto_ContentLicense));
|
||||
}
|
||||
|
||||
TEST_F(OEMCryptoSessionTests, SelectKeyNotThere) {
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
ASSERT_NO_FATAL_FAILURE(InstallTestSessionKeys(&s));
|
||||
ASSERT_NO_FATAL_FAILURE(
|
||||
s.FillSimpleMessage(0, wvoec::kControlNonceEnabled, s.get_nonce()));
|
||||
ASSERT_NO_FATAL_FAILURE(s.EncryptAndSign());
|
||||
ASSERT_NO_FATAL_FAILURE(s.LoadTestKeys());
|
||||
const char* key_id = "no_key";
|
||||
ASSERT_EQ(OEMCrypto_ERROR_NO_CONTENT_KEY,
|
||||
OEMCrypto_SelectKey(
|
||||
s.session_id(), reinterpret_cast<const uint8_t*>(key_id),
|
||||
strlen(key_id), OEMCrypto_CipherMode_CTR));
|
||||
}
|
||||
|
||||
TEST_F(OEMCryptoSessionTests, QueryKeyControl) {
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
@@ -1288,7 +1319,7 @@ TEST_F(OEMCryptoSessionTests, QueryKeyControl) {
|
||||
ASSERT_EQ(OEMCrypto_ERROR_SHORT_BUFFER, sts);
|
||||
const char* key_id = "no_key";
|
||||
size = sizeof(block);
|
||||
ASSERT_NE(OEMCrypto_SUCCESS,
|
||||
ASSERT_EQ(OEMCrypto_ERROR_NO_CONTENT_KEY,
|
||||
OEMCrypto_QueryKeyControl(
|
||||
s.session_id(), reinterpret_cast<const uint8_t*>(key_id),
|
||||
strlen(key_id), reinterpret_cast<uint8_t*>(&block), &size));
|
||||
|
||||
Reference in New Issue
Block a user