@peculiar/certificates-viewer 1.16.2 → 1.17.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.
Files changed (28) hide show
  1. package/dist/cjs/{download-5b56f3a9.js → download-78e61b1d.js} +78 -2
  2. package/dist/cjs/peculiar-attribute-certificate-viewer_9.cjs.entry.js +9 -6
  3. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +1 -1
  4. package/dist/collection/components/button/button.css +1 -1
  5. package/dist/collection/components/certificate-viewer/basic_information.js +4 -3
  6. package/dist/collection/components/csr-viewer/csr-viewer.js +2 -0
  7. package/dist/collection/crypto/csr.js +1 -0
  8. package/dist/collection/crypto/x509_attribute_certificate.js +1 -0
  9. package/dist/collection/crypto/x509_certificate.js +1 -0
  10. package/dist/esm/{download-93437bcb.js → download-c6153e99.js} +78 -2
  11. package/dist/esm/peculiar-attribute-certificate-viewer_9.entry.js +9 -6
  12. package/dist/esm/peculiar-certificates-viewer.entry.js +1 -1
  13. package/dist/esm-es5/{download-93437bcb.js → download-c6153e99.js} +86 -2
  14. package/dist/esm-es5/peculiar-attribute-certificate-viewer_9.entry.js +9 -6
  15. package/dist/esm-es5/peculiar-certificates-viewer.entry.js +1 -1
  16. package/dist/peculiar/{p-dfc5b982.system.js → p-05d621c2.system.js} +11 -11
  17. package/dist/peculiar/p-557d912f.system.js +1 -1
  18. package/dist/peculiar/{p-14aeb094.js → p-8e2bede4.js} +10 -10
  19. package/dist/peculiar/{p-911033a5.entry.js → p-bbac8b2a.entry.js} +1 -1
  20. package/dist/peculiar/{p-44a93ee3.system.entry.js → p-d20fc814.system.entry.js} +17 -17
  21. package/dist/peculiar/{p-0545a744.entry.js → p-d97c01b2.entry.js} +10 -10
  22. package/dist/peculiar/{p-de22a6d6.system.entry.js → p-fca4a08b.system.entry.js} +1 -1
  23. package/dist/peculiar/peculiar.esm.js +1 -1
  24. package/dist/types/components/certificate-viewer/basic_information.d.ts +6 -5
  25. package/dist/types/crypto/csr.d.ts +1 -0
  26. package/dist/types/crypto/x509_attribute_certificate.d.ts +1 -0
  27. package/dist/types/crypto/x509_certificate.d.ts +1 -0
  28. package/package.json +21 -21
@@ -6836,7 +6836,7 @@ var build = l10n.createCommonjsModule(function (module, exports) {
6836
6836
 
6837
6837
  (function (global, factory) {
6838
6838
  factory(exports) ;
6839
- }(l10n.commonjsGlobal, (function (exports) {
6839
+ })(l10n.commonjsGlobal, (function (exports) {
6840
6840
  class BufferSourceConverter {
6841
6841
  static isArrayBuffer(data) {
6842
6842
  return Object.prototype.toString.call(data) === '[object ArrayBuffer]';
@@ -6871,6 +6871,19 @@ var build = l10n.createCommonjsModule(function (module, exports) {
6871
6871
  return ArrayBuffer.isView(data)
6872
6872
  || (data && this.isArrayBuffer(data.buffer));
6873
6873
  }
6874
+ static isEqual(a, b) {
6875
+ const aView = BufferSourceConverter.toUint8Array(a);
6876
+ const bView = BufferSourceConverter.toUint8Array(b);
6877
+ if (aView.length !== bView.byteLength) {
6878
+ return false;
6879
+ }
6880
+ for (let i = 0; i < aView.length; i++) {
6881
+ if (aView[i] !== bView[i]) {
6882
+ return false;
6883
+ }
6884
+ }
6885
+ return true;
6886
+ }
6874
6887
  }
6875
6888
 
6876
6889
  class Utf8Converter {
@@ -7153,7 +7166,7 @@ var build = l10n.createCommonjsModule(function (module, exports) {
7153
7166
 
7154
7167
  Object.defineProperty(exports, '__esModule', { value: true });
7155
7168
 
7156
- })));
7169
+ }));
7157
7170
  });
7158
7171
 
7159
7172
  const index = l10n.unwrapExports(build);
@@ -9178,6 +9191,24 @@ exports.CertificatePolicies = CertificatePolicies_1 = __decorate([
9178
9191
  AsnType({ type: AsnTypeTypes.Sequence, itemType: PolicyInformation })
9179
9192
  ], exports.CertificatePolicies);
9180
9193
 
9194
+ let CRLNumber = class CRLNumber {
9195
+ constructor(value = 0) {
9196
+ this.value = value;
9197
+ }
9198
+ };
9199
+ __decorate([
9200
+ AsnProp({ type: AsnPropTypes.Integer })
9201
+ ], CRLNumber.prototype, "value", void 0);
9202
+ CRLNumber = __decorate([
9203
+ AsnType({ type: AsnTypeTypes.Choice })
9204
+ ], CRLNumber);
9205
+
9206
+ let BaseCRLNumber = class BaseCRLNumber extends CRLNumber {
9207
+ };
9208
+ BaseCRLNumber = __decorate([
9209
+ AsnType({ type: AsnTypeTypes.Choice })
9210
+ ], BaseCRLNumber);
9211
+
9181
9212
  var CRLDistributionPoints_1;
9182
9213
  const id_ce_cRLDistributionPoints = `${id_ce}.31`;
9183
9214
  var ReasonFlags;
@@ -9267,6 +9298,50 @@ exports.CRLDistributionPoints = CRLDistributionPoints_1 = __decorate([
9267
9298
  AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })
9268
9299
  ], exports.CRLDistributionPoints);
9269
9300
 
9301
+ var FreshestCRL_1;
9302
+ let FreshestCRL = FreshestCRL_1 = class FreshestCRL extends exports.CRLDistributionPoints {
9303
+ constructor(items) {
9304
+ super(items);
9305
+ Object.setPrototypeOf(this, FreshestCRL_1.prototype);
9306
+ }
9307
+ };
9308
+ FreshestCRL = FreshestCRL_1 = __decorate([
9309
+ AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })
9310
+ ], FreshestCRL);
9311
+
9312
+ class IssuingDistributionPoint {
9313
+ constructor(params = {}) {
9314
+ this.onlyContainsUserCerts = IssuingDistributionPoint.ONLY;
9315
+ this.onlyContainsCACerts = IssuingDistributionPoint.ONLY;
9316
+ this.indirectCRL = IssuingDistributionPoint.ONLY;
9317
+ this.onlyContainsAttributeCerts = IssuingDistributionPoint.ONLY;
9318
+ Object.assign(this, params);
9319
+ }
9320
+ ;
9321
+ ;
9322
+ ;
9323
+ ;
9324
+ }
9325
+ IssuingDistributionPoint.ONLY = false;
9326
+ __decorate([
9327
+ AsnProp({ type: DistributionPointName, context: 0, optional: true })
9328
+ ], IssuingDistributionPoint.prototype, "distributionPoint", void 0);
9329
+ __decorate([
9330
+ AsnProp({ type: AsnPropTypes.Boolean, context: 1, defaultValue: IssuingDistributionPoint.ONLY })
9331
+ ], IssuingDistributionPoint.prototype, "onlyContainsUserCerts", void 0);
9332
+ __decorate([
9333
+ AsnProp({ type: AsnPropTypes.Boolean, context: 2, defaultValue: IssuingDistributionPoint.ONLY })
9334
+ ], IssuingDistributionPoint.prototype, "onlyContainsCACerts", void 0);
9335
+ __decorate([
9336
+ AsnProp({ type: Reason, context: 3, optional: true })
9337
+ ], IssuingDistributionPoint.prototype, "onlySomeReasons", void 0);
9338
+ __decorate([
9339
+ AsnProp({ type: AsnPropTypes.Boolean, context: 4, defaultValue: IssuingDistributionPoint.ONLY })
9340
+ ], IssuingDistributionPoint.prototype, "indirectCRL", void 0);
9341
+ __decorate([
9342
+ AsnProp({ type: AsnPropTypes.Boolean, context: 5, defaultValue: IssuingDistributionPoint.ONLY })
9343
+ ], IssuingDistributionPoint.prototype, "onlyContainsAttributeCerts", void 0);
9344
+
9270
9345
  const id_ce_cRLReasons = `${id_ce}.21`;
9271
9346
  var CRLReasons;
9272
9347
  (function (CRLReasons) {
@@ -13825,6 +13900,7 @@ class X509Certificate extends AsnData {
13825
13900
  constructor(raw) {
13826
13901
  super(certificateRawToBuffer(raw), Certificate);
13827
13902
  this.thumbprints = {};
13903
+ this.type = 'X.509 Certificate';
13828
13904
  const { tbsCertificate } = this.asn;
13829
13905
  this.serialNumber = index.Convert.ToHex(tbsCertificate.serialNumber);
13830
13906
  this.subject = new Name(tbsCertificate.subject).toJSON();
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-2973f90a.js');
6
- const download = require('./download-5b56f3a9.js');
6
+ const download = require('./download-78e61b1d.js');
7
7
  const l10n = require('./l10n-91045362.js');
8
8
 
9
9
  /**
@@ -110,6 +110,7 @@ class X509AttributeCertificate extends download.AsnData {
110
110
  var _a;
111
111
  super(download.certificateRawToBuffer(raw), download.AttributeCertificate);
112
112
  this.thumbprints = {};
113
+ this.type = 'X.509 Attribute Certificate';
113
114
  const { acinfo } = this.asn;
114
115
  this.serialNumber = download.index.Convert.ToHex(acinfo.serialNumber);
115
116
  this.version = acinfo.version;
@@ -182,6 +183,7 @@ class CSR extends download.AsnData {
182
183
  constructor(raw) {
183
184
  super(download.certificateRawToBuffer(raw), download.CertificationRequest);
184
185
  this.thumbprints = {};
186
+ this.type = 'PKCS#10 Certificate Request';
185
187
  const { certificationRequestInfo } = this.asn;
186
188
  this.subject = new download.Name(certificationRequestInfo.subject).toJSON();
187
189
  this.version = certificationRequestInfo.version;
@@ -1379,14 +1381,15 @@ const Extensions = (props) => {
1379
1381
  * LICENSE file in the root directory of this source tree.
1380
1382
  */
1381
1383
  const BasicInformation = (props) => {
1382
- const { serialNumber, version, validity, notBefore, notAfter, } = props;
1384
+ const { serialNumber, version, validity, notBefore, notAfter, type, } = props;
1383
1385
  return [
1384
1386
  index.h(RowTitle, { value: l10n.l10n.getString('basicInformation') }),
1387
+ index.h(RowValue, { name: l10n.l10n.getString('type'), value: type }),
1385
1388
  index.h(RowValue, { name: l10n.l10n.getString('serialNumber'), value: serialNumber, monospace: true }),
1386
1389
  index.h(RowValue, { name: l10n.l10n.getString('version'), value: version }),
1387
1390
  index.h(RowValue, { name: l10n.l10n.getString('validity'), value: validity }),
1388
- index.h(RowValue, { name: l10n.l10n.getString('issued'), value: l10n.dateShort(notBefore) }),
1389
- index.h(RowValue, { name: l10n.l10n.getString('expired'), value: l10n.dateShort(notAfter) }),
1391
+ index.h(RowValue, { name: l10n.l10n.getString('issued'), value: notBefore ? l10n.dateShort(notBefore) : undefined }),
1392
+ index.h(RowValue, { name: l10n.l10n.getString('expired'), value: notAfter ? l10n.dateShort(notAfter) : undefined }),
1390
1393
  ];
1391
1394
  };
1392
1395
 
@@ -1571,7 +1574,7 @@ const AttributeCertificateViewer = class {
1571
1574
  };
1572
1575
  AttributeCertificateViewer.style = certificateViewerCss;
1573
1576
 
1574
- const buttonCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:inline-block;width:auto;cursor:pointer;position:relative;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;--pv-button-padding-end:5px;--pv-button-padding-start:5px}.button{font-family:\"Open Sans\", \"Arial\", sans-serif;font-family:var(--pv-font-family);font-size:13px;font-size:var(--pv-font-size-b3);letter-spacing:0.03em;letter-spacing:var(--pv-letter-spacing-normal);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:center;justify-content:center;width:100%;border-style:solid;border-width:1px;font-weight:400;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;vertical-align:middle;cursor:inherit;height:30px;line-height:30px;border-radius:2px;padding:0 5px;padding:0 var(--pv-button-padding-end) 0 var(--pv-button-padding-start)}.button::-moz-focus-inner{border:0}.button:focus{outline:none;-webkit-box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1);box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1)}.button[disabled]{opacity:0.5;cursor:not-allowed}.button_stroke{border-color:rgba(53, 132, 247, 0.3);border-color:rgba(var(--pv-color-primary-rgb), 0.3);color:#3584f7;color:rgba(var(--pv-color-primary-rgb), 1);background-color:transparent}.button_fill{border-color:#3584f7;border-color:rgba(var(--pv-color-primary-rgb), 1);background-color:#3584f7;background-color:rgba(var(--pv-color-primary-rgb), 1);color:white;color:rgba(var(--pv-color-light-rgb), 1)}.button_label{-webkit-transition:opacity 200ms;transition:opacity 200ms}.button:hover .button_label{opacity:0.7}";
1577
+ const buttonCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:inline-block;width:auto;cursor:pointer;position:relative;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;--pv-button-padding-end:5px;--pv-button-padding-start:5px}.button{font-family:\"Open Sans\", \"Arial\", sans-serif;font-family:var(--pv-font-family);font-size:13px;font-size:var(--pv-font-size-b3);letter-spacing:0.03em;letter-spacing:var(--pv-letter-spacing-normal);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;border-style:solid;border-width:1px;font-weight:400;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;vertical-align:middle;cursor:inherit;height:30px;line-height:30px;border-radius:2px;padding:0 5px;padding:0 var(--pv-button-padding-end) 0 var(--pv-button-padding-start)}.button::-moz-focus-inner{border:0}.button:focus{outline:none;-webkit-box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1);box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1)}.button[disabled]{opacity:0.5;cursor:not-allowed}.button_stroke{border-color:rgba(53, 132, 247, 0.3);border-color:rgba(var(--pv-color-primary-rgb), 0.3);color:#3584f7;color:rgba(var(--pv-color-primary-rgb), 1);background-color:transparent}.button_fill{border-color:#3584f7;border-color:rgba(var(--pv-color-primary-rgb), 1);background-color:#3584f7;background-color:rgba(var(--pv-color-primary-rgb), 1);color:white;color:rgba(var(--pv-color-light-rgb), 1)}.button_label{-webkit-transition:opacity 200ms;transition:opacity 200ms}.button:hover .button_label{opacity:0.7}";
1575
1578
 
1576
1579
  const Button = class {
1577
1580
  constructor(hostRef) {
@@ -2014,7 +2017,7 @@ const CsrViewer = class {
2014
2017
  return this.renderEmptyState();
2015
2018
  }
2016
2019
  const extensionRequestAttribute = this.getExtensionRequestAttribute();
2017
- return (index.h(index.Host, { "data-view": this.view }, index.h("table", null, index.h(SubjectName, { name: this.certificateDecoded.subject }), index.h(PublicKey, { publicKey: this.certificateDecoded.publicKey }), index.h(Signature, { signature: this.certificateDecoded.signature }), index.h(Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), index.h(Attributes, { attributes: this.certificateDecoded.attributes, getLEILink: this.getLEILink, getDNSNameLink: this.getDNSNameLink, getIPAddressLink: this.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), index.h(Extensions, { extensions: extensionRequestAttribute === null || extensionRequestAttribute === void 0 ? void 0 : extensionRequestAttribute.value, title: "Extension Request", getLEILink: this.getLEILink, getDNSNameLink: this.getDNSNameLink, getIPAddressLink: this.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), this.download && (index.h(Miscellaneous, { certificate: this.certificateDecoded })))));
2020
+ return (index.h(index.Host, { "data-view": this.view }, index.h("table", null, index.h(BasicInformation, Object.assign({}, this.certificateDecoded)), index.h(SubjectName, { name: this.certificateDecoded.subject }), index.h(PublicKey, { publicKey: this.certificateDecoded.publicKey }), index.h(Signature, { signature: this.certificateDecoded.signature }), index.h(Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), index.h(Attributes, { attributes: this.certificateDecoded.attributes, getLEILink: this.getLEILink, getDNSNameLink: this.getDNSNameLink, getIPAddressLink: this.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), index.h(Extensions, { extensions: extensionRequestAttribute === null || extensionRequestAttribute === void 0 ? void 0 : extensionRequestAttribute.value, title: "Extension Request", getLEILink: this.getLEILink, getDNSNameLink: this.getDNSNameLink, getIPAddressLink: this.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), this.download && (index.h(Miscellaneous, { certificate: this.certificateDecoded })))));
2018
2021
  }
2019
2022
  static get watchers() { return {
2020
2023
  "certificate": ["watchCertificateAndDecode"]
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-2973f90a.js');
6
- const download = require('./download-5b56f3a9.js');
6
+ const download = require('./download-78e61b1d.js');
7
7
  const l10n = require('./l10n-91045362.js');
8
8
 
9
9
  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::-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::-webkit-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}}";
@@ -32,7 +32,7 @@
32
32
  letter-spacing: 0.03em;
33
33
  letter-spacing: var(--pv-letter-spacing-normal);
34
34
  display: inline-flex;
35
- align-items: stretch;
35
+ align-items: center;
36
36
  justify-content: center;
37
37
  width: 100%;
38
38
  border-style: solid;
@@ -9,13 +9,14 @@ import { h } from '@stencil/core';
9
9
  import { dateShort, l10n } from '../../utils';
10
10
  import { RowTitle, RowValue } from './row';
11
11
  export const BasicInformation = (props) => {
12
- const { serialNumber, version, validity, notBefore, notAfter, } = props;
12
+ const { serialNumber, version, validity, notBefore, notAfter, type, } = props;
13
13
  return [
14
14
  h(RowTitle, { value: l10n.getString('basicInformation') }),
15
+ h(RowValue, { name: l10n.getString('type'), value: type }),
15
16
  h(RowValue, { name: l10n.getString('serialNumber'), value: serialNumber, monospace: true }),
16
17
  h(RowValue, { name: l10n.getString('version'), value: version }),
17
18
  h(RowValue, { name: l10n.getString('validity'), value: validity }),
18
- h(RowValue, { name: l10n.getString('issued'), value: dateShort(notBefore) }),
19
- h(RowValue, { name: l10n.getString('expired'), value: dateShort(notAfter) }),
19
+ h(RowValue, { name: l10n.getString('issued'), value: notBefore ? dateShort(notBefore) : undefined }),
20
+ h(RowValue, { name: l10n.getString('expired'), value: notAfter ? dateShort(notAfter) : undefined }),
20
21
  ];
21
22
  };
@@ -14,6 +14,7 @@ import { Thumbprints } from '../certificate-viewer/thumbprints';
14
14
  import { Attributes } from '../certificate-viewer/attributes';
15
15
  import { Extensions } from '../certificate-viewer/extensions';
16
16
  import { Miscellaneous } from '../certificate-viewer/miscellaneous';
17
+ import { BasicInformation } from '../certificate-viewer/basic_information';
17
18
  export class CsrViewer {
18
19
  constructor() {
19
20
  this.isDecodeInProcess = true;
@@ -103,6 +104,7 @@ export class CsrViewer {
103
104
  const extensionRequestAttribute = this.getExtensionRequestAttribute();
104
105
  return (h(Host, { "data-view": this.view },
105
106
  h("table", null,
107
+ h(BasicInformation, Object.assign({}, this.certificateDecoded)),
106
108
  h(SubjectName, { name: this.certificateDecoded.subject }),
107
109
  h(PublicKey, { publicKey: this.certificateDecoded.publicKey }),
108
110
  h(Signature, { signature: this.certificateDecoded.signature }),
@@ -18,6 +18,7 @@ export class CSR extends AsnData {
18
18
  constructor(raw) {
19
19
  super(certificateRawToBuffer(raw), CertificationRequest);
20
20
  this.thumbprints = {};
21
+ this.type = 'PKCS#10 Certificate Request';
21
22
  const { certificationRequestInfo } = this.asn;
22
23
  this.subject = new Name(certificationRequestInfo.subject).toJSON();
23
24
  this.version = certificationRequestInfo.version;
@@ -18,6 +18,7 @@ export class X509AttributeCertificate extends AsnData {
18
18
  var _a;
19
19
  super(certificateRawToBuffer(raw), AttributeCertificate);
20
20
  this.thumbprints = {};
21
+ this.type = 'X.509 Attribute Certificate';
21
22
  const { acinfo } = this.asn;
22
23
  this.serialNumber = Convert.ToHex(acinfo.serialNumber);
23
24
  this.version = acinfo.version;
@@ -19,6 +19,7 @@ export class X509Certificate extends AsnData {
19
19
  constructor(raw) {
20
20
  super(certificateRawToBuffer(raw), Certificate);
21
21
  this.thumbprints = {};
22
+ this.type = 'X.509 Certificate';
22
23
  const { tbsCertificate } = this.asn;
23
24
  this.serialNumber = Convert.ToHex(tbsCertificate.serialNumber);
24
25
  this.subject = new Name(tbsCertificate.subject).toJSON();
@@ -6834,7 +6834,7 @@ var build = createCommonjsModule(function (module, exports) {
6834
6834
 
6835
6835
  (function (global, factory) {
6836
6836
  factory(exports) ;
6837
- }(commonjsGlobal, (function (exports) {
6837
+ })(commonjsGlobal, (function (exports) {
6838
6838
  class BufferSourceConverter {
6839
6839
  static isArrayBuffer(data) {
6840
6840
  return Object.prototype.toString.call(data) === '[object ArrayBuffer]';
@@ -6869,6 +6869,19 @@ var build = createCommonjsModule(function (module, exports) {
6869
6869
  return ArrayBuffer.isView(data)
6870
6870
  || (data && this.isArrayBuffer(data.buffer));
6871
6871
  }
6872
+ static isEqual(a, b) {
6873
+ const aView = BufferSourceConverter.toUint8Array(a);
6874
+ const bView = BufferSourceConverter.toUint8Array(b);
6875
+ if (aView.length !== bView.byteLength) {
6876
+ return false;
6877
+ }
6878
+ for (let i = 0; i < aView.length; i++) {
6879
+ if (aView[i] !== bView[i]) {
6880
+ return false;
6881
+ }
6882
+ }
6883
+ return true;
6884
+ }
6872
6885
  }
6873
6886
 
6874
6887
  class Utf8Converter {
@@ -7151,7 +7164,7 @@ var build = createCommonjsModule(function (module, exports) {
7151
7164
 
7152
7165
  Object.defineProperty(exports, '__esModule', { value: true });
7153
7166
 
7154
- })));
7167
+ }));
7155
7168
  });
7156
7169
 
7157
7170
  const index = unwrapExports(build);
@@ -9176,6 +9189,24 @@ CertificatePolicies = CertificatePolicies_1 = __decorate([
9176
9189
  AsnType({ type: AsnTypeTypes.Sequence, itemType: PolicyInformation })
9177
9190
  ], CertificatePolicies);
9178
9191
 
9192
+ let CRLNumber = class CRLNumber {
9193
+ constructor(value = 0) {
9194
+ this.value = value;
9195
+ }
9196
+ };
9197
+ __decorate([
9198
+ AsnProp({ type: AsnPropTypes.Integer })
9199
+ ], CRLNumber.prototype, "value", void 0);
9200
+ CRLNumber = __decorate([
9201
+ AsnType({ type: AsnTypeTypes.Choice })
9202
+ ], CRLNumber);
9203
+
9204
+ let BaseCRLNumber = class BaseCRLNumber extends CRLNumber {
9205
+ };
9206
+ BaseCRLNumber = __decorate([
9207
+ AsnType({ type: AsnTypeTypes.Choice })
9208
+ ], BaseCRLNumber);
9209
+
9179
9210
  var CRLDistributionPoints_1;
9180
9211
  const id_ce_cRLDistributionPoints = `${id_ce}.31`;
9181
9212
  var ReasonFlags;
@@ -9265,6 +9296,50 @@ CRLDistributionPoints = CRLDistributionPoints_1 = __decorate([
9265
9296
  AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })
9266
9297
  ], CRLDistributionPoints);
9267
9298
 
9299
+ var FreshestCRL_1;
9300
+ let FreshestCRL = FreshestCRL_1 = class FreshestCRL extends CRLDistributionPoints {
9301
+ constructor(items) {
9302
+ super(items);
9303
+ Object.setPrototypeOf(this, FreshestCRL_1.prototype);
9304
+ }
9305
+ };
9306
+ FreshestCRL = FreshestCRL_1 = __decorate([
9307
+ AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })
9308
+ ], FreshestCRL);
9309
+
9310
+ class IssuingDistributionPoint {
9311
+ constructor(params = {}) {
9312
+ this.onlyContainsUserCerts = IssuingDistributionPoint.ONLY;
9313
+ this.onlyContainsCACerts = IssuingDistributionPoint.ONLY;
9314
+ this.indirectCRL = IssuingDistributionPoint.ONLY;
9315
+ this.onlyContainsAttributeCerts = IssuingDistributionPoint.ONLY;
9316
+ Object.assign(this, params);
9317
+ }
9318
+ ;
9319
+ ;
9320
+ ;
9321
+ ;
9322
+ }
9323
+ IssuingDistributionPoint.ONLY = false;
9324
+ __decorate([
9325
+ AsnProp({ type: DistributionPointName, context: 0, optional: true })
9326
+ ], IssuingDistributionPoint.prototype, "distributionPoint", void 0);
9327
+ __decorate([
9328
+ AsnProp({ type: AsnPropTypes.Boolean, context: 1, defaultValue: IssuingDistributionPoint.ONLY })
9329
+ ], IssuingDistributionPoint.prototype, "onlyContainsUserCerts", void 0);
9330
+ __decorate([
9331
+ AsnProp({ type: AsnPropTypes.Boolean, context: 2, defaultValue: IssuingDistributionPoint.ONLY })
9332
+ ], IssuingDistributionPoint.prototype, "onlyContainsCACerts", void 0);
9333
+ __decorate([
9334
+ AsnProp({ type: Reason, context: 3, optional: true })
9335
+ ], IssuingDistributionPoint.prototype, "onlySomeReasons", void 0);
9336
+ __decorate([
9337
+ AsnProp({ type: AsnPropTypes.Boolean, context: 4, defaultValue: IssuingDistributionPoint.ONLY })
9338
+ ], IssuingDistributionPoint.prototype, "indirectCRL", void 0);
9339
+ __decorate([
9340
+ AsnProp({ type: AsnPropTypes.Boolean, context: 5, defaultValue: IssuingDistributionPoint.ONLY })
9341
+ ], IssuingDistributionPoint.prototype, "onlyContainsAttributeCerts", void 0);
9342
+
9268
9343
  const id_ce_cRLReasons = `${id_ce}.21`;
9269
9344
  var CRLReasons;
9270
9345
  (function (CRLReasons) {
@@ -13823,6 +13898,7 @@ class X509Certificate extends AsnData {
13823
13898
  constructor(raw) {
13824
13899
  super(certificateRawToBuffer(raw), Certificate);
13825
13900
  this.thumbprints = {};
13901
+ this.type = 'X.509 Certificate';
13826
13902
  const { tbsCertificate } = this.asn;
13827
13903
  this.serialNumber = index.Convert.ToHex(tbsCertificate.serialNumber);
13828
13904
  this.subject = new Name$1(tbsCertificate.subject).toJSON();
@@ -1,5 +1,5 @@
1
1
  import { h, r as registerInstance, H as Host, c as createEvent } from './index-5ef692cc.js';
2
- import { A as AsnData, a as Attribute$1, i as index, b as id_pkcs9_at_extensionRequest, c as AsnParser, E as ExtensionRequest, d as Extension, e as AsnConvert, f as id_pkcs9_at_unstructuredName, U as UnstructuredName, g as id_pkcs9_at_challengePassword, C as ChallengePassword, h as id_ValuationRanking, V as ValuationRanking, j as id_InsuranceValue, I as InsuranceValue, k as id_WebGDPR, W as WebGDPR, l as id_ActivityDescription, m as ActivityDescription, n as id_TypeRelationship, T as TypeRelationship, o as id_DomainNameTechnicalOperator, D as DomainNameTechnicalOperator, p as id_DomainNameOwner, q as DomainNameOwner, r as id_DomainNameLegalRepresentative, s as DomainNameLegalRepresentative, t as id_DomainNameBeneficiary, u as DomainNameBeneficiary, v as certificateRawToBuffer, w as AttributeCertificate, x as getCertificateThumbprint, y as hexFormat, z as base64Format, B as CertificationRequest, N as Name, F as id_ecPublicKey, G as ECParameters, H as id_rsaEncryption, R as RSAPublicKey, O as OIDs, J as Name$1, K as OtherName, L as DisplayText, M as EDIPartyName, P as UserNotice, Q as KeyUsage, S as BasicConstraints, X as ExtendedKeyUsage, Y as SubjectKeyIdentifier, Z as AuthorityKeyIdentifier, _ as CRLDistributionPoints, $ as AuthorityInfoAccessSyntax, a0 as SubjectAlternativeName, a1 as CertificatePolicies, a2 as CertificateTransparency, a3 as NameConstraints, a4 as CertificateTemplate, a5 as EnrollCertTypeChoice, a6 as CaVersion, a7 as QCStatements, a8 as NetscapeComment, a9 as NetscapeCertType, aa as LeiRole, ab as LeiChoice, ac as Timestamp, ad as ArchiveRevInfo, ae as CRLReason, af as SubjectDirectoryAttributes, ag as PrivateKeyUsagePeriod, ah as EntrustVersionInfo, ai as BiometricSyntax, aj as LogotypeExtn, ak as TNAuthorizationList, al as Download, am as isPem, an as isX509Pem, ao as isPkcs10Pem, ap as isX509AttributePem, aq as X509Certificate } from './download-93437bcb.js';
2
+ import { A as AsnData, a as Attribute$1, i as index, b as id_pkcs9_at_extensionRequest, c as AsnParser, E as ExtensionRequest, d as Extension, e as AsnConvert, f as id_pkcs9_at_unstructuredName, U as UnstructuredName, g as id_pkcs9_at_challengePassword, C as ChallengePassword, h as id_ValuationRanking, V as ValuationRanking, j as id_InsuranceValue, I as InsuranceValue, k as id_WebGDPR, W as WebGDPR, l as id_ActivityDescription, m as ActivityDescription, n as id_TypeRelationship, T as TypeRelationship, o as id_DomainNameTechnicalOperator, D as DomainNameTechnicalOperator, p as id_DomainNameOwner, q as DomainNameOwner, r as id_DomainNameLegalRepresentative, s as DomainNameLegalRepresentative, t as id_DomainNameBeneficiary, u as DomainNameBeneficiary, v as certificateRawToBuffer, w as AttributeCertificate, x as getCertificateThumbprint, y as hexFormat, z as base64Format, B as CertificationRequest, N as Name, F as id_ecPublicKey, G as ECParameters, H as id_rsaEncryption, R as RSAPublicKey, O as OIDs, J as Name$1, K as OtherName, L as DisplayText, M as EDIPartyName, P as UserNotice, Q as KeyUsage, S as BasicConstraints, X as ExtendedKeyUsage, Y as SubjectKeyIdentifier, Z as AuthorityKeyIdentifier, _ as CRLDistributionPoints, $ as AuthorityInfoAccessSyntax, a0 as SubjectAlternativeName, a1 as CertificatePolicies, a2 as CertificateTransparency, a3 as NameConstraints, a4 as CertificateTemplate, a5 as EnrollCertTypeChoice, a6 as CaVersion, a7 as QCStatements, a8 as NetscapeComment, a9 as NetscapeCertType, aa as LeiRole, ab as LeiChoice, ac as Timestamp, ad as ArchiveRevInfo, ae as CRLReason, af as SubjectDirectoryAttributes, ag as PrivateKeyUsagePeriod, ah as EntrustVersionInfo, ai as BiometricSyntax, aj as LogotypeExtn, ak as TNAuthorizationList, al as Download, am as isPem, an as isX509Pem, ao as isPkcs10Pem, ap as isX509AttributePem, aq as X509Certificate } from './download-c6153e99.js';
3
3
  import { d as dateDiff, l as l10n, a as dateShort, h as history } from './l10n-25aa4c54.js';
4
4
 
5
5
  /**
@@ -106,6 +106,7 @@ class X509AttributeCertificate extends AsnData {
106
106
  var _a;
107
107
  super(certificateRawToBuffer(raw), AttributeCertificate);
108
108
  this.thumbprints = {};
109
+ this.type = 'X.509 Attribute Certificate';
109
110
  const { acinfo } = this.asn;
110
111
  this.serialNumber = index.Convert.ToHex(acinfo.serialNumber);
111
112
  this.version = acinfo.version;
@@ -178,6 +179,7 @@ class CSR extends AsnData {
178
179
  constructor(raw) {
179
180
  super(certificateRawToBuffer(raw), CertificationRequest);
180
181
  this.thumbprints = {};
182
+ this.type = 'PKCS#10 Certificate Request';
181
183
  const { certificationRequestInfo } = this.asn;
182
184
  this.subject = new Name(certificationRequestInfo.subject).toJSON();
183
185
  this.version = certificationRequestInfo.version;
@@ -1375,14 +1377,15 @@ const Extensions = (props) => {
1375
1377
  * LICENSE file in the root directory of this source tree.
1376
1378
  */
1377
1379
  const BasicInformation = (props) => {
1378
- const { serialNumber, version, validity, notBefore, notAfter, } = props;
1380
+ const { serialNumber, version, validity, notBefore, notAfter, type, } = props;
1379
1381
  return [
1380
1382
  h(RowTitle, { value: l10n.getString('basicInformation') }),
1383
+ h(RowValue, { name: l10n.getString('type'), value: type }),
1381
1384
  h(RowValue, { name: l10n.getString('serialNumber'), value: serialNumber, monospace: true }),
1382
1385
  h(RowValue, { name: l10n.getString('version'), value: version }),
1383
1386
  h(RowValue, { name: l10n.getString('validity'), value: validity }),
1384
- h(RowValue, { name: l10n.getString('issued'), value: dateShort(notBefore) }),
1385
- h(RowValue, { name: l10n.getString('expired'), value: dateShort(notAfter) }),
1387
+ h(RowValue, { name: l10n.getString('issued'), value: notBefore ? dateShort(notBefore) : undefined }),
1388
+ h(RowValue, { name: l10n.getString('expired'), value: notAfter ? dateShort(notAfter) : undefined }),
1386
1389
  ];
1387
1390
  };
1388
1391
 
@@ -1567,7 +1570,7 @@ const AttributeCertificateViewer = class {
1567
1570
  };
1568
1571
  AttributeCertificateViewer.style = certificateViewerCss;
1569
1572
 
1570
- const buttonCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:inline-block;width:auto;cursor:pointer;position:relative;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;--pv-button-padding-end:5px;--pv-button-padding-start:5px}.button{font-family:\"Open Sans\", \"Arial\", sans-serif;font-family:var(--pv-font-family);font-size:13px;font-size:var(--pv-font-size-b3);letter-spacing:0.03em;letter-spacing:var(--pv-letter-spacing-normal);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:center;justify-content:center;width:100%;border-style:solid;border-width:1px;font-weight:400;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;vertical-align:middle;cursor:inherit;height:30px;line-height:30px;border-radius:2px;padding:0 5px;padding:0 var(--pv-button-padding-end) 0 var(--pv-button-padding-start)}.button::-moz-focus-inner{border:0}.button:focus{outline:none;-webkit-box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1);box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1)}.button[disabled]{opacity:0.5;cursor:not-allowed}.button_stroke{border-color:rgba(53, 132, 247, 0.3);border-color:rgba(var(--pv-color-primary-rgb), 0.3);color:#3584f7;color:rgba(var(--pv-color-primary-rgb), 1);background-color:transparent}.button_fill{border-color:#3584f7;border-color:rgba(var(--pv-color-primary-rgb), 1);background-color:#3584f7;background-color:rgba(var(--pv-color-primary-rgb), 1);color:white;color:rgba(var(--pv-color-light-rgb), 1)}.button_label{-webkit-transition:opacity 200ms;transition:opacity 200ms}.button:hover .button_label{opacity:0.7}";
1573
+ const buttonCss = ":host{-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *:before,:host *:after{-webkit-box-sizing:inherit;box-sizing:inherit}:host{display:inline-block;width:auto;cursor:pointer;position:relative;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;--pv-button-padding-end:5px;--pv-button-padding-start:5px}.button{font-family:\"Open Sans\", \"Arial\", sans-serif;font-family:var(--pv-font-family);font-size:13px;font-size:var(--pv-font-size-b3);letter-spacing:0.03em;letter-spacing:var(--pv-letter-spacing-normal);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;border-style:solid;border-width:1px;font-weight:400;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;vertical-align:middle;cursor:inherit;height:30px;line-height:30px;border-radius:2px;padding:0 5px;padding:0 var(--pv-button-padding-end) 0 var(--pv-button-padding-start)}.button::-moz-focus-inner{border:0}.button:focus{outline:none;-webkit-box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1);box-shadow:0 4px 10px 0 rgba(var(--pv-color-dark-rgb), 0.1)}.button[disabled]{opacity:0.5;cursor:not-allowed}.button_stroke{border-color:rgba(53, 132, 247, 0.3);border-color:rgba(var(--pv-color-primary-rgb), 0.3);color:#3584f7;color:rgba(var(--pv-color-primary-rgb), 1);background-color:transparent}.button_fill{border-color:#3584f7;border-color:rgba(var(--pv-color-primary-rgb), 1);background-color:#3584f7;background-color:rgba(var(--pv-color-primary-rgb), 1);color:white;color:rgba(var(--pv-color-light-rgb), 1)}.button_label{-webkit-transition:opacity 200ms;transition:opacity 200ms}.button:hover .button_label{opacity:0.7}";
1571
1574
 
1572
1575
  const Button = class {
1573
1576
  constructor(hostRef) {
@@ -2010,7 +2013,7 @@ const CsrViewer = class {
2010
2013
  return this.renderEmptyState();
2011
2014
  }
2012
2015
  const extensionRequestAttribute = this.getExtensionRequestAttribute();
2013
- return (h(Host, { "data-view": this.view }, h("table", null, h(SubjectName, { name: this.certificateDecoded.subject }), h(PublicKey, { publicKey: this.certificateDecoded.publicKey }), h(Signature, { signature: this.certificateDecoded.signature }), h(Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), h(Attributes, { attributes: this.certificateDecoded.attributes, getLEILink: this.getLEILink, getDNSNameLink: this.getDNSNameLink, getIPAddressLink: this.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), h(Extensions, { extensions: extensionRequestAttribute === null || extensionRequestAttribute === void 0 ? void 0 : extensionRequestAttribute.value, title: "Extension Request", getLEILink: this.getLEILink, getDNSNameLink: this.getDNSNameLink, getIPAddressLink: this.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), this.download && (h(Miscellaneous, { certificate: this.certificateDecoded })))));
2016
+ return (h(Host, { "data-view": this.view }, h("table", null, h(BasicInformation, Object.assign({}, this.certificateDecoded)), h(SubjectName, { name: this.certificateDecoded.subject }), h(PublicKey, { publicKey: this.certificateDecoded.publicKey }), h(Signature, { signature: this.certificateDecoded.signature }), h(Thumbprints, { thumbprints: this.certificateDecoded.thumbprints }), h(Attributes, { attributes: this.certificateDecoded.attributes, getLEILink: this.getLEILink, getDNSNameLink: this.getDNSNameLink, getIPAddressLink: this.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), h(Extensions, { extensions: extensionRequestAttribute === null || extensionRequestAttribute === void 0 ? void 0 : extensionRequestAttribute.value, title: "Extension Request", getLEILink: this.getLEILink, getDNSNameLink: this.getDNSNameLink, getIPAddressLink: this.getIPAddressLink, getAuthKeyIdParentLink: this.getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink: this.getAuthKeyIdSiblingsLink, getSubjectKeyIdChildrenLink: this.getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink: this.getSubjectKeyIdSiblingsLink }), this.download && (h(Miscellaneous, { certificate: this.certificateDecoded })))));
2014
2017
  }
2015
2018
  static get watchers() { return {
2016
2019
  "certificate": ["watchCertificateAndDecode"]
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-5ef692cc.js';
2
- import { aq as X509Certificate, al as Download, O as OIDs } from './download-93437bcb.js';
2
+ import { aq as X509Certificate, al as Download, O as OIDs } from './download-c6153e99.js';
3
3
  import { l as l10n } from './l10n-25aa4c54.js';
4
4
 
5
5
  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::-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::-webkit-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}}";
@@ -5833,7 +5833,7 @@ var build = createCommonjsModule(function (module, exports) {
5833
5833
  */
5834
5834
  (function (global, factory) {
5835
5835
  factory(exports);
5836
- }(commonjsGlobal, (function (exports) {
5836
+ })(commonjsGlobal, (function (exports) {
5837
5837
  var BufferSourceConverter = /** @class */ (function () {
5838
5838
  function BufferSourceConverter() {
5839
5839
  }
@@ -5870,6 +5870,19 @@ var build = createCommonjsModule(function (module, exports) {
5870
5870
  return ArrayBuffer.isView(data)
5871
5871
  || (data && this.isArrayBuffer(data.buffer));
5872
5872
  };
5873
+ BufferSourceConverter.isEqual = function (a, b) {
5874
+ var aView = BufferSourceConverter.toUint8Array(a);
5875
+ var bView = BufferSourceConverter.toUint8Array(b);
5876
+ if (aView.length !== bView.byteLength) {
5877
+ return false;
5878
+ }
5879
+ for (var i = 0; i < aView.length; i++) {
5880
+ if (aView[i] !== bView[i]) {
5881
+ return false;
5882
+ }
5883
+ }
5884
+ return true;
5885
+ };
5873
5886
  return BufferSourceConverter;
5874
5887
  }());
5875
5888
  var Utf8Converter = /** @class */ (function () {
@@ -6174,7 +6187,7 @@ var build = createCommonjsModule(function (module, exports) {
6174
6187
  exports.combine = combine;
6175
6188
  exports.isEqual = isEqual;
6176
6189
  Object.defineProperty(exports, '__esModule', { value: true });
6177
- })));
6190
+ }));
6178
6191
  });
6179
6192
  var index = unwrapExports(build);
6180
6193
  var BitString$1 = /** @class */ (function () {
@@ -8137,6 +8150,29 @@ var CertificatePolicies = CertificatePolicies_1 = /** @class */ (function (_supe
8137
8150
  CertificatePolicies = CertificatePolicies_1 = __decorate([
8138
8151
  AsnType({ type: AsnTypeTypes.Sequence, itemType: PolicyInformation })
8139
8152
  ], CertificatePolicies);
8153
+ var CRLNumber = /** @class */ (function () {
8154
+ function CRLNumber(value) {
8155
+ if (value === void 0) { value = 0; }
8156
+ this.value = value;
8157
+ }
8158
+ return CRLNumber;
8159
+ }());
8160
+ __decorate([
8161
+ AsnProp({ type: AsnPropTypes.Integer })
8162
+ ], CRLNumber.prototype, "value", void 0);
8163
+ CRLNumber = __decorate([
8164
+ AsnType({ type: AsnTypeTypes.Choice })
8165
+ ], CRLNumber);
8166
+ var BaseCRLNumber = /** @class */ (function (_super) {
8167
+ __extends(BaseCRLNumber, _super);
8168
+ function BaseCRLNumber() {
8169
+ return _super !== null && _super.apply(this, arguments) || this;
8170
+ }
8171
+ return BaseCRLNumber;
8172
+ }(CRLNumber));
8173
+ BaseCRLNumber = __decorate([
8174
+ AsnType({ type: AsnTypeTypes.Choice })
8175
+ ], BaseCRLNumber);
8140
8176
  var CRLDistributionPoints_1;
8141
8177
  var id_ce_cRLDistributionPoints = id_ce + ".31";
8142
8178
  var ReasonFlags;
@@ -8237,6 +8273,53 @@ var CRLDistributionPoints = CRLDistributionPoints_1 = /** @class */ (function (_
8237
8273
  CRLDistributionPoints = CRLDistributionPoints_1 = __decorate([
8238
8274
  AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })
8239
8275
  ], CRLDistributionPoints);
8276
+ var FreshestCRL_1;
8277
+ var FreshestCRL = FreshestCRL_1 = /** @class */ (function (_super) {
8278
+ __extends(FreshestCRL, _super);
8279
+ function FreshestCRL(items) {
8280
+ var _this = _super.call(this, items) || this;
8281
+ Object.setPrototypeOf(_this, FreshestCRL_1.prototype);
8282
+ return _this;
8283
+ }
8284
+ return FreshestCRL;
8285
+ }(CRLDistributionPoints));
8286
+ FreshestCRL = FreshestCRL_1 = __decorate([
8287
+ AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })
8288
+ ], FreshestCRL);
8289
+ var IssuingDistributionPoint = /** @class */ (function () {
8290
+ function IssuingDistributionPoint(params) {
8291
+ if (params === void 0) { params = {}; }
8292
+ this.onlyContainsUserCerts = IssuingDistributionPoint.ONLY;
8293
+ this.onlyContainsCACerts = IssuingDistributionPoint.ONLY;
8294
+ this.indirectCRL = IssuingDistributionPoint.ONLY;
8295
+ this.onlyContainsAttributeCerts = IssuingDistributionPoint.ONLY;
8296
+ Object.assign(this, params);
8297
+ }
8298
+ ;
8299
+ ;
8300
+ ;
8301
+ ;
8302
+ return IssuingDistributionPoint;
8303
+ }());
8304
+ IssuingDistributionPoint.ONLY = false;
8305
+ __decorate([
8306
+ AsnProp({ type: DistributionPointName, context: 0, optional: true })
8307
+ ], IssuingDistributionPoint.prototype, "distributionPoint", void 0);
8308
+ __decorate([
8309
+ AsnProp({ type: AsnPropTypes.Boolean, context: 1, defaultValue: IssuingDistributionPoint.ONLY })
8310
+ ], IssuingDistributionPoint.prototype, "onlyContainsUserCerts", void 0);
8311
+ __decorate([
8312
+ AsnProp({ type: AsnPropTypes.Boolean, context: 2, defaultValue: IssuingDistributionPoint.ONLY })
8313
+ ], IssuingDistributionPoint.prototype, "onlyContainsCACerts", void 0);
8314
+ __decorate([
8315
+ AsnProp({ type: Reason, context: 3, optional: true })
8316
+ ], IssuingDistributionPoint.prototype, "onlySomeReasons", void 0);
8317
+ __decorate([
8318
+ AsnProp({ type: AsnPropTypes.Boolean, context: 4, defaultValue: IssuingDistributionPoint.ONLY })
8319
+ ], IssuingDistributionPoint.prototype, "indirectCRL", void 0);
8320
+ __decorate([
8321
+ AsnProp({ type: AsnPropTypes.Boolean, context: 5, defaultValue: IssuingDistributionPoint.ONLY })
8322
+ ], IssuingDistributionPoint.prototype, "onlyContainsAttributeCerts", void 0);
8240
8323
  var id_ce_cRLReasons = id_ce + ".21";
8241
8324
  var CRLReasons;
8242
8325
  (function (CRLReasons) {
@@ -12969,6 +13052,7 @@ var X509Certificate = /** @class */ (function (_super) {
12969
13052
  function X509Certificate(raw) {
12970
13053
  var _this = _super.call(this, certificateRawToBuffer(raw), Certificate) || this;
12971
13054
  _this.thumbprints = {};
13055
+ _this.type = 'X.509 Certificate';
12972
13056
  var tbsCertificate = _this.asn.tbsCertificate;
12973
13057
  _this.serialNumber = index.Convert.ToHex(tbsCertificate.serialNumber);
12974
13058
  _this.subject = new Name$1(tbsCertificate.subject).toJSON();