diff --git a/libwvdrmengine/level3/arm/libwvlevel3.a b/libwvdrmengine/level3/arm/libwvlevel3.a index 9864e854..38f0c3f4 100644 Binary files a/libwvdrmengine/level3/arm/libwvlevel3.a and b/libwvdrmengine/level3/arm/libwvlevel3.a differ diff --git a/libwvdrmengine/level3/mips/level3_stubs.cpp b/libwvdrmengine/level3/mips/level3_stubs.cpp index e90df665..a4b38d61 100644 --- a/libwvdrmengine/level3/mips/level3_stubs.cpp +++ b/libwvdrmengine/level3/mips/level3_stubs.cpp @@ -182,6 +182,10 @@ uint32_t Level3_APIVersion() { return OEMCrypto_ERROR_NOT_IMPLEMENTED; } +uint8_t Level3_SecurityPatchLevel() { + return 0; +} + const char* Level3_SecurityLevel() { return "L3"; } diff --git a/libwvdrmengine/level3/mips/libwvlevel3.a b/libwvdrmengine/level3/mips/libwvlevel3.a index 81f0bf03..c2995383 100644 Binary files a/libwvdrmengine/level3/mips/libwvlevel3.a and b/libwvdrmengine/level3/mips/libwvlevel3.a differ diff --git a/libwvdrmengine/level3/x86/libwvlevel3.a b/libwvdrmengine/level3/x86/libwvlevel3.a index 3643fc97..75579f6a 100644 Binary files a/libwvdrmengine/level3/x86/libwvlevel3.a and b/libwvdrmengine/level3/x86/libwvlevel3.a differ diff --git a/libwvdrmengine/oemcrypto/include/level3.h b/libwvdrmengine/oemcrypto/include/level3.h index 4a11d2f5..69bae36f 100644 --- a/libwvdrmengine/oemcrypto/include/level3.h +++ b/libwvdrmengine/oemcrypto/include/level3.h @@ -58,6 +58,7 @@ namespace wvoec3 { #define Level3_LoadTestKeybox _lcc42 #define Level3_ForceDeleteUsageEntry _lcc43 #define Level3_LoadTestRSAKey _lcc45 +#define Level3_SecurityPatchLevel _lcc46 extern "C" { @@ -171,6 +172,7 @@ OEMCryptoResult Level3_DeriveKeysFromSessionKey(OEMCrypto_SESSION session, const uint8_t *enc_key_context, size_t enc_key_context_length); uint32_t Level3_APIVersion(); +uint8_t Level3_SecurityPatchLevel(); const char* Level3_SecurityLevel(); OEMCryptoResult Level3_GetHDCPCapability(OEMCrypto_HDCP_Capability* current, OEMCrypto_HDCP_Capability* maximum); diff --git a/libwvdrmengine/oemcrypto/test/oemcrypto_test.cpp b/libwvdrmengine/oemcrypto/test/oemcrypto_test.cpp index 04825967..54984237 100644 --- a/libwvdrmengine/oemcrypto/test/oemcrypto_test.cpp +++ b/libwvdrmengine/oemcrypto/test/oemcrypto_test.cpp @@ -1604,6 +1604,15 @@ 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) { + OEMCryptoResult sts; + uint8_t key_data[256]; + sts = OEMCrypto_GetKeyData(key_data, NULL); + ASSERT_NE(OEMCrypto_SUCCESS, sts); +} + TEST_F(OEMCryptoKeyboxTest, ProductionKeyboxValid) { ASSERT_EQ(OEMCrypto_SUCCESS, OEMCrypto_IsKeyboxValid()); }