Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(331)

Unified Diff: media/crypto/aes_decryptor.cc

Issue 10822013: Code clean-up in AesDecryptor and test. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove "using" Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/crypto/aes_decryptor.h ('k') | media/crypto/aes_decryptor_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/crypto/aes_decryptor.cc
diff --git a/media/crypto/aes_decryptor.cc b/media/crypto/aes_decryptor.cc
index 552197bda9304bb9c3a999e98d6483c744cdbace..e5858003f21b6fd38c3212568991f6e1336bc2fd 100644
--- a/media/crypto/aes_decryptor.cc
+++ b/media/crypto/aes_decryptor.cc
@@ -4,6 +4,8 @@
#include "media/crypto/aes_decryptor.h"
+#include <vector>
+
#include "base/logging.h"
#include "base/stl_util.h"
#include "base/string_number_conversions.h"
@@ -84,7 +86,7 @@ static bool CheckData(const DecoderBuffer& input,
enum ClearBytesBufferSel {
kSrcContainsClearBytes,
- kDstContainsClearBytes,
+ kDstContainsClearBytes
};
static void CopySubsamples(const std::vector<SubsampleEntry>& subsamples,
@@ -250,16 +252,7 @@ void AesDecryptor::AddKey(const std::string& key_system,
return;
}
- {
- base::AutoLock auto_lock(key_map_lock_);
- KeyMap::iterator found = key_map_.find(key_id_string);
- if (found != key_map_.end()) {
- delete found->second;
- key_map_.erase(found);
- }
- key_map_[key_id_string] = decryption_key.release();
- }
-
+ SetKey(key_id_string, decryption_key.Pass());
client_->KeyAdded(key_system, session_id);
}
@@ -272,17 +265,10 @@ void AesDecryptor::Decrypt(const scoped_refptr<DecoderBuffer>& encrypted,
CHECK(encrypted->GetDecryptConfig());
const std::string& key_id = encrypted->GetDecryptConfig()->key_id();
- DecryptionKey* key = NULL;
- {
- base::AutoLock auto_lock(key_map_lock_);
- KeyMap::const_iterator found = key_map_.find(key_id);
- if (found != key_map_.end())
- key = found->second;
- }
-
+ DecryptionKey* key = GetKey(key_id);
if (!key) {
- // TODO(fgalligan): Fire a need_key event here and add a test.
- DVLOG(1) << "Could not find a matching key for given key ID.";
+ // TODO(xhwang): Fire a need_key event here and add a test.
+ DVLOG(1) << "Could not find a matching key for the given key ID.";
decrypt_cb.Run(kError, NULL);
return;
}
@@ -317,8 +303,28 @@ void AesDecryptor::Decrypt(const scoped_refptr<DecoderBuffer>& encrypted,
decrypt_cb.Run(kSuccess, decrypted);
}
-AesDecryptor::DecryptionKey::DecryptionKey(
- const std::string& secret)
+void AesDecryptor::SetKey(const std::string& key_id,
+ scoped_ptr<DecryptionKey> decryption_key) {
+ base::AutoLock auto_lock(key_map_lock_);
+ KeyMap::iterator found = key_map_.find(key_id);
+ if (found != key_map_.end()) {
+ delete found->second;
+ key_map_.erase(found);
+ }
+ key_map_[key_id] = decryption_key.release();
+}
+
+AesDecryptor::DecryptionKey* AesDecryptor::GetKey(
+ const std::string& key_id) const {
+ base::AutoLock auto_lock(key_map_lock_);
+ KeyMap::const_iterator found = key_map_.find(key_id);
+ if (found == key_map_.end())
+ return NULL;
+
+ return found->second;
+}
+
+AesDecryptor::DecryptionKey::DecryptionKey(const std::string& secret)
: secret_(secret) {
}
@@ -326,28 +332,25 @@ AesDecryptor::DecryptionKey::~DecryptionKey() {}
bool AesDecryptor::DecryptionKey::Init() {
CHECK(!secret_.empty());
- decryption_key_.reset(
- crypto::SymmetricKey::Import(crypto::SymmetricKey::AES, secret_));
- if (!decryption_key_.get()) {
+ decryption_key_.reset(crypto::SymmetricKey::Import(
+ crypto::SymmetricKey::AES, secret_));
+ if (!decryption_key_.get())
return false;
- }
std::string raw_key = DeriveKey(secret_,
kWebmEncryptionSeed,
secret_.length());
- if (raw_key.empty()) {
+ if (raw_key.empty())
return false;
- }
- webm_decryption_key_.reset(
- crypto::SymmetricKey::Import(crypto::SymmetricKey::AES, raw_key));
- if (!webm_decryption_key_.get()) {
+
+ webm_decryption_key_.reset(crypto::SymmetricKey::Import(
+ crypto::SymmetricKey::AES, raw_key));
+ if (!webm_decryption_key_.get())
return false;
- }
hmac_key_ = DeriveKey(secret_, kWebmHmacSeed, kWebmSha1DigestSize);
- if (hmac_key_.empty()) {
+ if (hmac_key_.empty())
return false;
- }
return true;
}
« no previous file with comments | « media/crypto/aes_decryptor.h ('k') | media/crypto/aes_decryptor_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698