Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Side by Side Diff: net/quic/crypto/quic_encrypter.h

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/crypto/quic_decrypter.h ('k') | net/quic/crypto/quic_server_info.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_QUIC_CRYPTO_QUIC_ENCRYPTER_H_ 5 #ifndef NET_QUIC_CRYPTO_QUIC_ENCRYPTER_H_
6 #define NET_QUIC_CRYPTO_QUIC_ENCRYPTER_H_ 6 #define NET_QUIC_CRYPTO_QUIC_ENCRYPTER_H_
7 7
8 #include "net/base/net_export.h" 8 #include "net/base/net_export.h"
9 #include "net/quic/quic_protocol.h" 9 #include "net/quic/quic_protocol.h"
10 10
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 // |GetCiphertextSize(plaintext.size()| bytes long. 46 // |GetCiphertextSize(plaintext.size()| bytes long.
47 virtual bool Encrypt(base::StringPiece nonce, 47 virtual bool Encrypt(base::StringPiece nonce,
48 base::StringPiece associated_data, 48 base::StringPiece associated_data,
49 base::StringPiece plaintext, 49 base::StringPiece plaintext,
50 unsigned char* output) = 0; 50 unsigned char* output) = 0;
51 51
52 // Returns a newly created QuicData object containing the encrypted 52 // Returns a newly created QuicData object containing the encrypted
53 // |plaintext| as well as a MAC over both |plaintext| and |associated_data|, 53 // |plaintext| as well as a MAC over both |plaintext| and |associated_data|,
54 // or nullptr if there is an error. |sequence_number| is appended to the 54 // or nullptr if there is an error. |sequence_number| is appended to the
55 // |nonce_prefix| value provided in SetNoncePrefix() to form the nonce. 55 // |nonce_prefix| value provided in SetNoncePrefix() to form the nonce.
56 virtual QuicData* EncryptPacket(QuicPacketSequenceNumber sequence_number, 56 virtual bool EncryptPacket(QuicPacketSequenceNumber sequence_number,
57 base::StringPiece associated_data, 57 base::StringPiece associated_data,
58 base::StringPiece plaintext) = 0; 58 base::StringPiece plaintext,
59 char* output,
60 size_t* output_length,
61 size_t max_output_length) = 0;
59 62
60 // GetKeySize() and GetNoncePrefixSize() tell the HKDF class how many bytes 63 // GetKeySize() and GetNoncePrefixSize() tell the HKDF class how many bytes
61 // of key material needs to be derived from the master secret. 64 // of key material needs to be derived from the master secret.
62 // NOTE: the sizes returned by GetKeySize() and GetNoncePrefixSize() are 65 // NOTE: the sizes returned by GetKeySize() and GetNoncePrefixSize() are
63 // also correct for the QuicDecrypter of the same algorithm. So only 66 // also correct for the QuicDecrypter of the same algorithm. So only
64 // QuicEncrypter has these two methods. 67 // QuicEncrypter has these two methods.
65 68
66 // Returns the size in bytes of a key for the algorithm. 69 // Returns the size in bytes of a key for the algorithm.
67 virtual size_t GetKeySize() const = 0; 70 virtual size_t GetKeySize() const = 0;
68 // Returns the size in bytes of the fixed initial part of the nonce. 71 // Returns the size in bytes of the fixed initial part of the nonce.
69 virtual size_t GetNoncePrefixSize() const = 0; 72 virtual size_t GetNoncePrefixSize() const = 0;
70 73
71 // Returns the maximum length of plaintext that can be encrypted 74 // Returns the maximum length of plaintext that can be encrypted
72 // to ciphertext no larger than |ciphertext_size|. 75 // to ciphertext no larger than |ciphertext_size|.
73 virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const = 0; 76 virtual size_t GetMaxPlaintextSize(size_t ciphertext_size) const = 0;
74 77
75 // Returns the length of the ciphertext that would be generated by encrypting 78 // Returns the length of the ciphertext that would be generated by encrypting
76 // to plaintext of size |plaintext_size|. 79 // to plaintext of size |plaintext_size|.
77 virtual size_t GetCiphertextSize(size_t plaintext_size) const = 0; 80 virtual size_t GetCiphertextSize(size_t plaintext_size) const = 0;
78 81
79 // For use by unit tests only. 82 // For use by unit tests only.
80 virtual base::StringPiece GetKey() const = 0; 83 virtual base::StringPiece GetKey() const = 0;
81 virtual base::StringPiece GetNoncePrefix() const = 0; 84 virtual base::StringPiece GetNoncePrefix() const = 0;
82 }; 85 };
83 86
84 } // namespace net 87 } // namespace net
85 88
86 #endif // NET_QUIC_CRYPTO_QUIC_ENCRYPTER_H_ 89 #endif // NET_QUIC_CRYPTO_QUIC_ENCRYPTER_H_
OLDNEW
« no previous file with comments | « net/quic/crypto/quic_decrypter.h ('k') | net/quic/crypto/quic_server_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698