Fixed issue converting Asn1 time to posix on 32-bit systems.

Used ASN1_TIME_to_posix API instead of ASN1_TIME_to_time_t
to avoid integer overflow on 32-bit systems.

Bug: 325853206
Test: vts -m VtsAidlKeyMintTarget
Change-Id: I7a01a521d389482a61ad9974b7e40eaa099c3571
This commit is contained in:
Subrahmanya Manikanta Venkateswarlu Bhamidipati Kameswara Sri
2024-02-26 19:23:44 +00:00
parent e00f10e0a5
commit b66a37a8e2

View File

@@ -1086,6 +1086,7 @@ TEST_P(NewKeyGenerationTest, RsaWithSpecifiedValidity) {
};
for (auto notBefore : test_vector_not_before_millis) {
uint64_t notAfter = notBefore + 378691200000 /* 12 years milliseconds*/;
SCOPED_TRACE(testing::Message() << "notBefore: " << notBefore << " notAfter: " << notAfter);
ASSERT_EQ(ErrorCode::OK,
GenerateKey(AuthorizationSetBuilder()
.RsaSigningKey(2048, 65537)
@@ -1101,14 +1102,14 @@ TEST_P(NewKeyGenerationTest, RsaWithSpecifiedValidity) {
const ASN1_TIME* not_before = X509_get0_notBefore(cert.get());
ASSERT_NE(not_before, nullptr);
time_t not_before_time;
ASSERT_EQ(ASN1_TIME_to_time_t(not_before, &not_before_time), 1);
int64_t not_before_time;
ASSERT_EQ(ASN1_TIME_to_posix(not_before, &not_before_time), 1);
EXPECT_EQ(not_before_time, (notBefore / 1000));
const ASN1_TIME* not_after = X509_get0_notAfter(cert.get());
ASSERT_NE(not_after, nullptr);
time_t not_after_time;
ASSERT_EQ(ASN1_TIME_to_time_t(not_after, &not_after_time), 1);
int64_t not_after_time;
ASSERT_EQ(ASN1_TIME_to_posix(not_after, &not_after_time), 1);
EXPECT_EQ(not_after_time, (notAfter / 1000));
}
}