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
3 // found in the LICENSE file.
5 #include "net/quic/crypto/chacha20_poly1305_decrypter.h"
7 #include <openssl/evp.h>
8 #include <openssl/tls1.h>
14 const size_t kKeySize
= 32;
15 const size_t kNoncePrefixSize
= 0;
19 ChaCha20Poly1305Decrypter::ChaCha20Poly1305Decrypter()
20 : AeadBaseDecrypter(EVP_aead_chacha20_poly1305(), kKeySize
, kAuthTagSize
,
22 static_assert(kKeySize
<= kMaxKeySize
, "key size too big");
23 static_assert(kNoncePrefixSize
<= kMaxNoncePrefixSize
,
24 "nonce prefix size too big");
27 ChaCha20Poly1305Decrypter::~ChaCha20Poly1305Decrypter() {}
30 bool ChaCha20Poly1305Decrypter::IsSupported() { return true; }
32 const char* ChaCha20Poly1305Decrypter::cipher_name() const {
33 return TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305
;
36 uint32
ChaCha20Poly1305Decrypter::cipher_id() const {
37 return TLS1_CK_ECDHE_RSA_CHACHA20_POLY1305
;