Pick widevine oemcrypto-v18 change
No-Typo-Check: From a third party header file Bug: 260918793 Test: unit tests Test: atp v2/widevine-eng/drm_compliance Change-Id: I36effd6a10a99bdb2399ab1f4a0fad026d607c70
This commit is contained in:
@@ -15,11 +15,11 @@ extern "C" {
|
||||
#include "odk_target.h"
|
||||
|
||||
/* The version of this library. */
|
||||
#define ODK_MAJOR_VERSION 17
|
||||
#define ODK_MINOR_VERSION 2
|
||||
#define ODK_MAJOR_VERSION 18
|
||||
#define ODK_MINOR_VERSION 0
|
||||
|
||||
/* ODK Version string. Date changed automatically on each release. */
|
||||
#define ODK_RELEASE_DATE "ODK v17.2 2022-08-10"
|
||||
#define ODK_RELEASE_DATE "ODK v18.0 2022-12-14"
|
||||
|
||||
/* The lowest version number for an ODK message. */
|
||||
#define ODK_FIRST_VERSION 16
|
||||
@@ -28,6 +28,11 @@ extern "C" {
|
||||
#define ODK_DEVICE_ID_LEN_MAX 64
|
||||
#define ODK_SHA256_HASH_SIZE 32
|
||||
#define ODK_KEYBOX_RENEWAL_DATA_SIZE 1600
|
||||
/* The max length of the encoded device info in CBOR format. Make sure it gets
|
||||
* updated when more device info is included. Refer to
|
||||
* https://www.rfc-editor.org/rfc/rfc8949.html#name-specification-of-the-cbor-e
|
||||
* for an estimation of the required length. */
|
||||
#define ODK_DEVICE_INFO_LEN_MAX 256
|
||||
|
||||
/// @addtogroup odk_timer
|
||||
/// @{
|
||||
@@ -161,6 +166,47 @@ typedef struct {
|
||||
/// @addtogroup odk_parser
|
||||
/// @{
|
||||
|
||||
/**
|
||||
* This counter information is used by the license and provisioning servers to
|
||||
* keep track of requests. Values should be updated after every successful
|
||||
* provisioning request, license request, and decrypt call.
|
||||
*
|
||||
* @param provisioning_count: number of times a provisioning request was made on
|
||||
* this device in the current instance. May be reset to 0 on device power off.
|
||||
* @param license_count: number of times a license request was made on this
|
||||
* device in the current instance. May be reset to 0 on device power off.
|
||||
* @param decrypt_count: number of times OEMCrypto_DecryptCENC() has been called
|
||||
* on this device in the current instance. May be reset to 0 on device power
|
||||
* off.
|
||||
* @param master_generation_number: current master generation number value from
|
||||
* the OEMCrypto usage table. Persists across reboots.
|
||||
* @param soc_vendor: name of the system-on-a-chip vendor for the device,
|
||||
* limited to 16 bytes
|
||||
* @param chipset_model: name of the chipset on the device, limited to 16 bytes
|
||||
* @param major_version: major version of the TA binary. This is different from
|
||||
* the OEMCrypto version that is being implemented.
|
||||
* @param minor_version: minor version of the TA binary, if applicable. This is
|
||||
* different from the OEMCrypto version that is being implemented.
|
||||
* @param patch_version: patch version of the TA binary, if applicable. This is
|
||||
* different from the OEMCrypto version that is being implemented.
|
||||
* @param extra: unused in V18
|
||||
*
|
||||
* @version
|
||||
* This struct was added in API version 18.
|
||||
*/
|
||||
typedef struct {
|
||||
uint64_t master_generation_number;
|
||||
uint32_t provisioning_count;
|
||||
uint32_t license_count;
|
||||
uint32_t decrypt_count;
|
||||
uint16_t major_version;
|
||||
uint16_t minor_version;
|
||||
uint16_t patch_version;
|
||||
uint8_t soc_vendor[16];
|
||||
uint8_t chipset_model[16];
|
||||
uint8_t extra[12];
|
||||
} ODK_MessageCounterInfo;
|
||||
|
||||
/**
|
||||
* The parsed license structure contains information from the license
|
||||
* message. The function ODK_ParseLicense will fill in the fields of this
|
||||
@@ -178,11 +224,12 @@ typedef struct {
|
||||
* @param timer_limits: time limits of the for the license.
|
||||
* @param watermarking: specifies if device supports watermarking.
|
||||
* @param dtcp2_required: specifies if device supports DTCP.
|
||||
* @param renewal_delay_base: what time the timer starting is based off of.
|
||||
* @param key_array_length: number of keys present.
|
||||
* @param key_array: set of keys to be installed.
|
||||
*
|
||||
* @version
|
||||
* This struct changed in API version 17.
|
||||
* This struct changed in API version 18.
|
||||
*/
|
||||
typedef struct {
|
||||
OEMCrypto_Substring enc_mac_keys_iv;
|
||||
@@ -194,6 +241,7 @@ typedef struct {
|
||||
ODK_TimerLimits timer_limits;
|
||||
uint32_t watermarking;
|
||||
OEMCrypto_DTCP2_CMI_Packet dtcp2_required;
|
||||
OEMCrypto_TimerDelayBase renewal_delay_base;
|
||||
uint32_t key_array_length;
|
||||
OEMCrypto_KeyObject key_array[ODK_MAX_NUM_KEYS];
|
||||
} ODK_ParsedLicense;
|
||||
|
||||
Reference in New Issue
Block a user