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
9namespace net {
10
11namespace {
12
13const size_t kKeySize = 32;
14const size_t kNoncePrefixSize = 0;
15
16}  // namespace
17
18ChaCha20Poly1305Encrypter::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
26ChaCha20Poly1305Encrypter::~ChaCha20Poly1305Encrypter() {}
27
28// static
29bool ChaCha20Poly1305Encrypter::IsSupported() { return true; }
30
31}  // namespace net
32