Home | History | Annotate | Download | only in crypto
      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
     15 QuicEncrypter* 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