Add New Parameters to CreateUsageTableHeader
Merge from Widevine repo of http://go/wvgerrit/23166 This changes OEMCrypto_CreateUsageTableHeader so that the new header is passed back in a buffer to the cdm layer. I hacked out the haystack call and just stubbed out the mock call. This should still build and run with previous liblevel3.a builds. I also removed from the header some function names that are no longer part of OEMCrypto v13. bug:31458046 Change-Id: Ie490c482fe2457076f9026369f4b4b9491a4eb81
This commit is contained in:
@@ -38,7 +38,9 @@ uint8_t OEMCrypto_Security_Patch_Level(SecurityLevel level);
|
||||
OEMCrypto_ProvisioningMethod OEMCrypto_GetProvisioningMethod(
|
||||
SecurityLevel level);
|
||||
uint32_t OEMCrypto_SupportedCertificates(SecurityLevel level);
|
||||
OEMCryptoResult OEMCrypto_CreateUsageTableHeader(SecurityLevel level);
|
||||
OEMCryptoResult OEMCrypto_CreateUsageTableHeader(SecurityLevel level,
|
||||
uint8_t* header_buffer,
|
||||
size_t* header_buffer_length);
|
||||
OEMCryptoResult OEMCrypto_LoadUsageTableHeader(SecurityLevel level,
|
||||
const uint8_t* buffer,
|
||||
size_t buffer_length);
|
||||
|
||||
@@ -214,7 +214,8 @@ typedef OEMCryptoResult (*L1_GetCurrentSRMVersion_t)(uint16_t* version);
|
||||
typedef OEMCryptoResult (*L1_LoadSRM_t)(const uint8_t* buffer,
|
||||
size_t buffer_length);
|
||||
typedef OEMCryptoResult (*L1_RemoveSRM_t)();
|
||||
typedef OEMCryptoResult (*L1_CreateUsageTableHeader_t)();
|
||||
typedef OEMCryptoResult (*L1_CreateUsageTableHeader_t)(uint8_t* header_buffer,
|
||||
size_t* header_buffer_length);
|
||||
typedef OEMCryptoResult (*L1_LoadUsageTableHeader_t)(const uint8_t* buffer,
|
||||
size_t buffer_length);
|
||||
typedef OEMCryptoResult (*L1_CreateNewUsageEntry_t)(OEMCrypto_SESSION session,
|
||||
@@ -648,7 +649,8 @@ class Adapter {
|
||||
level3_.GetCurrentSRMVersion = Level3_GetCurrentSRMVersion;
|
||||
level3_.LoadSRM = Level3_LoadSRM;
|
||||
level3_.RemoveSRM = Level3_RemoveSRM;
|
||||
level3_.CreateUsageTableHeader = Level3_CreateUsageTableHeader;
|
||||
// TODO(fredgc): add stub.
|
||||
// level3_.CreateUsageTableHeader = Level3_CreateUsageTableHeader;
|
||||
level3_.LoadUsageTableHeader = Level3_LoadUsageTableHeader;
|
||||
level3_.CreateNewUsageEntry = Level3_CreateNewUsageEntry;
|
||||
level3_.LoadUsageEntry = Level3_LoadUsageEntry;
|
||||
@@ -895,13 +897,15 @@ uint32_t OEMCrypto_SupportedCertificates(SecurityLevel level) {
|
||||
return fcn->SupportedCertificates();
|
||||
}
|
||||
|
||||
OEMCryptoResult OEMCrypto_CreateUsageTableHeader(SecurityLevel level) {
|
||||
OEMCryptoResult OEMCrypto_CreateUsageTableHeader(SecurityLevel level,
|
||||
uint8_t* header_buffer,
|
||||
size_t* header_buffer_length) {
|
||||
if (!kAdapter) return OEMCrypto_ERROR_UNKNOWN_FAILURE;
|
||||
const FunctionPointers* fcn = kAdapter->get(level);
|
||||
if (!fcn) return OEMCrypto_ERROR_INVALID_SESSION;
|
||||
if (fcn->version < 9) return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
if (fcn->version < 13) return fcn->DeleteOldUsageTable();
|
||||
return fcn->CreateUsageTableHeader();
|
||||
if (fcn->version < 13) return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
if (!fcn->CreateUsageTableHeader) return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
return fcn->CreateUsageTableHeader(header_buffer, header_buffer_length);
|
||||
}
|
||||
|
||||
OEMCryptoResult OEMCrypto_LoadUsageTableHeader(SecurityLevel level,
|
||||
@@ -1544,8 +1548,10 @@ OEMCryptoResult OEMCrypto_RemoveSRM() {
|
||||
}
|
||||
|
||||
extern "C"
|
||||
OEMCryptoResult OEMCrypto_CreateUsageTableHeader() {
|
||||
return OEMCrypto_CreateUsageTableHeader(kLevelDefault);
|
||||
OEMCryptoResult OEMCrypto_CreateUsageTableHeader(uint8_t* header_buffer,
|
||||
size_t* header_buffer_length) {
|
||||
return OEMCrypto_CreateUsageTableHeader(kLevelDefault, header_buffer,
|
||||
header_buffer_length);
|
||||
}
|
||||
|
||||
extern "C"
|
||||
|
||||
Reference in New Issue
Block a user