class OpenSSL::SignatureAlgorithm::Base

Attributes

signing_key[R]
verify_key[R]

Public Instance Methods

compatible_verify_key?(verify_key) click to toggle source
# File lib/openssl/signature_algorithm/base.rb, line 23
def compatible_verify_key?(verify_key)
  verify_key.respond_to?(:verify)
end
sign(data) click to toggle source
# File lib/openssl/signature_algorithm/base.rb, line 27
def sign(data)
  signing_key.sign(hash_function, data)
end
verify(signature, verification_data) click to toggle source
# File lib/openssl/signature_algorithm/base.rb, line 31
def verify(signature, verification_data)
  formatted_signature =
    if respond_to?(:formatted_signature, true)
      formatted_signature(signature)
    else
      signature
    end

  verify_key.verify(hash_function, formatted_signature, verification_data) ||
    raise(OpenSSL::SignatureAlgorithm::SignatureVerificationError, "Signature verification failed")
end
verify_key=(key) click to toggle source
# File lib/openssl/signature_algorithm/base.rb, line 15
def verify_key=(key)
  if compatible_verify_key?(key)
    @verify_key = key
  else
    raise(OpenSSL::SignatureAlgorithm::VerifyKeyError, "Incompatible verify key for algorithm")
  end
end