Skip to content

Commit

Permalink
return Signature instance from #sign
Browse files Browse the repository at this point in the history
  • Loading branch information
jshawl committed Feb 7, 2024
1 parent 54798af commit a6d86b2
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 7 deletions.
4 changes: 2 additions & 2 deletions lib/minisign/private_key.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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: <arbitrary text>',
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
Expand Down
2 changes: 1 addition & 1 deletion lib/minisign/signature.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def signature
end

def to_s
@lines.join("\n") + "\n"
"#{@lines.join("\n")}\n"
end

private
Expand Down
6 changes: 2 additions & 4 deletions spec/minisign/private_key_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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

0 comments on commit a6d86b2

Please sign in to comment.