Sha256: 5896a1ca20727fa2088184b66594de6a98c209bfce034a40aad308d49d497f35

Contents?: true

Size: 841 Bytes

Versions: 3

Compression:

Stored size: 841 Bytes

Contents

# frozen_string_literal: true

require 'openssl'

module NubankSdk
  class Certificate
    FILES_PATH = './certificates/'

    def initialize(cpf, key)
      @cpf = cpf
      @key = key
    end

    def process_decoded(certificate)
      encoded = encode certificate

      p12 = create_pkcs12_from encoded
      save p12
    end

    def encoded
      @encoded ||= OpenSSL::PKCS12.new(file.read, 'password')
    end

    private

    def file
      File.open("#{FILES_PATH}#{@cpf}.p12", 'rb')
    end

    def save(p12)
      File.open("#{FILES_PATH}#{@cpf}.p12", 'wb') do |file|
        file.write p12.to_der
      end
    end

    def create_pkcs12_from(certificate)
      OpenSSL::PKCS12.create("password", "key", @key, certificate)
    end

    def encode(certificate)
      OpenSSL::X509::Certificate.new certificate
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
nubank_sdk-0.4.1 lib/nubank_sdk/certificate.rb
nubank_sdk-0.4.0 lib/nubank_sdk/certificate.rb
nubank_sdk-0.3.0 lib/nubank_sdk/certificate.rb