diff --git a/libwvdrmengine/oemcrypto/odk/include/odk.h b/libwvdrmengine/oemcrypto/odk/include/odk.h index 2df08e17..ab0a88b9 100644 --- a/libwvdrmengine/oemcrypto/odk/include/odk.h +++ b/libwvdrmengine/oemcrypto/odk/include/odk.h @@ -274,6 +274,48 @@ OEMCryptoResult ODK_PrepareCoreLicenseRequest( const ODK_NonceValues* nonce_values, const ODK_MessageCounterInfo* counter_info); +/** + * Modifies the message to include a core license release at the beginning of + * the message buffer. The values in nonce_values are used to populate the + * message. + * + * This shall be called by OEMCrypto from OEMCrypto_PrepAndSignLicenseRelease. + * + * NOTE: if the message pointer is null and/or input core_message_size is + * zero, this function returns OEMCrypto_ERROR_SHORT_BUFFER and sets output + * core_message_size to the size needed. + * + * @param[in,out] message: Pointer to memory for the entire message. Modified by + * the ODK library. + * @param[in] message_length: length of the entire message buffer. + * @param[in,out] core_message_size: length of the core message at the beginning + * of the message. (in) size of buffer reserved for the core message, in + * bytes. (out) actual length of the core message, in bytes. + * @param[in] nonce_values: pointer to the session's nonce data. + * @param[in] message_count_info: information used for server-side anomaly + * detection + * @param[in] status: the enumeration of OEMCrypto_Usage_Entry_Status + * @param[in] clock_security_level: the enumeration of + * OEMCryto_Clock_Security_Level + * @param[in] seconds_since_license_requested: the time between the license + * being requested and the release being generated in seconds + * @param[in] seconds_since_first_decrypt: The time since playback has started + * in seconds + * + * @retval OEMCrypto_SUCCESS + * @retval OEMCrypto_ERROR_SHORT_BUFFER: core_message_size is too small + * @retval OEMCrypto_ERROR_INVALID_CONTEXT + * + * @version + * This method is new in version 19 of the API. + */ +OEMCryptoResult ODK_PrepareCoreLicenseRelease( + 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); + /** * Modifies the message to include a core renewal request at the beginning of * the message buffer. The values in nonce_values, clock_values and diff --git a/libwvdrmengine/oemcrypto/odk/include/odk_structs.h b/libwvdrmengine/oemcrypto/odk/include/odk_structs.h index ad342018..63b5cbe6 100644 --- a/libwvdrmengine/oemcrypto/odk/include/odk_structs.h +++ b/libwvdrmengine/oemcrypto/odk/include/odk_structs.h @@ -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-08-28" +#define ODK_RELEASE_DATE "ODK v19.0 2023-10-09" /* The lowest version number for an ODK message. */ #define ODK_FIRST_VERSION 16