class Crypto::RSAKey

Clase para crear llaves privadas, en formato X509 no PKCS7

Para convertirlos vía linea de comandos:

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

Attributes

data[R]
enc_path[R]

path de la llave .pem.enc

enc_pem[R]

información de la llave en formato .pem.enc

password[R]

contraseña de la llave

path[R]

path de la llave

pem[R]

información de la llave en formato .pem

Public Class Methods

new(file, password = nil) click to toggle source

Crea una llave privada

@param file [IO, String] El 'path' de esta llave o los bytes de la misma @param password [String, nil] El password de esta llave

@return [Security::RSAKey] La llave privada

Calls superclass method
# File lib/crypto/rsa_key.rb, line 33
def initialize(file, password = nil)
  @password = password
  if File.file?(file)
    @path = file
    @enc_path = @path + '.enc'
    file = File.read(@path)
  end
  super file, password
  @data = to_s.gsub(/^-.+/, '').delete("\n")
end

Public Instance Methods

encrypt_pem(encrypt_password) click to toggle source

Encripta el pem generado, requerido para cancelar facturas

# File lib/crypto/rsa_key.rb, line 56
def encrypt_pem(encrypt_password)
  cipher = OpenSSL::Cipher::Cipher.new('des3')
  return to_pem(cipher, encrypt_password)
end
seal(text) click to toggle source

Sella una cadena de texto

@param original_chain [String] La cadena a firmar

@return La cadena firmada

# File lib/crypto/rsa_key.rb, line 51
def seal(text)
  Base64.encode64(sign(OpenSSL::Digest::SHA256.new, text)).delete("\n")
end