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