Misc Windows fixes.
(This is a merge of http://go/wvgerrit/70324) - Add build settings for Windows. - Conditionally add pthread. - Add dummy DLLMain method. - Fix #if checks for Windows. - Remove designated initializers which aren't supported in MSVC. - Remove variable length array. Test: Android Unit Tests Bug: 122953649 Change-Id: I14f16e7ce4b3ff17ee0139ea6c2f7243ae999aa1
This commit is contained in:
committed by
John W. Bruce
parent
85e2c6a026
commit
b3dd9c3711
@@ -38,57 +38,63 @@ const CdmUsageEntry kYetAnotherUsageEntry = "yet another usage entry";
|
|||||||
const CdmUsageEntry kAndAnotherUsageEntry = "and another usage entry";
|
const CdmUsageEntry kAndAnotherUsageEntry = "and another usage entry";
|
||||||
const CdmUsageEntry kOneMoreUsageEntry = "one more usage entry";
|
const CdmUsageEntry kOneMoreUsageEntry = "one more usage entry";
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense1 = {
|
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense1 = {
|
||||||
.storage_type = kStorageLicense,
|
/* storage_type = */ kStorageLicense,
|
||||||
.key_set_id = "offline_key_set_1",
|
/* key_set_id = */ "offline_key_set_1",
|
||||||
.usage_info_file_name = ""};
|
/* usage_info_file_name = */ "",
|
||||||
|
};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense2 = {
|
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense2 = {
|
||||||
.storage_type = kStorageLicense,
|
/* storage_type = */ kStorageLicense,
|
||||||
.key_set_id = "offline_key_set_2",
|
/* key_set_id = */ "offline_key_set_2",
|
||||||
.usage_info_file_name = ""};
|
/* usage_info_file_name = */ "",
|
||||||
|
};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense3 = {
|
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense3 = {
|
||||||
.storage_type = kStorageLicense,
|
/* storage_type = */ kStorageLicense,
|
||||||
.key_set_id = "offline_key_set_3",
|
/* key_set_id = */ "offline_key_set_3",
|
||||||
.usage_info_file_name = ""};
|
/* usage_info_file_name = */ ""};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense4 = {
|
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense4 = {
|
||||||
.storage_type = kStorageLicense,
|
/* storage_type = */ kStorageLicense,
|
||||||
.key_set_id = "offline_key_set_4",
|
/* key_set_id = */ "offline_key_set_4",
|
||||||
.usage_info_file_name = ""};
|
/* usage_info_file_name = */ ""};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense5 = {
|
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense5 = {
|
||||||
.storage_type = kStorageLicense,
|
/* storage_type = */ kStorageLicense,
|
||||||
.key_set_id = "offline_key_set_5",
|
/* key_set_id = */ "offline_key_set_5",
|
||||||
.usage_info_file_name = ""};
|
/* usage_info_file_name = */ ""};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense6 = {
|
const CdmUsageEntryInfo kUsageEntryInfoOfflineLicense6 = {
|
||||||
.storage_type = kStorageLicense,
|
/* storage_type = */ kStorageLicense,
|
||||||
.key_set_id = "offline_key_set_6",
|
/* key_set_id = */ "offline_key_set_6",
|
||||||
.usage_info_file_name = ""};
|
/* usage_info_file_name = */ ""};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoSecureStop1 = {
|
const CdmUsageEntryInfo kUsageEntryInfoSecureStop1 = {
|
||||||
.storage_type = kStorageUsageInfo,
|
/* storage_type = */ kStorageUsageInfo,
|
||||||
.key_set_id = "secure_stop_key_set_1",
|
/* key_set_id = */ "secure_stop_key_set_1",
|
||||||
.usage_info_file_name = "usage_info_file_1"};
|
/* usage_info_file_name = */ "usage_info_file_1",
|
||||||
|
};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoSecureStop2 = {
|
const CdmUsageEntryInfo kUsageEntryInfoSecureStop2 = {
|
||||||
.storage_type = kStorageUsageInfo,
|
/* storage_type = */ kStorageUsageInfo,
|
||||||
.key_set_id = "secure_stop_key_set_2",
|
/* key_set_id = */ "secure_stop_key_set_2",
|
||||||
.usage_info_file_name = "usage_info_file_2"};
|
/* usage_info_file_name = */ "usage_info_file_2",
|
||||||
|
};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoSecureStop3 = {
|
const CdmUsageEntryInfo kUsageEntryInfoSecureStop3 = {
|
||||||
.storage_type = kStorageUsageInfo,
|
/* storage_type = */ kStorageUsageInfo,
|
||||||
.key_set_id = "secure_stop_key_set_3",
|
/* key_set_id = */ "secure_stop_key_set_3",
|
||||||
.usage_info_file_name = "usage_info_file_3"};
|
/* usage_info_file_name = */ "usage_info_file_3"};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoSecureStop4 = {
|
const CdmUsageEntryInfo kUsageEntryInfoSecureStop4 = {
|
||||||
.storage_type = kStorageUsageInfo,
|
/* storage_type = */ kStorageUsageInfo,
|
||||||
.key_set_id = "secure_stop_key_set_4",
|
/* key_set_id = */ "secure_stop_key_set_4",
|
||||||
.usage_info_file_name = "usage_info_file_4"};
|
/* usage_info_file_name = */ "usage_info_file_4"};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoSecureStop5 = {
|
const CdmUsageEntryInfo kUsageEntryInfoSecureStop5 = {
|
||||||
.storage_type = kStorageUsageInfo,
|
/* storage_type = */ kStorageUsageInfo,
|
||||||
.key_set_id = "secure_stop_key_set_5",
|
/* key_set_id = */ "secure_stop_key_set_5",
|
||||||
.usage_info_file_name = "usage_info_file_5"};
|
/* usage_info_file_name = */ "usage_info_file_5"};
|
||||||
const CdmUsageEntryInfo kUsageEntryInfoStorageTypeUnknown = {
|
const CdmUsageEntryInfo kUsageEntryInfoStorageTypeUnknown = {
|
||||||
.storage_type = kStorageTypeUnknown,
|
/* storage_type = */ kStorageTypeUnknown,
|
||||||
.key_set_id = "",
|
/* key_set_id = */ "",
|
||||||
.usage_info_file_name = ""};
|
/* usage_info_file_name = */ "",
|
||||||
|
};
|
||||||
const CdmUsageEntryInfo kDummyUsageEntryInfo = {
|
const CdmUsageEntryInfo kDummyUsageEntryInfo = {
|
||||||
.storage_type = kStorageLicense,
|
/* storage_type = */ kStorageLicense,
|
||||||
.key_set_id = "DummyKsid",
|
/* key_set_id = */ "DummyKsid",
|
||||||
.usage_info_file_name = ""};
|
/* usage_info_file_name = */ "",
|
||||||
|
};
|
||||||
|
|
||||||
const std::vector<std::string> kEmptyLicenseList;
|
const std::vector<std::string> kEmptyLicenseList;
|
||||||
|
|
||||||
@@ -113,28 +119,28 @@ const size_t kUsageInfoFileArraySize = sizeof(kUsageInfoFileArray)/
|
|||||||
std::vector<std::string> kUsageInfoFileList;
|
std::vector<std::string> kUsageInfoFileList;
|
||||||
|
|
||||||
const DeviceFiles::CdmUsageData kCdmUsageData1 = {
|
const DeviceFiles::CdmUsageData kCdmUsageData1 = {
|
||||||
.provider_session_token = "provider_session_token_1",
|
/* provider_session_token = */ "provider_session_token_1",
|
||||||
.license_request = "license_request_1",
|
/* license_request = */ "license_request_1",
|
||||||
.license = "license_1",
|
/* license = */ "license_1",
|
||||||
.key_set_id = "key_set_id_1",
|
/* key_set_id = */ "key_set_id_1",
|
||||||
.usage_entry = "usage_entry_1",
|
/* usage_entry = */ "usage_entry_1",
|
||||||
.usage_entry_number = 0,
|
/* usage_entry_number = */ 0,
|
||||||
};
|
};
|
||||||
const DeviceFiles::CdmUsageData kCdmUsageData2 = {
|
const DeviceFiles::CdmUsageData kCdmUsageData2 = {
|
||||||
.provider_session_token = "provider_session_token_2",
|
/* provider_session_token = */ "provider_session_token_2",
|
||||||
.license_request = "license_request_2",
|
/* license_request = */ "license_request_2",
|
||||||
.license = "license_2",
|
/* license = */ "license_2",
|
||||||
.key_set_id = "key_set_id_2",
|
/* key_set_id = */ "key_set_id_2",
|
||||||
.usage_entry = "usage_entry_2",
|
/* usage_entry = */ "usage_entry_2",
|
||||||
.usage_entry_number = 0,
|
/* usage_entry_number = */ 0,
|
||||||
};
|
};
|
||||||
const DeviceFiles::CdmUsageData kCdmUsageData3 = {
|
const DeviceFiles::CdmUsageData kCdmUsageData3 = {
|
||||||
.provider_session_token = "provider_session_token_3",
|
/* provider_session_token = */ "provider_session_token_3",
|
||||||
.license_request = "license_request_3",
|
/* license_request = */ "license_request_3",
|
||||||
.license = "license_3",
|
/* license = */ "license_3",
|
||||||
.key_set_id = "key_set_id_3",
|
/* key_set_id = */ "key_set_id_3",
|
||||||
.usage_entry = "usage_entry_3",
|
/* usage_entry = */ "usage_entry_3",
|
||||||
.usage_entry_number = 0,
|
/* usage_entry_number = */ 0,
|
||||||
};
|
};
|
||||||
const std::vector<DeviceFiles::CdmUsageData> kEmptyUsageInfoUsageDataList;
|
const std::vector<DeviceFiles::CdmUsageData> kEmptyUsageInfoUsageDataList;
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,12 @@ void SetValue<unsigned long>(drm_metrics::ValueMetric *value_proto,
|
|||||||
value_proto->set_int_value((int64_t)value);
|
value_proto->set_int_value((int64_t)value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
void SetValue<unsigned long long>(drm_metrics::ValueMetric *value_proto,
|
||||||
|
const unsigned long long &value) {
|
||||||
|
value_proto->set_int_value((int64_t)value);
|
||||||
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
void SetValue<bool>(drm_metrics::ValueMetric *value_proto,
|
void SetValue<bool>(drm_metrics::ValueMetric *value_proto,
|
||||||
const bool &value) {
|
const bool &value) {
|
||||||
|
|||||||
12
libwvdrmengine/cdm/util/src/dllmain.cpp
Normal file
12
libwvdrmengine/cdm/util/src/dllmain.cpp
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary
|
||||||
|
// source code may only be used and distributed under the Widevine Master
|
||||||
|
// License Agreement.
|
||||||
|
//
|
||||||
|
// dllmain - A dummy DllMain method for Windows DLLs.
|
||||||
|
//
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
|
||||||
|
LPVOID lpReserved) {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
@@ -15,8 +15,8 @@ namespace wvoec_ref {
|
|||||||
|
|
||||||
class CertOnlyCryptoEngine : public CryptoEngine {
|
class CertOnlyCryptoEngine : public CryptoEngine {
|
||||||
public:
|
public:
|
||||||
explicit CertOnlyCryptoEngine(std::unique_ptr<wvcdm::FileSystem> file_system)
|
explicit CertOnlyCryptoEngine(std::unique_ptr<wvcdm::FileSystem>&& file_system)
|
||||||
: CryptoEngine(file_system) {}
|
: CryptoEngine(std::move(file_system)) {}
|
||||||
|
|
||||||
bool config_local_display_only() { return true; }
|
bool config_local_display_only() { return true; }
|
||||||
|
|
||||||
@@ -30,8 +30,8 @@ class CertOnlyCryptoEngine : public CryptoEngine {
|
|||||||
};
|
};
|
||||||
|
|
||||||
CryptoEngine* CryptoEngine::MakeCryptoEngine(
|
CryptoEngine* CryptoEngine::MakeCryptoEngine(
|
||||||
std::unique_ptr<wvcdm::FileSystem> file_system) {
|
std::unique_ptr<wvcdm::FileSystem>&& file_system) {
|
||||||
return new CertOnlyCryptoEngine(file_system);
|
return new CertOnlyCryptoEngine(std::move(file_system));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace wvoec_ref
|
} // namespace wvoec_ref
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
// OEMCrypto unit tests
|
// OEMCrypto unit tests
|
||||||
//
|
//
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
|
#include <time.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
|||||||
@@ -1688,12 +1688,13 @@ TEST_P(SessionTestRefreshKeyTest, RefreshWithNoSelectKey) {
|
|||||||
num_keys_, wvoec::kControlNonceEnabled, s.get_nonce()));
|
num_keys_, wvoec::kControlNonceEnabled, s.get_nonce()));
|
||||||
s.ServerSignBuffer(reinterpret_cast<const uint8_t*>(&s.encrypted_license()),
|
s.ServerSignBuffer(reinterpret_cast<const uint8_t*>(&s.encrypted_license()),
|
||||||
s.message_size(), &s.signature());
|
s.message_size(), &s.signature());
|
||||||
OEMCrypto_KeyRefreshObject key_array[num_keys_];
|
std::vector<OEMCrypto_KeyRefreshObject> key_array(num_keys_);
|
||||||
s.FillRefreshArray(key_array, num_keys_);
|
s.FillRefreshArray(key_array.data(), num_keys_);
|
||||||
ASSERT_EQ(OEMCrypto_SUCCESS,
|
ASSERT_EQ(OEMCrypto_SUCCESS,
|
||||||
OEMCrypto_RefreshKeys(s.session_id(), s.message_ptr(),
|
OEMCrypto_RefreshKeys(s.session_id(), s.message_ptr(),
|
||||||
s.message_size(), s.signature().data(),
|
s.message_size(), s.signature().data(),
|
||||||
s.signature().size(), num_keys_, key_array));
|
s.signature().size(), num_keys_,
|
||||||
|
key_array.data()));
|
||||||
ASSERT_NO_FATAL_FAILURE(s.TestDecryptCTR(false));
|
ASSERT_NO_FATAL_FAILURE(s.TestDecryptCTR(false));
|
||||||
// This should still be valid key, even if the refresh failed, because this
|
// This should still be valid key, even if the refresh failed, because this
|
||||||
// is before the original license duration.
|
// is before the original license duration.
|
||||||
|
|||||||
Reference in New Issue
Block a user