aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pubkey.cpp6
-rw-r--r--src/pubkey.h3
-rw-r--r--src/test/bip324_tests.cpp10
3 files changed, 9 insertions, 10 deletions
diff --git a/src/pubkey.cpp b/src/pubkey.cpp
index 4866feed67..05808e4c22 100644
--- a/src/pubkey.cpp
+++ b/src/pubkey.cpp
@@ -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;
diff --git a/src/pubkey.h b/src/pubkey.h
index 00defa25a0..274779f9a4 100644
--- a/src/pubkey.h
+++ b/src/pubkey.h
@@ -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;
diff --git a/src/test/bip324_tests.cpp b/src/test/bip324_tests.cpp
index 04472611ec..1ed7e23bcf 100644
--- a/src/test/bip324_tests.cpp
+++ b/src/test/bip324_tests.cpp
@@ -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);