Merge "Add Short Key ID Test" into mnc-dev

This commit is contained in:
Fred Gylys-Colwell
2015-07-01 22:50:09 +00:00
committed by Android (Google) Code Review

View File

@@ -4725,6 +4725,39 @@ TEST_F(GenericCryptoTest, KeyDurationVerify) {
ASSERT_EQ(OEMCrypto_ERROR_KEY_EXPIRED, sts);
}
TEST_F(GenericCryptoTest, UniformShortKeyId) {
OEMCryptoResult sts;
Session s;
s.open();
s.GenerateTestSessionKeys();
MakeFourKeys(&s);
s.SetKeyId(0, "123456789012"); // 12 bytes.
s.SetKeyId(1, "aaaaaaaaaaaa");
s.SetKeyId(2, "bbbbbbbbbbbb");
s.SetKeyId(3, "cccccccccccc");
s.EncryptAndSign();
s.LoadTestKeys();
unsigned int key_index = 1;
vector<uint8_t> encrypted;
// To make sure OEMCrypto is not expecting the key_id to be zero padded, we
// will create a buffer that is padded with 'Z'.
vector<uint8_t> key_id_buffer(s.license().keys[key_index].key_id_length + 5,
'Z'); // Fill a bigger buffer with letter 'Z'.
memcpy(key_id_buffer.data(), s.license().keys[key_index].key_id,
s.license().keys[key_index].key_id_length);
EncryptBuffer(&s, key_index, clear_buffer_, &encrypted);
sts = OEMCrypto_SelectKey(s.session_id(), key_id_buffer.data(),
s.license().keys[key_index].key_id_length);
ASSERT_EQ(OEMCrypto_SUCCESS, sts);
vector<uint8_t> resultant(encrypted.size());
sts = OEMCrypto_Generic_Decrypt(s.session_id(), &encrypted[0], encrypted.size(),
iv_, OEMCrypto_AES_CBC_128_NO_PADDING,
&resultant[0]);
ASSERT_EQ(OEMCrypto_SUCCESS, sts);
ASSERT_EQ(clear_buffer_, resultant);
}
TEST_F(GenericCryptoTest, DISABLED_ShortKeyId) {
OEMCryptoResult sts;
Session s;