Merge OEMCrypto changes from CDM to android repository
This is a merge of the following CLs: Style clean up in oemcrypto/mock https://widevine-internal-review.googlesource.com/#/c/10660 Split off default keybox. https://widevine-internal-review.googlesource.com/#/c/10661/ Split off several properties from CryptoEngine. https://widevine-internal-review.googlesource.com/#/c/10662/ Split off Keybox installation. https://widevine-internal-review.googlesource.com/#/c/10680/ Wii-U build compatibility fixes. https://widevine-internal-review.googlesource.com/#/c/10720/ Fix style issues in oemcrypto_logging_test. https://widevine-internal-review.googlesource.com/#/c/10824/ Correct OEMCrypto error codes in the mock. https://widevine-internal-review.googlesource.com/#/c/10821/ Enable logging during OEMCrypto unit tests. https://widevine-internal-review.googlesource.com/#/c/10833/ Wait to create usage table path until needed. https://widevine-internal-review.googlesource.com/#/c/10831/ Allow keybox installation to be unimplemented. https://widevine-internal-review.googlesource.com/#/c/10850/ Minor clean up in the OEMCrypto header. https://widevine-internal-review.googlesource.com/#/c/10921/ Add usage table device property to the mock oemcrypto https://widevine-internal-review.googlesource.com/#/c/11092/ Change-Id: I02a818a620bcd4bd2291f1b3c0ac9308ae444319
This commit is contained in:
@@ -24,115 +24,95 @@ class OEMCryptoLoggingTest : public ::testing::Test {
|
||||
};
|
||||
|
||||
TEST_F(OEMCryptoLoggingTest, TestDumpHexFunctions) {
|
||||
uint8_t vector[] = { 0xFA, 0x11 , 0x28 , 0x33 };
|
||||
std::string buffer = "";
|
||||
wvoec_mock::dump_hex_helper(buffer, "name", vector, (size_t)4);
|
||||
ASSERT_EQ(buffer, "name = \n wvcdm::a2b_hex(\"FA112833\");\n");
|
||||
uint8_t vector[] = {0xFA, 0x11, 0x28, 0x33};
|
||||
std::string buffer;
|
||||
wvoec_mock::dump_hex_helper(buffer, "name", vector, 4u);
|
||||
ASSERT_EQ("name = \n wvcdm::a2b_hex(\"FA112833\");\n", buffer);
|
||||
|
||||
buffer = "";
|
||||
uint8_t vector2[] = { 0xFA, 0x11 , 0x28 , 0x33 ,
|
||||
0xFA, 0x11 , 0x28 , 0x33 , 0xFA, 0x11 ,
|
||||
0x28 , 0x33 , 0xFA, 0x11 , 0x28 , 0x33 , 0xFA, 0x11 , 0x28 , 0x33 ,
|
||||
0xFA, 0x11 , 0x28 , 0x33 , 0x01, 0x14 , 0x28 , 0xAB, 0xFA, 0xCD ,
|
||||
0xEF , 0x67, 0x01, 0x14 , 0x28 , 0xAB, 0xFA, 0xCD , 0xEF , 0x67 };
|
||||
wvoec_mock::dump_hex_helper(buffer, "name", vector2, (size_t)40);
|
||||
uint8_t vector2[] = {
|
||||
0xFA, 0x11, 0x28, 0x33, 0xFA, 0x11, 0x28, 0x33, 0xFA, 0x11,
|
||||
0x28, 0x33, 0xFA, 0x11, 0x28, 0x33, 0xFA, 0x11, 0x28, 0x33,
|
||||
0xFA, 0x11, 0x28, 0x33, 0x01, 0x14, 0x28, 0xAB, 0xFA, 0xCD,
|
||||
0xEF, 0x67, 0x01, 0x14, 0x28, 0xAB, 0xFA, 0xCD, 0xEF, 0x67,
|
||||
};
|
||||
|
||||
ASSERT_EQ(buffer, "name = \n wvcdm::a2b_hex(\"FA112833FA112833FA112833F"
|
||||
"A112833FA112833FA112833011428ABFACDEF67\"\n \""
|
||||
"011428ABFACDEF67\");\n");
|
||||
buffer.clear(); // dump_hex_helper appends to buffer
|
||||
wvoec_mock::dump_hex_helper(buffer, "name", vector2, 40u);
|
||||
ASSERT_EQ(
|
||||
"name = \n "
|
||||
"wvcdm::a2b_hex("
|
||||
"\"FA112833FA112833FA112833FA112833FA112833FA112833011428ABFACDEF67\"\n "
|
||||
" \"011428ABFACDEF67\");\n",
|
||||
buffer);
|
||||
|
||||
buffer = "";
|
||||
wvoec_mock::dump_array_part_helper(buffer, "array",
|
||||
(size_t) 5, "name", vector2, (size_t) 40);
|
||||
char* exp = "std::string s5_name = \n wvcdm::a2b_hex(\"FA112833FA112833F"
|
||||
"A112833FA112833FA112833FA112833011428ABFACDEF67\"\n "
|
||||
" \"011428ABFACDEF67\");\narray[5].name = message_ptr + me"
|
||||
"ssage.find(s5_name.data());\n";
|
||||
ASSERT_EQ(buffer, exp);
|
||||
buffer.clear(); // dump_hex_helper appends to buffer
|
||||
wvoec_mock::dump_array_part_helper(buffer, "array", 5u, "name", vector2, 40u);
|
||||
ASSERT_EQ(
|
||||
"std::string s5_name = \n "
|
||||
"wvcdm::a2b_hex("
|
||||
"\"FA112833FA112833FA112833FA112833FA112833FA112833011428ABFACDEF67\"\n "
|
||||
" \"011428ABFACDEF67\");\narray[5].name = message_ptr + "
|
||||
"message.find(s5_name.data());\n",
|
||||
buffer);
|
||||
|
||||
buffer = "";
|
||||
wvoec_mock::dump_array_part_helper(buffer, "array", (size_t) 5,
|
||||
"name", NULL, (size_t) 40);
|
||||
ASSERT_EQ(buffer, "array[5].name = NULL;\n");
|
||||
buffer.clear(); // dump_hex_helper appends to buffer
|
||||
wvoec_mock::dump_array_part_helper(buffer, "array", 5u, "name", NULL, 40u);
|
||||
ASSERT_EQ("array[5].name = NULL;\n", buffer);
|
||||
}
|
||||
|
||||
TEST_F(OEMCryptoLoggingTest, TestChangeLoggingLevel) {
|
||||
wvcdm::LogPriority default_logging_level = wvcdm::LOG_WARN;
|
||||
wvoec_mock::SetLoggingLevel(1);
|
||||
ASSERT_EQ(wvcdm::g_cutoff, default_logging_level);
|
||||
wvoec_mock::SetLoggingLevel(wvcdm::LOG_WARN);
|
||||
ASSERT_EQ(wvcdm::LOG_WARN, wvcdm::g_cutoff);
|
||||
|
||||
wvoec_mock::SetLoggingLevel(2);
|
||||
ASSERT_EQ(wvcdm::g_cutoff, wvcdm::LOG_INFO);
|
||||
wvoec_mock::SetLoggingLevel(wvcdm::LOG_INFO);
|
||||
ASSERT_EQ(wvcdm::LOG_INFO, wvcdm::g_cutoff);
|
||||
|
||||
wvoec_mock::SetLoggingSettings(
|
||||
wvcdm::LOG_WARN,
|
||||
wvoec_mock::kLoggingDumpTraceAll);
|
||||
ASSERT_EQ(wvcdm::g_cutoff, wvcdm::LOG_WARN);
|
||||
ASSERT_EQ(wvoec_mock::LogCategoryEnabled(
|
||||
wvoec_mock::kLoggingDumpTraceAll), true);
|
||||
wvoec_mock::SetLoggingSettings(wvcdm::LOG_WARN,
|
||||
wvoec_mock::kLoggingDumpTraceAll);
|
||||
ASSERT_EQ(wvcdm::LOG_WARN, wvcdm::g_cutoff);
|
||||
ASSERT_TRUE(wvoec_mock::LogCategoryEnabled(wvoec_mock::kLoggingDumpTraceAll));
|
||||
wvoec_mock::TurnOffLoggingForAllCategories();
|
||||
|
||||
wvoec_mock::SetLoggingLevel(wvcdm::LOG_VERBOSE);
|
||||
ASSERT_EQ(wvcdm::g_cutoff, wvcdm::LOG_VERBOSE);
|
||||
ASSERT_EQ(wvcdm::LOG_VERBOSE, wvcdm::g_cutoff);
|
||||
|
||||
wvoec_mock::SetLoggingLevel(1);
|
||||
wvoec_mock::SetLoggingLevel(wvcdm::LOG_WARN);
|
||||
}
|
||||
|
||||
namespace wvoec_mock {
|
||||
TEST_F(OEMCryptoLoggingTest, TestChangeLoggingCategories) {
|
||||
using namespace wvoec_mock;
|
||||
TurnOffLoggingForAllCategories();
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingTraceDecryption |
|
||||
kLoggingTraceOEMCryptoCalls), false);
|
||||
ASSERT_FALSE(LogCategoryEnabled(kLoggingTraceDecryption |
|
||||
kLoggingTraceOEMCryptoCalls));
|
||||
|
||||
AddLoggingForCategories(kLoggingDumpKeyControlBlocks |
|
||||
kLoggingDumpDerivedKeys);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingDumpKeyControlBlocks), true);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingTraceUsageTable), false);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingDumpTraceAll), true);
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingDumpKeyControlBlocks));
|
||||
ASSERT_FALSE(LogCategoryEnabled(kLoggingTraceUsageTable));
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingDumpTraceAll));
|
||||
|
||||
RemoveLoggingForCategories(kLoggingDumpKeyControlBlocks |
|
||||
kLoggingTraceUsageTable);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingDumpKeyControlBlocks), false);
|
||||
kLoggingTraceUsageTable);
|
||||
ASSERT_FALSE(LogCategoryEnabled(kLoggingDumpKeyControlBlocks));
|
||||
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingDumpDerivedKeys), true);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingTraceUsageTable), false);
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingDumpDerivedKeys));
|
||||
ASSERT_FALSE(LogCategoryEnabled(kLoggingTraceUsageTable));
|
||||
|
||||
TurnOffLoggingForAllCategories();
|
||||
bool flag = false;
|
||||
if (LogCategoryEnabled(kLoggingTraceUsageTable)) {
|
||||
flag = true;
|
||||
}
|
||||
ASSERT_EQ(flag, false);
|
||||
ASSERT_FALSE(LogCategoryEnabled(kLoggingTraceUsageTable));
|
||||
|
||||
AddLoggingForCategories(kLoggingDumpTraceAll);
|
||||
if (LogCategoryEnabled(kLoggingDumpKeyControlBlocks)) {
|
||||
flag = true;
|
||||
}
|
||||
ASSERT_EQ(flag, true);
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingDumpKeyControlBlocks));
|
||||
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingTraceOEMCryptoCalls), true);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingDumpContentKeys), true);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingDumpKeyControlBlocks), true);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingDumpDerivedKeys), true);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingTraceNonce), true);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingTraceDecryption), true);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingTraceUsageTable), true);
|
||||
ASSERT_EQ(LogCategoryEnabled(kLoggingDumpTraceAll), true);
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingTraceOEMCryptoCalls));
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingDumpContentKeys));
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingDumpKeyControlBlocks));
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingDumpDerivedKeys));
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingTraceNonce));
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingTraceDecryption));
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingTraceUsageTable));
|
||||
ASSERT_TRUE(LogCategoryEnabled(kLoggingDumpTraceAll));
|
||||
|
||||
flag= false;
|
||||
RemoveLoggingForCategories(kLoggingDumpKeyControlBlocks);
|
||||
if ( LogCategoryEnabled(kLoggingDumpKeyControlBlocks) ) {
|
||||
flag = true;
|
||||
}
|
||||
ASSERT_EQ(flag, false);
|
||||
ASSERT_FALSE(LogCategoryEnabled(kLoggingDumpKeyControlBlocks));
|
||||
}
|
||||
|
||||
} // namespace wvoec_mock
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
wvcdm::InitLogging(argc, argv);
|
||||
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user