Class: Minisign::PublicKey

Inherits:
Object
  • Object
show all
Defined in:
lib/minisign.rb

Overview

Parse ed25519 verify key from minisign public key

Instance Method Summary collapse

Constructor Details

#initialize(str) ⇒ PublicKey

Returns a new instance of PublicKey.



22
23
24
25
# File 'lib/minisign.rb', line 22

def initialize(str)
  @public_key = Base64.strict_decode64(str)[10..]
  @verify_key = Ed25519::VerifyKey.new(@public_key)
end

Instance Method Details

#verify(sig, message) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/minisign.rb', line 27

def verify(sig, message)
  blake = OpenSSL::Digest.new('BLAKE2b512')
  @verify_key.verify(sig.signature, blake.digest(message))
  begin
    @verify_key.verify(sig.comment_signature, sig.signature + sig.comment)
  rescue Ed25519::VerifyError
    raise 'Comment signature verification failed'
  end
  "Signature and comment signature verified\nTrusted comment: #{sig.comment}"
end