(This is a merge of http://go/wvgerrit/65782) We have had our own scoped_ptr implementation that is used throughout the codebase. Now that we support C++11, we can replace these with std::unique_ptr. Doing this replacement exposed a few places where the two were not interchangeable. OEMCrypto Ref was doing some unsafe things with passing scoped_ptrs to functions and has been updated to use move semantics. And a few constructors were explicitly constructing a scoped_ptr with NULL, which is ambiguous with std::unique_ptr. These have been replaced with default constructor calls. Bug: 111851141 Test: CE CDM Unit Tests Test: Android Unit Tests Change-Id: I37d6d7aad4906709381c74f0c5439f826d2be768
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
// 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.
|
|
//
|
|
// Reference implementation of OEMCrypto APIs
|
|
//
|
|
// This file contains oemcrypto engine properties that would be for a
|
|
// level 1 device.
|
|
#include "oemcrypto_engine_ref.h"
|
|
|
|
#include <utility>
|
|
|
|
namespace wvoec_ref {
|
|
|
|
class L1CryptoEngine : public CryptoEngine {
|
|
public:
|
|
explicit L1CryptoEngine(std::unique_ptr<wvcdm::FileSystem>&& file_system)
|
|
: CryptoEngine(std::move(file_system)) {}
|
|
|
|
bool config_local_display_only() { return true; }
|
|
|
|
OEMCrypto_HDCP_Capability config_maximum_hdcp_capability() {
|
|
return HDCP_V2;
|
|
}
|
|
|
|
bool config_is_anti_rollback_hw_present() { return true; }
|
|
|
|
const char* config_security_level() { return "L1"; }
|
|
|
|
// This should start at 0, and be incremented only when a security patch has
|
|
// been applied to the device that fixes a security bug.
|
|
uint8_t config_security_patch_level() { return 3; }
|
|
};
|
|
|
|
CryptoEngine* CryptoEngine::MakeCryptoEngine(
|
|
std::unique_ptr<wvcdm::FileSystem>&& file_system) {
|
|
return new L1CryptoEngine(std::move(file_system));
|
|
}
|
|
|
|
} // namespace wvoec_ref
|