class SwFac::Config

Attributes

cadena[R]
dev_token[RW]
doc_cer_path[RW]
doc_key_path[RW]
key_pass[R]
pem[R]
pem_cadena[R]
production_token[RW]
serial[R]

Public Class Methods

new(production_token, development_token, rfc, razon, regimen, doc_key_path, key_pass, doc_cer_path, production=false) click to toggle source
# File lib/sw_fac/config.rb, line 6
def initialize(production_token, development_token, rfc, razon, regimen, doc_key_path, key_pass, doc_cer_path, production=false)
  @production_token = production_token.to_s
  @dev_token = development_token.to_s
  @rfc = rfc.to_s
  @razon = razon.to_s
  @regimen_fiscal = regimen
  @doc_key_path = doc_key_path.to_s
  @key_pass = key_pass.to_s
  @doc_cer_path = doc_cer_path
  @production = production

  key_to_pem 
  serial_number 
  cer_cadena

end

Public Instance Methods

cer_cadena() click to toggle source
# File lib/sw_fac/config.rb, line 46
def cer_cadena
  file = File.read(@doc_cer_path)
  text_certificate = OpenSSL::X509::Certificate.new(file)
  cert_string = text_certificate.to_s
  cert_string.slice!("-----BEGIN CERTIFICATE-----")
  cert_string.slice!("-----END CERTIFICATE-----")
  cert_string.delete!("\n")
  @cadena = cert_string

end
key_to_pem() click to toggle source
# File lib/sw_fac/config.rb, line 23
def key_to_pem
  @pem = %x[openssl pkcs8 -inform DER -in #{@doc_key_path} -passin pass:#{@key_pass}]
  @pem_cadena = @pem.clone
  @pem_cadena.slice!("-----BEGIN PRIVATE KEY-----")
  @pem_cadena.slice!("-----END PRIVATE KEY-----")
  @pem_cadena.delete!("\n")
end
serial_number() click to toggle source
# File lib/sw_fac/config.rb, line 31
def serial_number
  response = %x[openssl x509 -inform DER -in #{@doc_cer_path} -noout -serial]
  d_begin = response.index(/\d/)
  number = (response[d_begin..-1]).chomp
  final_serial = ""

  number.each_char.with_index do |s, index|
    if (index + 1).even?
                          final_serial << s
                  end
  end
  @serial = final_serial
end