Source release 18.5.0
This commit is contained in:
@@ -39,6 +39,8 @@ namespace wvoec {
|
||||
/// @addtogroup security
|
||||
/// @{
|
||||
|
||||
/** Test that OEMCrypto_FreeSecureBuffer fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoClientTest,
|
||||
OEMCryptoMemoryAllocateSecureBufferForHugeBufferSize) {
|
||||
Session s;
|
||||
@@ -57,6 +59,8 @@ TEST_F(OEMCryptoClientTest,
|
||||
s.close();
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_WrapKeyboxOrOEMCert fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoClientTest,
|
||||
OEMCryptoMemoryWrapKeyboxOrOEMCertForHugeKeyboxLength) {
|
||||
auto oemcrypto_function = [](size_t keybox_length) {
|
||||
@@ -74,6 +78,8 @@ TEST_F(OEMCryptoClientTest,
|
||||
kHugeInputBufferLength, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_WrapKeyboxOrOEMCert fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoClientTest,
|
||||
OEMCryptoMemoryWrapKeyboxOrOEMCertForHugeWrappedKeyboxLength) {
|
||||
auto oemcrypto_function = [](size_t buffer_length) {
|
||||
@@ -91,6 +97,8 @@ TEST_F(OEMCryptoClientTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_WrapKeyboxOrOEMCert fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoClientTest,
|
||||
OEMCryptoMemoryWrapKeyboxOrOEMCertForHugeTransportKey) {
|
||||
auto oemcrypto_function = [](size_t transport_key_length) {
|
||||
@@ -105,6 +113,8 @@ TEST_F(OEMCryptoClientTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_WrapKeyboxOrOEMCert fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(
|
||||
OEMCryptoClientTest,
|
||||
OEMCryptoMemoryWrapKeyboxOrOEMCertForHugeKeyboxLengthStartingFromLength1) {
|
||||
@@ -124,7 +134,8 @@ TEST_F(
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
// Test that set sandbox doesn't crash for a large sandbox id leangth.
|
||||
/** Test that OEMCrypto_SetSandbox fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoClientTest, OEMCryptoMemorySetSandboxForHugeSandboxIdLength) {
|
||||
auto oemcrypto_function = [](size_t buffer_length) {
|
||||
vector<uint8_t> buffer(buffer_length);
|
||||
@@ -133,6 +144,8 @@ TEST_F(OEMCryptoClientTest, OEMCryptoMemorySetSandboxForHugeSandboxIdLength) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_CopyBuffer fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoClientTest, OEMCryptoMemoryCopyBufferForHugeBufferLengths) {
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
@@ -163,6 +176,9 @@ TEST_F(OEMCryptoClientTest, OEMCryptoMemoryCopyBufferForHugeBufferLengths) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** @ingroup security
|
||||
* Test that OEMCrypto_CopyBuffer fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoClientTest,
|
||||
OEMCryptoMemoryCopyBufferDirectForHugeBufferLengths) {
|
||||
Session s;
|
||||
@@ -184,6 +200,9 @@ TEST_F(OEMCryptoClientTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** @ingroup security
|
||||
* Test that OEMCrypto_CopyBuffer fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoClientTest, OEMCryptoMemoryCopyBufferForOutOfRangeOffset) {
|
||||
Session s;
|
||||
ASSERT_NO_FATAL_FAILURE(s.open());
|
||||
@@ -245,6 +264,9 @@ TEST_F(OEMCryptoKeyboxTest,
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @ingroup security
|
||||
* Test that OEMCrypto_LoadTestKeybox fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoKeyboxTest, OEMCryptoMemoryLoadTestKeyBoxForHugeKeyboxBuffer) {
|
||||
auto f = [](size_t keybox_length) {
|
||||
vector<uint8_t> keybox(keybox_length);
|
||||
@@ -257,6 +279,9 @@ TEST_F(OEMCryptoKeyboxTest, OEMCryptoMemoryLoadTestKeyBoxForHugeKeyboxBuffer) {
|
||||
kCheckStatus);
|
||||
}
|
||||
|
||||
/** @ingroup security
|
||||
* Test that OEMCrypto_LoadTestKeybox fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoKeyboxTest,
|
||||
OEMCryptoMemoryLoadTestKeyBoxForHugeKeyboxBufferStartingFromLength1) {
|
||||
auto f = [](size_t keybox_length) {
|
||||
@@ -268,6 +293,8 @@ TEST_F(OEMCryptoKeyboxTest,
|
||||
TestHugeLengthDoesNotCrashAPI(f, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_GetDeviceID fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoKeyboxTest, OEMCryptoMemoryGetDeviceIdForHugeIdLength) {
|
||||
auto oemcrypto_function = [](size_t input_length) {
|
||||
size_t device_id_length = input_length;
|
||||
@@ -277,6 +304,8 @@ TEST_F(OEMCryptoKeyboxTest, OEMCryptoMemoryGetDeviceIdForHugeIdLength) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_GetKeyData fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoKeyboxTest, OEMCryptoMemoryGetKeyIdForHugeIdLength) {
|
||||
auto oemcrypto_function = [](size_t input_length) {
|
||||
size_t key_data_length = input_length;
|
||||
@@ -286,6 +315,8 @@ TEST_F(OEMCryptoKeyboxTest, OEMCryptoMemoryGetKeyIdForHugeIdLength) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_GenerateDerivedKeys fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoKeyboxTest,
|
||||
OEMCryptoMemoryGenerateDerivedKeysForHugeMacContextLength) {
|
||||
Session s;
|
||||
@@ -304,6 +335,8 @@ TEST_F(OEMCryptoKeyboxTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_GenerateDerivedKeys fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoKeyboxTest,
|
||||
OEMCryptoMemoryGenerateDerivedKeysForHugeEncContextLength) {
|
||||
Session s;
|
||||
@@ -322,6 +355,9 @@ TEST_F(OEMCryptoKeyboxTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_GetOEMPublicCertificate fails gracefully on a huge
|
||||
* buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoProv30Test, OEMCryptoMemoryGetOEMPublicCertForHugeCertLength) {
|
||||
if (wrapped_rsa_key_.size() == 0) {
|
||||
// If we don't have a wrapped key yet, create one.
|
||||
@@ -343,6 +379,9 @@ TEST_F(OEMCryptoProv30Test, OEMCryptoMemoryGetOEMPublicCertForHugeCertLength) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_CreateUsageTableHeader fails gracefully on a huge
|
||||
* buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoSessionTests,
|
||||
OEMCryptoMemoryCreateUsageTableHeaderForHugeHeaderBufferLength) {
|
||||
auto oemcrypto_function = [](size_t buffer_length) {
|
||||
@@ -354,6 +393,9 @@ TEST_F(OEMCryptoSessionTests,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_PrepAndSignRenewalRequest fails gracefully on a huge
|
||||
* buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryPrepareRenewalRequestForHugeBufferLength) {
|
||||
RenewalRoundTrip renewal_messages(&license_messages_);
|
||||
@@ -364,6 +406,9 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_PrepAndSignRenewalRequest fails gracefully on a huge
|
||||
* buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryPrepareRenewalRequestForHugeSignatureLength) {
|
||||
RenewalRoundTrip renewal_messages(&license_messages_);
|
||||
@@ -374,6 +419,9 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_PrepAndSignRenewalRequest fails gracefully on a huge
|
||||
* buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryPrepareRenewalRequestForHugeCoreMessageLength) {
|
||||
RenewalRoundTrip renewal_messages(&license_messages_);
|
||||
@@ -384,8 +432,9 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
// This verifies that entitled content keys API does not crash for unreasonable
|
||||
// input message buffer lengths.
|
||||
/** Test that loading entitled content keys fails gracefully on a huge
|
||||
* buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeBufferLength) {
|
||||
auto oemcrypto_function = [&](size_t buffer_length) {
|
||||
@@ -402,6 +451,8 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_LoadLicense fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoSessionTests,
|
||||
OEMCryptoMemoryLoadLicenseForHugeSignatureLength) {
|
||||
auto oemcrypto_function = [&](size_t signature_size) {
|
||||
@@ -424,6 +475,8 @@ TEST_F(OEMCryptoSessionTests,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_LoadRenewal fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoSessionTests, OEMCryptoMemoryLoadRenewalForHugeResponseLength) {
|
||||
auto oemcrypto_function = [&](size_t message_size) {
|
||||
Session s;
|
||||
@@ -443,6 +496,8 @@ TEST_F(OEMCryptoSessionTests, OEMCryptoMemoryLoadRenewalForHugeResponseLength) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_LoadRenewal fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoSessionTests,
|
||||
OEMCryptoMemoryLoadRenewalForHugeSignatureLength) {
|
||||
auto oemcrypto_function = [&](size_t signature_size) {
|
||||
@@ -467,6 +522,8 @@ TEST_F(OEMCryptoSessionTests,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_QueryKeyControl fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoSessionTests,
|
||||
OEMCryptoMemoryLoadRenewalForHugeCoreMessageLength) {
|
||||
auto oemcrypto_function = [&](size_t core_message_size) {
|
||||
@@ -487,7 +544,8 @@ TEST_F(OEMCryptoSessionTests,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
// Test OEMCrypto_QueryKeyControl doesn't crash for huge key_id_length.
|
||||
/** Test that OEMCrypto_QueryKeyControl fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoSessionTests,
|
||||
OEMCryptoMemoryQueryKeyControlForHugeKeyIdLength) {
|
||||
Session session;
|
||||
@@ -512,8 +570,9 @@ TEST_F(OEMCryptoSessionTests,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
// Test OEMCrypto_QueryKeyControl doesn't crash for huge key_control_block
|
||||
// length.
|
||||
/** Test OEMCrypto_QueryKeyControl doesn't crash for huge key_control_block
|
||||
* length.
|
||||
*/
|
||||
TEST_F(OEMCryptoSessionTests,
|
||||
OEMCryptoMemoryQueryKeyControlForHugeKeyControlBlockLength) {
|
||||
Session session;
|
||||
@@ -534,8 +593,9 @@ TEST_F(OEMCryptoSessionTests,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
// This test verifies that OEMCrypto_SetDecryptHash doesn't crash for a very
|
||||
// large hash buffer.
|
||||
/** This test verifies that OEMCrypto_SetDecryptHash doesn't crash for a very
|
||||
large hash buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryDecryptHashForHugeHashBuffer) {
|
||||
uint32_t session_id = session_.session_id();
|
||||
@@ -548,6 +608,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
TestHugeLengthDoesNotCrashAPI(f, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test Decrypt fails gracefully for huge input. */
|
||||
TEST_P(OEMCryptoSessionTestsDecryptTests,
|
||||
OEMCryptoMemoryDecryptCENCForHugeNumberOfSubSamples) {
|
||||
auto oemcrypto_function = [&](size_t number_of_subsamples) {
|
||||
@@ -575,6 +636,7 @@ TEST_P(OEMCryptoSessionTestsDecryptTests,
|
||||
MakeBuffers();
|
||||
}
|
||||
|
||||
/** Test Decrypt fails gracefully for huge input. */
|
||||
TEST_P(OEMCryptoSessionTestsDecryptTests,
|
||||
OEMCryptoMemoryDecryptCENCForHugeNumberOfSamples) {
|
||||
auto oemcrypto_function = [&](size_t number_of_samples) {
|
||||
@@ -604,8 +666,16 @@ TEST_P(OEMCryptoSessionTestsDecryptTests,
|
||||
MakeBuffers();
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_LoadProvisioning fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeSignatureLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
// provisioning 4. Disabled here temporarily.
|
||||
if (!global_features.loads_certificate ||
|
||||
global_features.provisioning_method == OEMCrypto_BootCertificateChain) {
|
||||
GTEST_SKIP() << "Test for non Prov 4.0 devices only.";
|
||||
}
|
||||
auto oemcrypto_function = [&](size_t signature_size) {
|
||||
Session s;
|
||||
ProvisioningRoundTrip provisioning_messages(&s, encoded_rsa_key_);
|
||||
@@ -636,8 +706,16 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_LoadProvisioning fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeWrappedRsaKeyLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
// provisioning 4. Disabled here temporarily.
|
||||
if (!global_features.loads_certificate ||
|
||||
global_features.provisioning_method == OEMCrypto_BootCertificateChain) {
|
||||
GTEST_SKIP() << "Test for non Prov 4.0 devices only.";
|
||||
}
|
||||
auto oemcrypto_function = [&](size_t buffer_length) {
|
||||
Session s;
|
||||
ProvisioningRoundTrip provisioning_messages(&s, encoded_rsa_key_);
|
||||
@@ -661,8 +739,16 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_LoadDRMPrivateKey fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadDrmPrivateKeyForHugeWrappedRsaKeyLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
// provisioning 4. Disabled here temporarily.
|
||||
if (!global_features.loads_certificate ||
|
||||
global_features.provisioning_method == OEMCrypto_BootCertificateChain) {
|
||||
GTEST_SKIP() << "Test for non Prov 4.0 devices only.";
|
||||
}
|
||||
ASSERT_NO_FATAL_FAILURE(CreateWrappedDRMKey());
|
||||
auto oemcrypto_function = [&](size_t wrapped_rsa_key_length) {
|
||||
Session s;
|
||||
@@ -682,9 +768,17 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
kHugeInputBufferLength, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_LoadDRMPrivateKey fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(
|
||||
OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadDrmPrivateKeyForHugeWrappedRsaKeyLengthStartingFromLength1) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
// provisioning 4. Disabled here temporarily.
|
||||
if (!global_features.loads_certificate ||
|
||||
global_features.provisioning_method == OEMCrypto_BootCertificateChain) {
|
||||
GTEST_SKIP() << "Test for non Prov 4.0 devices only.";
|
||||
}
|
||||
ASSERT_NO_FATAL_FAILURE(CreateWrappedDRMKey());
|
||||
auto oemcrypto_function = [&](size_t wrapped_rsa_key_length) {
|
||||
Session s;
|
||||
@@ -702,6 +796,8 @@ TEST_F(
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_LoadDRMPrivateKey fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoUsesCertificate,
|
||||
OEMCryptoMemoryDeriveKeysFromSessionKeyForHugeMacContext) {
|
||||
vector<uint8_t> session_key;
|
||||
@@ -722,6 +818,8 @@ TEST_F(OEMCryptoUsesCertificate,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_DeriveKeysFromSessionKey fails gracefully on a huge
|
||||
* buffer. */
|
||||
TEST_F(OEMCryptoUsesCertificate,
|
||||
OEMCryptoMemoryDeriveKeysFromSessionKeyForHugeEncContext) {
|
||||
vector<uint8_t> session_key;
|
||||
@@ -742,6 +840,8 @@ TEST_F(OEMCryptoUsesCertificate,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_DeriveKeysFromSessionKey fails gracefully on a huge
|
||||
* buffer. */
|
||||
TEST_F(OEMCryptoUsesCertificate,
|
||||
OEMCryptoMemoryDeriveKeysFromSessionKeyForHugeEncSessionKey) {
|
||||
vector<uint8_t> session_key;
|
||||
@@ -763,10 +863,18 @@ TEST_F(OEMCryptoUsesCertificate,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_GenerateRSASignature fails gracefully on a huge
|
||||
* buffer. */
|
||||
TEST_F(OEMCryptoLoadsCertificateAlternates,
|
||||
OEMCryptoMemoryGenerateRSASignatureForHugeBuffer) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
// provisioning 4. Disabled here temporarily.
|
||||
if (!global_features.loads_certificate ||
|
||||
global_features.provisioning_method == OEMCrypto_BootCertificateChain) {
|
||||
GTEST_SKIP() << "Test for non Prov 4.0 devices only.";
|
||||
}
|
||||
OEMCryptoResult sts;
|
||||
LoadWithAllowedSchemes(kSign_PKCS1_Block1, false);
|
||||
LoadCastCertificateKey(false);
|
||||
// If the device is a cast receiver, then this scheme is required.
|
||||
if (global_features.cast_receiver) {
|
||||
ASSERT_TRUE(key_loaded_);
|
||||
@@ -782,6 +890,7 @@ TEST_F(OEMCryptoLoadsCertificateAlternates,
|
||||
sts = OEMCrypto_GenerateRSASignature(s.session_id(), message_buffer.data(),
|
||||
message_buffer.size(), nullptr,
|
||||
&signature_length, kSign_PKCS1_Block1);
|
||||
if (sts == OEMCrypto_ERROR_NOT_IMPLEMENTED) return;
|
||||
ASSERT_EQ(OEMCrypto_ERROR_SHORT_BUFFER, sts);
|
||||
ASSERT_NE(static_cast<size_t>(0), signature_length);
|
||||
vector<uint8_t> signature(signature_length);
|
||||
@@ -797,9 +906,17 @@ TEST_F(OEMCryptoLoadsCertificateAlternates,
|
||||
}
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_GenerateRSASignature fails gracefully on a huge
|
||||
* buffer. */
|
||||
TEST_F(OEMCryptoLoadsCertificateAlternates,
|
||||
OEMCryptoMemoryGenerateRSASignatureForHugeSignatureLength) {
|
||||
LoadWithAllowedSchemes(kSign_PKCS1_Block1, false);
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
// provisioning 4. Disabled here temporarily.
|
||||
if (!global_features.loads_certificate ||
|
||||
global_features.provisioning_method == OEMCrypto_BootCertificateChain) {
|
||||
GTEST_SKIP() << "Test for non Prov 4.0 devices only.";
|
||||
}
|
||||
LoadCastCertificateKey(false);
|
||||
// If the device is a cast receiver, then this scheme is required.
|
||||
if (global_features.cast_receiver) {
|
||||
ASSERT_TRUE(key_loaded_);
|
||||
@@ -823,6 +940,7 @@ TEST_F(OEMCryptoLoadsCertificateAlternates,
|
||||
}
|
||||
}
|
||||
|
||||
/** Test that GetKeyHandle fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest, OEMCryptoMemorySelectKeyForHugeKeyIdLength) {
|
||||
EncryptAndLoadKeys();
|
||||
OEMCrypto_SESSION session_id = session_.session_id();
|
||||
@@ -835,6 +953,7 @@ TEST_P(OEMCryptoGenericCryptoTest, OEMCryptoMemorySelectKeyForHugeKeyIdLength) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest,
|
||||
OEMCryptoMemoryGenericKeyEncryptForHugeBuffer) {
|
||||
EncryptAndLoadKeys();
|
||||
@@ -859,6 +978,7 @@ TEST_P(OEMCryptoGenericCryptoTest,
|
||||
kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest,
|
||||
OEMCryptoMemoryGenericKeyDecryptForHugeBuffer) {
|
||||
EncryptAndLoadKeys();
|
||||
@@ -884,6 +1004,7 @@ TEST_P(OEMCryptoGenericCryptoTest,
|
||||
kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest, OEMCryptoMemoryGenericKeySignForHugeBuffer) {
|
||||
EncryptAndLoadKeys();
|
||||
unsigned int key_index = 2;
|
||||
@@ -908,6 +1029,7 @@ TEST_P(OEMCryptoGenericCryptoTest, OEMCryptoMemoryGenericKeySignForHugeBuffer) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest,
|
||||
OEMCryptoMemoryGenericKeySignForHugeSignatureLength) {
|
||||
EncryptAndLoadKeys();
|
||||
@@ -934,6 +1056,7 @@ TEST_P(OEMCryptoGenericCryptoTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest,
|
||||
OEMCryptoMemoryGenericKeyVerifyForHugeBuffer) {
|
||||
EncryptAndLoadKeys();
|
||||
@@ -956,6 +1079,7 @@ TEST_P(OEMCryptoGenericCryptoTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest,
|
||||
OEMCryptoMemoryGenericKeyVerifyForHugeSignatureLength) {
|
||||
EncryptAndLoadKeys();
|
||||
@@ -982,6 +1106,7 @@ TEST_P(OEMCryptoGenericCryptoTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryUpdateUsageEntryForHugeHeaderBuffer) {
|
||||
if (!wvoec::global_features.usage_table) {
|
||||
@@ -1012,6 +1137,7 @@ TEST_P(OEMCryptoUsageTableTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryUpdateUsageEntryForHugeUsageEntryBuffer) {
|
||||
if (!wvoec::global_features.usage_table) {
|
||||
@@ -1039,6 +1165,7 @@ TEST_P(OEMCryptoUsageTableTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryDeactivateUsageEntryForHugePstBuffer) {
|
||||
if (!wvoec::global_features.usage_table) {
|
||||
@@ -1061,6 +1188,7 @@ TEST_P(OEMCryptoUsageTableTest,
|
||||
kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryLoadUsageTableHeaderForHugeHeader) {
|
||||
if (!wvoec::global_features.usage_table) {
|
||||
@@ -1087,6 +1215,7 @@ TEST_P(OEMCryptoUsageTableTest,
|
||||
kHugeInputBufferLength, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(
|
||||
OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryLoadUsageTableHeaderForHugeHeaderStartingHeaderLengthFrom1) {
|
||||
@@ -1107,6 +1236,7 @@ TEST_P(
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryLoadUsageEntryForHugeUsageEntryBuffer) {
|
||||
if (!wvoec::global_features.usage_table) {
|
||||
@@ -1138,6 +1268,7 @@ TEST_P(OEMCryptoUsageTableTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoUsageTableTest, OEMCryptoMemoryReportUsageForHugeReportBuffer) {
|
||||
if (!wvoec::global_features.usage_table) {
|
||||
GTEST_SKIP() << "Usage tables are not supported.";
|
||||
@@ -1167,6 +1298,7 @@ TEST_P(OEMCryptoUsageTableTest, OEMCryptoMemoryReportUsageForHugeReportBuffer) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoUsageTableTest, OEMCryptoMemoryReportUsageForHugePstBuffer) {
|
||||
if (!wvoec::global_features.usage_table) {
|
||||
GTEST_SKIP() << "Usage tables are not supported.";
|
||||
@@ -1189,6 +1321,7 @@ TEST_P(OEMCryptoUsageTableTest, OEMCryptoMemoryReportUsageForHugePstBuffer) {
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryShrinkUsageTableHeaderForHugeHeaderBufferLength) {
|
||||
if (!wvoec::global_features.usage_table) {
|
||||
|
||||
Reference in New Issue
Block a user