Remove calls to now unnecessary MakeSpan/MakeConstSpan
CTAD takes care of all of these.
Bug: 42290600
Change-Id: I191c5710f402835d1b50250225edd4e535c7580c
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/75208
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/crypto/cipher_extra/cipher_test.cc b/crypto/cipher_extra/cipher_test.cc
index cb0b16b..b86803a 100644
--- a/crypto/cipher_extra/cipher_test.cc
+++ b/crypto/cipher_extra/cipher_test.cc
@@ -215,7 +215,7 @@
std::vector<uint8_t> result(max_out);
if (in_place) {
std::copy(in.begin(), in.end(), result.begin());
- in = bssl::MakeConstSpan(result).first(in.size());
+ in = bssl::Span(result).first(in.size());
}
size_t total = 0;
@@ -315,7 +315,7 @@
} else {
result.resize(expected.size());
}
- bssl::Span<uint8_t> out = bssl::MakeSpan(result);
+ bssl::Span<uint8_t> out = bssl::Span(result);
// Input and output sizes for all the low-level APIs should match.
ASSERT_EQ(in.size(), out.size());
@@ -733,8 +733,7 @@
uint8_t suffix[8];
ASSERT_TRUE(EVP_CIPHER_CTX_ctrl(ctx.get(), EVP_CTRL_GCM_IV_GEN,
sizeof(suffix), suffix));
- EXPECT_EQ(Bytes(suffix),
- Bytes(bssl::MakeConstSpan(kIV3).last(sizeof(suffix))));
+ EXPECT_EQ(Bytes(suffix), Bytes(bssl::Span(kIV3).last(sizeof(suffix))));
ASSERT_NO_FATAL_FAILURE(expect_iv(ctx.get(), kIV3, /*enc=*/true));
// A length of -1 returns the whole IV.
diff --git a/crypto/digest_extra/digest_test.cc b/crypto/digest_extra/digest_test.cc
index db6d77b..bf5904e 100644
--- a/crypto/digest_extra/digest_test.cc
+++ b/crypto/digest_extra/digest_test.cc
@@ -157,8 +157,7 @@
static void CompareDigest(const DigestTestVector *test, const uint8_t *digest,
size_t digest_len) {
- EXPECT_EQ(test->expected_hex,
- EncodeHex(bssl::MakeConstSpan(digest, digest_len)));
+ EXPECT_EQ(test->expected_hex, EncodeHex(bssl::Span(digest, digest_len)));
}
static void TestDigest(const DigestTestVector *test) {
diff --git a/crypto/fipsmodule/ec/ec_test.cc b/crypto/fipsmodule/ec/ec_test.cc
index f1019b7..5d08829 100644
--- a/crypto/fipsmodule/ec/ec_test.cc
+++ b/crypto/fipsmodule/ec/ec_test.cc
@@ -1327,10 +1327,9 @@
ASSERT_TRUE(EncodeECPoint(&buf, test.group, p.get(),
POINT_CONVERSION_UNCOMPRESSED));
size_t field_len = (buf.size() - 1) / 2;
- EXPECT_EQ(test.x_hex,
- EncodeHex(bssl::MakeConstSpan(buf).subspan(1, field_len)));
- EXPECT_EQ(test.y_hex, EncodeHex(bssl::MakeConstSpan(buf).subspan(
- 1 + field_len, field_len)));
+ EXPECT_EQ(test.x_hex, EncodeHex(bssl::Span(buf).subspan(1, field_len)));
+ EXPECT_EQ(test.y_hex,
+ EncodeHex(bssl::Span(buf).subspan(1 + field_len, field_len)));
}
// hash-to-curve functions should check for the wrong group.
@@ -1405,7 +1404,7 @@
uint8_t buf[EC_MAX_BYTES];
size_t len;
ec_scalar_to_bytes(test.group, buf, &len, &scalar);
- EXPECT_EQ(test.result_hex, EncodeHex(bssl::MakeConstSpan(buf, len)));
+ EXPECT_EQ(test.result_hex, EncodeHex(bssl::Span(buf, len)));
}
// hash-to-scalar functions should check for the wrong group.
diff --git a/crypto/mldsa/mldsa_test.cc b/crypto/mldsa/mldsa_test.cc
index a0ab090..bfea9cc 100644
--- a/crypto/mldsa/mldsa_test.cc
+++ b/crypto/mldsa/mldsa_test.cc
@@ -63,7 +63,7 @@
sizeof(kMessage), nullptr, 0));
auto pub = std::make_unique<MLDSA65_public_key>();
- CBS cbs = bssl::MakeConstSpan(encoded_public_key);
+ CBS cbs = CBS(encoded_public_key);
ASSERT_TRUE(MLDSA65_parse_public_key(pub.get(), &cbs));
EXPECT_EQ(MLDSA65_verify(pub.get(), encoded_signature.data(),
@@ -104,7 +104,7 @@
const std::vector<uint8_t> encoded_private_key =
Marshal(MarshalPrivate, reinterpret_cast<BCMPrivateKey *>(priv.get()));
- CBS cbs = bssl::MakeConstSpan(encoded_private_key);
+ CBS cbs = CBS(encoded_private_key);
EXPECT_TRUE(bcm_success(
ParsePrivate(reinterpret_cast<BCMPrivateKey *>(priv.get()), &cbs)));
@@ -116,7 +116,7 @@
sizeof(kMessage), kContext, sizeof(kContext)));
auto pub = std::make_unique<PublicKey>();
- cbs = bssl::MakeConstSpan(encoded_public_key);
+ cbs = CBS(encoded_public_key);
ASSERT_TRUE(ParsePublicKey(pub.get(), &cbs));
EXPECT_EQ(
@@ -220,7 +220,7 @@
MLDSA65_generate_key(encoded_public_key.data(), seed, priv.get()));
auto pub = std::make_unique<MLDSA65_public_key>();
- CBS cbs = bssl::MakeConstSpan(encoded_public_key);
+ CBS cbs = CBS(encoded_public_key);
ASSERT_TRUE(MLDSA65_parse_public_key(pub.get(), &cbs));
std::vector<uint8_t> encoded_signature1(MLDSA65_SIGNATURE_BYTES);
@@ -273,17 +273,17 @@
MLDSA65_generate_key(encoded_public_key.data(), seed, priv.get()));
// Public key is 1 byte too short.
- CBS cbs = bssl::MakeConstSpan(encoded_public_key)
- .first(MLDSA65_PUBLIC_KEY_BYTES - 1);
+ CBS cbs =
+ CBS(bssl::Span(encoded_public_key).first(MLDSA65_PUBLIC_KEY_BYTES - 1));
auto parsed_pub = std::make_unique<MLDSA65_public_key>();
EXPECT_FALSE(MLDSA65_parse_public_key(parsed_pub.get(), &cbs));
// Public key has the correct length.
- cbs = bssl::MakeConstSpan(encoded_public_key).first(MLDSA65_PUBLIC_KEY_BYTES);
+ cbs = CBS(bssl::Span(encoded_public_key).first(MLDSA65_PUBLIC_KEY_BYTES));
EXPECT_TRUE(MLDSA65_parse_public_key(parsed_pub.get(), &cbs));
// Public key is 1 byte too long.
- cbs = bssl::MakeConstSpan(encoded_public_key);
+ cbs = CBS(encoded_public_key);
EXPECT_FALSE(MLDSA65_parse_public_key(parsed_pub.get(), &cbs));
}
diff --git a/crypto/pkcs8/pkcs12_test.cc b/crypto/pkcs8/pkcs12_test.cc
index e67a7e4..fd80607 100644
--- a/crypto/pkcs8/pkcs12_test.cc
+++ b/crypto/pkcs8/pkcs12_test.cc
@@ -35,11 +35,6 @@
// kUnicodePassword is the password for unicode_password.p12
static const char kUnicodePassword[] = "Hello, 世界";
-static bssl::Span<const uint8_t> StringToBytes(const std::string &str) {
- return bssl::MakeConstSpan(reinterpret_cast<const uint8_t *>(str.data()),
- str.size());
-}
-
static void TestImpl(const char *name, bssl::Span<const uint8_t> der,
const char *password,
const char *friendly_name) {
@@ -95,14 +90,15 @@
// openssl.p12 was generated by OpenSSL with:
// openssl pkcs12 -export -inkey key.pem -in cacert.pem
std::string data = GetTestData("crypto/pkcs8/test/openssl.p12");
- TestImpl("OpenSSL", StringToBytes(data), kPassword, nullptr);
+ TestImpl("OpenSSL", bssl::StringAsBytes(data), kPassword, nullptr);
}
TEST(PKCS12Test, TestNSS) {
// nss.p12 is the result of importing the OpenSSL example PKCS#12 into Chrome
// on Linux and then exporting it again.
std::string data = GetTestData("crypto/pkcs8/test/nss.p12");
- TestImpl("NSS", StringToBytes(data), kPassword, "Internet Widgits Pty Ltd");
+ TestImpl("NSS", bssl::StringAsBytes(data), kPassword,
+ "Internet Widgits Pty Ltd");
}
TEST(PKCS12Test, TestWindows) {
@@ -110,7 +106,7 @@
// manager on Windows 7. It has a friendlyName, but only on the key, where we
// ignore it, and not the certificate.
std::string data = GetTestData("crypto/pkcs8/test/windows.p12");
- TestImpl("Windows", StringToBytes(data), kPassword, nullptr);
+ TestImpl("Windows", bssl::StringAsBytes(data), kPassword, nullptr);
}
TEST(PKCS12Test, TestPBES2) {
@@ -121,13 +117,13 @@
// This was generated with an older OpenSSL, which used hmacWithSHA1 as the
// PRF. (There is currently no way to specify the PRF in the pkcs12 command.)
std::string data = GetTestData("crypto/pkcs8/test/pbes2_sha1.p12");
- TestImpl("kPBES2WithSHA1", StringToBytes(data), kPassword, nullptr);
+ TestImpl("kPBES2WithSHA1", bssl::StringAsBytes(data), kPassword, nullptr);
// pbes2_sha256.p12 is a PKCS#12 file using PBES2 and HMAC-SHA-256. It was
// generated in the same way as pbes2_sha1.p12, but using OpenSSL 1.1.1b,
// which uses hmacWithSHA256 as the PRF.
data = GetTestData("crypto/pkcs8/test/pbes2_sha256.p12");
- TestImpl("kPBES2WithSHA256", StringToBytes(data), kPassword, nullptr);
+ TestImpl("kPBES2WithSHA256", bssl::StringAsBytes(data), kPassword, nullptr);
}
TEST(PKCS12Test, TestNoEncryption) {
@@ -136,7 +132,7 @@
//
// openssl pkcs12 -export -inkey ecdsa_p256_key.pem -in ecdsa_p256_cert.pem -keypbe NONE -certpbe NONE -password pass:foo
std::string data = GetTestData("crypto/pkcs8/test/no_encryption.p12");
- TestImpl("kNoEncryption", StringToBytes(data), kPassword, nullptr);
+ TestImpl("kNoEncryption", bssl::StringAsBytes(data), kPassword, nullptr);
}
TEST(PKCS12Test, TestEmptyPassword) {
@@ -147,23 +143,24 @@
// Generated with
// openssl pkcs12 -export -inkey ecdsa_p256_key.pem -in ecdsa_p256_cert.pem -password pass:
std::string data = GetTestData("crypto/pkcs8/test/empty_password.p12");
- TestImpl("EmptyPassword (empty password)", StringToBytes(data), "", nullptr);
- TestImpl("EmptyPassword (null password)", StringToBytes(data), nullptr,
+ TestImpl("EmptyPassword (empty password)", bssl::StringAsBytes(data), "",
+ nullptr);
+ TestImpl("EmptyPassword (null password)", bssl::StringAsBytes(data), nullptr,
nullptr);
// The above input, modified to have a constructed string.
data = GetTestData("crypto/pkcs8/test/empty_password_ber.p12");
- TestImpl("EmptyPassword (BER, empty password)", StringToBytes(data), "",
+ TestImpl("EmptyPassword (BER, empty password)", bssl::StringAsBytes(data), "",
nullptr);
- TestImpl("EmptyPassword (BER, null password)", StringToBytes(data), nullptr,
- nullptr);
+ TestImpl("EmptyPassword (BER, null password)", bssl::StringAsBytes(data),
+ nullptr, nullptr);
// The constructed string with too much recursion.
data = GetTestData("crypto/pkcs8/test/empty_password_ber_nested.p12");
bssl::UniquePtr<STACK_OF(X509)> certs(sk_X509_new_null());
ASSERT_TRUE(certs);
EVP_PKEY *key = nullptr;
- CBS pkcs12 = StringToBytes(data);
+ CBS pkcs12 = bssl::StringAsBytes(data);
EXPECT_FALSE(PKCS12_get_key_and_certs(&key, certs.get(), &pkcs12, ""));
}
@@ -177,8 +174,9 @@
// But with OpenSSL patched to pass NULL into PKCS12_create and
// PKCS12_set_mac.
std::string data = GetTestData("crypto/pkcs8/test/null_password.p12");
- TestImpl("NullPassword (empty password)", StringToBytes(data), "", nullptr);
- TestImpl("NullPassword (null password)", StringToBytes(data), nullptr,
+ TestImpl("NullPassword (empty password)", bssl::StringAsBytes(data), "",
+ nullptr);
+ TestImpl("NullPassword (null password)", bssl::StringAsBytes(data), nullptr,
nullptr);
}
@@ -186,12 +184,12 @@
// Generated with
// openssl pkcs12 -export -inkey ecdsa_p256_key.pem -in ecdsa_p256_cert.pem -password pass:"Hello, 世界"
std::string data = GetTestData("crypto/pkcs8/test/unicode_password.p12");
- TestImpl("Unicode", StringToBytes(data), kUnicodePassword, nullptr);
+ TestImpl("Unicode", bssl::StringAsBytes(data), kUnicodePassword, nullptr);
}
TEST(PKCS12Test, TestWindowsCompat) {
std::string data = GetTestData("crypto/pkcs8/test/windows.p12");
- TestCompat(StringToBytes(data));
+ TestCompat(bssl::StringAsBytes(data));
}
// kTestKey is a test P-256 key.
@@ -671,7 +669,7 @@
bssl::UniquePtr<STACK_OF(X509)> certs(sk_X509_new_null());
ASSERT_TRUE(certs);
EVP_PKEY *key = nullptr;
- CBS cbs = StringToBytes(data);
+ CBS cbs = bssl::StringAsBytes(data);
EXPECT_FALSE(PKCS12_get_key_and_certs(&key, certs.get(), &cbs, ""));
}
{
@@ -679,7 +677,7 @@
bssl::UniquePtr<STACK_OF(X509)> certs(sk_X509_new_null());
ASSERT_TRUE(certs);
EVP_PKEY *key = nullptr;
- CBS cbs = StringToBytes(data);
+ CBS cbs = bssl::StringAsBytes(data);
EXPECT_FALSE(PKCS12_get_key_and_certs(&key, certs.get(), &cbs, ""));
}
{
@@ -687,7 +685,7 @@
bssl::UniquePtr<STACK_OF(X509)> certs(sk_X509_new_null());
ASSERT_TRUE(certs);
EVP_PKEY *key = nullptr;
- CBS cbs = StringToBytes(data);
+ CBS cbs = bssl::StringAsBytes(data);
EXPECT_FALSE(PKCS12_get_key_and_certs(&key, certs.get(), &cbs, ""));
}
}
diff --git a/crypto/test/file_util.h b/crypto/test/file_util.h
index 01f524a..337d1c4 100644
--- a/crypto/test/file_util.h
+++ b/crypto/test/file_util.h
@@ -20,6 +20,7 @@
#include <memory>
#include <set>
#include <string>
+#include <string_view>
#include <utility>
#include <openssl/span.h>
@@ -95,9 +96,8 @@
// true on success and false on error. On error, callers should call
// |IgnoreTempFileErrors| to determine whether to ignore the error.
bool Init(bssl::Span<const uint8_t> content = {});
- bool Init(const std::string &content) {
- return Init(bssl::MakeConstSpan(
- reinterpret_cast<const uint8_t *>(content.data()), content.size()));
+ bool Init(std::string_view content) {
+ return Init(bssl::StringAsBytes(content));
}
// Open opens the file as a |FILE| with the specified mode.
@@ -139,14 +139,11 @@
// It returns true on success and false on error. Subdirectories in the
// temporary directory are not currently supported.
bool AddFile(const std::string &filename, bssl::Span<const uint8_t> content);
- bool AddFile(const std::string &filename, const std::string &content) {
- return AddFile(
- filename,
- bssl::MakeConstSpan(reinterpret_cast<const uint8_t *>(content.data()),
- content.size()));
+ bool AddFile(const std::string &filename, std::string_view content) {
+ return AddFile(filename, bssl::StringAsBytes(content));
}
- // GetFilePath returns the path to the speciifed file within the temporary
+ // GetFilePath returns the path to the specified file within the temporary
// directory.
std::string GetFilePath(const std::string &filename) {
#if defined(OPENSSL_WINDOWS)
diff --git a/fuzz/decode_client_hello_inner.cc b/fuzz/decode_client_hello_inner.cc
index c296dc9..0c1b3e5 100644
--- a/fuzz/decode_client_hello_inner.cc
+++ b/fuzz/decode_client_hello_inner.cc
@@ -23,7 +23,7 @@
static bssl::UniquePtr<SSL_CTX> ctx(SSL_CTX_new(TLS_method()));
static bssl::UniquePtr<SSL> ssl(SSL_new(ctx.get()));
- CBS reader(bssl::MakeConstSpan(buf, len));
+ CBS reader(bssl::Span(buf, len));
CBS encoded_client_hello_inner_cbs;
if (!CBS_get_u24_length_prefixed(&reader, &encoded_client_hello_inner_cbs)) {
diff --git a/include/openssl/bytestring.h b/include/openssl/bytestring.h
index 5f4200e..951d3df 100644
--- a/include/openssl/bytestring.h
+++ b/include/openssl/bytestring.h
@@ -45,9 +45,7 @@
// Allow implicit conversions to and from bssl::Span<const uint8_t>.
cbs_st(bssl::Span<const uint8_t> span)
: data(span.data()), len(span.size()) {}
- operator bssl::Span<const uint8_t>() const {
- return bssl::MakeConstSpan(data, len);
- }
+ operator bssl::Span<const uint8_t>() const { return bssl::Span(data, len); }
// Defining any constructors requires we explicitly default the others.
cbs_st() = default;
diff --git a/include/openssl/span.h b/include/openssl/span.h
index fa77962..11ca2db 100644
--- a/include/openssl/span.h
+++ b/include/openssl/span.h
@@ -99,10 +99,10 @@
//
// FooMutate(bssl::Span<uint8_t>(vec));
//
-// You can also use the |MakeSpan| and |MakeConstSpan| factory methods to
-// construct Spans in order to deduce the type of the Span automatically.
+// You can also use C++17 class template argument deduction to construct Spans
+// in order to deduce the type of the Span automatically.
//
-// FooMutate(bssl::MakeSpan(vec));
+// FooMutate(bssl::Span(vec));
//
// Note that Spans have value type sematics. They are cheap to construct and
// copy, and should be passed by value whenever a method would otherwise accept
diff --git a/ssl/d1_both.cc b/ssl/d1_both.cc
index b02a958..69fb09b 100644
--- a/ssl/d1_both.cc
+++ b/ssl/d1_both.cc
@@ -891,7 +891,7 @@
uint32_t old_offset = ssl->d1->outgoing_offset;
size_t packet_len;
- if (!seal_next_packet(ssl, MakeSpan(packet), &packet_len)) {
+ if (!seal_next_packet(ssl, Span(packet), &packet_len)) {
return -1;
}
@@ -1001,7 +1001,7 @@
}
ssl_do_msg_callback(ssl, /*is_write=*/1, SSL3_RT_ACK,
- MakeConstSpan(CBB_data(&cbb), CBB_len(&cbb)));
+ Span(CBB_data(&cbb), CBB_len(&cbb)));
int bio_ret =
BIO_write(ssl->wbio.get(), record, static_cast<int>(record_len));
diff --git a/ssl/dtls_record.cc b/ssl/dtls_record.cc
index 55cd1f2..125de2b 100644
--- a/ssl/dtls_record.cc
+++ b/ssl/dtls_record.cc
@@ -115,7 +115,7 @@
}
static Span<uint8_t> cbs_to_writable_bytes(CBS cbs) {
- return MakeSpan(const_cast<uint8_t *>(CBS_data(&cbs)), CBS_len(&cbs));
+ return Span(const_cast<uint8_t *>(CBS_data(&cbs)), CBS_len(&cbs));
}
struct ParsedDTLSRecord {
@@ -540,8 +540,7 @@
CRYPTO_store_u64_be(out + 3, record_number.combined());
CRYPTO_store_u16_be(out + 11, ciphertext_len);
}
- Span<const uint8_t> header = MakeConstSpan(out, record_header_len);
-
+ Span<const uint8_t> header(out, record_header_len);
if (!write_epoch->aead->SealScatter(
out + record_header_len, out + prefix, out + prefix + in_len, type,
@@ -556,8 +555,7 @@
// generate the mask used for encryption. For simplicity, pass in the whole
// ciphertext as the sample - GenerateRecordNumberMask will read only what
// it needs (and error if |sample| is too short).
- Span<const uint8_t> sample =
- MakeConstSpan(out + record_header_len, ciphertext_len);
+ Span<const uint8_t> sample(out + record_header_len, ciphertext_len);
uint8_t mask[2];
if (!write_epoch->rn_encrypter->GenerateMask(mask, sample)) {
return false;
diff --git a/ssl/encrypted_client_hello.cc b/ssl/encrypted_client_hello.cc
index 046e0a9..6892f97 100644
--- a/ssl/encrypted_client_hello.cc
+++ b/ssl/encrypted_client_hello.cc
@@ -172,8 +172,8 @@
return false;
}
- auto inner_extensions = MakeConstSpan(client_hello_inner.extensions,
- client_hello_inner.extensions_len);
+ auto inner_extensions =
+ Span(client_hello_inner.extensions, client_hello_inner.extensions_len);
CBS ext_list_wrapper;
if (!ssl_client_hello_get_extension(&client_hello_inner, &ext_list_wrapper,
TLSEXT_TYPE_ech_outer_extensions)) {
@@ -255,8 +255,8 @@
return false;
}
- if (!is_valid_client_hello_inner(
- ssl, out_alert, MakeConstSpan(CBB_data(&body), CBB_len(&body)))) {
+ if (!is_valid_client_hello_inner(ssl, out_alert,
+ Span(CBB_data(&body), CBB_len(&body)))) {
return false;
}
@@ -277,8 +277,8 @@
// point within |client_hello_outer->extensions|) replaced with zeros. See
// draft-ietf-tls-esni-13, section 5.2.
Array<uint8_t> aad;
- if (!aad.CopyFrom(MakeConstSpan(client_hello_outer->client_hello,
- client_hello_outer->client_hello_len))) {
+ if (!aad.CopyFrom(Span(client_hello_outer->client_hello,
+ client_hello_outer->client_hello_len))) {
*out_alert = SSL_AD_INTERNAL_ERROR;
return false;
}
@@ -290,7 +290,7 @@
assert(reinterpret_cast<uintptr_t>(client_hello_outer->extensions +
client_hello_outer->extensions_len) >=
reinterpret_cast<uintptr_t>(payload.data() + payload.size()));
- Span<uint8_t> payload_aad = MakeSpan(aad).subspan(
+ Span<uint8_t> payload_aad = Span(aad).subspan(
payload.data() - client_hello_outer->client_hello, payload.size());
OPENSSL_memset(payload_aad.data(), 0, payload_aad.size());
@@ -431,7 +431,7 @@
// Make a copy of the ECHConfig and parse from it, so the results alias into
// the saved copy.
if (!out->raw.CopyFrom(
- MakeConstSpan(CBS_data(&orig), CBS_len(&orig) - CBS_len(cbs)))) {
+ Span(CBS_data(&orig), CBS_len(&orig) - CBS_len(cbs)))) {
return false;
}
@@ -539,7 +539,7 @@
return false;
}
if (ech_config_.kem_id != EVP_HPKE_KEM_id(EVP_HPKE_KEY_kem(key)) ||
- MakeConstSpan(expected_public_key, expected_public_key_len) !=
+ Span(expected_public_key, expected_public_key_len) !=
ech_config_.public_key) {
OPENSSL_PUT_ERROR(SSL, SSL_R_ECH_SERVER_CONFIG_AND_PRIVATE_KEY_MISMATCH);
return false;
@@ -650,7 +650,7 @@
}
if (!hs->config->client_ech_config_list.empty()) {
- CBS cbs = MakeConstSpan(hs->config->client_ech_config_list);
+ CBS cbs = CBS(hs->config->client_ech_config_list);
CBS child;
if (!CBS_get_u16_length_prefixed(&cbs, &child) || //
CBS_len(&child) == 0 || //
@@ -804,16 +804,16 @@
if (needs_psk_binder) {
size_t binder_len;
- if (!tls13_write_psk_binder(hs, hs->inner_transcript, MakeSpan(hello_inner),
+ if (!tls13_write_psk_binder(hs, hs->inner_transcript, Span(hello_inner),
&binder_len)) {
return false;
}
// Also update the EncodedClientHelloInner.
auto encoded_binder =
- MakeSpan(const_cast<uint8_t *>(CBB_data(encoded_cbb.get())),
- CBB_len(encoded_cbb.get()))
+ Span(const_cast<uint8_t *>(CBB_data(encoded_cbb.get())),
+ CBB_len(encoded_cbb.get()))
.last(binder_len);
- auto hello_inner_binder = MakeConstSpan(hello_inner).last(binder_len);
+ auto hello_inner_binder = Span(hello_inner).last(binder_len);
OPENSSL_memcpy(encoded_binder.data(), hello_inner_binder.data(),
binder_len);
}
@@ -885,7 +885,7 @@
assert(!needs_psk_binder);
// Replace the payload in |hs->ech_client_outer| with the encrypted value.
- auto payload_span = MakeSpan(hs->ech_client_outer).last(payload_len);
+ auto payload_span = Span(hs->ech_client_outer).last(payload_len);
#if defined(BORINGSSL_UNSAFE_FUZZER_MODE)
// In fuzzer mode, the server expects a cleartext payload.
assert(payload_span.size() == encoded.size());
@@ -920,7 +920,7 @@
return 0;
}
- auto span = MakeConstSpan(ech_config_list, ech_config_list_len);
+ auto span = Span(ech_config_list, ech_config_list_len);
if (!ssl_is_valid_ech_config_list(span)) {
OPENSSL_PUT_ERROR(SSL, SSL_R_INVALID_ECH_CONFIG_LIST);
return 0;
@@ -972,8 +972,7 @@
int SSL_marshal_ech_config(uint8_t **out, size_t *out_len, uint8_t config_id,
const EVP_HPKE_KEY *key, const char *public_name,
size_t max_name_len) {
- Span<const uint8_t> public_name_u8 = MakeConstSpan(
- reinterpret_cast<const uint8_t *>(public_name), strlen(public_name));
+ Span<const uint8_t> public_name_u8 = StringAsBytes(public_name);
if (!ssl_is_valid_ech_public_name(public_name_u8)) {
OPENSSL_PUT_ERROR(SSL, SSL_R_INVALID_ECH_PUBLIC_NAME);
return 0;
@@ -1036,7 +1035,7 @@
if (!parsed_config) {
return 0;
}
- if (!parsed_config->Init(MakeConstSpan(ech_config, ech_config_len), key,
+ if (!parsed_config->Init(Span(ech_config, ech_config_len), key,
!!is_retry_config)) {
OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
return 0;
diff --git a/ssl/extensions.cc b/ssl/extensions.cc
index c6718d5..df914c8 100644
--- a/ssl/extensions.cc
+++ b/ssl/extensions.cc
@@ -436,9 +436,7 @@
if (ssl->hostname == nullptr) {
return true;
}
- hostname =
- MakeConstSpan(reinterpret_cast<const uint8_t *>(ssl->hostname.get()),
- strlen(ssl->hostname.get()));
+ hostname = StringAsBytes(ssl->hostname.get());
}
CBB contents, server_name_list, name;
@@ -1102,8 +1100,7 @@
ssl, &selected, &selected_len, orig_contents,
static_cast<unsigned>(orig_len),
ssl->ctx->next_proto_select_cb_arg) != SSL_TLSEXT_ERR_OK ||
- !ssl->s3->next_proto_negotiated.CopyFrom(
- MakeConstSpan(selected, selected_len))) {
+ !ssl->s3->next_proto_negotiated.CopyFrom(Span(selected, selected_len))) {
*out_alert = SSL_AD_INTERNAL_ERROR;
return false;
}
@@ -1437,8 +1434,7 @@
*out_alert = SSL_AD_INTERNAL_ERROR;
return false;
}
- if (!ssl->s3->alpn_selected.CopyFrom(
- MakeConstSpan(selected, selected_len))) {
+ if (!ssl->s3->alpn_selected.CopyFrom(Span(selected, selected_len))) {
*out_alert = SSL_AD_INTERNAL_ERROR;
return false;
}
@@ -3019,7 +3015,7 @@
*out_alert = SSL_AD_DECODE_ERROR;
return false;
}
- if (protocol_name == MakeConstSpan(ssl->s3->alpn_selected)) {
+ if (protocol_name == Span(ssl->s3->alpn_selected)) {
found = true;
}
}
@@ -4076,9 +4072,8 @@
}
}
- Span<const uint16_t> sigalgs = cred->sigalgs.empty()
- ? MakeConstSpan(kSignSignatureAlgorithms)
- : cred->sigalgs;
+ Span<const uint16_t> sigalgs =
+ cred->sigalgs.empty() ? Span(kSignSignatureAlgorithms) : cred->sigalgs;
for (uint16_t sigalg : sigalgs) {
if (!ssl_pkey_supports_algorithm(ssl, cred->pubkey.get(), sigalg,
/*is_verify=*/false)) {
diff --git a/ssl/handshake.cc b/ssl/handshake.cc
index e10950e..4ecb5fb 100644
--- a/ssl/handshake.cc
+++ b/ssl/handshake.cc
@@ -74,7 +74,7 @@
out_msg->raw = CBS(ech_client_hello_buf);
size_t header_len =
SSL_is_dtls(ssl) ? DTLS1_HM_HEADER_LENGTH : SSL3_HM_HEADER_LENGTH;
- out_msg->body = MakeConstSpan(ech_client_hello_buf).subspan(header_len);
+ out_msg->body = CBS(Span(ech_client_hello_buf).subspan(header_len));
} else if (!ssl->method->get_message(ssl, out_msg)) {
// The message has already been read, so this cannot fail.
OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
@@ -398,11 +398,9 @@
}
if (ssl->server) {
- ssl->s3->previous_client_finished.CopyFrom(
- MakeConstSpan(finished, finished_len));
+ ssl->s3->previous_client_finished.CopyFrom(Span(finished, finished_len));
} else {
- ssl->s3->previous_server_finished.CopyFrom(
- MakeConstSpan(finished, finished_len));
+ ssl->s3->previous_server_finished.CopyFrom(Span(finished, finished_len));
}
// The Finished message should be the end of a flight.
@@ -426,7 +424,7 @@
ssl->server)) {
return false;
}
- auto finished = MakeConstSpan(finished_buf, finished_len);
+ auto finished = Span(finished_buf, finished_len);
// Log the master secret, if logging is enabled.
if (!ssl_log_secret(ssl, "CLIENT_RANDOM", session->secret)) {
diff --git a/ssl/handshake_client.cc b/ssl/handshake_client.cc
index 45f5901..3f8040b 100644
--- a/ssl/handshake_client.cc
+++ b/ssl/handshake_client.cc
@@ -234,7 +234,7 @@
// ClientHelloOuter cannot have a PSK binder. Otherwise the
// ClientHellOuterAAD computation would break.
assert(type != ssl_client_hello_outer);
- if (!tls13_write_psk_binder(hs, hs->transcript, MakeSpan(msg),
+ if (!tls13_write_psk_binder(hs, hs->transcript, Span(msg),
/*out_binder_len=*/0)) {
return false;
}
@@ -419,7 +419,7 @@
if (!ssl_setup_key_shares(hs, /*override_group_id=*/0) ||
!ssl_setup_extension_permutation(hs) ||
- !ssl_encrypt_client_hello(hs, MakeConstSpan(ech_enc, ech_enc_len)) ||
+ !ssl_encrypt_client_hello(hs, Span(ech_enc, ech_enc_len)) ||
!ssl_add_client_hello(hs)) {
return ssl_hs_error;
}
@@ -666,8 +666,7 @@
sizeof(kJDK11DowngradeRandom) == sizeof(kTLS13DowngradeRandom),
"downgrade signals have different size");
auto suffix =
- MakeConstSpan(ssl->s3->server_random, sizeof(ssl->s3->server_random))
- .subspan(SSL3_RANDOM_SIZE - sizeof(kTLS13DowngradeRandom));
+ Span(ssl->s3->server_random).last(sizeof(kTLS13DowngradeRandom));
if (suffix == kTLS12DowngradeRandom || suffix == kTLS13DowngradeRandom ||
suffix == kJDK11DowngradeRandom) {
OPENSSL_PUT_ERROR(SSL, SSL_R_TLS13_DOWNGRADE);
@@ -1473,8 +1472,7 @@
}
hs->new_session->secret.ResizeForOverwrite(SSL3_MASTER_SECRET_SIZE);
- if (!tls1_generate_master_secret(hs, MakeSpan(hs->new_session->secret),
- pms)) {
+ if (!tls1_generate_master_secret(hs, Span(hs->new_session->secret), pms)) {
return ssl_hs_error;
}
diff --git a/ssl/handshake_server.cc b/ssl/handshake_server.cc
index f0adbbc..45afcf1 100644
--- a/ssl/handshake_server.cc
+++ b/ssl/handshake_server.cc
@@ -91,7 +91,7 @@
} else if (client_hello->version <= DTLS1_VERSION) {
versions_len = 2;
}
- versions = MakeConstSpan(kDTLSVersions).last(versions_len);
+ versions = Span(kDTLSVersions).last(versions_len);
} else {
if (client_hello->version >= TLS1_2_VERSION) {
versions_len = 6;
@@ -100,7 +100,7 @@
} else if (client_hello->version >= TLS1_VERSION) {
versions_len = 2;
}
- versions = MakeConstSpan(kTLSVersions).last(versions_len);
+ versions = Span(kTLSVersions).last(versions_len);
}
}
@@ -761,7 +761,7 @@
// |ssl_client_hello_init| checks that |client_hello.session_id| is not too
// large.
hs->session_id.CopyFrom(
- MakeConstSpan(client_hello.session_id, client_hello.session_id_len));
+ Span(client_hello.session_id, client_hello.session_id_len));
// Determine whether we are doing session resumption.
UniquePtr<SSL_SESSION> session;
@@ -1042,7 +1042,7 @@
hints->ecdhe_group_id == hs->new_session->group_id &&
!hints->ecdhe_public_key.empty() &&
!hints->ecdhe_private_key.empty()) {
- CBS cbs = MakeConstSpan(hints->ecdhe_private_key);
+ CBS cbs = CBS(hints->ecdhe_private_key);
hint_ok = hs->key_shares[0]->DeserializePrivateKey(&cbs);
}
if (hint_ok) {
@@ -1060,7 +1060,7 @@
if (hints && hs->hints_requested) {
bssl::ScopedCBB private_key_cbb;
if (!hints->ecdhe_public_key.CopyFrom(
- MakeConstSpan(CBB_data(&child), CBB_len(&child))) ||
+ Span(CBB_data(&child), CBB_len(&child))) ||
!CBB_init(private_key_cbb.get(), 32) ||
!hs->key_shares[0]->SerializePrivateKey(private_key_cbb.get()) ||
!CBBFinishArray(private_key_cbb.get(),
@@ -1470,7 +1470,7 @@
// Compute the master secret.
hs->new_session->secret.ResizeForOverwrite(SSL3_MASTER_SECRET_SIZE);
- if (!tls1_generate_master_secret(hs, MakeSpan(hs->new_session->secret),
+ if (!tls1_generate_master_secret(hs, Span(hs->new_session->secret),
premaster_secret)) {
return ssl_hs_error;
}
diff --git a/ssl/internal.h b/ssl/internal.h
index 4d24178..0f3da92 100644
--- a/ssl/internal.h
+++ b/ssl/internal.h
@@ -555,7 +555,7 @@
inline size_t GetAllNames(const char **out, size_t max_out,
Span<const char *const> fixed_names, Name(T::*name),
Span<const T> objects) {
- auto span = bssl::MakeSpan(out, max_out);
+ auto span = bssl::Span(out, max_out);
for (size_t i = 0; !span.empty() && i < fixed_names.size(); i++) {
span[0] = fixed_names[i];
span = span.subspan(1);
@@ -878,8 +878,8 @@
bool CopyToHashContext(EVP_MD_CTX *ctx, const EVP_MD *digest) const;
Span<const uint8_t> buffer() const {
- return MakeConstSpan(reinterpret_cast<const uint8_t *>(buffer_->data),
- buffer_->length);
+ return Span(reinterpret_cast<const uint8_t *>(buffer_->data),
+ buffer_->length);
}
// FreeBuffer releases the handshake buffer. Subsequent calls to
@@ -1467,11 +1467,9 @@
bool empty() const { return size_ == 0; }
size_t cap() const { return cap_; }
- Span<uint8_t> span() { return MakeSpan(data(), size()); }
+ Span<uint8_t> span() { return Span(data(), size()); }
- Span<uint8_t> remaining() {
- return MakeSpan(data() + size(), cap() - size());
- }
+ Span<uint8_t> remaining() { return Span(data() + size(), cap() - size()); }
// Clear releases the buffer.
void Clear();
@@ -3242,9 +3240,9 @@
struct DTLSIncomingMessage {
static constexpr bool kAllowUniquePtr = true;
- Span<uint8_t> msg() { return MakeSpan(data).subspan(DTLS1_HM_HEADER_LENGTH); }
+ Span<uint8_t> msg() { return Span(data).subspan(DTLS1_HM_HEADER_LENGTH); }
Span<const uint8_t> msg() const {
- return MakeSpan(data).subspan(DTLS1_HM_HEADER_LENGTH);
+ return Span(data).subspan(DTLS1_HM_HEADER_LENGTH);
}
size_t msg_len() const { return msg().size(); }
diff --git a/ssl/s3_both.cc b/ssl/s3_both.cc
index 7909c01..8b7e4ec 100644
--- a/ssl/s3_both.cc
+++ b/ssl/s3_both.cc
@@ -144,9 +144,8 @@
}
UniquePtr<BUF_MEM> pending_hs_data = std::move(ssl->s3->pending_hs_data);
- auto data =
- MakeConstSpan(reinterpret_cast<const uint8_t *>(pending_hs_data->data),
- pending_hs_data->length);
+ auto data = Span(reinterpret_cast<const uint8_t *>(pending_hs_data->data),
+ pending_hs_data->length);
if (SSL_is_quic(ssl)) {
if ((ssl->s3->hs == nullptr || !ssl->s3->hs->hints_requested) &&
!ssl->quic_method->add_handshake_data(ssl, ssl->s3->quic_write_level,
diff --git a/ssl/s3_pkt.cc b/ssl/s3_pkt.cc
index 930a816..6a429b9 100644
--- a/ssl/s3_pkt.cc
+++ b/ssl/s3_pkt.cc
@@ -163,9 +163,9 @@
// NewSessionTicket.
Span<const uint8_t> pending_flight;
if (ssl->s3->pending_flight != nullptr) {
- pending_flight = MakeConstSpan(
- reinterpret_cast<const uint8_t *>(ssl->s3->pending_flight->data),
- ssl->s3->pending_flight->length);
+ pending_flight =
+ Span(reinterpret_cast<const uint8_t *>(ssl->s3->pending_flight->data),
+ ssl->s3->pending_flight->length);
pending_flight = pending_flight.subspan(ssl->s3->pending_flight_offset);
}
diff --git a/ssl/ssl_aead_ctx.cc b/ssl/ssl_aead_ctx.cc
index a7873e3..ae857f6 100644
--- a/ssl/ssl_aead_ctx.cc
+++ b/ssl/ssl_aead_ctx.cc
@@ -109,8 +109,8 @@
OPENSSL_memcpy(merged_key + mac_key.size(), enc_key.data(), enc_key.size());
OPENSSL_memcpy(merged_key + mac_key.size() + enc_key.size(),
fixed_iv.data(), fixed_iv.size());
- enc_key = MakeConstSpan(merged_key,
- enc_key.size() + mac_key.size() + fixed_iv.size());
+ enc_key =
+ Span(merged_key, enc_key.size() + mac_key.size() + fixed_iv.size());
// The |EVP_AEAD|'s per-encryption nonce, if any, is actually the CBC IV. It
// must be generated randomly and prepended to the record.
@@ -226,7 +226,7 @@
storage[len++] = static_cast<uint8_t>((plaintext_len >> 8));
storage[len++] = static_cast<uint8_t>(plaintext_len);
}
- return MakeConstSpan(storage, len);
+ return Span(storage, len);
}
bool SSLAEADContext::Open(Span<uint8_t> *out, uint8_t type,
diff --git a/ssl/ssl_cipher.cc b/ssl/ssl_cipher.cc
index 5007dfe..99c7bc9 100644
--- a/ssl/ssl_cipher.cc
+++ b/ssl/ssl_cipher.cc
@@ -334,9 +334,7 @@
};
-Span<const SSL_CIPHER> AllCiphers() {
- return MakeConstSpan(kCiphers, OPENSSL_ARRAY_SIZE(kCiphers));
-}
+Span<const SSL_CIPHER> AllCiphers() { return kCiphers; }
static constexpr size_t NumTLS13Ciphers() {
size_t num = 0;
@@ -1567,11 +1565,11 @@
void SSL_COMP_free_compression_methods(void) {}
size_t SSL_get_all_cipher_names(const char **out, size_t max_out) {
- return GetAllNames(out, max_out, MakeConstSpan(&kUnknownCipher, 1),
- &SSL_CIPHER::name, MakeConstSpan(kCiphers));
+ return GetAllNames(out, max_out, Span(&kUnknownCipher, 1), &SSL_CIPHER::name,
+ Span(kCiphers));
}
size_t SSL_get_all_standard_cipher_names(const char **out, size_t max_out) {
return GetAllNames(out, max_out, Span<const char *>(),
- &SSL_CIPHER::standard_name, MakeConstSpan(kCiphers));
+ &SSL_CIPHER::standard_name, Span(kCiphers));
}
diff --git a/ssl/ssl_credential.cc b/ssl/ssl_credential.cc
index 361dcd1..184d15e 100644
--- a/ssl/ssl_credential.cc
+++ b/ssl/ssl_credential.cc
@@ -67,8 +67,8 @@
// credential matches it, it is good.
if (hs->ca_names != nullptr) {
for (const CRYPTO_BUFFER *ca_name : hs->ca_names.get()) {
- if (cred->ChainContainsIssuer(MakeConstSpan(
- CRYPTO_BUFFER_data(ca_name), CRYPTO_BUFFER_len(ca_name)))) {
+ if (cred->ChainContainsIssuer(Span(CRYPTO_BUFFER_data(ca_name),
+ CRYPTO_BUFFER_len(ca_name)))) {
return true;
}
}
@@ -382,7 +382,7 @@
return 0;
}
- if (!cred->sigalgs.CopyFrom(MakeConstSpan(&dc_cert_verify_algorithm, 1))) {
+ if (!cred->sigalgs.CopyFrom(Span(&dc_cert_verify_algorithm, 1))) {
return 0;
}
diff --git a/ssl/ssl_internal_test.cc b/ssl/ssl_internal_test.cc
index 2275c3e..230018f 100644
--- a/ssl/ssl_internal_test.cc
+++ b/ssl/ssl_internal_test.cc
@@ -166,18 +166,18 @@
EXPECT_EQ(3, *iter);
iter++;
EXPECT_EQ(iter, vec.end());
- EXPECT_EQ(MakeConstSpan(vec), MakeConstSpan(data3));
+ EXPECT_EQ(Span(vec), Span(data3));
InplaceVector<int, 4> vec2 = vec;
- EXPECT_EQ(MakeConstSpan(vec), MakeConstSpan(vec2));
+ EXPECT_EQ(Span(vec), Span(vec2));
InplaceVector<int, 4> vec3;
vec3 = vec;
- EXPECT_EQ(MakeConstSpan(vec), MakeConstSpan(vec2));
+ EXPECT_EQ(Span(vec), Span(vec2));
int data4[] = {1, 2, 3, 4};
ASSERT_TRUE(vec.TryCopyFrom(data4));
- EXPECT_EQ(MakeConstSpan(vec), MakeConstSpan(data4));
+ EXPECT_EQ(Span(vec), Span(data4));
int data5[] = {1, 2, 3, 4, 5};
EXPECT_FALSE(vec.TryCopyFrom(data5));
@@ -185,7 +185,7 @@
// Shrink the vector.
ASSERT_TRUE(vec.TryResize(3));
- EXPECT_EQ(MakeConstSpan(vec), MakeConstSpan(data3));
+ EXPECT_EQ(Span(vec), Span(data3));
// Enlarge it again. The new value should have been value-initialized.
ASSERT_TRUE(vec.TryResize(4));
@@ -196,17 +196,17 @@
vec.CopyFrom(data4);
const auto *ptr = &vec;
vec = *ptr;
- EXPECT_EQ(MakeConstSpan(vec), MakeConstSpan(data4));
+ EXPECT_EQ(Span(vec), Span(data4));
}
TEST(InplaceVectorTest, ComplexType) {
InplaceVector<std::vector<int>, 4> vec_of_vecs;
const std::vector<int> data[] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
vec_of_vecs.CopyFrom(data);
- EXPECT_EQ(MakeConstSpan(vec_of_vecs), MakeConstSpan(data));
+ EXPECT_EQ(Span(vec_of_vecs), Span(data));
vec_of_vecs.Resize(2);
- EXPECT_EQ(MakeConstSpan(vec_of_vecs), MakeConstSpan(data, 2));
+ EXPECT_EQ(Span(vec_of_vecs), Span(data, 2));
vec_of_vecs.Resize(4);
EXPECT_EQ(4u, vec_of_vecs.size());
@@ -854,11 +854,11 @@
SCOPED_TRACE(SSL_CIPHER_standard_name(cipher));
const uint8_t kZeros[EVP_AEAD_MAX_KEY_LENGTH] = {0};
- UniquePtr<SSLAEADContext> aead = SSLAEADContext::Create(
- evp_aead_seal, cipher_test.version, cipher,
- MakeConstSpan(kZeros).first(cipher_test.enc_key_len),
- MakeConstSpan(kZeros).first(cipher_test.mac_key_len),
- MakeConstSpan(kZeros).first(cipher_test.fixed_iv_len));
+ UniquePtr<SSLAEADContext> aead =
+ SSLAEADContext::Create(evp_aead_seal, cipher_test.version, cipher,
+ Span(kZeros).first(cipher_test.enc_key_len),
+ Span(kZeros).first(cipher_test.mac_key_len),
+ Span(kZeros).first(cipher_test.fixed_iv_len));
ASSERT_TRUE(aead);
for (const auto &t : cipher_test.length_tests) {
diff --git a/ssl/ssl_key_share.cc b/ssl/ssl_key_share.cc
index f836c23..af68003 100644
--- a/ssl/ssl_key_share.cc
+++ b/ssl/ssl_key_share.cc
@@ -388,9 +388,7 @@
} // namespace
-Span<const NamedGroup> NamedGroups() {
- return MakeConstSpan(kNamedGroups, OPENSSL_ARRAY_SIZE(kNamedGroups));
-}
+Span<const NamedGroup> NamedGroups() { return kNamedGroups; }
UniquePtr<SSLKeyShare> SSLKeyShare::Create(uint16_t group_id) {
switch (group_id) {
@@ -464,5 +462,5 @@
size_t SSL_get_all_group_names(const char **out, size_t max_out) {
return GetAllNames(out, max_out, Span<const char *>(), &NamedGroup::name,
- MakeConstSpan(kNamedGroups));
+ Span(kNamedGroups));
}
diff --git a/ssl/ssl_lib.cc b/ssl/ssl_lib.cc
index 56fafde..41d071c 100644
--- a/ssl/ssl_lib.cc
+++ b/ssl/ssl_lib.cc
@@ -377,7 +377,7 @@
}
static int ssl_session_cmp(const SSL_SESSION *a, const SSL_SESSION *b) {
- return MakeConstSpan(a->session_id) == b->session_id ? 0 : 1;
+ return Span(a->session_id) == b->session_id ? 0 : 1;
}
ssl_ctx_st::ssl_ctx_st(const SSL_METHOD *ssl_method)
@@ -699,7 +699,7 @@
return 0;
}
- return tls_append_handshake_data(ssl, MakeConstSpan(data, len));
+ return tls_append_handshake_data(ssl, Span(data, len));
}
int SSL_do_handshake(SSL *ssl) {
@@ -963,8 +963,7 @@
}
ret = ssl->method->write_app_data(
ssl, &needs_handshake, &bytes_written,
- MakeConstSpan(static_cast<const uint8_t *>(buf),
- static_cast<size_t>(num)));
+ Span(static_cast<const uint8_t *>(buf), static_cast<size_t>(num)));
} while (needs_handshake);
return ret <= 0 ? ret : static_cast<int>(bytes_written);
}
@@ -1075,8 +1074,8 @@
int SSL_set_quic_transport_params(SSL *ssl, const uint8_t *params,
size_t params_len) {
- return ssl->config && ssl->config->quic_transport_params.CopyFrom(
- MakeConstSpan(params, params_len));
+ return ssl->config &&
+ ssl->config->quic_transport_params.CopyFrom(Span(params, params_len));
}
void SSL_get_peer_quic_transport_params(const SSL *ssl,
@@ -1089,7 +1088,7 @@
int SSL_set_quic_early_data_context(SSL *ssl, const uint8_t *context,
size_t context_len) {
return ssl->config && ssl->config->quic_early_data_context.CopyFrom(
- MakeConstSpan(context, context_len));
+ Span(context, context_len));
}
void SSL_CTX_set_early_data_enabled(SSL_CTX *ctx, int enabled) {
@@ -1393,7 +1392,7 @@
static int set_session_id_context(CERT *cert, const uint8_t *sid_ctx,
size_t sid_ctx_len) {
- if (!cert->sid_ctx.TryCopyFrom(MakeConstSpan(sid_ctx, sid_ctx_len))) {
+ if (!cert->sid_ctx.TryCopyFrom(Span(sid_ctx, sid_ctx_len))) {
OPENSSL_PUT_ERROR(SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG);
return 0;
}
@@ -1814,7 +1813,7 @@
int SSL_CTX_set1_group_ids(SSL_CTX *ctx, const uint16_t *group_ids,
size_t num_group_ids) {
- auto span = MakeConstSpan(group_ids, num_group_ids);
+ auto span = Span(group_ids, num_group_ids);
return check_group_ids(span) && ctx->supported_group_list.CopyFrom(span);
}
@@ -1823,7 +1822,7 @@
if (!ssl->config) {
return 0;
}
- auto span = MakeConstSpan(group_ids, num_group_ids);
+ auto span = Span(group_ids, num_group_ids);
return check_group_ids(span) &&
ssl->config->supported_group_list.CopyFrom(span);
}
@@ -1848,7 +1847,7 @@
int SSL_CTX_set1_groups(SSL_CTX *ctx, const int *groups, size_t num_groups) {
return ssl_nids_to_group_ids(&ctx->supported_group_list,
- MakeConstSpan(groups, num_groups));
+ Span(groups, num_groups));
}
int SSL_set1_groups(SSL *ssl, const int *groups, size_t num_groups) {
@@ -1856,7 +1855,7 @@
return 0;
}
return ssl_nids_to_group_ids(&ssl->config->supported_group_list,
- MakeConstSpan(groups, num_groups));
+ Span(groups, num_groups));
}
static bool ssl_str_to_group_ids(Array<uint16_t> *out_group_ids,
@@ -2129,8 +2128,8 @@
// Both |peer| and |supported| must be valid protocol lists, but |peer| may be
// empty in NPN.
- auto peer_span = MakeConstSpan(peer, peer_len);
- auto supported_span = MakeConstSpan(supported, supported_len);
+ auto peer_span = Span(peer, peer_len);
+ auto supported_span = Span(supported, supported_len);
if ((!peer_span.empty() && !ssl_is_valid_alpn_list(peer_span)) ||
!ssl_is_valid_alpn_list(supported_span)) {
return OPENSSL_NPN_NO_OVERLAP;
@@ -2143,7 +2142,7 @@
return OPENSSL_NPN_NO_OVERLAP;
}
- if (ssl_alpn_list_contains_protocol(MakeConstSpan(supported, supported_len),
+ if (ssl_alpn_list_contains_protocol(Span(supported, supported_len),
proto)) {
// This function is not const-correct for compatibility with existing
// callers.
@@ -2198,7 +2197,7 @@
int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const uint8_t *protos,
size_t protos_len) {
// Note this function's return value is backwards.
- auto span = MakeConstSpan(protos, protos_len);
+ auto span = Span(protos, protos_len);
if (!span.empty() && !ssl_is_valid_alpn_list(span)) {
OPENSSL_PUT_ERROR(SSL, SSL_R_INVALID_ALPN_PROTOCOL_LIST);
return 1;
@@ -2211,7 +2210,7 @@
if (!ssl->config) {
return 1;
}
- auto span = MakeConstSpan(protos, protos_len);
+ auto span = Span(protos, protos_len);
if (!span.empty() && !ssl_is_valid_alpn_list(span)) {
OPENSSL_PUT_ERROR(SSL, SSL_R_INVALID_ALPN_PROTOCOL_LIST);
return 1;
@@ -2253,8 +2252,8 @@
return 0;
}
ALPSConfig config;
- if (!config.protocol.CopyFrom(MakeConstSpan(proto, proto_len)) ||
- !config.settings.CopyFrom(MakeConstSpan(settings, settings_len)) ||
+ if (!config.protocol.CopyFrom(Span(proto, proto_len)) ||
+ !config.settings.CopyFrom(Span(settings, settings_len)) ||
!ssl->config->alps_configs.Push(std::move(config))) {
return 0;
}
diff --git a/ssl/ssl_privkey.cc b/ssl/ssl_privkey.cc
index 8458d34..7cc8d73 100644
--- a/ssl/ssl_privkey.cc
+++ b/ssl/ssl_privkey.cc
@@ -208,9 +208,9 @@
// Replay the signature from handshake hints if available.
if (hints && !hs->hints_requested && //
sigalg == hints->signature_algorithm && //
- in == hints->signature_input &&
- MakeConstSpan(spki) == hints->signature_spki &&
- !hints->signature.empty() && //
+ in == hints->signature_input && //
+ Span(spki) == hints->signature_spki && //
+ !hints->signature.empty() && //
hints->signature.size() <= max_out) {
// Signature algorithm and input both match. Reuse the signature from hints.
*out_len = hints->signature.size();
@@ -251,7 +251,7 @@
hints->signature_algorithm = sigalg;
hints->signature_spki = std::move(spki);
if (!hints->signature_input.CopyFrom(in) ||
- !hints->signature.CopyFrom(MakeConstSpan(out, *out_len))) {
+ !hints->signature.CopyFrom(Span(out, *out_len))) {
return ssl_private_key_failure;
}
}
@@ -491,9 +491,9 @@
size_t SSL_get_all_signature_algorithm_names(const char **out, size_t max_out) {
const char *kPredefinedNames[] = {"ecdsa_sha256", "ecdsa_sha384",
"ecdsa_sha512"};
- return GetAllNames(out, max_out, MakeConstSpan(kPredefinedNames),
+ return GetAllNames(out, max_out, kPredefinedNames,
&SignatureAlgorithmName::name,
- MakeConstSpan(kSignatureAlgorithmNames));
+ Span(kSignatureAlgorithmNames));
}
int SSL_get_signature_algorithm_key_type(uint16_t sigalg) {
@@ -603,7 +603,7 @@
return 0;
}
- return set_sigalg_prefs(&cred->sigalgs, MakeConstSpan(prefs, num_prefs));
+ return set_sigalg_prefs(&cred->sigalgs, Span(prefs, num_prefs));
}
int SSL_CTX_set_signing_algorithm_prefs(SSL_CTX *ctx, const uint16_t *prefs,
@@ -899,8 +899,7 @@
int SSL_CTX_set_verify_algorithm_prefs(SSL_CTX *ctx, const uint16_t *prefs,
size_t num_prefs) {
- return set_sigalg_prefs(&ctx->verify_sigalgs,
- MakeConstSpan(prefs, num_prefs));
+ return set_sigalg_prefs(&ctx->verify_sigalgs, Span(prefs, num_prefs));
}
int SSL_set_verify_algorithm_prefs(SSL *ssl, const uint16_t *prefs,
@@ -910,6 +909,5 @@
return 0;
}
- return set_sigalg_prefs(&ssl->config->verify_sigalgs,
- MakeConstSpan(prefs, num_prefs));
+ return set_sigalg_prefs(&ssl->config->verify_sigalgs, Span(prefs, num_prefs));
}
diff --git a/ssl/ssl_session.cc b/ssl/ssl_session.cc
index 52ce2d1..3956d06 100644
--- a/ssl/ssl_session.cc
+++ b/ssl/ssl_session.cc
@@ -457,7 +457,7 @@
bool ssl_session_is_context_valid(const SSL_HANDSHAKE *hs,
const SSL_SESSION *session) {
return session != nullptr &&
- MakeConstSpan(session->sid_ctx) == hs->config->cert->sid_ctx;
+ Span(session->sid_ctx) == hs->config->cert->sid_ctx;
}
bool ssl_session_is_time_valid(const SSL *ssl, const SSL_SESSION *session) {
@@ -590,9 +590,9 @@
ssl_client_hello_get_extension(client_hello, &ticket,
TLSEXT_TYPE_session_ticket);
if (tickets_supported && CBS_len(&ticket) != 0) {
- switch (ssl_process_ticket(hs, &session, &renew_ticket, ticket,
- MakeConstSpan(client_hello->session_id,
- client_hello->session_id_len))) {
+ switch (ssl_process_ticket(
+ hs, &session, &renew_ticket, ticket,
+ Span(client_hello->session_id, client_hello->session_id_len))) {
case ssl_ticket_aead_success:
break;
case ssl_ticket_aead_ignore_ticket:
@@ -607,7 +607,7 @@
// The client didn't send a ticket, so the session ID is a real ID.
enum ssl_hs_wait_t lookup_ret = ssl_lookup_session(
hs, &session,
- MakeConstSpan(client_hello->session_id, client_hello->session_id_len));
+ Span(client_hello->session_id, client_hello->session_id_len));
if (lookup_ret != ssl_hs_ok) {
return lookup_ret;
}
@@ -846,7 +846,7 @@
int SSL_SESSION_set1_id(SSL_SESSION *session, const uint8_t *sid,
size_t sid_len) {
- if (!session->session_id.TryCopyFrom(MakeConstSpan(sid, sid_len))) {
+ if (!session->session_id.TryCopyFrom(Span(sid, sid_len))) {
OPENSSL_PUT_ERROR(SSL, SSL_R_SSL_SESSION_ID_TOO_LONG);
return 0;
}
@@ -939,7 +939,7 @@
int SSL_SESSION_set1_id_context(SSL_SESSION *session, const uint8_t *sid_ctx,
size_t sid_ctx_len) {
- if (!session->sid_ctx.TryCopyFrom(MakeConstSpan(sid_ctx, sid_ctx_len))) {
+ if (!session->sid_ctx.TryCopyFrom(Span(sid_ctx, sid_ctx_len))) {
OPENSSL_PUT_ERROR(SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG);
return 0;
}
@@ -969,7 +969,7 @@
int SSL_SESSION_set_ticket(SSL_SESSION *session, const uint8_t *ticket,
size_t ticket_len) {
- return session->ticket.CopyFrom(MakeConstSpan(ticket, ticket_len));
+ return session->ticket.CopyFrom(Span(ticket, ticket_len));
}
uint32_t SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *session) {
diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc
index cf072a7..7bbdb13 100644
--- a/ssl/ssl_test.cc
+++ b/ssl/ssl_test.cc
@@ -2194,7 +2194,7 @@
ssl.get(), &parsed,
// Skip record and handshake headers. This assumes the ClientHello
// fits in one record.
- MakeConstSpan(client_hello)
+ Span(client_hello)
.subspan(SSL3_RT_HEADER_LENGTH + SSL3_HM_HEADER_LENGTH)) ||
!SSL_early_callback_ctx_extension_get(
&parsed, TLSEXT_TYPE_encrypted_client_hello, &unused, out_ech_len)) {
@@ -2254,64 +2254,61 @@
}
TEST(SSLTest, ECHPublicName) {
- auto str_to_span = [](const char *str) -> Span<const uint8_t> {
- return MakeConstSpan(reinterpret_cast<const uint8_t *>(str), strlen(str));
- };
-
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("")));
- EXPECT_TRUE(ssl_is_valid_ech_public_name(str_to_span("example.com")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span(".example.com")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("example.com.")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("example..com")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("www.-example.com")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("www.example-.com")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("")));
+ EXPECT_TRUE(ssl_is_valid_ech_public_name(StringAsBytes("example.com")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes(".example.com")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("example.com.")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("example..com")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("www.-example.com")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("www.example-.com")));
EXPECT_FALSE(
- ssl_is_valid_ech_public_name(str_to_span("no_underscores.example")));
- EXPECT_FALSE(
- ssl_is_valid_ech_public_name(str_to_span("invalid_chars.\x01.example")));
- EXPECT_FALSE(
- ssl_is_valid_ech_public_name(str_to_span("invalid_chars.\xff.example")));
+ ssl_is_valid_ech_public_name(StringAsBytes("no_underscores.example")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(
+ StringAsBytes("invalid_chars.\x01.example")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(
+ StringAsBytes("invalid_chars.\xff.example")));
static const uint8_t kWithNUL[] = {'t', 'e', 's', 't', 0};
EXPECT_FALSE(ssl_is_valid_ech_public_name(kWithNUL));
// Test an LDH label with every character and the maximum length.
- EXPECT_TRUE(ssl_is_valid_ech_public_name(str_to_span(
+ EXPECT_TRUE(ssl_is_valid_ech_public_name(StringAsBytes(
"abcdefhijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span(
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes(
"abcdefhijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-01234567899")));
// Inputs with trailing numeric components are rejected.
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("127.0.0.1")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("example.1")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("example.01")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("example.0x01")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("example.0X01")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("127.0.0.1")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("example.1")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("example.01")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("example.0x01")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("example.0X01")));
// Leading zeros and values that overflow |uint32_t| are still rejected.
EXPECT_FALSE(ssl_is_valid_ech_public_name(
- str_to_span("example.123456789000000000000000")));
+ StringAsBytes("example.123456789000000000000000")));
EXPECT_FALSE(ssl_is_valid_ech_public_name(
- str_to_span("example.012345678900000000000000")));
+ StringAsBytes("example.012345678900000000000000")));
EXPECT_FALSE(ssl_is_valid_ech_public_name(
- str_to_span("example.0x123456789abcdefABCDEF0")));
+ StringAsBytes("example.0x123456789abcdefABCDEF0")));
EXPECT_FALSE(ssl_is_valid_ech_public_name(
- str_to_span("example.0x0123456789abcdefABCDEF")));
+ StringAsBytes("example.0x0123456789abcdefABCDEF")));
// Adding a non-digit or non-hex character makes it a valid DNS name again.
// Single-component numbers are rejected.
- EXPECT_TRUE(ssl_is_valid_ech_public_name(str_to_span("example.1234567890a")));
EXPECT_TRUE(
- ssl_is_valid_ech_public_name(str_to_span("example.01234567890a")));
+ ssl_is_valid_ech_public_name(StringAsBytes("example.1234567890a")));
EXPECT_TRUE(
- ssl_is_valid_ech_public_name(str_to_span("example.0x123456789abcdefg")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("1")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("01")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("0x01")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("0X01")));
+ ssl_is_valid_ech_public_name(StringAsBytes("example.01234567890a")));
+ EXPECT_TRUE(ssl_is_valid_ech_public_name(
+ StringAsBytes("example.0x123456789abcdefg")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("1")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("01")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("0x01")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("0X01")));
// Numbers with trailing dots are rejected. (They are already rejected by the
// LDH label rules, but the WHATWG URL parser additionally rejects them.)
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("1.")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("01.")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("0x01.")));
- EXPECT_FALSE(ssl_is_valid_ech_public_name(str_to_span("0X01.")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("1.")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("01.")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("0x01.")));
+ EXPECT_FALSE(ssl_is_valid_ech_public_name(StringAsBytes("0X01.")));
}
// When using the built-in verifier, test that |SSL_get0_ech_name_override| is
@@ -4844,18 +4841,18 @@
Bytes(CRYPTO_BUFFER_data(subject_buf.get()),
CRYPTO_BUFFER_len(subject_buf.get())));
#if !defined(BORINGSSL_SHARED_LIBRARY)
- ASSERT_FALSE(cred->ChainContainsIssuer(
- MakeConstSpan(CRYPTO_BUFFER_data(subject_buf.get()),
- CRYPTO_BUFFER_len(subject_buf.get()))));
+ ASSERT_FALSE(
+ cred->ChainContainsIssuer(Span(CRYPTO_BUFFER_data(subject_buf.get()),
+ CRYPTO_BUFFER_len(subject_buf.get()))));
#endif
ASSERT_TRUE(
SSL_CREDENTIAL_set1_cert_chain(cred.get(), chain.data(), chain.size()));
#if !defined(BORINGSSL_SHARED_LIBRARY)
- ASSERT_TRUE(cred->ChainContainsIssuer(
- MakeConstSpan(CRYPTO_BUFFER_data(subject_buf.get()),
- CRYPTO_BUFFER_len(subject_buf.get()))));
+ ASSERT_TRUE(
+ cred->ChainContainsIssuer(Span(CRYPTO_BUFFER_data(subject_buf.get()),
+ CRYPTO_BUFFER_len(subject_buf.get()))));
#endif
ASSERT_TRUE(SSL_CREDENTIAL_set1_cert_chain(cred2.get(), test_chain.data(),
@@ -6947,23 +6944,22 @@
static int SetReadSecretCallback(SSL *ssl, ssl_encryption_level_t level,
const SSL_CIPHER *cipher,
const uint8_t *secret, size_t secret_len) {
- return TransportFromSSL(ssl)->SetReadSecret(
- level, cipher, MakeConstSpan(secret, secret_len));
+ return TransportFromSSL(ssl)->SetReadSecret(level, cipher,
+ Span(secret, secret_len));
}
static int SetWriteSecretCallback(SSL *ssl, ssl_encryption_level_t level,
const SSL_CIPHER *cipher,
const uint8_t *secret, size_t secret_len) {
- return TransportFromSSL(ssl)->SetWriteSecret(
- level, cipher, MakeConstSpan(secret, secret_len));
+ return TransportFromSSL(ssl)->SetWriteSecret(level, cipher,
+ Span(secret, secret_len));
}
static int AddHandshakeDataCallback(SSL *ssl,
enum ssl_encryption_level_t level,
const uint8_t *data, size_t len) {
EXPECT_EQ(level, SSL_quic_write_level(ssl));
- return TransportFromSSL(ssl)->WriteHandshakeData(level,
- MakeConstSpan(data, len));
+ return TransportFromSSL(ssl)->WriteHandshakeData(level, Span(data, len));
}
static int FlushFlightCallback(SSL *ssl) { return 1; }
@@ -7492,7 +7488,7 @@
const uint8_t *data, size_t len) -> int {
// Switch everything to the initial level.
return TransportFromSSL(ssl)->WriteHandshakeData(ssl_encryption_initial,
- MakeConstSpan(data, len));
+ Span(data, len));
};
SSL_QUIC_METHOD quic_method = DefaultQUICMethod();
@@ -8094,7 +8090,7 @@
const SSL_SESSION *session = SSL_get_session(ssl);
unsigned len;
const uint8_t *data = SSL_SESSION_get_id(session, &len);
- return MakeConstSpan(data, len);
+ return Span(data, len);
}
TEST_P(SSLVersionTest, TicketSessionIDsMatch) {
@@ -8142,9 +8138,9 @@
ASSERT_EQ(2u * (kKeyLen + kNonceLen), SSL_get_key_block_len(server));
uint8_t key_block[2u * (kKeyLen + kNonceLen)];
ASSERT_TRUE(SSL_generate_key_block(server, key_block, sizeof(key_block)));
- Span<uint8_t> key = MakeSpan(key_block + kKeyLen, kKeyLen);
+ Span<uint8_t> key = Span(key_block).subspan(kKeyLen, kKeyLen);
Span<uint8_t> nonce =
- MakeSpan(key_block + kKeyLen + kKeyLen + kNonceLen, kNonceLen);
+ Span(key_block).subspan(kKeyLen + kKeyLen + kNonceLen, kNonceLen);
uint8_t ad[13];
uint64_t seq = SSL_get_write_sequence(server);
diff --git a/ssl/ssl_transcript.cc b/ssl/ssl_transcript.cc
index c8bee47..2238395 100644
--- a/ssl/ssl_transcript.cc
+++ b/ssl/ssl_transcript.cc
@@ -127,7 +127,7 @@
static_cast<uint8_t>(hash_len)};
if (!EVP_DigestInit_ex(hash_.get(), Digest(), nullptr) ||
!AddToBufferOrHash(header) ||
- !AddToBufferOrHash(MakeConstSpan(old_hash, hash_len))) {
+ !AddToBufferOrHash(Span(old_hash, hash_len))) {
return false;
}
return true;
@@ -207,8 +207,8 @@
std::string_view label = from_server ? "server finished" : "client finished";
static const size_t kFinishedLen = 12;
- if (!tls1_prf(Digest(), MakeSpan(out, kFinishedLen), session->secret, label,
- MakeConstSpan(digest, digest_len), {})) {
+ if (!tls1_prf(Digest(), Span(out, kFinishedLen), session->secret, label,
+ Span(digest, digest_len), {})) {
return false;
}
diff --git a/ssl/ssl_versions.cc b/ssl/ssl_versions.cc
index 0d9b0c0..1b80311 100644
--- a/ssl/ssl_versions.cc
+++ b/ssl/ssl_versions.cc
@@ -407,8 +407,8 @@
}
size_t SSL_get_all_version_names(const char **out, size_t max_out) {
- return GetAllNames(out, max_out, MakeConstSpan(&kUnknownVersion, 1),
- &VersionInfo::name, MakeConstSpan(kVersionNames));
+ return GetAllNames(out, max_out, Span(&kUnknownVersion, 1),
+ &VersionInfo::name, Span(kVersionNames));
}
const char *SSL_SESSION_get_version(const SSL_SESSION *session) {
diff --git a/ssl/t1_enc.cc b/ssl/t1_enc.cc
index 31a2423..148fca7 100644
--- a/ssl/t1_enc.cc
+++ b/ssl/t1_enc.cc
@@ -88,7 +88,7 @@
const size_t key_block_size = 2 * (mac_secret_len + key_len + iv_len);
if (key_block_cache->empty()) {
if (!key_block_cache->InitForOverwrite(key_block_size) ||
- !generate_key_block(ssl, MakeSpan(*key_block_cache), session)) {
+ !generate_key_block(ssl, Span(*key_block_cache), session)) {
return false;
}
}
@@ -148,8 +148,7 @@
size_t digests_len;
if (!hs->transcript.GetHash(digests, &digests_len) ||
!tls1_prf(hs->transcript.Digest(), out, premaster,
- "extended master secret", MakeConstSpan(digests, digests_len),
- {})) {
+ "extended master secret", Span(digests, digests_len), {})) {
return false;
}
} else {
@@ -192,7 +191,7 @@
return 0;
}
- return generate_key_block(ssl, MakeSpan(out, out_len), SSL_get_session(ssl));
+ return generate_key_block(ssl, Span(out, out_len), SSL_get_session(ssl));
}
int SSL_export_keying_material(SSL *ssl, uint8_t *out, size_t out_len,
@@ -212,8 +211,7 @@
context_len = 0;
}
return tls13_export_keying_material(ssl, out_span, ssl->s3->exporter_secret,
- label_sv,
- MakeConstSpan(context, context_len));
+ label_sv, Span(context, context_len));
}
// Exporters may be used in False Start, where the handshake has progressed
diff --git a/ssl/test/bssl_shim.cc b/ssl/test/bssl_shim.cc
index ac79979..968b95c 100644
--- a/ssl/test/bssl_shim.cc
+++ b/ssl/test/bssl_shim.cc
@@ -927,9 +927,7 @@
bssl::Span<const uint8_t> expected =
config->expect_no_ech_retry_configs
? bssl::Span<const uint8_t>()
- : bssl::MakeConstSpan(reinterpret_cast<const uint8_t *>(
- config->expect_ech_retry_configs.data()),
- config->expect_ech_retry_configs.size());
+ : bssl::StringAsBytes(config->expect_ech_retry_configs);
if (ret) {
fprintf(stderr, "Expected ECH rejection, but connection succeeded.\n");
return false;
@@ -944,7 +942,7 @@
const uint8_t *retry_configs;
size_t retry_configs_len;
SSL_get0_ech_retry_configs(ssl.get(), &retry_configs, &retry_configs_len);
- if (bssl::MakeConstSpan(retry_configs, retry_configs_len) != expected) {
+ if (bssl::Span(retry_configs, retry_configs_len) != expected) {
fprintf(stderr, "ECH retry configs did not match expectations.\n");
// Clear the error queue. Otherwise |SSL_R_ECH_REJECTED| will be printed
// to stderr and the test framework will think the test had the expected
diff --git a/ssl/test/handshake_util.cc b/ssl/test/handshake_util.cc
index cff6a6f..038ba40 100644
--- a/ssl/test/handshake_util.cc
+++ b/ssl/test/handshake_util.cc
@@ -720,10 +720,9 @@
bool has_hints;
std::vector<uint8_t> hints;
- if (!RequestHandshakeHint(
- GetTestConfig(ssl), is_resume,
- MakeConstSpan(CBB_data(input.get()), CBB_len(input.get())),
- &has_hints, &hints)) {
+ if (!RequestHandshakeHint(GetTestConfig(ssl), is_resume,
+ Span(CBB_data(input.get()), CBB_len(input.get())),
+ &has_hints, &hints)) {
return false;
}
if (has_hints &&
diff --git a/ssl/test/mock_quic_transport.cc b/ssl/test/mock_quic_transport.cc
index ea278ed..68ff2cc 100644
--- a/ssl/test/mock_quic_transport.cc
+++ b/ssl/test/mock_quic_transport.cc
@@ -112,7 +112,7 @@
// If we receive early data records without any early data keys, skip
// the record. This means early data was rejected.
std::vector<uint8_t> discard(remaining_bytes);
- if (!ReadAll(bio_.get(), bssl::MakeSpan(discard))) {
+ if (!ReadAll(bio_.get(), bssl::Span(discard))) {
return false;
}
continue;
@@ -134,7 +134,7 @@
return false;
}
remaining_bytes -= secret.size();
- if (!ReadAll(bio_.get(), bssl::MakeSpan(read_secret))) {
+ if (!ReadAll(bio_.get(), bssl::Span(read_secret))) {
fprintf(stderr, "Error reading record secret.\n");
return false;
}
@@ -161,7 +161,7 @@
}
std::vector<uint8_t> buf(len);
- if (!ReadAll(bio_.get(), bssl::MakeSpan(buf))) {
+ if (!ReadAll(bio_.get(), bssl::Span(buf))) {
return false;
}
return SSL_provide_quic_data(ssl_, level, buf.data(), buf.size());
@@ -199,7 +199,7 @@
}
std::vector<uint8_t> buf(len);
- if (!ReadAll(bio_.get(), bssl::MakeSpan(buf))) {
+ if (!ReadAll(bio_.get(), bssl::Span(buf))) {
return -1;
}
if (SSL_provide_quic_data(ssl_, level, buf.data(), buf.size()) != 1) {
@@ -225,7 +225,7 @@
buf = pending_app_data_.data();
}
app_data_offset_ = 0;
- if (!ReadAll(bio_.get(), bssl::MakeSpan(buf, len))) {
+ if (!ReadAll(bio_.get(), bssl::Span(buf, len))) {
return -1;
}
if (len > max_out) {
diff --git a/ssl/test/test_config.cc b/ssl/test/test_config.cc
index 9d37bd1..1396b2c 100644
--- a/ssl/test/test_config.cc
+++ b/ssl/test/test_config.cc
@@ -1239,7 +1239,7 @@
return 1;
}
- auto out_span = bssl::MakeSpan(out, max_out_len);
+ auto out_span = bssl::Span(out, max_out_len);
// Encrypt the ticket with the all zero key and a random nonce.
static const uint8_t kKey[16] = {0};
const EVP_AEAD *aead = EVP_aead_aes_128_gcm_siv();
@@ -1268,7 +1268,7 @@
size_t max_out_len,
const uint8_t *in,
size_t in_len) {
- auto in_span = bssl::MakeSpan(in, in_len);
+ auto in_span = bssl::Span(in, in_len);
const TestConfig *test_config = GetTestConfig(ssl);
TestState *test_state = GetTestState(ssl);
if (test_state->ticket_decrypt_done) {
diff --git a/ssl/tls13_both.cc b/ssl/tls13_both.cc
index 5594a65..f547c21 100644
--- a/ssl/tls13_both.cc
+++ b/ssl/tls13_both.cc
@@ -373,7 +373,7 @@
if (!tls13_finished_mac(hs, verify_data_buf, &len, !ssl->server)) {
return false;
}
- verify_data = MakeConstSpan(verify_data_buf, len);
+ verify_data = Span(verify_data_buf, len);
}
bool finished_ok =
@@ -522,7 +522,7 @@
SSL_HANDSHAKE_HINTS *const hints = hs->hints.get();
if (hints && !hs->hints_requested &&
hints->cert_compression_alg_id == hs->cert_compression_alg_id &&
- hints->cert_compression_input == MakeConstSpan(msg) &&
+ hints->cert_compression_input == Span(msg) &&
!hints->cert_compression_output.empty()) {
if (!CBB_add_bytes(&compressed, hints->cert_compression_output.data(),
hints->cert_compression_output.size())) {
@@ -538,7 +538,7 @@
hints->cert_compression_alg_id = hs->cert_compression_alg_id;
if (!hints->cert_compression_input.CopyFrom(msg) ||
!hints->cert_compression_output.CopyFrom(
- MakeConstSpan(CBB_data(&compressed), CBB_len(&compressed)))) {
+ Span(CBB_data(&compressed), CBB_len(&compressed)))) {
return false;
}
}
diff --git a/ssl/tls13_client.cc b/ssl/tls13_client.cc
index f8f2250..35b3109 100644
--- a/ssl/tls13_client.cc
+++ b/ssl/tls13_client.cc
@@ -117,9 +117,8 @@
// 5). The client could have sent a session ID indicating its willingness to
// resume a DTLS 1.2 session, so just checking that the session IDs match is
// incorrect.
- Span<const uint8_t> expected_session_id = SSL_is_dtls(hs->ssl)
- ? Span<const uint8_t>()
- : MakeConstSpan(hs->session_id);
+ Span<const uint8_t> expected_session_id =
+ SSL_is_dtls(hs->ssl) ? Span<const uint8_t>() : Span(hs->session_id);
// RFC 8446 fixes some legacy values. Check them.
if (out->legacy_version != expected_version || //
@@ -496,8 +495,8 @@
size_t hash_len = EVP_MD_size(
ssl_get_handshake_digest(ssl_protocol_version(ssl), hs->new_cipher));
if (!tls13_init_key_schedule(hs, ssl->s3->session_reused
- ? MakeConstSpan(hs->new_session->secret)
- : MakeConstSpan(kZeroes, hash_len))) {
+ ? Span(hs->new_session->secret)
+ : Span(kZeroes, hash_len))) {
return ssl_hs_error;
}
@@ -582,8 +581,7 @@
ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
return ssl_hs_error;
}
- if (MakeConstSpan(hs->early_session->early_alpn) !=
- ssl->s3->alpn_selected) {
+ if (Span(hs->early_session->early_alpn) != ssl->s3->alpn_selected) {
OPENSSL_PUT_ERROR(SSL, SSL_R_ALPN_MISMATCH_ON_EARLY_DATA);
ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
return ssl_hs_error;
@@ -771,8 +769,8 @@
!tls13_process_finished(hs, msg, false /* don't use saved value */) ||
!ssl_hash_message(hs, msg) ||
// Update the secret to the master secret and derive traffic keys.
- !tls13_advance_key_schedule(
- hs, MakeConstSpan(kZeroes, hs->transcript.DigestLen())) ||
+ !tls13_advance_key_schedule(hs,
+ Span(kZeroes, hs->transcript.DigestLen())) ||
!tls13_derive_application_secrets(hs)) {
return ssl_hs_error;
}
diff --git a/ssl/tls13_enc.cc b/ssl/tls13_enc.cc
index 7f1ba57..601bb11 100644
--- a/ssl/tls13_enc.cc
+++ b/ssl/tls13_enc.cc
@@ -144,9 +144,9 @@
unsigned derive_context_len;
return EVP_Digest(nullptr, 0, derive_context, &derive_context_len,
hs->transcript.Digest(), nullptr) &&
- hkdf_expand_label(MakeSpan(hs->secret), hs->transcript.Digest(),
+ hkdf_expand_label(Span(hs->secret), hs->transcript.Digest(),
hs->secret, kTLS13LabelDerived,
- MakeConstSpan(derive_context, derive_context_len),
+ Span(derive_context, derive_context_len),
SSL_is_dtls(hs->ssl)) &&
hkdf_extract_to_secret(hs, hs->transcript, in);
}
@@ -165,8 +165,8 @@
}
out->ResizeForOverwrite(transcript.DigestLen());
- return hkdf_expand_label(MakeSpan(*out), transcript.Digest(), hs->secret,
- label, MakeConstSpan(context_hash, context_hash_len),
+ return hkdf_expand_label(Span(*out), transcript.Digest(), hs->secret, label,
+ Span(context_hash, context_hash_len),
SSL_is_dtls(hs->ssl));
}
@@ -199,8 +199,8 @@
// Derive the key and IV.
uint8_t key_buf[EVP_AEAD_MAX_KEY_LENGTH], iv_buf[EVP_AEAD_MAX_NONCE_LENGTH];
- auto key = MakeSpan(key_buf).first(EVP_AEAD_key_length(aead));
- auto iv = MakeSpan(iv_buf).first(EVP_AEAD_nonce_length(aead));
+ auto key = Span(key_buf).first(EVP_AEAD_key_length(aead));
+ auto iv = Span(iv_buf).first(EVP_AEAD_nonce_length(aead));
if (!hkdf_expand_label(key, digest, traffic_secret, "key", {}, is_dtls) ||
!hkdf_expand_label(iv, digest, traffic_secret, "iv", {}, is_dtls)) {
return false;
@@ -332,7 +332,7 @@
}
uint8_t rne_key_buf[RecordNumberEncrypter::kMaxKeySize];
- auto rne_key = MakeSpan(rne_key_buf).first(ret->KeySize());
+ auto rne_key = Span(rne_key_buf).first(ret->KeySize());
if (!hkdf_expand_label(rne_key, digest, traffic_secret, "sn", {},
/*is_dtls=*/true) ||
!ret->SetKey(rne_key)) {
@@ -403,8 +403,8 @@
bool tls13_rotate_traffic_key(SSL *ssl, enum evp_aead_direction_t direction) {
Span<uint8_t> secret = direction == evp_aead_open
- ? MakeSpan(ssl->s3->read_traffic_secret)
- : MakeSpan(ssl->s3->write_traffic_secret);
+ ? Span(ssl->s3->read_traffic_secret)
+ : Span(ssl->s3->write_traffic_secret);
const SSL_SESSION *session = SSL_get_session(ssl);
const EVP_MD *digest = ssl_session_get_digest(session);
@@ -431,7 +431,7 @@
Span<const uint8_t> secret,
Span<const uint8_t> context, bool is_dtls) {
uint8_t key_buf[EVP_MAX_MD_SIZE];
- auto key = MakeSpan(key_buf, EVP_MD_size(digest));
+ auto key = Span(key_buf, EVP_MD_size(digest));
unsigned len;
if (!hkdf_expand_label(key, digest, secret, kTLS13LabelFinished, {},
is_dtls) ||
@@ -453,7 +453,7 @@
if (!hs->transcript.GetHash(context_hash, &context_hash_len) ||
!tls13_verify_data(out, out_len, hs->transcript.Digest(),
hs->ssl->s3->version, traffic_secret,
- MakeConstSpan(context_hash, context_hash_len),
+ Span(context_hash, context_hash_len),
SSL_is_dtls(hs->ssl))) {
return false;
}
@@ -468,7 +468,7 @@
// The session initially stores the resumption_master_secret, which we
// override with the PSK.
assert(session->secret.size() == EVP_MD_size(digest));
- return hkdf_expand_label(MakeSpan(session->secret), digest, session->secret,
+ return hkdf_expand_label(Span(session->secret), digest, session->secret,
kTLS13LabelResumptionPSK, nonce, is_dtls);
}
@@ -497,10 +497,10 @@
return false;
}
- auto hash = MakeConstSpan(hash_buf, hash_len);
- auto export_context = MakeConstSpan(export_context_buf, export_context_len);
+ auto hash = Span(hash_buf, hash_len);
+ auto export_context = Span(export_context_buf, export_context_len);
uint8_t derived_secret_buf[EVP_MAX_MD_SIZE];
- auto derived_secret = MakeSpan(derived_secret_buf, EVP_MD_size(digest));
+ auto derived_secret = Span(derived_secret_buf, EVP_MD_size(digest));
return hkdf_expand_label(derived_secret, digest, secret, label,
export_context, SSL_is_dtls(ssl)) &&
hkdf_expand_label(out, digest, derived_secret, kTLS13LabelExportKeying,
@@ -525,16 +525,16 @@
uint8_t early_secret[EVP_MAX_MD_SIZE] = {0};
size_t early_secret_len;
uint8_t binder_key_buf[EVP_MAX_MD_SIZE] = {0};
- auto binder_key = MakeSpan(binder_key_buf, EVP_MD_size(digest));
+ auto binder_key = Span(binder_key_buf, EVP_MD_size(digest));
if (!EVP_Digest(nullptr, 0, binder_context, &binder_context_len, digest,
nullptr) ||
!HKDF_extract(early_secret, &early_secret_len, digest,
session->secret.data(), session->secret.size(), nullptr,
0) ||
- !hkdf_expand_label(
- binder_key, digest, MakeConstSpan(early_secret, early_secret_len),
- kTLS13LabelPSKBinder,
- MakeConstSpan(binder_context, binder_context_len), is_dtls)) {
+ !hkdf_expand_label(binder_key, digest,
+ Span(early_secret, early_secret_len),
+ kTLS13LabelPSKBinder,
+ Span(binder_context, binder_context_len), is_dtls)) {
return false;
}
@@ -573,7 +573,7 @@
}
if (!tls13_verify_data(out, out_len, digest, session->ssl_version, binder_key,
- MakeConstSpan(context, context_len), is_dtls)) {
+ Span(context, context_len), is_dtls)) {
return false;
}
@@ -691,9 +691,9 @@
assert(out.size() == ECH_CONFIRMATION_SIGNAL_LEN);
return hkdf_expand_label(
- out, transcript.Digest(), MakeConstSpan(secret, secret_len),
+ out, transcript.Digest(), Span(secret, secret_len),
is_hrr ? "hrr ech accept confirmation" : "ech accept confirmation",
- MakeConstSpan(context, context_len), SSL_is_dtls(hs->ssl));
+ Span(context, context_len), SSL_is_dtls(hs->ssl));
}
BSSL_NAMESPACE_END
diff --git a/ssl/tls13_server.cc b/ssl/tls13_server.cc
index afc75d8..c59477e 100644
--- a/ssl/tls13_server.cc
+++ b/ssl/tls13_server.cc
@@ -268,7 +268,7 @@
// would in a TLS 1.3 handshake.
if (!SSL_is_dtls(ssl)) {
hs->session_id.CopyFrom(
- MakeConstSpan(client_hello.session_id, client_hello.session_id_len));
+ Span(client_hello.session_id, client_hello.session_id_len));
}
Array<SSL_CREDENTIAL *> creds;
@@ -513,12 +513,12 @@
} else if (hs->channel_id_negotiated) {
// Channel ID is incompatible with 0-RTT.
ssl->s3->early_data_reason = ssl_early_data_channel_id;
- } else if (MakeConstSpan(ssl->s3->alpn_selected) != session->early_alpn) {
+ } else if (Span(ssl->s3->alpn_selected) != session->early_alpn) {
// The negotiated ALPN must match the one in the ticket.
ssl->s3->early_data_reason = ssl_early_data_alpn_mismatch;
} else if (hs->new_session->has_application_settings !=
session->has_application_settings ||
- MakeConstSpan(hs->new_session->local_application_settings) !=
+ Span(hs->new_session->local_application_settings) !=
session->local_application_settings) {
ssl->s3->early_data_reason = ssl_early_data_alps_mismatch;
} else if (ssl->s3->ticket_age_skew < -kMaxTicketAgeSkewSeconds ||
@@ -578,8 +578,8 @@
// Set up the key schedule and incorporate the PSK into the running secret.
if (!tls13_init_key_schedule(hs, ssl->s3->session_reused
- ? MakeConstSpan(hs->new_session->secret)
- : MakeConstSpan(kZeroes, hash_len)) ||
+ ? Span(hs->new_session->secret)
+ : Span(kZeroes, hash_len)) ||
!ssl_hash_message(hs, msg)) {
return ssl_hs_error;
}
@@ -652,7 +652,7 @@
// Now that the message is encoded, fill in the whole value.
size_t offset = hrr.size() - ECH_CONFIRMATION_SIGNAL_LEN;
if (!ssl_ech_accept_confirmation(
- hs, MakeSpan(hrr).last(ECH_CONFIRMATION_SIGNAL_LEN),
+ hs, Span(hrr).last(ECH_CONFIRMATION_SIGNAL_LEN),
ssl->s3->client_random, hs->transcript, /*is_hrr=*/true, hrr,
offset)) {
return ssl_hs_error;
@@ -850,7 +850,7 @@
// Update |server_hello|.
Span<uint8_t> server_hello_out =
- MakeSpan(server_hello).subspan(offset, ECH_CONFIRMATION_SIGNAL_LEN);
+ Span(server_hello).subspan(offset, ECH_CONFIRMATION_SIGNAL_LEN);
OPENSSL_memcpy(server_hello_out.data(), random_suffix.data(),
ECH_CONFIRMATION_SIGNAL_LEN);
}
@@ -965,8 +965,8 @@
hs->can_release_private_key = true;
if (!tls13_add_finished(hs) ||
// Update the secret to the master secret and derive traffic keys.
- !tls13_advance_key_schedule(
- hs, MakeConstSpan(kZeroes, hs->transcript.DigestLen())) ||
+ !tls13_advance_key_schedule(hs,
+ Span(kZeroes, hs->transcript.DigestLen())) ||
!tls13_derive_application_secrets(hs) ||
!tls13_set_traffic_key(ssl, ssl_encryption_application, evp_aead_seal,
hs->new_session.get(),
diff --git a/ssl/tls_record.cc b/ssl/tls_record.cc
index bccaaf3..32034fc 100644
--- a/ssl/tls_record.cc
+++ b/ssl/tls_record.cc
@@ -179,7 +179,7 @@
// Decrypt the body in-place.
if (!ssl->s3->aead_read_ctx->Open(
out, type, version, ssl->s3->read_sequence, header,
- MakeSpan(const_cast<uint8_t *>(CBS_data(&body)), CBS_len(&body)))) {
+ Span(const_cast<uint8_t *>(CBS_data(&body)), CBS_len(&body)))) {
if (ssl->s3->skip_early_data && !ssl->s3->aead_read_ctx->is_null_cipher()) {
ERR_clear_error();
return skip_early_data(ssl, out_alert, *out_consumed);
@@ -292,7 +292,7 @@
out_prefix[2] = record_version & 0xff;
out_prefix[3] = ciphertext_len >> 8;
out_prefix[4] = ciphertext_len & 0xff;
- Span<const uint8_t> header = MakeSpan(out_prefix, SSL3_RT_HEADER_LENGTH);
+ Span<const uint8_t> header = Span(out_prefix, SSL3_RT_HEADER_LENGTH);
// Ensure the sequence number update does not overflow.
if (ssl->s3->write_sequence + 1 == 0) {
diff --git a/tool/generate_ech.cc b/tool/generate_ech.cc
index b0d4a5b..f32ad03 100644
--- a/tool/generate_ech.cc
+++ b/tool/generate_ech.cc
@@ -119,13 +119,12 @@
fprintf(stderr, "Failed to serialize the ECHConfigList\n");
return false;
}
- if (!WriteToFile(
- args_map["-out-ech-config-list"],
- bssl::MakeConstSpan(CBB_data(cbb.get()), CBB_len(cbb.get()))) ||
+ if (!WriteToFile(args_map["-out-ech-config-list"],
+ bssl::Span(CBB_data(cbb.get()), CBB_len(cbb.get()))) ||
!WriteToFile(args_map["-out-ech-config"],
- bssl::MakeConstSpan(ech_config, ech_config_len)) ||
+ bssl::Span(ech_config, ech_config_len)) ||
!WriteToFile(args_map["-out-private-key"],
- bssl::MakeConstSpan(private_key, private_key_len))) {
+ bssl::Span(private_key, private_key_len))) {
fprintf(stderr, "Failed to write ECHConfig or private key to file\n");
return false;
}
diff --git a/util/fipstools/acvp/modulewrapper/modulewrapper.cc b/util/fipstools/acvp/modulewrapper/modulewrapper.cc
index 7d4a0fc..92f7fa9 100644
--- a/util/fipstools/acvp/modulewrapper/modulewrapper.cc
+++ b/util/fipstools/acvp/modulewrapper/modulewrapper.cc
@@ -2264,7 +2264,7 @@
}
return write_reply(
- {pub_key_bytes, MakeConstSpan(CBB_data(cbb.get()), CBB_len(cbb.get()))});
+ {pub_key_bytes, Span(CBB_data(cbb.get()), CBB_len(cbb.get()))});
}
template <typename PrivateKey, size_t SignatureBytes,
@@ -2275,7 +2275,7 @@
const uint8_t *)>
static bool MLDSASigGen(const Span<const uint8_t> args[],
ReplyCallback write_reply) {
- CBS cbs = bssl::MakeConstSpan(args[0]);
+ CBS cbs = args[0];
auto priv = std::make_unique<PrivateKey>();
if (ParsePrivateKey(priv.get(), &cbs) != bcm_status::approved) {
LOG_ERROR("Failed to parse ML-DSA private key.\n");
@@ -2314,7 +2314,7 @@
const Span<const uint8_t> msg = args[1];
const Span<const uint8_t> signature = args[2];
- CBS cbs = bssl::MakeConstSpan(pub_key_bytes);
+ CBS cbs = pub_key_bytes;
auto pub = std::make_unique<PublicKey>();
if (ParsePublicKey(pub.get(), &cbs) != bcm_status::approved) {
LOG_ERROR("Failed to parse ML-DSA public key.\n");
@@ -2358,7 +2358,7 @@
}
return write_reply(
- {pub_key_bytes, MakeConstSpan(CBB_data(cbb.get()), CBB_len(cbb.get()))});
+ {pub_key_bytes, Span(CBB_data(cbb.get()), CBB_len(cbb.get()))});
}
template <typename PublicKey, bcm_status (*ParsePublic)(PublicKey *, CBS *),
@@ -2376,7 +2376,7 @@
}
auto pub = std::make_unique<PublicKey>();
- CBS cbs = bssl::MakeConstSpan(pub_key_bytes);
+ CBS cbs = pub_key_bytes;
if (!bcm_success(ParsePublic(pub.get(), &cbs)) || CBS_len(&cbs) != 0) {
LOG_ERROR("Failed to parse public key.\n");
return false;
@@ -2398,7 +2398,7 @@
const Span<const uint8_t> ciphertext = args[1];
auto priv = std::make_unique<PrivateKey>();
- CBS cbs = bssl::MakeConstSpan(priv_key_bytes);
+ CBS cbs = priv_key_bytes;
if (!bcm_success(ParsePrivate(priv.get(), &cbs))) {
LOG_ERROR("Failed to parse private key.\n");
return false;