为什么openssl在Windows上产生错误而不是在centos上:PKCS12_parse:mac verify失败(OpenSSL :: PKCS12 :: PKCS12Error)

时间:2012-04-18 03:13:36

标签: ruby openssl

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

运行它会在Windows上产生错误,但不会在linux中产生错误。

错误:

  

OpenSSL :: PKCS12 :: PKCS12Error:PKCS12_parse:mac验证失败
          来自(irb):21:initialize中           来自(irb):21:new中           来自(irb):21
          来自C:/ Ruby192 / bin / irb:12:<main>

1 个答案:

答案 0 :(得分:8)

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

问题是ruby默认读取文件为文本,需要强制将文件读取为二进制文件,它解决了问题