OEMCrypto implementation of OEMCrypto_PrepAndSignReleaseRequest
Bug: 295956275 Change-Id: I1f3e7f83c644c16419cc99862c9147d321cfdb5f
This commit is contained in:
@@ -71,12 +71,12 @@ typedef OEMCryptoResult (*L1_GenerateSignature_t)(OEMCrypto_SESSION session,
|
||||
typedef OEMCryptoResult (*L1_PrepAndSignLicenseRequest_t)(
|
||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||
size_t* core_message_length, uint8_t* signature, size_t* signature_length);
|
||||
typedef OEMCryptoResult (*L1_PrepAndSignLicenseRelease_t)(
|
||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||
size_t* core_message_length, uint8_t* signature, size_t* signature_length);
|
||||
typedef OEMCryptoResult (*L1_PrepAndSignRenewalRequest_t)(
|
||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||
size_t* core_message_length, uint8_t* signature, size_t* signature_length);
|
||||
typedef OEMCryptoResult (*L1_PrepAndSignReleaseRequest_t)(
|
||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||
size_t* core_message_size, uint8_t* signature, size_t* signature_length);
|
||||
typedef OEMCryptoResult (*L1_PrepAndSignProvisioningRequest_t)(
|
||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||
size_t* core_message_length, uint8_t* signature, size_t* signature_length);
|
||||
@@ -357,7 +357,7 @@ struct FunctionPointers {
|
||||
L1_GenerateNonce_t GenerateNonce;
|
||||
L1_GenerateSignature_t GenerateSignature;
|
||||
L1_PrepAndSignLicenseRequest_t PrepAndSignLicenseRequest;
|
||||
L1_PrepAndSignLicenseRelease_t PrepAndSignLicenseRelease;
|
||||
L1_PrepAndSignLicenseRelease_t PrepAndSignReleaseRequest;
|
||||
L1_PrepAndSignRenewalRequest_t PrepAndSignRenewalRequest;
|
||||
L1_PrepAndSignProvisioningRequest_t PrepAndSignProvisioningRequest;
|
||||
L1_LoadLicense_t LoadLicense;
|
||||
@@ -987,7 +987,7 @@ class Adapter {
|
||||
LOOKUP_ALL( 9, GenerateRSASignature, OEMCrypto_GenerateRSASignature);
|
||||
LOOKUP( 8, 15, GenerateSignature, OEMCrypto_GenerateSignature);
|
||||
LOOKUP_ALL(16, PrepAndSignLicenseRequest, OEMCrypto_PrepAndSignLicenseRequest);
|
||||
LOOKUP_ALL(16, PrepAndSignLicenseRelease, OEMCrypto_PrepAndSignLicenseRelease);
|
||||
LOOKUP_ALL(16, PrepAndSignReleaseRequest, OEMCrypto_PrepAndSignReleaseRequest);
|
||||
LOOKUP_ALL(16, PrepAndSignRenewalRequest, OEMCrypto_PrepAndSignRenewalRequest);
|
||||
LOOKUP_ALL(16, PrepAndSignProvisioningRequest, OEMCrypto_PrepAndSignProvisioningRequest);
|
||||
LOOKUP_ALL( 8, Generic_Decrypt_V17, OEMCrypto_Generic_Decrypt_V17);
|
||||
@@ -2088,9 +2088,24 @@ extern "C" OEMCryptoResult OEMCrypto_PrepAndSignLicenseRequest(
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
extern "C" OEMCryptoResult OEMCrypto_PrepAndSignLicenseRelease(
|
||||
extern "C" OEMCryptoResult OEMCrypto_PrepAndSignReleaseRequest(
|
||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||
size_t* core_message_length, uint8_t* signature, size_t* signature_length) {
|
||||
if (!gAdapter.get()) return OEMCrypto_ERROR_UNKNOWN_FAILURE;
|
||||
LevelSession pair = gAdapter->GetSession(session);
|
||||
if (!pair.fcn) return OEMCrypto_ERROR_INVALID_SESSION;
|
||||
if (pair.fcn->PrepAndSignReleaseRequest != nullptr) {
|
||||
return pair.fcn->PrepAndSignReleaseRequest(
|
||||
pair.session, message, message_length, core_message_length, signature,
|
||||
signature_length);
|
||||
}
|
||||
if (pair.fcn->version < 19) {
|
||||
if (pair.fcn->PrepAndSignRenewalRequest != nullptr) {
|
||||
return pair.fcn->PrepAndSignRenewalRequest(
|
||||
pair.session, message, message_length, core_message_length, signature,
|
||||
signature_length);
|
||||
}
|
||||
}
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -2770,6 +2785,14 @@ extern "C" OEMCryptoResult OEMCrypto_GetUsageEntryInfo(
|
||||
OEMCrypto_SESSION session, OEMCrypto_Usage_Entry_Status* status,
|
||||
int64_t* seconds_since_license_received,
|
||||
int64_t* seconds_since_first_decrypt) {
|
||||
if (!gAdapter) return OEMCrypto_ERROR_UNKNOWN_FAILURE;
|
||||
LevelSession pair = gAdapter->GetSession(session);
|
||||
if (!pair.fcn) return OEMCrypto_ERROR_INVALID_SESSION;
|
||||
if (pair.fcn->GetUsageEntryInfo != nullptr) {
|
||||
return fcn->GetUsageEntryInfo(pair.session, status,
|
||||
seconds_since_license_received,
|
||||
seconds_since_first_decrypt);
|
||||
}
|
||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
@@ -729,7 +729,7 @@ typedef enum OEMCrypto_SignatureHashAlgorithm {
|
||||
#define OEMCrypto_LoadLicense _oecc144
|
||||
#define OEMCrypto_LoadProvisioning _oecc145
|
||||
#define OEMCrypto_LoadProvisioningCast _oecc146
|
||||
#define OEMCrypto_PrepAndSignLicenseRelease _oecc147
|
||||
#define OEMCrypto_PrepAndSignReleaseRequest _oecc147
|
||||
#define OEMCrypto_GetUsageEntryInfo _oecc148
|
||||
#define OEMCrypto_GetBCCType _oecc149
|
||||
// clang-format on
|
||||
@@ -1159,7 +1159,7 @@ OEMCryptoResult OEMCrypto_PrepAndSignLicenseRequest(
|
||||
* @version
|
||||
* This method is new in API version 19.
|
||||
*/
|
||||
OEMCryptoResult OEMCrypto_PrepAndSignLicenseRelease(
|
||||
OEMCryptoResult OEMCrypto_PrepAndSignReleaseRequest(
|
||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||
size_t* core_message_size, uint8_t* signature, size_t* signature_length);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user