Changes include: 1. Fix refreshkeys when handling renewal response. 2. Change ECM start detect method. 3. Fix signing key truncation. 4. Reformat C++ code. 5. Return license_id in LICENSE_CAS_READY payload. 6. Expose OEMCrypto API version in the license request. 7. Add support for newly added widevine cas ids. 8. Store content iv and encryption mode info to entitled key. 9. Upgrade ODK library to 16.4.
51 lines
1.6 KiB
C++
51 lines
1.6 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.
|
|
|
|
#ifndef CRYPTO_KEY_H_
|
|
#define CRYPTO_KEY_H_
|
|
|
|
namespace wvcas {
|
|
|
|
class CryptoKey {
|
|
public:
|
|
CryptoKey(){};
|
|
~CryptoKey(){};
|
|
|
|
const std::string& key_id() const { return key_id_; }
|
|
const std::string& key_data() const { return key_data_; }
|
|
const std::string& key_data_iv() const { return key_data_iv_; }
|
|
const std::string& key_control() const { return key_control_; }
|
|
const std::string& key_control_iv() const { return key_control_iv_; }
|
|
const std::string& entitlement_key_id() const { return entitlement_key_id_; }
|
|
const std::string& track_label() const { return track_label_; }
|
|
void set_key_id(const std::string& key_id) { key_id_ = key_id; }
|
|
void set_key_data(const std::string& key_data) { key_data_ = key_data; }
|
|
void set_key_data_iv(const std::string& iv) { key_data_iv_ = iv; }
|
|
void set_key_control(const std::string& ctl) { key_control_ = ctl; }
|
|
void set_key_control_iv(const std::string& ctl_iv) {
|
|
key_control_iv_ = ctl_iv;
|
|
}
|
|
void set_track_label(const std::string& track_label) {
|
|
track_label_ = track_label;
|
|
}
|
|
void set_entitlement_key_id(const std::string& entitlement_key_id) {
|
|
entitlement_key_id_ = entitlement_key_id;
|
|
}
|
|
|
|
bool HasKeyControl() const { return key_control_.size() >= 16; }
|
|
|
|
private:
|
|
std::string key_id_;
|
|
std::string key_data_iv_;
|
|
std::string key_data_;
|
|
std::string key_control_;
|
|
std::string key_control_iv_;
|
|
std::string track_label_;
|
|
std::string entitlement_key_id_;
|
|
};
|
|
|
|
} // namespace wvcas
|
|
|
|
#endif // CRYPTO_KEY_H_
|