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
12namespace net {
13
14// static
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