ODK implementation for license release

PiperOrigin-RevId: 580643396
Change-Id: I588ef20587acc347b510dfb7fd9e372d221100a0
This commit is contained in:
Vicky Min
2023-11-08 13:42:54 -08:00
committed by Robert Shih
parent 692cb259f3
commit 4d7025e517
13 changed files with 163 additions and 4 deletions

View File

@@ -34,6 +34,16 @@ namespace deserialize {
bool CoreLicenseRequestFromMessage(const std::string& oemcrypto_core_message,
ODK_LicenseRequest* core_license_request);
/**
* Counterpart (deserializer) of ODK_PrepareCoreReleaseRequest (serializer)
*
* Parameters:
* [in] oemcrypto_core_message
* [out] core_license_request
*/
bool CoreReleaseRequestFromMessage(const std::string& oemcrypto_core_message,
ODK_ReleaseRequest* core_release_request);
/**
* Counterpart (deserializer) of ODK_PrepareCoreRenewalRequest (serializer)
*

View File

@@ -44,6 +44,23 @@ bool CreateCoreLicenseResponse(const CoreMessageFeatures& features,
const std::string& core_request_sha256,
std::string* oemcrypto_core_message);
/**
* Counterpart (serializer) of ODK_ParseLicense (deserializer)
* struct-input variant
*
* Parameters:
* [in] features feature support for response message.
* [in] core_request
* [in] seconds_since_license_requested
* [in] seconds_since_first_decrypt
* [out] oemcrypto_core_message
*/
bool CreateCoreReleaseResponse(const CoreMessageFeatures& features,
const ODK_ReleaseRequest& core_request,
int64_t seconds_since_license_requested,
int64_t seconds_since_first_decrypt,
std::string* oemcrypto_core_message);
/**
* Counterpart (serializer) of ODK_ParseRenewal (deserializer)
*

View File

@@ -101,6 +101,17 @@ struct ODK_LicenseRequest {
ODK_MessageCounter counter_info;
};
/**
* Output structure for CoreReleaseRequestFromMessage
* Input structure for CreateCoreReleaseResponse
*/
struct ODK_ReleaseRequest {
uint16_t api_minor_version;
uint16_t api_major_version;
uint32_t nonce;
uint32_t session_id;
};
/**
* Output structure for CoreRenewalRequestFromMessage
* Input structure for CreateCoreRenewalResponse

View File

@@ -312,7 +312,7 @@ OEMCryptoResult ODK_PrepareCoreLicenseRequest(
* @version
* This method is new in version 19 of the API.
*/
OEMCryptoResult ODK_PrepareCoreLicenseRelease(
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,

View File

@@ -19,7 +19,7 @@ extern "C" {
#define ODK_MINOR_VERSION 0
/* ODK Version string. Date changed automatically on each release. */
#define ODK_RELEASE_DATE "ODK v19.0 2023-11-07"
#define ODK_RELEASE_DATE "ODK v19.0 2023-11-08"
/* The lowest version number for an ODK message. */
#define ODK_FIRST_VERSION 16
@@ -289,6 +289,16 @@ typedef struct {
OEMCrypto_KeyObject* key_array;
} ODK_Packing_ParsedLicense;
/**
* The parsed release structure does not currently contain information from or
* about the license message. This struct is a placeholder for future cases
* where data may need to be added to the parsed release.
* @version
* This struct is new in API version 19.
*/
typedef struct {
} ODK_ParsedRelease;
/**
* The parsed provisioning structure contains information from the license
* message. The function ODK_ParseProvisioning will fill in the fields of