1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
# frozen_string_literal: true
require "openssl"
require "openssl/signature_algorithm/rsa"
module OpenSSL
module SignatureAlgorithm
class RSAPSS < RSA
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::SignatureVerificationError, "Signature verification failed")
end
def mgf1_hash_function
hash_function
end
end
end
end
|