• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #include "net/quic/crypto/chacha20_poly1305_encrypter.h"
6 
7 #include <openssl/evp.h>
8 
9 namespace net {
10 
11 namespace {
12 
13 const size_t kKeySize = 32;
14 const size_t kNoncePrefixSize = 0;
15 
16 }  // namespace
17 
ChaCha20Poly1305Encrypter()18 ChaCha20Poly1305Encrypter::ChaCha20Poly1305Encrypter()
19     : AeadBaseEncrypter(EVP_aead_chacha20_poly1305(), kKeySize, kAuthTagSize,
20                         kNoncePrefixSize) {
21   COMPILE_ASSERT(kKeySize <= kMaxKeySize, key_size_too_big);
22   COMPILE_ASSERT(kNoncePrefixSize <= kMaxNoncePrefixSize,
23                  nonce_prefix_size_too_big);
24 }
25 
~ChaCha20Poly1305Encrypter()26 ChaCha20Poly1305Encrypter::~ChaCha20Poly1305Encrypter() {}
27 
28 // static
IsSupported()29 bool ChaCha20Poly1305Encrypter::IsSupported() { return true; }
30 
31 }  // namespace net
32