Sha256: 7656c0893e3a297aaf87368f0dad50f7f4446da7dedc694a6b52af60879c9f41
Contents?: true
Size: 981 Bytes
Versions: 1
Compression:
Stored size: 981 Bytes
Contents
# frozen_string_literal: true require "cose/algorithm/base" require "cose/error" module COSE module Algorithm class SignatureAlgorithm < Base def verify(key, signature, verification_data) valid_signature?(key, signature, verification_data) || raise(COSE::Error, "Signature verification failed") end def compatible_key?(key) to_pkey(key) rescue COSE::Error false end private def valid_signature?(key, signature, verification_data) signature_algorithm = signature_algorithm_class.new(hash_function[3..-1]) signature_algorithm.verify_key = to_pkey(key) begin signature_algorithm.verify(signature, verification_data) rescue OpenSSL::SignatureAlgorithm::Error false end end def signature_algorithm_class raise NotImplementedError end def to_pkey(_key) raise NotImplementedError end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cose-0.11.0 | lib/cose/algorithm/signature_algorithm.rb |