/* * 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 */ #include "serializer.h" #include #include "deserializer.h" #include "marshaller_base.h" #include "serialization_base.h" #include "shared_memory_allocator.h" #include "special_cases.h" bool SuccessResult(OEMCryptoResult result) { switch (result) { case OEMCrypto_SUCCESS: case OEMCrypto_WARNING_GENERATION_SKEW: case OEMCrypto_LOCAL_DISPLAY_ONLY: return true; default: return false; } } void ODK_Pack_OEMCrypto_Substring(Message* msg, OEMCrypto_Substring const* obj) { ODK_Pack_size_t(msg, (const size_t*)&obj->offset); ODK_Pack_size_t(msg, (const size_t*)&obj->length); } void ODK_Pack_OEMCrypto_KeyObject(Message* msg, OEMCrypto_KeyObject const* obj) { ODK_Pack_OEMCrypto_Substring(msg, (const OEMCrypto_Substring*)&obj->key_id); ODK_Pack_OEMCrypto_Substring(msg, (const OEMCrypto_Substring*)&obj->key_data_iv); ODK_Pack_OEMCrypto_Substring(msg, (const OEMCrypto_Substring*)&obj->key_data); ODK_Pack_OEMCrypto_Substring( msg, (const OEMCrypto_Substring*)&obj->key_control_iv); ODK_Pack_OEMCrypto_Substring(msg, (const OEMCrypto_Substring*)&obj->key_control); } void ODK_Pack_OEMCrypto_EntitledContentKeyObject( Message* msg, OEMCrypto_EntitledContentKeyObject const* obj) { ODK_Pack_OEMCrypto_Substring( msg, (const OEMCrypto_Substring*)&obj->entitlement_key_id); ODK_Pack_OEMCrypto_Substring( msg, (const OEMCrypto_Substring*)&obj->content_key_id); ODK_Pack_OEMCrypto_Substring( msg, (const OEMCrypto_Substring*)&obj->content_key_data_iv); ODK_Pack_OEMCrypto_Substring( msg, (const OEMCrypto_Substring*)&obj->content_key_data); } void ODK_Pack_OEMCrypto_KeyRefreshObject( Message* msg, OEMCrypto_KeyRefreshObject const* obj) { ODK_Pack_OEMCrypto_Substring(msg, (const OEMCrypto_Substring*)&obj->key_id); ODK_Pack_OEMCrypto_Substring( msg, (const OEMCrypto_Substring*)&obj->key_control_iv); ODK_Pack_OEMCrypto_Substring(msg, (const OEMCrypto_Substring*)&obj->key_control); } void ODK_Pack_OEMCrypto_CENCEncryptPatternDesc( Message* msg, OEMCrypto_CENCEncryptPatternDesc const* obj) { ODK_Pack_size_t(msg, (const size_t*)&obj->encrypt); ODK_Pack_size_t(msg, (const size_t*)&obj->skip); ODK_Pack_size_t(msg, (const size_t*)&obj->offset); } void ODK_Pack_SecurityLevel_Request(Message* msg) { uint32_t api_value = 23; /* from _oecc23 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_SecurityLevel_Response(Message* msg, const char* result) { uint32_t api_value = 23; /* from _oecc23 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_c_str(msg, result); ODK_PackEOM(msg); } void ODK_Pack_BuildInformation_Request(Message* msg) { uint32_t api_value = 90; /* from _oecc90 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_BuildInformation_Response(Message* msg, const char* result) { uint32_t api_value = 90; /* from _oecc90 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_c_str(msg, result); ODK_PackEOM(msg); } void ODK_Pack_SetSandbox_Request(Message* msg, const uint8_t* sandbox_id, size_t sandbox_id_length) { uint32_t api_value = 84; /* from _oecc84 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &sandbox_id_length); ODK_PackMemory(msg, sandbox_id, LengthFromSizeT(sandbox_id_length)); ODK_PackEOM(msg); } void ODK_Pack_SetSandbox_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 84; /* from _oecc84 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_Initialize_Request(Message* msg) { uint32_t api_value = 1; /* from _oecc1 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_Initialize_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 1; /* from _oecc1 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_Terminate_Request(Message* msg) { uint32_t api_value = 2; /* from _oecc2 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_Terminate_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 2; /* from _oecc2 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_OpenSession_Request(Message* msg, const OEMCrypto_SESSION* session) { uint32_t api_value = 9; /* from _oecc9 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackIsNull(msg, session); ODK_PackEOM(msg); } void ODK_Pack_OpenSession_Response(Message* msg, OEMCryptoResult result, const OEMCrypto_SESSION* session) { uint32_t api_value = 9; /* from _oecc9 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_uint32_t(msg, session); ODK_PackEOM(msg); } void ODK_Pack_CloseSession_Request(Message* msg, OEMCrypto_SESSION session) { uint32_t api_value = 10; /* from _oecc10 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &session); ODK_PackEOM(msg); } void ODK_Pack_CloseSession_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 10; /* from _oecc10 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GenerateDerivedKeys_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* mac_key_context, uint32_t mac_key_context_length, const SharedMemory* enc_key_context, uint32_t enc_key_context_length) { uint32_t api_value = 12; /* from _oecc12 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &mac_key_context_length); ODK_Pack_uint32_t(msg, &enc_key_context_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, mac_key_context, LengthFromUint32T(mac_key_context_length)); ODK_PackSharedInputBuffer(msg, 1, enc_key_context, LengthFromUint32T(enc_key_context_length)); ODK_PackEOM(msg); } void ODK_Pack_GenerateDerivedKeys_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 12; /* from _oecc12 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_DeriveKeysFromSessionKey_Request( Message* msg, OEMCrypto_SESSION session, const uint8_t* enc_session_key, size_t enc_session_key_length, const SharedMemory* mac_key_context, size_t mac_key_context_length, const SharedMemory* enc_key_context, size_t enc_key_context_length) { uint32_t api_value = 21; /* from _oecc21 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &enc_session_key_length); ODK_Pack_size_t(msg, &mac_key_context_length); ODK_Pack_size_t(msg, &enc_key_context_length); ODK_Pack_uint32_t(msg, &session); ODK_PackMemory(msg, enc_session_key, LengthFromSizeT(enc_session_key_length)); ODK_PackSharedInputBuffer(msg, 0, mac_key_context, LengthFromSizeT(mac_key_context_length)); ODK_PackSharedInputBuffer(msg, 1, enc_key_context, LengthFromSizeT(enc_key_context_length)); ODK_PackEOM(msg); } void ODK_Pack_DeriveKeysFromSessionKey_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 21; /* from _oecc21 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GenerateNonce_Request(Message* msg, OEMCrypto_SESSION session, const uint32_t* nonce) { uint32_t api_value = 14; /* from _oecc14 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &session); ODK_PackIsNull(msg, nonce); ODK_PackEOM(msg); } void ODK_Pack_GenerateNonce_Response(Message* msg, OEMCryptoResult result, const uint32_t* nonce) { uint32_t api_value = 14; /* from _oecc14 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_uint32_t(msg, nonce); ODK_PackEOM(msg); } void ODK_Pack_GenerateSignature_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* message, size_t message_length, const uint8_t* signature, const size_t* signature_length) { uint32_t api_value = 13; /* from _oecc13 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &message_length); ODK_PackNullable_size_t(msg, signature_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, message, LengthFromSizeT(message_length)); ODK_PackAlloc(msg, signature); ODK_PackEOM(msg); } void ODK_Pack_GenerateSignature_Response(Message* msg, OEMCryptoResult result, const uint8_t* signature, const size_t* signature_length) { uint32_t api_value = 13; /* from _oecc13 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, signature_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, signature, LengthFromSizeTPointer(signature_length)); } ODK_PackEOM(msg); } void ODK_Pack_LoadSRM_Request(Message* msg, const uint8_t* buffer, size_t buffer_length) { uint32_t api_value = 55; /* from _oecc55 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &buffer_length); ODK_PackMemory(msg, buffer, LengthFromSizeT(buffer_length)); ODK_PackEOM(msg); } void ODK_Pack_LoadSRM_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 55; /* from _oecc55 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_LoadKeys_Request( Message* msg, OEMCrypto_SESSION session, const SharedMemory* message, size_t message_length, const SharedMemory* signature, size_t signature_length, OEMCrypto_Substring enc_mac_keys_iv, OEMCrypto_Substring enc_mac_keys, size_t key_array_length, const OEMCrypto_KeyObject* key_array, OEMCrypto_Substring pst, OEMCrypto_Substring srm_restriction_data, OEMCrypto_LicenseType license_type) { uint32_t api_value = 83; /* from _oecc83 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &message_length); ODK_Pack_size_t(msg, &signature_length); ODK_Pack_size_t(msg, &key_array_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, message, LengthFromSizeT(message_length)); ODK_PackSharedInputBuffer(msg, 1, signature, LengthFromSizeT(signature_length)); ODK_Pack_OEMCrypto_Substring(msg, &enc_mac_keys_iv); ODK_Pack_OEMCrypto_Substring(msg, &enc_mac_keys); ODK_PackObjArray(msg, (uint8_t*)key_array, LengthFromSizeT(key_array_length), sizeof(OEMCrypto_KeyObject), (ObjPacker)&ODK_Pack_OEMCrypto_KeyObject); ODK_Pack_OEMCrypto_Substring(msg, &pst); ODK_Pack_OEMCrypto_Substring(msg, &srm_restriction_data); ODK_Pack_uint32_t(msg, &license_type); ODK_PackEOM(msg); } void ODK_Pack_LoadKeys_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 83; /* from _oecc83 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_LoadEntitledContentKeys_Request( Message* msg, OEMCrypto_SESSION session, const SharedMemory* message, size_t message_length, size_t key_array_length, const OEMCrypto_EntitledContentKeyObject* key_array) { uint32_t api_value = 92; /* from _oecc92 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &message_length); ODK_Pack_size_t(msg, &key_array_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, message, LengthFromSizeT(message_length)); ODK_PackObjArray(msg, (uint8_t*)key_array, LengthFromSizeT(key_array_length), sizeof(OEMCrypto_EntitledContentKeyObject), (ObjPacker)&ODK_Pack_OEMCrypto_EntitledContentKeyObject); ODK_PackEOM(msg); } void ODK_Pack_LoadEntitledContentKeys_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 92; /* from _oecc92 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_RefreshKeys_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* message, size_t message_length, const SharedMemory* signature, size_t signature_length, size_t key_array_length, const OEMCrypto_KeyRefreshObject* key_array) { uint32_t api_value = 91; /* from _oecc91 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &message_length); ODK_Pack_size_t(msg, &signature_length); ODK_Pack_size_t(msg, &key_array_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, message, LengthFromSizeT(message_length)); ODK_PackSharedInputBuffer(msg, 1, signature, LengthFromSizeT(signature_length)); ODK_PackObjArray(msg, (uint8_t*)key_array, LengthFromSizeT(key_array_length), sizeof(OEMCrypto_KeyRefreshObject), (ObjPacker)&ODK_Pack_OEMCrypto_KeyRefreshObject); ODK_PackEOM(msg); } void ODK_Pack_RefreshKeys_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 91; /* from _oecc91 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_QueryKeyControl_Request(Message* msg, OEMCrypto_SESSION session, const uint8_t* content_key_id, size_t content_key_id_length, const uint8_t* key_control_block, const size_t* key_control_block_length) { uint32_t api_value = 41; /* from _oecc41 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &content_key_id_length); ODK_PackNullable_size_t(msg, key_control_block_length); ODK_Pack_uint32_t(msg, &session); ODK_PackMemory(msg, content_key_id, LengthFromSizeT(content_key_id_length)); ODK_PackAlloc(msg, key_control_block); ODK_PackEOM(msg); } void ODK_Pack_QueryKeyControl_Response(Message* msg, OEMCryptoResult result, const uint8_t* key_control_block, const size_t* key_control_block_length) { uint32_t api_value = 41; /* from _oecc41 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, key_control_block_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, key_control_block, LengthFromSizeTPointer(key_control_block_length)); } ODK_PackEOM(msg); } void ODK_Pack_SelectKey_Request(Message* msg, OEMCrypto_SESSION session, const uint8_t* content_key_id, size_t content_key_id_length, OEMCryptoCipherMode cipher_mode) { uint32_t api_value = 81; /* from _oecc81 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &content_key_id_length); ODK_Pack_uint32_t(msg, &session); ODK_PackMemory(msg, content_key_id, LengthFromSizeT(content_key_id_length)); ODK_Pack_uint32_t(msg, &cipher_mode); ODK_PackEOM(msg); } void ODK_Pack_SelectKey_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 81; /* from _oecc81 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_DecryptCENC_Request( Message* msg, OEMCrypto_SESSION session, const SharedMemory* data_addr, size_t data_addr_length, bool is_encrypted, const uint8_t* iv, size_t block_offset, const OEMCrypto_DestBufferDesc* out_buffer, const OEMCrypto_CENCEncryptPatternDesc* pattern, uint8_t subsample_flags) { uint32_t api_value = 48; /* from _oecc48 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &data_addr_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, data_addr, LengthFromSizeT(data_addr_length)); ODK_Pack_bool(msg, &is_encrypted); ODK_PackArray(msg, &iv[0], 16); ODK_Pack_size_t(msg, &block_offset); ODK_PackNullable_OEMCrypto_DestBufferDesc(msg, out_buffer); ODK_PackNullable_OEMCrypto_CENCEncryptPatternDesc(msg, pattern); ODK_Pack_uint8_t(msg, &subsample_flags); ODK_PackEOM(msg); } void ODK_Pack_DecryptCENC_Response(Message* msg, OEMCryptoResult result, const OEMCrypto_DestBufferDesc* out_buffer) { uint32_t api_value = 48; /* from _oecc48 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_OEMCrypto_DestBufferDesc(msg, out_buffer); ODK_PackEOM(msg); } void ODK_Pack_CopyBuffer_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* data_addr, size_t data_addr_length, const OEMCrypto_DestBufferDesc* out_buffer, uint8_t subsample_flags) { uint32_t api_value = 93; /* from _oecc93 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &data_addr_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, data_addr, LengthFromSizeT(data_addr_length)); ODK_PackNullable_OEMCrypto_DestBufferDesc(msg, out_buffer); ODK_Pack_uint8_t(msg, &subsample_flags); ODK_PackEOM(msg); } void ODK_Pack_CopyBuffer_Response(Message* msg, OEMCryptoResult result, const OEMCrypto_DestBufferDesc* out_buffer) { uint32_t api_value = 93; /* from _oecc93 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_OEMCrypto_DestBufferDesc(msg, out_buffer); ODK_PackEOM(msg); } void ODK_Pack_Generic_Encrypt_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* in_buffer, size_t in_buffer_length, const uint8_t* iv, OEMCrypto_Algorithm algorithm, const uint8_t* out_buffer) { uint32_t api_value = 24; /* from _oecc24 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &in_buffer_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, in_buffer, LengthFromSizeT(in_buffer_length)); ODK_PackArray(msg, &iv[0], 16); ODK_Pack_uint32_t(msg, &algorithm); ODK_PackAlloc(msg, out_buffer); ODK_PackEOM(msg); } void ODK_Pack_Generic_Encrypt_Response(Message* msg, OEMCryptoResult result, size_t in_buffer_length, const uint8_t* out_buffer) { uint32_t api_value = 24; /* from _oecc24 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &in_buffer_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, out_buffer, LengthFromSizeT(in_buffer_length)); } ODK_PackEOM(msg); } void ODK_Pack_Generic_Decrypt_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* in_buffer, size_t in_buffer_length, const uint8_t* iv, OEMCrypto_Algorithm algorithm, const uint8_t* out_buffer) { uint32_t api_value = 25; /* from _oecc25 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &in_buffer_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, in_buffer, LengthFromSizeT(in_buffer_length)); ODK_PackArray(msg, &iv[0], 16); ODK_Pack_uint32_t(msg, &algorithm); ODK_PackAlloc(msg, out_buffer); ODK_PackEOM(msg); } void ODK_Pack_Generic_Decrypt_Response(Message* msg, OEMCryptoResult result, size_t in_buffer_length, const uint8_t* out_buffer) { uint32_t api_value = 25; /* from _oecc25 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &in_buffer_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, out_buffer, LengthFromSizeT(in_buffer_length)); } ODK_PackEOM(msg); } void ODK_Pack_Generic_Sign_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* buffer, size_t buffer_length, OEMCrypto_Algorithm algorithm, const uint8_t* signature, const size_t* signature_length) { uint32_t api_value = 26; /* from _oecc26 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &buffer_length); ODK_PackNullable_size_t(msg, signature_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, buffer, LengthFromSizeT(buffer_length)); ODK_Pack_uint32_t(msg, &algorithm); ODK_PackAlloc(msg, signature); ODK_PackEOM(msg); } void ODK_Pack_Generic_Sign_Response(Message* msg, OEMCryptoResult result, const uint8_t* signature, const size_t* signature_length) { uint32_t api_value = 26; /* from _oecc26 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, signature_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, signature, LengthFromSizeTPointer(signature_length)); } ODK_PackEOM(msg); } void ODK_Pack_Generic_Verify_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* buffer, size_t buffer_length, OEMCrypto_Algorithm algorithm, const SharedMemory* signature, size_t signature_length) { uint32_t api_value = 27; /* from _oecc27 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &buffer_length); ODK_Pack_size_t(msg, &signature_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, buffer, LengthFromSizeT(buffer_length)); ODK_Pack_uint32_t(msg, &algorithm); ODK_PackSharedInputBuffer(msg, 1, signature, LengthFromSizeT(signature_length)); ODK_PackEOM(msg); } void ODK_Pack_Generic_Verify_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 27; /* from _oecc27 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_UpdateUsageTable_Request(Message* msg) { uint32_t api_value = 30; /* from _oecc30 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_UpdateUsageTable_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 30; /* from _oecc30 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_WrapKeyboxOrOEMCert_Request(Message* msg, const uint8_t* rot, size_t rotLength, const uint8_t* wrappedRot, const size_t* wrappedRotLength, const uint8_t* transportKey, size_t transportKeyLength) { uint32_t api_value = 8; /* from _oecc8 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &rotLength); ODK_PackIsNull(msg, wrappedRotLength); ODK_Pack_size_t(msg, &transportKeyLength); ODK_PackMemory(msg, rot, LengthFromSizeT(rotLength)); ODK_PackAlloc(msg, wrappedRot); ODK_PackMemory(msg, transportKey, LengthFromSizeT(transportKeyLength)); ODK_PackEOM(msg); } void ODK_Pack_WrapKeyboxOrOEMCert_Response(Message* msg, OEMCryptoResult result, const uint8_t* wrappedRot, const size_t* wrappedRotLength) { uint32_t api_value = 8; /* from _oecc8 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, wrappedRotLength); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, wrappedRot, LengthFromSizeTPointer(wrappedRotLength)); } ODK_PackEOM(msg); } void ODK_Pack_InstallKeyboxOrOEMCert_Request(Message* msg, const uint8_t* rot, size_t rotLength) { uint32_t api_value = 3; /* from _oecc3 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &rotLength); ODK_PackMemory(msg, rot, LengthFromSizeT(rotLength)); ODK_PackEOM(msg); } void ODK_Pack_InstallKeyboxOrOEMCert_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 3; /* from _oecc3 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GetProvisioningMethod_Request(Message* msg) { uint32_t api_value = 49; /* from _oecc49 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_GetProvisioningMethod_Response( Message* msg, OEMCrypto_ProvisioningMethod result) { uint32_t api_value = 49; /* from _oecc49 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_IsKeyboxOrOEMCertValid_Request(Message* msg) { uint32_t api_value = 5; /* from _oecc5 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_IsKeyboxOrOEMCertValid_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 5; /* from _oecc5 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GetDeviceID_Request(Message* msg, const uint8_t* device_id, const size_t* device_id_length) { uint32_t api_value = 7; /* from _oecc7 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, device_id_length); ODK_PackAlloc(msg, device_id); ODK_PackEOM(msg); } void ODK_Pack_GetDeviceID_Response(Message* msg, OEMCryptoResult result, const uint8_t* device_id, const size_t* device_id_length) { uint32_t api_value = 7; /* from _oecc7 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, device_id_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, device_id, LengthFromSizeTPointer(device_id_length)); } ODK_PackEOM(msg); } void ODK_Pack_GetKeyData_Request(Message* msg, const uint8_t* keyData, const size_t* keyDataLength) { uint32_t api_value = 4; /* from _oecc4 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, keyDataLength); ODK_PackAlloc(msg, keyData); ODK_PackEOM(msg); } void ODK_Pack_GetKeyData_Response(Message* msg, OEMCryptoResult result, const uint8_t* keyData, const size_t* keyDataLength) { uint32_t api_value = 4; /* from _oecc4 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, keyDataLength); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, keyData, LengthFromSizeTPointer(keyDataLength)); } ODK_PackEOM(msg); } void ODK_Pack_LoadTestKeybox_Request(Message* msg, const uint8_t* buffer, size_t buffer_length) { uint32_t api_value = 78; /* from _oecc78 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &buffer_length); ODK_PackMemory(msg, buffer, LengthFromSizeT(buffer_length)); ODK_PackEOM(msg); } void ODK_Pack_LoadTestKeybox_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 78; /* from _oecc78 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GetOEMPublicCertificate_Request( Message* msg, OEMCrypto_SESSION session, const uint8_t* public_cert, const size_t* public_cert_length) { uint32_t api_value = 50; /* from _oecc50 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, public_cert_length); ODK_Pack_uint32_t(msg, &session); ODK_PackAlloc(msg, public_cert); ODK_PackEOM(msg); } void ODK_Pack_GetOEMPublicCertificate_Response( Message* msg, OEMCryptoResult result, const uint8_t* public_cert, const size_t* public_cert_length) { uint32_t api_value = 50; /* from _oecc50 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, public_cert_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, public_cert, LengthFromSizeTPointer(public_cert_length)); } ODK_PackEOM(msg); } void ODK_Pack_GetRandom_Request(Message* msg, const uint8_t* random_data, size_t random_data_length) { uint32_t api_value = 6; /* from _oecc6 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &random_data_length); ODK_PackAlloc(msg, random_data); ODK_PackEOM(msg); } void ODK_Pack_GetRandom_Response(Message* msg, OEMCryptoResult result, const uint8_t* random_data, size_t random_data_length) { uint32_t api_value = 6; /* from _oecc6 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &random_data_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, random_data, LengthFromSizeT(random_data_length)); } ODK_PackEOM(msg); } void ODK_Pack_APIVersion_Request(Message* msg) { uint32_t api_value = 22; /* from _oecc22 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_APIVersion_Response(Message* msg, uint32_t result) { uint32_t api_value = 22; /* from _oecc22 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_Security_Patch_Level_Request(Message* msg) { uint32_t api_value = 46; /* from _oecc46 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_Security_Patch_Level_Response(Message* msg, uint8_t result) { uint32_t api_value = 46; /* from _oecc46 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint8_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GetHDCPCapability_Request( Message* msg, const OEMCrypto_HDCP_Capability* current, const OEMCrypto_HDCP_Capability* maximum) { uint32_t api_value = 44; /* from _oecc44 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackIsNull(msg, current); ODK_PackIsNull(msg, maximum); ODK_PackEOM(msg); } void ODK_Pack_GetHDCPCapability_Response( Message* msg, OEMCryptoResult result, const OEMCrypto_HDCP_Capability* current, const OEMCrypto_HDCP_Capability* maximum) { uint32_t api_value = 44; /* from _oecc44 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_uint32_t(msg, current); ODK_PackNullable_uint32_t(msg, maximum); ODK_PackEOM(msg); } void ODK_Pack_SupportsUsageTable_Request(Message* msg) { uint32_t api_value = 29; /* from _oecc29 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_SupportsUsageTable_Response(Message* msg, bool result) { uint32_t api_value = 29; /* from _oecc29 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_bool(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_IsAntiRollbackHwPresent_Request(Message* msg) { uint32_t api_value = 39; /* from _oecc39 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_IsAntiRollbackHwPresent_Response(Message* msg, bool result) { uint32_t api_value = 39; /* from _oecc39 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_bool(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GetNumberOfOpenSessions_Request(Message* msg, const size_t* count) { uint32_t api_value = 38; /* from _oecc38 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackIsNull(msg, count); ODK_PackEOM(msg); } void ODK_Pack_GetNumberOfOpenSessions_Response(Message* msg, OEMCryptoResult result, const size_t* count) { uint32_t api_value = 38; /* from _oecc38 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_size_t(msg, count); ODK_PackEOM(msg); } void ODK_Pack_GetMaxNumberOfSessions_Request(Message* msg, const size_t* max) { uint32_t api_value = 37; /* from _oecc37 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackIsNull(msg, max); ODK_PackEOM(msg); } void ODK_Pack_GetMaxNumberOfSessions_Response(Message* msg, OEMCryptoResult result, const size_t* max) { uint32_t api_value = 37; /* from _oecc37 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_size_t(msg, max); ODK_PackEOM(msg); } void ODK_Pack_SupportedCertificates_Request(Message* msg) { uint32_t api_value = 52; /* from _oecc52 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_SupportedCertificates_Response(Message* msg, uint32_t result) { uint32_t api_value = 52; /* from _oecc52 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_IsSRMUpdateSupported_Request(Message* msg) { uint32_t api_value = 53; /* from _oecc53 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_IsSRMUpdateSupported_Response(Message* msg, bool result) { uint32_t api_value = 53; /* from _oecc53 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_bool(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GetCurrentSRMVersion_Request(Message* msg, const uint16_t* version) { uint32_t api_value = 54; /* from _oecc54 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackIsNull(msg, version); ODK_PackEOM(msg); } void ODK_Pack_GetCurrentSRMVersion_Response(Message* msg, OEMCryptoResult result, const uint16_t* version) { uint32_t api_value = 54; /* from _oecc54 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_uint16_t(msg, version); ODK_PackEOM(msg); } void ODK_Pack_GetAnalogOutputFlags_Request(Message* msg) { uint32_t api_value = 71; /* from _oecc71 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_GetAnalogOutputFlags_Response(Message* msg, uint32_t result) { uint32_t api_value = 71; /* from _oecc71 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_ResourceRatingTier_Request(Message* msg) { uint32_t api_value = 85; /* from _oecc85 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_ResourceRatingTier_Response(Message* msg, uint32_t result) { uint32_t api_value = 85; /* from _oecc85 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_RewrapDeviceRSAKey30_Request( Message* msg, OEMCrypto_SESSION session, const uint32_t* unaligned_nonce, const SharedMemory* encrypted_message_key, size_t encrypted_message_key_length, const SharedMemory* enc_rsa_key, size_t enc_rsa_key_length, const uint8_t* enc_rsa_key_iv, const uint8_t* wrapped_rsa_key, const size_t* wrapped_rsa_key_length) { uint32_t api_value = 51; /* from _oecc51 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &encrypted_message_key_length); ODK_Pack_size_t(msg, &enc_rsa_key_length); ODK_PackNullable_size_t(msg, wrapped_rsa_key_length); ODK_Pack_uint32_t(msg, &session); ODK_PackNullable_uint32_t(msg, unaligned_nonce); ODK_PackSharedInputBuffer(msg, 0, encrypted_message_key, LengthFromSizeT(encrypted_message_key_length)); ODK_PackSharedInputBuffer(msg, 1, enc_rsa_key, LengthFromSizeT(enc_rsa_key_length)); ODK_PackNullable_uint8_t(msg, enc_rsa_key_iv); ODK_PackAlloc(msg, wrapped_rsa_key); ODK_PackEOM(msg); } void ODK_Pack_RewrapDeviceRSAKey30_Response( Message* msg, OEMCryptoResult result, const uint8_t* wrapped_rsa_key, const size_t* wrapped_rsa_key_length) { uint32_t api_value = 51; /* from _oecc51 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, wrapped_rsa_key_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, wrapped_rsa_key, LengthFromSizeTPointer(wrapped_rsa_key_length)); } ODK_PackEOM(msg); } void ODK_Pack_RewrapDeviceRSAKey_Response( Message* msg, OEMCryptoResult result, const uint8_t* wrapped_rsa_key, const size_t* wrapped_rsa_key_length) { uint32_t api_value = 18; /* from _oecc18 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, wrapped_rsa_key_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, wrapped_rsa_key, LengthFromSizeTPointer(wrapped_rsa_key_length)); } ODK_PackEOM(msg); } void ODK_Pack_LoadDeviceRSAKey_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* wrapped_rsa_key, size_t wrapped_rsa_key_length) { uint32_t api_value = 19; /* from _oecc19 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &wrapped_rsa_key_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, wrapped_rsa_key, LengthFromSizeT(wrapped_rsa_key_length)); ODK_PackEOM(msg); } void ODK_Pack_LoadDeviceRSAKey_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 19; /* from _oecc19 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_LoadTestRSAKey_Request(Message* msg) { uint32_t api_value = 45; /* from _oecc45 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_LoadTestRSAKey_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 45; /* from _oecc45 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GenerateRSASignature_Request( Message* msg, OEMCrypto_SESSION session, const SharedMemory* message, size_t message_length, const uint8_t* signature, const size_t* signature_length, RSA_Padding_Scheme padding_scheme) { uint32_t api_value = 36; /* from _oecc36 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &message_length); ODK_PackNullable_size_t(msg, signature_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedInputBuffer(msg, 0, message, LengthFromSizeT(message_length)); ODK_PackAlloc(msg, signature); ODK_Pack_uint8_t(msg, &padding_scheme); ODK_PackEOM(msg); } void ODK_Pack_GenerateRSASignature_Response(Message* msg, OEMCryptoResult result, const uint8_t* signature, const size_t* signature_length) { uint32_t api_value = 36; /* from _oecc36 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, signature_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, signature, LengthFromSizeTPointer(signature_length)); } ODK_PackEOM(msg); } void ODK_Pack_CreateUsageTableHeader_Request( Message* msg, const uint8_t* header_buffer, const size_t* header_buffer_length) { uint32_t api_value = 61; /* from _oecc61 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, header_buffer_length); ODK_PackAlloc(msg, header_buffer); ODK_PackEOM(msg); } void ODK_Pack_CreateUsageTableHeader_Response( Message* msg, OEMCryptoResult result, const uint8_t* header_buffer, const size_t* header_buffer_length) { uint32_t api_value = 61; /* from _oecc61 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, header_buffer_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, header_buffer, LengthFromSizeTPointer(header_buffer_length)); } ODK_PackEOM(msg); } void ODK_Pack_LoadUsageTableHeader_Request(Message* msg, const uint8_t* buffer, size_t buffer_length) { uint32_t api_value = 62; /* from _oecc62 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &buffer_length); ODK_PackMemory(msg, buffer, LengthFromSizeT(buffer_length)); ODK_PackEOM(msg); } void ODK_Pack_LoadUsageTableHeader_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 62; /* from _oecc62 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_CreateNewUsageEntry_Request(Message* msg, OEMCrypto_SESSION session, const uint32_t* usage_entry_number) { uint32_t api_value = 63; /* from _oecc63 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &session); ODK_PackIsNull(msg, usage_entry_number); ODK_PackEOM(msg); } void ODK_Pack_CreateNewUsageEntry_Response(Message* msg, OEMCryptoResult result, const uint32_t* usage_entry_number) { uint32_t api_value = 63; /* from _oecc63 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_uint32_t(msg, usage_entry_number); ODK_PackEOM(msg); } void ODK_Pack_LoadUsageEntry_Request(Message* msg, OEMCrypto_SESSION session, uint32_t usage_entry_number, const uint8_t* buffer, size_t buffer_length) { uint32_t api_value = 64; /* from _oecc64 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &buffer_length); ODK_Pack_uint32_t(msg, &session); ODK_Pack_uint32_t(msg, &usage_entry_number); ODK_PackMemory(msg, buffer, LengthFromSizeT(buffer_length)); ODK_PackEOM(msg); } void ODK_Pack_LoadUsageEntry_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 64; /* from _oecc64 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_UpdateUsageEntry_Request(Message* msg, OEMCrypto_SESSION session, const SharedMemory* header_buffer, const size_t* header_buffer_length, const SharedMemory* entry_buffer, const size_t* entry_buffer_length) { uint32_t api_value = 65; /* from _oecc65 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, header_buffer_length); ODK_PackNullable_size_t(msg, entry_buffer_length); ODK_Pack_uint32_t(msg, &session); ODK_PackSharedOutputBuffer(msg, header_buffer, LengthFromSizeTPointer(header_buffer_length)); ODK_PackSharedOutputBuffer(msg, entry_buffer, LengthFromSizeTPointer(entry_buffer_length)); ODK_PackEOM(msg); } void ODK_Pack_UpdateUsageEntry_Response(Message* msg, OEMCryptoResult result, const SharedMemory* header_buffer, const size_t* header_buffer_length, const SharedMemory* entry_buffer, const size_t* entry_buffer_length) { uint32_t api_value = 65; /* from _oecc65 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, header_buffer_length); ODK_PackNullable_size_t(msg, entry_buffer_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackSharedOutputBuffer(msg, header_buffer, LengthFromSizeTPointer(header_buffer_length)); } if (SuccessResult(result)) { ODK_PackSharedOutputBuffer(msg, entry_buffer, LengthFromSizeTPointer(entry_buffer_length)); } ODK_PackEOM(msg); } void ODK_Pack_DeactivateUsageEntry_Request(Message* msg, OEMCrypto_SESSION session, const uint8_t* pst, size_t pst_length) { uint32_t api_value = 66; /* from _oecc66 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &pst_length); ODK_Pack_uint32_t(msg, &session); ODK_PackMemory(msg, pst, LengthFromSizeT(pst_length)); ODK_PackEOM(msg); } void ODK_Pack_DeactivateUsageEntry_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 66; /* from _oecc66 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_ReportUsage_Request(Message* msg, OEMCrypto_SESSION session, const uint8_t* pst, size_t pst_length, const uint8_t* buffer, const size_t* buffer_length) { uint32_t api_value = 32; /* from _oecc32 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &pst_length); ODK_PackNullable_size_t(msg, buffer_length); ODK_Pack_uint32_t(msg, &session); ODK_PackMemory(msg, pst, LengthFromSizeT(pst_length)); ODK_PackAlloc(msg, buffer); ODK_PackEOM(msg); } void ODK_Pack_ReportUsage_Response(Message* msg, OEMCryptoResult result, const uint8_t* buffer, const size_t* buffer_length) { uint32_t api_value = 32; /* from _oecc32 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, buffer_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, buffer, LengthFromSizeTPointer(buffer_length)); } ODK_PackEOM(msg); } void ODK_Pack_DeleteUsageEntry_Request(Message* msg, OEMCrypto_SESSION session, const uint8_t* pst, size_t pst_length, const uint8_t* message, size_t message_length, const uint8_t* signature, size_t signature_length) { uint32_t api_value = 33; /* from _oecc33 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &pst_length); ODK_Pack_size_t(msg, &message_length); ODK_Pack_size_t(msg, &signature_length); ODK_Pack_uint32_t(msg, &session); ODK_PackMemory(msg, pst, LengthFromSizeT(pst_length)); ODK_PackMemory(msg, message, LengthFromSizeT(message_length)); ODK_PackMemory(msg, signature, LengthFromSizeT(signature_length)); ODK_PackEOM(msg); } void ODK_Pack_DeleteUsageEntry_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 33; /* from _oecc33 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_ForceDeleteUsageEntry_Request(Message* msg, const uint8_t* pst, size_t pst_length) { uint32_t api_value = 43; /* from _oecc43 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &pst_length); ODK_PackMemory(msg, pst, LengthFromSizeT(pst_length)); ODK_PackEOM(msg); } void ODK_Pack_ForceDeleteUsageEntry_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 43; /* from _oecc43 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_MoveEntry_Request(Message* msg, OEMCrypto_SESSION session, uint32_t new_index) { uint32_t api_value = 68; /* from _oecc68 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &session); ODK_Pack_uint32_t(msg, &new_index); ODK_PackEOM(msg); } void ODK_Pack_MoveEntry_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 68; /* from _oecc68 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_ShrinkUsageTableHeader_Request( Message* msg, uint32_t new_entry_count, const uint8_t* header_buffer, const size_t* header_buffer_length) { uint32_t api_value = 67; /* from _oecc67 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, header_buffer_length); ODK_Pack_uint32_t(msg, &new_entry_count); ODK_PackAlloc(msg, header_buffer); ODK_PackEOM(msg); } void ODK_Pack_ShrinkUsageTableHeader_Response( Message* msg, OEMCryptoResult result, const uint8_t* header_buffer, const size_t* header_buffer_length) { uint32_t api_value = 67; /* from _oecc67 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackNullable_size_t(msg, header_buffer_length); ODK_Pack_uint32_t(msg, &result); if (SuccessResult(result)) { ODK_PackMemory(msg, header_buffer, LengthFromSizeTPointer(header_buffer_length)); } ODK_PackEOM(msg); } void ODK_Pack_CopyOldUsageEntry_Request(Message* msg, OEMCrypto_SESSION session, const uint8_t* pst, size_t pst_length) { uint32_t api_value = 69; /* from _oecc69 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &pst_length); ODK_Pack_uint32_t(msg, &session); ODK_PackMemory(msg, pst, LengthFromSizeT(pst_length)); ODK_PackEOM(msg); } void ODK_Pack_CopyOldUsageEntry_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 69; /* from _oecc69 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_DeleteOldUsageTable_Request(Message* msg) { uint32_t api_value = 34; /* from _oecc34 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_DeleteOldUsageTable_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 34; /* from _oecc34 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_RemoveSRM_Request(Message* msg) { uint32_t api_value = 57; /* from _oecc57 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_RemoveSRM_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 57; /* from _oecc57 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_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, const uint8_t* server_mac_key, const uint8_t* client_mac_key, const uint8_t* pst, size_t pst_length) { uint32_t api_value = 70; /* from _oecc70 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &pst_length); ODK_Pack_uint64_t(msg, &time_since_license_received); ODK_Pack_uint64_t(msg, &time_since_first_decrypt); ODK_Pack_uint64_t(msg, &time_since_last_decrypt); ODK_Pack_uint32_t(msg, &status); ODK_PackArray(msg, &server_mac_key[0], 32); ODK_PackArray(msg, &client_mac_key[0], 32); ODK_PackMemory(msg, pst, LengthFromSizeT(pst_length)); ODK_PackEOM(msg); } void ODK_Pack_CreateOldUsageEntry_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 70; /* from _oecc70 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_SupportsDecryptHash_Request(Message* msg) { uint32_t api_value = 86; /* from _oecc86 */ ODK_Pack_uint32_t(msg, &api_value); ODK_PackEOM(msg); } void ODK_Pack_SupportsDecryptHash_Response(Message* msg, uint32_t result) { uint32_t api_value = 86; /* from _oecc86 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_SetDecryptHash_Request(Message* msg, OEMCrypto_SESSION session, uint32_t frame_number, const uint8_t* hash, size_t hash_length) { uint32_t api_value = 88; /* from _oecc88 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_size_t(msg, &hash_length); ODK_Pack_uint32_t(msg, &session); ODK_Pack_uint32_t(msg, &frame_number); ODK_PackMemory(msg, hash, LengthFromSizeT(hash_length)); ODK_PackEOM(msg); } void ODK_Pack_SetDecryptHash_Response(Message* msg, OEMCryptoResult result) { uint32_t api_value = 88; /* from _oecc88 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackEOM(msg); } void ODK_Pack_GetHashErrorCode_Request(Message* msg, OEMCrypto_SESSION session, const uint32_t* failed_frame_number) { uint32_t api_value = 89; /* from _oecc89 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &session); ODK_PackIsNull(msg, failed_frame_number); ODK_PackEOM(msg); } void ODK_Pack_GetHashErrorCode_Response(Message* msg, OEMCryptoResult result, const uint32_t* failed_frame_number) { uint32_t api_value = 89; /* from _oecc89 */ ODK_Pack_uint32_t(msg, &api_value); ODK_Pack_uint32_t(msg, &result); ODK_PackNullable_uint32_t(msg, failed_frame_number); ODK_PackEOM(msg); } void ODK_PackNullable_c_str(Message* msg, const char* value) { ODK_PackBoolValue(msg, value == NULL); if (value) { ODK_Pack_c_str(msg, value); } } void ODK_PackNullable_uint32_t(Message* msg, const OEMCrypto_SESSION* value) { ODK_PackBoolValue(msg, value == NULL); if (value) { ODK_Pack_uint32_t(msg, value); } } void ODK_PackNullable_size_t(Message* msg, const size_t* value) { ODK_PackBoolValue(msg, value == NULL); if (value) { ODK_Pack_size_t(msg, value); } } void ODK_PackNullable_OEMCrypto_DestBufferDesc( Message* msg, const OEMCrypto_DestBufferDesc* value) { ODK_PackBoolValue(msg, value == NULL); if (value) { ODK_Pack_OEMCrypto_DestBufferDesc(msg, value); } } void ODK_PackNullable_OEMCrypto_CENCEncryptPatternDesc( Message* msg, const OEMCrypto_CENCEncryptPatternDesc* value) { ODK_PackBoolValue(msg, value == NULL); if (value) { ODK_Pack_OEMCrypto_CENCEncryptPatternDesc(msg, value); } } void ODK_PackNullable_uint16_t(Message* msg, const uint16_t* value) { ODK_PackBoolValue(msg, value == NULL); if (value) { ODK_Pack_uint16_t(msg, value); } } void ODK_PackNullable_uint8_t(Message* msg, const uint8_t* value) { ODK_PackBoolValue(msg, value == NULL); if (value) { ODK_Pack_uint8_t(msg, value); } }