1 // Copyright (c) 2017 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/third_party/quiche/src/quic/core/crypto/aes_128_gcm_12_decrypter.h"
6 
7 #include "third_party/boringssl/src/include/openssl/aead.h"
8 #include "third_party/boringssl/src/include/openssl/tls1.h"
9 
10 namespace quic {
11 
12 namespace {
13 
14 const size_t kKeySize = 16;
15 const size_t kNonceSize = 12;
16 
17 }  // namespace
18 
Aes128Gcm12Decrypter()19 Aes128Gcm12Decrypter::Aes128Gcm12Decrypter()
20     : AesBaseDecrypter(EVP_aead_aes_128_gcm,
21                        kKeySize,
22                        kAuthTagSize,
23                        kNonceSize,
24                        /* use_ietf_nonce_construction */ false) {
25   static_assert(kKeySize <= kMaxKeySize, "key size too big");
26   static_assert(kNonceSize <= kMaxNonceSize, "nonce size too big");
27 }
28 
~Aes128Gcm12Decrypter()29 Aes128Gcm12Decrypter::~Aes128Gcm12Decrypter() {}
30 
cipher_id() const31 uint32_t Aes128Gcm12Decrypter::cipher_id() const {
32   return TLS1_CK_AES_128_GCM_SHA256;
33 }
34 
35 }  // namespace quic
36