@peculiar/certificates-viewer 4.2.2 → 4.3.1

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 (142) hide show
  1. package/components/attribute-certificate-viewer.js +1 -1
  2. package/components/attribute-certificate-viewer.js.map +1 -1
  3. package/components/certificate-viewer.js +2 -2
  4. package/components/certificate-viewer.js.map +1 -1
  5. package/components/crl-viewer.js +2 -2
  6. package/components/crl-viewer.js.map +1 -1
  7. package/components/download.js +84 -18
  8. package/components/download.js.map +1 -1
  9. package/components/peculiar-certificate-decoder.js +12 -69
  10. package/components/peculiar-certificate-decoder.js.map +1 -1
  11. package/components/pkcs10_certificate_request.js +1 -1
  12. package/components/pkcs10_certificate_request.js.map +1 -1
  13. package/dist/cjs/{certification_request-815ec558.js → certification_request-ad267278.js} +84 -23
  14. package/dist/cjs/certification_request-ad267278.js.map +1 -0
  15. package/dist/cjs/index.cjs.js +2 -2
  16. package/dist/cjs/{miscellaneous-9a573276.js → miscellaneous-67439e59.js} +2 -2
  17. package/dist/cjs/{miscellaneous-9a573276.js.map → miscellaneous-67439e59.js.map} +1 -1
  18. package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js +4 -4
  19. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +15 -72
  20. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js.map +1 -1
  21. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +3 -3
  22. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +2 -2
  23. package/dist/cjs/{pkcs10_certificate_request-0ebc0023.js → pkcs10_certificate_request-64898c88.js} +3 -3
  24. package/dist/cjs/pkcs10_certificate_request-64898c88.js.map +1 -0
  25. package/dist/cjs/{x509_certificate-9914b149.js → x509_certificate-4b0894c2.js} +3 -3
  26. package/dist/cjs/x509_certificate-4b0894c2.js.map +1 -0
  27. package/dist/cjs/{x509_crl-86b6e71d.js → x509_crl-fc8d41a1.js} +5 -5
  28. package/dist/cjs/x509_crl-fc8d41a1.js.map +1 -0
  29. package/dist/collection/components/certificate-decoder/certificate-decoder.js +12 -69
  30. package/dist/collection/components/certificate-decoder/certificate-decoder.js.map +1 -1
  31. package/dist/collection/constants/oids.js +3 -0
  32. package/dist/collection/constants/oids.js.map +1 -1
  33. package/dist/collection/crypto/pkcs10_certificate_request.js +1 -1
  34. package/dist/collection/crypto/pkcs10_certificate_request.js.map +1 -1
  35. package/dist/collection/crypto/x509_attribute_certificate.js +1 -1
  36. package/dist/collection/crypto/x509_attribute_certificate.js.map +1 -1
  37. package/dist/collection/crypto/x509_certificate.js +1 -1
  38. package/dist/collection/crypto/x509_certificate.js.map +1 -1
  39. package/dist/collection/crypto/x509_crl.js +1 -1
  40. package/dist/collection/crypto/x509_crl.js.map +1 -1
  41. package/dist/collection/utils/download.js +8 -8
  42. package/dist/collection/utils/download.js.map +1 -1
  43. package/dist/collection/utils/validator.js +0 -8
  44. package/dist/collection/utils/validator.js.map +1 -1
  45. package/dist/esm/{certification_request-08b4deb8.js → certification_request-a4699dcf.js} +85 -19
  46. package/dist/esm/certification_request-a4699dcf.js.map +1 -0
  47. package/dist/esm/index.js +2 -2
  48. package/dist/esm/{miscellaneous-d4bbc6f2.js → miscellaneous-ba1fd2bd.js} +2 -2
  49. package/dist/esm/{miscellaneous-d4bbc6f2.js.map → miscellaneous-ba1fd2bd.js.map} +1 -1
  50. package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js +4 -4
  51. package/dist/esm/peculiar-certificate-decoder.entry.js +15 -72
  52. package/dist/esm/peculiar-certificate-decoder.entry.js.map +1 -1
  53. package/dist/esm/peculiar-certificate-viewer.entry.js +3 -3
  54. package/dist/esm/peculiar-certificates-viewer.entry.js +2 -2
  55. package/dist/esm/{pkcs10_certificate_request-3763c2af.js → pkcs10_certificate_request-785a4794.js} +3 -3
  56. package/dist/esm/pkcs10_certificate_request-785a4794.js.map +1 -0
  57. package/dist/esm/{x509_certificate-47b4c5ee.js → x509_certificate-05a23c0e.js} +3 -3
  58. package/dist/esm/x509_certificate-05a23c0e.js.map +1 -0
  59. package/dist/esm/{x509_crl-ba76d3ed.js → x509_crl-26081461.js} +5 -5
  60. package/dist/esm/x509_crl-26081461.js.map +1 -0
  61. package/dist/esm-es5/{certification_request-08b4deb8.js → certification_request-a4699dcf.js} +6 -6
  62. package/dist/esm-es5/certification_request-a4699dcf.js.map +1 -0
  63. package/dist/esm-es5/index.js +1 -1
  64. package/dist/esm-es5/{miscellaneous-d4bbc6f2.js → miscellaneous-ba1fd2bd.js} +2 -2
  65. package/dist/esm-es5/peculiar-attribute-certificate-viewer_3.entry.js +1 -1
  66. package/dist/esm-es5/peculiar-certificate-decoder.entry.js +2 -2
  67. package/dist/esm-es5/peculiar-certificate-decoder.entry.js.map +1 -1
  68. package/dist/esm-es5/peculiar-certificate-viewer.entry.js +1 -1
  69. package/dist/esm-es5/peculiar-certificates-viewer.entry.js +1 -1
  70. package/dist/esm-es5/{pkcs10_certificate_request-3763c2af.js → pkcs10_certificate_request-785a4794.js} +3 -3
  71. package/dist/esm-es5/{pkcs10_certificate_request-3763c2af.js.map → pkcs10_certificate_request-785a4794.js.map} +1 -1
  72. package/dist/esm-es5/{x509_certificate-47b4c5ee.js → x509_certificate-05a23c0e.js} +3 -3
  73. package/dist/{peculiar/p-1818204e.system.js.map → esm-es5/x509_certificate-05a23c0e.js.map} +1 -1
  74. package/dist/esm-es5/{x509_crl-ba76d3ed.js → x509_crl-26081461.js} +4 -4
  75. package/dist/esm-es5/x509_crl-26081461.js.map +1 -0
  76. package/dist/peculiar/index.esm.js +1 -1
  77. package/dist/peculiar/{p-8db3e1fd.system.entry.js → p-1566ad92.system.entry.js} +2 -2
  78. package/dist/peculiar/{p-c10bfa6a.system.js → p-2bc2abea.system.js} +2 -2
  79. package/dist/peculiar/{p-6acca6ea.js → p-32807e5e.js} +12 -12
  80. package/dist/peculiar/p-32807e5e.js.map +1 -0
  81. package/dist/peculiar/{p-84e3e94a.entry.js → p-5d1d4a96.entry.js} +7 -7
  82. package/dist/peculiar/{p-f8efbe93.entry.js → p-67e82386.entry.js} +2 -2
  83. package/dist/peculiar/{p-b0c963b1.js → p-6e2ad7eb.js} +13 -13
  84. package/dist/peculiar/{p-4ee5140c.system.js → p-7ddd9a82.system.js} +3 -3
  85. package/dist/peculiar/{p-4ee5140c.system.js.map → p-7ddd9a82.system.js.map} +1 -1
  86. package/dist/peculiar/p-8393399a.system.js +1 -1
  87. package/dist/peculiar/{p-0f3787cf.system.entry.js → p-9263e7ee.system.entry.js} +2 -2
  88. package/dist/peculiar/{p-1818204e.system.js → p-98e3a016.system.js} +3 -3
  89. package/dist/{esm-es5/x509_certificate-47b4c5ee.js.map → peculiar/p-98e3a016.system.js.map} +1 -1
  90. package/dist/peculiar/p-9ad547d2.system.entry.js +5 -0
  91. package/dist/peculiar/p-9ad547d2.system.entry.js.map +1 -0
  92. package/dist/peculiar/{p-28b4d316.system.js → p-a1a48332.system.js} +2 -2
  93. package/dist/peculiar/{p-31d5da39.js → p-ab5a4988.js} +3 -3
  94. package/dist/peculiar/{p-31d5da39.js.map → p-ab5a4988.js.map} +1 -1
  95. package/dist/peculiar/{p-30e18f2d.system.js → p-ae44c2b0.system.js} +4 -4
  96. package/dist/peculiar/p-ae44c2b0.system.js.map +1 -0
  97. package/dist/peculiar/{p-9c8dc738.entry.js → p-bafd67f3.entry.js} +2 -2
  98. package/dist/peculiar/p-cd1b1876.entry.js +5 -0
  99. package/dist/peculiar/p-cd1b1876.entry.js.map +1 -0
  100. package/dist/peculiar/{p-82e4faf0.js → p-d5ba4fc2.js} +4 -4
  101. package/dist/peculiar/p-d5ba4fc2.js.map +1 -0
  102. package/dist/peculiar/p-e37e4df2.system.js +135 -0
  103. package/dist/peculiar/p-e37e4df2.system.js.map +1 -0
  104. package/dist/peculiar/{p-78a6b479.js → p-f8c91ee4.js} +4 -4
  105. package/dist/peculiar/{p-78a6b479.js.map → p-f8c91ee4.js.map} +1 -1
  106. package/dist/peculiar/{p-364df80d.system.entry.js → p-f9c07207.system.entry.js} +3 -3
  107. package/dist/peculiar/peculiar.esm.js +1 -1
  108. package/dist/types/components/certificate-decoder/certificate-decoder.d.ts +1 -1
  109. package/dist/types/constants/oids.d.ts +3 -0
  110. package/dist/types/utils/download.d.ts +4 -4
  111. package/dist/types/utils/validator.d.ts +0 -4
  112. package/hydrate/index.js +98 -89
  113. package/package.json +22 -22
  114. package/dist/cjs/certification_request-815ec558.js.map +0 -1
  115. package/dist/cjs/pkcs10_certificate_request-0ebc0023.js.map +0 -1
  116. package/dist/cjs/x509_certificate-9914b149.js.map +0 -1
  117. package/dist/cjs/x509_crl-86b6e71d.js.map +0 -1
  118. package/dist/esm/certification_request-08b4deb8.js.map +0 -1
  119. package/dist/esm/pkcs10_certificate_request-3763c2af.js.map +0 -1
  120. package/dist/esm/x509_certificate-47b4c5ee.js.map +0 -1
  121. package/dist/esm/x509_crl-ba76d3ed.js.map +0 -1
  122. package/dist/esm-es5/certification_request-08b4deb8.js.map +0 -1
  123. package/dist/esm-es5/x509_crl-ba76d3ed.js.map +0 -1
  124. package/dist/peculiar/p-30e18f2d.system.js.map +0 -1
  125. package/dist/peculiar/p-6acca6ea.js.map +0 -1
  126. package/dist/peculiar/p-82005297.system.entry.js +0 -5
  127. package/dist/peculiar/p-82005297.system.entry.js.map +0 -1
  128. package/dist/peculiar/p-82e4faf0.js.map +0 -1
  129. package/dist/peculiar/p-c3fce3f5.entry.js +0 -5
  130. package/dist/peculiar/p-c3fce3f5.entry.js.map +0 -1
  131. package/dist/peculiar/p-df2c8826.system.js +0 -135
  132. package/dist/peculiar/p-df2c8826.system.js.map +0 -1
  133. /package/dist/esm-es5/{miscellaneous-d4bbc6f2.js.map → miscellaneous-ba1fd2bd.js.map} +0 -0
  134. /package/dist/peculiar/{p-8db3e1fd.system.entry.js.map → p-1566ad92.system.entry.js.map} +0 -0
  135. /package/dist/peculiar/{p-c10bfa6a.system.js.map → p-2bc2abea.system.js.map} +0 -0
  136. /package/dist/peculiar/{p-84e3e94a.entry.js.map → p-5d1d4a96.entry.js.map} +0 -0
  137. /package/dist/peculiar/{p-f8efbe93.entry.js.map → p-67e82386.entry.js.map} +0 -0
  138. /package/dist/peculiar/{p-b0c963b1.js.map → p-6e2ad7eb.js.map} +0 -0
  139. /package/dist/peculiar/{p-0f3787cf.system.entry.js.map → p-9263e7ee.system.entry.js.map} +0 -0
  140. /package/dist/peculiar/{p-28b4d316.system.js.map → p-a1a48332.system.js.map} +0 -0
  141. /package/dist/peculiar/{p-9c8dc738.entry.js.map → p-bafd67f3.entry.js.map} +0 -0
  142. /package/dist/peculiar/{p-364df80d.system.entry.js.map → p-f9c07207.system.entry.js.map} +0 -0
@@ -102,7 +102,7 @@ export class Pkcs10CertificateRequest extends AsnData {
102
102
  Download.csr.asPEM(this.toString('pem'), name || this.commonName);
103
103
  }
104
104
  downloadAsDER(name) {
105
- Download.csr.asDER(this.toString('hex'), name || this.commonName);
105
+ Download.csr.asDER(this.raw, name || this.commonName);
106
106
  }
107
107
  }
108
108
  //# sourceMappingURL=pkcs10_certificate_request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pkcs10_certificate_request.js","sourceRoot":"","sources":["../../src/crypto/pkcs10_certificate_request.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport { CertificationRequest } from '@peculiar/asn1-csr';\nimport {\n id_pkcs9_at_extensionRequest,\n ExtensionRequest,\n} from '@peculiar/asn1-pkcs9';\nimport { Convert } from 'pvtsutils';\n\nimport { Download } from '../utils';\n\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport { Attribute, TAttributeValue } from './attribute';\nimport { Extension, TExtensionValue } from './extension';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\ninterface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey;\n}\n\nexport class Pkcs10CertificateRequest extends AsnData<CertificationRequest> {\n public readonly subject: INameJSON[];\n\n public readonly version: number;\n\n public attributes: Attribute<TAttributeValue>[];\n\n public extensions: Extension<TExtensionValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'PKCS#10 Certificate Request';\n\n public readonly tag = 'CERTIFICATE REQUEST';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificationRequest);\n\n const { certificationRequestInfo } = this.asn;\n\n this.subject = new Name(certificationRequestInfo.subject).toJSON();\n this.version = certificationRequestInfo.version;\n }\n\n public get publicKey(): IPublicKey {\n const { subjectPublicKey, algorithm } = this.asn.certificationRequestInfo.subjectPKInfo;\n let params;\n\n if (algorithm.algorithm === id_ecPublicKey && algorithm.parameters) {\n params = AsnConvert.parse(algorithm.parameters, ECParameters);\n }\n\n if (algorithm.algorithm === id_rsaEncryption) {\n params = AsnConvert.parse(subjectPublicKey, RSAPublicKey);\n }\n\n const spki = AsnConvert.serialize(this.asn.certificationRequestInfo.subjectPKInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.subject) {\n return '';\n }\n\n for (let i = 0; i < this.subject.length; i += 1) {\n const name = this.subject[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public async getThumbprint(\n algorithm: string = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public parseAttributes() {\n const { certificationRequestInfo } = this.asn;\n\n if (certificationRequestInfo.attributes) {\n this.attributes = certificationRequestInfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n\n const extensionRequestAttribute = this.attributes.find(\n (attribute) => attribute.asn.type === id_pkcs9_at_extensionRequest,\n ) as Attribute<ExtensionRequest>;\n\n if (extensionRequestAttribute) {\n this.extensions = extensionRequestAttribute.value\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n }\n\n public toString(format: 'hex' | 'pem' | 'base64' = 'pem'): string {\n switch (format) {\n case 'hex':\n return hexFormat(Convert.ToHex(this.raw));\n case 'pem':\n return `-----BEGIN ${this.tag}-----\\n${base64Format(this.toString('base64'))}\\n-----END ${this.tag}-----`;\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.csr.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.csr.asDER(\n this.toString('hex'),\n name || this.commonName,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pkcs10_certificate_request.js","sourceRoot":"","sources":["../../src/crypto/pkcs10_certificate_request.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport { CertificationRequest } from '@peculiar/asn1-csr';\nimport {\n id_pkcs9_at_extensionRequest,\n ExtensionRequest,\n} from '@peculiar/asn1-pkcs9';\nimport { Convert } from 'pvtsutils';\n\nimport { Download } from '../utils';\n\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport { Attribute, TAttributeValue } from './attribute';\nimport { Extension, TExtensionValue } from './extension';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\ninterface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey;\n}\n\nexport class Pkcs10CertificateRequest extends AsnData<CertificationRequest> {\n public readonly subject: INameJSON[];\n\n public readonly version: number;\n\n public attributes: Attribute<TAttributeValue>[];\n\n public extensions: Extension<TExtensionValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'PKCS#10 Certificate Request';\n\n public readonly tag = 'CERTIFICATE REQUEST';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificationRequest);\n\n const { certificationRequestInfo } = this.asn;\n\n this.subject = new Name(certificationRequestInfo.subject).toJSON();\n this.version = certificationRequestInfo.version;\n }\n\n public get publicKey(): IPublicKey {\n const { subjectPublicKey, algorithm } = this.asn.certificationRequestInfo.subjectPKInfo;\n let params;\n\n if (algorithm.algorithm === id_ecPublicKey && algorithm.parameters) {\n params = AsnConvert.parse(algorithm.parameters, ECParameters);\n }\n\n if (algorithm.algorithm === id_rsaEncryption) {\n params = AsnConvert.parse(subjectPublicKey, RSAPublicKey);\n }\n\n const spki = AsnConvert.serialize(this.asn.certificationRequestInfo.subjectPKInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.subject) {\n return '';\n }\n\n for (let i = 0; i < this.subject.length; i += 1) {\n const name = this.subject[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public async getThumbprint(\n algorithm: string = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public parseAttributes() {\n const { certificationRequestInfo } = this.asn;\n\n if (certificationRequestInfo.attributes) {\n this.attributes = certificationRequestInfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n\n const extensionRequestAttribute = this.attributes.find(\n (attribute) => attribute.asn.type === id_pkcs9_at_extensionRequest,\n ) as Attribute<ExtensionRequest>;\n\n if (extensionRequestAttribute) {\n this.extensions = extensionRequestAttribute.value\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n }\n\n public toString(format: 'hex' | 'pem' | 'base64' = 'pem'): string {\n switch (format) {\n case 'hex':\n return hexFormat(Convert.ToHex(this.raw));\n case 'pem':\n return `-----BEGIN ${this.tag}-----\\n${base64Format(this.toString('base64'))}\\n-----END ${this.tag}-----`;\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.csr.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.csr.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"]}
@@ -89,7 +89,7 @@ export class X509AttributeCertificate extends AsnData {
89
89
  Download.attrCert.asPEM(this.toString('pem'), name || this.commonName);
90
90
  }
91
91
  downloadAsDER(name) {
92
- Download.attrCert.asDER(this.toString('hex'), name || this.commonName);
92
+ Download.attrCert.asDER(this.raw, name || this.commonName);
93
93
  }
94
94
  }
95
95
  //# sourceMappingURL=x509_attribute_certificate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"x509_attribute_certificate.js","sourceRoot":"","sources":["../../src/crypto/x509_attribute_certificate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport type { GeneralName } from '@peculiar/asn1-x509';\nimport { AttributeCertificate, Holder } from '@peculiar/asn1-x509-attr';\nimport { Convert } from 'pvtsutils';\n\nimport { dateDiff, Download } from '../utils';\n\nimport { AsnData } from './asn_data';\nimport { Extension, TExtensionValue } from './extension';\nimport { Attribute, TAttributeValue } from './attribute';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport class X509AttributeCertificate extends AsnData<AttributeCertificate> {\n public readonly serialNumber: string;\n\n public readonly version: number;\n\n public readonly notBefore: Date;\n\n public readonly notAfter: Date;\n\n public readonly validity: string;\n\n public extensions: Extension<TExtensionValue>[];\n\n public attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly issuer: GeneralName[];\n\n public holder: Holder;\n\n public readonly type = 'X.509 Attribute Certificate';\n\n public readonly tag = 'ATTRIBUTE CERTIFICATE';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), AttributeCertificate);\n\n const { acinfo } = this.asn;\n\n this.serialNumber = Convert.ToHex(acinfo.serialNumber);\n this.version = acinfo.version;\n\n const notBefore = acinfo.attrCertValidityPeriod.notBeforeTime;\n\n if (!notBefore) {\n throw new Error(\"Cannot get 'notBefore' value\");\n }\n\n this.notBefore = notBefore;\n\n const notAfter = acinfo.attrCertValidityPeriod.notAfterTime;\n\n if (!notAfter) {\n throw new Error(\"Cannot get 'notAfter' value\");\n }\n\n this.notAfter = notAfter;\n this.validity = dateDiff(this.notBefore, this.notAfter);\n this.issuer = acinfo.issuer.v1Form || acinfo.issuer.v2Form?.issuerName;\n this.holder = acinfo.holder;\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n\n return {\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public parseExtensions() {\n const { acinfo } = this.asn;\n\n if (acinfo.extensions) {\n this.extensions = acinfo.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public parseAttributes() {\n const { acinfo } = this.asn;\n\n if (acinfo.attributes) {\n this.attributes = acinfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n }\n }\n\n public async getThumbprint(\n algorithm: string = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get commonName(): string {\n return `attribute-certificate-${this.thumbprints['SHA-1']}`;\n }\n\n public toString(format: 'hex' | 'pem' | 'base64' = 'pem'): string {\n switch (format) {\n case 'hex':\n return hexFormat(Convert.ToHex(this.raw));\n case 'pem':\n return `-----BEGIN ${this.tag}-----\\n${base64Format(this.toString('base64'))}\\n-----END ${this.tag}-----`;\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.attrCert.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.attrCert.asDER(\n this.toString('hex'),\n name || this.commonName,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"x509_attribute_certificate.js","sourceRoot":"","sources":["../../src/crypto/x509_attribute_certificate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport type { GeneralName } from '@peculiar/asn1-x509';\nimport { AttributeCertificate, Holder } from '@peculiar/asn1-x509-attr';\nimport { Convert } from 'pvtsutils';\n\nimport { dateDiff, Download } from '../utils';\n\nimport { AsnData } from './asn_data';\nimport { Extension, TExtensionValue } from './extension';\nimport { Attribute, TAttributeValue } from './attribute';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport class X509AttributeCertificate extends AsnData<AttributeCertificate> {\n public readonly serialNumber: string;\n\n public readonly version: number;\n\n public readonly notBefore: Date;\n\n public readonly notAfter: Date;\n\n public readonly validity: string;\n\n public extensions: Extension<TExtensionValue>[];\n\n public attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly issuer: GeneralName[];\n\n public holder: Holder;\n\n public readonly type = 'X.509 Attribute Certificate';\n\n public readonly tag = 'ATTRIBUTE CERTIFICATE';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), AttributeCertificate);\n\n const { acinfo } = this.asn;\n\n this.serialNumber = Convert.ToHex(acinfo.serialNumber);\n this.version = acinfo.version;\n\n const notBefore = acinfo.attrCertValidityPeriod.notBeforeTime;\n\n if (!notBefore) {\n throw new Error(\"Cannot get 'notBefore' value\");\n }\n\n this.notBefore = notBefore;\n\n const notAfter = acinfo.attrCertValidityPeriod.notAfterTime;\n\n if (!notAfter) {\n throw new Error(\"Cannot get 'notAfter' value\");\n }\n\n this.notAfter = notAfter;\n this.validity = dateDiff(this.notBefore, this.notAfter);\n this.issuer = acinfo.issuer.v1Form || acinfo.issuer.v2Form?.issuerName;\n this.holder = acinfo.holder;\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n\n return {\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public parseExtensions() {\n const { acinfo } = this.asn;\n\n if (acinfo.extensions) {\n this.extensions = acinfo.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public parseAttributes() {\n const { acinfo } = this.asn;\n\n if (acinfo.attributes) {\n this.attributes = acinfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n }\n }\n\n public async getThumbprint(\n algorithm: string = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get commonName(): string {\n return `attribute-certificate-${this.thumbprints['SHA-1']}`;\n }\n\n public toString(format: 'hex' | 'pem' | 'base64' = 'pem'): string {\n switch (format) {\n case 'hex':\n return hexFormat(Convert.ToHex(this.raw));\n case 'pem':\n return `-----BEGIN ${this.tag}-----\\n${base64Format(this.toString('base64'))}\\n-----END ${this.tag}-----`;\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.attrCert.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.attrCert.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"]}
@@ -159,7 +159,7 @@ export class X509Certificate extends AsnData {
159
159
  Download.cert.asPEM(this.toString('pem'), name || this.commonName);
160
160
  }
161
161
  downloadAsDER(name) {
162
- Download.cert.asDER(this.toString('hex'), name || this.commonName);
162
+ Download.cert.asDER(this.raw, name || this.commonName);
163
163
  }
164
164
  }
165
165
  //# sourceMappingURL=x509_certificate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"x509_certificate.js","sourceRoot":"","sources":["../../src/crypto/x509_certificate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport {\n id_composite_key,\n id_alg_composite,\n CompositePublicKey,\n CompositeSignatureValue,\n CompositeParams,\n} from '@peculiar/asn1-x509-post-quantum';\nimport { Certificate, SubjectPublicKeyInfo } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\n\nimport { dateDiff, Download } from '../utils';\n\nimport { Name, INameJSON } from './name';\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\nexport interface ISignature {\n algorithm: string;\n value: BufferSource;\n params?: {\n algorithm: string;\n value: BufferSource;\n }[];\n}\n\nexport interface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey | IPublicKey[];\n}\n\nexport class X509Certificate extends AsnData<Certificate> {\n public readonly serialNumber: string;\n\n public readonly subject: INameJSON[];\n\n public readonly issuer: INameJSON[];\n\n public readonly notBefore: Date;\n\n public readonly notAfter: Date;\n\n public readonly validity: string;\n\n public extensions: Extension<TExtensionValue>[];\n\n public readonly version: number;\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'X.509 Certificate';\n\n public readonly tag = 'CERTIFICATE';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), Certificate);\n\n const { tbsCertificate } = this.asn;\n\n this.serialNumber = Convert.ToHex(tbsCertificate.serialNumber);\n this.subject = new Name(tbsCertificate.subject).toJSON();\n this.issuer = new Name(tbsCertificate.issuer).toJSON();\n this.version = tbsCertificate.version + 1;\n\n const notBefore = tbsCertificate.validity.notBefore.utcTime\n || tbsCertificate.validity.notBefore.generalTime;\n\n if (!notBefore) {\n throw new Error(\"Cannot get 'notBefore' value\");\n }\n\n this.notBefore = notBefore;\n\n const notAfter = tbsCertificate.validity.notAfter.utcTime\n || tbsCertificate.validity.notAfter.generalTime;\n\n if (!notAfter) {\n throw new Error(\"Cannot get 'notAfter' value\");\n }\n\n this.notAfter = notAfter;\n this.validity = dateDiff(this.notBefore, this.notAfter);\n }\n\n public parseExtensions() {\n const { tbsCertificate } = this.asn;\n\n if (tbsCertificate.extensions) {\n this.extensions = tbsCertificate.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n private getPublicKeyInfo(publicKeyInfo: SubjectPublicKeyInfo) {\n const { subjectPublicKey, algorithm } = publicKeyInfo;\n let params;\n\n if (algorithm.algorithm === id_ecPublicKey && algorithm.parameters) {\n params = AsnConvert.parse(algorithm.parameters, ECParameters);\n }\n\n if (algorithm.algorithm === id_rsaEncryption) {\n params = AsnConvert.parse(subjectPublicKey, RSAPublicKey);\n }\n\n if (algorithm.algorithm === id_composite_key) {\n params = AsnConvert.parse(subjectPublicKey, CompositePublicKey);\n\n params = params.map((param) => this.getPublicKeyInfo(param));\n }\n\n const spki = AsnConvert.serialize(publicKeyInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get publicKey(): IPublicKey {\n return this.getPublicKeyInfo(this.asn.tbsCertificate.subjectPublicKeyInfo);\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n let params;\n\n if (signatureAlgorithm.algorithm === id_alg_composite) {\n const compositeSignatureValues = AsnConvert.parse(signatureValue, CompositeSignatureValue);\n const compositeParams = AsnConvert.parse(signatureAlgorithm.parameters, CompositeParams);\n\n params = compositeParams.map((param, index) => ({\n ...param,\n value: compositeSignatureValues[index],\n }));\n }\n\n return {\n params,\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public async getThumbprint(\n algorithm: string = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get commonName(): string {\n if (!this.subject) {\n return '';\n }\n\n for (let i = 0; i < this.subject.length; i += 1) {\n const name = this.subject[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public get issuerCommonName(): string {\n if (!this.issuer) {\n return '';\n }\n\n for (let i = 0; i < this.issuer.length; i += 1) {\n const name = this.issuer[i];\n\n if (name.shortName === 'CN') {\n return name.value;\n }\n\n if (name.shortName === 'E') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public get isRoot(): boolean {\n return JSON.stringify(this.issuer) === JSON.stringify(this.subject);\n }\n\n public subjectToString() {\n if (!this.subject) {\n return '';\n }\n\n return this.subject\n .map((name) => (\n `${name.shortName}=${name.value}`\n ))\n .join(', ');\n }\n\n public issuerToString() {\n if (!this.issuer) {\n return '';\n }\n\n return this.issuer\n .map((name) => (\n `${name.shortName}=${name.value}`\n ))\n .join(', ');\n }\n\n public toString(format: 'hex' | 'pem' | 'base64' = 'pem'): string {\n switch (format) {\n case 'hex':\n return hexFormat(Convert.ToHex(this.raw));\n case 'pem':\n return `-----BEGIN ${this.tag}-----\\n${base64Format(this.toString('base64'))}\\n-----END ${this.tag}-----`;\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.cert.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.cert.asDER(\n this.toString('hex'),\n name || this.commonName,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"x509_certificate.js","sourceRoot":"","sources":["../../src/crypto/x509_certificate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport {\n id_composite_key,\n id_alg_composite,\n CompositePublicKey,\n CompositeSignatureValue,\n CompositeParams,\n} from '@peculiar/asn1-x509-post-quantum';\nimport { Certificate, SubjectPublicKeyInfo } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\n\nimport { dateDiff, Download } from '../utils';\n\nimport { Name, INameJSON } from './name';\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\nexport interface ISignature {\n algorithm: string;\n value: BufferSource;\n params?: {\n algorithm: string;\n value: BufferSource;\n }[];\n}\n\nexport interface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey | IPublicKey[];\n}\n\nexport class X509Certificate extends AsnData<Certificate> {\n public readonly serialNumber: string;\n\n public readonly subject: INameJSON[];\n\n public readonly issuer: INameJSON[];\n\n public readonly notBefore: Date;\n\n public readonly notAfter: Date;\n\n public readonly validity: string;\n\n public extensions: Extension<TExtensionValue>[];\n\n public readonly version: number;\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'X.509 Certificate';\n\n public readonly tag = 'CERTIFICATE';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), Certificate);\n\n const { tbsCertificate } = this.asn;\n\n this.serialNumber = Convert.ToHex(tbsCertificate.serialNumber);\n this.subject = new Name(tbsCertificate.subject).toJSON();\n this.issuer = new Name(tbsCertificate.issuer).toJSON();\n this.version = tbsCertificate.version + 1;\n\n const notBefore = tbsCertificate.validity.notBefore.utcTime\n || tbsCertificate.validity.notBefore.generalTime;\n\n if (!notBefore) {\n throw new Error(\"Cannot get 'notBefore' value\");\n }\n\n this.notBefore = notBefore;\n\n const notAfter = tbsCertificate.validity.notAfter.utcTime\n || tbsCertificate.validity.notAfter.generalTime;\n\n if (!notAfter) {\n throw new Error(\"Cannot get 'notAfter' value\");\n }\n\n this.notAfter = notAfter;\n this.validity = dateDiff(this.notBefore, this.notAfter);\n }\n\n public parseExtensions() {\n const { tbsCertificate } = this.asn;\n\n if (tbsCertificate.extensions) {\n this.extensions = tbsCertificate.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n private getPublicKeyInfo(publicKeyInfo: SubjectPublicKeyInfo) {\n const { subjectPublicKey, algorithm } = publicKeyInfo;\n let params;\n\n if (algorithm.algorithm === id_ecPublicKey && algorithm.parameters) {\n params = AsnConvert.parse(algorithm.parameters, ECParameters);\n }\n\n if (algorithm.algorithm === id_rsaEncryption) {\n params = AsnConvert.parse(subjectPublicKey, RSAPublicKey);\n }\n\n if (algorithm.algorithm === id_composite_key) {\n params = AsnConvert.parse(subjectPublicKey, CompositePublicKey);\n\n params = params.map((param) => this.getPublicKeyInfo(param));\n }\n\n const spki = AsnConvert.serialize(publicKeyInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get publicKey(): IPublicKey {\n return this.getPublicKeyInfo(this.asn.tbsCertificate.subjectPublicKeyInfo);\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n let params;\n\n if (signatureAlgorithm.algorithm === id_alg_composite) {\n const compositeSignatureValues = AsnConvert.parse(signatureValue, CompositeSignatureValue);\n const compositeParams = AsnConvert.parse(signatureAlgorithm.parameters, CompositeParams);\n\n params = compositeParams.map((param, index) => ({\n ...param,\n value: compositeSignatureValues[index],\n }));\n }\n\n return {\n params,\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public async getThumbprint(\n algorithm: string = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get commonName(): string {\n if (!this.subject) {\n return '';\n }\n\n for (let i = 0; i < this.subject.length; i += 1) {\n const name = this.subject[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public get issuerCommonName(): string {\n if (!this.issuer) {\n return '';\n }\n\n for (let i = 0; i < this.issuer.length; i += 1) {\n const name = this.issuer[i];\n\n if (name.shortName === 'CN') {\n return name.value;\n }\n\n if (name.shortName === 'E') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public get isRoot(): boolean {\n return JSON.stringify(this.issuer) === JSON.stringify(this.subject);\n }\n\n public subjectToString() {\n if (!this.subject) {\n return '';\n }\n\n return this.subject\n .map((name) => (\n `${name.shortName}=${name.value}`\n ))\n .join(', ');\n }\n\n public issuerToString() {\n if (!this.issuer) {\n return '';\n }\n\n return this.issuer\n .map((name) => (\n `${name.shortName}=${name.value}`\n ))\n .join(', ');\n }\n\n public toString(format: 'hex' | 'pem' | 'base64' = 'pem'): string {\n switch (format) {\n case 'hex':\n return hexFormat(Convert.ToHex(this.raw));\n case 'pem':\n return `-----BEGIN ${this.tag}-----\\n${base64Format(this.toString('base64'))}\\n-----END ${this.tag}-----`;\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.cert.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.cert.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"]}
@@ -88,7 +88,7 @@ export class X509Crl extends AsnData {
88
88
  Download.crl.asPEM(this.toString('pem'), name || this.commonName);
89
89
  }
90
90
  downloadAsDER(name) {
91
- Download.crl.asDER(this.toString('hex'), name || this.commonName);
91
+ Download.crl.asDER(this.raw, name || this.commonName);
92
92
  }
93
93
  }
94
94
  //# sourceMappingURL=x509_crl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"x509_crl.js","sourceRoot":"","sources":["../../src/crypto/x509_crl.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { CertificateList, Time } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\n\nimport { Download } from '../utils';\n\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport interface IRevokedCertificate {\n userCertificate: ArrayBuffer;\n revocationDate: Time;\n crlEntryExtensions?: Extension<TExtensionValue>[];\n}\n\nexport class X509Crl extends AsnData<CertificateList> {\n public readonly issuer: INameJSON[];\n\n public readonly version: number;\n\n public readonly lastUpdate: Date;\n\n public readonly nextUpdate: Date;\n\n public extensions: Extension<TExtensionValue>[];\n\n public revokedCertificates: IRevokedCertificate[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'X.509 Certificate Revocation List';\n\n public readonly tag = 'X509 CRL';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificateList);\n\n const { tbsCertList } = this.asn;\n\n this.issuer = new Name(tbsCertList.issuer).toJSON();\n this.version = tbsCertList.version + 1;\n this.lastUpdate = tbsCertList.thisUpdate.getTime();\n this.nextUpdate = tbsCertList.nextUpdate.getTime();\n\n this.revokedCertificates = (tbsCertList.revokedCertificates || [])\n .map((revokedCertificate) => ({\n revocationDate: revokedCertificate.revocationDate,\n userCertificate: revokedCertificate.userCertificate,\n crlEntryExtensions: revokedCertificate.crlEntryExtensions\n ?.map((e) => new Extension(AsnConvert.serialize(e))),\n }));\n }\n\n public async getThumbprint(\n algorithm: string = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.issuer) {\n return '';\n }\n\n for (let i = 0; i < this.issuer.length; i += 1) {\n const name = this.issuer[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public parseExtensions() {\n const { tbsCertList } = this.asn;\n\n if (tbsCertList.crlExtensions) {\n this.extensions = tbsCertList.crlExtensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public toString(format: 'hex' | 'pem' | 'base64' = 'pem'): string {\n switch (format) {\n case 'hex':\n return hexFormat(Convert.ToHex(this.raw));\n case 'pem':\n return `-----BEGIN ${this.tag}-----\\n${base64Format(this.toString('base64'))}\\n-----END ${this.tag}-----`;\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.crl.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.crl.asDER(\n this.toString('hex'),\n name || this.commonName,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"x509_crl.js","sourceRoot":"","sources":["../../src/crypto/x509_crl.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { CertificateList, Time } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\n\nimport { Download } from '../utils';\n\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport interface IRevokedCertificate {\n userCertificate: ArrayBuffer;\n revocationDate: Time;\n crlEntryExtensions?: Extension<TExtensionValue>[];\n}\n\nexport class X509Crl extends AsnData<CertificateList> {\n public readonly issuer: INameJSON[];\n\n public readonly version: number;\n\n public readonly lastUpdate: Date;\n\n public readonly nextUpdate: Date;\n\n public extensions: Extension<TExtensionValue>[];\n\n public revokedCertificates: IRevokedCertificate[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'X.509 Certificate Revocation List';\n\n public readonly tag = 'X509 CRL';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificateList);\n\n const { tbsCertList } = this.asn;\n\n this.issuer = new Name(tbsCertList.issuer).toJSON();\n this.version = tbsCertList.version + 1;\n this.lastUpdate = tbsCertList.thisUpdate.getTime();\n this.nextUpdate = tbsCertList.nextUpdate.getTime();\n\n this.revokedCertificates = (tbsCertList.revokedCertificates || [])\n .map((revokedCertificate) => ({\n revocationDate: revokedCertificate.revocationDate,\n userCertificate: revokedCertificate.userCertificate,\n crlEntryExtensions: revokedCertificate.crlEntryExtensions\n ?.map((e) => new Extension(AsnConvert.serialize(e))),\n }));\n }\n\n public async getThumbprint(\n algorithm: string = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.issuer) {\n return '';\n }\n\n for (let i = 0; i < this.issuer.length; i += 1) {\n const name = this.issuer[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public parseExtensions() {\n const { tbsCertList } = this.asn;\n\n if (tbsCertList.crlExtensions) {\n this.extensions = tbsCertList.crlExtensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public toString(format: 'hex' | 'pem' | 'base64' = 'pem'): string {\n switch (format) {\n case 'hex':\n return hexFormat(Convert.ToHex(this.raw));\n case 'pem':\n return `-----BEGIN ${this.tag}-----\\n${base64Format(this.toString('base64'))}\\n-----END ${this.tag}-----`;\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.crl.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.crl.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"]}
@@ -16,32 +16,32 @@ Download.cert = {
16
16
  asPEM: (pem, name) => {
17
17
  downloadFromBuffer(Convert.FromString(pem), name, 'cer', 'application/pkix-cert');
18
18
  },
19
- asDER: (hex, name) => {
20
- downloadFromBuffer(Convert.FromString(hex), name, 'cer', 'application/pkix-cert');
19
+ asDER: (raw, name) => {
20
+ downloadFromBuffer(raw, name, 'cer', 'application/pkix-cert');
21
21
  },
22
22
  };
23
23
  Download.attrCert = {
24
24
  asPEM: (pem, name) => {
25
25
  downloadFromBuffer(Convert.FromString(pem), name, 'cer', 'application/pkix-attr-cert');
26
26
  },
27
- asDER: (hex, name) => {
28
- downloadFromBuffer(Convert.FromString(hex), name, 'cer', 'application/pkix-attr-cert');
27
+ asDER: (raw, name) => {
28
+ downloadFromBuffer(raw, name, 'cer', 'application/pkix-attr-cert');
29
29
  },
30
30
  };
31
31
  Download.csr = {
32
32
  asPEM: (pem, name) => {
33
33
  downloadFromBuffer(Convert.FromString(pem), name, 'csr', 'application/pkcs10');
34
34
  },
35
- asDER: (hex, name) => {
36
- downloadFromBuffer(Convert.FromString(hex), name, 'csr', 'application/pkcs10');
35
+ asDER: (raw, name) => {
36
+ downloadFromBuffer(raw, name, 'csr', 'application/pkcs10');
37
37
  },
38
38
  };
39
39
  Download.crl = {
40
40
  asPEM: (pem, name) => {
41
41
  downloadFromBuffer(Convert.FromString(pem), name, 'crl', 'application/pkix-crl');
42
42
  },
43
- asDER: (hex, name) => {
44
- downloadFromBuffer(Convert.FromString(hex), name, 'crl', 'application/pkix-crl');
43
+ asDER: (raw, name) => {
44
+ downloadFromBuffer(raw, name, 'crl', 'application/pkix-crl');
45
45
  },
46
46
  };
47
47
  //# sourceMappingURL=download.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/utils/download.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,OAAO,QAAQ;;AACL,aAAI,GAAG;IACnB,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,uBAAuB,CACxB,CAAC;IACJ,CAAC;CACF,CAAC;AAEY,iBAAQ,GAAG;IACvB,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,4BAA4B,CAC7B,CAAC;IACJ,CAAC;CACF,CAAC;AAEY,YAAG,GAAG;IAClB,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,oBAAoB,CACrB,CAAC;IACJ,CAAC;CACF,CAAC;AAEY,YAAG,GAAG;IAClB,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,sBAAsB,CACvB,CAAC;IACJ,CAAC;CACF,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\n\nimport { downloadFromBuffer } from './download_from_buffer';\n\nexport class Download {\n public static cert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n };\n\n public static attrCert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n };\n\n public static csr = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n };\n\n public static crl = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n };\n}\n"]}
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/utils/download.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,OAAO,QAAQ;;AACL,aAAI,GAAG;IACnB,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,KAAK,EAAE,CAAC,GAAgB,EAAE,IAAY,EAAE,EAAE;QACxC,kBAAkB,CAChB,GAAG,EACH,IAAI,EACJ,KAAK,EACL,uBAAuB,CACxB,CAAC;IACJ,CAAC;CACF,CAAC;AAEY,iBAAQ,GAAG;IACvB,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED,KAAK,EAAE,CAAC,GAAgB,EAAE,IAAY,EAAE,EAAE;QACxC,kBAAkB,CAChB,GAAG,EACH,IAAI,EACJ,KAAK,EACL,4BAA4B,CAC7B,CAAC;IACJ,CAAC;CACF,CAAC;AAEY,YAAG,GAAG;IAClB,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED,KAAK,EAAE,CAAC,GAAgB,EAAE,IAAY,EAAE,EAAE;QACxC,kBAAkB,CAChB,GAAG,EACH,IAAI,EACJ,KAAK,EACL,oBAAoB,CACrB,CAAC;IACJ,CAAC;CACF,CAAC;AAEY,YAAG,GAAG;IAClB,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACnC,kBAAkB,CAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,KAAK,EAAE,CAAC,GAAgB,EAAE,IAAY,EAAE,EAAE;QACxC,kBAAkB,CAChB,GAAG,EACH,IAAI,EACJ,KAAK,EACL,sBAAsB,CACvB,CAAC;IACJ,CAAC;CACF,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\n\nimport { downloadFromBuffer } from './download_from_buffer';\n\nexport class Download {\n public static cert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n\n asDER: (raw: ArrayBuffer, name: string) => {\n downloadFromBuffer(\n raw,\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n };\n\n public static attrCert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n\n asDER: (raw: ArrayBuffer, name: string) => {\n downloadFromBuffer(\n raw,\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n };\n\n public static csr = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n\n asDER: (raw: ArrayBuffer, name: string) => {\n downloadFromBuffer(\n raw,\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n };\n\n public static crl = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n\n asDER: (raw: ArrayBuffer, name: string) => {\n downloadFromBuffer(\n raw,\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n };\n}\n"]}
@@ -13,14 +13,6 @@ export const isHex = (value) => (/^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/
13
13
  .test(value));
14
14
  export const isPem = (value) => (/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/
15
15
  .test(value));
16
- export const isX509Pem = (value) => (/-----BEGIN CERTIFICATE-----([A-Za-z0-9+\/=\s]+)-----END CERTIFICATE-----/
17
- .test(value));
18
- export const isX509CRLPem = (value) => (/-----BEGIN X509 CRL-----([A-Za-z0-9+\/=\s]+)-----END X509 CRL-----/
19
- .test(value));
20
- export const isPkcs10Pem = (value) => (/-----BEGIN CERTIFICATE REQUEST-----([A-Za-z0-9+\/=\s]+)-----END CERTIFICATE REQUEST-----/
21
- .test(value));
22
- export const isX509AttributePem = (value) => (/-----BEGIN ATTRIBUTE CERTIFICATE-----([A-Za-z0-9+\/=\s]+)-----END ATTRIBUTE CERTIFICATE-----/
23
- .test(value));
24
16
  export const isBase64 = (value) => {
25
17
  try {
26
18
  window.atob(value);
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,sCAAsC;AACtC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CACtC,qCAAqC;KAClC,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CACtC,2GAA2G;KACxG,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAC1C,0EAA0E;KACvE,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAC7C,oEAAoE;KACjE,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAC5C,0FAA0F;KACvF,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CACnD,8FAA8F;KAC3F,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* eslint-disable no-useless-escape */\nexport const isHex = (value: string) => (\n /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/\n .test(value)\n);\n\nexport const isPem = (value: string) => (\n /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/\n .test(value)\n);\n\nexport const isX509Pem = (value: string) => (\n /-----BEGIN CERTIFICATE-----([A-Za-z0-9+\\/=\\s]+)-----END CERTIFICATE-----/\n .test(value)\n);\n\nexport const isX509CRLPem = (value: string) => (\n /-----BEGIN X509 CRL-----([A-Za-z0-9+\\/=\\s]+)-----END X509 CRL-----/\n .test(value)\n);\n\nexport const isPkcs10Pem = (value: string) => (\n /-----BEGIN CERTIFICATE REQUEST-----([A-Za-z0-9+\\/=\\s]+)-----END CERTIFICATE REQUEST-----/\n .test(value)\n);\n\nexport const isX509AttributePem = (value: string) => (\n /-----BEGIN ATTRIBUTE CERTIFICATE-----([A-Za-z0-9+\\/=\\s]+)-----END ATTRIBUTE CERTIFICATE-----/\n .test(value)\n);\n\nexport const isBase64 = (value: string) => {\n try {\n window.atob(value);\n return true;\n } catch (error) {\n return false;\n }\n};\n"]}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,sCAAsC;AACtC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CACtC,qCAAqC;KAClC,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CACtC,2GAA2G;KACxG,IAAI,CAAC,KAAK,CAAC,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;IACxC,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* eslint-disable no-useless-escape */\nexport const isHex = (value: string) => (\n /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/\n .test(value)\n);\n\nexport const isPem = (value: string) => (\n /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/\n .test(value)\n);\n\nexport const isBase64 = (value: string) => {\n try {\n window.atob(value);\n return true;\n } catch (error) {\n return false;\n }\n};\n"]}
@@ -438,32 +438,32 @@ Download.cert = {
438
438
  asPEM: (pem, name) => {
439
439
  downloadFromBuffer(Convert_1.FromString(pem), name, 'cer', 'application/pkix-cert');
440
440
  },
441
- asDER: (hex, name) => {
442
- downloadFromBuffer(Convert_1.FromString(hex), name, 'cer', 'application/pkix-cert');
441
+ asDER: (raw, name) => {
442
+ downloadFromBuffer(raw, name, 'cer', 'application/pkix-cert');
443
443
  },
444
444
  };
445
445
  Download.attrCert = {
446
446
  asPEM: (pem, name) => {
447
447
  downloadFromBuffer(Convert_1.FromString(pem), name, 'cer', 'application/pkix-attr-cert');
448
448
  },
449
- asDER: (hex, name) => {
450
- downloadFromBuffer(Convert_1.FromString(hex), name, 'cer', 'application/pkix-attr-cert');
449
+ asDER: (raw, name) => {
450
+ downloadFromBuffer(raw, name, 'cer', 'application/pkix-attr-cert');
451
451
  },
452
452
  };
453
453
  Download.csr = {
454
454
  asPEM: (pem, name) => {
455
455
  downloadFromBuffer(Convert_1.FromString(pem), name, 'csr', 'application/pkcs10');
456
456
  },
457
- asDER: (hex, name) => {
458
- downloadFromBuffer(Convert_1.FromString(hex), name, 'csr', 'application/pkcs10');
457
+ asDER: (raw, name) => {
458
+ downloadFromBuffer(raw, name, 'csr', 'application/pkcs10');
459
459
  },
460
460
  };
461
461
  Download.crl = {
462
462
  asPEM: (pem, name) => {
463
463
  downloadFromBuffer(Convert_1.FromString(pem), name, 'crl', 'application/pkix-crl');
464
464
  },
465
- asDER: (hex, name) => {
466
- downloadFromBuffer(Convert_1.FromString(hex), name, 'crl', 'application/pkix-crl');
465
+ asDER: (raw, name) => {
466
+ downloadFromBuffer(raw, name, 'crl', 'application/pkix-crl');
467
467
  },
468
468
  };
469
469
 
@@ -6763,6 +6763,71 @@ create$1(id_ecdsaWithSHA256);
6763
6763
  create$1(id_ecdsaWithSHA384);
6764
6764
  create$1(id_ecdsaWithSHA512);
6765
6765
 
6766
+ let FieldID = class FieldID {
6767
+ constructor(params = {}) {
6768
+ Object.assign(this, params);
6769
+ }
6770
+ };
6771
+ __decorate$1([
6772
+ AsnProp({ type: AsnPropTypes.ObjectIdentifier })
6773
+ ], FieldID.prototype, "fieldType", void 0);
6774
+ __decorate$1([
6775
+ AsnProp({ type: AsnPropTypes.Any })
6776
+ ], FieldID.prototype, "parameters", void 0);
6777
+ FieldID = __decorate$1([
6778
+ AsnType({ type: AsnTypeTypes.Sequence })
6779
+ ], FieldID);
6780
+ class ECPoint extends OctetString {
6781
+ }
6782
+ let Curve = class Curve {
6783
+ constructor(params = {}) {
6784
+ Object.assign(this, params);
6785
+ }
6786
+ };
6787
+ __decorate$1([
6788
+ AsnProp({ type: AsnPropTypes.OctetString })
6789
+ ], Curve.prototype, "a", void 0);
6790
+ __decorate$1([
6791
+ AsnProp({ type: AsnPropTypes.OctetString })
6792
+ ], Curve.prototype, "b", void 0);
6793
+ __decorate$1([
6794
+ AsnProp({ type: AsnPropTypes.BitString, optional: true })
6795
+ ], Curve.prototype, "seed", void 0);
6796
+ Curve = __decorate$1([
6797
+ AsnType({ type: AsnTypeTypes.Sequence })
6798
+ ], Curve);
6799
+ var ECPVer;
6800
+ (function (ECPVer) {
6801
+ ECPVer[ECPVer["ecpVer1"] = 1] = "ecpVer1";
6802
+ })(ECPVer || (ECPVer = {}));
6803
+ let SpecifiedECDomain = class SpecifiedECDomain {
6804
+ constructor(params = {}) {
6805
+ this.version = ECPVer.ecpVer1;
6806
+ Object.assign(this, params);
6807
+ }
6808
+ };
6809
+ __decorate$1([
6810
+ AsnProp({ type: AsnPropTypes.Integer })
6811
+ ], SpecifiedECDomain.prototype, "version", void 0);
6812
+ __decorate$1([
6813
+ AsnProp({ type: FieldID })
6814
+ ], SpecifiedECDomain.prototype, "fieldID", void 0);
6815
+ __decorate$1([
6816
+ AsnProp({ type: Curve })
6817
+ ], SpecifiedECDomain.prototype, "curve", void 0);
6818
+ __decorate$1([
6819
+ AsnProp({ type: ECPoint })
6820
+ ], SpecifiedECDomain.prototype, "base", void 0);
6821
+ __decorate$1([
6822
+ AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter })
6823
+ ], SpecifiedECDomain.prototype, "order", void 0);
6824
+ __decorate$1([
6825
+ AsnProp({ type: AsnPropTypes.Integer, optional: true })
6826
+ ], SpecifiedECDomain.prototype, "cofactor", void 0);
6827
+ SpecifiedECDomain = __decorate$1([
6828
+ AsnType({ type: AsnTypeTypes.Sequence })
6829
+ ], SpecifiedECDomain);
6830
+
6766
6831
  let ECParameters = class ECParameters {
6767
6832
  constructor(params = {}) {
6768
6833
  Object.assign(this, params);
@@ -6771,6 +6836,12 @@ let ECParameters = class ECParameters {
6771
6836
  __decorate$1([
6772
6837
  AsnProp({ type: AsnPropTypes.ObjectIdentifier })
6773
6838
  ], ECParameters.prototype, "namedCurve", void 0);
6839
+ __decorate$1([
6840
+ AsnProp({ type: AsnPropTypes.Null })
6841
+ ], ECParameters.prototype, "implicitCurve", void 0);
6842
+ __decorate$1([
6843
+ AsnProp({ type: SpecifiedECDomain })
6844
+ ], ECParameters.prototype, "specifiedCurve", void 0);
6774
6845
  ECParameters = __decorate$1([
6775
6846
  AsnType({ type: AsnTypeTypes.Choice })
6776
6847
  ], ECParameters);
@@ -7181,14 +7252,6 @@ const isHex = (value) => (/^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/
7181
7252
  .test(value));
7182
7253
  const isPem = (value) => (/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/
7183
7254
  .test(value));
7184
- const isX509Pem = (value) => (/-----BEGIN CERTIFICATE-----([A-Za-z0-9+\/=\s]+)-----END CERTIFICATE-----/
7185
- .test(value));
7186
- const isX509CRLPem = (value) => (/-----BEGIN X509 CRL-----([A-Za-z0-9+\/=\s]+)-----END X509 CRL-----/
7187
- .test(value));
7188
- const isPkcs10Pem = (value) => (/-----BEGIN CERTIFICATE REQUEST-----([A-Za-z0-9+\/=\s]+)-----END CERTIFICATE REQUEST-----/
7189
- .test(value));
7190
- const isX509AttributePem = (value) => (/-----BEGIN ATTRIBUTE CERTIFICATE-----([A-Za-z0-9+\/=\s]+)-----END ATTRIBUTE CERTIFICATE-----/
7191
- .test(value));
7192
7255
  const isBase64 = (value) => {
7193
7256
  try {
7194
7257
  window.atob(value);
@@ -8352,6 +8415,7 @@ const OIDs = {
8352
8415
  '1.2.840.113635.100.4.6.3': 'Apple Crypto Tier2 QoS',
8353
8416
  '1.2.840.113635.100.4.6.4': 'Apple Crypto Tier3 QoS',
8354
8417
  '1.2.840.113635.100.4.7': 'Apple ID Sharing Certificate',
8418
+ '1.2.840.113635.100.4.13': 'Apple Extended Key Usage Developer ID Installer',
8355
8419
  '1.2.840.113635.100.5': 'Apple Certificate Policies',
8356
8420
  '1.2.840.113635.100.5.1': 'Apple Certificate Policy ID',
8357
8421
  '1.2.840.113635.100.5.2': 'Apple Dot Mac Certificate Policy ID',
@@ -8363,6 +8427,8 @@ const OIDs = {
8363
8427
  '1.2.840.113635.100.6.1.2': 'Apple Certificate Extension ADC Developer Signing',
8364
8428
  '1.2.840.113635.100.6.1.3': 'Apple Certificate Extension ADC Apple Signing',
8365
8429
  '1.2.840.113635.100.6.2.3': 'Apple Application Integration',
8430
+ '1.2.840.113635.100.6.1.33': 'Apple Certificate Extension Developer ID Date',
8431
+ '1.2.840.113635.100.6.1.14': 'Apple Certificate Extension Developer ID Installer',
8366
8432
  '1.2.840.114021.1.6.1': 'Identrus unknown policy Identifier',
8367
8433
  '1.2.840.114021.4.1': 'Identrus OCSP',
8368
8434
  '1.3.6.1.4.1.188.7.1.1': 'Ascom',
@@ -12568,7 +12634,7 @@ __decorate$1([
12568
12634
  AsnProp({ type: CertificateSet, context: 0, implicit: true, optional: true })
12569
12635
  ], SignedData.prototype, "certificates", void 0);
12570
12636
  __decorate$1([
12571
- AsnProp({ type: RevocationInfoChoice, context: 1, implicit: true, optional: true })
12637
+ AsnProp({ type: RevocationInfoChoices, context: 1, implicit: true, optional: true })
12572
12638
  ], SignedData.prototype, "crls", void 0);
12573
12639
  __decorate$1([
12574
12640
  AsnProp({ type: SignerInfos })
@@ -12979,6 +13045,6 @@ __decorate$1([
12979
13045
  AsnProp({ type: AsnPropTypes.BitString })
12980
13046
  ], CertificationRequest.prototype, "signature", void 0);
12981
13047
 
12982
- export { CompositeParams as $, AsnData as A, id_rsaEncryption as B, Convert_1 as C, Download as D, ExtensionRequest as E, getCertificateThumbprint as F, Extension as G, base64Format as H, InsuranceValue as I, hexFormat as J, isPem as K, isX509Pem as L, isPkcs10Pem as M, Name as N, isX509AttributePem as O, isX509CRLPem as P, Certificate as Q, RSAPublicKey as R, dateDiff as S, TypeRelationship as T, UnstructuredName as U, ValuationRanking as V, WebGDPR as W, id_composite_key as X, CompositePublicKey as Y, id_alg_composite as Z, CompositeSignatureValue as _, Attribute$1 as a, AttributeCertificate as a0, CertificateList as a1, l10n as a2, dateShort as a3, OIDs as a4, Name$1 as a5, CRLReason as a6, InvalidityDate as a7, CertificateIssuer as a8, OtherName 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, SubjectDirectoryAttributes as aM, PrivateKeyUsagePeriod as aN, EntrustVersionInfo as aO, BiometricSyntax as aP, LogotypeExtn as aQ, TNAuthorizationList as aR, PolicyConstraints as aS, PolicyMappings as aT, CRLNumber as aU, IssuingDistributionPoint as aV, NonStandardKeyDescription as aW, CabforganizationIdentifier as aX, DisplayText as aa, UserNotice as ab, BufferSourceConverter_1 as ac, EDIPartyName as ad, __decorate$1 as ae, AsnProp as af, AsnPropTypes as ag, AsnType as ah, AsnTypeTypes as ai, AsnArray as aj, id_qcs_pkixQCSyntax_v2 as ak, SemanticsInformation as al, AsnIntegerArrayBufferConverter as am, AttestationApplicationId as an, RootOfTrust as ao, IntegerSet as ap, KeyUsage as aq, BasicConstraints as ar, ExtendedKeyUsage as as, SubjectKeyIdentifier as at, AuthorityKeyIdentifier as au, CRLDistributionPoints as av, AuthorityInfoAccessSyntax as aw, SubjectInfoAccessSyntax as ax, SubjectAlternativeName as ay, CertificatePolicies as az, AsnParser as b, DomainNameBeneficiary as c, downloadFromBuffer as d, id_DomainNameLegalRepresentative as e, DomainNameLegalRepresentative as f, id_DomainNameOwner as g, DomainNameOwner as h, id_DomainNameBeneficiary as i, id_DomainNameTechnicalOperator as j, DomainNameTechnicalOperator as k, id_TypeRelationship as l, id_ActivityDescription as m, ActivityDescription as n, id_WebGDPR as o, id_InsuranceValue as p, id_ValuationRanking as q, id_pkcs9_at_challengePassword as r, ChallengePassword as s, id_pkcs9_at_unstructuredName as t, id_pkcs9_at_extensionRequest as u, certificateRawToBuffer as v, CertificationRequest as w, id_ecPublicKey as x, AsnConvert as y, ECParameters as z };
13048
+ export { OIDs as $, AsnData as A, id_rsaEncryption as B, Convert_1 as C, Download as D, ExtensionRequest as E, getCertificateThumbprint as F, Extension as G, base64Format as H, InsuranceValue as I, hexFormat as J, Certificate as K, dateDiff as L, id_composite_key as M, Name as N, CompositePublicKey as O, id_alg_composite as P, CompositeSignatureValue as Q, RSAPublicKey as R, CompositeParams as S, TypeRelationship as T, UnstructuredName as U, ValuationRanking as V, WebGDPR as W, AttributeCertificate as X, CertificateList as Y, l10n as Z, dateShort as _, Attribute$1 as a, Name$1 as a0, CRLReason as a1, InvalidityDate as a2, CertificateIssuer as a3, OtherName as a4, DisplayText as a5, UserNotice as a6, BufferSourceConverter_1 as a7, EDIPartyName as a8, __decorate$1 as a9, QCStatements as aA, NetscapeComment as aB, NetscapeCertType as aC, LeiRole as aD, LeiChoice as aE, Timestamp as aF, ArchiveRevInfo as aG, SubjectDirectoryAttributes as aH, PrivateKeyUsagePeriod as aI, EntrustVersionInfo as aJ, BiometricSyntax as aK, LogotypeExtn as aL, TNAuthorizationList as aM, PolicyConstraints as aN, PolicyMappings as aO, CRLNumber as aP, IssuingDistributionPoint as aQ, NonStandardKeyDescription as aR, CabforganizationIdentifier as aS, AsnProp as aa, AsnPropTypes as ab, AsnType as ac, AsnTypeTypes as ad, AsnArray as ae, id_qcs_pkixQCSyntax_v2 as af, SemanticsInformation as ag, AsnIntegerArrayBufferConverter as ah, AttestationApplicationId as ai, RootOfTrust as aj, IntegerSet as ak, KeyUsage as al, BasicConstraints as am, ExtendedKeyUsage as an, SubjectKeyIdentifier as ao, AuthorityKeyIdentifier as ap, CRLDistributionPoints as aq, AuthorityInfoAccessSyntax as ar, SubjectInfoAccessSyntax as as, SubjectAlternativeName as at, CertificatePolicies as au, CertificateTransparency as av, NameConstraints as aw, CertificateTemplate as ax, EnrollCertTypeChoice as ay, CaVersion as az, AsnParser as b, DomainNameBeneficiary as c, downloadFromBuffer as d, id_DomainNameLegalRepresentative as e, DomainNameLegalRepresentative as f, id_DomainNameOwner as g, DomainNameOwner as h, id_DomainNameBeneficiary as i, id_DomainNameTechnicalOperator as j, DomainNameTechnicalOperator as k, id_TypeRelationship as l, id_ActivityDescription as m, ActivityDescription as n, id_WebGDPR as o, id_InsuranceValue as p, id_ValuationRanking as q, id_pkcs9_at_challengePassword as r, ChallengePassword as s, id_pkcs9_at_unstructuredName as t, id_pkcs9_at_extensionRequest as u, certificateRawToBuffer as v, CertificationRequest as w, id_ecPublicKey as x, AsnConvert as y, ECParameters as z };
12983
13049
 
12984
- //# sourceMappingURL=certification_request-08b4deb8.js.map
13050
+ //# sourceMappingURL=certification_request-a4699dcf.js.map