ODK unit tests for release request
PiperOrigin-RevId: 584427947 Change-Id: I7a131739c5ea0d27c2f9e9c5ecb7b138176ce049
This commit is contained in:
@@ -32,12 +32,14 @@ using oemcrypto_core_message::ODK_LicenseRequest;
|
||||
using oemcrypto_core_message::ODK_MessageCounter;
|
||||
using oemcrypto_core_message::ODK_Provisioning40Request;
|
||||
using oemcrypto_core_message::ODK_ProvisioningRequest;
|
||||
using oemcrypto_core_message::ODK_ReleaseRequest;
|
||||
using oemcrypto_core_message::ODK_RenewalRequest;
|
||||
|
||||
using oemcrypto_core_message::deserialize::CoreCommonRequestFromMessage;
|
||||
using oemcrypto_core_message::deserialize::CoreLicenseRequestFromMessage;
|
||||
using oemcrypto_core_message::deserialize::CoreProvisioning40RequestFromMessage;
|
||||
using oemcrypto_core_message::deserialize::CoreProvisioningRequestFromMessage;
|
||||
using oemcrypto_core_message::deserialize::CoreReleaseRequestFromMessage;
|
||||
using oemcrypto_core_message::deserialize::CoreRenewalRequestFromMessage;
|
||||
using oemcrypto_core_message::deserialize::
|
||||
CoreRenewedProvisioningRequestFromMessage;
|
||||
@@ -49,6 +51,7 @@ using oemcrypto_core_message::serialize::CreateCoreProvisioning40Response;
|
||||
using oemcrypto_core_message::serialize::CreateCoreProvisioningResponse;
|
||||
using oemcrypto_core_message::serialize::
|
||||
CreateCoreProvisioningResponseFromProto;
|
||||
using oemcrypto_core_message::serialize::CreateCoreReleaseResponse;
|
||||
using oemcrypto_core_message::serialize::CreateCoreRenewalResponse;
|
||||
|
||||
constexpr uint32_t kExtraPayloadSize = 128u;
|
||||
@@ -686,6 +689,35 @@ TEST(OdkTest, RenewalRequestRoundtrip) {
|
||||
odk_prepare_func, kdo_parse_func);
|
||||
}
|
||||
|
||||
TEST(OdkTest, ReleaseRequestRoundTrip) {
|
||||
const uint32_t clock_security_level = 1;
|
||||
const uint32_t status = 1;
|
||||
constexpr uint64_t system_time_seconds = 0xBADDCAFE000FF1CE;
|
||||
uint64_t playback_time = 0xCAFE00000000;
|
||||
const int64_t seconds_since_license_requested = 1;
|
||||
const int64_t seconds_since_first_decrypt =
|
||||
static_cast<int64_t>(system_time_seconds - playback_time);
|
||||
ODK_ClockValues clock_values;
|
||||
memset(&clock_values, 0, sizeof(clock_values));
|
||||
clock_values.time_of_first_decrypt = seconds_since_first_decrypt;
|
||||
std::vector<ODK_Field> extra_fields = {};
|
||||
auto odk_prepare_func = [&](uint8_t* const buf, size_t* size,
|
||||
ODK_NonceValues* nonce_values) {
|
||||
return ODK_PrepareCoreReleaseRequest(
|
||||
buf, SIZE_MAX, size, nonce_values, status, clock_security_level,
|
||||
seconds_since_license_requested, seconds_since_first_decrypt,
|
||||
&clock_values, system_time_seconds);
|
||||
};
|
||||
auto kdo_parse_func = [&](const std::string& oemcrypto_core_message,
|
||||
ODK_ReleaseRequest* core_release_request) {
|
||||
bool ok = CoreReleaseRequestFromMessage(oemcrypto_core_message,
|
||||
core_release_request);
|
||||
return ok;
|
||||
};
|
||||
ValidateRequest<ODK_ReleaseRequest>(ODK_Release_Request_Type, extra_fields,
|
||||
odk_prepare_func, kdo_parse_func);
|
||||
}
|
||||
|
||||
TEST(OdkTest, ProvisionRequestRoundtrip) {
|
||||
ODK_MessageCounterInfo counter_info;
|
||||
counter_info.master_generation_number = 0x12345678abcdffff;
|
||||
@@ -1131,6 +1163,32 @@ TEST_P(OdkVersionTest, RenewalResponseRoundtrip) {
|
||||
kdo_prepare_func);
|
||||
}
|
||||
|
||||
TEST_P(OdkVersionTest, ReleaseResponseRoundtrip) {
|
||||
ODK_ReleaseResponseParams params;
|
||||
ODK_SetDefaultReleaseResponseParams(¶ms);
|
||||
SetRequestVersion(¶ms);
|
||||
const int64_t seconds_since_license_requested =
|
||||
params.seconds_since_license_requested;
|
||||
const int64_t seconds_since_first_decrypt =
|
||||
params.seconds_since_first_decrypt;
|
||||
auto odk_parse_func = [&](const uint8_t* buf, size_t size) {
|
||||
OEMCryptoResult err =
|
||||
ODK_ParseRelease(buf, size, size, &(params.core_message.nonce_values),
|
||||
params.seconds_since_license_requested,
|
||||
params.seconds_since_first_decrypt);
|
||||
return err;
|
||||
};
|
||||
auto kdo_prepare_func = [&](ODK_ReleaseRequest& core_request,
|
||||
std::string* oemcrypto_core_message) {
|
||||
return CreateCoreReleaseResponse(
|
||||
features_, core_request, seconds_since_license_requested,
|
||||
seconds_since_first_decrypt, oemcrypto_core_message);
|
||||
};
|
||||
ValidateResponse<ODK_ReleaseRequest>(GetParam(), &(params.core_message),
|
||||
params.extra_fields, odk_parse_func,
|
||||
kdo_prepare_func);
|
||||
}
|
||||
|
||||
TEST_P(OdkVersionTest, ProvisionResponseRoundtrip) {
|
||||
ODK_ProvisioningResponseParams params;
|
||||
ODK_SetDefaultProvisioningResponseParams(¶ms,
|
||||
|
||||
Reference in New Issue
Block a user