OLD | NEW |
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 #include "net/quic/quic_connection.h" | 5 #include "net/quic/quic_connection.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "net/base/net_errors.h" | 10 #include "net/base/net_errors.h" |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 // have the same value and then removes them. | 137 // have the same value and then removes them. |
138 class TaggingDecrypter : public QuicDecrypter { | 138 class TaggingDecrypter : public QuicDecrypter { |
139 public: | 139 public: |
140 ~TaggingDecrypter() override {} | 140 ~TaggingDecrypter() override {} |
141 | 141 |
142 // QuicDecrypter interface | 142 // QuicDecrypter interface |
143 bool SetKey(StringPiece key) override { return true; } | 143 bool SetKey(StringPiece key) override { return true; } |
144 | 144 |
145 bool SetNoncePrefix(StringPiece nonce_prefix) override { return true; } | 145 bool SetNoncePrefix(StringPiece nonce_prefix) override { return true; } |
146 | 146 |
147 bool Decrypt(StringPiece nonce, | |
148 StringPiece associated_data, | |
149 StringPiece ciphertext, | |
150 unsigned char* output, | |
151 size_t* output_length) override { | |
152 if (ciphertext.size() < kTagSize) { | |
153 return false; | |
154 } | |
155 if (!CheckTag(ciphertext, GetTag(ciphertext))) { | |
156 return false; | |
157 } | |
158 *output_length = ciphertext.size() - kTagSize; | |
159 memcpy(output, ciphertext.data(), *output_length); | |
160 return true; | |
161 } | |
162 | |
163 QuicData* DecryptPacket(QuicPacketSequenceNumber sequence_number, | 147 QuicData* DecryptPacket(QuicPacketSequenceNumber sequence_number, |
164 StringPiece associated_data, | 148 StringPiece associated_data, |
165 StringPiece ciphertext) override { | 149 StringPiece ciphertext) override { |
166 if (ciphertext.size() < kTagSize) { | 150 if (ciphertext.size() < kTagSize) { |
167 return nullptr; | 151 return nullptr; |
168 } | 152 } |
169 if (!CheckTag(ciphertext, GetTag(ciphertext))) { | 153 if (!CheckTag(ciphertext, GetTag(ciphertext))) { |
170 return nullptr; | 154 return nullptr; |
171 } | 155 } |
172 const size_t len = ciphertext.size() - kTagSize; | 156 const size_t len = ciphertext.size() - kTagSize; |
(...skipping 4265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4438 // Regression test for b/18594622 | 4422 // Regression test for b/18594622 |
4439 scoped_refptr<MockAckNotifierDelegate> delegate(new MockAckNotifierDelegate); | 4423 scoped_refptr<MockAckNotifierDelegate> delegate(new MockAckNotifierDelegate); |
4440 EXPECT_DFATAL( | 4424 EXPECT_DFATAL( |
4441 connection_.SendStreamDataWithString(3, "", 0, !kFin, delegate.get()), | 4425 connection_.SendStreamDataWithString(3, "", 0, !kFin, delegate.get()), |
4442 "Attempt to send empty stream frame"); | 4426 "Attempt to send empty stream frame"); |
4443 } | 4427 } |
4444 | 4428 |
4445 } // namespace | 4429 } // namespace |
4446 } // namespace test | 4430 } // namespace test |
4447 } // namespace net | 4431 } // namespace net |
OLD | NEW |