/* * 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_ */