1 // Copyright (c) 2013 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/aes_128_gcm_12_decrypter.h"
7 #include <openssl/evp.h>
8 #include <openssl/tls1.h>
14 const size_t kKeySize
= 16;
15 const size_t kNoncePrefixSize
= 4;
19 Aes128Gcm12Decrypter::Aes128Gcm12Decrypter()
20 : AeadBaseDecrypter(EVP_aead_aes_128_gcm(), kKeySize
, kAuthTagSize
,
22 static_assert(kKeySize
<= kMaxKeySize
, "key size too big");
23 static_assert(kNoncePrefixSize
<= kMaxNoncePrefixSize
,
24 "nonce prefix size too big");
27 Aes128Gcm12Decrypter::~Aes128Gcm12Decrypter() {}
29 const char* Aes128Gcm12Decrypter::cipher_name() const {
30 return TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256
;
33 uint32
Aes128Gcm12Decrypter::cipher_id() const {
34 // This OpenSSL macro has the value 0x0300C02F. The two most significant bytes
35 // 0x0300 are OpenSSL specific and are NOT part of the TLS CipherSuite value
36 // for TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.
37 return TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256
;