@super-protocol/pki-common 1.5.1 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/helpers.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { ChallengeType, KeyPairPem } from './types';
2
+ import { ChallengeType, IntermediateCertificates, KeyPairPem, TeeSslCertificate } from './types';
3
3
  import * as forge from 'node-forge';
4
4
  export declare const binaryIdToDomainName: (binaryId: Buffer) => string;
5
5
  export declare const generateDomain: (baseDomain: string, challengeType: ChallengeType, binaryId: Buffer) => string;
@@ -8,3 +8,9 @@ export declare const getPublicKeyPemHash: (publicKeyPem: string) => Buffer;
8
8
  export declare const getPublicKeyHash: (publicKey: forge.pki.PublicKey) => Buffer;
9
9
  export declare const generateKeyPair: () => KeyPairPem;
10
10
  export declare const getPublicKeyFromCsr: (csrPem: string) => string;
11
+ export declare const splitCerts: (certsPem: string) => string[];
12
+ export declare const extractCommonName: (certPem: string) => string | undefined;
13
+ export declare const extractIntermediateCertificates: {
14
+ (certs: TeeSslCertificate): IntermediateCertificates;
15
+ (certsChain: string): IntermediateCertificates;
16
+ };
package/dist/helpers.js CHANGED
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getPublicKeyFromCsr = exports.generateKeyPair = exports.getPublicKeyHash = exports.getPublicKeyPemHash = exports.getPublicKeyFromPrivate = exports.generateDomain = exports.binaryIdToDomainName = void 0;
26
+ exports.extractIntermediateCertificates = exports.extractCommonName = exports.splitCerts = exports.getPublicKeyFromCsr = exports.generateKeyPair = exports.getPublicKeyHash = exports.getPublicKeyPemHash = exports.getPublicKeyFromPrivate = exports.generateDomain = exports.binaryIdToDomainName = void 0;
27
27
  const forge = __importStar(require("node-forge"));
28
28
  const node_crypto_1 = require("node:crypto");
29
29
  const crypto_1 = require("crypto");
@@ -78,4 +78,37 @@ const getPublicKeyFromCsr = (csrPem) => {
78
78
  return forge.pki.publicKeyToPem(csr.publicKey);
79
79
  };
80
80
  exports.getPublicKeyFromCsr = getPublicKeyFromCsr;
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0Esa0RBQW9DO0FBQ3BDLDZDQUF5QztBQUN6QyxtQ0FBNkM7QUFFN0Msa0RBQW9DO0FBRTdCLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFEaEUsUUFBQSxvQkFBb0Isd0JBQzRDO0FBRXRFLE1BQU0sY0FBYyxHQUFHLENBQzFCLFVBQWtCLEVBQ2xCLGFBQTRCLEVBQzVCLFFBQWdCLEVBQ2xCLEVBQUUsQ0FBQyxHQUFHLElBQUEsNEJBQW9CLEVBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxJQUFJLFVBQVUsRUFBRSxDQUFDO0FBSjNELFFBQUEsY0FBYyxrQkFJNkM7QUFFakUsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLGFBQXFCLEVBQUUsRUFBRTtJQUM3RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUpXLFFBQUEsdUJBQXVCLDJCQUlsQztBQUVLLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxZQUFvQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzRCxPQUFPLElBQUEsd0JBQWdCLEVBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBSFcsUUFBQSxtQkFBbUIsdUJBRzlCO0FBRUssTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFNBQThCLEVBQUUsRUFBRTtJQUMvRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLElBQUksR0FBRyxJQUFBLHdCQUFVLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFQVyxRQUFBLGdCQUFnQixvQkFPM0I7QUFFSyxNQUFNLGVBQWUsR0FBRyxHQUFlLEVBQUU7SUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBQSw0QkFBbUIsRUFBQyxLQUFLLEVBQUU7UUFDcEMsYUFBYSxFQUFFLElBQUk7UUFDbkIsaUJBQWlCLEVBQUU7WUFDZixJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRSxLQUFLO1NBQ2hCO1FBQ0Qsa0JBQWtCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLE9BQU87WUFDYixNQUFNLEVBQUUsS0FBSztTQUNoQjtLQUNKLENBQUMsQ0FBQztJQUNILE9BQU87UUFDSCxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVM7UUFDNUIsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVO0tBQ2pDLENBQUM7QUFDTixDQUFDLENBQUM7QUFoQlcsUUFBQSxlQUFlLG1CQWdCMUI7QUFFSyxNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUU7SUFDMUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFDO0FBTlcsUUFBQSxtQkFBbUIsdUJBTTlCIn0=
81
+ const splitCerts = (certsPem) => {
82
+ const certRegex = /-----BEGIN CERTIFICATE-----(?:\s|.)*?-----END CERTIFICATE-----/g;
83
+ const matches = certsPem.match(certRegex);
84
+ return Array.from(matches || []);
85
+ };
86
+ exports.splitCerts = splitCerts;
87
+ const extractCommonName = (certPem) => {
88
+ const cert = forge.pki.certificateFromPem(certPem);
89
+ const commonNameAttr = cert.subject.attributes.find((attr) => attr.name === 'commonName');
90
+ return commonNameAttr?.value;
91
+ };
92
+ exports.extractCommonName = extractCommonName;
93
+ const extractIntermediateCertificates = (certificates) => {
94
+ let restCerts;
95
+ let certificate;
96
+ if (typeof certificates === 'string') {
97
+ const splittedCerts = (0, exports.splitCerts)(certificates);
98
+ const [cert, ...rest] = splittedCerts;
99
+ restCerts = rest;
100
+ certificate = cert;
101
+ }
102
+ else {
103
+ certificate = certificates.certPem;
104
+ restCerts = (0, exports.splitCerts)(certificates.caBundle);
105
+ }
106
+ const ca = restCerts.pop();
107
+ return {
108
+ cert: certificate,
109
+ intermediateCertificates: restCerts.join('\n') + '\n',
110
+ ca: ca + '\n',
111
+ };
112
+ };
113
+ exports.extractIntermediateCertificates = extractIntermediateCertificates;
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsa0RBQW9DO0FBQ3BDLDZDQUF5QztBQUN6QyxtQ0FBNkM7QUFFN0Msa0RBQW9DO0FBRTdCLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFEaEUsUUFBQSxvQkFBb0Isd0JBQzRDO0FBRXRFLE1BQU0sY0FBYyxHQUFHLENBQzFCLFVBQWtCLEVBQ2xCLGFBQTRCLEVBQzVCLFFBQWdCLEVBQ2xCLEVBQUUsQ0FBQyxHQUFHLElBQUEsNEJBQW9CLEVBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxJQUFJLFVBQVUsRUFBRSxDQUFDO0FBSjNELFFBQUEsY0FBYyxrQkFJNkM7QUFFakUsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLGFBQXFCLEVBQUUsRUFBRTtJQUM3RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUpXLFFBQUEsdUJBQXVCLDJCQUlsQztBQUVLLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxZQUFvQixFQUFFLEVBQUU7SUFDeEQsTUFB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
package/dist/types.d.ts CHANGED
@@ -79,3 +79,8 @@ export declare enum CertificateType {
79
79
  Basic = "basic",
80
80
  Lite = "lite"
81
81
  }
82
+ export interface IntermediateCertificates {
83
+ cert: string;
84
+ intermediateCertificates: string;
85
+ ca: string;
86
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super-protocol/pki-common",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",