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

1496 lines
55 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
*/
#include "serializer.h"
#include <string.h>
#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);
}
}