Merge branch 'user-friendly-parse-x509-certificate' of https://github.com/mikecat/CyberChef

This commit is contained in:
n1474335 2022-11-25 12:15:29 +00:00
commit 74e9edbccf

View file

@ -57,23 +57,29 @@ class ParseX509Certificate extends Operation {
const cert = new r.X509(), const cert = new r.X509(),
inputFormat = args[0]; inputFormat = args[0];
switch (inputFormat) { let undefinedInputFormat = false;
case "DER Hex": try {
input = input.replace(/\s/g, "").toLowerCase(); switch (inputFormat) {
cert.readCertHex(input); case "DER Hex":
break; input = input.replace(/\s/g, "").toLowerCase();
case "PEM": cert.readCertHex(input);
cert.readCertPEM(input); break;
break; case "PEM":
case "Base64": cert.readCertPEM(input);
cert.readCertHex(toHex(fromBase64(input, null, "byteArray"), "")); break;
break; case "Base64":
case "Raw": cert.readCertHex(toHex(fromBase64(input, null, "byteArray"), ""));
cert.readCertHex(toHex(Utils.strToByteArray(input), "")); break;
break; case "Raw":
default: cert.readCertHex(toHex(Utils.strToByteArray(input), ""));
throw "Undefined input format"; break;
default:
undefinedInputFormat = true;
}
} catch (e) {
throw "Certificate load error (non-certificate input?)";
} }
if (undefinedInputFormat) throw "Undefined input format";
const sn = cert.getSerialNumberHex(), const sn = cert.getSerialNumberHex(),
issuer = cert.getIssuer(), issuer = cert.getIssuer(),