diff --git a/src/crypto/chacha20.cpp b/src/crypto/chacha20.cpp index e756e0431e2..b1bd3c54907 100644 --- a/src/crypto/chacha20.cpp +++ b/src/crypto/chacha20.cpp @@ -59,7 +59,7 @@ void ChaCha20Aligned::Seek(Nonce96 nonce, uint32_t block_counter) noexcept inline void ChaCha20Aligned::Keystream(Span output) noexcept { - unsigned char* c = UCharCast(output.data()); + std::byte* c = output.data(); size_t blocks = output.size() / BLOCKLEN; assert(blocks * BLOCKLEN == output.size()); @@ -161,8 +161,8 @@ inline void ChaCha20Aligned::Keystream(Span output) noexcept inline void ChaCha20Aligned::Crypt(Span in_bytes, Span out_bytes) noexcept { assert(in_bytes.size() == out_bytes.size()); - const unsigned char* m = UCharCast(in_bytes.data()); - unsigned char* c = UCharCast(out_bytes.data()); + const std::byte* m = in_bytes.data(); + std::byte* c = out_bytes.data(); size_t blocks = out_bytes.size() / BLOCKLEN; assert(blocks * BLOCKLEN == out_bytes.size()); diff --git a/src/crypto/chacha20poly1305.cpp b/src/crypto/chacha20poly1305.cpp index b969bb1a299..282f32a5e42 100644 --- a/src/crypto/chacha20poly1305.cpp +++ b/src/crypto/chacha20poly1305.cpp @@ -56,8 +56,8 @@ void ComputeTag(ChaCha20& chacha20, Span aad, Span data) { - if (m_bufsize && m_bufsize + data.size() >= sizeof(m_buffer)) { + if (m_bufsize && data.size() >= sizeof(m_buffer) - m_bufsize) { // Fill the buffer and process it. - std::copy(data.begin(), data.begin() + sizeof(m_buffer) - m_bufsize, m_buffer + m_bufsize); + std::copy(data.begin(), data.begin() + (sizeof(m_buffer) - m_bufsize), m_buffer + m_bufsize); data = data.subspan(sizeof(m_buffer) - m_bufsize); m_state[m_pos++] ^= ReadLE64(m_buffer); m_bufsize = 0; diff --git a/src/random.h b/src/random.h index 2a26ca986be..203678b17c6 100644 --- a/src/random.h +++ b/src/random.h @@ -268,12 +268,12 @@ public: { while (span.size() >= 8) { uint64_t gen = Impl().rand64(); - WriteLE64(UCharCast(span.data()), gen); + WriteLE64(span.data(), gen); span = span.subspan(8); } if (span.size() >= 4) { uint32_t gen = Impl().rand32(); - WriteLE32(UCharCast(span.data()), gen); + WriteLE32(span.data(), gen); span = span.subspan(4); } while (span.size()) { @@ -397,7 +397,7 @@ public: if (requires_seed) RandomSeed(); std::array buf; rng.Keystream(buf); - return ReadLE64(UCharCast(buf.data())); + return ReadLE64(buf.data()); } /** Fill a byte Span with random bytes. This overrides the RandomMixin version. */ diff --git a/src/wallet/migrate.cpp b/src/wallet/migrate.cpp index d7d85773743..d2c163027d2 100644 --- a/src/wallet/migrate.cpp +++ b/src/wallet/migrate.cpp @@ -603,7 +603,7 @@ void BerkeleyRODatabase::Open() // Read subdatabase page number // It is written as a big endian 32 bit number - uint32_t main_db_page = ReadBE32(UCharCast(std::get(page.records.at(1)).data.data())); + uint32_t main_db_page = ReadBE32(std::get(page.records.at(1)).data.data()); // The main database is in a page that doesn't exist if (main_db_page > outer_meta.last_page) {