This is a merge from the widevine repository of http://go/wvgerrit/13923 Switch openssl to use the EVP interface for aes-ctr-128 http://go/wvgerrit/13979 Add Test Certificate to OEMCrypto Mock http://go/wvgerrit/13978 Add Test Keybox to Level 3 OEMCrypto http://go/wvgerrit/13873 Enable OEMCrypto Unit Tests This CL adds a main program to oemcrypto_test.cpp, which filters out tests that are not supported on the specified platform. It also adds LoadTestKeybox to the mock. This allows oemcrypto unit tests to be run on devices that have production keybox. It also allows the same set of unit tests to work on Android and on non-Android platforms. b/18962381 Use test certificate (partial fix) b/19867990 Separate cast receiver tests Change-Id: If89c31530103ed85aa37d7379bd5b4dc2a927f38
42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
#ifndef CDM_OEMCRYPTO_TEST_H_
|
|
#define CDM_OEMCRYPTO_TEST_H_
|
|
|
|
#include "OEMCryptoCENC.h"
|
|
#include "wv_keybox.h"
|
|
|
|
namespace wvoec {
|
|
|
|
class DeviceFeatures {
|
|
public:
|
|
enum DeriveMethod { // Method to use derive session keys.
|
|
NO_METHOD, // Cannot derive known session keys.
|
|
LOAD_TEST_KEYBOX, // Call LoadTestKeybox before deriving keys.
|
|
LOAD_TEST_RSA_KEY, // Call LoadTestRSAKey before deriving keys.
|
|
EXISTING_TEST_KEYBOX, // Keybox is already the test keybox.
|
|
FORCE_TEST_KEYBOX, // User requested calling InstallKeybox.
|
|
};
|
|
|
|
enum DeriveMethod derive_key_method;
|
|
bool uses_keybox; // Device uses a keybox to derive session keys.
|
|
bool uses_certificate; // Device uses a certificate to derive session keys.
|
|
bool loads_certificate; // Device can load a certificate from the server.
|
|
bool generic_crypto; // Device supports generic crypto.
|
|
bool cast_receiver; // Device supports alternate rsa signature padding.
|
|
bool usage_table; // Device saves usage information.
|
|
uint32_t api_version;
|
|
|
|
void Initialize(bool is_cast_receiver, bool force_load_test_keybox);
|
|
std::string RestrictFilter(const std::string& initial_filter);
|
|
|
|
private:
|
|
void PickDerivedKey();
|
|
bool IsTestKeyboxInstalled();
|
|
void FilterOut(std::string* current_filter, const std::string& new_filter);
|
|
};
|
|
|
|
extern DeviceFeatures global_features;
|
|
|
|
} // namespace wvoec
|
|
|
|
#endif // CDM_OEMCRYPTO_TEST_H_
|