Home | History | Annotate | Download | only in crypto
      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_decrypter.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 
     18 ChaCha20Poly1305Decrypter::ChaCha20Poly1305Decrypter()
     19     : AeadBaseDecrypter(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 
     26 ChaCha20Poly1305Decrypter::~ChaCha20Poly1305Decrypter() {}
     27 
     28 // static
     29 bool ChaCha20Poly1305Decrypter::IsSupported() { return true; }
     30 
     31 }  // namespace net
     32