class Epics::Key
Attributes
Public Class Methods
Source
# File lib/epics/key.rb, line 4 def initialize(encoded_key, passphrase = nil) if encoded_key.kind_of?(OpenSSL::PKey::RSA) self.key = encoded_key else self.key = OpenSSL::PKey::RSA.new(encoded_key) end end
Public Instance Methods
Source
# File lib/epics/key.rb, line 43 def digester @digester ||= OpenSSL::Digest::SHA256.new end
Source
# File lib/epics/key.rb, line 18 def public_digest c = [ e.gsub(/^0*/,''), n.gsub(/^0*/,'') ].map(&:downcase).join(" ") Base64.encode64(digester.digest(c)).strip end
concat the exponent and modulus (hex representation) with a single whitespace remove leading zeros from both calculate digest (SHA256) encode as Base64
Source
# File lib/epics/key.rb, line 32 def sign(msg) Base64.encode64( key.sign_pss( 'SHA256', msg, salt_length: :digest, mgf1_hash: 'SHA256', ), ).gsub("\n", '') end