UNPKG

node-ssl-certificates

Version:

a node.js library for fetching, parsing and validating ssl-certificates

40 lines (33 loc) 1.08 kB
"use strict"; function getCertificateInfo(cert, options = {}) { const crypto = require("crypto"); const info = new crypto.X509Certificate(cert); const resp = {}; const asObject = (str, sep) => { if (!str) return null; return str .split("\n") .filter((a) => a.trim() != "") .map((m) => m.split(sep)) .reduce((tot, a) => { tot[a[0]] = a[1]; return tot; }, {}); }; resp.subject = asObject(info.subject, "="); resp.subjectAltName = info.subjectAltName?.split(",").map((m) => m.trim()) ?? null; resp.issuer = asObject(info.issuer, "="); resp.infoAccess = asObject(info.infoAccess, " - "); resp.validFrom = new Date(info.validFrom); resp.validTo = new Date(info.validTo); resp.fingerprint = info.fingerprint; resp.fingerprint256 = info.fingerprint256; resp.fingerprint512 = info.fingerprint512; resp.keyUsage = info.keyUsage; resp.serialNumber = info.serialNumber; resp.publicKey = info.publicKey; return resp; } module.exports = { getCertificateInfo: getCertificateInfo, };