summaryrefslogtreecommitdiffstats
path: root/net/quic/crypto/quic_encrypter.h
diff options
context:
space:
mode:
authorrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-17 18:09:03 +0000
committerrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-17 18:09:03 +0000
commitaa60c729140b0b1132763a2e75ac546f3c147a4e (patch)
tree5eaace1c2e63e7e25fc4b630f6e6b4bd941d733c /net/quic/crypto/quic_encrypter.h
parentf82e2be692783f8b627ad38d3c0e26c74de8dbb7 (diff)
downloadchromium_src-aa60c729140b0b1132763a2e75ac546f3c147a4e.zip
chromium_src-aa60c729140b0b1132763a2e75ac546f3c147a4e.tar.gz
chromium_src-aa60c729140b0b1132763a2e75ac546f3c147a4e.tar.bz2
Add QuicFramer and friends.
Also fixes an unsigned constant problem from 162259. Revert 162263 - Revert 162259 - Add QuicFramer and friends. Review URL: https://chromiumcodereview.appspot.com/11188017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162462 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/quic/crypto/quic_encrypter.h')
-rw-r--r--net/quic/crypto/quic_encrypter.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/net/quic/crypto/quic_encrypter.h b/net/quic/crypto/quic_encrypter.h
new file mode 100644
index 0000000..f077c1f
--- /dev/null
+++ b/net/quic/crypto/quic_encrypter.h
@@ -0,0 +1,38 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_QUIC_CRYPTO_QUIC_ENCRYPTER_H_
+#define NET_QUIC_CRYPTO_QUIC_ENCRYPTER_H_
+
+#include "net/base/net_export.h"
+#include "net/quic/crypto/crypto_protocol.h"
+#include "net/quic/quic_protocol.h"
+
+namespace net {
+
+class NET_EXPORT_PRIVATE QuicEncrypter {
+ public:
+ virtual ~QuicEncrypter() {}
+
+ static QuicEncrypter* Create(CryptoTag algorithm);
+
+ // Returns a newly created QuicData object containing the encrypted
+ // |plaintext| as well as a MAC over both |plaintext| and |associated_data|,
+ // or NULL if there is an error.
+ virtual QuicData* Encrypt(base::StringPiece associated_data,
+ base::StringPiece plaintext) = 0;
+
+ // Returns the maximum length of plaintext that can be encrypted
+ // to ciphertext no larger than |ciphertext_size|.
+ virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) = 0;
+
+ // Returns the length of the ciphertext that would be generated by encrypting
+ // to plaintext of size |plaintext_size|.
+ virtual size_t GetCiphertextSize(size_t plaintext_size) = 0;
+
+};
+
+} // namespace net
+
+#endif // NET_QUIC_CRYPTO_QUIC_ENCRYPTER_H_