Snap for 6544659 from c6ca287334 to sc-release
Change-Id: I0b469fa6cded781a2be926daac2315bd813f3cdb
This commit is contained in:
@@ -12,20 +12,9 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __has_builtin
|
|
||||||
# define __has_builtin(x) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (defined(__GNUC__) && __GNUC__ >= 5) || \
|
|
||||||
__has_builtin(__builtin_add_overflow)
|
|
||||||
# define odk_sub_overflow_u64 __builtin_sub_overflow
|
|
||||||
# define odk_add_overflow_u64 __builtin_add_overflow
|
|
||||||
# define odk_add_overflow_ux __builtin_add_overflow
|
|
||||||
#else
|
|
||||||
int odk_sub_overflow_u64(uint64_t a, uint64_t b, uint64_t* c);
|
int odk_sub_overflow_u64(uint64_t a, uint64_t b, uint64_t* c);
|
||||||
int odk_add_overflow_u64(uint64_t a, uint64_t b, uint64_t* c);
|
int odk_add_overflow_u64(uint64_t a, uint64_t b, uint64_t* c);
|
||||||
int odk_add_overflow_ux(size_t a, size_t b, size_t* c);
|
int odk_add_overflow_ux(size_t a, size_t b, size_t* c);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ static void Unpack_ODK_ParsedLicense(Message* msg, ODK_ParsedLicense* obj) {
|
|||||||
Unpack_OEMCrypto_Substring(msg, &obj->enc_mac_keys);
|
Unpack_OEMCrypto_Substring(msg, &obj->enc_mac_keys);
|
||||||
Unpack_OEMCrypto_Substring(msg, &obj->pst);
|
Unpack_OEMCrypto_Substring(msg, &obj->pst);
|
||||||
Unpack_OEMCrypto_Substring(msg, &obj->srm_restriction_data);
|
Unpack_OEMCrypto_Substring(msg, &obj->srm_restriction_data);
|
||||||
obj->license_type = Unpack_enum(msg);
|
obj->license_type = (OEMCrypto_LicenseType)Unpack_enum(msg);
|
||||||
Unpack_bool(msg, &obj->nonce_required);
|
Unpack_bool(msg, &obj->nonce_required);
|
||||||
Unpack_ODK_TimerLimits(msg, &obj->timer_limits);
|
Unpack_ODK_TimerLimits(msg, &obj->timer_limits);
|
||||||
Unpack_uint32_t(msg, &obj->key_array_length);
|
Unpack_uint32_t(msg, &obj->key_array_length);
|
||||||
@@ -167,7 +167,7 @@ static void Unpack_ODK_ParsedLicense(Message* msg, ODK_ParsedLicense* obj) {
|
|||||||
|
|
||||||
static void Unpack_ODK_ParsedProvisioning(Message* msg,
|
static void Unpack_ODK_ParsedProvisioning(Message* msg,
|
||||||
ODK_ParsedProvisioning* obj) {
|
ODK_ParsedProvisioning* obj) {
|
||||||
obj->key_type = Unpack_enum(msg);
|
obj->key_type = (OEMCrypto_PrivateKeyType)Unpack_enum(msg);
|
||||||
Unpack_OEMCrypto_Substring(msg, &obj->enc_private_key);
|
Unpack_OEMCrypto_Substring(msg, &obj->enc_private_key);
|
||||||
Unpack_OEMCrypto_Substring(msg, &obj->enc_private_key_iv);
|
Unpack_OEMCrypto_Substring(msg, &obj->enc_private_key_iv);
|
||||||
Unpack_OEMCrypto_Substring(msg, &obj->encrypted_message_key);
|
Unpack_OEMCrypto_Substring(msg, &obj->encrypted_message_key);
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ int crypto_memcmp(const void* in_a, const void* in_b, size_t len) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint8_t* a = in_a;
|
const uint8_t* a = (const uint8_t*)in_a;
|
||||||
const uint8_t* b = in_b;
|
const uint8_t* b = (const uint8_t*)in_b;
|
||||||
uint8_t x = 0;
|
uint8_t x = 0;
|
||||||
|
|
||||||
for (size_t i = 0; i < len; i++) {
|
for (size_t i = 0; i < len; i++) {
|
||||||
|
|||||||
@@ -1009,7 +1009,7 @@ void Session::GenerateDerivedKeysFromSessionKey() {
|
|||||||
// Uses test certificate.
|
// Uses test certificate.
|
||||||
vector<uint8_t> session_key;
|
vector<uint8_t> session_key;
|
||||||
vector<uint8_t> enc_session_key;
|
vector<uint8_t> enc_session_key;
|
||||||
if (public_rsa_ == nullptr) PreparePublicKey();
|
ASSERT_NE(public_rsa_, nullptr) << "No public RSA key loaded in test code.";
|
||||||
// A failure here probably indicates that there is something wrong with the
|
// A failure here probably indicates that there is something wrong with the
|
||||||
// test program and its dependency on BoringSSL.
|
// test program and its dependency on BoringSSL.
|
||||||
ASSERT_TRUE(GenerateRSASessionKey(&session_key, &enc_session_key));
|
ASSERT_TRUE(GenerateRSASessionKey(&session_key, &enc_session_key));
|
||||||
@@ -1297,12 +1297,11 @@ void Session::VerifyRSASignature(const vector<uint8_t>& message,
|
|||||||
const uint8_t* signature,
|
const uint8_t* signature,
|
||||||
size_t signature_length,
|
size_t signature_length,
|
||||||
RSA_Padding_Scheme padding_scheme) {
|
RSA_Padding_Scheme padding_scheme) {
|
||||||
EXPECT_TRUE(nullptr != public_rsa_)
|
ASSERT_NE(public_rsa_, nullptr) << "No public RSA key loaded in test code.";
|
||||||
<< "No public RSA key loaded in test code.\n";
|
|
||||||
|
|
||||||
EXPECT_EQ(static_cast<size_t>(RSA_size(public_rsa_)), signature_length)
|
ASSERT_EQ(static_cast<size_t>(RSA_size(public_rsa_)), signature_length)
|
||||||
<< "Signature size is wrong. " << signature_length << ", should be "
|
<< "Signature size is wrong. " << signature_length << ", should be "
|
||||||
<< RSA_size(public_rsa_) << "\n";
|
<< RSA_size(public_rsa_);
|
||||||
|
|
||||||
if (padding_scheme == kSign_RSASSA_PSS) {
|
if (padding_scheme == kSign_RSASSA_PSS) {
|
||||||
boringssl_ptr<EVP_PKEY, EVP_PKEY_free> pkey(EVP_PKEY_new());
|
boringssl_ptr<EVP_PKEY, EVP_PKEY_free> pkey(EVP_PKEY_new());
|
||||||
|
|||||||
@@ -81,6 +81,6 @@ void SessionUtil::InstallTestRSAKey(Session* s) {
|
|||||||
ASSERT_NO_FATAL_FAILURE(s->InstallRSASessionTestKey(wrapped_rsa_key_));
|
ASSERT_NO_FATAL_FAILURE(s->InstallRSASessionTestKey(wrapped_rsa_key_));
|
||||||
}
|
}
|
||||||
// Test RSA key should be loaded.
|
// Test RSA key should be loaded.
|
||||||
ASSERT_NO_FATAL_FAILURE(s->GenerateDerivedKeysFromSessionKey());
|
ASSERT_NO_FATAL_FAILURE(s->PreparePublicKey());
|
||||||
}
|
}
|
||||||
} // namespace wvoec
|
} // namespace wvoec
|
||||||
|
|||||||
@@ -688,6 +688,7 @@ TEST_F(OEMCryptoProv30Test, GetCertOnlyAPI16) {
|
|||||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||||
// Install the DRM Cert's RSA key.
|
// Install the DRM Cert's RSA key.
|
||||||
ASSERT_NO_FATAL_FAILURE(s.InstallRSASessionTestKey(wrapped_rsa_key_));
|
ASSERT_NO_FATAL_FAILURE(s.InstallRSASessionTestKey(wrapped_rsa_key_));
|
||||||
|
ASSERT_NO_FATAL_FAILURE(s.PreparePublicKey());
|
||||||
// Request the OEM Cert. -- This should NOT load the OEM Private key.
|
// Request the OEM Cert. -- This should NOT load the OEM Private key.
|
||||||
vector<uint8_t> public_cert;
|
vector<uint8_t> public_cert;
|
||||||
size_t public_cert_length = 0;
|
size_t public_cert_length = 0;
|
||||||
@@ -4885,6 +4886,7 @@ class LicenseWithUsageEntry {
|
|||||||
ASSERT_NO_FATAL_FAILURE(session_.open());
|
ASSERT_NO_FATAL_FAILURE(session_.open());
|
||||||
ASSERT_NO_FATAL_FAILURE(session_.ReloadUsageEntry());
|
ASSERT_NO_FATAL_FAILURE(session_.ReloadUsageEntry());
|
||||||
ASSERT_NO_FATAL_FAILURE(util->InstallTestRSAKey(&session_));
|
ASSERT_NO_FATAL_FAILURE(util->InstallTestRSAKey(&session_));
|
||||||
|
ASSERT_NO_FATAL_FAILURE(session_.GenerateDerivedKeysFromSessionKey());
|
||||||
ASSERT_EQ(OEMCrypto_SUCCESS, license_messages_.LoadResponse());
|
ASSERT_EQ(OEMCrypto_SUCCESS, license_messages_.LoadResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6008,6 +6010,7 @@ TEST_P(OEMCryptoUsageTableTest, ReloadUsageTableWithSkew) {
|
|||||||
old_usage_entry_1.data(),
|
old_usage_entry_1.data(),
|
||||||
old_usage_entry_1.size()));
|
old_usage_entry_1.size()));
|
||||||
ASSERT_NO_FATAL_FAILURE(InstallTestRSAKey(&s));
|
ASSERT_NO_FATAL_FAILURE(InstallTestRSAKey(&s));
|
||||||
|
ASSERT_NO_FATAL_FAILURE(s.GenerateDerivedKeysFromSessionKey());
|
||||||
ASSERT_EQ(OEMCrypto_SUCCESS, entry.license_messages().LoadResponse());
|
ASSERT_EQ(OEMCrypto_SUCCESS, entry.license_messages().LoadResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user