class NemID::Crypto

Public Class Methods

new(cert:, key:) click to toggle source
# File lib/nemid/crypto.rb, line 6
def initialize(cert:, key:)
  @certificate = read_x509(cert)
  @rsa_instance = rsa_keypair(key)
end

Public Instance Methods

base64_encoded_der_representation() click to toggle source
# File lib/nemid/crypto.rb, line 11
def base64_encoded_der_representation
  Base64.strict_encode64(@certificate.to_der)
end
base64_encoded_digest_representation(data) click to toggle source
# File lib/nemid/crypto.rb, line 15
def base64_encoded_digest_representation(data)
  Base64.strict_encode64(digest(data))
end
base64_encoded_rsa_signature(data) click to toggle source
# File lib/nemid/crypto.rb, line 19
def base64_encoded_rsa_signature(data)
  Base64.strict_encode64(sign(data))
end
get_certificate() click to toggle source
# File lib/nemid/crypto.rb, line 23
def get_certificate
  @certificate
end
get_key() click to toggle source
# File lib/nemid/crypto.rb, line 27
def get_key
  @rsa_instance
end

Private Instance Methods

digest(data) click to toggle source
# File lib/nemid/crypto.rb, line 32
def digest(data)
  OpenSSL::Digest::SHA256.new.digest(data)
end
read_file(certificate) click to toggle source
# File lib/nemid/crypto.rb, line 36
def read_file(certificate)
  File.read(certificate)
end
read_x509(raw) click to toggle source
# File lib/nemid/crypto.rb, line 40
def read_x509(raw)
  OpenSSL::X509::Certificate.new(raw)
end
rsa_keypair(raw) click to toggle source
# File lib/nemid/crypto.rb, line 44
def rsa_keypair(raw)
  OpenSSL::PKey::RSA.new(raw)
end
sign(data) click to toggle source
# File lib/nemid/crypto.rb, line 48
def sign(data)
  @rsa_instance.sign(OpenSSL::Digest::SHA256.new, data)
end