"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getP12CertFingerprint = getP12CertFingerprint; exports.findP12CertSerialNumber = findP12CertSerialNumber; function _nodeForge() { const data = _interopRequireDefault(require("node-forge")); _nodeForge = function () { return data; }; return data; } function _get() { const data = _interopRequireDefault(require("lodash/get")); _get = function () { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function getP12CertFingerprint(p12Buffer, passwordRaw) { const certData = _getCertData(p12Buffer, passwordRaw); const certAsn1 = _nodeForge().default.pki.certificateToAsn1(certData); const certDer = _nodeForge().default.asn1.toDer(certAsn1).getBytes(); return _nodeForge().default.md.sha1.create().update(certDer).digest().toHex().toUpperCase(); } function findP12CertSerialNumber(p12Buffer, passwordRaw) { const certData = _getCertData(p12Buffer, passwordRaw); const { serialNumber } = certData; return serialNumber ? certData.serialNumber.replace(/^0+/, '').toUpperCase() : null; } function _getCertData(p12Buffer, passwordRaw) { if (Buffer.isBuffer(p12Buffer)) { p12Buffer = p12Buffer.toString('base64'); } else if (typeof p12Buffer !== 'string') { throw new Error('_getCertData only takes strings and buffers.'); } const password = String(passwordRaw || ''); const p12Der = _nodeForge().default.util.decode64(p12Buffer); const p12Asn1 = _nodeForge().default.asn1.fromDer(p12Der); const p12 = _nodeForge().default.pkcs12.pkcs12FromAsn1(p12Asn1, password); const certBagType = _nodeForge().default.pki.oids.certBag; const certData = (0, _get().default)(p12.getBags({ bagType: certBagType }), [certBagType, 0, 'cert']); if (!certData) { throw new Error("_getCertData: couldn't find cert bag"); } return certData; } //# sourceMappingURL=../__sourcemaps__/detach/PKCS12Utils.js.map