Source release v3.5.0
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "license.h"
|
||||
#include "log.h"
|
||||
#include "properties.h"
|
||||
#include "service_certificate.h"
|
||||
#include "string_conversions.h"
|
||||
#include "wv_cdm_constants.h"
|
||||
#include "wv_cdm_event_listener.h"
|
||||
@@ -212,7 +213,7 @@ class CdmImpl : public Cdm,
|
||||
|
||||
virtual void OnSessionKeysChange(const CdmSessionId& session_id,
|
||||
const CdmKeyStatusMap& keys_status,
|
||||
bool has_new_usable_key) OVERRIDE;
|
||||
bool /* has_new_usable_key */) OVERRIDE;
|
||||
|
||||
virtual void OnExpirationUpdate(const CdmSessionId& session_id,
|
||||
int64_t new_expiry_time_seconds) OVERRIDE;
|
||||
@@ -285,13 +286,16 @@ Cdm::Status CdmImpl::setServiceCertificate(const std::string& certificate) {
|
||||
return kTypeError;
|
||||
}
|
||||
|
||||
// Check for properly signed and well-formed certificate.
|
||||
// Keep results. NOTE: an empty certificate should be accepted here.
|
||||
CdmResponseType status = cdm_engine_.SetServiceCertificate(certificate);
|
||||
// Verify that the certificate is properly signed and well-formed.
|
||||
ServiceCertificate service_certificate;
|
||||
CdmResponseType status = service_certificate.Init(certificate);
|
||||
if (status != NO_ERROR) {
|
||||
LOGE("Invalid service certificate! Error code = %d", status);
|
||||
return kTypeError;
|
||||
}
|
||||
// TODO(gmorgan): remove when provisioning service certificate is added
|
||||
cdm_engine_.SetServiceCertificate(certificate);
|
||||
property_set_.set_service_certificate(certificate);
|
||||
return kSuccess;
|
||||
}
|
||||
|
||||
@@ -301,8 +305,7 @@ Cdm::Status CdmImpl::getServiceCertificateRequest(std::string* message) {
|
||||
"string return parameter not supplied");
|
||||
return kTypeError;
|
||||
}
|
||||
CdmKeyMessage request_message;
|
||||
if (!cdm_engine_.GetServiceCertificateRequest(message)) {
|
||||
if (!ServiceCertificate::GetRequest(message)) {
|
||||
LOGE("Unable to return service certificate request!");
|
||||
message->clear();
|
||||
return kTypeError;
|
||||
@@ -317,13 +320,12 @@ Cdm::Status CdmImpl::parseServiceCertificateResponse(
|
||||
"string return parameter not supplied");
|
||||
return kTypeError;
|
||||
}
|
||||
if (cdm_engine_.ParseServiceCertificateResponse(response, certificate) !=
|
||||
NO_ERROR) {
|
||||
if (ServiceCertificate::ParseResponse(response, certificate) != NO_ERROR) {
|
||||
LOGE("Failure parsing service certificate response!");
|
||||
certificate->clear();
|
||||
return kTypeError;
|
||||
}
|
||||
return kSuccess;
|
||||
return setServiceCertificate(*certificate);
|
||||
}
|
||||
|
||||
bool CdmImpl::isProvisioned() {
|
||||
@@ -1017,7 +1019,7 @@ Cdm::Status CdmImpl::genericEncrypt(
|
||||
LOGE("No such session: %s", session_id.c_str());
|
||||
return kSessionNotFound;
|
||||
}
|
||||
if (result == KEY_NOT_FOUND_3 || result == KEY_ERROR_1) {
|
||||
if (result == KEY_NOT_FOUND_3 || result == NEED_KEY) {
|
||||
LOGE("Key Error: %s", session_id.c_str());
|
||||
return kNoKey;
|
||||
}
|
||||
@@ -1045,7 +1047,7 @@ Cdm::Status CdmImpl::genericDecrypt(
|
||||
LOGE("No such session: %s", session_id.c_str());
|
||||
return kSessionNotFound;
|
||||
}
|
||||
if (result == KEY_NOT_FOUND_4 || result == KEY_ERROR_2) {
|
||||
if (result == KEY_NOT_FOUND_4 || result == NEED_KEY) {
|
||||
LOGE("Key Error: %s", session_id.c_str());
|
||||
return kNoKey;
|
||||
}
|
||||
@@ -1073,7 +1075,7 @@ Cdm::Status CdmImpl::genericSign(
|
||||
LOGE("No such session: %s", session_id.c_str());
|
||||
return kSessionNotFound;
|
||||
}
|
||||
if (result == KEY_NOT_FOUND_5 || result == KEY_ERROR_3) {
|
||||
if (result == KEY_NOT_FOUND_5 || result == NEED_KEY) {
|
||||
LOGE("Key Error: %s", session_id.c_str());
|
||||
return kNoKey;
|
||||
}
|
||||
@@ -1101,7 +1103,7 @@ Cdm::Status CdmImpl::genericVerify(
|
||||
LOGE("No such session: %s", session_id.c_str());
|
||||
return kSessionNotFound;
|
||||
}
|
||||
if (result == KEY_NOT_FOUND_6 || result == KEY_ERROR_4) {
|
||||
if (result == KEY_NOT_FOUND_6 || result == NEED_KEY) {
|
||||
LOGE("Key Error: %s", session_id.c_str());
|
||||
return kNoKey;
|
||||
}
|
||||
@@ -1151,7 +1153,8 @@ void CdmImpl::OnSessionRenewalNeeded(const CdmSessionId& session_id) {
|
||||
}
|
||||
|
||||
void CdmImpl::OnSessionKeysChange(const CdmSessionId& session_id,
|
||||
const CdmKeyStatusMap& keys_status, bool) {
|
||||
const CdmKeyStatusMap& keys_status,
|
||||
bool /* has_new_usable_key */) {
|
||||
KeyStatusMap& map = sessions_[session_id].key_statuses;
|
||||
|
||||
CdmKeyStatusMap::const_iterator it;
|
||||
@@ -1250,7 +1253,7 @@ CdmSigningAlgorithm CdmImpl::ConvertSigningAlgorithm(
|
||||
}
|
||||
|
||||
bool VerifyL1() {
|
||||
CryptoSession cs;
|
||||
CryptoSession cs(NULL);
|
||||
return cs.GetSecurityLevel() == kSecurityLevelL1;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ LogPriority g_cutoff = LOG_WARN;
|
||||
|
||||
void InitLogging() {}
|
||||
|
||||
void Log(const char* file, int line, LogPriority level, const char* fmt, ...) {
|
||||
void Log(const char* file, const char* function, int line, LogPriority level,
|
||||
const char* fmt, ...) {
|
||||
const char* severities[] = { "ERROR", "WARN", "INFO", "DEBUG", "VERBOSE" };
|
||||
if (level >= sizeof(severities) / sizeof(*severities)) {
|
||||
fprintf(stderr, "[FATAL:%s(%d)] Invalid log priority level: %d\n",
|
||||
@@ -24,7 +25,7 @@ void Log(const char* file, int line, LogPriority level, const char* fmt, ...) {
|
||||
}
|
||||
if (level > g_cutoff) return;
|
||||
|
||||
fprintf(stderr, "[%s:%s(%d)] ", severities[level], file, line);
|
||||
fprintf(stderr, "[%s:%s(%d):%s] ", severities[level], file, line, function);
|
||||
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
|
||||
@@ -84,9 +84,9 @@ void Properties::Init() {
|
||||
oem_crypto_use_secure_buffers_ = use_secure_buffers_;
|
||||
oem_crypto_use_fifo_ = use_fifo_;
|
||||
oem_crypto_use_userspace_buffers_ = use_userspace_buffers_;
|
||||
use_certificates_as_identification_ = true;
|
||||
provisioning_messages_are_binary_ = set_provisioning_messages_to_binary_;
|
||||
security_level_path_backward_compatibility_support_ = false;
|
||||
allow_service_certificate_requests_ = false;
|
||||
session_property_set_.reset(new CdmClientPropertySetMap());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user