| 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 |