Allow a service certificate to be specified for provisioning
[ Merge of http://go/wvgerrit/48400 ] Client identification information has recently been enabled in provisioning messages. For privacy concerns this information is being encrypted with a default service certificate. Apps need to be able to override the default one to allow for provisioning with third party provisioning services. Bug: 78420508 Test: WV unit, integration tests New WvCdmRequestLicenseTest.ProvisioningTestWithServiceCertificate test GTS MediaDrmTestCases Change-Id: Iee61ad47d33ce011efbea4eb90f7e4b1f032d15f
This commit is contained in:
@@ -85,15 +85,6 @@ CdmEngine::CdmEngine(FileSystem* file_system, const std::string& spoid)
|
||||
|
||||
CdmEngine::~CdmEngine() {}
|
||||
|
||||
CdmResponseType CdmEngine::SetProvisioningServiceCertificate(
|
||||
const std::string& certificate) {
|
||||
return provisioning_service_certificate_.Init(certificate);
|
||||
}
|
||||
|
||||
bool CdmEngine::HasProvisioningServiceCertificate() {
|
||||
return provisioning_service_certificate_.has_certificate();
|
||||
}
|
||||
|
||||
CdmResponseType CdmEngine::OpenSession(
|
||||
const CdmKeySystem& key_system, CdmClientPropertySet* property_set,
|
||||
const CdmSessionId& forced_session_id, WvCdmEventListener* event_listener) {
|
||||
@@ -758,7 +749,8 @@ CdmResponseType CdmEngine::QueryOemCryptoSessionId(
|
||||
*/
|
||||
CdmResponseType CdmEngine::GetProvisioningRequest(
|
||||
CdmCertificateType cert_type, const std::string& cert_authority,
|
||||
CdmProvisioningRequest* request, std::string* default_url) {
|
||||
const std::string& service_certificate, CdmProvisioningRequest* request,
|
||||
std::string* default_url) {
|
||||
LOGI("CdmEngine::GetProvisioningRequest");
|
||||
if (!request) {
|
||||
LOGE("CdmEngine::GetProvisioningRequest: invalid output parameters");
|
||||
@@ -774,8 +766,7 @@ CdmResponseType CdmEngine::GetProvisioningRequest(
|
||||
if (NULL == cert_provisioning_.get()) {
|
||||
cert_provisioning_.reset(
|
||||
new CertificateProvisioning(metrics_.GetCryptoMetrics()));
|
||||
CdmResponseType status = cert_provisioning_->Init(
|
||||
provisioning_service_certificate_.certificate());
|
||||
CdmResponseType status = cert_provisioning_->Init(service_certificate);
|
||||
if (status != NO_ERROR) return status;
|
||||
}
|
||||
CdmResponseType ret = cert_provisioning_->GetProvisioningRequest(
|
||||
@@ -1711,6 +1702,11 @@ void CdmEngine::OnKeyReleaseEvent(const CdmKeySetId& key_set_id) {
|
||||
}
|
||||
}
|
||||
|
||||
CdmResponseType CdmEngine::ValidateServiceCertificate(const std::string& cert) {
|
||||
ServiceCertificate certificate;
|
||||
return certificate.Init(cert);
|
||||
}
|
||||
|
||||
std::string CdmEngine::MapHdcpVersion(
|
||||
CryptoSession::HdcpCapability version) {
|
||||
switch (version) {
|
||||
|
||||
Reference in New Issue
Block a user