ODK implementation for license release
PiperOrigin-RevId: 580643396 Change-Id: I588ef20587acc347b510dfb7fd9e372d221100a0
This commit is contained in:
@@ -66,6 +66,15 @@ static OEMCryptoResult ODK_PrepareRequest(
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ODK_Release_Request_Type: {
|
||||
core_message->message_length = ODK_RELEASE_REQUEST_SIZE;
|
||||
if (sizeof(ODK_PreparedReleaseRequest) > prepared_request_buffer_length) {
|
||||
return ODK_ERROR_CORE_MESSAGE;
|
||||
}
|
||||
Pack_ODK_PreparedReleaseRequest(
|
||||
&msg, (ODK_PreparedReleaseRequest*)prepared_request_buffer);
|
||||
break;
|
||||
}
|
||||
case ODK_Renewal_Request_Type: {
|
||||
core_message->message_length = ODK_RENEWAL_REQUEST_SIZE;
|
||||
if (sizeof(ODK_PreparedRenewalRequest) > prepared_request_buffer_length) {
|
||||
@@ -224,6 +233,29 @@ OEMCryptoResult ODK_PrepareCoreLicenseRequest(
|
||||
}
|
||||
}
|
||||
|
||||
OEMCryptoResult ODK_PrepareCoreReleaseRequest(
|
||||
uint8_t* message, size_t message_length, size_t* core_message_size,
|
||||
const ODK_NonceValues* nonce_values,
|
||||
const ODK_MessageCounterInfo* counter_info, uint32_t status,
|
||||
uint32_t clock_security_level, int64_t seconds_since_license_requested,
|
||||
int64_t seconds_since_first_decrypt) {
|
||||
if (core_message_size == NULL || nonce_values == NULL ||
|
||||
counter_info == NULL) {
|
||||
return ODK_ERROR_CORE_MESSAGE;
|
||||
}
|
||||
if (nonce_values->api_major_version >= 19) {
|
||||
ODK_PreparedReleaseRequest release_request = {0};
|
||||
return ODK_PrepareRequest(
|
||||
message, message_length, core_message_size, ODK_Release_Request_Type,
|
||||
nonce_values, &release_request, sizeof(ODK_PreparedReleaseRequest));
|
||||
} else {
|
||||
// If the version is pre 19 when license release isn't supported, create a
|
||||
// license request.
|
||||
return ODK_PrepareCoreLicenseRequest(
|
||||
message, message_length, core_message_size, nonce_values, counter_info);
|
||||
}
|
||||
}
|
||||
|
||||
OEMCryptoResult ODK_PrepareCoreRenewalRequest(uint8_t* message,
|
||||
size_t message_length,
|
||||
size_t* core_message_size,
|
||||
|
||||
Reference in New Issue
Block a user