This is a merge from the Widevine repository of http://go/wvgerrit/14024 Add Level 3 Oemcrypto Unit Tests To Run All Tests Script This CL adds the ability to restrict the oemcrypto unit tests to only use the fall back level 3. This restriction is per-process, and is only used while running the unit tests. This allows us to automate running the unit tests on an android device as both level 1 and level 3 without modifying files in /system/lib. To turn on the restriction, set the environment variable: FORCE_LEVEL3_OEMCRYPTO=yes. New level 3 library versions are: level3/arm/libwvlevel3.a Level3 Library Apr 8 2015 13:09:05 level3/x86/libwvlevel3.a Level3 Library Apr 8 2015 13:15:42 http://go/wvgerrit/14055 Remove Redundant Tests This CL modifies the UsageTableTests in oemcrypto_test.cpp so that they are not all parameterized by new_mac_keys_. This parameter is used when testing signatures. In particular, we do not need to verify timing twice. Also, I modified the run_all_unit_tests.sh script so that the environment variable GTEST_FILTER is passed down to the android process. This allows us to use the script to run a limited list of tests while debugging. http://go/wvgerrit/14054 Filter Out API Version 10 Tests This CL updates the OEMCrypto tests so that all but one test will pass for a device that implements the version 9 API. Android LMP devices should pass tests with GTEST_FILTER="*-*MNC*:*CanLoadTestKeys*" http://go/wvgerrit/13886 Update Documentation about Optional Features The intergration guide has been updated to include reference to OEMCrypto_LoadTestRSAKey. It also now discusses optional features. The Delta 10 document now mentions OEMCrypto_LoadTestRSAKey. The android supplement warns that most optional features are required. This also adds clarification about which functions should save the usage table, in answer to: b/16799904 OEMCrypto v9 ambiguous about saving usage table information Change-Id: Ifb517d58952c9b332b2958ca99af64bc293b985f
41 lines
1.9 KiB
C++
41 lines
1.9 KiB
C++
// Copyright 2013 Google Inc. All Rights Reserved.
|
|
//
|
|
#ifndef WVCDM_CORE_OEMCRYPTO_ADAPTER_H_
|
|
#define WVCDM_CORE_OEMCRYPTO_ADAPTER_H_
|
|
|
|
#include "OEMCryptoCENC.h"
|
|
|
|
namespace wvcdm {
|
|
|
|
enum SecurityLevel { kLevelDefault, kLevel3 };
|
|
|
|
// This attempts to open a session at the desired security level.
|
|
// If one level is not available, the other will be used instead.
|
|
OEMCryptoResult OEMCrypto_OpenSession(OEMCrypto_SESSION* session,
|
|
SecurityLevel level);
|
|
OEMCryptoResult OEMCrypto_CopyBuffer(
|
|
SecurityLevel level, const uint8_t* data_addr, size_t data_length,
|
|
OEMCrypto_DestBufferDesc* out_buffer, uint8_t subsample_flags);
|
|
OEMCryptoResult OEMCrypto_InstallKeybox(const uint8_t* keybox,
|
|
size_t keyBoxLength,
|
|
SecurityLevel level);
|
|
OEMCryptoResult OEMCrypto_IsKeyboxValid(SecurityLevel level);
|
|
OEMCryptoResult OEMCrypto_GetDeviceID(uint8_t* deviceID, size_t* idLength,
|
|
SecurityLevel level);
|
|
OEMCryptoResult OEMCrypto_GetKeyData(uint8_t* keyData, size_t* keyDataLength,
|
|
SecurityLevel level);
|
|
uint32_t OEMCrypto_APIVersion(SecurityLevel level);
|
|
const char* OEMCrypto_SecurityLevel(SecurityLevel level);
|
|
OEMCryptoResult OEMCrypto_GetHDCPCapability(SecurityLevel level,
|
|
OEMCrypto_HDCP_Capability* current,
|
|
OEMCrypto_HDCP_Capability* maximum);
|
|
bool OEMCrypto_SupportsUsageTable(SecurityLevel level);
|
|
bool OEMCrypto_IsAntiRollbackHwPresent(SecurityLevel level);
|
|
OEMCryptoResult OEMCrypto_GetNumberOfOpenSessions(SecurityLevel level,
|
|
size_t* count);
|
|
OEMCryptoResult OEMCrypto_GetMaxNumberOfSessions(SecurityLevel level,
|
|
size_t* maximum);
|
|
} // namespace wvcdm
|
|
|
|
#endif // WVCDM_CORE_OEMCRYPTO_ADAPTER_H_
|