use string/string_view for base64
Some checks are pending
Build Debian packages / bookworm (push) Waiting to run
Build Debian packages / bullseye (push) Waiting to run
Build Debian packages / buster (push) Waiting to run
Build on FreeBSD / with UPnP (push) Waiting to run
Build on OSX / With USE_UPNP=no (push) Waiting to run
Build on OSX / With USE_UPNP=yes (push) Waiting to run
Build on Windows / clang-x86_64 (push) Waiting to run
Build on Windows / i686 (push) Waiting to run
Build on Windows / ucrt-x86_64 (push) Waiting to run
Build on Windows / x86_64 (push) Waiting to run
Build on Windows / CMake clang-x86_64 (push) Waiting to run
Build on Windows / CMake i686 (push) Waiting to run
Build on Windows / CMake ucrt-x86_64 (push) Waiting to run
Build on Windows / CMake x86_64 (push) Waiting to run
Build on Windows / XP (push) Waiting to run
Build on Ubuntu / Make with USE_UPNP=no (push) Waiting to run
Build on Ubuntu / Make with USE_UPNP=yes (push) Waiting to run
Build on Ubuntu / CMake with -DWITH_UPNP=OFF (push) Waiting to run
Build on Ubuntu / CMake with -DWITH_UPNP=ON (push) Waiting to run
Build containers / Building container for linux/amd64 (push) Waiting to run
Build containers / Building container for linux/arm64 (push) Waiting to run
Build containers / Building container for linux/arm/v7 (push) Waiting to run
Build containers / Building container for linux/386 (push) Waiting to run
Build containers / Pushing merged manifest (push) Blocked by required conditions

This commit is contained in:
orignal 2025-03-17 09:06:11 -04:00
parent e0a21cf702
commit 93cc810f29
9 changed files with 142 additions and 120 deletions

View file

@ -281,7 +281,7 @@ namespace data
address->caps = ExtractAddressCaps (value);
else if (key == "s") // ntcp2 or ssu2 static key
{
if (Base64ToByteStream (value.data (), value.length (), address->s, 32) == 32 &&
if (Base64ToByteStream (value, address->s, 32) == 32 &&
!(address->s[31] & 0x80)) // check if x25519 public key
isStaticKey = true;
else
@ -291,14 +291,14 @@ namespace data
{
if (address->IsNTCP2 ())
{
if (Base64ToByteStream (value.data (), value.length (), address->i, 16) == 16)
if (Base64ToByteStream (value, address->i, 16) == 16)
address->published = true; // presence of "i" means "published" NTCP2
else
address->transportStyle = eTransportUnknown; // invalid address
}
else if (address->IsSSU2 ())
{
if (Base64ToByteStream (value.data (), value.length (), address->i, 32) == 32)
if (Base64ToByteStream (value, address->i, 32) == 32)
isIntroKey = true;
else
address->transportStyle = eTransportUnknown; // invalid address
@ -343,7 +343,7 @@ namespace data
LogPrint (eLogWarning, "RouterInfo: 'itag' conversion error: ", std::make_error_code (res.ec).message ());
}
else if (key1 == "ih")
Base64ToByteStream (value.data (), value.length (), introducer.iH, 32);
Base64ToByteStream (value, introducer.iH, 32);
else if (key1 == "iexp")
{
auto res = std::from_chars(value.data(), value.data() + value.size(), introducer.iExp);
@ -1394,9 +1394,7 @@ namespace data
if (!introducer.iTag) continue;
WriteString ("ih" + std::to_string(i), properties);
properties << '=';
char value[64];
size_t l = ByteStreamToBase64 (introducer.iH, 32, value, 64);
value[l] = 0;
auto value = ByteStreamToBase64 (introducer.iH, 32);
WriteString (value, properties);
properties << ';';
i++;