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