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

Side by Side Diff: net/http/http_network_transaction.cc

Issue 2337253004: Update Token Binding code to the latest drafts (Closed)
Patch Set: Fix compilation error in unit_tests Created 4 years, 3 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
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 #include "net/http/http_network_transaction.h" 5 #include "net/http/http_network_transaction.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 1011 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 1022
1023 response_.did_use_http_auth = 1023 response_.did_use_http_auth =
1024 request_headers_.HasHeader(HttpRequestHeaders::kAuthorization) || 1024 request_headers_.HasHeader(HttpRequestHeaders::kAuthorization) ||
1025 request_headers_.HasHeader(HttpRequestHeaders::kProxyAuthorization); 1025 request_headers_.HasHeader(HttpRequestHeaders::kProxyAuthorization);
1026 return OK; 1026 return OK;
1027 } 1027 }
1028 1028
1029 int HttpNetworkTransaction::BuildTokenBindingHeader(std::string* out) { 1029 int HttpNetworkTransaction::BuildTokenBindingHeader(std::string* out) {
1030 base::TimeTicks start = base::TimeTicks::Now(); 1030 base::TimeTicks start = base::TimeTicks::Now();
1031 std::vector<uint8_t> signed_ekm; 1031 std::vector<uint8_t> signed_ekm;
1032 int rv = stream_->GetSignedEKMForTokenBinding( 1032 int rv = stream_->GetTokenBindingSignature(provided_token_binding_key_.get(),
1033 provided_token_binding_key_.get(), &signed_ekm); 1033 TokenBindingType::PROVIDED,
1034 &signed_ekm);
1034 if (rv != OK) 1035 if (rv != OK)
1035 return rv; 1036 return rv;
1036 std::string provided_token_binding; 1037 std::string provided_token_binding;
1037 rv = BuildTokenBinding(TokenBindingType::PROVIDED, 1038 rv = BuildTokenBinding(TokenBindingType::PROVIDED,
1038 provided_token_binding_key_.get(), signed_ekm, 1039 provided_token_binding_key_.get(), signed_ekm,
1039 &provided_token_binding); 1040 &provided_token_binding);
1040 if (rv != OK) 1041 if (rv != OK)
1041 return rv; 1042 return rv;
1042 1043
1043 std::vector<base::StringPiece> token_bindings; 1044 std::vector<base::StringPiece> token_bindings;
1044 token_bindings.push_back(provided_token_binding); 1045 token_bindings.push_back(provided_token_binding);
1045 1046
1046 std::string referred_token_binding; 1047 std::string referred_token_binding;
1047 if (referred_token_binding_key_) { 1048 if (referred_token_binding_key_) {
1048 std::vector<uint8_t> referred_signed_ekm; 1049 std::vector<uint8_t> referred_signed_ekm;
1049 int rv = stream_->GetSignedEKMForTokenBinding( 1050 int rv = stream_->GetTokenBindingSignature(
1050 referred_token_binding_key_.get(), &referred_signed_ekm); 1051 referred_token_binding_key_.get(), TokenBindingType::REFERRED,
1052 &referred_signed_ekm);
1051 if (rv != OK) 1053 if (rv != OK)
1052 return rv; 1054 return rv;
1053 rv = BuildTokenBinding(TokenBindingType::REFERRED, 1055 rv = BuildTokenBinding(TokenBindingType::REFERRED,
1054 referred_token_binding_key_.get(), 1056 referred_token_binding_key_.get(),
1055 referred_signed_ekm, &referred_token_binding); 1057 referred_signed_ekm, &referred_token_binding);
1056 if (rv != OK) 1058 if (rv != OK)
1057 return rv; 1059 return rv;
1058 token_bindings.push_back(referred_token_binding); 1060 token_bindings.push_back(referred_token_binding);
1059 } 1061 }
1060 std::string header; 1062 std::string header;
1061 rv = BuildTokenBindingMessageFromTokenBindings(token_bindings, &header); 1063 rv = BuildTokenBindingMessageFromTokenBindings(token_bindings, &header);
1062 if (rv != OK) 1064 if (rv != OK)
1063 return rv; 1065 return rv;
1064 base::Base64UrlEncode(header, base::Base64UrlEncodePolicy::INCLUDE_PADDING, 1066 base::Base64UrlEncode(header, base::Base64UrlEncodePolicy::OMIT_PADDING, out);
1065 out);
1066 base::TimeDelta header_creation_time = base::TimeTicks::Now() - start; 1067 base::TimeDelta header_creation_time = base::TimeTicks::Now() - start;
1067 UMA_HISTOGRAM_CUSTOM_TIMES("Net.TokenBinding.HeaderCreationTime", 1068 UMA_HISTOGRAM_CUSTOM_TIMES("Net.TokenBinding.HeaderCreationTime",
1068 header_creation_time, 1069 header_creation_time,
1069 base::TimeDelta::FromMilliseconds(1), 1070 base::TimeDelta::FromMilliseconds(1),
1070 base::TimeDelta::FromMinutes(1), 50); 1071 base::TimeDelta::FromMinutes(1), 50);
1071 return OK; 1072 return OK;
1072 } 1073 }
1073 1074
1074 int HttpNetworkTransaction::DoInitRequestBody() { 1075 int HttpNetworkTransaction::DoInitRequestBody() {
1075 next_state_ = STATE_INIT_REQUEST_BODY_COMPLETE; 1076 next_state_ = STATE_INIT_REQUEST_BODY_COMPLETE;
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
1636 DCHECK(stream_request_); 1637 DCHECK(stream_request_);
1637 1638
1638 // Since the transaction can restart with auth credentials, it may create a 1639 // Since the transaction can restart with auth credentials, it may create a
1639 // stream more than once. Accumulate all of the connection attempts across 1640 // stream more than once. Accumulate all of the connection attempts across
1640 // those streams by appending them to the vector: 1641 // those streams by appending them to the vector:
1641 for (const auto& attempt : stream_request_->connection_attempts()) 1642 for (const auto& attempt : stream_request_->connection_attempts())
1642 connection_attempts_.push_back(attempt); 1643 connection_attempts_.push_back(attempt);
1643 } 1644 }
1644 1645
1645 } // namespace net 1646 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698