class JWT::JWA::Eddsa

Public Class Methods

new(alg) click to toggle source
# File lib/jwt/jwa/eddsa.rb, line 8
def initialize(alg)
  @alg = alg
end

Public Instance Methods

sign(data:, signing_key:) click to toggle source
# File lib/jwt/jwa/eddsa.rb, line 12
def sign(data:, signing_key:)
  unless signing_key.is_a?(RbNaCl::Signatures::Ed25519::SigningKey)
    raise_encode_error!("Key given is a #{signing_key.class} but has to be an RbNaCl::Signatures::Ed25519::SigningKey")
  end

  signing_key.sign(data)
end
verify(data:, signature:, verification_key:) click to toggle source
# File lib/jwt/jwa/eddsa.rb, line 20
def verify(data:, signature:, verification_key:)
  unless verification_key.is_a?(RbNaCl::Signatures::Ed25519::VerifyKey)
    raise_decode_error!("key given is a #{verification_key.class} but has to be a RbNaCl::Signatures::Ed25519::VerifyKey")
  end

  verification_key.verify(signature, data)
rescue RbNaCl::CryptoError
  false
end