Merge from Widevine repo of http://go/wvgerrit/46204 Refactor utility code - split the mock, step 1 Merge from Widevine repo of http://go/wvgerrit/46205 Move some OEMCrypto types to common header - split the mock, step 2 Merge from Widevine repo of http://go/wvgerrit/46206 Split mock into two -- step 3 Merge from Widevine repo of http://go/wvgerrit/47460 Split the mock into two -- step 3.5 The CL moves several files used by oemcrypto and cdm into a common subdirectory, so that it may more easily be shared with partners. The CORE_DISALLOW_COPY_AND_ASSIGN macro was moved to its own header in the util/include directory. This CL removes some references to the mock from other code, and puts some constants and types, such as the definition of the keybox, into a header in oemcrypto. Test: tested as part of http://go/ag/4674759 bug: 76393338 Change-Id: I75b4bde7062ed8ee572c97ebc2f4da018f4be0c9
48 lines
1.7 KiB
C++
48 lines
1.7 KiB
C++
#ifndef CDM_OEC_DEVICE_FEATURES_H_
|
|
#define CDM_OEC_DEVICE_FEATURES_H_
|
|
|
|
#include <string>
|
|
|
|
#include "OEMCryptoCENC.h"
|
|
#include "oemcrypto_types.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.
|
|
TEST_PROVISION_30, // Device has OEM Certificate installed.
|
|
};
|
|
|
|
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.
|
|
bool supports_rsa_3072; // Device supports 3072 bit RSA keys.
|
|
uint32_t api_version;
|
|
OEMCrypto_ProvisioningMethod provisioning_method;
|
|
|
|
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;
|
|
const char* ProvisioningMethodName(OEMCrypto_ProvisioningMethod method);
|
|
|
|
} // namespace wvoec
|
|
|
|
#endif // CDM_OEC_DEVICE_FEATURES_H_
|