// Copyright 2019 Google LLC. All rights reserved. This file and proprietary // source code may only be used and distributed under the Widevine // License Agreement. #ifndef WIDEVINE_ODK_SRC_SERIALIZATION_BASE_H_ #define WIDEVINE_ODK_SRC_SERIALIZATION_BASE_H_ #ifdef __cplusplus extern "C" { #endif #include #include #include "OEMCryptoCENCCommon.h" #include "odk_message.h" void Pack_enum(ODK_Message* message, int value); void Pack_bool(ODK_Message* message, const bool* value); void Pack_uint16_t(ODK_Message* message, const uint16_t* value); void Pack_uint32_t(ODK_Message* message, const uint32_t* value); void Pack_uint64_t(ODK_Message* message, const uint64_t* value); void PackArray(ODK_Message* message, const uint8_t* base, size_t size); void Pack_OEMCrypto_Substring(ODK_Message* msg, const OEMCrypto_Substring* obj); int Unpack_enum(ODK_Message* message); void Unpack_bool(ODK_Message* message, bool* value); void Unpack_uint16_t(ODK_Message* message, uint16_t* value); void Unpack_uint32_t(ODK_Message* message, uint32_t* value); void Unpack_uint64_t(ODK_Message* message, uint64_t* value); void UnpackArray(ODK_Message* message, uint8_t* address, size_t size); /* copy out */ void Unpack_OEMCrypto_Substring(ODK_Message* msg, OEMCrypto_Substring* obj); #ifdef __cplusplus } // extern "C" #endif #endif // WIDEVINE_ODK_SRC_SERIALIZATION_BASE_H_