2012-04-18 7 views
5
require 'openssl' 

if ARGV.length == 2 
    pkcs12 = OpenSSL::PKCS12.new(File.read(ARGV[0]), ARGV[1]) 
    p pkcs12.certificate 
else 
    puts "Usage: load_cert.rb <path_to_cert> <cert_password>" 
end 

La ejecución de este error produce en las ventanas, pero no en Linux.openssl en las ventanas produce error, pero no en los centos: PKCS12_parse: mac verificar el fracaso (OpenSSL :: :: PKCS12 PKCS12Error)

error:

OpenSSL::PKCS12::PKCS12Error: PKCS12_parse: mac verify failure
from (irb):21:in initialize
from (irb):21:in new
from (irb):21
from C:/Ruby192/bin/irb:12:in <main>

+0

en base a su respuesta, debe presentar un error con el proyecto Ruby. Si te atrapó, obtendrá otros. Ruby no puede arreglarlo a menos que lo sepan. Ver [Ruby Issue Tracking System] (https://bugs.ruby-lang.org/). – jww

Respuesta

6
File.read("UserCert.p12", "rb") 

problema fue rubí de forma predeterminada archivo como texto leído y la necesidad de obligar a leer el archivo en formato binario, que resuelve el problema

+1

Esto no funcionó para mí, pero el siguiente 'File.binread ('UserCert.p12')' – jmccure

+0

depende de qué versión de ruby ​​uses, ¿está pasando ruby ​​1.9.2? –

+0

estoy usando ruby ​​2.0.0p353 – jmccure

Cuestiones relacionadas