diff --git a/libwvdrmengine/cdm/core/include/crypto_session.h b/libwvdrmengine/cdm/core/include/crypto_session.h index ee891692..80566042 100644 --- a/libwvdrmengine/cdm/core/include/crypto_session.h +++ b/libwvdrmengine/cdm/core/include/crypto_session.h @@ -89,7 +89,20 @@ class CryptoSession { virtual bool GetApiMinorVersion(SecurityLevel requested_level, uint32_t* minor_version); + // This method will return, for devices with a + // * keybox: the 32 byte device ID from the keybox. + // * OEM certificate: + // - that implements |OEMCrypto_GetDeviceID|: the (1 to 64 byte) device ID. + // - that does not implement |OEMCrypto_GetDeviceID|: the OEM public + // certificate. virtual CdmResponseType GetInternalDeviceUniqueId(std::string* device_id); + + // This method will return, for devices with a + // * keybox: the 32 byte device ID from the keybox. + // * OEM certificate: + // - that implements |OEMCrypto_GetDeviceID|: the (1 to 64 byte) device ID. + // - that does not implement |OEMCrypto_GetDeviceID|: the 32 byte hash + // of the OEM public certificate. virtual CdmResponseType GetExternalDeviceUniqueId(std::string* device_id); virtual bool GetSystemId(uint32_t* system_id); virtual CdmResponseType GetProvisioningId(std::string* provisioning_id); diff --git a/libwvdrmengine/cdm/test/request_license_test.cpp b/libwvdrmengine/cdm/test/request_license_test.cpp index f49f4e02..8d78c804 100644 --- a/libwvdrmengine/cdm/test/request_license_test.cpp +++ b/libwvdrmengine/cdm/test/request_license_test.cpp @@ -4795,6 +4795,7 @@ TEST_F(WvCdmRequestLicenseTest, QueryStatus) { decryptor_->QueryStatus(kLevelDefault, wvcdm::QUERY_KEY_DEVICE_ID, &value)); EXPECT_LT(0u, value.size()); + EXPECT_LE(value.size(), 64u) << "device id size: " << value.size(); EXPECT_EQ(wvcdm::NO_ERROR, decryptor_->QueryStatus(kLevelDefault, wvcdm::QUERY_KEY_SYSTEM_ID, @@ -4808,8 +4809,8 @@ TEST_F(WvCdmRequestLicenseTest, QueryStatus) { EXPECT_EQ(wvcdm::NO_ERROR, decryptor_->QueryStatus(kLevelDefault, wvcdm::QUERY_KEY_PROVISIONING_ID, &value)); - EXPECT_TRUE(16u == value.size() || 32u == value.size()) - << "provisioning id size: " << value.size(); + EXPECT_LT(0u, value.size()); + EXPECT_LE(value.size(), 64u) << "provisioning id size: " << value.size(); EXPECT_EQ(wvcdm::NO_ERROR, decryptor_->QueryStatus( @@ -4942,6 +4943,7 @@ TEST_F(WvCdmRequestLicenseTest, QueryStatusL3) { EXPECT_EQ(wvcdm::NO_ERROR, decryptor_->QueryStatus( kLevel3, wvcdm::QUERY_KEY_DEVICE_ID, &value)); EXPECT_LT(0u, value.size()); + EXPECT_LE(value.size(), 64u) << "device id size: " << value.size(); EXPECT_EQ(wvcdm::NO_ERROR, decryptor_->QueryStatus(kLevelDefault, wvcdm::QUERY_KEY_SYSTEM_ID, @@ -4972,8 +4974,8 @@ TEST_F(WvCdmRequestLicenseTest, QueryStatusL3) { EXPECT_EQ(wvcdm::NO_ERROR, decryptor_->QueryStatus(kLevel3, wvcdm::QUERY_KEY_PROVISIONING_ID, &value)); - EXPECT_TRUE(16u == value.size() || 32u == value.size()) - << "provisioning id size: " << value.size(); + EXPECT_LT(0u, value.size()); + EXPECT_LE(value.size(), 64u) << "provisioning id size: " << value.size(); EXPECT_EQ(wvcdm::NO_ERROR, decryptor_->QueryStatus(