From c1401c6a1cc6a4378b6aa3d1c3d3f1f58278616e Mon Sep 17 00:00:00 2001 From: Aaron Vaage Date: Thu, 21 Jan 2021 18:56:23 -0800 Subject: [PATCH] Update Partner Repo This update brings the partner repo up-to-date with commit f107d9b60034429376c5a6f44b94aada188ef6de in the internal repo. --- oemcrypto/odk/include/odk_structs.h | 4 +-- oemcrypto/odk/src/core_message_serialize.cpp | 2 +- oemcrypto/odk/src/odk_structs_priv.h | 30 +++++++++++--------- oemcrypto/odk/src/serialization_base.c | 18 ++++++------ oemcrypto/odk/test/odk_test_helper.cpp | 2 +- oemcrypto/odk/test/odk_test_helper.h | 2 +- 6 files changed, 30 insertions(+), 28 deletions(-) diff --git a/oemcrypto/odk/include/odk_structs.h b/oemcrypto/odk/include/odk_structs.h index c89901a..b373233 100644 --- a/oemcrypto/odk/include/odk_structs.h +++ b/oemcrypto/odk/include/odk_structs.h @@ -17,8 +17,8 @@ /* ODK Version string. Date changed automatically on each release. */ // TODO(b/163416999): Remove the following line when we upgrade to v17. // The version 16.5 should not be used by any CE CDM release. -#define ODK_RELEASE_DATE "ODK v16.5 (ALCATRAZ ONLY) 2021-01-12" -// #define ODK_RELEASE_DATE "ODK v17.0 2021-01-12" +#define ODK_RELEASE_DATE "ODK v16.5 (ALCATRAZ ONLY) 2021-01-22" +// #define ODK_RELEASE_DATE "ODK v17.0 2021-01-22" /* The lowest version number for an ODK message. */ #define ODK_FIRST_VERSION 16 diff --git a/oemcrypto/odk/src/core_message_serialize.cpp b/oemcrypto/odk/src/core_message_serialize.cpp index c966f05..0d15d2b 100644 --- a/oemcrypto/odk/src/core_message_serialize.cpp +++ b/oemcrypto/odk/src/core_message_serialize.cpp @@ -28,7 +28,7 @@ namespace { * P: auto-generated serializing function for |T| */ template -bool CreateResponse(uint32_t message_type, const S& core_request, +bool CreateResponse(ODK_MessageType message_type, const S& core_request, std::string* oemcrypto_core_message, T& response, const P& packer) { if (!oemcrypto_core_message) { diff --git a/oemcrypto/odk/src/odk_structs_priv.h b/oemcrypto/odk/src/odk_structs_priv.h index 7b1f6de..a9a5fdc 100644 --- a/oemcrypto/odk/src/odk_structs_priv.h +++ b/oemcrypto/odk/src/odk_structs_priv.h @@ -14,23 +14,25 @@ extern "C" { #endif -typedef enum { - ODK_License_Request_Type = 1, - ODK_License_Response_Type = 2, - ODK_Renewal_Request_Type = 3, - ODK_Renewal_Response_Type = 4, - ODK_Provisioning_Request_Type = 5, - ODK_Provisioning_Response_Type = 6, +// We use a typedef here so `ODK_CoreMessage` will contain "simple types" which +// should work better with the auto code generator. +typedef uint32_t ODK_MessageType; - // Reserve future message types to support forward compatibility. - ODK_Release_Request_Type = 7, - ODK_Release_Response_Type = 8, - ODK_Common_Request_Type = 9, - ODK_Common_Response_Type = 10, -} ODK_MessageType; +#define ODK_License_Request_Type ((ODK_MessageType)1u) +#define ODK_License_Response_Type ((ODK_MessageType)2u) +#define ODK_Renewal_Request_Type ((ODK_MessageType)3u) +#define ODK_Renewal_Response_Type ((ODK_MessageType)4u) +#define ODK_Provisioning_Request_Type ((ODK_MessageType)5u) +#define ODK_Provisioning_Response_Type ((ODK_MessageType)6u) + +// Reserve future message types to support forward compatibility. +#define ODK_Release_Request_Type ((ODK_MessageType)7u) +#define ODK_Release_Response_Type ((ODK_MessageType)8u) +#define ODK_Common_Request_Type ((ODK_MessageType)9u) +#define ODK_Common_Response_Type ((ODK_MessageType)10u) typedef struct { - uint32_t message_type; + ODK_MessageType message_type; uint32_t message_length; ODK_NonceValues nonce_values; } ODK_CoreMessage; diff --git a/oemcrypto/odk/src/serialization_base.c b/oemcrypto/odk/src/serialization_base.c index 0121e6a..b54ea79 100644 --- a/oemcrypto/odk/src/serialization_base.c +++ b/oemcrypto/odk/src/serialization_base.c @@ -51,25 +51,25 @@ void Pack_bool(ODK_Message* message, const bool* value) { void Pack_uint16_t(ODK_Message* message, const uint16_t* value) { assert(value); uint8_t data[2] = {0}; - data[0] = *value >> 8; - data[1] = *value >> 0; + data[0] = (uint8_t)(*value >> 8); + data[1] = (uint8_t)(*value >> 0); PackBytes(message, data, sizeof(data)); } void Pack_uint32_t(ODK_Message* message, const uint32_t* value) { assert(value); uint8_t data[4] = {0}; - data[0] = *value >> 24; - data[1] = *value >> 16; - data[2] = *value >> 8; - data[3] = *value >> 0; + data[0] = (uint8_t)(*value >> 24); + data[1] = (uint8_t)(*value >> 16); + data[2] = (uint8_t)(*value >> 8); + data[3] = (uint8_t)(*value >> 0); PackBytes(message, data, sizeof(data)); } void Pack_uint64_t(ODK_Message* message, const uint64_t* value) { assert(value); - uint32_t hi = *value >> 32; - uint32_t lo = *value; + uint32_t hi = (uint32_t)(*value >> 32); + uint32_t lo = (uint32_t)(*value); Pack_uint32_t(message, &hi); Pack_uint32_t(message, &lo); } @@ -103,7 +103,7 @@ static void UnpackBytes(ODK_Message* message, uint8_t* ptr, size_t count) { int Unpack_enum(ODK_Message* message) { uint32_t v32; Unpack_uint32_t(message, &v32); - return v32; + return (int)v32; } void Unpack_bool(ODK_Message* message, bool* value) { diff --git a/oemcrypto/odk/test/odk_test_helper.cpp b/oemcrypto/odk/test/odk_test_helper.cpp index 58e9e25..a7002cc 100644 --- a/oemcrypto/odk/test/odk_test_helper.cpp +++ b/oemcrypto/odk/test/odk_test_helper.cpp @@ -21,7 +21,7 @@ namespace wvodk_test { void ODK_SetDefaultCoreFields(ODK_CoreMessage* core_message, - uint32_t message_type) { + ODK_MessageType message_type) { ASSERT_TRUE(core_message != nullptr); core_message->message_type = message_type; core_message->message_length = 0; diff --git a/oemcrypto/odk/test/odk_test_helper.h b/oemcrypto/odk/test/odk_test_helper.h index 1d90dc0..7d739e4 100644 --- a/oemcrypto/odk/test/odk_test_helper.h +++ b/oemcrypto/odk/test/odk_test_helper.h @@ -68,7 +68,7 @@ struct ODK_ProvisioningResponseParams { // Default values in core_message for testing void ODK_SetDefaultCoreFields(ODK_CoreMessage* core_message, - uint32_t message_type); + ODK_MessageType message_type); void ODK_SetDefaultLicenseResponseParams(ODK_LicenseResponseParams* params); void ODK_SetDefaultRenewalResponseParams(ODK_RenewalResponseParams* params); void ODK_SetDefaultProvisioningResponseParams(