Sha256: 867a9d3f73cba1c837ced14c23309d557084c5d4846a5825c7b0313962cd75e5
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true require "openssl" require "openssl/signature_algorithm/base" module OpenSSL module SignatureAlgorithm class RSAPSS < Base class SigningKey < OpenSSL::PKey::RSA def verify_key VerifyKey.new(public_key.to_pem) end end class VerifyKey < OpenSSL::PKey::RSA class << self alias_method :deserialize, :new end def serialize to_pem end end DEFAULT_KEY_SIZE = 2048 def generate_signing_key(size: DEFAULT_KEY_SIZE) @signing_key = SigningKey.new(size) end def sign(data) signing_key.sign_pss(hash_function, data, salt_length: :max, mgf1_hash: mgf1_hash_function) end def verify(signature, verification_data) verify_key.verify_pss( hash_function, signature, verification_data, salt_length: :auto, mgf1_hash: mgf1_hash_function ) || raise(OpenSSL::SignatureAlgorithm::Error, "Signature verification failed") end def mgf1_hash_function hash_function end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
openssl-signature_algorithm-0.4.0 | lib/openssl/signature_algorithm/rsapss.rb |