Add Chacha20Poly1305 to AEAD Algorithms
Bug: b:153649905
Change-Id: I3eaca93d0ae7b0d0cd5c502e8536977fb66ca979
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2363351
Reviewed-by: Adam Langley <agl@chromium.org>
Commit-Queue: Leonid Baraz <lbaraz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#799275}
GitOrigin-RevId: 07c057709a53d1cc021688027e605ee9ebec85b9
diff --git a/aead.cc b/aead.cc
index 012752b..6ba5cec 100644
--- a/aead.cc
+++ b/aead.cc
@@ -27,6 +27,9 @@
case AES_256_GCM_SIV:
aead_ = EVP_aead_aes_256_gcm_siv();
break;
+ case CHACHA20_POLY1305:
+ aead_ = EVP_aead_chacha20_poly1305();
+ break;
}
}
diff --git a/aead.h b/aead.h
index 7a855fd..64a4f46 100644
--- a/aead.h
+++ b/aead.h
@@ -26,7 +26,12 @@
// Prefer the latter in new code.
class CRYPTO_EXPORT Aead {
public:
- enum AeadAlgorithm { AES_128_CTR_HMAC_SHA256, AES_256_GCM, AES_256_GCM_SIV };
+ enum AeadAlgorithm {
+ AES_128_CTR_HMAC_SHA256,
+ AES_256_GCM,
+ AES_256_GCM_SIV,
+ CHACHA20_POLY1305
+ };
explicit Aead(AeadAlgorithm algorithm);
Aead(const Aead&) = delete;
diff --git a/aead_unittest.cc b/aead_unittest.cc
index 00d56a1..8f3ae02 100644
--- a/aead_unittest.cc
+++ b/aead_unittest.cc
@@ -11,8 +11,10 @@
namespace {
const crypto::Aead::AeadAlgorithm kAllAlgorithms[]{
- crypto::Aead::AES_128_CTR_HMAC_SHA256, crypto::Aead::AES_256_GCM,
+ crypto::Aead::AES_128_CTR_HMAC_SHA256,
+ crypto::Aead::AES_256_GCM,
crypto::Aead::AES_256_GCM_SIV,
+ crypto::Aead::CHACHA20_POLY1305,
};
class AeadTest : public testing::TestWithParam<crypto::Aead::AeadAlgorithm> {};