Class: Minisign::PublicKey
- Inherits:
-
Object
- Object
- Minisign::PublicKey
- Defined in:
- lib/minisign.rb
Overview
Parse ed25519 verify key from minisign public key
Instance Method Summary collapse
-
#initialize(str) ⇒ PublicKey
constructor
Parse the ed25519 verify key from the minisign public key.
-
#key_id ⇒ String
The key id.
-
#verify(sig, message) ⇒ String
Verify a message’s signature.
Constructor Details
#initialize(str) ⇒ PublicKey
Parse the ed25519 verify key from the minisign public key
58 59 60 61 62 |
# File 'lib/minisign.rb', line 58 def initialize(str) @decoded = Base64.strict_decode64(str) @public_key = @decoded[10..] @verify_key = Ed25519::VerifyKey.new(@public_key) end |
Instance Method Details
#key_id ⇒ String
Returns the key id.
68 69 70 |
# File 'lib/minisign.rb', line 68 def key_id @decoded[2..9].bytes.map { |c| c.to_s(16) }.reverse.join.upcase end |
#verify(sig, message) ⇒ String
Verify a message’s signature
79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/minisign.rb', line 79 def verify(sig, ) blake = OpenSSL::Digest.new('BLAKE2b512') ensure_matching_key_ids(sig.key_id, key_id) @verify_key.verify(sig.signature, blake.digest()) begin @verify_key.verify(sig.trusted_comment_signature, sig.signature + sig.trusted_comment) rescue Ed25519::VerifyError raise 'Comment signature verification failed' end "Signature and comment signature verified\nTrusted comment: #{sig.trusted_comment}" end |