UNPKG

sslko

Version:

A simple tool to check SSL/TLS certificate information for a given domain.

36 lines (35 loc) 1.4 kB
import { DAY_IN_MILLISECOND } from "./constants.js"; /** * Calculates the number of days between two dates. * @param validFrom * @param validTo */ function getDaysTotal(validFrom, validTo) { return Math.ceil(Math.abs(validFrom.getTime() - validTo.getTime()) / DAY_IN_MILLISECOND); } /** * Calculates the number of days remaining until the certificate expires. * - can be negative if the certificate is already expired * @param validTo */ function getDaysLeft(validTo) { return Math.ceil((validTo.getTime() - Date.now()) / DAY_IN_MILLISECOND); } export function convertPeerCertificate(certificate) { const { valid_from, valid_to, pubkey, raw, ...rest } = certificate; // Remove issuerCertificate to avoid circular reference delete rest.issuerCertificate; return { validFromDate: new Date(valid_from), validToDate: new Date(valid_to), expired: new Date(valid_to).getTime() < Date.now(), daysLeft: getDaysLeft(new Date(valid_to)), daysTotal: getDaysTotal(new Date(valid_from), new Date(valid_to)), validFor: certificate.subjectaltname ? certificate.subjectaltname.replace(/DNS:|IP Address:/g, "").split(", ") : undefined, pubkey: Buffer.isBuffer(pubkey) ? pubkey.toString("base64") : undefined, raw: Buffer.isBuffer(raw) ? raw.toString("base64") : undefined, ...rest, }; }