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