OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/cast/common/transport_encryption_handler.h" | 5 #include "media/cast/common/transport_encryption_handler.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "crypto/encryptor.h" | 8 #include "crypto/encryptor.h" |
9 #include "crypto/symmetric_key.h" | 9 #include "crypto/symmetric_key.h" |
10 #include "media/cast/net/cast_transport_defines.h" | 10 #include "media/cast/net/cast_transport_defines.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 } // namespace | 34 } // namespace |
35 | 35 |
36 namespace media { | 36 namespace media { |
37 namespace cast { | 37 namespace cast { |
38 | 38 |
39 TransportEncryptionHandler::TransportEncryptionHandler() | 39 TransportEncryptionHandler::TransportEncryptionHandler() |
40 : key_(), encryptor_(), iv_mask_(), is_activated_(false) {} | 40 : key_(), encryptor_(), iv_mask_(), is_activated_(false) {} |
41 | 41 |
42 TransportEncryptionHandler::~TransportEncryptionHandler() {} | 42 TransportEncryptionHandler::~TransportEncryptionHandler() {} |
43 | 43 |
44 bool TransportEncryptionHandler::Initialize(std::string aes_key, | 44 bool TransportEncryptionHandler::Initialize(const std::string& aes_key, |
45 std::string aes_iv_mask) { | 45 const std::string& aes_iv_mask) { |
46 is_activated_ = false; | 46 is_activated_ = false; |
47 if (aes_iv_mask.size() == kAesKeySize && aes_key.size() == kAesKeySize) { | 47 if (aes_iv_mask.size() == kAesKeySize && aes_key.size() == kAesKeySize) { |
48 iv_mask_ = aes_iv_mask; | 48 iv_mask_ = aes_iv_mask; |
49 key_.reset( | 49 key_.reset( |
50 crypto::SymmetricKey::Import(crypto::SymmetricKey::AES, aes_key)); | 50 crypto::SymmetricKey::Import(crypto::SymmetricKey::AES, aes_key)); |
51 encryptor_.reset(new crypto::Encryptor()); | 51 encryptor_.reset(new crypto::Encryptor()); |
52 encryptor_->Init(key_.get(), crypto::Encryptor::CTR, std::string()); | 52 encryptor_->Init(key_.get(), crypto::Encryptor::CTR, std::string()); |
53 is_activated_ = true; | 53 is_activated_ = true; |
54 } else if (aes_iv_mask.size() != 0 || aes_key.size() != 0) { | 54 } else if (aes_iv_mask.size() != 0 || aes_key.size() != 0) { |
55 DCHECK_EQ(aes_iv_mask.size(), 0u) | 55 DCHECK_EQ(aes_iv_mask.size(), 0u) |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 } | 89 } |
90 if (!encryptor_->Decrypt(ciphertext, plaintext)) { | 90 if (!encryptor_->Decrypt(ciphertext, plaintext)) { |
91 VLOG(1) << "Decryption error"; | 91 VLOG(1) << "Decryption error"; |
92 return false; | 92 return false; |
93 } | 93 } |
94 return true; | 94 return true; |
95 } | 95 } |
96 | 96 |
97 } // namespace cast | 97 } // namespace cast |
98 } // namespace media | 98 } // namespace media |
OLD | NEW |