class Ed25519::VerifyKey

Public key for verifying digital signatures

Public Class Methods

new(key) click to toggle source

Create a Ed25519::VerifyKey from its serialized Twisted Edwards representation

@param key [String] 32-byte string representing a serialized public key

# File lib/ed25519/verify_key.rb, line 9
def initialize(key)
  Ed25519.validate_key_bytes(key)
  @key_bytes = key
end

Public Instance Methods

inspect() click to toggle source

Show hex representation of serialized coordinate in string inspection

# File lib/ed25519/verify_key.rb, line 41
def inspect
  "#<#{self.class}:#{@key_bytes.unpack1('H*')}>"
end
to_bytes() click to toggle source

Return a compressed twisted Edwards coordinate representing the public key

@return [String] bytestring serialization of this public key

# File lib/ed25519/verify_key.rb, line 35
def to_bytes
  @key_bytes
end
Also aliased as: to_str
to_str()
Alias for: to_bytes
verify(signature, message) click to toggle source

Verify an Ed25519 signature against the message

@param signature [String] 64-byte string containing an Ed25519 signature @param message [String] string containing message to be verified

@raise Ed25519::VerifyError signature verification failed

@return [true] message verified successfully

# File lib/ed25519/verify_key.rb, line 22
def verify(signature, message)
  if signature.length != SIGNATURE_SIZE
    raise ArgumentError, "expected #{SIGNATURE_SIZE} byte signature, got #{signature.length}"
  end

  return true if Ed25519.provider.verify(@key_bytes, signature, message)

  raise VerifyError, "signature verification failed!"
end