@peculiar/certificates-viewer 3.3.1 → 3.5.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 (41) hide show
  1. package/dist/cjs/{certification_request-50ce61b3.js → certification_request-ea440617.js} +10 -10
  2. package/dist/cjs/{crl-0c15e04a.js → crl-fd60d923.js} +11 -2
  3. package/dist/cjs/{l10n-4eaa5263.js → l10n-17c96aba.js} +5 -3
  4. package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js +33 -8
  5. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +4 -4
  6. package/dist/cjs/peculiar-certificate-summary_3.cjs.entry.js +1 -1
  7. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +4 -4
  8. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +3 -3
  9. package/dist/cjs/{public_key-2b73778a.js → public_key-14290c77.js} +2 -2
  10. package/dist/cjs/{x509_certificate-c94ce29e.js → x509_certificate-262bac06.js} +2 -2
  11. package/dist/collection/components/crl-viewer/crl-viewer.js +1 -1
  12. package/dist/collection/components/crl-viewer/revoked_certificates.js +31 -3
  13. package/dist/collection/crypto/crl.js +9 -0
  14. package/dist/collection/locales/en.json +3 -2
  15. package/dist/esm/{certification_request-5b5c2fa2.js → certification_request-0ecd0af1.js} +2 -2
  16. package/dist/esm/{crl-10d4db54.js → crl-c09357a9.js} +11 -2
  17. package/dist/esm/{l10n-116c79fa.js → l10n-a68d5748.js} +5 -3
  18. package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js +33 -8
  19. package/dist/esm/peculiar-certificate-decoder.entry.js +4 -4
  20. package/dist/esm/peculiar-certificate-summary_3.entry.js +1 -1
  21. package/dist/esm/peculiar-certificate-viewer.entry.js +4 -4
  22. package/dist/esm/peculiar-certificates-viewer.entry.js +3 -3
  23. package/dist/esm/{public_key-c1e6801e.js → public_key-e6d12f27.js} +2 -2
  24. package/dist/esm/{x509_certificate-61126913.js → x509_certificate-59d7a03c.js} +2 -2
  25. package/dist/peculiar/locales/en.json +3 -2
  26. package/dist/peculiar/{p-53aac672.js → p-1b11aa24.js} +4 -4
  27. package/dist/peculiar/{p-10aa0b03.entry.js → p-1d6d0160.entry.js} +1 -1
  28. package/dist/peculiar/{p-7ef69178.entry.js → p-37c38f22.entry.js} +1 -1
  29. package/dist/peculiar/{p-bbf0fd6c.js → p-3a4556ef.js} +2 -2
  30. package/dist/peculiar/{p-5a898f51.js → p-7321a8d6.js} +5 -5
  31. package/dist/peculiar/p-7a31bffb.entry.js +26 -0
  32. package/dist/peculiar/{p-652f77d0.entry.js → p-870c3592.entry.js} +1 -1
  33. package/dist/peculiar/{p-309fdd02.js → p-c9f01b83.js} +1 -1
  34. package/dist/peculiar/{p-318a1e9f.entry.js → p-e7d81a43.entry.js} +1 -1
  35. package/dist/peculiar/{p-ed58acd0.js → p-fec9d812.js} +2 -2
  36. package/dist/peculiar/peculiar.esm.js +1 -1
  37. package/dist/types/components/crl-viewer/revoked_certificates.d.ts +3 -3
  38. package/dist/types/crypto/crl.d.ts +7 -1
  39. package/dist/types/utils/l10n.d.ts +2 -1
  40. package/package.json +2 -2
  41. package/dist/peculiar/p-ff867be1.entry.js +0 -26
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const download = require('./download-a97f4cb2.js');
7
- require('./l10n-4eaa5263.js');
7
+ require('./l10n-17c96aba.js');
8
8
 
9
9
  /**
10
10
  * @license
@@ -5448,15 +5448,15 @@ GeneralNames = GeneralNames_1 = __decorate([
5448
5448
 
5449
5449
  var CertificateIssuer_1;
5450
5450
  const id_ce_certificateIssuer = `${id_ce}.29`;
5451
- let CertificateIssuer = CertificateIssuer_1 = class CertificateIssuer extends GeneralNames {
5451
+ exports.CertificateIssuer = CertificateIssuer_1 = class CertificateIssuer extends GeneralNames {
5452
5452
  constructor(items) {
5453
5453
  super(items);
5454
5454
  Object.setPrototypeOf(this, CertificateIssuer_1.prototype);
5455
5455
  }
5456
5456
  };
5457
- CertificateIssuer = CertificateIssuer_1 = __decorate([
5457
+ exports.CertificateIssuer = CertificateIssuer_1 = __decorate([
5458
5458
  AsnType({ type: AsnTypeTypes.Sequence })
5459
- ], CertificateIssuer);
5459
+ ], exports.CertificateIssuer);
5460
5460
 
5461
5461
  var CertificatePolicies_1;
5462
5462
  const id_ce_certificatePolicies = `${id_ce}.32`;
@@ -5765,7 +5765,7 @@ InhibitAnyPolicy = __decorate([
5765
5765
  ], InhibitAnyPolicy);
5766
5766
 
5767
5767
  const id_ce_invalidityDate = `${id_ce}.24`;
5768
- let InvalidityDate = class InvalidityDate {
5768
+ exports.InvalidityDate = class InvalidityDate {
5769
5769
  constructor(value) {
5770
5770
  this.value = new Date();
5771
5771
  if (value) {
@@ -5775,10 +5775,10 @@ let InvalidityDate = class InvalidityDate {
5775
5775
  };
5776
5776
  __decorate([
5777
5777
  AsnProp({ type: AsnPropTypes.GeneralizedTime })
5778
- ], InvalidityDate.prototype, "value", void 0);
5779
- InvalidityDate = __decorate([
5778
+ ], exports.InvalidityDate.prototype, "value", void 0);
5779
+ exports.InvalidityDate = __decorate([
5780
5780
  AsnType({ type: AsnTypeTypes.Choice })
5781
- ], InvalidityDate);
5781
+ ], exports.InvalidityDate);
5782
5782
 
5783
5783
  var IssueAlternativeName_1;
5784
5784
  const id_ce_issuerAltName = `${id_ce}.18`;
@@ -10082,7 +10082,7 @@ class Extension extends AsnData {
10082
10082
  this.value = AsnParser.parse(asnExtnValue, BasicConstraints);
10083
10083
  break;
10084
10084
  case id_ce_certificateIssuer:
10085
- this.value = AsnParser.parse(asnExtnValue, CertificateIssuer);
10085
+ this.value = AsnParser.parse(asnExtnValue, exports.CertificateIssuer);
10086
10086
  break;
10087
10087
  case id_ce_certificatePolicies:
10088
10088
  this.value = AsnParser.parse(asnExtnValue, exports.CertificatePolicies);
@@ -10104,7 +10104,7 @@ class Extension extends AsnData {
10104
10104
  this.value = AsnParser.parse(asnExtnValue, InhibitAnyPolicy);
10105
10105
  break;
10106
10106
  case id_ce_invalidityDate:
10107
- this.value = AsnParser.parse(asnExtnValue, InvalidityDate);
10107
+ this.value = AsnParser.parse(asnExtnValue, exports.InvalidityDate);
10108
10108
  break;
10109
10109
  case id_ce_issuerAltName:
10110
10110
  this.value = AsnParser.parse(asnExtnValue, IssueAlternativeName);
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const certification_request = require('./certification_request-50ce61b3.js');
6
+ const certification_request = require('./certification_request-ea440617.js');
7
7
  const download = require('./download-a97f4cb2.js');
8
- const l10n = require('./l10n-4eaa5263.js');
8
+ const l10n = require('./l10n-17c96aba.js');
9
9
 
10
10
  /**
11
11
  * @license
@@ -252,6 +252,15 @@ class CRL extends certification_request.AsnData {
252
252
  this.version = tbsCertList.version + 1;
253
253
  this.lastUpdate = tbsCertList.thisUpdate.getTime();
254
254
  this.nextUpdate = tbsCertList.nextUpdate.getTime();
255
+ this.revokedCertificates = (tbsCertList.revokedCertificates || [])
256
+ .map((revokedCertificate) => {
257
+ var _a;
258
+ return ({
259
+ revocationDate: revokedCertificate.revocationDate,
260
+ userCertificate: revokedCertificate.userCertificate,
261
+ crlEntryExtensions: (_a = revokedCertificate.crlEntryExtensions) === null || _a === void 0 ? void 0 : _a.map((e) => new certification_request.Extension(certification_request.AsnConvert.serialize(e))),
262
+ });
263
+ });
255
264
  }
256
265
  async getThumbprint(algorithm = 'SHA-1') {
257
266
  try {
@@ -66,7 +66,7 @@ const holder = "Holder";
66
66
  const digestInfo = "Digest Info";
67
67
  const type = "Type";
68
68
  const revokedCertificates = "Revoked Certificates";
69
- const revocation = "Revocation";
69
+ const revocationDate = "Revocation Date";
70
70
  const yes = "Yes";
71
71
  const no = "No";
72
72
  const onlyUserCertificates = "Only User Certificates";
@@ -74,6 +74,7 @@ const onlyAttributeCertificates = "Only Attribute Certificates";
74
74
  const onlyCACertificates = "Only CA Certificates";
75
75
  const indirectCRL = "Indirect CRL";
76
76
  const onlyReasons = "Only Reasons";
77
+ const crlEntryExtensions = "CRL Entry Extensions";
77
78
  const en = {
78
79
  basicInformation: basicInformation,
79
80
  subjectName: subjectName,
@@ -112,14 +113,15 @@ const en = {
112
113
  digestInfo: digestInfo,
113
114
  type: type,
114
115
  revokedCertificates: revokedCertificates,
115
- revocation: revocation,
116
+ revocationDate: revocationDate,
116
117
  yes: yes,
117
118
  no: no,
118
119
  onlyUserCertificates: onlyUserCertificates,
119
120
  onlyAttributeCertificates: onlyAttributeCertificates,
120
121
  onlyCACertificates: onlyCACertificates,
121
122
  indirectCRL: indirectCRL,
122
- onlyReasons: onlyReasons
123
+ onlyReasons: onlyReasons,
124
+ crlEntryExtensions: crlEntryExtensions
123
125
  };
124
126
 
125
127
  /**
@@ -6,11 +6,11 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-064e95c7.js');
9
- const certification_request = require('./certification_request-50ce61b3.js');
9
+ const certification_request = require('./certification_request-ea440617.js');
10
10
  const download = require('./download-a97f4cb2.js');
11
- const l10n = require('./l10n-4eaa5263.js');
12
- const crl = require('./crl-0c15e04a.js');
13
- const public_key = require('./public_key-2b73778a.js');
11
+ const l10n = require('./l10n-17c96aba.js');
12
+ const crl = require('./crl-fd60d923.js');
13
+ const public_key = require('./public_key-14290c77.js');
14
14
 
15
15
  /**
16
16
  * @license
@@ -389,13 +389,38 @@ AttributeCertificateViewer.style = certificateViewerCss$2;
389
389
  * This source code is licensed under the MIT license found in the
390
390
  * LICENSE file in the root directory of this source tree.
391
391
  */
392
+ const TableRowTable = (_, children) => (index.h("tr", null,
393
+ index.h("td", { colSpan: 2 },
394
+ index.h("table", null, children))));
392
395
  const RevokedCertificates = (props) => {
393
- const { certificates, } = props;
396
+ const { revokedCertificates, getDNSNameLink, getIPAddressLink, } = props;
397
+ if (!revokedCertificates || !revokedCertificates.length) {
398
+ return null;
399
+ }
394
400
  return [
395
401
  index.h(public_key.RowTitle, { value: l10n.l10n.getString('revokedCertificates') }),
396
- certificates.map((certificate) => ([
402
+ revokedCertificates.map((certificate) => ([
397
403
  index.h(public_key.RowValue, { name: l10n.l10n.getString('serialNumber'), value: download.build.Convert.ToHex(certificate.userCertificate), monospace: true }),
398
- index.h(public_key.RowValue, { name: l10n.l10n.getString('revocation'), value: l10n.dateShort(certificate.revocationDate.getTime()) }),
404
+ index.h(public_key.RowValue, { name: l10n.l10n.getString('revocationDate'), value: l10n.dateShort(certificate.revocationDate.getTime()) }),
405
+ (certificate.crlEntryExtensions && certificate.crlEntryExtensions.length && ([
406
+ index.h(public_key.RowValue, { name: `${l10n.l10n.getString('crlEntryExtensions')}:`, value: "" }),
407
+ index.h(TableRowTable, null, certificate.crlEntryExtensions.map((extension) => {
408
+ if (extension.value instanceof certification_request.CRLReason) {
409
+ return (index.h(public_key.RowValue, { name: public_key.getStringByOID(extension.asn.extnID), value: extension.value.toJSON() || extension.value.reason }));
410
+ }
411
+ if (extension.value instanceof certification_request.InvalidityDate) {
412
+ return (index.h(public_key.RowValue, { name: public_key.getStringByOID(extension.asn.extnID), value: extension.value.value.getTime() }));
413
+ }
414
+ if (extension.value instanceof certification_request.CertificateIssuer && extension.value.length) {
415
+ return ([
416
+ index.h(public_key.RowValue, { name: `${public_key.getStringByOID(extension.asn.extnID)}:`, value: "" }),
417
+ extension.value.map((gn) => (index.h(TableRowTable, null,
418
+ index.h(public_key.GeneralNamePart, { generalName: gn, getDNSNameLink: getDNSNameLink, getIPAddressLink: getIPAddressLink })))),
419
+ ]);
420
+ }
421
+ return (index.h(public_key.RowValue, { name: public_key.getStringByOID(extension.asn.extnID), value: download.build.Convert.ToHex(extension.asn.extnValue), monospace: true }));
422
+ })),
423
+ ])),
399
424
  index.h("tr", null,
400
425
  index.h("td", { colSpan: 2, class: "divider" },
401
426
  index.h("span", { class: "bg_fill" }))),
@@ -478,7 +503,7 @@ const CrlViewer = class {
478
503
  if (!this.certificateDecoded) {
479
504
  return this.renderEmptyState();
480
505
  }
481
- return (index.h(index.Host, { "data-view": this.view }, index.h("table", null, index.h(public_key.BasicInformation, Object.assign({}, this.certificateDecoded)), index.h(public_key.IssuerName, { name: this.certificateDecoded.issuer, issuerDnLink: this.getIssuerDnLink() }), index.h(public_key.Signature, { signature: this.certificateDecoded.signature }), index.h(public_key.Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), index.h(public_key.Extensions, { extensions: this.certificateDecoded.extensions, getLEILink: public_key.getLEILink, getDNSNameLink: public_key.getDNSNameLink, getIPAddressLink: public_key.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink }), this.certificateDecoded.asn.tbsCertList.revokedCertificates && (index.h(RevokedCertificates, { certificates: this.certificateDecoded.asn.tbsCertList.revokedCertificates })), this.download && (index.h(public_key.Miscellaneous, { certificate: this.certificateDecoded })))));
506
+ return (index.h(index.Host, { "data-view": this.view }, index.h("table", null, index.h(public_key.BasicInformation, Object.assign({}, this.certificateDecoded)), index.h(public_key.IssuerName, { name: this.certificateDecoded.issuer, issuerDnLink: this.getIssuerDnLink() }), index.h(public_key.Signature, { signature: this.certificateDecoded.signature }), index.h(public_key.Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), index.h(public_key.Extensions, { extensions: this.certificateDecoded.extensions, getLEILink: public_key.getLEILink, getDNSNameLink: public_key.getDNSNameLink, getIPAddressLink: public_key.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink }), index.h(RevokedCertificates, { revokedCertificates: this.certificateDecoded.revokedCertificates, getDNSNameLink: public_key.getDNSNameLink, getIPAddressLink: public_key.getIPAddressLink }), this.download && (index.h(public_key.Miscellaneous, { certificate: this.certificateDecoded })))));
482
507
  }
483
508
  static get watchers() { return {
484
509
  "certificate": ["watchCertificateAndDecode"]
@@ -6,11 +6,11 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-064e95c7.js');
9
- const certification_request = require('./certification_request-50ce61b3.js');
10
- require('./l10n-4eaa5263.js');
9
+ const certification_request = require('./certification_request-ea440617.js');
10
+ require('./l10n-17c96aba.js');
11
11
  require('./download-a97f4cb2.js');
12
- const x509_certificate = require('./x509_certificate-c94ce29e.js');
13
- const crl = require('./crl-0c15e04a.js');
12
+ const x509_certificate = require('./x509_certificate-262bac06.js');
13
+ const crl = require('./crl-fd60d923.js');
14
14
 
15
15
  /**
16
16
  * @license
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-064e95c7.js');
9
- const l10n = require('./l10n-4eaa5263.js');
9
+ const l10n = require('./l10n-17c96aba.js');
10
10
  require('./download-a97f4cb2.js');
11
11
 
12
12
  const certificateSummaryCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:block;width:100%}td{border:none;padding:0}table{width:100%;border-spacing:0;border-collapse:collapse}td{vertical-align:top;padding-top:5px;padding-bottom:5px}table td:first-child{width:130px;padding-right:10px}table td:last-child{width:calc(100% - 130px)}@media (max-width: 900px){table,tr,td{display:block}table td:last-child,table td:first-child{width:100%}}";
@@ -6,11 +6,11 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-064e95c7.js');
9
- const x509_certificate = require('./x509_certificate-c94ce29e.js');
10
- require('./certification_request-50ce61b3.js');
9
+ const x509_certificate = require('./x509_certificate-262bac06.js');
10
+ require('./certification_request-ea440617.js');
11
11
  require('./download-a97f4cb2.js');
12
- require('./l10n-4eaa5263.js');
13
- const public_key = require('./public_key-2b73778a.js');
12
+ require('./l10n-17c96aba.js');
13
+ const public_key = require('./public_key-14290c77.js');
14
14
 
15
15
  const certificateViewerCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:block;width:100%;word-wrap:break-word;position:relative;min-width:280px;min-height:300px;background:white;background:rgba(var(--pv-color-light-rgb), 1)}th,td{border:none}table{width:100%;margin-bottom:30px;border-spacing:0;border-collapse:collapse}table .title td{border-color:rgba(209, 213, 217, 0.5);border-color:rgba(var(--pv-color-grey_3-rgb), 0.5);padding-top:60px;padding-bottom:15px;border-bottom-width:1px;border-bottom-style:solid}table td:first-child{padding-left:30px;width:130px;padding-right:10px}table td:last-child{padding-right:30px;width:calc(100% - 130px)}table td{vertical-align:top;padding-top:5px;padding-bottom:5px}table td.vertical_align_middle{vertical-align:middle}table .title:first-child td{padding-top:15px}table .title+tr td{padding-top:15px}table td.monospace{max-width:0}table .divider{padding-top:15px;padding-bottom:15px}.divider .bg_fill{background-color:rgba(209, 213, 217, 0.5);background-color:rgba(var(--pv-color-grey_3-rgb), 0.5)}table tr:last-child .divider{padding-top:0;opacity:0}.divider span{display:block;height:1px}.status_wrapper{min-height:inherit;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.interaction_text{padding:15px 0;width:300px;margin:auto;text-align:center}@media (max-width: 900px){table,tr,td{display:block}table td:last-child,table td:first-child{padding-right:15px;padding-left:15px;width:100%}table .title+tr td{padding-top:5px}table .title+tr td:first-child{padding-top:15px}table td.monospace{width:100%;max-width:none}}:host([data-view=mobile]) table,:host([data-view=mobile]) tr,:host([data-view=mobile]) td{display:block}:host([data-view=mobile]) table td:last-child,:host([data-view=mobile]) table td:first-child{padding-right:15px;padding-left:15px;width:100%}:host([data-view=mobile]) table .title+tr td{padding-top:5px}:host([data-view=mobile]) table .title+tr td:first-child{padding-top:15px}:host([data-view=mobile]) table td.monospace{width:100%;max-width:none}";
16
16
 
@@ -6,10 +6,10 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-064e95c7.js');
9
- const x509_certificate = require('./x509_certificate-c94ce29e.js');
10
- const certification_request = require('./certification_request-50ce61b3.js');
9
+ const x509_certificate = require('./x509_certificate-262bac06.js');
10
+ const certification_request = require('./certification_request-ea440617.js');
11
11
  require('./download-a97f4cb2.js');
12
- const l10n = require('./l10n-4eaa5263.js');
12
+ const l10n = require('./l10n-17c96aba.js');
13
13
 
14
14
  const certificatesViewerCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:block;width:100%;word-wrap:break-word;min-width:280px;overflow:auto;position:relative;background:white;background:rgba(var(--pv-color-light-rgb), 1)}table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0}table thead{background-color:rgba(53, 132, 247, 0.07);background-color:rgba(var(--pv-color-primary-rgb), 0.07)}table tr td{vertical-align:middle}table tbody tr:not(.expanded_summary){cursor:pointer}table tr{border-color:#d1d5d9;border-color:rgba(var(--pv-color-grey_3-rgb), 1)}table th{padding:15px 10px;border-width:1px;border-style:solid;border-color:#d1d5d9;border-color:rgba(var(--pv-color-grey_3-rgb), 1)}table td{padding:8px 10px;border-width:1px;border-style:solid;border-color:#d1d5d9;border-color:rgba(var(--pv-color-grey_3-rgb), 1)}table .col_issuer,table .col_name,table .col_public_key{width:16%}table .col_actions,table .col_tests{width:18%}table.m_extra .col_issuer,table.m_extra .col_name,table.m_extra .col_public_key{width:12%}table.m_extra .col_actions,table.m_extra .col_tests{width:17%}table tr.expanded td:not(:last-child){border-right-color:transparent}table tr.expanded td{border-bottom-color:transparent}.expanded{border-bottom-color:transparent;background-color:rgba(53, 132, 247, 0.04);background-color:rgba(var(--pv-color-primary-rgb), 0.04)}table tr.expanded_summary{background-color:rgba(53, 132, 247, 0.04);background-color:rgba(var(--pv-color-primary-rgb), 0.04)}table tr.expanded_summary td{vertical-align:top;padding:10px 20px 26px}@-webkit-keyframes fadeIn{0%{opacity:0.001}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0.001}100%{opacity:1}}.modal_wrapper{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;overflow:auto;text-align:center;-webkit-animation:fadeIn 200ms;animation:fadeIn 200ms;padding:30px 10px}.modal_wrapper:before{display:inline-block;vertical-align:middle;width:0;height:100%;content:\"\"}.modal_backdrop{background:rgba(42, 49, 52, 0.5);background:rgba(var(--pv-color-dark-rgb), 0.5);z-index:-1;position:fixed;top:0;right:0;bottom:0;left:0}.modal_container{position:relative;display:inline-block;vertical-align:middle;width:100%;max-width:900px;text-align:left;border-radius:3px;overflow:hidden;background-color:white;background-color:rgba(var(--pv-color-light-rgb), 1);height:100%}.modal_title{background-color:rgba(53, 132, 247, 0.07);background-color:rgba(var(--pv-color-primary-rgb), 0.07);border-color:#d1d5d9;border-color:rgba(var(--pv-color-grey_3-rgb), 1);border-bottom-width:1px;border-bottom-style:solid;padding:20px 60px 16px 20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:60px}.modal_content{height:calc(100% - 60px);overflow-y:auto}.modal_close{cursor:pointer;border:none;background-color:transparent;position:absolute;top:0;bottom:0;right:0;padding:0 12px;-webkit-transition:opacity 100ms;transition:opacity 100ms;outline:none}.modal_close:hover{opacity:0.6}.modal_close svg{fill:#2a3134;fill:rgba(var(--pv-color-dark-rgb), 1)}.button_table_action{margin:2px}.mobile_title{display:none}.status_wrapper{height:85px;text-align:center;pointer-events:none}.search_section{background-color:rgba(53, 132, 247, 0.07);background-color:rgba(var(--pv-color-primary-rgb), 0.07);border-color:#d1d5d9;border-color:rgba(var(--pv-color-grey_3-rgb), 1);height:50px;padding:10px;border-width:1px 1px 0 1px;border-style:solid}.input_search{height:100%;width:100%;border-radius:3px;border-width:1px;border-style:solid;padding:0 14px;font-size:12px;outline:none;border-color:#d1d5d9;border-color:rgba(var(--pv-color-grey_3-rgb), 1);color:#2a3134;color:rgba(var(--pv-color-dark-rgb), 1)}.input_search::-webkit-input-placeholder{color:#d1d5d9;color:rgba(var(--pv-color-grey_3-rgb), 1)}.input_search::-moz-placeholder{color:#d1d5d9;color:rgba(var(--pv-color-grey_3-rgb), 1)}.input_search:-ms-input-placeholder{color:#d1d5d9;color:rgba(var(--pv-color-grey_3-rgb), 1)}.input_search::-ms-input-placeholder{color:#d1d5d9;color:rgba(var(--pv-color-grey_3-rgb), 1)}.input_search::placeholder{color:#d1d5d9;color:rgba(var(--pv-color-grey_3-rgb), 1)}.loading_container{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(42, 49, 52, 0.3);background:rgba(var(--pv-color-dark-rgb), 0.3);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.align_center{text-align:center}@media (hover: hover){table tbody tr:not(.expanded_summary):hover{background-color:rgba(53, 132, 247, 0.04);background-color:rgba(var(--pv-color-primary-rgb), 0.04)}}@media (max-width: 900px){table,tbody,tr,td{display:block}thead{display:none}tr{padding:0 15px;border-width:1px;border-style:solid}tr:not(:first-child){margin-top:-1px}tr:not(.expanded_summary) td:first-child{border:none !important}table td{padding-left:0;padding-right:0;border-width:1px 0 0 0 !important;border-color:rgba(209, 213, 217, 0.5);border-color:rgba(var(--pv-color-grey_3-rgb), 0.5)}table tr.expanded_summary td{padding:15px 0}.mobile_title{display:inline-block;width:90px;vertical-align:middle}.modal_title{padding:17px 60px 17px 15px}.content{display:inline-block;width:calc(100% - 90px);vertical-align:middle;text-align:left}.expanded_summary{border-top-color:transparent;padding-bottom:10px}.expanded_summary td:before{content:none}.status_wrapper{height:266px;display:table-cell}.search_section{height:60px;padding:15px}.align_center{text-align:inherit}}";
15
15
 
@@ -5,8 +5,8 @@
5
5
 
6
6
  const index = require('./index-064e95c7.js');
7
7
  const download = require('./download-a97f4cb2.js');
8
- const l10n = require('./l10n-4eaa5263.js');
9
- const certification_request = require('./certification_request-50ce61b3.js');
8
+ const l10n = require('./l10n-17c96aba.js');
9
+ const certification_request = require('./certification_request-ea440617.js');
10
10
 
11
11
  /**
12
12
  * @license
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const certification_request = require('./certification_request-50ce61b3.js');
6
+ const certification_request = require('./certification_request-ea440617.js');
7
7
  const download = require('./download-a97f4cb2.js');
8
- const l10n = require('./l10n-4eaa5263.js');
8
+ const l10n = require('./l10n-17c96aba.js');
9
9
 
10
10
  /**
11
11
  * @license
@@ -99,7 +99,7 @@ export class CrlViewer {
99
99
  h(Signature, { signature: this.certificateDecoded.signature }),
100
100
  h(Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }),
101
101
  h(Extensions, { extensions: this.certificateDecoded.extensions, getLEILink: getLEILink, getDNSNameLink: getDNSNameLink, getIPAddressLink: getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink }),
102
- this.certificateDecoded.asn.tbsCertList.revokedCertificates && (h(RevokedCertificates, { certificates: this.certificateDecoded.asn.tbsCertList.revokedCertificates })),
102
+ h(RevokedCertificates, { revokedCertificates: this.certificateDecoded.revokedCertificates, getDNSNameLink: getDNSNameLink, getIPAddressLink: getIPAddressLink }),
103
103
  this.download && (h(Miscellaneous, { certificate: this.certificateDecoded })))));
104
104
  }
105
105
  static get is() { return "peculiar-crl-viewer"; }
@@ -9,16 +9,44 @@
9
9
  * LICENSE file in the root directory of this source tree.
10
10
  */
11
11
  import { h } from '@stencil/core';
12
+ import { CRLReason, InvalidityDate, CertificateIssuer } from '@peculiar/asn1-x509';
12
13
  import { Convert } from 'pvtsutils';
13
14
  import { dateShort, l10n } from '../../utils';
15
+ import { getStringByOID } from '../certificate-viewer/get_string_by_oid';
16
+ import { GeneralNamePart } from '../certificate-viewer/extensions/general_name_part';
14
17
  import { RowTitle, RowValue } from '../certificate-viewer/row';
18
+ const TableRowTable = (_, children) => (h("tr", null,
19
+ h("td", { colSpan: 2 },
20
+ h("table", null, children))));
15
21
  export const RevokedCertificates = (props) => {
16
- const { certificates, } = props;
22
+ const { revokedCertificates, getDNSNameLink, getIPAddressLink, } = props;
23
+ if (!revokedCertificates || !revokedCertificates.length) {
24
+ return null;
25
+ }
17
26
  return [
18
27
  h(RowTitle, { value: l10n.getString('revokedCertificates') }),
19
- certificates.map((certificate) => ([
28
+ revokedCertificates.map((certificate) => ([
20
29
  h(RowValue, { name: l10n.getString('serialNumber'), value: Convert.ToHex(certificate.userCertificate), monospace: true }),
21
- h(RowValue, { name: l10n.getString('revocation'), value: dateShort(certificate.revocationDate.getTime()) }),
30
+ h(RowValue, { name: l10n.getString('revocationDate'), value: dateShort(certificate.revocationDate.getTime()) }),
31
+ (certificate.crlEntryExtensions && certificate.crlEntryExtensions.length && ([
32
+ h(RowValue, { name: `${l10n.getString('crlEntryExtensions')}:`, value: "" }),
33
+ h(TableRowTable, null, certificate.crlEntryExtensions.map((extension) => {
34
+ if (extension.value instanceof CRLReason) {
35
+ return (h(RowValue, { name: getStringByOID(extension.asn.extnID), value: extension.value.toJSON() || extension.value.reason }));
36
+ }
37
+ if (extension.value instanceof InvalidityDate) {
38
+ return (h(RowValue, { name: getStringByOID(extension.asn.extnID), value: extension.value.value.getTime() }));
39
+ }
40
+ if (extension.value instanceof CertificateIssuer && extension.value.length) {
41
+ return ([
42
+ h(RowValue, { name: `${getStringByOID(extension.asn.extnID)}:`, value: "" }),
43
+ extension.value.map((gn) => (h(TableRowTable, null,
44
+ h(GeneralNamePart, { generalName: gn, getDNSNameLink: getDNSNameLink, getIPAddressLink: getIPAddressLink })))),
45
+ ]);
46
+ }
47
+ return (h(RowValue, { name: getStringByOID(extension.asn.extnID), value: Convert.ToHex(extension.asn.extnValue), monospace: true }));
48
+ })),
49
+ ])),
22
50
  h("tr", null,
23
51
  h("td", { colSpan: 2, class: "divider" },
24
52
  h("span", { class: "bg_fill" }))),
@@ -26,6 +26,15 @@ export class CRL extends AsnData {
26
26
  this.version = tbsCertList.version + 1;
27
27
  this.lastUpdate = tbsCertList.thisUpdate.getTime();
28
28
  this.nextUpdate = tbsCertList.nextUpdate.getTime();
29
+ this.revokedCertificates = (tbsCertList.revokedCertificates || [])
30
+ .map((revokedCertificate) => {
31
+ var _a;
32
+ return ({
33
+ revocationDate: revokedCertificate.revocationDate,
34
+ userCertificate: revokedCertificate.userCertificate,
35
+ crlEntryExtensions: (_a = revokedCertificate.crlEntryExtensions) === null || _a === void 0 ? void 0 : _a.map((e) => new Extension(AsnConvert.serialize(e))),
36
+ });
37
+ });
29
38
  }
30
39
  async getThumbprint(algorithm = 'SHA-1') {
31
40
  try {
@@ -36,12 +36,13 @@
36
36
  "digestInfo": "Digest Info",
37
37
  "type": "Type",
38
38
  "revokedCertificates": "Revoked Certificates",
39
- "revocation": "Revocation",
39
+ "revocationDate": "Revocation Date",
40
40
  "yes": "Yes",
41
41
  "no": "No",
42
42
  "onlyUserCertificates": "Only User Certificates",
43
43
  "onlyAttributeCertificates": "Only Attribute Certificates",
44
44
  "onlyCACertificates": "Only CA Certificates",
45
45
  "indirectCRL": "Indirect CRL",
46
- "onlyReasons": "Only Reasons"
46
+ "onlyReasons": "Only Reasons",
47
+ "crlEntryExtensions": "CRL Entry Extensions"
47
48
  }
@@ -2,7 +2,7 @@
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
4
  import { b as build, c as createCommonjsModule, a as commonjsGlobal } from './download-67ac9120.js';
5
- import './l10n-116c79fa.js';
5
+ import './l10n-a68d5748.js';
6
6
 
7
7
  /**
8
8
  * @license
@@ -11911,4 +11911,4 @@ __decorate([
11911
11911
  AsnProp({ type: AsnPropTypes.BitString })
11912
11912
  ], CertificationRequest.prototype, "signature", void 0);
11913
11913
 
11914
- export { AsnIntegerArrayBufferConverter as $, AsnData as A, id_DomainNameTechnicalOperator as B, Certificate as C, DomainNameTechnicalOperator as D, Extension as E, id_DomainNameOwner as F, DomainNameOwner as G, id_DomainNameLegalRepresentative as H, InsuranceValue as I, DomainNameLegalRepresentative as J, id_DomainNameBeneficiary as K, DomainNameBeneficiary as L, AttributeCertificate as M, Name as N, CertificationRequest as O, CertificateList as P, OIDs as Q, RSAPublicKey as R, Name$1 as S, TypeRelationship as T, UnstructuredName as U, ValuationRanking as V, WebGDPR as W, OtherName as X, DisplayText as Y, UserNotice as Z, EDIPartyName as _, isX509Pem as a, KeyUsage as a0, BasicConstraints as a1, ExtendedKeyUsage as a2, SubjectKeyIdentifier as a3, AuthorityKeyIdentifier as a4, CRLDistributionPoints as a5, AuthorityInfoAccessSyntax as a6, SubjectInfoAccessSyntax as a7, SubjectAlternativeName as a8, CertificatePolicies as a9, CertificateTransparency as aa, NameConstraints as ab, CertificateTemplate as ac, EnrollCertTypeChoice as ad, CaVersion as ae, QCStatements as af, NetscapeComment as ag, NetscapeCertType as ah, LeiRole as ai, LeiChoice as aj, Timestamp as ak, ArchiveRevInfo as al, CRLReason as am, SubjectDirectoryAttributes as an, PrivateKeyUsagePeriod as ao, EntrustVersionInfo as ap, BiometricSyntax as aq, LogotypeExtn as ar, TNAuthorizationList as as, PolicyConstraints as at, PolicyMappings as au, CRLNumber as av, IssuingDistributionPoint as aw, isPkcs10Pem as b, isX509AttributePem as c, isX509CRLPem as d, certificateRawToBuffer as e, AsnConvert as f, id_ecPublicKey as g, ECParameters as h, isPem as i, id_rsaEncryption as j, hexFormat as k, base64Format as l, getCertificateThumbprint as m, Attribute$1 as n, id_pkcs9_at_extensionRequest as o, AsnParser as p, ExtensionRequest as q, id_pkcs9_at_unstructuredName as r, id_pkcs9_at_challengePassword as s, ChallengePassword as t, id_ValuationRanking as u, id_InsuranceValue as v, id_WebGDPR as w, id_ActivityDescription as x, ActivityDescription as y, id_TypeRelationship as z };
11914
+ export { DisplayText as $, AsnData as A, id_DomainNameTechnicalOperator as B, Certificate as C, DomainNameTechnicalOperator as D, Extension as E, id_DomainNameOwner as F, DomainNameOwner as G, id_DomainNameLegalRepresentative as H, InsuranceValue as I, DomainNameLegalRepresentative as J, id_DomainNameBeneficiary as K, DomainNameBeneficiary as L, AttributeCertificate as M, Name as N, CertificationRequest as O, CertificateList as P, OIDs as Q, RSAPublicKey as R, Name$1 as S, TypeRelationship as T, UnstructuredName as U, ValuationRanking as V, WebGDPR as W, CRLReason as X, InvalidityDate as Y, CertificateIssuer as Z, OtherName as _, isX509Pem as a, UserNotice as a0, EDIPartyName as a1, AsnIntegerArrayBufferConverter as a2, KeyUsage as a3, BasicConstraints as a4, ExtendedKeyUsage as a5, SubjectKeyIdentifier as a6, AuthorityKeyIdentifier as a7, CRLDistributionPoints as a8, AuthorityInfoAccessSyntax as a9, SubjectInfoAccessSyntax as aa, SubjectAlternativeName as ab, CertificatePolicies as ac, CertificateTransparency as ad, NameConstraints as ae, CertificateTemplate as af, EnrollCertTypeChoice as ag, CaVersion as ah, QCStatements as ai, NetscapeComment as aj, NetscapeCertType as ak, LeiRole as al, LeiChoice as am, Timestamp as an, ArchiveRevInfo as ao, SubjectDirectoryAttributes as ap, PrivateKeyUsagePeriod as aq, EntrustVersionInfo as ar, BiometricSyntax as as, LogotypeExtn as at, TNAuthorizationList as au, PolicyConstraints as av, PolicyMappings as aw, CRLNumber as ax, IssuingDistributionPoint as ay, isPkcs10Pem as b, isX509AttributePem as c, isX509CRLPem as d, certificateRawToBuffer as e, AsnConvert as f, id_ecPublicKey as g, ECParameters as h, isPem as i, id_rsaEncryption as j, hexFormat as k, base64Format as l, getCertificateThumbprint as m, Attribute$1 as n, id_pkcs9_at_extensionRequest as o, AsnParser as p, ExtensionRequest as q, id_pkcs9_at_unstructuredName as r, id_pkcs9_at_challengePassword as s, ChallengePassword as t, id_ValuationRanking as u, id_InsuranceValue as v, id_WebGDPR as w, id_ActivityDescription as x, ActivityDescription as y, id_TypeRelationship as z };
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
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-5b5c2fa2.js';
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-0ecd0af1.js';
5
5
  import { b as build, D as Download } from './download-67ac9120.js';
6
- import { d as dateDiff } from './l10n-116c79fa.js';
6
+ import { d as dateDiff } from './l10n-a68d5748.js';
7
7
 
8
8
  /**
9
9
  * @license
@@ -250,6 +250,15 @@ class CRL extends AsnData {
250
250
  this.version = tbsCertList.version + 1;
251
251
  this.lastUpdate = tbsCertList.thisUpdate.getTime();
252
252
  this.nextUpdate = tbsCertList.nextUpdate.getTime();
253
+ this.revokedCertificates = (tbsCertList.revokedCertificates || [])
254
+ .map((revokedCertificate) => {
255
+ var _a;
256
+ return ({
257
+ revocationDate: revokedCertificate.revocationDate,
258
+ userCertificate: revokedCertificate.userCertificate,
259
+ crlEntryExtensions: (_a = revokedCertificate.crlEntryExtensions) === null || _a === void 0 ? void 0 : _a.map((e) => new Extension(AsnConvert.serialize(e))),
260
+ });
261
+ });
253
262
  }
254
263
  async getThumbprint(algorithm = 'SHA-1') {
255
264
  try {
@@ -64,7 +64,7 @@ const holder = "Holder";
64
64
  const digestInfo = "Digest Info";
65
65
  const type = "Type";
66
66
  const revokedCertificates = "Revoked Certificates";
67
- const revocation = "Revocation";
67
+ const revocationDate = "Revocation Date";
68
68
  const yes = "Yes";
69
69
  const no = "No";
70
70
  const onlyUserCertificates = "Only User Certificates";
@@ -72,6 +72,7 @@ const onlyAttributeCertificates = "Only Attribute Certificates";
72
72
  const onlyCACertificates = "Only CA Certificates";
73
73
  const indirectCRL = "Indirect CRL";
74
74
  const onlyReasons = "Only Reasons";
75
+ const crlEntryExtensions = "CRL Entry Extensions";
75
76
  const en = {
76
77
  basicInformation: basicInformation,
77
78
  subjectName: subjectName,
@@ -110,14 +111,15 @@ const en = {
110
111
  digestInfo: digestInfo,
111
112
  type: type,
112
113
  revokedCertificates: revokedCertificates,
113
- revocation: revocation,
114
+ revocationDate: revocationDate,
114
115
  yes: yes,
115
116
  no: no,
116
117
  onlyUserCertificates: onlyUserCertificates,
117
118
  onlyAttributeCertificates: onlyAttributeCertificates,
118
119
  onlyCACertificates: onlyCACertificates,
119
120
  indirectCRL: indirectCRL,
120
- onlyReasons: onlyReasons
121
+ onlyReasons: onlyReasons,
122
+ crlEntryExtensions: crlEntryExtensions
121
123
  };
122
124
 
123
125
  /**
@@ -2,11 +2,11 @@
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
4
  import { h, r as registerInstance, H as Host } from './index-bbd484d9.js';
5
- import { Q as OIDs, S as Name, y as ActivityDescription, W as WebGDPR, I as InsuranceValue, T as TypeRelationship, V as ValuationRanking, U as UnstructuredName, t as ChallengePassword } from './certification_request-5b5c2fa2.js';
5
+ import { Q as OIDs, S as Name, y as ActivityDescription, W as WebGDPR, I as InsuranceValue, T as TypeRelationship, V as ValuationRanking, U as UnstructuredName, t as ChallengePassword, X as CRLReason, Y as InvalidityDate, Z as CertificateIssuer } from './certification_request-0ecd0af1.js';
6
6
  import { b as build } from './download-67ac9120.js';
7
- import { l as l10n, a as dateShort } from './l10n-116c79fa.js';
8
- import { X as X509AttributeCertificate, a as CRL, C as CSR } from './crl-10d4db54.js';
9
- import { g as getStringByOID, R as RowValue, G as GeneralNamePart, a as RowTitle, B as BasicInformation, S as Signature, T as Thumbprints, b as getLEILink, c as getDNSNameLink, d as getIPAddressLink, E as Extensions, M as Miscellaneous, I as IssuerName, e as SubjectName, P as PublicKey } from './public_key-c1e6801e.js';
7
+ import { l as l10n, a as dateShort } from './l10n-a68d5748.js';
8
+ import { X as X509AttributeCertificate, a as CRL, C as CSR } from './crl-c09357a9.js';
9
+ import { g as getStringByOID, R as RowValue, G as GeneralNamePart, a as RowTitle, B as BasicInformation, S as Signature, T as Thumbprints, b as getLEILink, c as getDNSNameLink, d as getIPAddressLink, E as Extensions, M as Miscellaneous, I as IssuerName, e as SubjectName, P as PublicKey } from './public_key-e6d12f27.js';
10
10
 
11
11
  /**
12
12
  * @license
@@ -385,13 +385,38 @@ AttributeCertificateViewer.style = certificateViewerCss$2;
385
385
  * This source code is licensed under the MIT license found in the
386
386
  * LICENSE file in the root directory of this source tree.
387
387
  */
388
+ const TableRowTable = (_, children) => (h("tr", null,
389
+ h("td", { colSpan: 2 },
390
+ h("table", null, children))));
388
391
  const RevokedCertificates = (props) => {
389
- const { certificates, } = props;
392
+ const { revokedCertificates, getDNSNameLink, getIPAddressLink, } = props;
393
+ if (!revokedCertificates || !revokedCertificates.length) {
394
+ return null;
395
+ }
390
396
  return [
391
397
  h(RowTitle, { value: l10n.getString('revokedCertificates') }),
392
- certificates.map((certificate) => ([
398
+ revokedCertificates.map((certificate) => ([
393
399
  h(RowValue, { name: l10n.getString('serialNumber'), value: build.Convert.ToHex(certificate.userCertificate), monospace: true }),
394
- h(RowValue, { name: l10n.getString('revocation'), value: dateShort(certificate.revocationDate.getTime()) }),
400
+ h(RowValue, { name: l10n.getString('revocationDate'), value: dateShort(certificate.revocationDate.getTime()) }),
401
+ (certificate.crlEntryExtensions && certificate.crlEntryExtensions.length && ([
402
+ h(RowValue, { name: `${l10n.getString('crlEntryExtensions')}:`, value: "" }),
403
+ h(TableRowTable, null, certificate.crlEntryExtensions.map((extension) => {
404
+ if (extension.value instanceof CRLReason) {
405
+ return (h(RowValue, { name: getStringByOID(extension.asn.extnID), value: extension.value.toJSON() || extension.value.reason }));
406
+ }
407
+ if (extension.value instanceof InvalidityDate) {
408
+ return (h(RowValue, { name: getStringByOID(extension.asn.extnID), value: extension.value.value.getTime() }));
409
+ }
410
+ if (extension.value instanceof CertificateIssuer && extension.value.length) {
411
+ return ([
412
+ h(RowValue, { name: `${getStringByOID(extension.asn.extnID)}:`, value: "" }),
413
+ extension.value.map((gn) => (h(TableRowTable, null,
414
+ h(GeneralNamePart, { generalName: gn, getDNSNameLink: getDNSNameLink, getIPAddressLink: getIPAddressLink })))),
415
+ ]);
416
+ }
417
+ return (h(RowValue, { name: getStringByOID(extension.asn.extnID), value: build.Convert.ToHex(extension.asn.extnValue), monospace: true }));
418
+ })),
419
+ ])),
395
420
  h("tr", null,
396
421
  h("td", { colSpan: 2, class: "divider" },
397
422
  h("span", { class: "bg_fill" }))),
@@ -474,7 +499,7 @@ const CrlViewer = class {
474
499
  if (!this.certificateDecoded) {
475
500
  return this.renderEmptyState();
476
501
  }
477
- return (h(Host, { "data-view": this.view }, h("table", null, h(BasicInformation, Object.assign({}, this.certificateDecoded)), h(IssuerName, { name: this.certificateDecoded.issuer, issuerDnLink: this.getIssuerDnLink() }), h(Signature, { signature: this.certificateDecoded.signature }), h(Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), h(Extensions, { extensions: this.certificateDecoded.extensions, getLEILink: getLEILink, getDNSNameLink: getDNSNameLink, getIPAddressLink: getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink }), this.certificateDecoded.asn.tbsCertList.revokedCertificates && (h(RevokedCertificates, { certificates: this.certificateDecoded.asn.tbsCertList.revokedCertificates })), this.download && (h(Miscellaneous, { certificate: this.certificateDecoded })))));
502
+ return (h(Host, { "data-view": this.view }, h("table", null, h(BasicInformation, Object.assign({}, this.certificateDecoded)), h(IssuerName, { name: this.certificateDecoded.issuer, issuerDnLink: this.getIssuerDnLink() }), h(Signature, { signature: this.certificateDecoded.signature }), h(Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), h(Extensions, { extensions: this.certificateDecoded.extensions, getLEILink: getLEILink, getDNSNameLink: getDNSNameLink, getIPAddressLink: getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink }), h(RevokedCertificates, { revokedCertificates: this.certificateDecoded.revokedCertificates, getDNSNameLink: getDNSNameLink, getIPAddressLink: getIPAddressLink }), this.download && (h(Miscellaneous, { certificate: this.certificateDecoded })))));
478
503
  }
479
504
  static get watchers() { return {
480
505
  "certificate": ["watchCertificateAndDecode"]
@@ -2,11 +2,11 @@
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-bbd484d9.js';
5
- import { i as isPem, a as isX509Pem, b as isPkcs10Pem, c as isX509AttributePem, d as isX509CRLPem } from './certification_request-5b5c2fa2.js';
6
- import './l10n-116c79fa.js';
5
+ import { i as isPem, a as isX509Pem, b as isPkcs10Pem, c as isX509AttributePem, d as isX509CRLPem } from './certification_request-0ecd0af1.js';
6
+ import './l10n-a68d5748.js';
7
7
  import './download-67ac9120.js';
8
- import { X as X509Certificate } from './x509_certificate-61126913.js';
9
- import { X as X509AttributeCertificate, C as CSR, a as CRL } from './crl-10d4db54.js';
8
+ import { X as X509Certificate } from './x509_certificate-59d7a03c.js';
9
+ import { X as X509AttributeCertificate, C as CSR, a as CRL } from './crl-c09357a9.js';
10
10
 
11
11
  /**
12
12
  * @license
@@ -2,7 +2,7 @@
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
4
  import { r as registerInstance, h, H as Host, g as getElement } from './index-bbd484d9.js';
5
- import { l as l10n, a as dateShort } from './l10n-116c79fa.js';
5
+ import { l as l10n, a as dateShort } from './l10n-a68d5748.js';
6
6
  import './download-67ac9120.js';
7
7
 
8
8
  const certificateSummaryCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:block;width:100%}td{border:none;padding:0}table{width:100%;border-spacing:0;border-collapse:collapse}td{vertical-align:top;padding-top:5px;padding-bottom:5px}table td:first-child{width:130px;padding-right:10px}table td:last-child{width:calc(100% - 130px)}@media (max-width: 900px){table,tr,td{display:block}table td:last-child,table td:first-child{width:100%}}";
@@ -2,11 +2,11 @@
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
4
  import { r as registerInstance, h, H as Host } from './index-bbd484d9.js';
5
- import { X as X509Certificate } from './x509_certificate-61126913.js';
6
- import './certification_request-5b5c2fa2.js';
5
+ import { X as X509Certificate } from './x509_certificate-59d7a03c.js';
6
+ import './certification_request-0ecd0af1.js';
7
7
  import './download-67ac9120.js';
8
- import './l10n-116c79fa.js';
9
- import { B as BasicInformation, e as SubjectName, I as IssuerName, P as PublicKey, S as Signature, T as Thumbprints, E as Extensions, b as getLEILink, c as getDNSNameLink, d as getIPAddressLink, M as Miscellaneous } from './public_key-c1e6801e.js';
8
+ import './l10n-a68d5748.js';
9
+ import { B as BasicInformation, e as SubjectName, I as IssuerName, P as PublicKey, S as Signature, T as Thumbprints, E as Extensions, b as getLEILink, c as getDNSNameLink, d as getIPAddressLink, M as Miscellaneous } from './public_key-e6d12f27.js';
10
10
 
11
11
  const certificateViewerCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:block;width:100%;word-wrap:break-word;position:relative;min-width:280px;min-height:300px;background:white;background:rgba(var(--pv-color-light-rgb), 1)}th,td{border:none}table{width:100%;margin-bottom:30px;border-spacing:0;border-collapse:collapse}table .title td{border-color:rgba(209, 213, 217, 0.5);border-color:rgba(var(--pv-color-grey_3-rgb), 0.5);padding-top:60px;padding-bottom:15px;border-bottom-width:1px;border-bottom-style:solid}table td:first-child{padding-left:30px;width:130px;padding-right:10px}table td:last-child{padding-right:30px;width:calc(100% - 130px)}table td{vertical-align:top;padding-top:5px;padding-bottom:5px}table td.vertical_align_middle{vertical-align:middle}table .title:first-child td{padding-top:15px}table .title+tr td{padding-top:15px}table td.monospace{max-width:0}table .divider{padding-top:15px;padding-bottom:15px}.divider .bg_fill{background-color:rgba(209, 213, 217, 0.5);background-color:rgba(var(--pv-color-grey_3-rgb), 0.5)}table tr:last-child .divider{padding-top:0;opacity:0}.divider span{display:block;height:1px}.status_wrapper{min-height:inherit;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.interaction_text{padding:15px 0;width:300px;margin:auto;text-align:center}@media (max-width: 900px){table,tr,td{display:block}table td:last-child,table td:first-child{padding-right:15px;padding-left:15px;width:100%}table .title+tr td{padding-top:5px}table .title+tr td:first-child{padding-top:15px}table td.monospace{width:100%;max-width:none}}:host([data-view=mobile]) table,:host([data-view=mobile]) tr,:host([data-view=mobile]) td{display:block}:host([data-view=mobile]) table td:last-child,:host([data-view=mobile]) table td:first-child{padding-right:15px;padding-left:15px;width:100%}:host([data-view=mobile]) table .title+tr td{padding-top:5px}:host([data-view=mobile]) table .title+tr td:first-child{padding-top:15px}:host([data-view=mobile]) table td.monospace{width:100%;max-width:none}";
12
12