diff --git a/lib/minisign/private_key.rb b/lib/minisign/private_key.rb index 124bce4..b345147 100644 --- a/lib/minisign/private_key.rb +++ b/lib/minisign/private_key.rb @@ -65,13 +65,13 @@ def sign(filename, message, comment = nil) signature = ed25519_signing_key.sign(blake2b512(message)) trusted_comment = comment || "timestamp:#{Time.now.to_i}\tfile:#{filename}\thashed" global_signature = ed25519_signing_key.sign("#{signature}#{trusted_comment}") - [ + Minisign::Signature.new([ 'untrusted comment: ', Base64.strict_encode64("ED#{@key_id.pack('C*')}#{signature}"), "trusted comment: #{trusted_comment}", Base64.strict_encode64(global_signature), '' - ].join("\n") + ].join("\n")) end def to_s diff --git a/lib/minisign/signature.rb b/lib/minisign/signature.rb index a529d2b..1fadbc3 100644 --- a/lib/minisign/signature.rb +++ b/lib/minisign/signature.rb @@ -36,7 +36,7 @@ def signature end def to_s - @lines.join("\n") + "\n" + "#{@lines.join("\n")}\n" end private diff --git a/spec/minisign/private_key_spec.rb b/spec/minisign/private_key_spec.rb index afb0a51..7886327 100644 --- a/spec/minisign/private_key_spec.rb +++ b/spec/minisign/private_key_spec.rb @@ -89,9 +89,8 @@ File.write("test/generated/#{@filename}", @message) signature = @private_key.sign(@filename, @message, 'this is a trusted comment') File.write("test/generated/#{@filename}.minisig", signature) - @signature = Minisign::Signature.new(signature) @public_key = Minisign::PublicKey.new('RWSmKaOrT6m3TGwjwBovgOmlhSbyBUw3hyhnSOYruHXbJa36xHr8rq2M') - expect(@public_key.verify(@signature, @message)).to match('Signature and comment signature verified') + expect(@public_key.verify(signature, @message)).to match('Signature and comment signature verified') end it 'signs a file with an unencrypted key' do @filename = 'unencrypted-key.txt' @@ -100,9 +99,8 @@ @unencrypted_private_key = Minisign::PrivateKey.new(File.read('test/unencrypted.key')) signature = @unencrypted_private_key.sign(@filename, @message) File.write("test/generated/#{@filename}.minisig", signature) - @signature = Minisign::Signature.new(signature) @public_key = Minisign::PublicKey.new('RWT/N/MXaBIWRAPzfdEKqVRq9txskjf5qh7EbqMLVHjkNTGFazO3zMw2') - expect(@public_key.verify(@signature, @message)).to match('Signature and comment signature verified') + expect(@public_key.verify(signature, @message)).to match('Signature and comment signature verified') end end end