Skip to content

Commit

Permalink
add comment param to PrivateKey.sign (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
jshawl authored Feb 4, 2024
1 parent 0cff753 commit 3d7e167
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
9 changes: 7 additions & 2 deletions lib/minisign/private_key.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,15 @@ def ed25519_signing_key
Ed25519::SigningKey.new(@secret_key.pack('C*'))
end

# Sign a file/message
#
# @param filename [String] The filename to be used in the trusted comment section
# @param message [String] The file's contents
# @param comment [String] An optional trusted comment to be included in the signature
# @return [String] the signature in the .minisig format that can be written to a file.
def sign(filename, message)
def sign(filename, message, comment = nil)
signature = ed25519_signing_key.sign(blake2b512(message))
trusted_comment = "timestamp:#{Time.now.to_i}\tfile:#{filename}\thashed"
trusted_comment = comment || "timestamp:#{Time.now.to_i}\tfile:#{filename}\thashed"
global_signature = ed25519_signing_key.sign("#{signature}#{trusted_comment}")
[
'untrusted comment: <arbitrary text>',
Expand Down
2 changes: 1 addition & 1 deletion spec/minisign/private_key_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
@filename = 'encrypted-key.txt'
@message = SecureRandom.uuid
File.write("test/generated/#{@filename}", @message)
signature = @private_key.sign(@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')
Expand Down

0 comments on commit 3d7e167

Please sign in to comment.