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_decrypter.h" 6 7#include "net/quic/crypto/aes_128_gcm_12_decrypter.h" 8#include "net/quic/crypto/chacha20_poly1305_decrypter.h" 9#include "net/quic/crypto/crypto_protocol.h" 10#include "net/quic/crypto/null_decrypter.h" 11 12namespace net { 13 14// static 15QuicDecrypter* QuicDecrypter::Create(QuicTag algorithm) { 16 switch (algorithm) { 17 case kAESG: 18 return new Aes128Gcm12Decrypter(); 19 case kCC12: 20 return new ChaCha20Poly1305Decrypter(); 21 case kNULL: 22 return new NullDecrypter(); 23 default: 24 LOG(FATAL) << "Unsupported algorithm: " << algorithm; 25 return NULL; 26 } 27} 28 29} // namespace net 30