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)(
|
typedef OEMCryptoResult (*L1_PrepAndSignLicenseRequest_t)(
|
||||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||||
size_t* core_message_length, uint8_t* signature, size_t* signature_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)(
|
typedef OEMCryptoResult (*L1_PrepAndSignRenewalRequest_t)(
|
||||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||||
size_t* core_message_length, uint8_t* signature, size_t* signature_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)(
|
typedef OEMCryptoResult (*L1_PrepAndSignProvisioningRequest_t)(
|
||||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||||
size_t* core_message_length, uint8_t* signature, size_t* signature_length);
|
size_t* core_message_length, uint8_t* signature, size_t* signature_length);
|
||||||
@@ -357,7 +357,7 @@ struct FunctionPointers {
|
|||||||
L1_GenerateNonce_t GenerateNonce;
|
L1_GenerateNonce_t GenerateNonce;
|
||||||
L1_GenerateSignature_t GenerateSignature;
|
L1_GenerateSignature_t GenerateSignature;
|
||||||
L1_PrepAndSignLicenseRequest_t PrepAndSignLicenseRequest;
|
L1_PrepAndSignLicenseRequest_t PrepAndSignLicenseRequest;
|
||||||
L1_PrepAndSignLicenseRelease_t PrepAndSignLicenseRelease;
|
L1_PrepAndSignLicenseRelease_t PrepAndSignReleaseRequest;
|
||||||
L1_PrepAndSignRenewalRequest_t PrepAndSignRenewalRequest;
|
L1_PrepAndSignRenewalRequest_t PrepAndSignRenewalRequest;
|
||||||
L1_PrepAndSignProvisioningRequest_t PrepAndSignProvisioningRequest;
|
L1_PrepAndSignProvisioningRequest_t PrepAndSignProvisioningRequest;
|
||||||
L1_LoadLicense_t LoadLicense;
|
L1_LoadLicense_t LoadLicense;
|
||||||
@@ -987,7 +987,7 @@ class Adapter {
|
|||||||
LOOKUP_ALL( 9, GenerateRSASignature, OEMCrypto_GenerateRSASignature);
|
LOOKUP_ALL( 9, GenerateRSASignature, OEMCrypto_GenerateRSASignature);
|
||||||
LOOKUP( 8, 15, GenerateSignature, OEMCrypto_GenerateSignature);
|
LOOKUP( 8, 15, GenerateSignature, OEMCrypto_GenerateSignature);
|
||||||
LOOKUP_ALL(16, PrepAndSignLicenseRequest, OEMCrypto_PrepAndSignLicenseRequest);
|
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, PrepAndSignRenewalRequest, OEMCrypto_PrepAndSignRenewalRequest);
|
||||||
LOOKUP_ALL(16, PrepAndSignProvisioningRequest, OEMCrypto_PrepAndSignProvisioningRequest);
|
LOOKUP_ALL(16, PrepAndSignProvisioningRequest, OEMCrypto_PrepAndSignProvisioningRequest);
|
||||||
LOOKUP_ALL( 8, Generic_Decrypt_V17, OEMCrypto_Generic_Decrypt_V17);
|
LOOKUP_ALL( 8, Generic_Decrypt_V17, OEMCrypto_Generic_Decrypt_V17);
|
||||||
@@ -2088,9 +2088,24 @@ extern "C" OEMCryptoResult OEMCrypto_PrepAndSignLicenseRequest(
|
|||||||
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
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,
|
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||||
size_t* core_message_length, uint8_t* signature, size_t* signature_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;
|
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2770,6 +2785,14 @@ extern "C" OEMCryptoResult OEMCrypto_GetUsageEntryInfo(
|
|||||||
OEMCrypto_SESSION session, OEMCrypto_Usage_Entry_Status* status,
|
OEMCrypto_SESSION session, OEMCrypto_Usage_Entry_Status* status,
|
||||||
int64_t* seconds_since_license_received,
|
int64_t* seconds_since_license_received,
|
||||||
int64_t* seconds_since_first_decrypt) {
|
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;
|
return OEMCrypto_ERROR_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -729,7 +729,7 @@ typedef enum OEMCrypto_SignatureHashAlgorithm {
|
|||||||
#define OEMCrypto_LoadLicense _oecc144
|
#define OEMCrypto_LoadLicense _oecc144
|
||||||
#define OEMCrypto_LoadProvisioning _oecc145
|
#define OEMCrypto_LoadProvisioning _oecc145
|
||||||
#define OEMCrypto_LoadProvisioningCast _oecc146
|
#define OEMCrypto_LoadProvisioningCast _oecc146
|
||||||
#define OEMCrypto_PrepAndSignLicenseRelease _oecc147
|
#define OEMCrypto_PrepAndSignReleaseRequest _oecc147
|
||||||
#define OEMCrypto_GetUsageEntryInfo _oecc148
|
#define OEMCrypto_GetUsageEntryInfo _oecc148
|
||||||
#define OEMCrypto_GetBCCType _oecc149
|
#define OEMCrypto_GetBCCType _oecc149
|
||||||
// clang-format on
|
// clang-format on
|
||||||
@@ -1159,7 +1159,7 @@ OEMCryptoResult OEMCrypto_PrepAndSignLicenseRequest(
|
|||||||
* @version
|
* @version
|
||||||
* This method is new in API version 19.
|
* This method is new in API version 19.
|
||||||
*/
|
*/
|
||||||
OEMCryptoResult OEMCrypto_PrepAndSignLicenseRelease(
|
OEMCryptoResult OEMCrypto_PrepAndSignReleaseRequest(
|
||||||
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
OEMCrypto_SESSION session, uint8_t* message, size_t message_length,
|
||||||
size_t* core_message_size, uint8_t* signature, size_t* signature_length);
|
size_t* core_message_size, uint8_t* signature, size_t* signature_length);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user