Class: CFDI::Key

Inherits:
OpenSSL::PKey::RSA
  • Object
show all
Defined in:
lib/key.rb

Overview

Una llave privada, en formato X509 no PKCS7

Para convertirlos, nomás hacemos

openssl pkcs8 -inform DER -in nombreGiganteDelSAT.key -passin pass:miFIELCreo >> certX509.pem

Instance Method Summary (collapse)

Constructor Details

- (CFDI::Key) initialize(file, password = nil)

Crea una llave privada

Parameters:

  • file (IO, String)

    El `path` de esta llave o los bytes de la misma

  • password=nil (String, nil)

    El password de esta llave



17
18
19
20
21
22
# File 'lib/key.rb', line 17

def initialize file, password=nil
  if file.is_a? String
    file = File.read(file)
  end
  super file, password
end

Instance Method Details

- (CFDI::comprobante) sella(factura)

sella una factura

Parameters:

Returns:

  • (CFDI::comprobante)

    El comprobante con el `sello`



29
30
31
32
# File 'lib/key.rb', line 29

def sella factura
  cadena_original = factura.cadena_original
  factura.sello = Base64::encode64(self.sign(OpenSSL::Digest::SHA1.new, cadena_original)).gsub(/\n/, '')
end