I am having the following errors when trying read/decode p12 and pfx files:
Cannot read PKCS#12 PFX. ASN.1 object is not an PKCS#12 PFX
Too few bytes to read ASN.1 value.
I am trying to read the file in Javascript with the following:
<input id="cert-file" type="file" name="cert" /><output id="p12cert"></output>
Using JQuery, I attach a "on change" event handler, to check the selected file.
$j("#cert-file").change(handleFileSelect);
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
getFile(files[0]);
}
Then I try to read the file and decode it using 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);
}
I'm not sure if I'm just reading the file in wrong. I was going off of the FileReader examples from here. Am I doing something wrong or could something possibly be wrong with my certs?