Document huge buffer tests in separate group
Explain how the huge buffer tests work. In particular, state that we expect that OEMCrypto returns an error on huge buffers. Staged here: https://developers.devsite.corp.google.com/widevine/drm/client/oemcrypto/v18/oemcrypto-test/group/security Bug: 300645748 Merged from https://widevine-internal-review.googlesource.com/188034 Change-Id: Iba9d652dfe57df6786b0ab60931f02f8ce9b8180
This commit is contained in:
committed by
Robert Shih
parent
3316870a0a
commit
c53047bd1b
@@ -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,6 +666,8 @@ 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
|
||||
@@ -642,6 +706,8 @@ 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
|
||||
@@ -673,6 +739,8 @@ 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
|
||||
@@ -700,6 +768,8 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
kHugeInputBufferLength, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_LoadDRMPrivateKey fails gracefully on a huge buffer.
|
||||
*/
|
||||
TEST_F(
|
||||
OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadDrmPrivateKeyForHugeWrappedRsaKeyLengthStartingFromLength1) {
|
||||
@@ -726,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;
|
||||
@@ -746,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;
|
||||
@@ -766,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;
|
||||
@@ -787,6 +863,8 @@ 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
|
||||
@@ -828,6 +906,8 @@ TEST_F(OEMCryptoLoadsCertificateAlternates,
|
||||
}
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_GenerateRSASignature fails gracefully on a huge
|
||||
* buffer. */
|
||||
TEST_F(OEMCryptoLoadsCertificateAlternates,
|
||||
OEMCryptoMemoryGenerateRSASignatureForHugeSignatureLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -860,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();
|
||||
@@ -872,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();
|
||||
@@ -896,6 +978,7 @@ TEST_P(OEMCryptoGenericCryptoTest,
|
||||
kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest,
|
||||
OEMCryptoMemoryGenericKeyDecryptForHugeBuffer) {
|
||||
EncryptAndLoadKeys();
|
||||
@@ -921,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;
|
||||
@@ -945,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();
|
||||
@@ -971,6 +1056,7 @@ TEST_P(OEMCryptoGenericCryptoTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest,
|
||||
OEMCryptoMemoryGenericKeyVerifyForHugeBuffer) {
|
||||
EncryptAndLoadKeys();
|
||||
@@ -993,6 +1079,7 @@ TEST_P(OEMCryptoGenericCryptoTest,
|
||||
TestHugeLengthDoesNotCrashAPI(oemcrypto_function, kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(OEMCryptoGenericCryptoTest,
|
||||
OEMCryptoMemoryGenericKeyVerifyForHugeSignatureLength) {
|
||||
EncryptAndLoadKeys();
|
||||
@@ -1019,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) {
|
||||
@@ -1049,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) {
|
||||
@@ -1076,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) {
|
||||
@@ -1098,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) {
|
||||
@@ -1124,6 +1215,7 @@ TEST_P(OEMCryptoUsageTableTest,
|
||||
kHugeInputBufferLength, !kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that API fails gracefully on a huge buffer. */
|
||||
TEST_P(
|
||||
OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryLoadUsageTableHeaderForHugeHeaderStartingHeaderLengthFrom1) {
|
||||
@@ -1144,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) {
|
||||
@@ -1175,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.";
|
||||
@@ -1204,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.";
|
||||
@@ -1226,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) {
|
||||
|
||||
@@ -43,6 +43,11 @@
|
||||
*
|
||||
* @defgroup security Security Tests
|
||||
* Buffer overflow tests, off-by-one tests, and other security tests.
|
||||
*
|
||||
* The way the huge buffer tests work is to create a large buffer and then call
|
||||
* the API. The test then loops and doubles the buffer until the API returns an
|
||||
* error. An error is considered a passing test. We expect OEMCrypto to fail
|
||||
* gracefully on a huge buffer rather than crashing.
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
@@ -488,6 +493,7 @@ INSTANTIATE_TEST_SUITE_P(TestAll, OEMCryptoEntitlementLicenseTest,
|
||||
/// @addtogroup security
|
||||
/// @{
|
||||
|
||||
/** Test that LoadEntitledContentKeys fails gracefully on huge buffer. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeSubstringContentKeyIdLength) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -498,6 +504,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that LoadEntitledContentKeys fails gracefully on huge buffer. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeSubstringContentKeyIdOffset) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -508,6 +515,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that LoadEntitledContentKeys fails gracefully on huge buffer. */
|
||||
TEST_F(
|
||||
OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForOutOfRangeSubstringContentKeyIdLength) {
|
||||
@@ -518,6 +526,7 @@ TEST_F(
|
||||
ASSERT_NE(OEMCrypto_SUCCESS, entitled_message_.LoadKeys());
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForOutOfRangeSubstringContentKeyIdOffset) {
|
||||
@@ -528,6 +537,7 @@ TEST_F(
|
||||
ASSERT_NE(OEMCrypto_SUCCESS, entitled_message_.LoadKeys());
|
||||
}
|
||||
|
||||
/** Test that LoadEntitledContentKeys fails gracefully on huge substring. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeSubstringEntitlementKeyIdLength) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -538,6 +548,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeSubstringEntitlementKeyIdOffset) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -548,6 +559,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForOutOfRangeSubstringEntitlementKeyIdLength) {
|
||||
@@ -558,6 +570,7 @@ TEST_F(
|
||||
ASSERT_NE(OEMCrypto_SUCCESS, entitled_message_.LoadKeys());
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForOutOfRangeSubstringEntitlementKeyIdOffset) {
|
||||
@@ -568,6 +581,7 @@ TEST_F(
|
||||
ASSERT_NE(OEMCrypto_SUCCESS, entitled_message_.LoadKeys());
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeSubstringContentKeyDataIvLength) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -578,6 +592,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeSubstringContentKeyDataIvOffset) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -588,6 +603,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForOutOfRangeSubstringContentKeyDataIvLength) {
|
||||
@@ -598,6 +614,7 @@ TEST_F(
|
||||
ASSERT_NE(OEMCrypto_SUCCESS, entitled_message_.LoadKeys());
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForOutOfRangeSubstringContentKeyDataIvOffset) {
|
||||
@@ -608,6 +625,7 @@ TEST_F(
|
||||
ASSERT_NE(OEMCrypto_SUCCESS, entitled_message_.LoadKeys());
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeSubstringContentKeyDataLength) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -618,6 +636,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeSubstringContentKeyDataOffset) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -628,6 +647,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForOutOfRangeSubstringContentKeyDataLength) {
|
||||
@@ -638,6 +658,7 @@ TEST_F(
|
||||
ASSERT_NE(OEMCrypto_SUCCESS, entitled_message_.LoadKeys());
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForOutOfRangeSubstringContentKeyDataOffset) {
|
||||
@@ -648,6 +669,7 @@ TEST_F(
|
||||
ASSERT_NE(OEMCrypto_SUCCESS, entitled_message_.LoadKeys());
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeEntitlementKeyIdLength) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -658,6 +680,7 @@ TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test LoadEntitledContentKeys rejects out of range substring. */
|
||||
TEST_F(OEMCryptoMemoryLicenseTest,
|
||||
OEMCryptoMemoryLoadEntitledKeysForHugeContentKeyIdLength) {
|
||||
TestLoadEntitledKeysForHugeBufferLengths(
|
||||
@@ -1025,6 +1048,7 @@ TEST_P(OEMCryptoEntitlementLicenseTest, ReassociateEntitledKeySessionAPI17) {
|
||||
/// @addtogroup security
|
||||
/// @{
|
||||
|
||||
/** Test that LoadLicense fails gracefully on huge buffer. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyIdLength) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1035,6 +1059,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyIdOffset) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1044,6 +1069,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyIdLength) {
|
||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||
@@ -1053,6 +1079,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyIdOffset) {
|
||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||
@@ -1062,6 +1089,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataIvLength) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1072,6 +1100,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataIvOffset) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1082,6 +1111,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataIvLength) {
|
||||
@@ -1093,6 +1123,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataIvOffset) {
|
||||
@@ -1104,6 +1135,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataLength) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1114,6 +1146,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyDataOffset) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1123,6 +1156,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataLength) {
|
||||
@@ -1134,6 +1168,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyDataOffset) {
|
||||
@@ -1145,6 +1180,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlIvLength) {
|
||||
@@ -1156,6 +1192,7 @@ TEST_P(
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlIvOffset) {
|
||||
@@ -1167,6 +1204,7 @@ TEST_P(
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlIvLengthAPI16) {
|
||||
@@ -1179,6 +1217,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlIvOffset) {
|
||||
@@ -1191,6 +1230,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlLength) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1201,6 +1241,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringKeyControlOffset) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1211,6 +1252,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlLengthAPI16) {
|
||||
@@ -1222,6 +1264,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringKeyControlOffset) {
|
||||
@@ -1233,6 +1276,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyIvLength) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1242,6 +1286,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyIvOffset) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1251,6 +1296,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyIvLength) {
|
||||
@@ -1263,6 +1309,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyIvOffset) {
|
||||
@@ -1275,6 +1322,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyLength) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1284,6 +1332,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringEncMacKeyOffset) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1293,6 +1342,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyLength) {
|
||||
@@ -1303,6 +1353,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringEncMacKeyOffset) {
|
||||
@@ -1313,6 +1364,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringPstLength) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1322,6 +1374,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringPstOffset) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1331,6 +1384,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringPstLength) {
|
||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||
@@ -1340,6 +1394,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringPstOffset) {
|
||||
TestLoadLicenseForOutOfRangeSubStringOffSetAndLengths(
|
||||
@@ -1350,6 +1405,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringSrmRestrictionDataLength) {
|
||||
@@ -1360,6 +1416,7 @@ TEST_P(
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageSubstringSrmRestrictionDataOffset) {
|
||||
@@ -1370,6 +1427,7 @@ TEST_P(
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringSrmRestrictionDataLength) {
|
||||
@@ -1382,6 +1440,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on out of range substring. */
|
||||
TEST_P(
|
||||
OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForOutOfRangeCoreMessageSubstringSrmRestrictionDataOffset) {
|
||||
@@ -1394,6 +1453,7 @@ TEST_P(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on huge buffer. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeResponseLength) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1403,6 +1463,7 @@ TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
!kCheckStatus, !kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadLicense fails gracefully on huge buffer. */
|
||||
TEST_P(OEMCryptoLicenseOverflowTest,
|
||||
OEMCryptoMemoryLoadLicenseForHugeCoreMessageLength) {
|
||||
TestLoadLicenseForHugeBufferLengths(
|
||||
@@ -1425,6 +1486,7 @@ INSTANTIATE_TEST_SUITE_P(TestAll, OEMCryptoLicenseOverflowTest,
|
||||
/// @addtogroup security
|
||||
/// @{
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on huge buffer. */
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeResponseLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1440,6 +1502,7 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
!kCheckStatus, !kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on huge buffer. */
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeCoreMessageLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1455,6 +1518,7 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
!kCheckStatus, !kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on huge buffer. */
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeCoreMessageEncPrivateKeyLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1470,6 +1534,7 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on huge buffer. */
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeCoreMessageEncPrivateKeyOffset) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1485,6 +1550,7 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForOutOfRangeCoreMessageEncPrivateKeyLength) {
|
||||
@@ -1504,6 +1570,7 @@ TEST_F(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForOutOfRangeCoreMessageEncPrivateKeyOffset) {
|
||||
@@ -1523,6 +1590,7 @@ TEST_F(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeCoreMessageEncPrivateKeyIvLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1539,6 +1607,7 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeCoreMessageEncPrivateKeyIvOffset) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1555,6 +1624,7 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForOutOfRangeCoreMessageEncPrivateKeyIvLengthAPI16) {
|
||||
@@ -1574,6 +1644,7 @@ TEST_F(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForOutOfRangeCoreMessageEncPrivateKeyIvOffset) {
|
||||
@@ -1593,6 +1664,7 @@ TEST_F(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeCoreMessageEncMessageKeyLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1609,6 +1681,7 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForHugeCoreMessageEncMessageKeyOffset) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1625,6 +1698,7 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
!kCheckStatus, kUpdateCoreMessageSubstringValues);
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForOutOfRangeCoreMessageEncMessageKeyLengthProv30) {
|
||||
@@ -1647,6 +1721,7 @@ TEST_F(
|
||||
});
|
||||
}
|
||||
|
||||
/** Test that LoadProvisioning fails gracefully on out of range substring. */
|
||||
TEST_F(
|
||||
OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryLoadProvisioningForOutOfRangeCoreMessageEncMessageKeyOffsetProv30) {
|
||||
@@ -1674,6 +1749,9 @@ TEST_F(
|
||||
/// @addtogroup security
|
||||
/// @{
|
||||
|
||||
/** Test that OEMCrypto_PrepAndSignProvisioningRequest fails gracefully on a
|
||||
* huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryPrepareProvisioningRequestForHugeRequestMessageLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1689,6 +1767,9 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_PrepAndSignProvisioningRequest fails gracefully on a
|
||||
* huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryPrepareProvisioningRequestForHugeSignatureLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
@@ -1704,6 +1785,9 @@ TEST_F(OEMCryptoLoadsCertificate,
|
||||
!kCheckStatus);
|
||||
}
|
||||
|
||||
/** Test that OEMCrypto_PrepAndSignProvisioningRequest fails gracefully on a
|
||||
* huge buffer.
|
||||
*/
|
||||
TEST_F(OEMCryptoLoadsCertificate,
|
||||
OEMCryptoMemoryPrepareProvisioningRequestForHugeCoreMessageLength) {
|
||||
// TODO(b/197141970): Need to revisit OEMCryptoLoadsCert* tests for
|
||||
|
||||
@@ -178,6 +178,7 @@ TEST_F(OEMCryptoSessionTests, MasterGeneration_IncrementCounterAPI18) {
|
||||
ASSERT_TRUE(decrypt_count2 > decrypt_count1);
|
||||
ASSERT_TRUE(master_generation_number2 > master_generation_number1);
|
||||
}
|
||||
|
||||
TEST_P(OEMCryptoUsageTableTest,
|
||||
OEMCryptoMemoryLoadUsageEntryForHugeInvalidUsageEntryNumber) {
|
||||
LicenseWithUsageEntry entry;
|
||||
|
||||
Reference in New Issue
Block a user