1 // Copyright (c) 2012 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/quic_encrypter.h" 6 7 #include "net/quic/crypto/aes_128_gcm_12_encrypter.h" 8 #include "net/quic/crypto/chacha20_poly1305_encrypter.h" 9 #include "net/quic/crypto/crypto_protocol.h" 10 #include "net/quic/crypto/null_encrypter.h" 11 12 namespace net { 13 14 // static Create(QuicTag algorithm)15QuicEncrypter* QuicEncrypter::Create(QuicTag algorithm) { 16 switch (algorithm) { 17 case kAESG: 18 return new Aes128Gcm12Encrypter(); 19 case kCC12: 20 return new ChaCha20Poly1305Encrypter(); 21 case kNULL: 22 return new NullEncrypter(); 23 default: 24 LOG(FATAL) << "Unsupported algorithm: " << algorithm; 25 return NULL; 26 } 27 } 28 29 } // namespace net 30