lib/nubank_sdk/certificate.rb in nubank_sdk-0.5.0 vs lib/nubank_sdk/certificate.rb in nubank_sdk-0.5.1

- old
+ new

@@ -1,43 +1,79 @@ -# frozen_string_literal: true - require 'openssl' module NubankSdk class Certificate - FILES_PATH = './certificates/' + FILES_PATH = './certificates/'.freeze + # + # Controller of certifications + # + # @param [String] cpf def initialize(cpf) @cpf = cpf end + # + # Create a certificate file + # + # @param [OpenSSL::PKey::RSA] key + # @param [String] certificate + # + # @return [File] def process_decoded(key, certificate) encoded = encode certificate p12 = create_pkcs12_from(key, encoded) save p12 end + # + # Load the certificate file + # + # @return [OpenSSL::PKCS12] def encoded @encoded ||= OpenSSL::PKCS12.new(file.read, 'password') end private + # @!visibility private + # Open the encrypted certificate file + # + # @return [OpenSSL::PKCS12] def file File.open("#{FILES_PATH}#{@cpf}.p12", 'rb') end + # @!visibility private + # Create a file with the encrypted certificate + # + # @param [OpenSSL::PKCS12] p12 + # + # @return [File] def save(p12) File.open("#{FILES_PATH}#{@cpf}.p12", 'wb') do |file| file.write p12.to_der end end + # @!visibility private + # crypt key and certificate to pkcs12 + # + # @param [OpenSSL::PKey::RSA] key + # @param [OpenSSL::X509::Certificate] certificate + # + # @return [OpenSSL::PKCS12] def create_pkcs12_from(key, certificate) - OpenSSL::PKCS12.create("password", "key", key, certificate) + OpenSSL::PKCS12.create('password', 'key', key, certificate) end + # @!visibility private + # Enconde certificate string to certificate object + # + # @param [String] certificate + # + # @return [OpenSSL::X509::Certificate] def encode(certificate) OpenSSL::X509::Certificate.new certificate end end end