12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "net/quic/crypto/aes_128_gcm_12_encrypter.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <openssl/evp.h> 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace net { 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const size_t kKeySize = 16; 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const size_t kNoncePrefixSize = 4; 150f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)Aes128Gcm12Encrypter::Aes128Gcm12Encrypter() 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) : AeadBaseEncrypter(EVP_aead_aes_128_gcm(), kKeySize, kAuthTagSize, 20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) kNoncePrefixSize) { 21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) COMPILE_ASSERT(kKeySize <= kMaxKeySize, key_size_too_big); 22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) COMPILE_ASSERT(kNoncePrefixSize <= kMaxNoncePrefixSize, 23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) nonce_prefix_size_too_big); 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)Aes128Gcm12Encrypter::~Aes128Gcm12Encrypter() {} 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace net 29