From f073fea69b70d72907432721f52c9b5e888cabba Mon Sep 17 00:00:00 2001 From: Jesse Shawl Date: Wed, 7 Feb 2024 06:25:02 -0600 Subject: [PATCH] Public key to_s (#13) --- lib/minisign/public_key.rb | 5 +++++ spec/{minisign_spec.rb => minisign/public_key_spec.rb} | 3 +++ 2 files changed, 8 insertions(+) rename spec/{minisign_spec.rb => minisign/public_key_spec.rb} (93%) diff --git a/lib/minisign/public_key.rb b/lib/minisign/public_key.rb index 9fe9550..afa51d7 100644 --- a/lib/minisign/public_key.rb +++ b/lib/minisign/public_key.rb @@ -41,6 +41,11 @@ def verify(sig, message) "Signature and comment signature verified\nTrusted comment: #{sig.trusted_comment}" end + def to_s + data = Base64.strict_encode64("Ed#{@decoded[2..9]}#{@public_key}") + "untrusted comment: minisign public key #{key_id}\n#{data}\n" + end + private def ensure_matching_key_ids(key_id1, key_id2) diff --git a/spec/minisign_spec.rb b/spec/minisign/public_key_spec.rb similarity index 93% rename from spec/minisign_spec.rb rename to spec/minisign/public_key_spec.rb index 2b029ea..1bda9ef 100644 --- a/spec/minisign_spec.rb +++ b/spec/minisign/public_key_spec.rb @@ -27,4 +27,7 @@ @pk.verify(@signature, @message) end.to raise_error("Signature key id is 4CB7A94FABA329A6\nbut the key id in the public key is F15F69C58B18A08") end + it 'can be written to a file' do + expect(@pk.to_s).to eq(File.read('test/minisign.pub')) + end end