| 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 |