Skip to content

Instantly share code, notes, and snippets.

@bwindels
Created June 1, 2018 22:48
Show Gist options
  • Select an option

  • Save bwindels/8a7182ec12d6ede2e86c2495a3e6b4c2 to your computer and use it in GitHub Desktop.

Select an option

Save bwindels/8a7182ec12d6ede2e86c2495a3e6b4c2 to your computer and use it in GitHub Desktop.
Extract root certs from mozilla csv file
//get file from https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReportPEMCSV
const parse = require('csv-parse');
const fs = require('fs');
let data = fs.readFileSync(process.argv[2], {encoding: 'utf8'});
parse(data, {}, (err, lines) => {
lines.forEach(line => {
let name = line[0];
name = name.substr(0, 15);
let pem = line[28];
pem = pem.substr(1, pem.length - 2);
let certid = line[6];
let id_bytes = certid.split(':').map(c => parseInt(c, 16));
let base64_id = new Buffer(id_bytes).toString('base64');
let filename = `${name}-${base64_id}.pem`;
filename = filename.replace(new RegExp('\\\\', 'g'),'-');
filename = filename.replace(new RegExp('/', 'g'),'-');
filename = filename.replace(new RegExp(' ', 'g'),'_');
console.log(filename);
fs.writeFileSync(filename, pem);
})
});
//for file in ./*.pem; do openssl x509 -outform der -in $file -out ${file%.pem}.der; done;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment