Replace hardcoded parameters
This commit is contained in:
@@ -44,16 +44,18 @@ class DrmServiceCertificateMap {
|
||||
void AddCert(std::unique_ptr<DrmServiceCertificate> new_cert);
|
||||
void ClearDefaultDrmServiceCertificate();
|
||||
const DrmServiceCertificate* GetDefaultCert();
|
||||
const DrmServiceCertificate* GetCert(const std::string& serial_number);
|
||||
|
||||
const DrmServiceCertificate* GetCertBySerialNumber(
|
||||
const std::string& serial_number);
|
||||
const DrmServiceCertificate* GetCertByProvider(
|
||||
const std::string& provider_id);
|
||||
static DrmServiceCertificateMap* GetInstance();
|
||||
|
||||
private:
|
||||
absl::Mutex mutex_;
|
||||
// Certificate serial number to certificate map.
|
||||
std::map<std::string, std::unique_ptr<DrmServiceCertificate>> map_
|
||||
GUARDED_BY(mutex_);
|
||||
DrmServiceCertificate* default_cert_ GUARDED_BY(mutex_);
|
||||
ABSL_GUARDED_BY(mutex_);
|
||||
DrmServiceCertificate* default_cert_ ABSL_GUARDED_BY(mutex_);
|
||||
};
|
||||
|
||||
DrmServiceCertificateMap::DrmServiceCertificateMap() : default_cert_(nullptr) {}
|
||||
@@ -94,12 +96,30 @@ const DrmServiceCertificate* DrmServiceCertificateMap::GetDefaultCert() {
|
||||
return default_cert_;
|
||||
}
|
||||
|
||||
const DrmServiceCertificate* DrmServiceCertificateMap::GetCert(
|
||||
const DrmServiceCertificate* DrmServiceCertificateMap::GetCertBySerialNumber(
|
||||
const std::string& serial_number) {
|
||||
absl::ReaderMutexLock lock(&mutex_);
|
||||
return map_[serial_number].get();
|
||||
}
|
||||
|
||||
const DrmServiceCertificate* DrmServiceCertificateMap::GetCertByProvider(
|
||||
const std::string& provider_id) {
|
||||
absl::ReaderMutexLock lock(&mutex_);
|
||||
DrmServiceCertificate* provider_drm_cert = nullptr;
|
||||
for (const auto& drm_cert : map_) {
|
||||
if (drm_cert.second->provider_id() == provider_id) {
|
||||
if (provider_drm_cert == nullptr) {
|
||||
provider_drm_cert = drm_cert.second.get();
|
||||
} else if (drm_cert.second->creation_time_seconds() >
|
||||
provider_drm_cert->creation_time_seconds()) {
|
||||
// Use the newest cert.
|
||||
provider_drm_cert = drm_cert.second.get();
|
||||
}
|
||||
}
|
||||
}
|
||||
return provider_drm_cert;
|
||||
}
|
||||
|
||||
DrmServiceCertificateMap* DrmServiceCertificateMap::GetInstance() {
|
||||
static auto* const kInstance = new DrmServiceCertificateMap();
|
||||
return kInstance;
|
||||
@@ -108,7 +128,8 @@ DrmServiceCertificateMap* DrmServiceCertificateMap::GetInstance() {
|
||||
} // namespace
|
||||
|
||||
Status DrmServiceCertificate::AddDrmServiceCertificate(
|
||||
const DrmRootCertificate* root_drm_cert, const std::string& service_certificate,
|
||||
const DrmRootCertificate* root_drm_cert,
|
||||
const std::string& service_certificate,
|
||||
const std::string& service_private_key,
|
||||
const std::string& service_private_key_passphrase) {
|
||||
DrmCertificate drm_cert;
|
||||
@@ -166,13 +187,22 @@ DrmServiceCertificate::GetDefaultDrmServiceCertificateOrDie() {
|
||||
return default_cert;
|
||||
}
|
||||
|
||||
const DrmServiceCertificate* DrmServiceCertificate::GetDrmServiceCertificate(
|
||||
const DrmServiceCertificate*
|
||||
DrmServiceCertificate::GetDrmServiceCertificateBySerialNumber(
|
||||
const std::string& serial_number) {
|
||||
return DrmServiceCertificateMap::GetInstance()->GetCert(serial_number);
|
||||
return DrmServiceCertificateMap::GetInstance()->GetCertBySerialNumber(
|
||||
serial_number);
|
||||
}
|
||||
|
||||
const DrmServiceCertificate*
|
||||
DrmServiceCertificate::GetDrmServiceCertificateByProvider(
|
||||
const std::string& provider) {
|
||||
return DrmServiceCertificateMap::GetInstance()->GetCertByProvider(provider);
|
||||
}
|
||||
|
||||
Status DrmServiceCertificate::SetDefaultDrmServiceCertificate(
|
||||
const DrmRootCertificate* root_drm_cert, const std::string& service_certificate,
|
||||
const DrmRootCertificate* root_drm_cert,
|
||||
const std::string& service_certificate,
|
||||
const std::string& service_private_key,
|
||||
const std::string& service_private_key_passphrase) {
|
||||
DrmServiceCertificateMap::GetInstance()->ClearDefaultDrmServiceCertificate();
|
||||
@@ -207,7 +237,7 @@ Status DrmServiceCertificate::DecryptClientIdentification(
|
||||
}
|
||||
std::string privacy_key;
|
||||
std::string provider_id;
|
||||
const DrmServiceCertificate* cert = GetDrmServiceCertificate(
|
||||
const DrmServiceCertificate* cert = GetDrmServiceCertificateBySerialNumber(
|
||||
encrypted_client_id.service_certificate_serial_number());
|
||||
if (!cert) {
|
||||
return Status(
|
||||
|
||||
Reference in New Issue
Block a user