Convert wv_cdm_constants.h to use constexpr

(This is a merge of http://go/wvgerrit/151929.)

Bug: 231439638
Test: x86-64
Change-Id: I2f62bf1e258ba260384c80838d322352d7ba1e5d
This commit is contained in:
John "Juce" Bruce
2022-05-16 18:33:52 -07:00
parent a7cded376e
commit 59b0e81963

View File

@@ -9,28 +9,28 @@
#include <string>
namespace wvcdm {
static const size_t KEY_CONTROL_SIZE = 16;
static const size_t KEY_ID_SIZE = 16;
static const size_t KEY_IV_SIZE = 16;
static const size_t KEY_PAD_SIZE = 16;
static const size_t CONTENT_KEY_SIZE = 16;
static const size_t SERVICE_KEY_SIZE = 16;
static const size_t MAC_KEY_SIZE = 32;
static const size_t ENTITLEMENT_KEY_SIZE = 32;
static const size_t KEYBOX_KEY_DATA_SIZE = 72;
static const size_t SRM_REQUIREMENT_SIZE = 12;
constexpr size_t KEY_CONTROL_SIZE = 16;
constexpr size_t KEY_ID_SIZE = 16;
constexpr size_t KEY_IV_SIZE = 16;
constexpr size_t KEY_PAD_SIZE = 16;
constexpr size_t CONTENT_KEY_SIZE = 16;
constexpr size_t SERVICE_KEY_SIZE = 16;
constexpr size_t MAC_KEY_SIZE = 32;
constexpr size_t ENTITLEMENT_KEY_SIZE = 32;
constexpr size_t KEYBOX_KEY_DATA_SIZE = 72;
constexpr size_t SRM_REQUIREMENT_SIZE = 12;
static const size_t LICENSE_PROTOCOL_2_1_PADDING = 16;
constexpr size_t LICENSE_PROTOCOL_2_1_PADDING = 16;
// Initial estimate of certificate size. Code that
// uses this estimate should be able to adapt to a larger or smaller size.
static const size_t CERTIFICATE_DATA_SIZE = 4 * 1024;
constexpr size_t CERTIFICATE_DATA_SIZE = 4 * 1024;
// Use 0 to represent never expired license as specified in EME spec
// (NaN in JS translates to 0 in unix timestamp).
static const int64_t NEVER_EXPIRES = 0;
static const int64_t UNLIMITED_DURATION = 0;
static const int64_t INVALID_TIME = -1;
constexpr int64_t NEVER_EXPIRES = 0;
constexpr int64_t UNLIMITED_DURATION = 0;
constexpr int64_t INVALID_TIME = -1;
// Not a valid system ID. Used as a placeholder for systems without an ID.
// Will not be accepted for DRM provisioning requests or license requests.
@@ -39,24 +39,24 @@ static constexpr uint32_t NULL_SYSTEM_ID =
// This is the lower limit. For OEMCrypto v16+ one can query and find how many
// are supported
static constexpr size_t kMinimumUsageTableEntriesSupported = 200;
constexpr size_t kMinimumUsageTableEntriesSupported = 200;
// Resource rating tiers
static const uint32_t RESOURCE_RATING_TIER_LOW = 1u;
static const uint32_t RESOURCE_RATING_TIER_MEDIUM = 2u;
static const uint32_t RESOURCE_RATING_TIER_HIGH = 3u;
static const uint32_t RESOURCE_RATING_TIER_VERY_HIGH = 4u;
static const uint32_t RESOURCE_RATING_TIER_MIN = RESOURCE_RATING_TIER_LOW;
static const uint32_t RESOURCE_RATING_TIER_MAX = RESOURCE_RATING_TIER_VERY_HIGH;
constexpr uint32_t RESOURCE_RATING_TIER_LOW = 1u;
constexpr uint32_t RESOURCE_RATING_TIER_MEDIUM = 2u;
constexpr uint32_t RESOURCE_RATING_TIER_HIGH = 3u;
constexpr uint32_t RESOURCE_RATING_TIER_VERY_HIGH = 4u;
constexpr uint32_t RESOURCE_RATING_TIER_MIN = RESOURCE_RATING_TIER_LOW;
constexpr uint32_t RESOURCE_RATING_TIER_MAX = RESOURCE_RATING_TIER_VERY_HIGH;
// OEMCrypto features by version
static const uint32_t OEM_CRYPTO_API_VERSION_SUPPORTS_RESOURCE_RATING_TIER = 15;
constexpr uint32_t OEM_CRYPTO_API_VERSION_SUPPORTS_RESOURCE_RATING_TIER = 15;
static const char SESSION_ID_PREFIX[] = "sid";
static const char ATSC_KEY_SET_ID_PREFIX[] = "atscksid";
static const char KEY_SET_ID_PREFIX[] = "ksid";
static const char KEY_SYSTEM[] = "com.widevine";
static const char ATSC_APP_PACKAGE_NAME[] = "org.atsc";
constexpr char SESSION_ID_PREFIX[] = "sid";
constexpr char ATSC_KEY_SET_ID_PREFIX[] = "atscksid";
constexpr char KEY_SET_ID_PREFIX[] = "ksid";
constexpr char KEY_SYSTEM[] = "com.widevine";
constexpr char ATSC_APP_PACKAGE_NAME[] = "org.atsc";
// Define query keys, values here.
// To expose these query items to Android update:
@@ -170,13 +170,13 @@ static const std::string HLS_METHOD_SAMPLE_AES = "SAMPLE-AES";
static const std::string HLS_IV_ATTRIBUTE = "IV";
static const std::string HLS_URI_ATTRIBUTE = "URI";
static const char EMPTY_ORIGIN[] = "";
static const char EMPTY_SPOID[] = "";
constexpr char EMPTY_ORIGIN[] = "";
constexpr char EMPTY_SPOID[] = "";
// Policy engine HDCP enforcement
static const uint32_t HDCP_UNSPECIFIED_VIDEO_RESOLUTION = 0;
static const int64_t HDCP_DEVICE_CHECK_INTERVAL = 10;
static const char EMPTY_APP_PACKAGE_NAME[] = "";
constexpr uint32_t HDCP_UNSPECIFIED_VIDEO_RESOLUTION = 0;
constexpr int64_t HDCP_DEVICE_CHECK_INTERVAL = 10;
constexpr char EMPTY_APP_PACKAGE_NAME[] = "";
} // namespace wvcdm
#endif // WVCDM_CORE_WV_CDM_CONSTANTS_H_