Use unique_ptr in oemcrypto ref

Merge from Widevine repo of http://go/wvgerrit/95945

The reference oemcrypto and testbed still use old style pointers, even
though we now require a more modern C++ compiler. Updated a few places
where smart pointer would be appropriate.

Bug: 141393616
Test: Ran unit tests
Change-Id: I8b1e155bce241075928e373478d6f8e1001233f9
This commit is contained in:
Cong Lin
2020-03-25 17:26:32 -07:00
committed by Jeff Tinker
parent d035d76ed6
commit a53a6bf355
4 changed files with 22 additions and 31 deletions

View File

@@ -210,14 +210,6 @@ SessionContext::SessionContext(CryptoEngine* ce, SessionId sid,
}
SessionContext::~SessionContext() {
if (usage_entry_) {
delete usage_entry_;
usage_entry_ = nullptr;
}
if (session_keys_) {
delete session_keys_;
session_keys_ = nullptr;
}
}
// Internal utility function to derive key using CMAC-128
@@ -777,11 +769,11 @@ OEMCryptoResult SessionContext::LoadKeysNoSignature(
if (session_keys_ == nullptr) {
switch (license_type) {
case OEMCrypto_ContentLicense:
session_keys_ = new ContentKeysContext();
session_keys_.reset(new ContentKeysContext());
break;
case OEMCrypto_EntitlementLicense:
session_keys_ = new EntitlementKeysContext();
session_keys_.reset(new EntitlementKeysContext());
break;
default:
@@ -915,7 +907,8 @@ OEMCryptoResult SessionContext::LoadEntitledContentKeys(
if (!key_array) {
return OEMCrypto_ERROR_UNKNOWN_FAILURE;
}
if (!session_keys_ || session_keys_->type() != OEMCrypto_EntitlementLicense) {
if (session_keys_ == nullptr ||
session_keys_->type() != OEMCrypto_EntitlementLicense) {
return OEMCrypto_ERROR_INVALID_CONTEXT;
}
for (size_t i = 0; i < key_array_length; ++i) {
@@ -1494,8 +1487,8 @@ OEMCryptoResult SessionContext::UpdateUsageEntry(uint8_t* header_buffer,
return OEMCrypto_ERROR_INVALID_CONTEXT;
}
return ce_->usage_table().UpdateUsageEntry(
this, usage_entry_, header_buffer, header_buffer_length, entry_buffer,
entry_buffer_length, &clock_values_);
this, usage_entry_.get(), header_buffer, header_buffer_length,
entry_buffer, entry_buffer_length, &clock_values_);
}
OEMCryptoResult SessionContext::DeactivateUsageEntry(
@@ -1514,7 +1507,7 @@ OEMCryptoResult SessionContext::ReportUsage(const std::vector<uint8_t>& pst,
OEMCryptoResult SessionContext::MoveEntry(uint32_t new_index) {
if (!usage_entry_) return OEMCrypto_ERROR_INVALID_CONTEXT;
return ce_->usage_table().MoveEntry(usage_entry_, new_index);
return ce_->usage_table().MoveEntry(usage_entry_.get(), new_index);
}
// Internal utility function to decrypt the message