Files
2020-07-24 12:03:58 -07:00

384 lines
24 KiB
C

/*
* Copyright 2019 Google LLC. All Rights Reserved. This file and proprietary
* source code may only be used and distributed under the Widevine Master
* License Agreement.
*/
/*
* This code is auto-generated, do not edit
*/
#ifndef ODKITEE_DESERIALIZER_H_
#define ODKITEE_DESERIALIZER_H_
#include "deserializer.h"
#include "serialization_base.h"
#include "serializer.h"
#ifdef __cplusplus
extern "C" {
#endif
bool Is_Valid_OEMCryptoResult(uint32_t value);
bool Is_Valid_OEMCryptoBufferType(uint32_t value);
bool Is_Valid_OEMCryptoCipherMode(uint32_t value);
bool Is_Valid_OEMCrypto_LicenseType(uint32_t value);
bool Is_Valid_OEMCrypto_Algorithm(uint32_t value);
bool Is_Valid_OEMCrypto_Usage_Entry_Status(uint32_t value);
bool Is_Valid_OEMCrypto_Clock_Security_Level(uint32_t value);
bool Is_Valid_OEMCrypto_HDCP_Capability(uint32_t value);
bool Is_Valid_OEMCrypto_ProvisioningMethod(uint32_t value);
void ODK_Unpack_OEMCrypto_Substring(Message* msg, OEMCrypto_Substring* obj);
void ODK_Unpack_OEMCrypto_KeyObject(Message* msg, OEMCrypto_KeyObject* obj);
void ODK_Unpack_OEMCrypto_EntitledContentKeyObject(
Message* msg, OEMCrypto_EntitledContentKeyObject* obj);
void ODK_Unpack_OEMCrypto_KeyRefreshObject(Message* msg,
OEMCrypto_KeyRefreshObject* obj);
void ODK_Unpack_OEMCrypto_CENCEncryptPatternDesc(
Message* msg, OEMCrypto_CENCEncryptPatternDesc* obj);
void ODK_Unpack_SecurityLevel_Request(Message* msg);
void ODK_Unpack_SecurityLevel_Response(Message* msg, char** result);
void ODK_Unpack_BuildInformation_Request(Message* msg);
void ODK_Unpack_BuildInformation_Response(Message* msg, char** result);
void ODK_Unpack_SetSandbox_Request(Message* msg, uint8_t** sandbox_id,
size_t* sandbox_id_length);
void ODK_Unpack_SetSandbox_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_Initialize_Request(Message* msg);
void ODK_Unpack_Initialize_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_Terminate_Request(Message* msg);
void ODK_Unpack_Terminate_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_OpenSession_Request(Message* msg, OEMCrypto_SESSION** session);
void ODK_Unpack_OpenSession_Response(Message* msg, OEMCryptoResult* result,
OEMCrypto_SESSION** session);
void ODK_Unpack_CloseSession_Request(Message* msg, OEMCrypto_SESSION* session);
void ODK_Unpack_CloseSession_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_GenerateDerivedKeys_Request(Message* msg,
OEMCrypto_SESSION* session,
SharedMemory** mac_key_context,
uint32_t* mac_key_context_length,
SharedMemory** enc_key_context,
uint32_t* enc_key_context_length);
void ODK_Unpack_GenerateDerivedKeys_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_DeriveKeysFromSessionKey_Request(
Message* msg, OEMCrypto_SESSION* session, uint8_t** enc_session_key,
size_t* enc_session_key_length, SharedMemory** mac_key_context,
size_t* mac_key_context_length, SharedMemory** enc_key_context,
size_t* enc_key_context_length);
void ODK_Unpack_DeriveKeysFromSessionKey_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_GenerateNonce_Request(Message* msg, OEMCrypto_SESSION* session,
uint32_t** nonce);
void ODK_Unpack_GenerateNonce_Response(Message* msg, OEMCryptoResult* result,
uint32_t** nonce);
void ODK_Unpack_GenerateSignature_Request(
Message* msg, OEMCrypto_SESSION* session, SharedMemory** message,
size_t* message_length, uint8_t** signature, size_t** signature_length);
void ODK_Unpack_GenerateSignature_Response(Message* msg,
OEMCryptoResult* result,
uint8_t** signature,
size_t** signature_length);
void ODK_Unpack_LoadSRM_Request(Message* msg, uint8_t** buffer,
size_t* buffer_length);
void ODK_Unpack_LoadSRM_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_LoadKeys_Request(
Message* msg, OEMCrypto_SESSION* session, SharedMemory** message,
size_t* message_length, SharedMemory** signature, size_t* signature_length,
OEMCrypto_Substring* enc_mac_keys_iv, OEMCrypto_Substring* enc_mac_keys,
size_t* key_array_length, OEMCrypto_KeyObject** key_array,
OEMCrypto_Substring* pst, OEMCrypto_Substring* srm_restriction_data,
OEMCrypto_LicenseType* license_type);
void ODK_Unpack_LoadKeys_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_LoadEntitledContentKeys_Request(
Message* msg, OEMCrypto_SESSION* session, SharedMemory** message,
size_t* message_length, size_t* key_array_length,
OEMCrypto_EntitledContentKeyObject** key_array);
void ODK_Unpack_LoadEntitledContentKeys_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_RefreshKeys_Request(
Message* msg, OEMCrypto_SESSION* session, SharedMemory** message,
size_t* message_length, SharedMemory** signature, size_t* signature_length,
size_t* key_array_length, OEMCrypto_KeyRefreshObject** key_array);
void ODK_Unpack_RefreshKeys_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_QueryKeyControl_Request(Message* msg,
OEMCrypto_SESSION* session,
uint8_t** content_key_id,
size_t* content_key_id_length,
uint8_t** key_control_block,
size_t** key_control_block_length);
void ODK_Unpack_QueryKeyControl_Response(Message* msg, OEMCryptoResult* result,
uint8_t** key_control_block,
size_t** key_control_block_length);
void ODK_Unpack_SelectKey_Request(Message* msg, OEMCrypto_SESSION* session,
uint8_t** content_key_id,
size_t* content_key_id_length,
OEMCryptoCipherMode* cipher_mode);
void ODK_Unpack_SelectKey_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_DecryptCENC_Request(
Message* msg, OEMCrypto_SESSION* session, SharedMemory** data_addr,
size_t* data_addr_length, bool* is_encrypted, uint8_t* iv,
size_t* block_offset, OEMCrypto_DestBufferDesc** out_buffer,
OEMCrypto_CENCEncryptPatternDesc** pattern, uint8_t* subsample_flags);
void ODK_Unpack_DecryptCENC_Response(Message* msg, OEMCryptoResult* result,
OEMCrypto_DestBufferDesc** out_buffer);
void ODK_Unpack_CopyBuffer_Request(Message* msg, OEMCrypto_SESSION* session,
SharedMemory** data_addr,
size_t* data_addr_length,
OEMCrypto_DestBufferDesc** out_buffer,
uint8_t* subsample_flags);
void ODK_Unpack_CopyBuffer_Response(Message* msg, OEMCryptoResult* result,
OEMCrypto_DestBufferDesc** out_buffer);
void ODK_Unpack_Generic_Encrypt_Request(Message* msg,
OEMCrypto_SESSION* session,
SharedMemory** in_buffer,
size_t* in_buffer_length, uint8_t* iv,
OEMCrypto_Algorithm* algorithm,
uint8_t** out_buffer);
void ODK_Unpack_Generic_Encrypt_Response(Message* msg, OEMCryptoResult* result,
size_t* in_buffer_length,
uint8_t** out_buffer);
void ODK_Unpack_Generic_Decrypt_Request(Message* msg,
OEMCrypto_SESSION* session,
SharedMemory** in_buffer,
size_t* in_buffer_length, uint8_t* iv,
OEMCrypto_Algorithm* algorithm,
uint8_t** out_buffer);
void ODK_Unpack_Generic_Decrypt_Response(Message* msg, OEMCryptoResult* result,
size_t* in_buffer_length,
uint8_t** out_buffer);
void ODK_Unpack_Generic_Sign_Request(Message* msg, OEMCrypto_SESSION* session,
SharedMemory** buffer,
size_t* buffer_length,
OEMCrypto_Algorithm* algorithm,
uint8_t** signature,
size_t** signature_length);
void ODK_Unpack_Generic_Sign_Response(Message* msg, OEMCryptoResult* result,
uint8_t** signature,
size_t** signature_length);
void ODK_Unpack_Generic_Verify_Request(Message* msg, OEMCrypto_SESSION* session,
SharedMemory** buffer,
size_t* buffer_length,
OEMCrypto_Algorithm* algorithm,
SharedMemory** signature,
size_t* signature_length);
void ODK_Unpack_Generic_Verify_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_UpdateUsageTable_Request(Message* msg);
void ODK_Unpack_UpdateUsageTable_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_WrapKeyboxOrOEMCert_Request(Message* msg, uint8_t** rot,
size_t* rotLength,
uint8_t** wrappedRot,
size_t** wrappedRotLength,
uint8_t** transportKey,
size_t* transportKeyLength);
void ODK_Unpack_WrapKeyboxOrOEMCert_Response(Message* msg,
OEMCryptoResult* result,
uint8_t** wrappedRot,
size_t** wrappedRotLength);
void ODK_Unpack_InstallKeyboxOrOEMCert_Request(Message* msg, uint8_t** rot,
size_t* rotLength);
void ODK_Unpack_InstallKeyboxOrOEMCert_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_GetProvisioningMethod_Request(Message* msg);
void ODK_Unpack_GetProvisioningMethod_Response(
Message* msg, OEMCrypto_ProvisioningMethod* result);
void ODK_Unpack_IsKeyboxOrOEMCertValid_Request(Message* msg);
void ODK_Unpack_IsKeyboxOrOEMCertValid_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_GetDeviceID_Request(Message* msg, uint8_t** device_id,
size_t** device_id_length);
void ODK_Unpack_GetDeviceID_Response(Message* msg, OEMCryptoResult* result,
uint8_t** device_id,
size_t** device_id_length);
void ODK_Unpack_GetKeyData_Request(Message* msg, uint8_t** keyData,
size_t** keyDataLength);
void ODK_Unpack_GetKeyData_Response(Message* msg, OEMCryptoResult* result,
uint8_t** keyData, size_t** keyDataLength);
void ODK_Unpack_LoadTestKeybox_Request(Message* msg, uint8_t** buffer,
size_t* buffer_length);
void ODK_Unpack_LoadTestKeybox_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_GetOEMPublicCertificate_Request(Message* msg,
OEMCrypto_SESSION* session,
uint8_t** public_cert,
size_t** public_cert_length);
void ODK_Unpack_GetOEMPublicCertificate_Response(Message* msg,
OEMCryptoResult* result,
uint8_t** public_cert,
size_t** public_cert_length);
void ODK_Unpack_GetRandom_Request(Message* msg, uint8_t** random_data,
size_t* random_data_length);
void ODK_Unpack_GetRandom_Response(Message* msg, OEMCryptoResult* result,
uint8_t** random_data,
size_t* random_data_length);
void ODK_Unpack_APIVersion_Request(Message* msg);
void ODK_Unpack_APIVersion_Response(Message* msg, uint32_t* result);
void ODK_Unpack_Security_Patch_Level_Request(Message* msg);
void ODK_Unpack_Security_Patch_Level_Response(Message* msg, uint8_t* result);
void ODK_Unpack_GetHDCPCapability_Request(Message* msg,
OEMCrypto_HDCP_Capability** current,
OEMCrypto_HDCP_Capability** maximum);
void ODK_Unpack_GetHDCPCapability_Response(Message* msg,
OEMCryptoResult* result,
OEMCrypto_HDCP_Capability** current,
OEMCrypto_HDCP_Capability** maximum);
void ODK_Unpack_SupportsUsageTable_Request(Message* msg);
void ODK_Unpack_SupportsUsageTable_Response(Message* msg, bool* result);
void ODK_Unpack_IsAntiRollbackHwPresent_Request(Message* msg);
void ODK_Unpack_IsAntiRollbackHwPresent_Response(Message* msg, bool* result);
void ODK_Unpack_GetNumberOfOpenSessions_Request(Message* msg, size_t** count);
void ODK_Unpack_GetNumberOfOpenSessions_Response(Message* msg,
OEMCryptoResult* result,
size_t** count);
void ODK_Unpack_GetMaxNumberOfSessions_Request(Message* msg, size_t** max);
void ODK_Unpack_GetMaxNumberOfSessions_Response(Message* msg,
OEMCryptoResult* result,
size_t** max);
void ODK_Unpack_SupportedCertificates_Request(Message* msg);
void ODK_Unpack_SupportedCertificates_Response(Message* msg, uint32_t* result);
void ODK_Unpack_IsSRMUpdateSupported_Request(Message* msg);
void ODK_Unpack_IsSRMUpdateSupported_Response(Message* msg, bool* result);
void ODK_Unpack_GetCurrentSRMVersion_Request(Message* msg, uint16_t** version);
void ODK_Unpack_GetCurrentSRMVersion_Response(Message* msg,
OEMCryptoResult* result,
uint16_t** version);
void ODK_Unpack_GetAnalogOutputFlags_Request(Message* msg);
void ODK_Unpack_GetAnalogOutputFlags_Response(Message* msg, uint32_t* result);
void ODK_Unpack_ResourceRatingTier_Request(Message* msg);
void ODK_Unpack_ResourceRatingTier_Response(Message* msg, uint32_t* result);
void ODK_Unpack_RewrapDeviceRSAKey30_Request(
Message* msg, OEMCrypto_SESSION* session, uint32_t** unaligned_nonce,
SharedMemory** encrypted_message_key, size_t* encrypted_message_key_length,
SharedMemory** enc_rsa_key, size_t* enc_rsa_key_length,
uint8_t** enc_rsa_key_iv, uint8_t** wrapped_rsa_key,
size_t** wrapped_rsa_key_length);
void ODK_Unpack_RewrapDeviceRSAKey30_Response(Message* msg,
OEMCryptoResult* result,
uint8_t** wrapped_rsa_key,
size_t** wrapped_rsa_key_length);
void ODK_Unpack_RewrapDeviceRSAKey_Response(Message* msg,
OEMCryptoResult* result,
uint8_t** wrapped_rsa_key,
size_t** wrapped_rsa_key_length);
void ODK_Unpack_LoadDeviceRSAKey_Request(Message* msg,
OEMCrypto_SESSION* session,
SharedMemory** wrapped_rsa_key,
size_t* wrapped_rsa_key_length);
void ODK_Unpack_LoadDeviceRSAKey_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_LoadTestRSAKey_Request(Message* msg);
void ODK_Unpack_LoadTestRSAKey_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_GenerateRSASignature_Request(
Message* msg, OEMCrypto_SESSION* session, SharedMemory** message,
size_t* message_length, uint8_t** signature, size_t** signature_length,
RSA_Padding_Scheme* padding_scheme);
void ODK_Unpack_GenerateRSASignature_Response(Message* msg,
OEMCryptoResult* result,
uint8_t** signature,
size_t** signature_length);
void ODK_Unpack_CreateUsageTableHeader_Request(Message* msg,
uint8_t** header_buffer,
size_t** header_buffer_length);
void ODK_Unpack_CreateUsageTableHeader_Response(Message* msg,
OEMCryptoResult* result,
uint8_t** header_buffer,
size_t** header_buffer_length);
void ODK_Unpack_LoadUsageTableHeader_Request(Message* msg, uint8_t** buffer,
size_t* buffer_length);
void ODK_Unpack_LoadUsageTableHeader_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_CreateNewUsageEntry_Request(Message* msg,
OEMCrypto_SESSION* session,
uint32_t** usage_entry_number);
void ODK_Unpack_CreateNewUsageEntry_Response(Message* msg,
OEMCryptoResult* result,
uint32_t** usage_entry_number);
void ODK_Unpack_LoadUsageEntry_Request(Message* msg, OEMCrypto_SESSION* session,
uint32_t* usage_entry_number,
uint8_t** buffer, size_t* buffer_length);
void ODK_Unpack_LoadUsageEntry_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_UpdateUsageEntry_Request(Message* msg,
OEMCrypto_SESSION* session,
SharedMemory** header_buffer,
size_t** header_buffer_length,
SharedMemory** entry_buffer,
size_t** entry_buffer_length);
void ODK_Unpack_UpdateUsageEntry_Response(Message* msg, OEMCryptoResult* result,
SharedMemory** header_buffer,
size_t** header_buffer_length,
SharedMemory** entry_buffer,
size_t** entry_buffer_length);
void ODK_Unpack_DeactivateUsageEntry_Request(Message* msg,
OEMCrypto_SESSION* session,
uint8_t** pst, size_t* pst_length);
void ODK_Unpack_DeactivateUsageEntry_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_ReportUsage_Request(Message* msg, OEMCrypto_SESSION* session,
uint8_t** pst, size_t* pst_length,
uint8_t** buffer, size_t** buffer_length);
void ODK_Unpack_ReportUsage_Response(Message* msg, OEMCryptoResult* result,
uint8_t** buffer, size_t** buffer_length);
void ODK_Unpack_DeleteUsageEntry_Request(
Message* msg, OEMCrypto_SESSION* session, uint8_t** pst, size_t* pst_length,
uint8_t** message, size_t* message_length, uint8_t** signature,
size_t* signature_length);
void ODK_Unpack_DeleteUsageEntry_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_ForceDeleteUsageEntry_Request(Message* msg, uint8_t** pst,
size_t* pst_length);
void ODK_Unpack_ForceDeleteUsageEntry_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_MoveEntry_Request(Message* msg, OEMCrypto_SESSION* session,
uint32_t* new_index);
void ODK_Unpack_MoveEntry_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_ShrinkUsageTableHeader_Request(Message* msg,
uint32_t* new_entry_count,
uint8_t** header_buffer,
size_t** header_buffer_length);
void ODK_Unpack_ShrinkUsageTableHeader_Response(Message* msg,
OEMCryptoResult* result,
uint8_t** header_buffer,
size_t** header_buffer_length);
void ODK_Unpack_CopyOldUsageEntry_Request(Message* msg,
OEMCrypto_SESSION* session,
uint8_t** pst, size_t* pst_length);
void ODK_Unpack_CopyOldUsageEntry_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_DeleteOldUsageTable_Request(Message* msg);
void ODK_Unpack_DeleteOldUsageTable_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_RemoveSRM_Request(Message* msg);
void ODK_Unpack_RemoveSRM_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_CreateOldUsageEntry_Request(
Message* msg, uint64_t* time_since_license_received,
uint64_t* time_since_first_decrypt, uint64_t* time_since_last_decrypt,
OEMCrypto_Usage_Entry_Status* status, uint8_t* server_mac_key,
uint8_t* client_mac_key, uint8_t** pst, size_t* pst_length);
void ODK_Unpack_CreateOldUsageEntry_Response(Message* msg,
OEMCryptoResult* result);
void ODK_Unpack_SupportsDecryptHash_Request(Message* msg);
void ODK_Unpack_SupportsDecryptHash_Response(Message* msg, uint32_t* result);
void ODK_Unpack_SetDecryptHash_Request(Message* msg, OEMCrypto_SESSION* session,
uint32_t* frame_number, uint8_t** hash,
size_t* hash_length);
void ODK_Unpack_SetDecryptHash_Response(Message* msg, OEMCryptoResult* result);
void ODK_Unpack_GetHashErrorCode_Request(Message* msg,
OEMCrypto_SESSION* session,
uint32_t** failed_frame_number);
void ODK_Unpack_GetHashErrorCode_Response(Message* msg, OEMCryptoResult* result,
uint32_t** failed_frame_number);
void ODK_UnpackNullable_c_str(Message* msg, char** value);
void ODK_UnpackAlloc_c_str(Message* msg, char** value);
void ODK_UnpackNullable_uint32_t(Message* msg, OEMCrypto_SESSION** value);
void ODK_UnpackAlloc_uint32_t(Message* msg, OEMCrypto_SESSION** value);
void ODK_UnpackNullable_size_t(Message* msg, size_t** value);
void ODK_UnpackNullable_OEMCrypto_DestBufferDesc(
Message* msg, OEMCrypto_DestBufferDesc** value);
void ODK_UnpackNullable_OEMCrypto_CENCEncryptPatternDesc(
Message* msg, OEMCrypto_CENCEncryptPatternDesc** value);
void ODK_UnpackAlloc_size_t(Message* msg, size_t** value);
void ODK_UnpackNullable_uint16_t(Message* msg, uint16_t** value);
void ODK_UnpackAlloc_uint16_t(Message* msg, uint16_t** value);
void ODK_UnpackNullable_uint8_t(Message* msg, uint8_t** value);
#ifdef __cplusplus
} // extern "C"
#endif
#endif /* ODKITEE_DESERIALIZER_H_ */