@peculiar/certificates-viewer 3.2.1 → 3.3.0

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.
Files changed (106) hide show
  1. package/dist/cjs/{certification_request-cde57123.js → certification_request-e1997ebf.js} +563 -133
  2. package/dist/cjs/crl-f1ee43bc.js +312 -0
  3. package/dist/cjs/{index-ff818d4d.js → download-a97f4cb2.js} +106 -2
  4. package/dist/cjs/index.cjs.js +1 -3
  5. package/dist/cjs/l10n-638a7577.js +167 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/{peculiar-attribute-certificate-viewer_2.cjs.entry.js → peculiar-attribute-certificate-viewer_3.cjs.entry.js} +123 -21
  8. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +25 -15
  9. package/dist/cjs/peculiar-certificate-summary_3.cjs.entry.js +2 -2
  10. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +6 -25
  11. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +6 -8
  12. package/dist/cjs/peculiar.cjs.js +1 -1
  13. package/dist/cjs/{public_key-2f5bd471.js → public_key-ba538d77.js} +80 -40
  14. package/dist/cjs/{x509_certificate-51a97033.js → x509_certificate-42b478d2.js} +13 -7
  15. package/dist/collection/collection-manifest.json +1 -0
  16. package/dist/collection/components/certificate-decoder/certificate-decoder.js +19 -6
  17. package/dist/collection/components/certificate-viewer/attributes/type_relationship_attribute.js +2 -1
  18. package/dist/collection/components/certificate-viewer/basic_information.js +3 -1
  19. package/dist/collection/components/certificate-viewer/extensions/basic_constraints_extension.js +2 -1
  20. package/dist/collection/components/certificate-viewer/extensions/basic_extension.js +2 -1
  21. package/dist/collection/components/certificate-viewer/extensions/crl_number_extension.js +19 -0
  22. package/dist/collection/components/certificate-viewer/extensions/index.js +9 -1
  23. package/dist/collection/components/certificate-viewer/extensions/issuing_distribution_point_extension.js +27 -0
  24. package/dist/collection/components/certificate-viewer/extensions/timestamp_extension.js +2 -1
  25. package/dist/collection/components/certificate-viewer/miscellaneous.js +2 -20
  26. package/dist/collection/components/certificates-viewer/certificates-viewer.js +2 -3
  27. package/dist/collection/components/crl-viewer/crl-viewer.js +234 -0
  28. package/dist/collection/components/crl-viewer/revoked_certificates.js +27 -0
  29. package/dist/collection/crypto/crl.js +82 -0
  30. package/dist/collection/crypto/csr.js +7 -0
  31. package/dist/collection/crypto/extension.js +10 -1
  32. package/dist/collection/crypto/index.js +1 -0
  33. package/dist/collection/crypto/x509_attribute_certificate.js +7 -1
  34. package/dist/collection/crypto/x509_certificate.js +7 -1
  35. package/dist/collection/locales/en.json +12 -1
  36. package/dist/collection/utils/download.js +18 -2
  37. package/dist/collection/utils/index.js +1 -0
  38. package/dist/collection/utils/validator.js +2 -0
  39. package/dist/esm/{certification_request-c0674647.js → certification_request-5d982d92.js} +493 -66
  40. package/dist/esm/crl-f2110716.js +308 -0
  41. package/dist/esm/{index-0ba131b0.js → download-67ac9120.js} +102 -2
  42. package/dist/esm/index.js +1 -3
  43. package/dist/esm/{l10n-ac28fa92.js → l10n-da0dd100.js} +24 -2
  44. package/dist/esm/loader.js +1 -1
  45. package/dist/esm/{peculiar-attribute-certificate-viewer_2.entry.js → peculiar-attribute-certificate-viewer_3.entry.js} +113 -12
  46. package/dist/esm/peculiar-certificate-decoder.entry.js +21 -11
  47. package/dist/esm/peculiar-certificate-summary_3.entry.js +2 -2
  48. package/dist/esm/peculiar-certificate-viewer.entry.js +6 -25
  49. package/dist/esm/peculiar-certificates-viewer.entry.js +6 -8
  50. package/dist/esm/peculiar.js +1 -1
  51. package/dist/esm/{public_key-38c9ddc8.js → public_key-0a3091a5.js} +67 -28
  52. package/dist/esm/{x509_certificate-12f6d344.js → x509_certificate-6b243207.js} +9 -3
  53. package/dist/peculiar/index.esm.js +1 -1
  54. package/dist/peculiar/locales/en.json +12 -1
  55. package/dist/peculiar/p-34e2d6be.entry.js +11 -0
  56. package/dist/peculiar/p-35e7a514.js +12 -0
  57. package/dist/peculiar/p-3aea9dde.js +32 -0
  58. package/dist/peculiar/{p-38635919.entry.js → p-49ab6f8c.entry.js} +1 -1
  59. package/dist/peculiar/p-86116b1f.entry.js +4 -0
  60. package/dist/peculiar/{p-464e0943.js → p-bce2bbe0.js} +9 -9
  61. package/dist/peculiar/p-ca0c34ca.entry.js +26 -0
  62. package/dist/peculiar/p-cff9655c.js +18 -0
  63. package/dist/peculiar/{p-17c4da7b.js → p-db6e24c6.js} +2 -2
  64. package/dist/peculiar/p-e535a666.entry.js +4 -0
  65. package/dist/peculiar/p-f8dc3232.js +63 -0
  66. package/dist/peculiar/peculiar.esm.js +1 -1
  67. package/dist/types/components/certificate-decoder/certificate-decoder.d.ts +3 -3
  68. package/dist/types/components/certificate-viewer/basic_information.d.ts +2 -0
  69. package/dist/types/components/certificate-viewer/extensions/crl_number_extension.d.ts +15 -0
  70. package/dist/types/components/certificate-viewer/extensions/issuing_distribution_point_extension.d.ts +15 -0
  71. package/dist/types/components/certificate-viewer/miscellaneous.d.ts +2 -2
  72. package/dist/types/components/certificate-viewer/row.d.ts +1 -1
  73. package/dist/types/components/crl-viewer/crl-viewer.d.ts +59 -0
  74. package/dist/types/components/crl-viewer/revoked_certificates.d.ts +14 -0
  75. package/dist/types/components.d.ts +66 -0
  76. package/dist/types/crypto/crl.d.ts +28 -0
  77. package/dist/types/crypto/csr.d.ts +2 -0
  78. package/dist/types/crypto/extension.d.ts +2 -2
  79. package/dist/types/crypto/index.d.ts +1 -0
  80. package/dist/types/crypto/x509_attribute_certificate.d.ts +2 -0
  81. package/dist/types/crypto/x509_certificate.d.ts +2 -0
  82. package/dist/types/utils/download.d.ts +10 -2
  83. package/dist/types/utils/index.d.ts +1 -0
  84. package/dist/types/utils/l10n.d.ts +11 -0
  85. package/dist/types/utils/validator.d.ts +1 -0
  86. package/package.json +19 -19
  87. package/dist/cjs/_commonjsHelpers-cb1f949a.js +0 -23
  88. package/dist/cjs/csr-78378ed0.js +0 -150
  89. package/dist/cjs/download-6724f3a7.js +0 -79
  90. package/dist/cjs/l10n-a048a686.js +0 -145
  91. package/dist/cjs/x509_attribute_certificate-cc325b70.js +0 -87
  92. package/dist/esm/_commonjsHelpers-bfbd2ad8.js +0 -20
  93. package/dist/esm/csr-c1b6a176.js +0 -147
  94. package/dist/esm/download-735fb2eb.js +0 -76
  95. package/dist/esm/x509_attribute_certificate-a6d4aa15.js +0 -85
  96. package/dist/peculiar/p-006865d7.js +0 -4
  97. package/dist/peculiar/p-3f8d1008.entry.js +0 -4
  98. package/dist/peculiar/p-42da7f97.js +0 -11
  99. package/dist/peculiar/p-4f4c1d30.js +0 -12
  100. package/dist/peculiar/p-6011646e.entry.js +0 -11
  101. package/dist/peculiar/p-6bfd077c.entry.js +0 -18
  102. package/dist/peculiar/p-6c510523.js +0 -18
  103. package/dist/peculiar/p-986cc770.entry.js +0 -11
  104. package/dist/peculiar/p-b765873e.js +0 -78
  105. package/dist/peculiar/p-d0b55fbb.js +0 -4
  106. package/dist/peculiar/p-d7a13cb4.js +0 -18
@@ -0,0 +1,308 @@
1
+ /*!
2
+ * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
+ */
4
+ import { A as AsnData, n as Attribute$1, o as id_pkcs9_at_extensionRequest, p as AsnParser, q as ExtensionRequest, E as Extension, f as AsnConvert, r as id_pkcs9_at_unstructuredName, U as UnstructuredName, s as id_pkcs9_at_challengePassword, t as ChallengePassword, u as id_ValuationRanking, V as ValuationRanking, v as id_InsuranceValue, I as InsuranceValue, w as id_WebGDPR, W as WebGDPR, x as id_ActivityDescription, y as ActivityDescription, z as id_TypeRelationship, T as TypeRelationship, B as id_DomainNameTechnicalOperator, D as DomainNameTechnicalOperator, F as id_DomainNameOwner, G as DomainNameOwner, H as id_DomainNameLegalRepresentative, J as DomainNameLegalRepresentative, K as id_DomainNameBeneficiary, L as DomainNameBeneficiary, e as certificateRawToBuffer, M as AttributeCertificate, m as getCertificateThumbprint, k as hexFormat, l as base64Format, O as CertificationRequest, N as Name, g as id_ecPublicKey, h as ECParameters, j as id_rsaEncryption, R as RSAPublicKey, P as CertificateList } from './certification_request-5d982d92.js';
5
+ import { b as build, D as Download } from './download-67ac9120.js';
6
+ import { d as dateDiff } from './l10n-da0dd100.js';
7
+
8
+ /**
9
+ * @license
10
+ * Copyright (c) Peculiar Ventures, LLC.
11
+ *
12
+ * This source code is licensed under the MIT license found in the
13
+ * LICENSE file in the root directory of this source tree.
14
+ */
15
+ class Attribute extends AsnData {
16
+ constructor(raw) {
17
+ super(raw, Attribute$1);
18
+ const asnExtnValue = this.getAsnExtnValue();
19
+ switch (this.asn.type) {
20
+ case id_DomainNameBeneficiary:
21
+ this.value = AsnParser.parse(asnExtnValue, DomainNameBeneficiary);
22
+ break;
23
+ case id_DomainNameLegalRepresentative:
24
+ this.value = AsnParser.parse(asnExtnValue, DomainNameLegalRepresentative);
25
+ break;
26
+ case id_DomainNameOwner:
27
+ this.value = AsnParser.parse(asnExtnValue, DomainNameOwner);
28
+ break;
29
+ case id_DomainNameTechnicalOperator:
30
+ this.value = AsnParser.parse(asnExtnValue, DomainNameTechnicalOperator);
31
+ break;
32
+ case id_TypeRelationship:
33
+ this.value = AsnParser.parse(asnExtnValue, TypeRelationship);
34
+ break;
35
+ case id_ActivityDescription:
36
+ this.value = AsnParser.parse(asnExtnValue, ActivityDescription);
37
+ break;
38
+ case id_WebGDPR:
39
+ this.value = AsnParser.parse(asnExtnValue, WebGDPR);
40
+ break;
41
+ case id_InsuranceValue:
42
+ this.value = AsnParser.parse(asnExtnValue, InsuranceValue);
43
+ break;
44
+ case id_ValuationRanking:
45
+ this.value = AsnParser.parse(asnExtnValue, ValuationRanking);
46
+ break;
47
+ case id_pkcs9_at_challengePassword:
48
+ this.value = AsnParser.parse(asnExtnValue, ChallengePassword);
49
+ break;
50
+ case id_pkcs9_at_unstructuredName:
51
+ this.value = AsnParser.parse(asnExtnValue, UnstructuredName);
52
+ break;
53
+ case id_pkcs9_at_extensionRequest: {
54
+ const extensionRequest = AsnParser.parse(asnExtnValue, ExtensionRequest);
55
+ this.value = extensionRequest
56
+ .map((e) => new Extension(AsnConvert.serialize(e)));
57
+ break;
58
+ }
59
+ default:
60
+ this.value = build.Convert.ToHex(asnExtnValue);
61
+ }
62
+ }
63
+ getAsnExtnValue() {
64
+ return this.asn.values[0];
65
+ }
66
+ }
67
+
68
+ /**
69
+ * @license
70
+ * Copyright (c) Peculiar Ventures, LLC.
71
+ *
72
+ * This source code is licensed under the MIT license found in the
73
+ * LICENSE file in the root directory of this source tree.
74
+ */
75
+ class X509AttributeCertificate extends AsnData {
76
+ constructor(raw) {
77
+ var _a;
78
+ super(certificateRawToBuffer(raw), AttributeCertificate);
79
+ this.thumbprints = {};
80
+ this.type = 'X.509 Attribute Certificate';
81
+ const { acinfo } = this.asn;
82
+ this.serialNumber = build.Convert.ToHex(acinfo.serialNumber);
83
+ this.version = acinfo.version;
84
+ const notBefore = acinfo.attrCertValidityPeriod.notBeforeTime;
85
+ if (!notBefore) {
86
+ throw new Error("Cannot get 'notBefore' value");
87
+ }
88
+ this.notBefore = notBefore;
89
+ const notAfter = acinfo.attrCertValidityPeriod.notAfterTime;
90
+ if (!notAfter) {
91
+ throw new Error("Cannot get 'notAfter' value");
92
+ }
93
+ this.notAfter = notAfter;
94
+ this.validity = dateDiff(this.notBefore, this.notAfter);
95
+ this.issuer = acinfo.issuer.v1Form || ((_a = acinfo.issuer.v2Form) === null || _a === void 0 ? void 0 : _a.issuerName);
96
+ this.holder = acinfo.holder;
97
+ }
98
+ get signature() {
99
+ const { signatureValue, signatureAlgorithm } = this.asn;
100
+ return {
101
+ value: signatureValue,
102
+ algorithm: signatureAlgorithm.algorithm,
103
+ };
104
+ }
105
+ parseExtensions() {
106
+ const { acinfo } = this.asn;
107
+ if (acinfo.extensions) {
108
+ this.extensions = acinfo.extensions
109
+ .map((e) => new Extension(AsnConvert.serialize(e)));
110
+ }
111
+ }
112
+ parseAttributes() {
113
+ const { acinfo } = this.asn;
114
+ if (acinfo.attributes) {
115
+ this.attributes = acinfo.attributes
116
+ .map((e) => new Attribute(AsnConvert.serialize(e)));
117
+ }
118
+ }
119
+ async getThumbprint(algorithm = 'SHA-1') {
120
+ try {
121
+ const thumbprint = await getCertificateThumbprint(algorithm, this.raw);
122
+ if (thumbprint) {
123
+ this.thumbprints[algorithm['name'] || algorithm] = build.Convert.ToHex(thumbprint);
124
+ }
125
+ }
126
+ catch (error) {
127
+ console.error('Error thumbprint get:', error);
128
+ }
129
+ }
130
+ exportAsBase64() {
131
+ return build.Convert.ToBase64(this.raw);
132
+ }
133
+ exportAsHexFormatted() {
134
+ return hexFormat(build.Convert.ToHex(this.raw));
135
+ }
136
+ exportAsPemFormatted() {
137
+ return `-----BEGIN ATTRIBUTE CERTIFICATE-----\n${base64Format(this.exportAsBase64())}\n-----END ATTRIBUTE CERTIFICATE-----`;
138
+ }
139
+ get commonName() {
140
+ return `attribute-certificate-${this.thumbprints['SHA-1']}`;
141
+ }
142
+ downloadAsPEM(name) {
143
+ Download.attrCert.asPEM(this.exportAsPemFormatted(), name || this.commonName);
144
+ }
145
+ downloadAsDER(name) {
146
+ Download.attrCert.asDER(this.exportAsHexFormatted(), name || this.commonName);
147
+ }
148
+ }
149
+
150
+ /**
151
+ * @license
152
+ * Copyright (c) Peculiar Ventures, LLC.
153
+ *
154
+ * This source code is licensed under the MIT license found in the
155
+ * LICENSE file in the root directory of this source tree.
156
+ */
157
+ class CSR extends AsnData {
158
+ constructor(raw) {
159
+ super(certificateRawToBuffer(raw), CertificationRequest);
160
+ this.thumbprints = {};
161
+ this.type = 'PKCS#10 Certificate Request';
162
+ const { certificationRequestInfo } = this.asn;
163
+ this.subject = new Name(certificationRequestInfo.subject).toJSON();
164
+ this.version = certificationRequestInfo.version;
165
+ }
166
+ get publicKey() {
167
+ const { subjectPublicKey, algorithm } = this.asn.certificationRequestInfo.subjectPKInfo;
168
+ let params;
169
+ if (algorithm.algorithm === id_ecPublicKey && algorithm.parameters) {
170
+ params = AsnConvert.parse(algorithm.parameters, ECParameters);
171
+ }
172
+ if (algorithm.algorithm === id_rsaEncryption) {
173
+ params = AsnConvert.parse(subjectPublicKey, RSAPublicKey);
174
+ }
175
+ const spki = AsnConvert.serialize(this.asn.certificationRequestInfo.subjectPKInfo);
176
+ return {
177
+ params,
178
+ value: spki,
179
+ algorithm: algorithm.algorithm,
180
+ };
181
+ }
182
+ get signature() {
183
+ const { signature, signatureAlgorithm } = this.asn;
184
+ return {
185
+ value: signature,
186
+ algorithm: signatureAlgorithm.algorithm,
187
+ };
188
+ }
189
+ get commonName() {
190
+ if (!this.subject) {
191
+ return '';
192
+ }
193
+ for (let i = 0; i < this.subject.length; i += 1) {
194
+ const name = this.subject[i];
195
+ if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {
196
+ return name.value;
197
+ }
198
+ }
199
+ return '';
200
+ }
201
+ async getThumbprint(algorithm = 'SHA-1') {
202
+ try {
203
+ const thumbprint = await getCertificateThumbprint(algorithm, this.raw);
204
+ if (thumbprint) {
205
+ this.thumbprints[algorithm['name'] || algorithm] = build.Convert.ToHex(thumbprint);
206
+ }
207
+ }
208
+ catch (error) {
209
+ console.error('Error thumbprint get:', error);
210
+ }
211
+ }
212
+ parseAttributes() {
213
+ const { certificationRequestInfo } = this.asn;
214
+ if (certificationRequestInfo.attributes) {
215
+ this.attributes = certificationRequestInfo.attributes
216
+ .map((e) => new Attribute(AsnConvert.serialize(e)));
217
+ }
218
+ }
219
+ exportAsBase64() {
220
+ return build.Convert.ToBase64(this.raw);
221
+ }
222
+ exportAsHexFormatted() {
223
+ return hexFormat(build.Convert.ToHex(this.raw));
224
+ }
225
+ exportAsPemFormatted() {
226
+ return `-----BEGIN CERTIFICATE REQUEST-----\n${base64Format(this.exportAsBase64())}\n-----END CERTIFICATE REQUEST-----`;
227
+ }
228
+ downloadAsPEM(name) {
229
+ Download.csr.asPEM(this.exportAsPemFormatted(), name || this.commonName);
230
+ }
231
+ downloadAsDER(name) {
232
+ Download.csr.asDER(this.exportAsHexFormatted(), name || this.commonName);
233
+ }
234
+ }
235
+
236
+ /**
237
+ * @license
238
+ * Copyright (c) Peculiar Ventures, LLC.
239
+ *
240
+ * This source code is licensed under the MIT license found in the
241
+ * LICENSE file in the root directory of this source tree.
242
+ */
243
+ class CRL extends AsnData {
244
+ constructor(raw) {
245
+ super(certificateRawToBuffer(raw), CertificateList);
246
+ this.thumbprints = {};
247
+ this.type = 'X.509 Certificate Revocation List';
248
+ const { tbsCertList } = this.asn;
249
+ this.issuer = new Name(tbsCertList.issuer).toJSON();
250
+ this.version = tbsCertList.version + 1;
251
+ this.lastUpdate = tbsCertList.thisUpdate.getTime();
252
+ this.nextUpdate = tbsCertList.nextUpdate.getTime();
253
+ }
254
+ async getThumbprint(algorithm = 'SHA-1') {
255
+ try {
256
+ const thumbprint = await getCertificateThumbprint(algorithm, this.raw);
257
+ if (thumbprint) {
258
+ this.thumbprints[algorithm['name'] || algorithm] = build.Convert.ToHex(thumbprint);
259
+ }
260
+ }
261
+ catch (error) {
262
+ console.error('Error thumbprint get:', error);
263
+ }
264
+ }
265
+ get signature() {
266
+ const { signature, signatureAlgorithm } = this.asn;
267
+ return {
268
+ value: signature,
269
+ algorithm: signatureAlgorithm.algorithm,
270
+ };
271
+ }
272
+ get commonName() {
273
+ if (!this.issuer) {
274
+ return '';
275
+ }
276
+ for (let i = 0; i < this.issuer.length; i += 1) {
277
+ const name = this.issuer[i];
278
+ if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {
279
+ return name.value;
280
+ }
281
+ }
282
+ return '';
283
+ }
284
+ parseExtensions() {
285
+ const { tbsCertList } = this.asn;
286
+ if (tbsCertList.crlExtensions) {
287
+ this.extensions = tbsCertList.crlExtensions
288
+ .map((e) => new Extension(AsnConvert.serialize(e)));
289
+ }
290
+ }
291
+ exportAsBase64() {
292
+ return build.Convert.ToBase64(this.raw);
293
+ }
294
+ exportAsHexFormatted() {
295
+ return hexFormat(build.Convert.ToHex(this.raw));
296
+ }
297
+ exportAsPemFormatted() {
298
+ return `-----BEGIN X509 CRL-----\n${base64Format(this.exportAsBase64())}\n-----END X509 CRL-----`;
299
+ }
300
+ downloadAsPEM(name) {
301
+ Download.crl.asPEM(this.exportAsPemFormatted(), name || this.commonName);
302
+ }
303
+ downloadAsDER(name) {
304
+ Download.crl.asDER(this.exportAsHexFormatted(), name || this.commonName);
305
+ }
306
+ }
307
+
308
+ export { CSR as C, X509AttributeCertificate as X, CRL as a };
@@ -1,7 +1,65 @@
1
1
  /*!
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
- import { c as createCommonjsModule } from './_commonjsHelpers-bfbd2ad8.js';
4
+ /**
5
+ * @license
6
+ * Copyright (c) Peculiar Ventures, LLC.
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */
11
+ /**
12
+ * Download from buffer
13
+ *
14
+ * @example
15
+ * ```js
16
+ * import { downloadFromBuffer } from './utils';
17
+ *
18
+ * downloadFromBuffer(arrayBufferValue, 'myFile', 'pdf', 'applciation/pdf');
19
+ * ```
20
+ */
21
+ function downloadFromBuffer(value, name, extension, mime = 'application/octet-stream') {
22
+ const blob = new Blob([value], { type: mime });
23
+ // @ts-ignore
24
+ if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)
25
+ // @ts-ignore
26
+ navigator.msSaveBlob(blob, `${name}.${extension}`);
27
+ return new Promise((res) => setTimeout(res, 100));
28
+ }
29
+ const blobURL = window.URL.createObjectURL(blob);
30
+ const link = document.createElement('a');
31
+ const frame = document.createElement('iframe');
32
+ link.style.display = 'none';
33
+ frame.style.display = 'none';
34
+ frame.name = blobURL;
35
+ document.body.appendChild(frame);
36
+ link.href = blobURL;
37
+ link.target = blobURL;
38
+ link.download = `${name}.${extension}`;
39
+ document.body.appendChild(link);
40
+ link.dispatchEvent(new MouseEvent('click'));
41
+ document.body.removeChild(link);
42
+ return new Promise((res) => setTimeout(() => {
43
+ document.body.removeChild(frame);
44
+ res(undefined);
45
+ }, 100));
46
+ }
47
+
48
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
49
+
50
+ function createCommonjsModule(fn, basedir, module) {
51
+ return module = {
52
+ path: basedir,
53
+ exports: {},
54
+ require: function (path, base) {
55
+ return commonjsRequire();
56
+ }
57
+ }, fn(module, module.exports), module.exports;
58
+ }
59
+
60
+ function commonjsRequire () {
61
+ throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
62
+ }
5
63
 
6
64
  var build = createCommonjsModule(function (module, exports) {
7
65
 
@@ -361,4 +419,46 @@ exports.combine = combine;
361
419
  exports.isEqual = isEqual;
362
420
  });
363
421
 
364
- export { build as b };
422
+ /**
423
+ * @license
424
+ * Copyright (c) Peculiar Ventures, LLC.
425
+ *
426
+ * This source code is licensed under the MIT license found in the
427
+ * LICENSE file in the root directory of this source tree.
428
+ */
429
+ class Download {
430
+ }
431
+ Download.cert = {
432
+ asPEM: (pem, name) => {
433
+ downloadFromBuffer(build.Convert.FromString(pem), name, 'cer', 'application/pkix-cert');
434
+ },
435
+ asDER: (hex, name) => {
436
+ downloadFromBuffer(build.Convert.FromString(hex), name, 'cer', 'application/pkix-cert');
437
+ },
438
+ };
439
+ Download.attrCert = {
440
+ asPEM: (pem, name) => {
441
+ downloadFromBuffer(build.Convert.FromString(pem), name, 'cer', 'application/pkix-attr-cert');
442
+ },
443
+ asDER: (hex, name) => {
444
+ downloadFromBuffer(build.Convert.FromString(hex), name, 'cer', 'application/pkix-attr-cert');
445
+ },
446
+ };
447
+ Download.csr = {
448
+ asPEM: (pem, name) => {
449
+ downloadFromBuffer(build.Convert.FromString(pem), name, 'csr', 'application/pkcs10');
450
+ },
451
+ asDER: (hex, name) => {
452
+ downloadFromBuffer(build.Convert.FromString(hex), name, 'csr', 'application/pkcs10');
453
+ },
454
+ };
455
+ Download.crl = {
456
+ asPEM: (pem, name) => {
457
+ downloadFromBuffer(build.Convert.FromString(pem), name, 'crl', 'application/pkix-crl');
458
+ },
459
+ asDER: (hex, name) => {
460
+ downloadFromBuffer(build.Convert.FromString(hex), name, 'crl', 'application/pkix-crl');
461
+ },
462
+ };
463
+
464
+ export { Download as D, commonjsGlobal as a, build as b, createCommonjsModule as c, downloadFromBuffer as d };
package/dist/esm/index.js CHANGED
@@ -1,6 +1,4 @@
1
1
  /*!
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
- export { D as Download, d as downloadFromBuffer } from './download-735fb2eb.js';
5
- import './index-0ba131b0.js';
6
- import './_commonjsHelpers-bfbd2ad8.js';
4
+ export { D as Download, d as downloadFromBuffer } from './download-67ac9120.js';
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
- import { c as createCommonjsModule, a as commonjsGlobal } from './_commonjsHelpers-bfbd2ad8.js';
4
+ import { c as createCommonjsModule, a as commonjsGlobal } from './download-67ac9120.js';
5
5
 
6
6
  var dayjs_min = createCommonjsModule(function (module, exports) {
7
7
  !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",$="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},v="en",D={};D[v]=M;var p=function(t){return t instanceof _},S=function t(e,n,r){var i;if(!e)return v;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t);}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return O},m.isValid=function(){return !(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),$=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},l=function(t,e){return O.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,g="set"+(this.$u?"UTC":"");switch(h){case c:return r?$(1,0):$(31,11);case f:return r?$(1,M):$(0,M+1);case o:var v=this.$locale().weekStart||0,D=(y<v?y+7:y)-v;return $(r?m-D:m+(6-D),M);case a:case d:return l(g+"Hours",0);case u:return l(g+"Minutes",1);case s:return l(g+"Seconds",2);case i:return l(g+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h="set"+(this.$u?"UTC":""),$=(n={},n[a]=h+"Date",n[d]=h+"Date",n[f]=h+"Month",n[c]=h+"FullYear",n[u]=h+"Hours",n[s]=h+"Minutes",n[i]=h+"Seconds",n[r]=h+"Milliseconds",n)[o],l=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[$](l),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else $&&this.$d[$](l);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,$=this;r=Number(r);var l=O.p(h),y=function(t){var e=w($);return O.w(e.date(e.date()+Math.round(t*r)),$)};if(l===f)return this.set(f,this.$M+r);if(l===c)return this.set(c,this.$y+r);if(l===a)return y(1);if(l===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[l]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||$;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},c=function(t){return O.s(s%12||12,t,"0")},d=n.meridiem||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r},l={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,"0"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,"0"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:i};return r.replace(y,(function(t,e){return e||l[t]||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,$){var l,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,g=this-M,v=O.m(this,M);return v=(l={},l[c]=v/12,l[f]=v,l[h]=v/3,l[o]=(g-m)/6048e5,l[a]=(g-m)/864e5,l[u]=g/n,l[s]=g/e,l[i]=g/t,l)[y]||g,$?v:O.a(v)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),T=_.prototype;return w.prototype=T,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",f],["$y",c],["$D",d]].forEach((function(t){T[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[v],w.Ls=D,w.p={},w}));
@@ -42,6 +42,8 @@ const version = "Version";
42
42
  const validity = "Validity";
43
43
  const issued = "Issued";
44
44
  const expired = "Expired";
45
+ const lastUpdate = "Last Update";
46
+ const nextUpdate = "Next Update";
45
47
  const algorithm = "Algorithm";
46
48
  const namedCurve = "Named Curve";
47
49
  const exponent = "Exponent";
@@ -61,6 +63,15 @@ const certificateDetails = "Certificate Details";
61
63
  const holder = "Holder";
62
64
  const digestInfo = "Digest Info";
63
65
  const type = "Type";
66
+ const revokedCertificates = "Revoked Certificates";
67
+ const revocation = "Revocation";
68
+ const yes = "Yes";
69
+ const no = "No";
70
+ const onlyUserCertificates = "Only User Certificates";
71
+ const onlyAttributeCertificates = "Only Attribute Certificates";
72
+ const onlyCACertificates = "Only CA Certificates";
73
+ const indirectCRL = "Indirect CRL";
74
+ const onlyReasons = "Only Reasons";
64
75
  const en = {
65
76
  basicInformation: basicInformation,
66
77
  subjectName: subjectName,
@@ -77,6 +88,8 @@ const en = {
77
88
  validity: validity,
78
89
  issued: issued,
79
90
  expired: expired,
91
+ lastUpdate: lastUpdate,
92
+ nextUpdate: nextUpdate,
80
93
  algorithm: algorithm,
81
94
  namedCurve: namedCurve,
82
95
  exponent: exponent,
@@ -95,7 +108,16 @@ const en = {
95
108
  certificateDetails: certificateDetails,
96
109
  holder: holder,
97
110
  digestInfo: digestInfo,
98
- type: type
111
+ type: type,
112
+ revokedCertificates: revokedCertificates,
113
+ revocation: revocation,
114
+ yes: yes,
115
+ no: no,
116
+ onlyUserCertificates: onlyUserCertificates,
117
+ onlyAttributeCertificates: onlyAttributeCertificates,
118
+ onlyCACertificates: onlyCACertificates,
119
+ indirectCRL: indirectCRL,
120
+ onlyReasons: onlyReasons
99
121
  };
100
122
 
101
123
  /**
@@ -13,7 +13,7 @@ const patchEsm = () => {
13
13
  const defineCustomElements = (win, options) => {
14
14
  if (typeof window === 'undefined') return Promise.resolve();
15
15
  return patchEsm().then(() => {
16
- return bootstrapLazy([["peculiar-button_5",[[1,"peculiar-button-split",{"onClick":[16],"fill":[1],"actions":[16],"open":[32]}],[1,"peculiar-text-hider",{"opened":[1540]},[[0,"textExpand","textExpandHandler"]]],[1,"peculiar-link",{"href":[513],"type":[513]}],[1,"peculiar-typography",{"type":[513],"color":[1],"align":[1],"ellipsis":[4],"monospace":[4]}],[1,"peculiar-button",{"fill":[1],"disabled":[516],"href":[1],"target":[1],"onClick":[16]}]]],["peculiar-certificates-viewer",[[1,"peculiar-certificates-viewer",{"certificates":[16],"filterWithSearch":[4,"filter-with-search"],"highlightWithSearch":[4,"highlight-with-search"],"search":[32],"certificatesDecoded":[32],"expandedRow":[32],"certificateSelectedForDetails":[32],"isDecodeInProcess":[32]}]]],["peculiar-attribute-certificate-viewer_2",[[1,"peculiar-attribute-certificate-viewer",{"certificate":[1],"download":[4],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"isDecodeInProcess":[32]}],[1,"peculiar-csr-viewer",{"certificate":[513],"download":[4],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"view":[513],"isDecodeInProcess":[32]}]]],["peculiar-certificate-viewer",[[1,"peculiar-certificate-viewer",{"certificate":[513],"download":[516],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"issuerDnLink":[513,"issuer-dn-link"],"view":[513],"isDecodeInProcess":[32]}]]],["peculiar-certificate-decoder",[[1,"peculiar-certificate-decoder",{"certificateExample":[1,"certificate-example"],"defaultCertificate":[1,"default-certificate"],"certificateDecoded":[32]}]]],["peculiar-certificate-summary_3",[[1,"peculiar-certificate-summary",{"certificate":[16],"showIssuer":[4,"show-issuer"]}],[1,"peculiar-circular-progress",{"size":[2],"width":[2]}],[1,"peculiar-highlight-words",{"search":[1]}]]]], options);
16
+ return bootstrapLazy([["peculiar-button_5",[[1,"peculiar-button-split",{"onClick":[16],"fill":[1],"actions":[16],"open":[32]}],[1,"peculiar-text-hider",{"opened":[1540]},[[0,"textExpand","textExpandHandler"]]],[1,"peculiar-link",{"href":[513],"type":[513]}],[1,"peculiar-typography",{"type":[513],"color":[1],"align":[1],"ellipsis":[4],"monospace":[4]}],[1,"peculiar-button",{"fill":[1],"disabled":[516],"href":[1],"target":[1],"onClick":[16]}]]],["peculiar-certificate-viewer",[[1,"peculiar-certificate-viewer",{"certificate":[513],"download":[516],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"issuerDnLink":[513,"issuer-dn-link"],"view":[513],"isDecodeInProcess":[32]}]]],["peculiar-certificate-decoder",[[1,"peculiar-certificate-decoder",{"certificateExample":[1,"certificate-example"],"defaultCertificate":[1,"default-certificate"],"certificateDecoded":[32]}]]],["peculiar-certificates-viewer",[[1,"peculiar-certificates-viewer",{"certificates":[16],"filterWithSearch":[4,"filter-with-search"],"highlightWithSearch":[4,"highlight-with-search"],"search":[32],"certificatesDecoded":[32],"expandedRow":[32],"certificateSelectedForDetails":[32],"isDecodeInProcess":[32]}]]],["peculiar-attribute-certificate-viewer_3",[[1,"peculiar-attribute-certificate-viewer",{"certificate":[1],"download":[4],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"isDecodeInProcess":[32]}],[1,"peculiar-crl-viewer",{"certificate":[513],"download":[4],"authKeyIdParentLink":[513,"auth-key-id-parent-link"],"authKeyIdSiblingsLink":[513,"auth-key-id-siblings-link"],"issuerDnLink":[513,"issuer-dn-link"],"view":[513],"isDecodeInProcess":[32]}],[1,"peculiar-csr-viewer",{"certificate":[513],"download":[4],"subjectKeyIdChildrenLink":[513,"subject-key-id-children-link"],"subjectKeyIdSiblingsLink":[513,"subject-key-id-siblings-link"],"view":[513],"isDecodeInProcess":[32]}]]],["peculiar-certificate-summary_3",[[1,"peculiar-certificate-summary",{"certificate":[16],"showIssuer":[4,"show-issuer"]}],[1,"peculiar-circular-progress",{"size":[2],"width":[2]}],[1,"peculiar-highlight-words",{"search":[1]}]]]], options);
17
17
  });
18
18
  };
19
19