| Index: net/quic/core/crypto/quic_crypto_client_config.cc
|
| diff --git a/net/quic/core/crypto/quic_crypto_client_config.cc b/net/quic/core/crypto/quic_crypto_client_config.cc
|
| index 2a80d68bd30e4b0b3bb6e81dd81a1cfbd62aa88a..fcd630ac24ce1949d7cbcaee44ccf81f079980a1 100644
|
| --- a/net/quic/core/crypto/quic_crypto_client_config.cc
|
| +++ b/net/quic/core/crypto/quic_crypto_client_config.cc
|
| @@ -527,13 +527,10 @@ QuicErrorCode QuicCryptoClientConfig::FillClientHello(
|
|
|
| out->SetStringPiece(kCertificateSCTTag, "");
|
|
|
| - const QuicTag* their_aeads;
|
| - const QuicTag* their_key_exchanges;
|
| - size_t num_their_aeads, num_their_key_exchanges;
|
| - if (scfg->GetTaglist(kAEAD, &their_aeads, &num_their_aeads) !=
|
| - QUIC_NO_ERROR ||
|
| - scfg->GetTaglist(kKEXS, &their_key_exchanges, &num_their_key_exchanges) !=
|
| - QUIC_NO_ERROR) {
|
| + QuicTagVector their_aeads;
|
| + QuicTagVector their_key_exchanges;
|
| + if (scfg->GetTaglist(kAEAD, &their_aeads) != QUIC_NO_ERROR ||
|
| + scfg->GetTaglist(kKEXS, &their_key_exchanges) != QUIC_NO_ERROR) {
|
| *error_details = "Missing AEAD or KEXS";
|
| return QUIC_INVALID_CRYPTO_MESSAGE_PARAMETER;
|
| }
|
| @@ -544,10 +541,11 @@ QuicErrorCode QuicCryptoClientConfig::FillClientHello(
|
| // Key exchange: the client does more work than the server, so favor the
|
| // client's preference.
|
| size_t key_exchange_index;
|
| - if (!FindMutualQuicTag(aead, their_aeads, num_their_aeads, &out_params->aead,
|
| - nullptr) ||
|
| - !FindMutualQuicTag(kexs, their_key_exchanges, num_their_key_exchanges,
|
| - &out_params->key_exchange, &key_exchange_index)) {
|
| + if (!FindMutualQuicTag(aead, their_aeads.data(), their_aeads.size(),
|
| + &out_params->aead, nullptr) ||
|
| + !FindMutualQuicTag(kexs, their_key_exchanges.data(),
|
| + their_key_exchanges.size(), &out_params->key_exchange,
|
| + &key_exchange_index)) {
|
| *error_details = "Unsupported AEAD or KEXS";
|
| return QUIC_CRYPTO_NO_SUPPORT;
|
| }
|
| @@ -556,13 +554,13 @@ QuicErrorCode QuicCryptoClientConfig::FillClientHello(
|
|
|
| if (!tb_key_params.empty() &&
|
| server_id.privacy_mode() == PRIVACY_MODE_DISABLED) {
|
| - const QuicTag* their_tbkps;
|
| - size_t num_their_tbkps;
|
| - switch (scfg->GetTaglist(kTBKP, &their_tbkps, &num_their_tbkps)) {
|
| + QuicTagVector their_tbkps;
|
| + switch (scfg->GetTaglist(kTBKP, &their_tbkps)) {
|
| case QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND:
|
| break;
|
| case QUIC_NO_ERROR:
|
| - if (FindMutualQuicTag(tb_key_params, their_tbkps, num_their_tbkps,
|
| + if (FindMutualQuicTag(tb_key_params, their_tbkps.data(),
|
| + their_tbkps.size(),
|
| &out_params->token_binding_key_param, nullptr)) {
|
| out->SetVector(kTBKP,
|
| QuicTagVector{out_params->token_binding_key_param});
|
|
|