Index: crypto/aead_openssl.cc |
diff --git a/crypto/aead_openssl.cc b/crypto/aead_openssl.cc |
deleted file mode 100644 |
index 8ad05dca1660ac5de60f67a1ad3b1384423ea16b..0000000000000000000000000000000000000000 |
--- a/crypto/aead_openssl.cc |
+++ /dev/null |
@@ -1,123 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "crypto/aead_openssl.h" |
- |
-#include <openssl/aes.h> |
-#include <openssl/evp.h> |
-#include <stddef.h> |
-#include <stdint.h> |
-#include <string> |
- |
-#include "base/strings/string_util.h" |
-#include "crypto/openssl_util.h" |
- |
-namespace crypto { |
- |
-Aead::Aead(AeadAlgorithm algorithm) : key_(nullptr) { |
- EnsureOpenSSLInit(); |
- switch (algorithm) { |
- case AES_128_CTR_HMAC_SHA256: |
- aead_ = EVP_aead_aes_128_ctr_hmac_sha256(); |
- break; |
- } |
-} |
- |
-Aead::~Aead() { |
-} |
- |
-void Aead::Init(const std::string* key) { |
- DCHECK(!key_); |
- DCHECK_EQ(KeyLength(), key->size()); |
- key_ = key; |
-} |
- |
-bool Aead::Seal(const base::StringPiece& plaintext, |
- const base::StringPiece& nonce, |
- const base::StringPiece& additional_data, |
- std::string* ciphertext) const { |
- DCHECK(key_); |
- DCHECK_EQ(NonceLength(), nonce.size()); |
- EVP_AEAD_CTX ctx; |
- |
- if (!EVP_AEAD_CTX_init(&ctx, aead_, |
- reinterpret_cast<const uint8_t*>(key_->data()), |
- key_->size(), EVP_AEAD_DEFAULT_TAG_LENGTH, nullptr)) { |
- return false; |
- } |
- |
- std::string result; |
- const size_t max_output_length = |
- EVP_AEAD_max_overhead(aead_) + plaintext.size(); |
- size_t output_length; |
- uint8_t* out_ptr = reinterpret_cast<uint8_t*>( |
- base::WriteInto(&result, max_output_length + 1)); |
- |
- if (!EVP_AEAD_CTX_seal( |
- &ctx, out_ptr, &output_length, max_output_length, |
- reinterpret_cast<const uint8_t*>(nonce.data()), nonce.size(), |
- reinterpret_cast<const uint8_t*>(plaintext.data()), plaintext.size(), |
- reinterpret_cast<const uint8_t*>(additional_data.data()), |
- additional_data.size())) { |
- EVP_AEAD_CTX_cleanup(&ctx); |
- return false; |
- } |
- |
- DCHECK_LE(output_length, max_output_length); |
- result.resize(output_length); |
- |
- ciphertext->swap(result); |
- EVP_AEAD_CTX_cleanup(&ctx); |
- |
- return true; |
-} |
- |
-bool Aead::Open(const base::StringPiece& ciphertext, |
- const base::StringPiece& nonce, |
- const base::StringPiece& additional_data, |
- std::string* plaintext) const { |
- DCHECK(key_); |
- EVP_AEAD_CTX ctx; |
- |
- if (!EVP_AEAD_CTX_init(&ctx, aead_, |
- reinterpret_cast<const uint8_t*>(key_->data()), |
- key_->size(), EVP_AEAD_DEFAULT_TAG_LENGTH, nullptr)) { |
- return false; |
- } |
- |
- std::string result; |
- const size_t max_output_length = ciphertext.size(); |
- size_t output_length; |
- uint8_t* out_ptr = reinterpret_cast<uint8_t*>( |
- base::WriteInto(&result, max_output_length + 1)); |
- |
- if (!EVP_AEAD_CTX_open( |
- &ctx, out_ptr, &output_length, max_output_length, |
- reinterpret_cast<const uint8_t*>(nonce.data()), nonce.size(), |
- reinterpret_cast<const uint8_t*>(ciphertext.data()), |
- ciphertext.size(), |
- reinterpret_cast<const uint8_t*>(additional_data.data()), |
- additional_data.size())) { |
- EVP_AEAD_CTX_cleanup(&ctx); |
- return false; |
- } |
- |
- DCHECK_LE(output_length, max_output_length); |
- result.resize(output_length); |
- |
- plaintext->swap(result); |
- EVP_AEAD_CTX_cleanup(&ctx); |
- |
- return true; |
-} |
- |
-size_t Aead::KeyLength() const { |
- return EVP_AEAD_key_length(aead_); |
-} |
- |
-size_t Aead::NonceLength() const { |
- return EVP_AEAD_nonce_length(aead_); |
-} |
- |
-} // namespace |