Added state to CertificateProvisioning.
[ Cherry-pick of v19 http://go/wvgerrit/219310 ] [ Merge of http://go/wvgerrit/219453 ] To enable the CDM to determine between OEM vs DRM responses, a state variable was needed in CertificateProvisioning. Previously, the presence/absence of the OEM certificate in the file system was used; however, if two apps (or single app with multiple origins) attempts provisioning simultaneously, the later response would trigger unexpected failures. The main functional changes this provides is that a more informative error will be returned to the app if they provide a provisioning response without ever creating a provisioning request; and that if multiple clients attempted first-stage provisioning simultaneously, fewer errors will occur. Bug: 391469176 Test: run_prov40_tests Change-Id: I51a118ce73aa809bad6ecee640139a92d8518575
This commit is contained in:
@@ -413,6 +413,9 @@ TEST_P(CertificateProvisioningTest, ProvisioningRequestFailsEmptySignature) {
|
||||
TEST_P(CertificateProvisioningTest,
|
||||
ProvisioningResponseFailsWithEmptyResponse) {
|
||||
certificate_provisioning_->Init("");
|
||||
// Must set state if not generating request.
|
||||
certificate_provisioning_->SetStateForTesting(
|
||||
CertificateProvisioning::kDrmRequestSent);
|
||||
|
||||
MockFileSystem file_system;
|
||||
std::string certificate;
|
||||
@@ -425,6 +428,9 @@ TEST_P(CertificateProvisioningTest,
|
||||
TEST_P(CertificateProvisioningTest,
|
||||
ProvisioningResponseFailsIfDeviceIsRevoked) {
|
||||
certificate_provisioning_->Init("");
|
||||
// Must set state if not generating request.
|
||||
certificate_provisioning_->SetStateForTesting(
|
||||
CertificateProvisioning::kDrmRequestSent);
|
||||
|
||||
MockFileSystem file_system;
|
||||
std::string response_certificate;
|
||||
@@ -445,6 +451,10 @@ TEST_P(CertificateProvisioningTest,
|
||||
|
||||
TEST_P(CertificateProvisioningTest, ProvisioningResponseSuccess) {
|
||||
certificate_provisioning_->Init("");
|
||||
// Must set state if not generating request.
|
||||
certificate_provisioning_->SetStateForTesting(
|
||||
CertificateProvisioning::kDrmRequestSent);
|
||||
|
||||
std::string expected_certificate;
|
||||
std::string response;
|
||||
ASSERT_TRUE(MakeSignedDrmCertificate(kFakePublicKey, kSerialNumber, kSystemId,
|
||||
|
||||
Reference in New Issue
Block a user