summaryrefslogtreecommitdiffstats
path: root/chromium/net/quic/crypto/aes_128_gcm_12_decrypter.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/quic/crypto/aes_128_gcm_12_decrypter.h')
-rw-r--r--chromium/net/quic/crypto/aes_128_gcm_12_decrypter.h50
1 files changed, 11 insertions, 39 deletions
diff --git a/chromium/net/quic/crypto/aes_128_gcm_12_decrypter.h b/chromium/net/quic/crypto/aes_128_gcm_12_decrypter.h
index aba610f25df..0511c8b7268 100644
--- a/chromium/net/quic/crypto/aes_128_gcm_12_decrypter.h
+++ b/chromium/net/quic/crypto/aes_128_gcm_12_decrypter.h
@@ -5,28 +5,17 @@
#ifndef NET_QUIC_CRYPTO_AES_128_GCM_12_DECRYPTER_H_
#define NET_QUIC_CRYPTO_AES_128_GCM_12_DECRYPTER_H_
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "net/quic/crypto/quic_decrypter.h"
-
-#if defined(USE_OPENSSL)
-#include "net/quic/crypto/scoped_evp_cipher_ctx.h"
-#endif
+#include "net/quic/crypto/aead_base_decrypter.h"
namespace net {
-namespace test {
-class Aes128Gcm12DecrypterPeer;
-} // namespace test
-
// An Aes128Gcm12Decrypter is a QuicDecrypter that implements the
// AEAD_AES_128_GCM_12 algorithm specified in RFC 5282. Create an instance by
// calling QuicDecrypter::Create(kAESG).
//
// It uses an authentication tag of 12 bytes (96 bits). The fixed prefix
// of the nonce is four bytes.
-class NET_EXPORT_PRIVATE Aes128Gcm12Decrypter : public QuicDecrypter {
+class NET_EXPORT_PRIVATE Aes128Gcm12Decrypter : public AeadBaseDecrypter {
public:
enum {
// Authentication tags are truncated to 96 bits.
@@ -36,34 +25,17 @@ class NET_EXPORT_PRIVATE Aes128Gcm12Decrypter : public QuicDecrypter {
Aes128Gcm12Decrypter();
virtual ~Aes128Gcm12Decrypter();
- // Returns true if the underlying crypto library supports AES GCM.
- static bool IsSupported();
-
- // QuicDecrypter implementation
- virtual bool SetKey(base::StringPiece key) OVERRIDE;
- virtual bool SetNoncePrefix(base::StringPiece nonce_prefix) OVERRIDE;
- virtual bool Decrypt(base::StringPiece nonce,
- base::StringPiece associated_data,
- base::StringPiece ciphertext,
- unsigned char* output,
- size_t* output_length) OVERRIDE;
- virtual QuicData* DecryptPacket(QuicPacketSequenceNumber sequence_number,
- base::StringPiece associated_data,
- base::StringPiece ciphertext) OVERRIDE;
- virtual base::StringPiece GetKey() const OVERRIDE;
- virtual base::StringPiece GetNoncePrefix() const OVERRIDE;
+#if !defined(USE_OPENSSL)
+ protected:
+ // AeadBaseDecrypter methods:
+ virtual void FillAeadParams(base::StringPiece nonce,
+ base::StringPiece associated_data,
+ size_t auth_tag_size,
+ AeadParams* aead_params) const OVERRIDE;
+#endif
private:
- // The 128-bit AES key.
- unsigned char key_[16];
- // The nonce prefix.
- unsigned char nonce_prefix_[4];
-
-#if defined(USE_OPENSSL)
- // TODO(rtenneti): when Chromium's version of OpenSSL has EVP_AEAD_CTX, merge
- // internal CL 53267501.
- ScopedEVPCipherCtx ctx_;
-#endif
+ DISALLOW_COPY_AND_ASSIGN(Aes128Gcm12Decrypter);
};
} // namespace net