尝试读取/解码 p12 和 pfx 文件时出现以下错误:
Cannot read PKCS#12 PFX. ASN.1 object is not an PKCS#12 PFX
Too few bytes to read ASN.1 value.
我正在尝试使用以下内容在 Javascript 中读取文件:
<input id="cert-file" type="file" name="cert" /><output id="p12cert"></output>
使用 JQuery,我附加了一个“on change”事件处理程序,以检查所选文件。
$j("#cert-file").change(handleFileSelect);
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
getFile(files[0]);
}
然后我尝试读取文件并使用 forge 对其进行解码。
function getFile(p12cert)
{
var reader = new FileReader();
var password = 'password';
reader.onload = (function (theFile) {
return function(eve) {
var p12Der = forge.util.decode64(eve.target.result);
// get p12 as ASN.1 object
// Not working for one of my p12 files
var p12Asn1 = forge.asn1.fromDer(p12Der);
// decrypt p12 using the password 'password'
// TODO: Not working for some reason for p12 and pfx file
var p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, password);
};
})(p12cert);
reader.readAsText(p12cert);
}
我不确定我是否只是错误地读取了文件。我从这里开始使用 FileReader 示例。我做错了什么还是我的证书可能有问题?