Cherry pick 18.4 changes to udc-widevine-dev
Get the udc-widevine-dev Android branch and oemcrypto-v18 cdm branch in sync. The commit ID for 18.4 on oemcrypto-v18 is a2f23a2281e5e06dc2867585bdc516fa132b6396. Merged from go/wvgerrit/190151 Bug: 290252845 Test: WVTS tests are running and passing Change-Id: I457332e7ca70a5b5169345e1279b3eb9f18413b6
This commit is contained in:
@@ -122,6 +122,7 @@ typedef enum OEMCrypto_Usage_Entry_Status {
|
||||
kInactiveUnused = 4,
|
||||
} OEMCrypto_Usage_Entry_Status;
|
||||
|
||||
/* Not used publicly. Not documented with Doxygen. */
|
||||
typedef enum OEMCrypto_ProvisioningRenewalType {
|
||||
OEMCrypto_NoRenewal = 0,
|
||||
OEMCrypto_RenewalACert = 1,
|
||||
@@ -137,7 +138,9 @@ typedef enum OEMCrypto_LicenseType {
|
||||
OEMCrypto_LicenseType_MaxValue = OEMCrypto_EntitlementLicense,
|
||||
} OEMCrypto_LicenseType;
|
||||
|
||||
/* Private key type used in the provisioning response. */
|
||||
/**
|
||||
* Private key type used in the provisioning response.
|
||||
*/
|
||||
typedef enum OEMCrypto_PrivateKeyType {
|
||||
OEMCrypto_RSA_Private_Key = 0,
|
||||
OEMCrypto_ECC_Private_Key = 1,
|
||||
|
||||
@@ -26,9 +26,9 @@ struct CoreMessageFeatures {
|
||||
|
||||
// This is the published version of the ODK Core Message library. The default
|
||||
// behavior is for the server to restrict messages to at most this version
|
||||
// number. The default is 18.3.
|
||||
// number. The default is 18.4.
|
||||
uint32_t maximum_major_version = 18;
|
||||
uint32_t maximum_minor_version = 3;
|
||||
uint32_t maximum_minor_version = 4;
|
||||
|
||||
bool operator==(const CoreMessageFeatures &other) const;
|
||||
bool operator!=(const CoreMessageFeatures &other) const {
|
||||
|
||||
@@ -16,10 +16,10 @@ extern "C" {
|
||||
|
||||
/* The version of this library. */
|
||||
#define ODK_MAJOR_VERSION 18
|
||||
#define ODK_MINOR_VERSION 3
|
||||
#define ODK_MINOR_VERSION 4
|
||||
|
||||
/* ODK Version string. Date changed automatically on each release. */
|
||||
#define ODK_RELEASE_DATE "ODK v18.3 2023-07-07"
|
||||
#define ODK_RELEASE_DATE "ODK v18.4 2023-08-03"
|
||||
|
||||
/* The lowest version number for an ODK message. */
|
||||
#define ODK_FIRST_VERSION 16
|
||||
|
||||
@@ -19,7 +19,9 @@ CoreMessageFeatures CoreMessageFeatures::DefaultFeatures(
|
||||
uint32_t maximum_major_version) {
|
||||
CoreMessageFeatures features;
|
||||
features.maximum_major_version = maximum_major_version;
|
||||
// The default minor version is the highest for each major version.
|
||||
// The default minor version is the highest for each major version. This also
|
||||
// needs to be updated with new version releases in
|
||||
// ODK_InitializeSessionValues() when the minor version is being set.
|
||||
switch (maximum_major_version) {
|
||||
case 16:
|
||||
features.maximum_minor_version = 5; // 16.5
|
||||
@@ -28,7 +30,7 @@ CoreMessageFeatures CoreMessageFeatures::DefaultFeatures(
|
||||
features.maximum_minor_version = 2; // 17.2
|
||||
break;
|
||||
case 18:
|
||||
features.maximum_minor_version = 3; // 18.3
|
||||
features.maximum_minor_version = 4; // 18.4
|
||||
break;
|
||||
default:
|
||||
features.maximum_minor_version = 0;
|
||||
|
||||
19
libwvdrmengine/oemcrypto/odk/src/kdo.gypi
Normal file
19
libwvdrmengine/oemcrypto/odk/src/kdo.gypi
Normal file
@@ -0,0 +1,19 @@
|
||||
# Copyright 2019 Google LLC. All rights reserved. This file and proprietary
|
||||
# source code may only be used and distributed under the Widevine License
|
||||
# Agreement.
|
||||
|
||||
# These files are used by the server and by some ODK test code. These files are
|
||||
# not built into the ODK library on the device.
|
||||
{
|
||||
'sources': [
|
||||
'core_message_deserialize.cpp',
|
||||
'core_message_features.cpp',
|
||||
'core_message_serialize.cpp',
|
||||
'core_message_serialize_proto.cpp',
|
||||
],
|
||||
'include_dirs': [
|
||||
'src',
|
||||
'../include',
|
||||
],
|
||||
}
|
||||
|
||||
41
libwvdrmengine/oemcrypto/odk/src/odk.gyp
Normal file
41
libwvdrmengine/oemcrypto/odk/src/odk.gyp
Normal file
@@ -0,0 +1,41 @@
|
||||
# Copyright 2019 Google LLC. All rights reserved. This file and proprietary
|
||||
# source code may only be used and distributed under the Widevine License
|
||||
# Agreement.
|
||||
|
||||
{
|
||||
'targets': [
|
||||
{
|
||||
'toolsets' : [ 'target' ],
|
||||
'target_name': 'odk',
|
||||
'type': 'static_library',
|
||||
'standalone_static_library' : 1,
|
||||
'hard_dependency': 1,
|
||||
'include_dirs': [
|
||||
'../include',
|
||||
'../../include',
|
||||
],
|
||||
'includes' : [
|
||||
'odk.gypi',
|
||||
],
|
||||
'cflags': [
|
||||
# TODO(b/172518513): Remove this
|
||||
'-Wno-error=cast-qual',
|
||||
],
|
||||
'defines': [
|
||||
# Needed for <endian.h> to work.
|
||||
'_DEFAULT_SOURCE',
|
||||
],
|
||||
'direct_dependent_settings': {
|
||||
'defines': [
|
||||
# Needed for <endian.h> to work.
|
||||
'_DEFAULT_SOURCE',
|
||||
],
|
||||
'include_dirs': [
|
||||
'.',
|
||||
'../include',
|
||||
'../../include',
|
||||
],
|
||||
}
|
||||
},
|
||||
],
|
||||
}
|
||||
18
libwvdrmengine/oemcrypto/odk/src/odk.gypi
Normal file
18
libwvdrmengine/oemcrypto/odk/src/odk.gypi
Normal file
@@ -0,0 +1,18 @@
|
||||
# Copyright 2019 Google LLC. All rights reserved. This file and proprietary
|
||||
# source code may only be used and distributed under the Widevine License
|
||||
# Agreement.
|
||||
|
||||
# These files are built into the ODK library on the device. They are also used
|
||||
# by the server and by test cocde. These files should compile on C99 compilers.
|
||||
{
|
||||
'sources': [
|
||||
'odk.c',
|
||||
'odk_message.c',
|
||||
'odk_overflow.c',
|
||||
'odk_serialize.c',
|
||||
'odk_timer.c',
|
||||
'odk_util.c',
|
||||
'serialization_base.c',
|
||||
],
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if (__STDC_VERSION__ >= 201112L)
|
||||
#include <assert.h>
|
||||
#define odk_static_assert static_assert
|
||||
#if defined(_MSC_VER) || (__STDC_VERSION__ >= 201112L)
|
||||
# include <assert.h>
|
||||
# define odk_static_assert static_assert
|
||||
#else
|
||||
#define odk_static_assert(msg, e) \
|
||||
enum { odk_static_assert = 1 / (!!((msg) && (e))) };
|
||||
|
||||
@@ -264,7 +264,22 @@ OEMCryptoResult ODK_InitializeSessionValues(ODK_TimerLimits* timer_limits,
|
||||
ODK_InitializeClockValues(clock_values, 0);
|
||||
|
||||
nonce_values->api_major_version = api_major_version;
|
||||
nonce_values->api_minor_version = ODK_MINOR_VERSION;
|
||||
// This needs to be updated with new version releases in the default features
|
||||
// of core message features.
|
||||
switch (nonce_values->api_major_version) {
|
||||
case 16:
|
||||
nonce_values->api_minor_version = 5;
|
||||
break;
|
||||
case 17:
|
||||
nonce_values->api_minor_version = 2;
|
||||
break;
|
||||
case 18:
|
||||
nonce_values->api_minor_version = 4;
|
||||
break;
|
||||
default:
|
||||
nonce_values->api_minor_version = 0;
|
||||
break;
|
||||
}
|
||||
nonce_values->nonce = 0;
|
||||
nonce_values->session_id = session_id;
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Copyright 2020 Google LLC. All rights reserved. This file and proprietary
|
||||
# source code may only be used and distributed under the Widevine License
|
||||
# Agreement.
|
||||
|
||||
# Reference Link explaining flags for LD_PRELOAD: https://catonmat.net/simple-ld-preload-tutorial-part-two
|
||||
{
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'odk_corpus_generator',
|
||||
'type': 'shared_library',
|
||||
'cflags_cc': [
|
||||
'-g3',
|
||||
'-O0',
|
||||
'-fno-omit-frame-pointer',
|
||||
'-Wall',
|
||||
],
|
||||
'include_dirs': [
|
||||
'../../../include',
|
||||
'../../../test',
|
||||
'../corpus_generator',
|
||||
],
|
||||
'ldflags': [
|
||||
'-fPIC',
|
||||
],
|
||||
'libraries': [
|
||||
'-ldl',
|
||||
],
|
||||
'sources': [
|
||||
'odk_corpus_generator.c',
|
||||
],
|
||||
}
|
||||
]
|
||||
}
|
||||
44
libwvdrmengine/oemcrypto/odk/test/fuzzing/odk_fuzz.gyp
Normal file
44
libwvdrmengine/oemcrypto/odk/test/fuzzing/odk_fuzz.gyp
Normal file
@@ -0,0 +1,44 @@
|
||||
# Copyright 2019 Google LLC. All rights reserved. This file and proprietary
|
||||
# source code may only be used and distributed under the Widevine License
|
||||
# Agreement.
|
||||
|
||||
#TODO(b/151858867): Fix File paths
|
||||
{
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'odk_fuzz',
|
||||
'type': 'executable',
|
||||
'includes': [
|
||||
'../src/odk.gypi',
|
||||
'../kdo/oec_util.gypi',
|
||||
],
|
||||
'include_dirs': [
|
||||
'../../include',
|
||||
'../include',
|
||||
'../src',
|
||||
'../kdo/include',
|
||||
],
|
||||
'cflags': [
|
||||
# TODO(b/172518513): Remove this
|
||||
'-Wno-error=cast-qual',
|
||||
],
|
||||
'cflags_cc': [
|
||||
'-std=c++14',
|
||||
'-g3',
|
||||
'-O0',
|
||||
'-fsanitize=fuzzer,address,undefined',
|
||||
'-fno-omit-frame-pointer',
|
||||
],
|
||||
'ldflags': [
|
||||
'-fPIC',
|
||||
'-fsanitize=fuzzer,address,undefined',
|
||||
],
|
||||
'sources': [
|
||||
'odk_fuzz.cpp',
|
||||
],
|
||||
'dependencies': [
|
||||
'../../../cdm/cdm.gyp:license_protocol'
|
||||
],
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1216,7 +1216,7 @@ std::vector<VersionParameters> TestCases() {
|
||||
// number.
|
||||
{16, ODK_MAJOR_VERSION, ODK_MINOR_VERSION, 16, 5},
|
||||
{17, ODK_MAJOR_VERSION, ODK_MINOR_VERSION, 17, 2},
|
||||
{18, ODK_MAJOR_VERSION, ODK_MINOR_VERSION, 18, 3},
|
||||
{18, ODK_MAJOR_VERSION, ODK_MINOR_VERSION, 18, 4},
|
||||
// Here are some known good versions. Make extra sure they work.
|
||||
{ODK_MAJOR_VERSION, 16, 3, 16, 3},
|
||||
{ODK_MAJOR_VERSION, 16, 4, 16, 4},
|
||||
@@ -1226,12 +1226,13 @@ std::vector<VersionParameters> TestCases() {
|
||||
{ODK_MAJOR_VERSION, 18, 1, 18, 1},
|
||||
{ODK_MAJOR_VERSION, 18, 2, 18, 2},
|
||||
{ODK_MAJOR_VERSION, 18, 3, 18, 3},
|
||||
{ODK_MAJOR_VERSION, 18, 4, 18, 4},
|
||||
{0, 16, 3, 16, 3},
|
||||
{0, 16, 4, 16, 4},
|
||||
{0, 16, 5, 16, 5},
|
||||
{0, 17, 1, 17, 1},
|
||||
{0, 17, 2, 17, 2},
|
||||
{0, 18, 3, 18, 3}, // Change to 19 when the default version is updated.
|
||||
{0, 18, 4, 18, 4}, // Change to 19 when the default version is updated.
|
||||
};
|
||||
return test_cases;
|
||||
}
|
||||
|
||||
16
libwvdrmengine/oemcrypto/odk/test/odk_test.gypi
Normal file
16
libwvdrmengine/oemcrypto/odk/test/odk_test.gypi
Normal file
@@ -0,0 +1,16 @@
|
||||
# Copyright 2019 Google LLC. All rights reserved. This file and proprietary
|
||||
# source code may only be used and distributed under the Widevine License
|
||||
# Agreement.
|
||||
|
||||
{
|
||||
'sources': [
|
||||
'odk_golden_v16.cpp',
|
||||
'odk_golden_v17.cpp',
|
||||
'odk_golden_v18.cpp',
|
||||
'odk_test.cpp',
|
||||
'odk_test_helper.cpp',
|
||||
'odk_test_helper.h',
|
||||
'odk_timer_test.cpp',
|
||||
],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user