Re-apply SimultaneousDecrypt tests

A recent merge accidentally removed the unit tests
SimultaneousDecrypt* from oemcrypto_test.  Also the unit test
GetKeyDataNullPointer was disabled.  This CL puts those tests back in.

bug: 26892550

Change-Id: I9d8f0a38e65727231543248135366331a6f52b02
This commit is contained in:
Fred Gylys-Colwell
2016-01-31 13:08:27 -08:00
committed by Jeff Tinker
parent e0da404b14
commit 213fee8bb7

View File

@@ -1646,9 +1646,7 @@ TEST_F(OEMCryptoKeyboxTest, NormalGetKeyData) {
ASSERT_EQ(OEMCrypto_SUCCESS, sts);
}
// TODO(fredgc): warn people that this will be turned on. It causes a
// seg fault on some devices at the moment.
TEST_F(OEMCryptoKeyboxTest, DISABLED_GetKeyDataNullPointer) {
TEST_F(OEMCryptoKeyboxTest, GetKeyDataNullPointer) {
OEMCryptoResult sts;
uint8_t key_data[256];
sts = OEMCrypto_GetKeyData(key_data, NULL);
@@ -2366,6 +2364,59 @@ TEST_F(OEMCryptoSessionTests, DecryptZeroDuration) {
ASSERT_NO_FATAL_FAILURE(s.TestDecryptCTR());
}
TEST_F(OEMCryptoSessionTests, SimultaneousDecrypt) {
vector<Session> s(8);
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].open());
}
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].GenerateTestSessionKeys());
ASSERT_NO_FATAL_FAILURE(s[i].FillSimpleMessage(kDuration, 0,
s[i].get_nonce()));
ASSERT_NO_FATAL_FAILURE(s[i].EncryptAndSign());
}
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].LoadTestKeys());
}
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].TestDecryptCTR());
}
// Second call to decrypt for each session.
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].TestDecryptCTR());
}
}
TEST_F(OEMCryptoSessionTests, SimultaneousDecryptWithLostMessage) {
vector<Session> s(8);
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].open());
}
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].GenerateTestSessionKeys());
ASSERT_NO_FATAL_FAILURE(s[i].FillSimpleMessage(kDuration, 0,
s[i].get_nonce()));
ASSERT_NO_FATAL_FAILURE(s[i].EncryptAndSign());
}
// First set of messages are lost. Generate second set.
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].GenerateTestSessionKeys());
ASSERT_NO_FATAL_FAILURE(s[i].FillSimpleMessage(kDuration, 0,
s[i].get_nonce()));
ASSERT_NO_FATAL_FAILURE(s[i].EncryptAndSign());
}
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].LoadTestKeys());
}
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].TestDecryptCTR());
}
// Second call to decrypt for each session.
for (int i = 0; i < 8; i++) {
ASSERT_NO_FATAL_FAILURE(s[i].TestDecryptCTR());
}
}
struct SampleSize {
size_t clear_size;
size_t encrypted_size;