Merge from Widevine repo of http://go/wvgerrit/46204 Refactor utility code - split the mock, step 1 Merge from Widevine repo of http://go/wvgerrit/46205 Move some OEMCrypto types to common header - split the mock, step 2 Merge from Widevine repo of http://go/wvgerrit/46206 Split mock into two -- step 3 Merge from Widevine repo of http://go/wvgerrit/47460 Split the mock into two -- step 3.5 The CL moves several files used by oemcrypto and cdm into a common subdirectory, so that it may more easily be shared with partners. The CORE_DISALLOW_COPY_AND_ASSIGN macro was moved to its own header in the util/include directory. This CL removes some references to the mock from other code, and puts some constants and types, such as the definition of the keybox, into a header in oemcrypto. Test: tested as part of http://go/ag/4674759 bug: 76393338 Change-Id: I75b4bde7062ed8ee572c97ebc2f4da018f4be0c9
47 lines
1.7 KiB
C++
47 lines
1.7 KiB
C++
#ifndef WVCDM_CORE_KEY_SESSSION_H_
|
|
#define WVCDM_CORE_KEY_SESSSION_H_
|
|
|
|
#include "metrics_collections.h"
|
|
|
|
namespace wvcdm {
|
|
|
|
class CryptoKey;
|
|
|
|
class KeySession {
|
|
protected:
|
|
KeySession(metrics::CryptoMetrics* metrics) : metrics_(metrics) {}
|
|
|
|
public:
|
|
typedef enum { kDefault, kSubLicense, kEntitlement } KeySessionType;
|
|
virtual ~KeySession() {}
|
|
virtual KeySessionType Type() = 0;
|
|
virtual bool GenerateDerivedKeys(const std::string& message) = 0;
|
|
virtual bool GenerateDerivedKeys(const std::string& message,
|
|
const std::string& session_key) = 0;
|
|
virtual OEMCryptoResult LoadKeys(const std::string& message,
|
|
const std::string& signature,
|
|
const std::string& mac_key_iv,
|
|
const std::string& mac_key,
|
|
const std::vector<CryptoKey>& keys,
|
|
const std::string& provider_session_token,
|
|
CdmCipherMode* cipher_mode,
|
|
const std::string& srm_requirement) = 0;
|
|
virtual OEMCryptoResult LoadEntitledContentKeys(
|
|
const std::vector<CryptoKey>& keys) = 0;
|
|
virtual OEMCryptoResult SelectKey(const std::string& key_id,
|
|
CdmCipherMode cipher_mode) = 0;
|
|
virtual OEMCryptoResult Decrypt(
|
|
const CdmDecryptionParameters& params,
|
|
OEMCrypto_DestBufferDesc& buffer_descriptor,
|
|
OEMCrypto_CENCEncryptPatternDesc& pattern_descriptor) = 0;
|
|
|
|
protected:
|
|
metrics::CryptoMetrics* metrics_;
|
|
};
|
|
|
|
typedef std::map<std::string, CryptoSessionId> SubLicenseSessionMap;
|
|
|
|
} // namespace wvcdm
|
|
|
|
#endif // WVCDM_CORE_KEY_SESSSION_H_
|