crypto: Spanify EllSwiftPubKey constructor

This commit is contained in:
Pieter Wuille
2023-08-31 10:00:05 -04:00
parent 5f4b2c6d79
commit dc2d7eb810
3 changed files with 9 additions and 10 deletions

View File

@@ -336,6 +336,12 @@ bool CPubKey::Derive(CPubKey& pubkeyChild, ChainCode &ccChild, unsigned int nChi
return true;
}
EllSwiftPubKey::EllSwiftPubKey(Span<const std::byte> ellswift) noexcept
{
assert(ellswift.size() == SIZE);
std::copy(ellswift.begin(), ellswift.end(), m_pubkey.begin());
}
CPubKey EllSwiftPubKey::Decode() const
{
secp256k1_pubkey pubkey;

View File

@@ -303,8 +303,7 @@ public:
EllSwiftPubKey() noexcept = default;
/** Construct a new ellswift public key from a given serialization. */
EllSwiftPubKey(const std::array<std::byte, SIZE>& ellswift) :
m_pubkey(ellswift) {}
EllSwiftPubKey(Span<const std::byte> ellswift) noexcept;
/** Decode to normal compressed CPubKey (for debugging purposes). */
CPubKey Decode() const;

View File

@@ -38,14 +38,8 @@ void TestBIP324PacketVector(
{
// Convert input from hex to char/byte vectors/arrays.
const auto in_priv_ours = ParseHex(in_priv_ours_hex);
const auto in_ellswift_ours_vec = ParseHex<std::byte>(in_ellswift_ours_hex);
assert(in_ellswift_ours_vec.size() == 64);
std::array<std::byte, 64> in_ellswift_ours;
std::copy(in_ellswift_ours_vec.begin(), in_ellswift_ours_vec.end(), in_ellswift_ours.begin());
const auto in_ellswift_theirs_vec = ParseHex<std::byte>(in_ellswift_theirs_hex);
assert(in_ellswift_theirs_vec.size() == 64);
std::array<std::byte, 64> in_ellswift_theirs;
std::copy(in_ellswift_theirs_vec.begin(), in_ellswift_theirs_vec.end(), in_ellswift_theirs.begin());
const auto in_ellswift_ours = ParseHex<std::byte>(in_ellswift_ours_hex);
const auto in_ellswift_theirs = ParseHex<std::byte>(in_ellswift_theirs_hex);
const auto in_contents = ParseHex<std::byte>(in_contents_hex);
const auto in_aad = ParseHex<std::byte>(in_aad_hex);
const auto mid_send_garbage = ParseHex<std::byte>(mid_send_garbage_hex);