edockit 0.3.0 → 0.4.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +81 -198
- package/TRUSTED-LIST.md +308 -0
- package/dist/certificate-c46e14a0.js +560 -0
- package/dist/certificate-c46e14a0.js.map +1 -0
- package/dist/certificate-fc0e06f7.js +571 -0
- package/dist/certificate-fc0e06f7.js.map +1 -0
- package/dist/core/canonicalization/XMLCanonicalizer.d.ts +9 -3
- package/dist/core/trustedlist/build.d.ts +41 -0
- package/dist/core/trustedlist/bundled-provider.d.ts +2 -0
- package/dist/core/trustedlist/contract.d.ts +19 -0
- package/dist/core/trustedlist/dom.d.ts +12 -0
- package/dist/core/trustedlist/extract.d.ts +6 -0
- package/dist/core/trustedlist/http.d.ts +8 -0
- package/dist/core/trustedlist/identity.d.ts +7 -0
- package/dist/core/trustedlist/index.d.ts +18 -0
- package/dist/core/trustedlist/loader.d.ts +5 -0
- package/dist/core/trustedlist/matcher.d.ts +11 -0
- package/dist/core/trustedlist/normalize.d.ts +14 -0
- package/dist/core/trustedlist/reference-provider.d.ts +12 -0
- package/dist/core/trustedlist/types.d.ts +114 -0
- package/dist/core/unzip.d.ts +0 -0
- package/dist/core/verification.d.ts +22 -0
- package/dist/data/trusted-list.d.ts +3 -0
- package/dist/identity-1a3dddc3.js +902 -0
- package/dist/identity-1a3dddc3.js.map +1 -0
- package/dist/identity-b3a70fc1.js +897 -0
- package/dist/identity-b3a70fc1.js.map +1 -0
- package/dist/index.cjs.js +909 -8003
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.esm.js +417 -7510
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +12 -12
- package/dist/index.umd.js.map +1 -1
- package/dist/loader-1ac52e12.js +217 -0
- package/dist/loader-1ac52e12.js.map +1 -0
- package/dist/loader-43d8e17a.js +222 -0
- package/dist/loader-43d8e17a.js.map +1 -0
- package/dist/normalize-60f2d7e6.js +6270 -0
- package/dist/normalize-60f2d7e6.js.map +1 -0
- package/dist/normalize-70da6516.js +6214 -0
- package/dist/normalize-70da6516.js.map +1 -0
- package/dist/reference-provider-1cd85b7b.js +217 -0
- package/dist/reference-provider-1cd85b7b.js.map +1 -0
- package/dist/reference-provider-53240217.js +211 -0
- package/dist/reference-provider-53240217.js.map +1 -0
- package/dist/trusted-list-build.cjs.js +575 -0
- package/dist/trusted-list-build.cjs.js.map +1 -0
- package/dist/trusted-list-build.d.ts +4 -0
- package/dist/trusted-list-build.esm.js +564 -0
- package/dist/trusted-list-build.esm.js.map +1 -0
- package/dist/trusted-list-bundled.cjs.js +30436 -0
- package/dist/trusted-list-bundled.cjs.js.map +1 -0
- package/dist/trusted-list-bundled.d.ts +1 -0
- package/dist/trusted-list-bundled.esm.js +30432 -0
- package/dist/trusted-list-bundled.esm.js.map +1 -0
- package/dist/trusted-list-http.cjs.js +85 -0
- package/dist/trusted-list-http.cjs.js.map +1 -0
- package/dist/trusted-list-http.d.ts +1 -0
- package/dist/trusted-list-http.esm.js +81 -0
- package/dist/trusted-list-http.esm.js.map +1 -0
- package/dist/trusted-list.cjs.js +35 -0
- package/dist/trusted-list.cjs.js.map +1 -0
- package/dist/trusted-list.d.ts +9 -0
- package/dist/trusted-list.esm.js +10 -0
- package/dist/trusted-list.esm.js.map +1 -0
- package/package.json +32 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-70da6516.js","sources":["../node_modules/pvtsutils/build/index.es.js","../node_modules/pvutils/build/utils.es.js","../node_modules/asn1js/build/index.es.js","../node_modules/@peculiar/asn1-schema/build/es2015/enums.js","../node_modules/@peculiar/asn1-schema/build/es2015/types/bit_string.js","../node_modules/@peculiar/asn1-schema/build/es2015/types/octet_string.js","../node_modules/@peculiar/asn1-schema/build/es2015/converters.js","../node_modules/@peculiar/asn1-schema/build/es2015/helper.js","../node_modules/@peculiar/asn1-schema/build/es2015/schema.js","../node_modules/@peculiar/asn1-schema/build/es2015/storage.js","../node_modules/@peculiar/asn1-schema/build/es2015/decorators.js","../node_modules/@peculiar/asn1-schema/build/es2015/objects.js","../node_modules/tslib/tslib.es6.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/extensions/acceptable_responses.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/extensions/archive_cutoff.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/extensions/extended_revoke.js","../node_modules/@peculiar/asn1-x509/build/es2015/ip_converter.js","../node_modules/@peculiar/asn1-x509/build/es2015/name.js","../node_modules/@peculiar/asn1-x509/build/es2015/general_name.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/authority_information_access.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/authority_key_identifier.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/basic_constraints.js","../node_modules/@peculiar/asn1-x509/build/es2015/general_names.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/certificate_issuer.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/certificate_policies.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_number.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_delta_indicator.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_distribution_points.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_freshest.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_issuing_distribution_point.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_reason.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/extended_key_usage.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/inhibit_any_policy.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/invalidity_date.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/issuer_alternative_name.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/key_usage.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/name_constraints.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/policy_constraints.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/policy_mappings.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/subject_alternative_name.js","../node_modules/@peculiar/asn1-x509/build/es2015/attribute.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/subject_directory_attributes.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/private_key_usage_period.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/entrust_version_info.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/subject_info_access.js","../node_modules/@peculiar/asn1-x509/build/es2015/algorithm_identifier.js","../node_modules/@peculiar/asn1-x509/build/es2015/subject_public_key_info.js","../node_modules/@peculiar/asn1-x509/build/es2015/time.js","../node_modules/@peculiar/asn1-x509/build/es2015/validity.js","../node_modules/@peculiar/asn1-x509/build/es2015/extension.js","../node_modules/@peculiar/asn1-x509/build/es2015/types.js","../node_modules/@peculiar/asn1-x509/build/es2015/tbs_certificate.js","../node_modules/@peculiar/asn1-x509/build/es2015/certificate.js","../node_modules/@peculiar/asn1-x509/build/es2015/tbs_cert_list.js","../node_modules/@peculiar/asn1-x509/build/es2015/certificate_list.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/extensions/preferred_signature_algorithms.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/extensions/service_locator.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/responder_id.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/cert_id.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/revoked_info.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/cert_status.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/single_response.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/types.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/response_data.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/basic_ocsp_response.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/signature.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/request.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/tbs_request.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/ocsp_request.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/ocsp_response_status.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/response_bytes.js","../node_modules/@peculiar/asn1-ocsp/build/es2015/ocsp_response.js","../src/core/revocation/fetch.ts","../src/utils/encoding.ts","../src/core/trustedlist/normalize.ts"],"sourcesContent":["/*!\n * MIT License\n * \n * Copyright (c) 2017-2024 Peculiar Ventures, LLC\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n */\n\nconst ARRAY_BUFFER_NAME = \"[object ArrayBuffer]\";\nclass BufferSourceConverter {\n static isArrayBuffer(data) {\n return Object.prototype.toString.call(data) === ARRAY_BUFFER_NAME;\n }\n static toArrayBuffer(data) {\n if (this.isArrayBuffer(data)) {\n return data;\n }\n if (data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return this.toUint8Array(data.buffer)\n .slice(data.byteOffset, data.byteOffset + data.byteLength)\n .buffer;\n }\n static toUint8Array(data) {\n return this.toView(data, Uint8Array);\n }\n static toView(data, type) {\n if (data.constructor === type) {\n return data;\n }\n if (this.isArrayBuffer(data)) {\n return new type(data);\n }\n if (this.isArrayBufferView(data)) {\n return new type(data.buffer, data.byteOffset, data.byteLength);\n }\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n static isBufferSource(data) {\n return this.isArrayBufferView(data)\n || this.isArrayBuffer(data);\n }\n static isArrayBufferView(data) {\n return ArrayBuffer.isView(data)\n || (data && this.isArrayBuffer(data.buffer));\n }\n static isEqual(a, b) {\n const aView = BufferSourceConverter.toUint8Array(a);\n const bView = BufferSourceConverter.toUint8Array(b);\n if (aView.length !== bView.byteLength) {\n return false;\n }\n for (let i = 0; i < aView.length; i++) {\n if (aView[i] !== bView[i]) {\n return false;\n }\n }\n return true;\n }\n static concat(...args) {\n let buffers;\n if (Array.isArray(args[0]) && !(args[1] instanceof Function)) {\n buffers = args[0];\n }\n else if (Array.isArray(args[0]) && args[1] instanceof Function) {\n buffers = args[0];\n }\n else {\n if (args[args.length - 1] instanceof Function) {\n buffers = args.slice(0, args.length - 1);\n }\n else {\n buffers = args;\n }\n }\n let size = 0;\n for (const buffer of buffers) {\n size += buffer.byteLength;\n }\n const res = new Uint8Array(size);\n let offset = 0;\n for (const buffer of buffers) {\n const view = this.toUint8Array(buffer);\n res.set(view, offset);\n offset += view.length;\n }\n if (args[args.length - 1] instanceof Function) {\n return this.toView(res, args[args.length - 1]);\n }\n return res.buffer;\n }\n}\n\nconst STRING_TYPE = \"string\";\nconst HEX_REGEX = /^[0-9a-f\\s]+$/i;\nconst BASE64_REGEX = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\nconst BASE64URL_REGEX = /^[a-zA-Z0-9-_]+$/;\nclass Utf8Converter {\n static fromString(text) {\n const s = unescape(encodeURIComponent(text));\n const uintArray = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++) {\n uintArray[i] = s.charCodeAt(i);\n }\n return uintArray.buffer;\n }\n static toString(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let encodedString = \"\";\n for (let i = 0; i < buf.length; i++) {\n encodedString += String.fromCharCode(buf[i]);\n }\n const decodedString = decodeURIComponent(escape(encodedString));\n return decodedString;\n }\n}\nclass Utf16Converter {\n static toString(buffer, littleEndian = false) {\n const arrayBuffer = BufferSourceConverter.toArrayBuffer(buffer);\n const dataView = new DataView(arrayBuffer);\n let res = \"\";\n for (let i = 0; i < arrayBuffer.byteLength; i += 2) {\n const code = dataView.getUint16(i, littleEndian);\n res += String.fromCharCode(code);\n }\n return res;\n }\n static fromString(text, littleEndian = false) {\n const res = new ArrayBuffer(text.length * 2);\n const dataView = new DataView(res);\n for (let i = 0; i < text.length; i++) {\n dataView.setUint16(i * 2, text.charCodeAt(i), littleEndian);\n }\n return res;\n }\n}\nclass Convert {\n static isHex(data) {\n return typeof data === STRING_TYPE\n && HEX_REGEX.test(data);\n }\n static isBase64(data) {\n return typeof data === STRING_TYPE\n && BASE64_REGEX.test(data);\n }\n static isBase64Url(data) {\n return typeof data === STRING_TYPE\n && BASE64URL_REGEX.test(data);\n }\n static ToString(buffer, enc = \"utf8\") {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.ToUtf8String(buf);\n case \"binary\":\n return this.ToBinary(buf);\n case \"hex\":\n return this.ToHex(buf);\n case \"base64\":\n return this.ToBase64(buf);\n case \"base64url\":\n return this.ToBase64Url(buf);\n case \"utf16le\":\n return Utf16Converter.toString(buf, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buf);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static FromString(str, enc = \"utf8\") {\n if (!str) {\n return new ArrayBuffer(0);\n }\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.FromUtf8String(str);\n case \"binary\":\n return this.FromBinary(str);\n case \"hex\":\n return this.FromHex(str);\n case \"base64\":\n return this.FromBase64(str);\n case \"base64url\":\n return this.FromBase64Url(str);\n case \"utf16le\":\n return Utf16Converter.fromString(str, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(str);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static ToBase64(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n if (typeof btoa !== \"undefined\") {\n const binary = this.ToString(buf, \"binary\");\n return btoa(binary);\n }\n else {\n return Buffer.from(buf).toString(\"base64\");\n }\n }\n static FromBase64(base64) {\n const formatted = this.formatString(base64);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64(formatted)) {\n throw new TypeError(\"Argument 'base64Text' is not Base64 encoded\");\n }\n if (typeof atob !== \"undefined\") {\n return this.FromBinary(atob(formatted));\n }\n else {\n return new Uint8Array(Buffer.from(formatted, \"base64\")).buffer;\n }\n }\n static FromBase64Url(base64url) {\n const formatted = this.formatString(base64url);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64Url(formatted)) {\n throw new TypeError(\"Argument 'base64url' is not Base64Url encoded\");\n }\n return this.FromBase64(this.Base64Padding(formatted.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\")));\n }\n static ToBase64Url(data) {\n return this.ToBase64(data).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/\\=/g, \"\");\n }\n static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.FromBinary(text);\n case \"utf8\":\n return Utf8Converter.fromString(text);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(text);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.fromString(text, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.ToBinary(buffer);\n case \"utf8\":\n return Utf8Converter.toString(buffer);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buffer);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.toString(buffer, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static FromBinary(text) {\n const stringLength = text.length;\n const resultView = new Uint8Array(stringLength);\n for (let i = 0; i < stringLength; i++) {\n resultView[i] = text.charCodeAt(i);\n }\n return resultView.buffer;\n }\n static ToBinary(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let res = \"\";\n for (let i = 0; i < buf.length; i++) {\n res += String.fromCharCode(buf[i]);\n }\n return res;\n }\n static ToHex(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let result = \"\";\n const len = buf.length;\n for (let i = 0; i < len; i++) {\n const byte = buf[i];\n if (byte < 16) {\n result += \"0\";\n }\n result += byte.toString(16);\n }\n return result;\n }\n static FromHex(hexString) {\n let formatted = this.formatString(hexString);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isHex(formatted)) {\n throw new TypeError(\"Argument 'hexString' is not HEX encoded\");\n }\n if (formatted.length % 2) {\n formatted = `0${formatted}`;\n }\n const res = new Uint8Array(formatted.length / 2);\n for (let i = 0; i < formatted.length; i = i + 2) {\n const c = formatted.slice(i, i + 2);\n res[i / 2] = parseInt(c, 16);\n }\n return res.buffer;\n }\n static ToUtf16String(buffer, littleEndian = false) {\n return Utf16Converter.toString(buffer, littleEndian);\n }\n static FromUtf16String(text, littleEndian = false) {\n return Utf16Converter.fromString(text, littleEndian);\n }\n static Base64Padding(base64) {\n const padCount = 4 - (base64.length % 4);\n if (padCount < 4) {\n for (let i = 0; i < padCount; i++) {\n base64 += \"=\";\n }\n }\n return base64;\n }\n static formatString(data) {\n return (data === null || data === void 0 ? void 0 : data.replace(/[\\n\\r\\t ]/g, \"\")) || \"\";\n }\n}\nConvert.DEFAULT_UTF8_ENCODING = \"utf8\";\n\nfunction assign(target, ...sources) {\n const res = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n const obj = arguments[i];\n for (const prop in obj) {\n res[prop] = obj[prop];\n }\n }\n return res;\n}\nfunction combine(...buf) {\n const totalByteLength = buf.map((item) => item.byteLength).reduce((prev, cur) => prev + cur);\n const res = new Uint8Array(totalByteLength);\n let currentPos = 0;\n buf.map((item) => new Uint8Array(item)).forEach((arr) => {\n for (const item2 of arr) {\n res[currentPos++] = item2;\n }\n });\n return res.buffer;\n}\nfunction isEqual(bytes1, bytes2) {\n if (!(bytes1 && bytes2)) {\n return false;\n }\n if (bytes1.byteLength !== bytes2.byteLength) {\n return false;\n }\n const b1 = new Uint8Array(bytes1);\n const b2 = new Uint8Array(bytes2);\n for (let i = 0; i < bytes1.byteLength; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport { BufferSourceConverter, Convert, assign, combine, isEqual };\n","/*!\n Copyright (c) Peculiar Ventures, LLC\n*/\n\nfunction getUTCDate(date) {\r\n return new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\r\n}\r\nfunction getParametersValue(parameters, name, defaultValue) {\r\n var _a;\r\n if ((parameters instanceof Object) === false) {\r\n return defaultValue;\r\n }\r\n return (_a = parameters[name]) !== null && _a !== void 0 ? _a : defaultValue;\r\n}\r\nfunction bufferToHexCodes(inputBuffer, inputOffset = 0, inputLength = (inputBuffer.byteLength - inputOffset), insertSpace = false) {\r\n let result = \"\";\r\n for (const item of (new Uint8Array(inputBuffer, inputOffset, inputLength))) {\r\n const str = item.toString(16).toUpperCase();\r\n if (str.length === 1) {\r\n result += \"0\";\r\n }\r\n result += str;\r\n if (insertSpace) {\r\n result += \" \";\r\n }\r\n }\r\n return result.trim();\r\n}\r\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\r\n if (!(inputBuffer instanceof ArrayBuffer)) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer must be \\\"ArrayBuffer\\\"\";\r\n return false;\r\n }\r\n if (!inputBuffer.byteLength) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\r\n return false;\r\n }\r\n if (inputOffset < 0) {\r\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\r\n return false;\r\n }\r\n if (inputLength < 0) {\r\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\r\n return false;\r\n }\r\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\r\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction utilFromBase(inputBuffer, inputBase) {\r\n let result = 0;\r\n if (inputBuffer.length === 1) {\r\n return inputBuffer[0];\r\n }\r\n for (let i = (inputBuffer.length - 1); i >= 0; i--) {\r\n result += inputBuffer[(inputBuffer.length - 1) - i] * Math.pow(2, inputBase * i);\r\n }\r\n return result;\r\n}\r\nfunction utilToBase(value, base, reserved = (-1)) {\r\n const internalReserved = reserved;\r\n let internalValue = value;\r\n let result = 0;\r\n let biggest = Math.pow(2, base);\r\n for (let i = 1; i < 8; i++) {\r\n if (value < biggest) {\r\n let retBuf;\r\n if (internalReserved < 0) {\r\n retBuf = new ArrayBuffer(i);\r\n result = i;\r\n }\r\n else {\r\n if (internalReserved < i) {\r\n return (new ArrayBuffer(0));\r\n }\r\n retBuf = new ArrayBuffer(internalReserved);\r\n result = internalReserved;\r\n }\r\n const retView = new Uint8Array(retBuf);\r\n for (let j = (i - 1); j >= 0; j--) {\r\n const basis = Math.pow(2, j * base);\r\n retView[result - j - 1] = Math.floor(internalValue / basis);\r\n internalValue -= (retView[result - j - 1]) * basis;\r\n }\r\n return retBuf;\r\n }\r\n biggest *= Math.pow(2, base);\r\n }\r\n return new ArrayBuffer(0);\r\n}\r\nfunction utilConcatBuf(...buffers) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const buffer of buffers) {\r\n outputLength += buffer.byteLength;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const buffer of buffers) {\r\n retView.set(new Uint8Array(buffer), prevLength);\r\n prevLength += buffer.byteLength;\r\n }\r\n return retBuf;\r\n}\r\nfunction utilConcatView(...views) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const view of views) {\r\n outputLength += view.length;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const view of views) {\r\n retView.set(view, prevLength);\r\n prevLength += view.length;\r\n }\r\n return retView;\r\n}\r\nfunction utilDecodeTC() {\r\n const buf = new Uint8Array(this.valueHex);\r\n if (this.valueHex.byteLength >= 2) {\r\n const condition1 = (buf[0] === 0xFF) && (buf[1] & 0x80);\r\n const condition2 = (buf[0] === 0x00) && ((buf[1] & 0x80) === 0x00);\r\n if (condition1 || condition2) {\r\n this.warnings.push(\"Needlessly long format\");\r\n }\r\n }\r\n const bigIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const bigIntView = new Uint8Array(bigIntBuffer);\r\n for (let i = 0; i < this.valueHex.byteLength; i++) {\r\n bigIntView[i] = 0;\r\n }\r\n bigIntView[0] = (buf[0] & 0x80);\r\n const bigInt = utilFromBase(bigIntView, 8);\r\n const smallIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const smallIntView = new Uint8Array(smallIntBuffer);\r\n for (let j = 0; j < this.valueHex.byteLength; j++) {\r\n smallIntView[j] = buf[j];\r\n }\r\n smallIntView[0] &= 0x7F;\r\n const smallInt = utilFromBase(smallIntView, 8);\r\n return (smallInt - bigInt);\r\n}\r\nfunction utilEncodeTC(value) {\r\n const modValue = (value < 0) ? (value * (-1)) : value;\r\n let bigInt = 128;\r\n for (let i = 1; i < 8; i++) {\r\n if (modValue <= bigInt) {\r\n if (value < 0) {\r\n const smallInt = bigInt - modValue;\r\n const retBuf = utilToBase(smallInt, 8, i);\r\n const retView = new Uint8Array(retBuf);\r\n retView[0] |= 0x80;\r\n return retBuf;\r\n }\r\n let retBuf = utilToBase(modValue, 8, i);\r\n let retView = new Uint8Array(retBuf);\r\n if (retView[0] & 0x80) {\r\n const tempBuf = retBuf.slice(0);\r\n const tempView = new Uint8Array(tempBuf);\r\n retBuf = new ArrayBuffer(retBuf.byteLength + 1);\r\n retView = new Uint8Array(retBuf);\r\n for (let k = 0; k < tempBuf.byteLength; k++) {\r\n retView[k + 1] = tempView[k];\r\n }\r\n retView[0] = 0x00;\r\n }\r\n return retBuf;\r\n }\r\n bigInt *= Math.pow(2, 8);\r\n }\r\n return (new ArrayBuffer(0));\r\n}\r\nfunction isEqualBuffer(inputBuffer1, inputBuffer2) {\r\n if (inputBuffer1.byteLength !== inputBuffer2.byteLength) {\r\n return false;\r\n }\r\n const view1 = new Uint8Array(inputBuffer1);\r\n const view2 = new Uint8Array(inputBuffer2);\r\n for (let i = 0; i < view1.length; i++) {\r\n if (view1[i] !== view2[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction padNumber(inputNumber, fullLength) {\r\n const str = inputNumber.toString(10);\r\n if (fullLength < str.length) {\r\n return \"\";\r\n }\r\n const dif = fullLength - str.length;\r\n const padding = new Array(dif);\r\n for (let i = 0; i < dif; i++) {\r\n padding[i] = \"0\";\r\n }\r\n const paddingString = padding.join(\"\");\r\n return paddingString.concat(str);\r\n}\r\nconst base64Template = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nconst base64UrlTemplate = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\";\r\nfunction toBase64(input, useUrlTemplate = false, skipPadding = false, skipLeadingZeros = false) {\r\n let i = 0;\r\n let flag1 = 0;\r\n let flag2 = 0;\r\n let output = \"\";\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n if (skipLeadingZeros) {\r\n let nonZeroPosition = 0;\r\n for (let i = 0; i < input.length; i++) {\r\n if (input.charCodeAt(i) !== 0) {\r\n nonZeroPosition = i;\r\n break;\r\n }\r\n }\r\n input = input.slice(nonZeroPosition);\r\n }\r\n while (i < input.length) {\r\n const chr1 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag1 = 1;\r\n }\r\n const chr2 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag2 = 1;\r\n }\r\n const chr3 = input.charCodeAt(i++);\r\n const enc1 = chr1 >> 2;\r\n const enc2 = ((chr1 & 0x03) << 4) | (chr2 >> 4);\r\n let enc3 = ((chr2 & 0x0F) << 2) | (chr3 >> 6);\r\n let enc4 = chr3 & 0x3F;\r\n if (flag1 === 1) {\r\n enc3 = enc4 = 64;\r\n }\r\n else {\r\n if (flag2 === 1) {\r\n enc4 = 64;\r\n }\r\n }\r\n if (skipPadding) {\r\n if (enc3 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}`;\r\n }\r\n else {\r\n if (enc4 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}`;\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n return output;\r\n}\r\nfunction fromBase64(input, useUrlTemplate = false, cutTailZeros = false) {\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n function indexOf(toSearch) {\r\n for (let i = 0; i < 64; i++) {\r\n if (template.charAt(i) === toSearch)\r\n return i;\r\n }\r\n return 64;\r\n }\r\n function test(incoming) {\r\n return ((incoming === 64) ? 0x00 : incoming);\r\n }\r\n let i = 0;\r\n let output = \"\";\r\n while (i < input.length) {\r\n const enc1 = indexOf(input.charAt(i++));\r\n const enc2 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc3 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc4 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const chr1 = (test(enc1) << 2) | (test(enc2) >> 4);\r\n const chr2 = ((test(enc2) & 0x0F) << 4) | (test(enc3) >> 2);\r\n const chr3 = ((test(enc3) & 0x03) << 6) | test(enc4);\r\n output += String.fromCharCode(chr1);\r\n if (enc3 !== 64) {\r\n output += String.fromCharCode(chr2);\r\n }\r\n if (enc4 !== 64) {\r\n output += String.fromCharCode(chr3);\r\n }\r\n }\r\n if (cutTailZeros) {\r\n const outputLength = output.length;\r\n let nonZeroStart = (-1);\r\n for (let i = (outputLength - 1); i >= 0; i--) {\r\n if (output.charCodeAt(i) !== 0) {\r\n nonZeroStart = i;\r\n break;\r\n }\r\n }\r\n if (nonZeroStart !== (-1)) {\r\n output = output.slice(0, nonZeroStart + 1);\r\n }\r\n else {\r\n output = \"\";\r\n }\r\n }\r\n return output;\r\n}\r\nfunction arrayBufferToString(buffer) {\r\n let resultString = \"\";\r\n const view = new Uint8Array(buffer);\r\n for (const element of view) {\r\n resultString += String.fromCharCode(element);\r\n }\r\n return resultString;\r\n}\r\nfunction stringToArrayBuffer(str) {\r\n const stringLength = str.length;\r\n const resultBuffer = new ArrayBuffer(stringLength);\r\n const resultView = new Uint8Array(resultBuffer);\r\n for (let i = 0; i < stringLength; i++) {\r\n resultView[i] = str.charCodeAt(i);\r\n }\r\n return resultBuffer;\r\n}\r\nconst log2 = Math.log(2);\r\nfunction nearestPowerOf2(length) {\r\n const base = (Math.log(length) / log2);\r\n const floor = Math.floor(base);\r\n const round = Math.round(base);\r\n return ((floor === round) ? floor : round);\r\n}\r\nfunction clearProps(object, propsArray) {\r\n for (const prop of propsArray) {\r\n delete object[prop];\r\n }\r\n}\n\nexport { arrayBufferToString, bufferToHexCodes, checkBufferParams, clearProps, fromBase64, getParametersValue, getUTCDate, isEqualBuffer, nearestPowerOf2, padNumber, stringToArrayBuffer, toBase64, utilConcatBuf, utilConcatView, utilDecodeTC, utilEncodeTC, utilFromBase, utilToBase };\n","/*!\n * Copyright (c) 2014, GMO GlobalSign\n * Copyright (c) 2015-2022, Peculiar Ventures\n * All rights reserved.\n * \n * Author 2014-2019, Yury Strozhevsky\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * * Redistributions in binary form must reproduce the above copyright notice, this\n * list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * \n * * Neither the name of the copyright holder nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n */\n\nimport * as pvtsutils from 'pvtsutils';\nimport * as pvutils from 'pvutils';\n\nfunction assertBigInt() {\n if (typeof BigInt === \"undefined\") {\n throw new Error(\"BigInt is not defined. Your environment doesn't implement BigInt.\");\n }\n}\nfunction concat(buffers) {\n let outputLength = 0;\n let prevLength = 0;\n for (let i = 0; i < buffers.length; i++) {\n const buffer = buffers[i];\n outputLength += buffer.byteLength;\n }\n const retView = new Uint8Array(outputLength);\n for (let i = 0; i < buffers.length; i++) {\n const buffer = buffers[i];\n retView.set(new Uint8Array(buffer), prevLength);\n prevLength += buffer.byteLength;\n }\n return retView.buffer;\n}\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\n if (!(inputBuffer instanceof Uint8Array)) {\n baseBlock.error = \"Wrong parameter: inputBuffer must be 'Uint8Array'\";\n return false;\n }\n if (!inputBuffer.byteLength) {\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\n return false;\n }\n if (inputOffset < 0) {\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\n return false;\n }\n if (inputLength < 0) {\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\n return false;\n }\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\n return false;\n }\n return true;\n}\n\nclass ViewWriter {\n constructor() {\n this.items = [];\n }\n write(buf) {\n this.items.push(buf);\n }\n final() {\n return concat(this.items);\n }\n}\n\nconst powers2 = [new Uint8Array([1])];\nconst digitsString = \"0123456789\";\nconst NAME = \"name\";\nconst VALUE_HEX_VIEW = \"valueHexView\";\nconst IS_HEX_ONLY = \"isHexOnly\";\nconst ID_BLOCK = \"idBlock\";\nconst TAG_CLASS = \"tagClass\";\nconst TAG_NUMBER = \"tagNumber\";\nconst IS_CONSTRUCTED = \"isConstructed\";\nconst FROM_BER = \"fromBER\";\nconst TO_BER = \"toBER\";\nconst LOCAL = \"local\";\nconst EMPTY_STRING = \"\";\nconst EMPTY_BUFFER = new ArrayBuffer(0);\nconst EMPTY_VIEW = new Uint8Array(0);\nconst END_OF_CONTENT_NAME = \"EndOfContent\";\nconst OCTET_STRING_NAME = \"OCTET STRING\";\nconst BIT_STRING_NAME = \"BIT STRING\";\n\nfunction HexBlock(BaseClass) {\n var _a;\n return _a = class Some extends BaseClass {\n get valueHex() {\n return this.valueHexView.slice().buffer;\n }\n set valueHex(value) {\n this.valueHexView = new Uint8Array(value);\n }\n constructor(...args) {\n var _b;\n super(...args);\n const params = args[0] || {};\n this.isHexOnly = (_b = params.isHexOnly) !== null && _b !== void 0 ? _b : false;\n this.valueHexView = params.valueHex ? pvtsutils.BufferSourceConverter.toUint8Array(params.valueHex) : EMPTY_VIEW;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\n return -1;\n }\n const endLength = inputOffset + inputLength;\n this.valueHexView = view.subarray(inputOffset, endLength);\n if (!this.valueHexView.length) {\n this.warnings.push(\"Zero buffer length\");\n return inputOffset;\n }\n this.blockLength = inputLength;\n return endLength;\n }\n toBER(sizeOnly = false) {\n if (!this.isHexOnly) {\n this.error = \"Flag 'isHexOnly' is not set, abort\";\n return EMPTY_BUFFER;\n }\n if (sizeOnly) {\n return new ArrayBuffer(this.valueHexView.byteLength);\n }\n return (this.valueHexView.byteLength === this.valueHexView.buffer.byteLength)\n ? this.valueHexView.buffer\n : this.valueHexView.slice().buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n isHexOnly: this.isHexOnly,\n valueHex: pvtsutils.Convert.ToHex(this.valueHexView),\n };\n }\n },\n _a.NAME = \"hexBlock\",\n _a;\n}\n\nclass LocalBaseBlock {\n static blockName() {\n return this.NAME;\n }\n get valueBeforeDecode() {\n return this.valueBeforeDecodeView.slice().buffer;\n }\n set valueBeforeDecode(value) {\n this.valueBeforeDecodeView = new Uint8Array(value);\n }\n constructor({ blockLength = 0, error = EMPTY_STRING, warnings = [], valueBeforeDecode = EMPTY_VIEW, } = {}) {\n this.blockLength = blockLength;\n this.error = error;\n this.warnings = warnings;\n this.valueBeforeDecodeView = pvtsutils.BufferSourceConverter.toUint8Array(valueBeforeDecode);\n }\n toJSON() {\n return {\n blockName: this.constructor.NAME,\n blockLength: this.blockLength,\n error: this.error,\n warnings: this.warnings,\n valueBeforeDecode: pvtsutils.Convert.ToHex(this.valueBeforeDecodeView),\n };\n }\n}\nLocalBaseBlock.NAME = \"baseBlock\";\n\nclass ValueBlock extends LocalBaseBlock {\n fromBER(_inputBuffer, _inputOffset, _inputLength) {\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\n }\n toBER(_sizeOnly, _writer) {\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\n }\n}\nValueBlock.NAME = \"valueBlock\";\n\nclass LocalIdentificationBlock extends HexBlock(LocalBaseBlock) {\n constructor({ idBlock = {} } = {}) {\n var _a, _b, _c, _d;\n super();\n if (idBlock) {\n this.isHexOnly = (_a = idBlock.isHexOnly) !== null && _a !== void 0 ? _a : false;\n this.valueHexView = idBlock.valueHex\n ? pvtsutils.BufferSourceConverter.toUint8Array(idBlock.valueHex)\n : EMPTY_VIEW;\n this.tagClass = (_b = idBlock.tagClass) !== null && _b !== void 0 ? _b : -1;\n this.tagNumber = (_c = idBlock.tagNumber) !== null && _c !== void 0 ? _c : -1;\n this.isConstructed = (_d = idBlock.isConstructed) !== null && _d !== void 0 ? _d : false;\n }\n else {\n this.tagClass = -1;\n this.tagNumber = -1;\n this.isConstructed = false;\n }\n }\n toBER(sizeOnly = false) {\n let firstOctet = 0;\n switch (this.tagClass) {\n case 1:\n firstOctet |= 0x00;\n break;\n case 2:\n firstOctet |= 0x40;\n break;\n case 3:\n firstOctet |= 0x80;\n break;\n case 4:\n firstOctet |= 0xC0;\n break;\n default:\n this.error = \"Unknown tag class\";\n return EMPTY_BUFFER;\n }\n if (this.isConstructed)\n firstOctet |= 0x20;\n if (this.tagNumber < 31 && !this.isHexOnly) {\n const retView = new Uint8Array(1);\n if (!sizeOnly) {\n let number = this.tagNumber;\n number &= 0x1F;\n firstOctet |= number;\n retView[0] = firstOctet;\n }\n return retView.buffer;\n }\n if (!this.isHexOnly) {\n const encodedBuf = pvutils.utilToBase(this.tagNumber, 7);\n const encodedView = new Uint8Array(encodedBuf);\n const size = encodedBuf.byteLength;\n const retView = new Uint8Array(size + 1);\n retView[0] = (firstOctet | 0x1F);\n if (!sizeOnly) {\n for (let i = 0; i < (size - 1); i++)\n retView[i + 1] = encodedView[i] | 0x80;\n retView[size] = encodedView[size - 1];\n }\n return retView.buffer;\n }\n const retView = new Uint8Array(this.valueHexView.byteLength + 1);\n retView[0] = (firstOctet | 0x1F);\n if (!sizeOnly) {\n const curView = this.valueHexView;\n for (let i = 0; i < (curView.length - 1); i++)\n retView[i + 1] = curView[i] | 0x80;\n retView[this.valueHexView.byteLength] = curView[curView.length - 1];\n }\n return retView.buffer;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n if (intBuffer.length === 0) {\n this.error = \"Zero buffer length\";\n return -1;\n }\n const tagClassMask = intBuffer[0] & 0xC0;\n switch (tagClassMask) {\n case 0x00:\n this.tagClass = (1);\n break;\n case 0x40:\n this.tagClass = (2);\n break;\n case 0x80:\n this.tagClass = (3);\n break;\n case 0xC0:\n this.tagClass = (4);\n break;\n default:\n this.error = \"Unknown tag class\";\n return -1;\n }\n this.isConstructed = (intBuffer[0] & 0x20) === 0x20;\n this.isHexOnly = false;\n const tagNumberMask = intBuffer[0] & 0x1F;\n if (tagNumberMask !== 0x1F) {\n this.tagNumber = (tagNumberMask);\n this.blockLength = 1;\n }\n else {\n let count = 1;\n let intTagNumberBuffer = this.valueHexView = new Uint8Array(255);\n let tagNumberBufferMaxLength = 255;\n while (intBuffer[count] & 0x80) {\n intTagNumberBuffer[count - 1] = intBuffer[count] & 0x7F;\n count++;\n if (count >= intBuffer.length) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n if (count === tagNumberBufferMaxLength) {\n tagNumberBufferMaxLength += 255;\n const tempBufferView = new Uint8Array(tagNumberBufferMaxLength);\n for (let i = 0; i < intTagNumberBuffer.length; i++)\n tempBufferView[i] = intTagNumberBuffer[i];\n intTagNumberBuffer = this.valueHexView = new Uint8Array(tagNumberBufferMaxLength);\n }\n }\n this.blockLength = (count + 1);\n intTagNumberBuffer[count - 1] = intBuffer[count] & 0x7F;\n const tempBufferView = new Uint8Array(count);\n for (let i = 0; i < count; i++)\n tempBufferView[i] = intTagNumberBuffer[i];\n intTagNumberBuffer = this.valueHexView = new Uint8Array(count);\n intTagNumberBuffer.set(tempBufferView);\n if (this.blockLength <= 9)\n this.tagNumber = pvutils.utilFromBase(intTagNumberBuffer, 7);\n else {\n this.isHexOnly = true;\n this.warnings.push(\"Tag too long, represented as hex-coded\");\n }\n }\n if (((this.tagClass === 1))\n && (this.isConstructed)) {\n switch (this.tagNumber) {\n case 1:\n case 2:\n case 5:\n case 6:\n case 9:\n case 13:\n case 14:\n case 23:\n case 24:\n case 31:\n case 32:\n case 33:\n case 34:\n this.error = \"Constructed encoding used for primitive type\";\n return -1;\n }\n }\n return (inputOffset + this.blockLength);\n }\n toJSON() {\n return {\n ...super.toJSON(),\n tagClass: this.tagClass,\n tagNumber: this.tagNumber,\n isConstructed: this.isConstructed,\n };\n }\n}\nLocalIdentificationBlock.NAME = \"identificationBlock\";\n\nclass LocalLengthBlock extends LocalBaseBlock {\n constructor({ lenBlock = {} } = {}) {\n var _a, _b, _c;\n super();\n this.isIndefiniteForm = (_a = lenBlock.isIndefiniteForm) !== null && _a !== void 0 ? _a : false;\n this.longFormUsed = (_b = lenBlock.longFormUsed) !== null && _b !== void 0 ? _b : false;\n this.length = (_c = lenBlock.length) !== null && _c !== void 0 ? _c : 0;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const view = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = view.subarray(inputOffset, inputOffset + inputLength);\n if (intBuffer.length === 0) {\n this.error = \"Zero buffer length\";\n return -1;\n }\n if (intBuffer[0] === 0xFF) {\n this.error = \"Length block 0xFF is reserved by standard\";\n return -1;\n }\n this.isIndefiniteForm = intBuffer[0] === 0x80;\n if (this.isIndefiniteForm) {\n this.blockLength = 1;\n return (inputOffset + this.blockLength);\n }\n this.longFormUsed = !!(intBuffer[0] & 0x80);\n if (this.longFormUsed === false) {\n this.length = (intBuffer[0]);\n this.blockLength = 1;\n return (inputOffset + this.blockLength);\n }\n const count = intBuffer[0] & 0x7F;\n if (count > 8) {\n this.error = \"Too big integer\";\n return -1;\n }\n if ((count + 1) > intBuffer.length) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n const lenOffset = inputOffset + 1;\n const lengthBufferView = view.subarray(lenOffset, lenOffset + count);\n if (lengthBufferView[count - 1] === 0x00)\n this.warnings.push(\"Needlessly long encoded length\");\n this.length = pvutils.utilFromBase(lengthBufferView, 8);\n if (this.longFormUsed && (this.length <= 127))\n this.warnings.push(\"Unnecessary usage of long length form\");\n this.blockLength = count + 1;\n return (inputOffset + this.blockLength);\n }\n toBER(sizeOnly = false) {\n let retBuf;\n let retView;\n if (this.length > 127)\n this.longFormUsed = true;\n if (this.isIndefiniteForm) {\n retBuf = new ArrayBuffer(1);\n if (sizeOnly === false) {\n retView = new Uint8Array(retBuf);\n retView[0] = 0x80;\n }\n return retBuf;\n }\n if (this.longFormUsed) {\n const encodedBuf = pvutils.utilToBase(this.length, 8);\n if (encodedBuf.byteLength > 127) {\n this.error = \"Too big length\";\n return (EMPTY_BUFFER);\n }\n retBuf = new ArrayBuffer(encodedBuf.byteLength + 1);\n if (sizeOnly)\n return retBuf;\n const encodedView = new Uint8Array(encodedBuf);\n retView = new Uint8Array(retBuf);\n retView[0] = encodedBuf.byteLength | 0x80;\n for (let i = 0; i < encodedBuf.byteLength; i++)\n retView[i + 1] = encodedView[i];\n return retBuf;\n }\n retBuf = new ArrayBuffer(1);\n if (sizeOnly === false) {\n retView = new Uint8Array(retBuf);\n retView[0] = this.length;\n }\n return retBuf;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n isIndefiniteForm: this.isIndefiniteForm,\n longFormUsed: this.longFormUsed,\n length: this.length,\n };\n }\n}\nLocalLengthBlock.NAME = \"lengthBlock\";\n\nconst typeStore = {};\n\nclass BaseBlock extends LocalBaseBlock {\n constructor({ name = EMPTY_STRING, optional = false, primitiveSchema, ...parameters } = {}, valueBlockType) {\n super(parameters);\n this.name = name;\n this.optional = optional;\n if (primitiveSchema) {\n this.primitiveSchema = primitiveSchema;\n }\n this.idBlock = new LocalIdentificationBlock(parameters);\n this.lenBlock = new LocalLengthBlock(parameters);\n this.valueBlock = valueBlockType ? new valueBlockType(parameters) : new ValueBlock(parameters);\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm)\n ? inputLength\n : this.lenBlock.length);\n if (resultOffset === -1) {\n this.error = this.valueBlock.error;\n return resultOffset;\n }\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n if (!this.valueBlock.error.length)\n this.blockLength += this.valueBlock.blockLength;\n return resultOffset;\n }\n toBER(sizeOnly, writer) {\n const _writer = writer || new ViewWriter();\n if (!writer) {\n prepareIndefiniteForm(this);\n }\n const idBlockBuf = this.idBlock.toBER(sizeOnly);\n _writer.write(idBlockBuf);\n if (this.lenBlock.isIndefiniteForm) {\n _writer.write(new Uint8Array([0x80]).buffer);\n this.valueBlock.toBER(sizeOnly, _writer);\n _writer.write(new ArrayBuffer(2));\n }\n else {\n const valueBlockBuf = this.valueBlock.toBER(sizeOnly);\n this.lenBlock.length = valueBlockBuf.byteLength;\n const lenBlockBuf = this.lenBlock.toBER(sizeOnly);\n _writer.write(lenBlockBuf);\n _writer.write(valueBlockBuf);\n }\n if (!writer) {\n return _writer.final();\n }\n return EMPTY_BUFFER;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n idBlock: this.idBlock.toJSON(),\n lenBlock: this.lenBlock.toJSON(),\n valueBlock: this.valueBlock.toJSON(),\n name: this.name,\n optional: this.optional,\n };\n if (this.primitiveSchema)\n object.primitiveSchema = this.primitiveSchema.toJSON();\n return object;\n }\n toString(encoding = \"ascii\") {\n if (encoding === \"ascii\") {\n return this.onAsciiEncoding();\n }\n return pvtsutils.Convert.ToHex(this.toBER());\n }\n onAsciiEncoding() {\n const name = this.constructor.NAME;\n const value = pvtsutils.Convert.ToHex(this.valueBlock.valueBeforeDecodeView);\n return `${name} : ${value}`;\n }\n isEqual(other) {\n if (this === other) {\n return true;\n }\n if (!(other instanceof this.constructor)) {\n return false;\n }\n const thisRaw = this.toBER();\n const otherRaw = other.toBER();\n return pvutils.isEqualBuffer(thisRaw, otherRaw);\n }\n}\nBaseBlock.NAME = \"BaseBlock\";\nfunction prepareIndefiniteForm(baseBlock) {\n var _a;\n if (baseBlock instanceof typeStore.Constructed) {\n for (const value of baseBlock.valueBlock.value) {\n if (prepareIndefiniteForm(value)) {\n baseBlock.lenBlock.isIndefiniteForm = true;\n }\n }\n }\n return !!((_a = baseBlock.lenBlock) === null || _a === void 0 ? void 0 : _a.isIndefiniteForm);\n}\n\nclass BaseStringBlock extends BaseBlock {\n getValue() {\n return this.valueBlock.value;\n }\n setValue(value) {\n this.valueBlock.value = value;\n }\n constructor({ value = EMPTY_STRING, ...parameters } = {}, stringValueBlockType) {\n super(parameters, stringValueBlockType);\n if (value) {\n this.fromString(value);\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm)\n ? inputLength\n : this.lenBlock.length);\n if (resultOffset === -1) {\n this.error = this.valueBlock.error;\n return resultOffset;\n }\n this.fromBuffer(this.valueBlock.valueHexView);\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n if (!this.valueBlock.error.length)\n this.blockLength += this.valueBlock.blockLength;\n return resultOffset;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : '${this.valueBlock.value}'`;\n }\n}\nBaseStringBlock.NAME = \"BaseStringBlock\";\n\nclass LocalPrimitiveValueBlock extends HexBlock(ValueBlock) {\n constructor({ isHexOnly = true, ...parameters } = {}) {\n super(parameters);\n this.isHexOnly = isHexOnly;\n }\n}\nLocalPrimitiveValueBlock.NAME = \"PrimitiveValueBlock\";\n\nvar _a$w;\nclass Primitive extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalPrimitiveValueBlock);\n this.idBlock.isConstructed = false;\n }\n}\n_a$w = Primitive;\n(() => {\n typeStore.Primitive = _a$w;\n})();\nPrimitive.NAME = \"PRIMITIVE\";\n\nfunction localChangeType(inputObject, newType) {\n if (inputObject instanceof newType) {\n return inputObject;\n }\n const newObject = new newType();\n newObject.idBlock = inputObject.idBlock;\n newObject.lenBlock = inputObject.lenBlock;\n newObject.warnings = inputObject.warnings;\n newObject.valueBeforeDecodeView = inputObject.valueBeforeDecodeView;\n return newObject;\n}\nfunction localFromBER(inputBuffer, inputOffset = 0, inputLength = inputBuffer.length) {\n const incomingOffset = inputOffset;\n let returnObject = new BaseBlock({}, ValueBlock);\n const baseBlock = new LocalBaseBlock();\n if (!checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength)) {\n returnObject.error = baseBlock.error;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n const intBuffer = inputBuffer.subarray(inputOffset, inputOffset + inputLength);\n if (!intBuffer.length) {\n returnObject.error = \"Zero buffer length\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n let resultOffset = returnObject.idBlock.fromBER(inputBuffer, inputOffset, inputLength);\n if (returnObject.idBlock.warnings.length) {\n returnObject.warnings.concat(returnObject.idBlock.warnings);\n }\n if (resultOffset === -1) {\n returnObject.error = returnObject.idBlock.error;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n inputOffset = resultOffset;\n inputLength -= returnObject.idBlock.blockLength;\n resultOffset = returnObject.lenBlock.fromBER(inputBuffer, inputOffset, inputLength);\n if (returnObject.lenBlock.warnings.length) {\n returnObject.warnings.concat(returnObject.lenBlock.warnings);\n }\n if (resultOffset === -1) {\n returnObject.error = returnObject.lenBlock.error;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n inputOffset = resultOffset;\n inputLength -= returnObject.lenBlock.blockLength;\n if (!returnObject.idBlock.isConstructed\n && returnObject.lenBlock.isIndefiniteForm) {\n returnObject.error = \"Indefinite length form used for primitive encoding form\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n let newASN1Type = BaseBlock;\n switch (returnObject.idBlock.tagClass) {\n case 1:\n if ((returnObject.idBlock.tagNumber >= 37)\n && (returnObject.idBlock.isHexOnly === false)) {\n returnObject.error = \"UNIVERSAL 37 and upper tags are reserved by ASN.1 standard\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n switch (returnObject.idBlock.tagNumber) {\n case 0:\n if ((returnObject.idBlock.isConstructed)\n && (returnObject.lenBlock.length > 0)) {\n returnObject.error = \"Type [UNIVERSAL 0] is reserved\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n newASN1Type = typeStore.EndOfContent;\n break;\n case 1:\n newASN1Type = typeStore.Boolean;\n break;\n case 2:\n newASN1Type = typeStore.Integer;\n break;\n case 3:\n newASN1Type = typeStore.BitString;\n break;\n case 4:\n newASN1Type = typeStore.OctetString;\n break;\n case 5:\n newASN1Type = typeStore.Null;\n break;\n case 6:\n newASN1Type = typeStore.ObjectIdentifier;\n break;\n case 10:\n newASN1Type = typeStore.Enumerated;\n break;\n case 12:\n newASN1Type = typeStore.Utf8String;\n break;\n case 13:\n newASN1Type = typeStore.RelativeObjectIdentifier;\n break;\n case 14:\n newASN1Type = typeStore.TIME;\n break;\n case 15:\n returnObject.error = \"[UNIVERSAL 15] is reserved by ASN.1 standard\";\n return {\n offset: -1,\n result: returnObject,\n };\n case 16:\n newASN1Type = typeStore.Sequence;\n break;\n case 17:\n newASN1Type = typeStore.Set;\n break;\n case 18:\n newASN1Type = typeStore.NumericString;\n break;\n case 19:\n newASN1Type = typeStore.PrintableString;\n break;\n case 20:\n newASN1Type = typeStore.TeletexString;\n break;\n case 21:\n newASN1Type = typeStore.VideotexString;\n break;\n case 22:\n newASN1Type = typeStore.IA5String;\n break;\n case 23:\n newASN1Type = typeStore.UTCTime;\n break;\n case 24:\n newASN1Type = typeStore.GeneralizedTime;\n break;\n case 25:\n newASN1Type = typeStore.GraphicString;\n break;\n case 26:\n newASN1Type = typeStore.VisibleString;\n break;\n case 27:\n newASN1Type = typeStore.GeneralString;\n break;\n case 28:\n newASN1Type = typeStore.UniversalString;\n break;\n case 29:\n newASN1Type = typeStore.CharacterString;\n break;\n case 30:\n newASN1Type = typeStore.BmpString;\n break;\n case 31:\n newASN1Type = typeStore.DATE;\n break;\n case 32:\n newASN1Type = typeStore.TimeOfDay;\n break;\n case 33:\n newASN1Type = typeStore.DateTime;\n break;\n case 34:\n newASN1Type = typeStore.Duration;\n break;\n default: {\n const newObject = returnObject.idBlock.isConstructed\n ? new typeStore.Constructed()\n : new typeStore.Primitive();\n newObject.idBlock = returnObject.idBlock;\n newObject.lenBlock = returnObject.lenBlock;\n newObject.warnings = returnObject.warnings;\n returnObject = newObject;\n }\n }\n break;\n case 2:\n case 3:\n case 4:\n default: {\n newASN1Type = returnObject.idBlock.isConstructed\n ? typeStore.Constructed\n : typeStore.Primitive;\n }\n }\n returnObject = localChangeType(returnObject, newASN1Type);\n resultOffset = returnObject.fromBER(inputBuffer, inputOffset, returnObject.lenBlock.isIndefiniteForm ? inputLength : returnObject.lenBlock.length);\n returnObject.valueBeforeDecodeView = inputBuffer.subarray(incomingOffset, incomingOffset + returnObject.blockLength);\n return {\n offset: resultOffset,\n result: returnObject,\n };\n}\nfunction fromBER(inputBuffer) {\n if (!inputBuffer.byteLength) {\n const result = new BaseBlock({}, ValueBlock);\n result.error = \"Input buffer has zero length\";\n return {\n offset: -1,\n result,\n };\n }\n return localFromBER(pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer).slice(), 0, inputBuffer.byteLength);\n}\n\nfunction checkLen(indefiniteLength, length) {\n if (indefiniteLength) {\n return 1;\n }\n return length;\n}\nclass LocalConstructedValueBlock extends ValueBlock {\n constructor({ value = [], isIndefiniteForm = false, ...parameters } = {}) {\n super(parameters);\n this.value = value;\n this.isIndefiniteForm = isIndefiniteForm;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const view = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\n return -1;\n }\n this.valueBeforeDecodeView = view.subarray(inputOffset, inputOffset + inputLength);\n if (this.valueBeforeDecodeView.length === 0) {\n this.warnings.push(\"Zero buffer length\");\n return inputOffset;\n }\n let currentOffset = inputOffset;\n while (checkLen(this.isIndefiniteForm, inputLength) > 0) {\n const returnObject = localFromBER(view, currentOffset, inputLength);\n if (returnObject.offset === -1) {\n this.error = returnObject.result.error;\n this.warnings.concat(returnObject.result.warnings);\n return -1;\n }\n currentOffset = returnObject.offset;\n this.blockLength += returnObject.result.blockLength;\n inputLength -= returnObject.result.blockLength;\n this.value.push(returnObject.result);\n if (this.isIndefiniteForm && returnObject.result.constructor.NAME === END_OF_CONTENT_NAME) {\n break;\n }\n }\n if (this.isIndefiniteForm) {\n if (this.value[this.value.length - 1].constructor.NAME === END_OF_CONTENT_NAME) {\n this.value.pop();\n }\n else {\n this.warnings.push(\"No EndOfContent block encoded\");\n }\n }\n return currentOffset;\n }\n toBER(sizeOnly, writer) {\n const _writer = writer || new ViewWriter();\n for (let i = 0; i < this.value.length; i++) {\n this.value[i].toBER(sizeOnly, _writer);\n }\n if (!writer) {\n return _writer.final();\n }\n return EMPTY_BUFFER;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n isIndefiniteForm: this.isIndefiniteForm,\n value: [],\n };\n for (const value of this.value) {\n object.value.push(value.toJSON());\n }\n return object;\n }\n}\nLocalConstructedValueBlock.NAME = \"ConstructedValueBlock\";\n\nvar _a$v;\nclass Constructed extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalConstructedValueBlock);\n this.idBlock.isConstructed = true;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length);\n if (resultOffset === -1) {\n this.error = this.valueBlock.error;\n return resultOffset;\n }\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n if (!this.valueBlock.error.length)\n this.blockLength += this.valueBlock.blockLength;\n return resultOffset;\n }\n onAsciiEncoding() {\n const values = [];\n for (const value of this.valueBlock.value) {\n values.push(value.toString(\"ascii\").split(\"\\n\").map((o) => ` ${o}`).join(\"\\n\"));\n }\n const blockName = this.idBlock.tagClass === 3\n ? `[${this.idBlock.tagNumber}]`\n : this.constructor.NAME;\n return values.length\n ? `${blockName} :\\n${values.join(\"\\n\")}`\n : `${blockName} :`;\n }\n}\n_a$v = Constructed;\n(() => {\n typeStore.Constructed = _a$v;\n})();\nConstructed.NAME = \"CONSTRUCTED\";\n\nclass LocalEndOfContentValueBlock extends ValueBlock {\n fromBER(inputBuffer, inputOffset, _inputLength) {\n return inputOffset;\n }\n toBER(_sizeOnly) {\n return EMPTY_BUFFER;\n }\n}\nLocalEndOfContentValueBlock.override = \"EndOfContentValueBlock\";\n\nvar _a$u;\nclass EndOfContent extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalEndOfContentValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 0;\n }\n}\n_a$u = EndOfContent;\n(() => {\n typeStore.EndOfContent = _a$u;\n})();\nEndOfContent.NAME = END_OF_CONTENT_NAME;\n\nvar _a$t;\nclass Null extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, ValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 5;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (this.lenBlock.length > 0)\n this.warnings.push(\"Non-zero length of value block for Null type\");\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n this.blockLength += inputLength;\n if ((inputOffset + inputLength) > inputBuffer.byteLength) {\n this.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\n return -1;\n }\n return (inputOffset + inputLength);\n }\n toBER(sizeOnly, writer) {\n const retBuf = new ArrayBuffer(2);\n if (!sizeOnly) {\n const retView = new Uint8Array(retBuf);\n retView[0] = 0x05;\n retView[1] = 0x00;\n }\n if (writer) {\n writer.write(retBuf);\n }\n return retBuf;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME}`;\n }\n}\n_a$t = Null;\n(() => {\n typeStore.Null = _a$t;\n})();\nNull.NAME = \"NULL\";\n\nclass LocalBooleanValueBlock extends HexBlock(ValueBlock) {\n get value() {\n for (const octet of this.valueHexView) {\n if (octet > 0) {\n return true;\n }\n }\n return false;\n }\n set value(value) {\n this.valueHexView[0] = value ? 0xFF : 0x00;\n }\n constructor({ value, ...parameters } = {}) {\n super(parameters);\n if (parameters.valueHex) {\n this.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(parameters.valueHex);\n }\n else {\n this.valueHexView = new Uint8Array(1);\n }\n if (value) {\n this.value = value;\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n this.valueHexView = inputView.subarray(inputOffset, inputOffset + inputLength);\n if (inputLength > 1)\n this.warnings.push(\"Boolean value encoded in more then 1 octet\");\n this.isHexOnly = true;\n pvutils.utilDecodeTC.call(this);\n this.blockLength = inputLength;\n return (inputOffset + inputLength);\n }\n toBER() {\n return this.valueHexView.slice();\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.value,\n };\n }\n}\nLocalBooleanValueBlock.NAME = \"BooleanValueBlock\";\n\nvar _a$s;\nclass Boolean extends BaseBlock {\n getValue() {\n return this.valueBlock.value;\n }\n setValue(value) {\n this.valueBlock.value = value;\n }\n constructor(parameters = {}) {\n super(parameters, LocalBooleanValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 1;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.getValue}`;\n }\n}\n_a$s = Boolean;\n(() => {\n typeStore.Boolean = _a$s;\n})();\nBoolean.NAME = \"BOOLEAN\";\n\nclass LocalOctetStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\n constructor({ isConstructed = false, ...parameters } = {}) {\n super(parameters);\n this.isConstructed = isConstructed;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n let resultOffset = 0;\n if (this.isConstructed) {\n this.isHexOnly = false;\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength);\n if (resultOffset === -1)\n return resultOffset;\n for (let i = 0; i < this.value.length; i++) {\n const currentBlockName = this.value[i].constructor.NAME;\n if (currentBlockName === END_OF_CONTENT_NAME) {\n if (this.isIndefiniteForm)\n break;\n else {\n this.error = \"EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only\";\n return -1;\n }\n }\n if (currentBlockName !== OCTET_STRING_NAME) {\n this.error = \"OCTET STRING may consists of OCTET STRINGs only\";\n return -1;\n }\n }\n }\n else {\n this.isHexOnly = true;\n resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\n this.blockLength = inputLength;\n }\n return resultOffset;\n }\n toBER(sizeOnly, writer) {\n if (this.isConstructed)\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\n return sizeOnly\n ? new ArrayBuffer(this.valueHexView.byteLength)\n : this.valueHexView.slice().buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n isConstructed: this.isConstructed,\n };\n }\n}\nLocalOctetStringValueBlock.NAME = \"OctetStringValueBlock\";\n\nvar _a$r;\nclass OctetString extends BaseBlock {\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\n var _b, _c;\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\n super({\n idBlock: {\n isConstructed: parameters.isConstructed,\n ...idBlock,\n },\n lenBlock: {\n ...lenBlock,\n isIndefiniteForm: !!parameters.isIndefiniteForm,\n },\n ...parameters,\n }, LocalOctetStringValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 4;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n if (inputLength === 0) {\n if (this.idBlock.error.length === 0)\n this.blockLength += this.idBlock.blockLength;\n if (this.lenBlock.error.length === 0)\n this.blockLength += this.lenBlock.blockLength;\n return inputOffset;\n }\n if (!this.valueBlock.isConstructed) {\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\n const buf = view.subarray(inputOffset, inputOffset + inputLength);\n try {\n if (buf.byteLength) {\n const asn = localFromBER(buf, 0, buf.byteLength);\n if (asn.offset !== -1 && asn.offset === inputLength) {\n this.valueBlock.value = [asn.result];\n }\n }\n }\n catch {\n }\n }\n return super.fromBER(inputBuffer, inputOffset, inputLength);\n }\n onAsciiEncoding() {\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\n return Constructed.prototype.onAsciiEncoding.call(this);\n }\n const name = this.constructor.NAME;\n const value = pvtsutils.Convert.ToHex(this.valueBlock.valueHexView);\n return `${name} : ${value}`;\n }\n getValue() {\n if (!this.idBlock.isConstructed) {\n return this.valueBlock.valueHexView.slice().buffer;\n }\n const array = [];\n for (const content of this.valueBlock.value) {\n if (content instanceof _a$r) {\n array.push(content.valueBlock.valueHexView);\n }\n }\n return pvtsutils.BufferSourceConverter.concat(array);\n }\n}\n_a$r = OctetString;\n(() => {\n typeStore.OctetString = _a$r;\n})();\nOctetString.NAME = OCTET_STRING_NAME;\n\nclass LocalBitStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\n constructor({ unusedBits = 0, isConstructed = false, ...parameters } = {}) {\n super(parameters);\n this.unusedBits = unusedBits;\n this.isConstructed = isConstructed;\n this.blockLength = this.valueHexView.byteLength;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (!inputLength) {\n return inputOffset;\n }\n let resultOffset = -1;\n if (this.isConstructed) {\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength);\n if (resultOffset === -1)\n return resultOffset;\n for (const value of this.value) {\n const currentBlockName = value.constructor.NAME;\n if (currentBlockName === END_OF_CONTENT_NAME) {\n if (this.isIndefiniteForm)\n break;\n else {\n this.error = \"EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only\";\n return -1;\n }\n }\n if (currentBlockName !== BIT_STRING_NAME) {\n this.error = \"BIT STRING may consists of BIT STRINGs only\";\n return -1;\n }\n const valueBlock = value.valueBlock;\n if ((this.unusedBits > 0) && (valueBlock.unusedBits > 0)) {\n this.error = \"Using of \\\"unused bits\\\" inside constructive BIT STRING allowed for least one only\";\n return -1;\n }\n this.unusedBits = valueBlock.unusedBits;\n }\n return resultOffset;\n }\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n this.unusedBits = intBuffer[0];\n if (this.unusedBits > 7) {\n this.error = \"Unused bits for BitString must be in range 0-7\";\n return -1;\n }\n if (!this.unusedBits) {\n const buf = intBuffer.subarray(1);\n try {\n if (buf.byteLength) {\n const asn = localFromBER(buf, 0, buf.byteLength);\n if (asn.offset !== -1 && asn.offset === (inputLength - 1)) {\n this.value = [asn.result];\n }\n }\n }\n catch {\n }\n }\n this.valueHexView = intBuffer.subarray(1);\n this.blockLength = intBuffer.length;\n return (inputOffset + inputLength);\n }\n toBER(sizeOnly, writer) {\n if (this.isConstructed) {\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\n }\n if (sizeOnly) {\n return new ArrayBuffer(this.valueHexView.byteLength + 1);\n }\n if (!this.valueHexView.byteLength) {\n const empty = new Uint8Array(1);\n empty[0] = 0;\n return empty.buffer;\n }\n const retView = new Uint8Array(this.valueHexView.length + 1);\n retView[0] = this.unusedBits;\n retView.set(this.valueHexView, 1);\n return retView.buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n unusedBits: this.unusedBits,\n isConstructed: this.isConstructed,\n };\n }\n}\nLocalBitStringValueBlock.NAME = \"BitStringValueBlock\";\n\nvar _a$q;\nclass BitString extends BaseBlock {\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\n var _b, _c;\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\n super({\n idBlock: {\n isConstructed: parameters.isConstructed,\n ...idBlock,\n },\n lenBlock: {\n ...lenBlock,\n isIndefiniteForm: !!parameters.isIndefiniteForm,\n },\n ...parameters,\n }, LocalBitStringValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 3;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n return super.fromBER(inputBuffer, inputOffset, inputLength);\n }\n onAsciiEncoding() {\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\n return Constructed.prototype.onAsciiEncoding.call(this);\n }\n else {\n const bits = [];\n const valueHex = this.valueBlock.valueHexView;\n for (const byte of valueHex) {\n bits.push(byte.toString(2).padStart(8, \"0\"));\n }\n const bitsStr = bits.join(\"\");\n const name = this.constructor.NAME;\n const value = bitsStr.substring(0, bitsStr.length - this.valueBlock.unusedBits);\n return `${name} : ${value}`;\n }\n }\n}\n_a$q = BitString;\n(() => {\n typeStore.BitString = _a$q;\n})();\nBitString.NAME = BIT_STRING_NAME;\n\nvar _a$p;\nfunction viewAdd(first, second) {\n const c = new Uint8Array([0]);\n const firstView = new Uint8Array(first);\n const secondView = new Uint8Array(second);\n let firstViewCopy = firstView.slice(0);\n const firstViewCopyLength = firstViewCopy.length - 1;\n const secondViewCopy = secondView.slice(0);\n const secondViewCopyLength = secondViewCopy.length - 1;\n let value = 0;\n const max = (secondViewCopyLength < firstViewCopyLength) ? firstViewCopyLength : secondViewCopyLength;\n let counter = 0;\n for (let i = max; i >= 0; i--, counter++) {\n switch (true) {\n case (counter < secondViewCopy.length):\n value = firstViewCopy[firstViewCopyLength - counter] + secondViewCopy[secondViewCopyLength - counter] + c[0];\n break;\n default:\n value = firstViewCopy[firstViewCopyLength - counter] + c[0];\n }\n c[0] = value / 10;\n switch (true) {\n case (counter >= firstViewCopy.length):\n firstViewCopy = pvutils.utilConcatView(new Uint8Array([value % 10]), firstViewCopy);\n break;\n default:\n firstViewCopy[firstViewCopyLength - counter] = value % 10;\n }\n }\n if (c[0] > 0)\n firstViewCopy = pvutils.utilConcatView(c, firstViewCopy);\n return firstViewCopy;\n}\nfunction power2(n) {\n if (n >= powers2.length) {\n for (let p = powers2.length; p <= n; p++) {\n const c = new Uint8Array([0]);\n let digits = (powers2[p - 1]).slice(0);\n for (let i = (digits.length - 1); i >= 0; i--) {\n const newValue = new Uint8Array([(digits[i] << 1) + c[0]]);\n c[0] = newValue[0] / 10;\n digits[i] = newValue[0] % 10;\n }\n if (c[0] > 0)\n digits = pvutils.utilConcatView(c, digits);\n powers2.push(digits);\n }\n }\n return powers2[n];\n}\nfunction viewSub(first, second) {\n let b = 0;\n const firstView = new Uint8Array(first);\n const secondView = new Uint8Array(second);\n const firstViewCopy = firstView.slice(0);\n const firstViewCopyLength = firstViewCopy.length - 1;\n const secondViewCopy = secondView.slice(0);\n const secondViewCopyLength = secondViewCopy.length - 1;\n let value;\n let counter = 0;\n for (let i = secondViewCopyLength; i >= 0; i--, counter++) {\n value = firstViewCopy[firstViewCopyLength - counter] - secondViewCopy[secondViewCopyLength - counter] - b;\n switch (true) {\n case (value < 0):\n b = 1;\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\n break;\n default:\n b = 0;\n firstViewCopy[firstViewCopyLength - counter] = value;\n }\n }\n if (b > 0) {\n for (let i = (firstViewCopyLength - secondViewCopyLength + 1); i >= 0; i--, counter++) {\n value = firstViewCopy[firstViewCopyLength - counter] - b;\n if (value < 0) {\n b = 1;\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\n }\n else {\n b = 0;\n firstViewCopy[firstViewCopyLength - counter] = value;\n break;\n }\n }\n }\n return firstViewCopy.slice();\n}\nclass LocalIntegerValueBlock extends HexBlock(ValueBlock) {\n setValueHex() {\n if (this.valueHexView.length >= 4) {\n this.warnings.push(\"Too big Integer for decoding, hex only\");\n this.isHexOnly = true;\n this._valueDec = 0;\n }\n else {\n this.isHexOnly = false;\n if (this.valueHexView.length > 0) {\n this._valueDec = pvutils.utilDecodeTC.call(this);\n }\n }\n }\n constructor({ value, ...parameters } = {}) {\n super(parameters);\n this._valueDec = 0;\n if (parameters.valueHex) {\n this.setValueHex();\n }\n if (value !== undefined) {\n this.valueDec = value;\n }\n }\n set valueDec(v) {\n this._valueDec = v;\n this.isHexOnly = false;\n this.valueHexView = new Uint8Array(pvutils.utilEncodeTC(v));\n }\n get valueDec() {\n return this._valueDec;\n }\n fromDER(inputBuffer, inputOffset, inputLength, expectedLength = 0) {\n const offset = this.fromBER(inputBuffer, inputOffset, inputLength);\n if (offset === -1)\n return offset;\n const view = this.valueHexView;\n if ((view[0] === 0x00) && ((view[1] & 0x80) !== 0)) {\n this.valueHexView = view.subarray(1);\n }\n else {\n if (expectedLength !== 0) {\n if (view.length < expectedLength) {\n if ((expectedLength - view.length) > 1)\n expectedLength = view.length + 1;\n this.valueHexView = view.subarray(expectedLength - view.length);\n }\n }\n }\n return offset;\n }\n toDER(sizeOnly = false) {\n const view = this.valueHexView;\n switch (true) {\n case ((view[0] & 0x80) !== 0):\n {\n const updatedView = new Uint8Array(this.valueHexView.length + 1);\n updatedView[0] = 0x00;\n updatedView.set(view, 1);\n this.valueHexView = updatedView;\n }\n break;\n case ((view[0] === 0x00) && ((view[1] & 0x80) === 0)):\n {\n this.valueHexView = this.valueHexView.subarray(1);\n }\n break;\n }\n return this.toBER(sizeOnly);\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\n if (resultOffset === -1) {\n return resultOffset;\n }\n this.setValueHex();\n return resultOffset;\n }\n toBER(sizeOnly) {\n return sizeOnly\n ? new ArrayBuffer(this.valueHexView.length)\n : this.valueHexView.slice().buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n valueDec: this.valueDec,\n };\n }\n toString() {\n const firstBit = (this.valueHexView.length * 8) - 1;\n let digits = new Uint8Array((this.valueHexView.length * 8) / 3);\n let bitNumber = 0;\n let currentByte;\n const asn1View = this.valueHexView;\n let result = \"\";\n let flag = false;\n for (let byteNumber = (asn1View.byteLength - 1); byteNumber >= 0; byteNumber--) {\n currentByte = asn1View[byteNumber];\n for (let i = 0; i < 8; i++) {\n if ((currentByte & 1) === 1) {\n switch (bitNumber) {\n case firstBit:\n digits = viewSub(power2(bitNumber), digits);\n result = \"-\";\n break;\n default:\n digits = viewAdd(digits, power2(bitNumber));\n }\n }\n bitNumber++;\n currentByte >>= 1;\n }\n }\n for (let i = 0; i < digits.length; i++) {\n if (digits[i])\n flag = true;\n if (flag)\n result += digitsString.charAt(digits[i]);\n }\n if (flag === false)\n result += digitsString.charAt(0);\n return result;\n }\n}\n_a$p = LocalIntegerValueBlock;\nLocalIntegerValueBlock.NAME = \"IntegerValueBlock\";\n(() => {\n Object.defineProperty(_a$p.prototype, \"valueHex\", {\n set: function (v) {\n this.valueHexView = new Uint8Array(v);\n this.setValueHex();\n },\n get: function () {\n return this.valueHexView.slice().buffer;\n },\n });\n})();\n\nvar _a$o;\nclass Integer extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalIntegerValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 2;\n }\n toBigInt() {\n assertBigInt();\n return BigInt(this.valueBlock.toString());\n }\n static fromBigInt(value) {\n assertBigInt();\n const bigIntValue = BigInt(value);\n const writer = new ViewWriter();\n const hex = bigIntValue.toString(16).replace(/^-/, \"\");\n const view = new Uint8Array(pvtsutils.Convert.FromHex(hex));\n if (bigIntValue < 0) {\n const first = new Uint8Array(view.length + (view[0] & 0x80 ? 1 : 0));\n first[0] |= 0x80;\n const firstInt = BigInt(`0x${pvtsutils.Convert.ToHex(first)}`);\n const secondInt = firstInt + bigIntValue;\n const second = pvtsutils.BufferSourceConverter.toUint8Array(pvtsutils.Convert.FromHex(secondInt.toString(16)));\n second[0] |= 0x80;\n writer.write(second);\n }\n else {\n if (view[0] & 0x80) {\n writer.write(new Uint8Array([0]));\n }\n writer.write(view);\n }\n const res = new _a$o({ valueHex: writer.final() });\n return res;\n }\n convertToDER() {\n const integer = new _a$o({ valueHex: this.valueBlock.valueHexView });\n integer.valueBlock.toDER();\n return integer;\n }\n convertFromDER() {\n return new _a$o({\n valueHex: this.valueBlock.valueHexView[0] === 0\n ? this.valueBlock.valueHexView.subarray(1)\n : this.valueBlock.valueHexView,\n });\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.valueBlock.toString()}`;\n }\n}\n_a$o = Integer;\n(() => {\n typeStore.Integer = _a$o;\n})();\nInteger.NAME = \"INTEGER\";\n\nvar _a$n;\nclass Enumerated extends Integer {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 10;\n }\n}\n_a$n = Enumerated;\n(() => {\n typeStore.Enumerated = _a$n;\n})();\nEnumerated.NAME = \"ENUMERATED\";\n\nclass LocalSidValueBlock extends HexBlock(ValueBlock) {\n constructor({ valueDec = -1, isFirstSid = false, ...parameters } = {}) {\n super(parameters);\n this.valueDec = valueDec;\n this.isFirstSid = isFirstSid;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (!inputLength) {\n return inputOffset;\n }\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n this.valueHexView = new Uint8Array(inputLength);\n for (let i = 0; i < inputLength; i++) {\n this.valueHexView[i] = intBuffer[i] & 0x7F;\n this.blockLength++;\n if ((intBuffer[i] & 0x80) === 0x00)\n break;\n }\n const tempView = new Uint8Array(this.blockLength);\n for (let i = 0; i < this.blockLength; i++) {\n tempView[i] = this.valueHexView[i];\n }\n this.valueHexView = tempView;\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n if (this.valueHexView[0] === 0x00)\n this.warnings.push(\"Needlessly long format of SID encoding\");\n if (this.blockLength <= 8)\n this.valueDec = pvutils.utilFromBase(this.valueHexView, 7);\n else {\n this.isHexOnly = true;\n this.warnings.push(\"Too big SID for decoding, hex only\");\n }\n return (inputOffset + this.blockLength);\n }\n set valueBigInt(value) {\n assertBigInt();\n let bits = BigInt(value).toString(2);\n while (bits.length % 7) {\n bits = \"0\" + bits;\n }\n const bytes = new Uint8Array(bits.length / 7);\n for (let i = 0; i < bytes.length; i++) {\n bytes[i] = parseInt(bits.slice(i * 7, i * 7 + 7), 2) + (i + 1 < bytes.length ? 0x80 : 0);\n }\n this.fromBER(bytes.buffer, 0, bytes.length);\n }\n toBER(sizeOnly) {\n if (this.isHexOnly) {\n if (sizeOnly)\n return (new ArrayBuffer(this.valueHexView.byteLength));\n const curView = this.valueHexView;\n const retView = new Uint8Array(this.blockLength);\n for (let i = 0; i < (this.blockLength - 1); i++)\n retView[i] = curView[i] | 0x80;\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\n return retView.buffer;\n }\n const encodedBuf = pvutils.utilToBase(this.valueDec, 7);\n if (encodedBuf.byteLength === 0) {\n this.error = \"Error during encoding SID value\";\n return EMPTY_BUFFER;\n }\n const retView = new Uint8Array(encodedBuf.byteLength);\n if (!sizeOnly) {\n const encodedView = new Uint8Array(encodedBuf);\n const len = encodedBuf.byteLength - 1;\n for (let i = 0; i < len; i++)\n retView[i] = encodedView[i] | 0x80;\n retView[len] = encodedView[len];\n }\n return retView;\n }\n toString() {\n let result = \"\";\n if (this.isHexOnly)\n result = pvtsutils.Convert.ToHex(this.valueHexView);\n else {\n if (this.isFirstSid) {\n let sidValue = this.valueDec;\n if (this.valueDec <= 39)\n result = \"0.\";\n else {\n if (this.valueDec <= 79) {\n result = \"1.\";\n sidValue -= 40;\n }\n else {\n result = \"2.\";\n sidValue -= 80;\n }\n }\n result += sidValue.toString();\n }\n else\n result = this.valueDec.toString();\n }\n return result;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n valueDec: this.valueDec,\n isFirstSid: this.isFirstSid,\n };\n }\n}\nLocalSidValueBlock.NAME = \"sidBlock\";\n\nclass LocalObjectIdentifierValueBlock extends ValueBlock {\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\n super(parameters);\n this.value = [];\n if (value) {\n this.fromString(value);\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n let resultOffset = inputOffset;\n while (inputLength > 0) {\n const sidBlock = new LocalSidValueBlock();\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\n if (resultOffset === -1) {\n this.blockLength = 0;\n this.error = sidBlock.error;\n return resultOffset;\n }\n if (this.value.length === 0)\n sidBlock.isFirstSid = true;\n this.blockLength += sidBlock.blockLength;\n inputLength -= sidBlock.blockLength;\n this.value.push(sidBlock);\n }\n return resultOffset;\n }\n toBER(sizeOnly) {\n const retBuffers = [];\n for (let i = 0; i < this.value.length; i++) {\n const valueBuf = this.value[i].toBER(sizeOnly);\n if (valueBuf.byteLength === 0) {\n this.error = this.value[i].error;\n return EMPTY_BUFFER;\n }\n retBuffers.push(valueBuf);\n }\n return concat(retBuffers);\n }\n fromString(string) {\n this.value = [];\n let pos1 = 0;\n let pos2 = 0;\n let sid = \"\";\n let flag = false;\n do {\n pos2 = string.indexOf(\".\", pos1);\n if (pos2 === -1)\n sid = string.substring(pos1);\n else\n sid = string.substring(pos1, pos2);\n pos1 = pos2 + 1;\n if (flag) {\n const sidBlock = this.value[0];\n let plus = 0;\n switch (sidBlock.valueDec) {\n case 0:\n break;\n case 1:\n plus = 40;\n break;\n case 2:\n plus = 80;\n break;\n default:\n this.value = [];\n return;\n }\n const parsedSID = parseInt(sid, 10);\n if (isNaN(parsedSID))\n return;\n sidBlock.valueDec = parsedSID + plus;\n flag = false;\n }\n else {\n const sidBlock = new LocalSidValueBlock();\n if (sid > Number.MAX_SAFE_INTEGER) {\n assertBigInt();\n const sidValue = BigInt(sid);\n sidBlock.valueBigInt = sidValue;\n }\n else {\n sidBlock.valueDec = parseInt(sid, 10);\n if (isNaN(sidBlock.valueDec))\n return;\n }\n if (!this.value.length) {\n sidBlock.isFirstSid = true;\n flag = true;\n }\n this.value.push(sidBlock);\n }\n } while (pos2 !== -1);\n }\n toString() {\n let result = \"\";\n let isHexOnly = false;\n for (let i = 0; i < this.value.length; i++) {\n isHexOnly = this.value[i].isHexOnly;\n let sidStr = this.value[i].toString();\n if (i !== 0)\n result = `${result}.`;\n if (isHexOnly) {\n sidStr = `{${sidStr}}`;\n if (this.value[i].isFirstSid)\n result = `2.{${sidStr} - 80}`;\n else\n result += sidStr;\n }\n else\n result += sidStr;\n }\n return result;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n value: this.toString(),\n sidArray: [],\n };\n for (let i = 0; i < this.value.length; i++) {\n object.sidArray.push(this.value[i].toJSON());\n }\n return object;\n }\n}\nLocalObjectIdentifierValueBlock.NAME = \"ObjectIdentifierValueBlock\";\n\nvar _a$m;\nclass ObjectIdentifier extends BaseBlock {\n getValue() {\n return this.valueBlock.toString();\n }\n setValue(value) {\n this.valueBlock.fromString(value);\n }\n constructor(parameters = {}) {\n super(parameters, LocalObjectIdentifierValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 6;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.getValue(),\n };\n }\n}\n_a$m = ObjectIdentifier;\n(() => {\n typeStore.ObjectIdentifier = _a$m;\n})();\nObjectIdentifier.NAME = \"OBJECT IDENTIFIER\";\n\nclass LocalRelativeSidValueBlock extends HexBlock(LocalBaseBlock) {\n constructor({ valueDec = 0, ...parameters } = {}) {\n super(parameters);\n this.valueDec = valueDec;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (inputLength === 0)\n return inputOffset;\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength))\n return -1;\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n this.valueHexView = new Uint8Array(inputLength);\n for (let i = 0; i < inputLength; i++) {\n this.valueHexView[i] = intBuffer[i] & 0x7F;\n this.blockLength++;\n if ((intBuffer[i] & 0x80) === 0x00)\n break;\n }\n const tempView = new Uint8Array(this.blockLength);\n for (let i = 0; i < this.blockLength; i++)\n tempView[i] = this.valueHexView[i];\n this.valueHexView = tempView;\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n if (this.valueHexView[0] === 0x00)\n this.warnings.push(\"Needlessly long format of SID encoding\");\n if (this.blockLength <= 8)\n this.valueDec = pvutils.utilFromBase(this.valueHexView, 7);\n else {\n this.isHexOnly = true;\n this.warnings.push(\"Too big SID for decoding, hex only\");\n }\n return (inputOffset + this.blockLength);\n }\n toBER(sizeOnly) {\n if (this.isHexOnly) {\n if (sizeOnly)\n return (new ArrayBuffer(this.valueHexView.byteLength));\n const curView = this.valueHexView;\n const retView = new Uint8Array(this.blockLength);\n for (let i = 0; i < (this.blockLength - 1); i++)\n retView[i] = curView[i] | 0x80;\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\n return retView.buffer;\n }\n const encodedBuf = pvutils.utilToBase(this.valueDec, 7);\n if (encodedBuf.byteLength === 0) {\n this.error = \"Error during encoding SID value\";\n return EMPTY_BUFFER;\n }\n const retView = new Uint8Array(encodedBuf.byteLength);\n if (!sizeOnly) {\n const encodedView = new Uint8Array(encodedBuf);\n const len = encodedBuf.byteLength - 1;\n for (let i = 0; i < len; i++)\n retView[i] = encodedView[i] | 0x80;\n retView[len] = encodedView[len];\n }\n return retView.buffer;\n }\n toString() {\n let result = \"\";\n if (this.isHexOnly)\n result = pvtsutils.Convert.ToHex(this.valueHexView);\n else {\n result = this.valueDec.toString();\n }\n return result;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n valueDec: this.valueDec,\n };\n }\n}\nLocalRelativeSidValueBlock.NAME = \"relativeSidBlock\";\n\nclass LocalRelativeObjectIdentifierValueBlock extends ValueBlock {\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\n super(parameters);\n this.value = [];\n if (value) {\n this.fromString(value);\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n let resultOffset = inputOffset;\n while (inputLength > 0) {\n const sidBlock = new LocalRelativeSidValueBlock();\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\n if (resultOffset === -1) {\n this.blockLength = 0;\n this.error = sidBlock.error;\n return resultOffset;\n }\n this.blockLength += sidBlock.blockLength;\n inputLength -= sidBlock.blockLength;\n this.value.push(sidBlock);\n }\n return resultOffset;\n }\n toBER(sizeOnly, _writer) {\n const retBuffers = [];\n for (let i = 0; i < this.value.length; i++) {\n const valueBuf = this.value[i].toBER(sizeOnly);\n if (valueBuf.byteLength === 0) {\n this.error = this.value[i].error;\n return EMPTY_BUFFER;\n }\n retBuffers.push(valueBuf);\n }\n return concat(retBuffers);\n }\n fromString(string) {\n this.value = [];\n let pos1 = 0;\n let pos2 = 0;\n let sid = \"\";\n do {\n pos2 = string.indexOf(\".\", pos1);\n if (pos2 === -1)\n sid = string.substring(pos1);\n else\n sid = string.substring(pos1, pos2);\n pos1 = pos2 + 1;\n const sidBlock = new LocalRelativeSidValueBlock();\n sidBlock.valueDec = parseInt(sid, 10);\n if (isNaN(sidBlock.valueDec))\n return true;\n this.value.push(sidBlock);\n } while (pos2 !== -1);\n return true;\n }\n toString() {\n let result = \"\";\n let isHexOnly = false;\n for (let i = 0; i < this.value.length; i++) {\n isHexOnly = this.value[i].isHexOnly;\n let sidStr = this.value[i].toString();\n if (i !== 0)\n result = `${result}.`;\n if (isHexOnly) {\n sidStr = `{${sidStr}}`;\n result += sidStr;\n }\n else\n result += sidStr;\n }\n return result;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n value: this.toString(),\n sidArray: [],\n };\n for (let i = 0; i < this.value.length; i++)\n object.sidArray.push(this.value[i].toJSON());\n return object;\n }\n}\nLocalRelativeObjectIdentifierValueBlock.NAME = \"RelativeObjectIdentifierValueBlock\";\n\nvar _a$l;\nclass RelativeObjectIdentifier extends BaseBlock {\n getValue() {\n return this.valueBlock.toString();\n }\n setValue(value) {\n this.valueBlock.fromString(value);\n }\n constructor(parameters = {}) {\n super(parameters, LocalRelativeObjectIdentifierValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 13;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.getValue(),\n };\n }\n}\n_a$l = RelativeObjectIdentifier;\n(() => {\n typeStore.RelativeObjectIdentifier = _a$l;\n})();\nRelativeObjectIdentifier.NAME = \"RelativeObjectIdentifier\";\n\nvar _a$k;\nclass Sequence extends Constructed {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 16;\n }\n}\n_a$k = Sequence;\n(() => {\n typeStore.Sequence = _a$k;\n})();\nSequence.NAME = \"SEQUENCE\";\n\nvar _a$j;\nclass Set extends Constructed {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 17;\n }\n}\n_a$j = Set;\n(() => {\n typeStore.Set = _a$j;\n})();\nSet.NAME = \"SET\";\n\nclass LocalStringValueBlock extends HexBlock(ValueBlock) {\n constructor({ ...parameters } = {}) {\n super(parameters);\n this.isHexOnly = true;\n this.value = EMPTY_STRING;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.value,\n };\n }\n}\nLocalStringValueBlock.NAME = \"StringValueBlock\";\n\nclass LocalSimpleStringValueBlock extends LocalStringValueBlock {\n}\nLocalSimpleStringValueBlock.NAME = \"SimpleStringValueBlock\";\n\nclass LocalSimpleStringBlock extends BaseStringBlock {\n constructor({ ...parameters } = {}) {\n super(parameters, LocalSimpleStringValueBlock);\n }\n fromBuffer(inputBuffer) {\n this.valueBlock.value = String.fromCharCode.apply(null, pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer));\n }\n fromString(inputString) {\n const strLen = inputString.length;\n const view = this.valueBlock.valueHexView = new Uint8Array(strLen);\n for (let i = 0; i < strLen; i++)\n view[i] = inputString.charCodeAt(i);\n this.valueBlock.value = inputString;\n }\n}\nLocalSimpleStringBlock.NAME = \"SIMPLE STRING\";\n\nclass LocalUtf8StringValueBlock extends LocalSimpleStringBlock {\n fromBuffer(inputBuffer) {\n this.valueBlock.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n try {\n this.valueBlock.value = pvtsutils.Convert.ToUtf8String(inputBuffer);\n }\n catch (ex) {\n this.warnings.push(`Error during \"decodeURIComponent\": ${ex}, using raw string`);\n this.valueBlock.value = pvtsutils.Convert.ToBinary(inputBuffer);\n }\n }\n fromString(inputString) {\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils.Convert.FromUtf8String(inputString));\n this.valueBlock.value = inputString;\n }\n}\nLocalUtf8StringValueBlock.NAME = \"Utf8StringValueBlock\";\n\nvar _a$i;\nclass Utf8String extends LocalUtf8StringValueBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 12;\n }\n}\n_a$i = Utf8String;\n(() => {\n typeStore.Utf8String = _a$i;\n})();\nUtf8String.NAME = \"UTF8String\";\n\nclass LocalBmpStringValueBlock extends LocalSimpleStringBlock {\n fromBuffer(inputBuffer) {\n this.valueBlock.value = pvtsutils.Convert.ToUtf16String(inputBuffer);\n this.valueBlock.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n }\n fromString(inputString) {\n this.valueBlock.value = inputString;\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils.Convert.FromUtf16String(inputString));\n }\n}\nLocalBmpStringValueBlock.NAME = \"BmpStringValueBlock\";\n\nvar _a$h;\nclass BmpString extends LocalBmpStringValueBlock {\n constructor({ ...parameters } = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 30;\n }\n}\n_a$h = BmpString;\n(() => {\n typeStore.BmpString = _a$h;\n})();\nBmpString.NAME = \"BMPString\";\n\nclass LocalUniversalStringValueBlock extends LocalSimpleStringBlock {\n fromBuffer(inputBuffer) {\n const copyBuffer = ArrayBuffer.isView(inputBuffer) ? inputBuffer.slice().buffer : inputBuffer.slice(0);\n const valueView = new Uint8Array(copyBuffer);\n for (let i = 0; i < valueView.length; i += 4) {\n valueView[i] = valueView[i + 3];\n valueView[i + 1] = valueView[i + 2];\n valueView[i + 2] = 0x00;\n valueView[i + 3] = 0x00;\n }\n this.valueBlock.value = String.fromCharCode.apply(null, new Uint32Array(copyBuffer));\n }\n fromString(inputString) {\n const strLength = inputString.length;\n const valueHexView = this.valueBlock.valueHexView = new Uint8Array(strLength * 4);\n for (let i = 0; i < strLength; i++) {\n const codeBuf = pvutils.utilToBase(inputString.charCodeAt(i), 8);\n const codeView = new Uint8Array(codeBuf);\n if (codeView.length > 4)\n continue;\n const dif = 4 - codeView.length;\n for (let j = (codeView.length - 1); j >= 0; j--)\n valueHexView[i * 4 + j + dif] = codeView[j];\n }\n this.valueBlock.value = inputString;\n }\n}\nLocalUniversalStringValueBlock.NAME = \"UniversalStringValueBlock\";\n\nvar _a$g;\nclass UniversalString extends LocalUniversalStringValueBlock {\n constructor({ ...parameters } = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 28;\n }\n}\n_a$g = UniversalString;\n(() => {\n typeStore.UniversalString = _a$g;\n})();\nUniversalString.NAME = \"UniversalString\";\n\nvar _a$f;\nclass NumericString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 18;\n }\n}\n_a$f = NumericString;\n(() => {\n typeStore.NumericString = _a$f;\n})();\nNumericString.NAME = \"NumericString\";\n\nvar _a$e;\nclass PrintableString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 19;\n }\n}\n_a$e = PrintableString;\n(() => {\n typeStore.PrintableString = _a$e;\n})();\nPrintableString.NAME = \"PrintableString\";\n\nvar _a$d;\nclass TeletexString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 20;\n }\n}\n_a$d = TeletexString;\n(() => {\n typeStore.TeletexString = _a$d;\n})();\nTeletexString.NAME = \"TeletexString\";\n\nvar _a$c;\nclass VideotexString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 21;\n }\n}\n_a$c = VideotexString;\n(() => {\n typeStore.VideotexString = _a$c;\n})();\nVideotexString.NAME = \"VideotexString\";\n\nvar _a$b;\nclass IA5String extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 22;\n }\n}\n_a$b = IA5String;\n(() => {\n typeStore.IA5String = _a$b;\n})();\nIA5String.NAME = \"IA5String\";\n\nvar _a$a;\nclass GraphicString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 25;\n }\n}\n_a$a = GraphicString;\n(() => {\n typeStore.GraphicString = _a$a;\n})();\nGraphicString.NAME = \"GraphicString\";\n\nvar _a$9;\nclass VisibleString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 26;\n }\n}\n_a$9 = VisibleString;\n(() => {\n typeStore.VisibleString = _a$9;\n})();\nVisibleString.NAME = \"VisibleString\";\n\nvar _a$8;\nclass GeneralString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 27;\n }\n}\n_a$8 = GeneralString;\n(() => {\n typeStore.GeneralString = _a$8;\n})();\nGeneralString.NAME = \"GeneralString\";\n\nvar _a$7;\nclass CharacterString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 29;\n }\n}\n_a$7 = CharacterString;\n(() => {\n typeStore.CharacterString = _a$7;\n})();\nCharacterString.NAME = \"CharacterString\";\n\nvar _a$6;\nclass UTCTime extends VisibleString {\n constructor({ value, valueDate, ...parameters } = {}) {\n super(parameters);\n this.year = 0;\n this.month = 0;\n this.day = 0;\n this.hour = 0;\n this.minute = 0;\n this.second = 0;\n if (value) {\n this.fromString(value);\n this.valueBlock.valueHexView = new Uint8Array(value.length);\n for (let i = 0; i < value.length; i++)\n this.valueBlock.valueHexView[i] = value.charCodeAt(i);\n }\n if (valueDate) {\n this.fromDate(valueDate);\n this.valueBlock.valueHexView = new Uint8Array(this.toBuffer());\n }\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 23;\n }\n fromBuffer(inputBuffer) {\n this.fromString(String.fromCharCode.apply(null, pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer)));\n }\n toBuffer() {\n const str = this.toString();\n const buffer = new ArrayBuffer(str.length);\n const view = new Uint8Array(buffer);\n for (let i = 0; i < str.length; i++)\n view[i] = str.charCodeAt(i);\n return buffer;\n }\n fromDate(inputDate) {\n this.year = inputDate.getUTCFullYear();\n this.month = inputDate.getUTCMonth() + 1;\n this.day = inputDate.getUTCDate();\n this.hour = inputDate.getUTCHours();\n this.minute = inputDate.getUTCMinutes();\n this.second = inputDate.getUTCSeconds();\n }\n toDate() {\n return (new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second)));\n }\n fromString(inputString) {\n const parser = /(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})Z/ig;\n const parserArray = parser.exec(inputString);\n if (parserArray === null) {\n this.error = \"Wrong input string for conversion\";\n return;\n }\n const year = parseInt(parserArray[1], 10);\n if (year >= 50)\n this.year = 1900 + year;\n else\n this.year = 2000 + year;\n this.month = parseInt(parserArray[2], 10);\n this.day = parseInt(parserArray[3], 10);\n this.hour = parseInt(parserArray[4], 10);\n this.minute = parseInt(parserArray[5], 10);\n this.second = parseInt(parserArray[6], 10);\n }\n toString(encoding = \"iso\") {\n if (encoding === \"iso\") {\n const outputArray = new Array(7);\n outputArray[0] = pvutils.padNumber(((this.year < 2000) ? (this.year - 1900) : (this.year - 2000)), 2);\n outputArray[1] = pvutils.padNumber(this.month, 2);\n outputArray[2] = pvutils.padNumber(this.day, 2);\n outputArray[3] = pvutils.padNumber(this.hour, 2);\n outputArray[4] = pvutils.padNumber(this.minute, 2);\n outputArray[5] = pvutils.padNumber(this.second, 2);\n outputArray[6] = \"Z\";\n return outputArray.join(\"\");\n }\n return super.toString(encoding);\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.toDate().toISOString()}`;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n year: this.year,\n month: this.month,\n day: this.day,\n hour: this.hour,\n minute: this.minute,\n second: this.second,\n };\n }\n}\n_a$6 = UTCTime;\n(() => {\n typeStore.UTCTime = _a$6;\n})();\nUTCTime.NAME = \"UTCTime\";\n\nvar _a$5;\nclass GeneralizedTime extends UTCTime {\n constructor(parameters = {}) {\n var _b;\n super(parameters);\n (_b = this.millisecond) !== null && _b !== void 0 ? _b : (this.millisecond = 0);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 24;\n }\n fromDate(inputDate) {\n super.fromDate(inputDate);\n this.millisecond = inputDate.getUTCMilliseconds();\n }\n toDate() {\n const utcDate = Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond);\n return (new Date(utcDate));\n }\n fromString(inputString) {\n let isUTC = false;\n let timeString = \"\";\n let dateTimeString = \"\";\n let fractionPart = 0;\n let parser;\n let hourDifference = 0;\n let minuteDifference = 0;\n if (inputString[inputString.length - 1] === \"Z\") {\n timeString = inputString.substring(0, inputString.length - 1);\n isUTC = true;\n }\n else {\n const number = new Number(inputString[inputString.length - 1]);\n if (isNaN(number.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n timeString = inputString;\n }\n if (isUTC) {\n if (timeString.indexOf(\"+\") !== -1)\n throw new Error(\"Wrong input string for conversion\");\n if (timeString.indexOf(\"-\") !== -1)\n throw new Error(\"Wrong input string for conversion\");\n }\n else {\n let multiplier = 1;\n let differencePosition = timeString.indexOf(\"+\");\n let differenceString = \"\";\n if (differencePosition === -1) {\n differencePosition = timeString.indexOf(\"-\");\n multiplier = -1;\n }\n if (differencePosition !== -1) {\n differenceString = timeString.substring(differencePosition + 1);\n timeString = timeString.substring(0, differencePosition);\n if ((differenceString.length !== 2) && (differenceString.length !== 4))\n throw new Error(\"Wrong input string for conversion\");\n let number = parseInt(differenceString.substring(0, 2), 10);\n if (isNaN(number.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n hourDifference = multiplier * number;\n if (differenceString.length === 4) {\n number = parseInt(differenceString.substring(2, 4), 10);\n if (isNaN(number.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n minuteDifference = multiplier * number;\n }\n }\n }\n let fractionPointPosition = timeString.indexOf(\".\");\n if (fractionPointPosition === -1)\n fractionPointPosition = timeString.indexOf(\",\");\n if (fractionPointPosition !== -1) {\n const fractionPartCheck = new Number(`0${timeString.substring(fractionPointPosition)}`);\n if (isNaN(fractionPartCheck.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n fractionPart = fractionPartCheck.valueOf();\n dateTimeString = timeString.substring(0, fractionPointPosition);\n }\n else\n dateTimeString = timeString;\n switch (true) {\n case (dateTimeString.length === 8):\n parser = /(\\d{4})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1)\n throw new Error(\"Wrong input string for conversion\");\n break;\n case (dateTimeString.length === 10):\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1) {\n let fractionResult = 60 * fractionPart;\n this.minute = Math.floor(fractionResult);\n fractionResult = 60 * (fractionResult - this.minute);\n this.second = Math.floor(fractionResult);\n fractionResult = 1000 * (fractionResult - this.second);\n this.millisecond = Math.floor(fractionResult);\n }\n break;\n case (dateTimeString.length === 12):\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1) {\n let fractionResult = 60 * fractionPart;\n this.second = Math.floor(fractionResult);\n fractionResult = 1000 * (fractionResult - this.second);\n this.millisecond = Math.floor(fractionResult);\n }\n break;\n case (dateTimeString.length === 14):\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1) {\n const fractionResult = 1000 * fractionPart;\n this.millisecond = Math.floor(fractionResult);\n }\n break;\n default:\n throw new Error(\"Wrong input string for conversion\");\n }\n const parserArray = parser.exec(dateTimeString);\n if (parserArray === null)\n throw new Error(\"Wrong input string for conversion\");\n for (let j = 1; j < parserArray.length; j++) {\n switch (j) {\n case 1:\n this.year = parseInt(parserArray[j], 10);\n break;\n case 2:\n this.month = parseInt(parserArray[j], 10);\n break;\n case 3:\n this.day = parseInt(parserArray[j], 10);\n break;\n case 4:\n this.hour = parseInt(parserArray[j], 10) + hourDifference;\n break;\n case 5:\n this.minute = parseInt(parserArray[j], 10) + minuteDifference;\n break;\n case 6:\n this.second = parseInt(parserArray[j], 10);\n break;\n default:\n throw new Error(\"Wrong input string for conversion\");\n }\n }\n if (isUTC === false) {\n const tempDate = new Date(this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n this.year = tempDate.getUTCFullYear();\n this.month = tempDate.getUTCMonth();\n this.day = tempDate.getUTCDay();\n this.hour = tempDate.getUTCHours();\n this.minute = tempDate.getUTCMinutes();\n this.second = tempDate.getUTCSeconds();\n this.millisecond = tempDate.getUTCMilliseconds();\n }\n }\n toString(encoding = \"iso\") {\n if (encoding === \"iso\") {\n const outputArray = [];\n outputArray.push(pvutils.padNumber(this.year, 4));\n outputArray.push(pvutils.padNumber(this.month, 2));\n outputArray.push(pvutils.padNumber(this.day, 2));\n outputArray.push(pvutils.padNumber(this.hour, 2));\n outputArray.push(pvutils.padNumber(this.minute, 2));\n outputArray.push(pvutils.padNumber(this.second, 2));\n if (this.millisecond !== 0) {\n outputArray.push(\".\");\n outputArray.push(pvutils.padNumber(this.millisecond, 3));\n }\n outputArray.push(\"Z\");\n return outputArray.join(\"\");\n }\n return super.toString(encoding);\n }\n toJSON() {\n return {\n ...super.toJSON(),\n millisecond: this.millisecond,\n };\n }\n}\n_a$5 = GeneralizedTime;\n(() => {\n typeStore.GeneralizedTime = _a$5;\n})();\nGeneralizedTime.NAME = \"GeneralizedTime\";\n\nvar _a$4;\nclass DATE extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 31;\n }\n}\n_a$4 = DATE;\n(() => {\n typeStore.DATE = _a$4;\n})();\nDATE.NAME = \"DATE\";\n\nvar _a$3;\nclass TimeOfDay extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 32;\n }\n}\n_a$3 = TimeOfDay;\n(() => {\n typeStore.TimeOfDay = _a$3;\n})();\nTimeOfDay.NAME = \"TimeOfDay\";\n\nvar _a$2;\nclass DateTime extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 33;\n }\n}\n_a$2 = DateTime;\n(() => {\n typeStore.DateTime = _a$2;\n})();\nDateTime.NAME = \"DateTime\";\n\nvar _a$1;\nclass Duration extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 34;\n }\n}\n_a$1 = Duration;\n(() => {\n typeStore.Duration = _a$1;\n})();\nDuration.NAME = \"Duration\";\n\nvar _a;\nclass TIME extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 14;\n }\n}\n_a = TIME;\n(() => {\n typeStore.TIME = _a;\n})();\nTIME.NAME = \"TIME\";\n\nclass Any {\n constructor({ name = EMPTY_STRING, optional = false } = {}) {\n this.name = name;\n this.optional = optional;\n }\n}\n\nclass Choice extends Any {\n constructor({ value = [], ...parameters } = {}) {\n super(parameters);\n this.value = value;\n }\n}\n\nclass Repeated extends Any {\n constructor({ value = new Any(), local = false, ...parameters } = {}) {\n super(parameters);\n this.value = value;\n this.local = local;\n }\n}\n\nclass RawData {\n get data() {\n return this.dataView.slice().buffer;\n }\n set data(value) {\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(value);\n }\n constructor({ data = EMPTY_VIEW } = {}) {\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(data);\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const endLength = inputOffset + inputLength;\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer).subarray(inputOffset, endLength);\n return endLength;\n }\n toBER(_sizeOnly) {\n return this.dataView.slice().buffer;\n }\n}\n\nfunction compareSchema(root, inputData, inputSchema) {\n if (inputSchema instanceof Choice) {\n for (const element of inputSchema.value) {\n const result = compareSchema(root, inputData, element);\n if (result.verified) {\n return {\n verified: true,\n result: root,\n };\n }\n }\n {\n const _result = {\n verified: false,\n result: { error: \"Wrong values for Choice type\" },\n };\n if (inputSchema.hasOwnProperty(NAME))\n _result.name = inputSchema.name;\n return _result;\n }\n }\n if (inputSchema instanceof Any) {\n if (inputSchema.hasOwnProperty(NAME))\n root[inputSchema.name] = inputData;\n return {\n verified: true,\n result: root,\n };\n }\n if ((root instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong root object\" },\n };\n }\n if ((inputData instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 data\" },\n };\n }\n if ((inputSchema instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if ((ID_BLOCK in inputSchema) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if ((FROM_BER in inputSchema.idBlock) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if ((TO_BER in inputSchema.idBlock) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n const encodedId = inputSchema.idBlock.toBER(false);\n if (encodedId.byteLength === 0) {\n return {\n verified: false,\n result: { error: \"Error encoding idBlock for ASN.1 schema\" },\n };\n }\n const decodedOffset = inputSchema.idBlock.fromBER(encodedId, 0, encodedId.byteLength);\n if (decodedOffset === -1) {\n return {\n verified: false,\n result: { error: \"Error decoding idBlock for ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.hasOwnProperty(TAG_CLASS) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.tagClass !== inputData.idBlock.tagClass) {\n return {\n verified: false,\n result: root,\n };\n }\n if (inputSchema.idBlock.hasOwnProperty(TAG_NUMBER) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.tagNumber !== inputData.idBlock.tagNumber) {\n return {\n verified: false,\n result: root,\n };\n }\n if (inputSchema.idBlock.hasOwnProperty(IS_CONSTRUCTED) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.isConstructed !== inputData.idBlock.isConstructed) {\n return {\n verified: false,\n result: root,\n };\n }\n if (!(IS_HEX_ONLY in inputSchema.idBlock)) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.isHexOnly !== inputData.idBlock.isHexOnly) {\n return {\n verified: false,\n result: root,\n };\n }\n if (inputSchema.idBlock.isHexOnly) {\n if ((VALUE_HEX_VIEW in inputSchema.idBlock) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n const schemaView = inputSchema.idBlock.valueHexView;\n const asn1View = inputData.idBlock.valueHexView;\n if (schemaView.length !== asn1View.length) {\n return {\n verified: false,\n result: root,\n };\n }\n for (let i = 0; i < schemaView.length; i++) {\n if (schemaView[i] !== asn1View[1]) {\n return {\n verified: false,\n result: root,\n };\n }\n }\n }\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n root[inputSchema.name] = inputData;\n }\n if (inputSchema instanceof typeStore.Constructed) {\n let admission = 0;\n let result = {\n verified: false,\n result: { error: \"Unknown error\" },\n };\n let maxLength = inputSchema.valueBlock.value.length;\n if (maxLength > 0) {\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\n maxLength = inputData.valueBlock.value.length;\n }\n }\n if (maxLength === 0) {\n return {\n verified: true,\n result: root,\n };\n }\n if ((inputData.valueBlock.value.length === 0)\n && (inputSchema.valueBlock.value.length !== 0)) {\n let _optional = true;\n for (let i = 0; i < inputSchema.valueBlock.value.length; i++)\n _optional = _optional && (inputSchema.valueBlock.value[i].optional || false);\n if (_optional) {\n return {\n verified: true,\n result: root,\n };\n }\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n delete root[inputSchema.name];\n }\n root.error = \"Inconsistent object length\";\n return {\n verified: false,\n result: root,\n };\n }\n for (let i = 0; i < maxLength; i++) {\n if ((i - admission) >= inputData.valueBlock.value.length) {\n if (inputSchema.valueBlock.value[i].optional === false) {\n const _result = {\n verified: false,\n result: root,\n };\n root.error = \"Inconsistent length between ASN.1 data and schema\";\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name) {\n delete root[inputSchema.name];\n _result.name = inputSchema.name;\n }\n }\n return _result;\n }\n }\n else {\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\n result = compareSchema(root, inputData.valueBlock.value[i], inputSchema.valueBlock.value[0].value);\n if (result.verified === false) {\n if (inputSchema.valueBlock.value[0].optional)\n admission++;\n else {\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n delete root[inputSchema.name];\n }\n return result;\n }\n }\n if ((NAME in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].name.length > 0)) {\n let arrayRoot = {};\n if ((LOCAL in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].local))\n arrayRoot = inputData;\n else\n arrayRoot = root;\n if (typeof arrayRoot[inputSchema.valueBlock.value[0].name] === \"undefined\")\n arrayRoot[inputSchema.valueBlock.value[0].name] = [];\n arrayRoot[inputSchema.valueBlock.value[0].name].push(inputData.valueBlock.value[i]);\n }\n }\n else {\n result = compareSchema(root, inputData.valueBlock.value[i - admission], inputSchema.valueBlock.value[i]);\n if (result.verified === false) {\n if (inputSchema.valueBlock.value[i].optional)\n admission++;\n else {\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n delete root[inputSchema.name];\n }\n return result;\n }\n }\n }\n }\n }\n if (result.verified === false) {\n const _result = {\n verified: false,\n result: root,\n };\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name) {\n delete root[inputSchema.name];\n _result.name = inputSchema.name;\n }\n }\n return _result;\n }\n return {\n verified: true,\n result: root,\n };\n }\n if (inputSchema.primitiveSchema\n && (VALUE_HEX_VIEW in inputData.valueBlock)) {\n const asn1 = localFromBER(inputData.valueBlock.valueHexView);\n if (asn1.offset === -1) {\n const _result = {\n verified: false,\n result: asn1.result,\n };\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name) {\n delete root[inputSchema.name];\n _result.name = inputSchema.name;\n }\n }\n return _result;\n }\n return compareSchema(root, asn1.result, inputSchema.primitiveSchema);\n }\n return {\n verified: true,\n result: root,\n };\n}\nfunction verifySchema(inputBuffer, inputSchema) {\n if ((inputSchema instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema type\" },\n };\n }\n const asn1 = localFromBER(pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer));\n if (asn1.offset === -1) {\n return {\n verified: false,\n result: asn1.result,\n };\n }\n return compareSchema(asn1.result, asn1.result, inputSchema);\n}\n\nexport { Any, BaseBlock, BaseStringBlock, BitString, BmpString, Boolean, CharacterString, Choice, Constructed, DATE, DateTime, Duration, EndOfContent, Enumerated, GeneralString, GeneralizedTime, GraphicString, HexBlock, IA5String, Integer, Null, NumericString, ObjectIdentifier, OctetString, Primitive, PrintableString, RawData, RelativeObjectIdentifier, Repeated, Sequence, Set, TIME, TeletexString, TimeOfDay, UTCTime, UniversalString, Utf8String, ValueBlock, VideotexString, ViewWriter, VisibleString, compareSchema, fromBER, verifySchema };\n","export var AsnTypeTypes;\n(function (AsnTypeTypes) {\n AsnTypeTypes[AsnTypeTypes[\"Sequence\"] = 0] = \"Sequence\";\n AsnTypeTypes[AsnTypeTypes[\"Set\"] = 1] = \"Set\";\n AsnTypeTypes[AsnTypeTypes[\"Choice\"] = 2] = \"Choice\";\n})(AsnTypeTypes || (AsnTypeTypes = {}));\nexport var AsnPropTypes;\n(function (AsnPropTypes) {\n AsnPropTypes[AsnPropTypes[\"Any\"] = 1] = \"Any\";\n AsnPropTypes[AsnPropTypes[\"Boolean\"] = 2] = \"Boolean\";\n AsnPropTypes[AsnPropTypes[\"OctetString\"] = 3] = \"OctetString\";\n AsnPropTypes[AsnPropTypes[\"BitString\"] = 4] = \"BitString\";\n AsnPropTypes[AsnPropTypes[\"Integer\"] = 5] = \"Integer\";\n AsnPropTypes[AsnPropTypes[\"Enumerated\"] = 6] = \"Enumerated\";\n AsnPropTypes[AsnPropTypes[\"ObjectIdentifier\"] = 7] = \"ObjectIdentifier\";\n AsnPropTypes[AsnPropTypes[\"Utf8String\"] = 8] = \"Utf8String\";\n AsnPropTypes[AsnPropTypes[\"BmpString\"] = 9] = \"BmpString\";\n AsnPropTypes[AsnPropTypes[\"UniversalString\"] = 10] = \"UniversalString\";\n AsnPropTypes[AsnPropTypes[\"NumericString\"] = 11] = \"NumericString\";\n AsnPropTypes[AsnPropTypes[\"PrintableString\"] = 12] = \"PrintableString\";\n AsnPropTypes[AsnPropTypes[\"TeletexString\"] = 13] = \"TeletexString\";\n AsnPropTypes[AsnPropTypes[\"VideotexString\"] = 14] = \"VideotexString\";\n AsnPropTypes[AsnPropTypes[\"IA5String\"] = 15] = \"IA5String\";\n AsnPropTypes[AsnPropTypes[\"GraphicString\"] = 16] = \"GraphicString\";\n AsnPropTypes[AsnPropTypes[\"VisibleString\"] = 17] = \"VisibleString\";\n AsnPropTypes[AsnPropTypes[\"GeneralString\"] = 18] = \"GeneralString\";\n AsnPropTypes[AsnPropTypes[\"CharacterString\"] = 19] = \"CharacterString\";\n AsnPropTypes[AsnPropTypes[\"UTCTime\"] = 20] = \"UTCTime\";\n AsnPropTypes[AsnPropTypes[\"GeneralizedTime\"] = 21] = \"GeneralizedTime\";\n AsnPropTypes[AsnPropTypes[\"DATE\"] = 22] = \"DATE\";\n AsnPropTypes[AsnPropTypes[\"TimeOfDay\"] = 23] = \"TimeOfDay\";\n AsnPropTypes[AsnPropTypes[\"DateTime\"] = 24] = \"DateTime\";\n AsnPropTypes[AsnPropTypes[\"Duration\"] = 25] = \"Duration\";\n AsnPropTypes[AsnPropTypes[\"TIME\"] = 26] = \"TIME\";\n AsnPropTypes[AsnPropTypes[\"Null\"] = 27] = \"Null\";\n})(AsnPropTypes || (AsnPropTypes = {}));\n","import * as asn1js from \"asn1js\";\nimport { BufferSourceConverter } from \"pvtsutils\";\nexport class BitString {\n constructor(params, unusedBits = 0) {\n this.unusedBits = 0;\n this.value = new ArrayBuffer(0);\n if (params) {\n if (typeof params === \"number\") {\n this.fromNumber(params);\n }\n else if (BufferSourceConverter.isBufferSource(params)) {\n this.unusedBits = unusedBits;\n this.value = BufferSourceConverter.toArrayBuffer(params);\n }\n else {\n throw TypeError(\"Unsupported type of 'params' argument for BitString\");\n }\n }\n }\n fromASN(asn) {\n if (!(asn instanceof asn1js.BitString)) {\n throw new TypeError(\"Argument 'asn' is not instance of ASN.1 BitString\");\n }\n this.unusedBits = asn.valueBlock.unusedBits;\n this.value = asn.valueBlock.valueHex;\n return this;\n }\n toASN() {\n return new asn1js.BitString({ unusedBits: this.unusedBits, valueHex: this.value });\n }\n toSchema(name) {\n return new asn1js.BitString({ name });\n }\n toNumber() {\n let res = \"\";\n const uintArray = new Uint8Array(this.value);\n for (const octet of uintArray) {\n res += octet.toString(2).padStart(8, \"0\");\n }\n res = res.split(\"\").reverse().join(\"\");\n if (this.unusedBits) {\n res = res.slice(this.unusedBits).padStart(this.unusedBits, \"0\");\n }\n return parseInt(res, 2);\n }\n fromNumber(value) {\n let bits = value.toString(2);\n const octetSize = (bits.length + 7) >> 3;\n this.unusedBits = (octetSize << 3) - bits.length;\n const octets = new Uint8Array(octetSize);\n bits = bits\n .padStart(octetSize << 3, \"0\")\n .split(\"\")\n .reverse()\n .join(\"\");\n let index = 0;\n while (index < octetSize) {\n octets[index] = parseInt(bits.slice(index << 3, (index << 3) + 8), 2);\n index++;\n }\n this.value = octets.buffer;\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { BufferSourceConverter } from \"pvtsutils\";\nexport class OctetString {\n get byteLength() {\n return this.buffer.byteLength;\n }\n get byteOffset() {\n return 0;\n }\n constructor(param) {\n if (typeof param === \"number\") {\n this.buffer = new ArrayBuffer(param);\n }\n else {\n if (BufferSourceConverter.isBufferSource(param)) {\n this.buffer = BufferSourceConverter.toArrayBuffer(param);\n }\n else if (Array.isArray(param)) {\n this.buffer = new Uint8Array(param);\n }\n else {\n this.buffer = new ArrayBuffer(0);\n }\n }\n }\n fromASN(asn) {\n if (!(asn instanceof asn1js.OctetString)) {\n throw new TypeError(\"Argument 'asn' is not instance of ASN.1 OctetString\");\n }\n this.buffer = asn.valueBlock.valueHex;\n return this;\n }\n toASN() {\n return new asn1js.OctetString({ valueHex: this.buffer });\n }\n toSchema(name) {\n return new asn1js.OctetString({ name });\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { AsnPropTypes } from \"./enums\";\nimport { OctetString } from \"./types/index\";\nexport const AsnAnyConverter = {\n fromASN: (value) => value instanceof asn1js.Null ? null : value.valueBeforeDecodeView,\n toASN: (value) => {\n if (value === null) {\n return new asn1js.Null();\n }\n const schema = asn1js.fromBER(value);\n if (schema.result.error) {\n throw new Error(schema.result.error);\n }\n return schema.result;\n },\n};\nexport const AsnIntegerConverter = {\n fromASN: (value) => value.valueBlock.valueHexView.byteLength >= 4\n ? value.valueBlock.toString()\n : value.valueBlock.valueDec,\n toASN: (value) => new asn1js.Integer({ value: +value }),\n};\nexport const AsnEnumeratedConverter = {\n fromASN: (value) => value.valueBlock.valueDec,\n toASN: (value) => new asn1js.Enumerated({ value }),\n};\nexport const AsnIntegerArrayBufferConverter = {\n fromASN: (value) => value.valueBlock.valueHexView,\n toASN: (value) => new asn1js.Integer({ valueHex: value }),\n};\nexport const AsnIntegerBigIntConverter = {\n fromASN: (value) => value.toBigInt(),\n toASN: (value) => asn1js.Integer.fromBigInt(value),\n};\nexport const AsnBitStringConverter = {\n fromASN: (value) => value.valueBlock.valueHexView,\n toASN: (value) => new asn1js.BitString({ valueHex: value }),\n};\nexport const AsnObjectIdentifierConverter = {\n fromASN: (value) => value.valueBlock.toString(),\n toASN: (value) => new asn1js.ObjectIdentifier({ value }),\n};\nexport const AsnBooleanConverter = {\n fromASN: (value) => value.valueBlock.value,\n toASN: (value) => new asn1js.Boolean({ value }),\n};\nexport const AsnOctetStringConverter = {\n fromASN: (value) => value.valueBlock.valueHexView,\n toASN: (value) => new asn1js.OctetString({ valueHex: value }),\n};\nexport const AsnConstructedOctetStringConverter = {\n fromASN: (value) => new OctetString(value.getValue()),\n toASN: (value) => value.toASN(),\n};\nfunction createStringConverter(Asn1Type) {\n return {\n fromASN: (value) => value.valueBlock.value,\n toASN: (value) => new Asn1Type({ value }),\n };\n}\nexport const AsnUtf8StringConverter = createStringConverter(asn1js.Utf8String);\nexport const AsnBmpStringConverter = createStringConverter(asn1js.BmpString);\nexport const AsnUniversalStringConverter = createStringConverter(asn1js.UniversalString);\nexport const AsnNumericStringConverter = createStringConverter(asn1js.NumericString);\nexport const AsnPrintableStringConverter = createStringConverter(asn1js.PrintableString);\nexport const AsnTeletexStringConverter = createStringConverter(asn1js.TeletexString);\nexport const AsnVideotexStringConverter = createStringConverter(asn1js.VideotexString);\nexport const AsnIA5StringConverter = createStringConverter(asn1js.IA5String);\nexport const AsnGraphicStringConverter = createStringConverter(asn1js.GraphicString);\nexport const AsnVisibleStringConverter = createStringConverter(asn1js.VisibleString);\nexport const AsnGeneralStringConverter = createStringConverter(asn1js.GeneralString);\nexport const AsnCharacterStringConverter = createStringConverter(asn1js.CharacterString);\nexport const AsnUTCTimeConverter = {\n fromASN: (value) => value.toDate(),\n toASN: (value) => new asn1js.UTCTime({ valueDate: value }),\n};\nexport const AsnGeneralizedTimeConverter = {\n fromASN: (value) => value.toDate(),\n toASN: (value) => new asn1js.GeneralizedTime({ valueDate: value }),\n};\nexport const AsnNullConverter = {\n fromASN: () => null,\n toASN: () => {\n return new asn1js.Null();\n },\n};\nexport function defaultConverter(type) {\n switch (type) {\n case AsnPropTypes.Any:\n return AsnAnyConverter;\n case AsnPropTypes.BitString:\n return AsnBitStringConverter;\n case AsnPropTypes.BmpString:\n return AsnBmpStringConverter;\n case AsnPropTypes.Boolean:\n return AsnBooleanConverter;\n case AsnPropTypes.CharacterString:\n return AsnCharacterStringConverter;\n case AsnPropTypes.Enumerated:\n return AsnEnumeratedConverter;\n case AsnPropTypes.GeneralString:\n return AsnGeneralStringConverter;\n case AsnPropTypes.GeneralizedTime:\n return AsnGeneralizedTimeConverter;\n case AsnPropTypes.GraphicString:\n return AsnGraphicStringConverter;\n case AsnPropTypes.IA5String:\n return AsnIA5StringConverter;\n case AsnPropTypes.Integer:\n return AsnIntegerConverter;\n case AsnPropTypes.Null:\n return AsnNullConverter;\n case AsnPropTypes.NumericString:\n return AsnNumericStringConverter;\n case AsnPropTypes.ObjectIdentifier:\n return AsnObjectIdentifierConverter;\n case AsnPropTypes.OctetString:\n return AsnOctetStringConverter;\n case AsnPropTypes.PrintableString:\n return AsnPrintableStringConverter;\n case AsnPropTypes.TeletexString:\n return AsnTeletexStringConverter;\n case AsnPropTypes.UTCTime:\n return AsnUTCTimeConverter;\n case AsnPropTypes.UniversalString:\n return AsnUniversalStringConverter;\n case AsnPropTypes.Utf8String:\n return AsnUtf8StringConverter;\n case AsnPropTypes.VideotexString:\n return AsnVideotexStringConverter;\n case AsnPropTypes.VisibleString:\n return AsnVisibleStringConverter;\n default:\n return null;\n }\n}\n","export function isConvertible(target) {\n if (typeof target === \"function\" && target.prototype) {\n if (target.prototype.toASN && target.prototype.fromASN) {\n return true;\n }\n else {\n return isConvertible(target.prototype);\n }\n }\n else {\n return !!(target && typeof target === \"object\" && \"toASN\" in target && \"fromASN\" in target);\n }\n}\nexport function isTypeOfArray(target) {\n var _a;\n if (target) {\n const proto = Object.getPrototypeOf(target);\n if (((_a = proto === null || proto === void 0 ? void 0 : proto.prototype) === null || _a === void 0 ? void 0 : _a.constructor) === Array) {\n return true;\n }\n return isTypeOfArray(proto);\n }\n return false;\n}\nexport function isArrayEqual(bytes1, bytes2) {\n if (!(bytes1 && bytes2)) {\n return false;\n }\n if (bytes1.byteLength !== bytes2.byteLength) {\n return false;\n }\n const b1 = new Uint8Array(bytes1);\n const b2 = new Uint8Array(bytes2);\n for (let i = 0; i < bytes1.byteLength; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\n","import * as asn1js from \"asn1js\";\nimport { AsnPropTypes, AsnTypeTypes } from \"./enums\";\nimport { isConvertible } from \"./helper\";\nexport class AsnSchemaStorage {\n constructor() {\n this.items = new WeakMap();\n }\n has(target) {\n return this.items.has(target);\n }\n get(target, checkSchema = false) {\n const schema = this.items.get(target);\n if (!schema) {\n throw new Error(`Cannot get schema for '${target.prototype.constructor.name}' target`);\n }\n if (checkSchema && !schema.schema) {\n throw new Error(`Schema '${target.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);\n }\n return schema;\n }\n cache(target) {\n const schema = this.get(target);\n if (!schema.schema) {\n schema.schema = this.create(target, true);\n }\n }\n createDefault(target) {\n const schema = { type: AsnTypeTypes.Sequence, items: {} };\n const parentSchema = this.findParentSchema(target);\n if (parentSchema) {\n Object.assign(schema, parentSchema);\n schema.items = Object.assign({}, schema.items, parentSchema.items);\n }\n return schema;\n }\n create(target, useNames) {\n const schema = this.items.get(target) || this.createDefault(target);\n const asn1Value = [];\n for (const key in schema.items) {\n const item = schema.items[key];\n const name = useNames ? key : \"\";\n let asn1Item;\n if (typeof item.type === \"number\") {\n const Asn1TypeName = AsnPropTypes[item.type];\n const Asn1Type = asn1js[Asn1TypeName];\n if (!Asn1Type) {\n throw new Error(`Cannot get ASN1 class by name '${Asn1TypeName}'`);\n }\n asn1Item = new Asn1Type({ name });\n }\n else if (isConvertible(item.type)) {\n const instance = new item.type();\n asn1Item = instance.toSchema(name);\n }\n else if (item.optional) {\n const itemSchema = this.get(item.type);\n if (itemSchema.type === AsnTypeTypes.Choice) {\n asn1Item = new asn1js.Any({ name });\n }\n else {\n asn1Item = this.create(item.type, false);\n asn1Item.name = name;\n }\n }\n else {\n asn1Item = new asn1js.Any({ name });\n }\n const optional = !!item.optional || item.defaultValue !== undefined;\n if (item.repeated) {\n asn1Item.name = \"\";\n const Container = item.repeated === \"set\" ? asn1js.Set : asn1js.Sequence;\n asn1Item = new Container({\n name: \"\",\n value: [new asn1js.Repeated({ name, value: asn1Item })],\n });\n }\n if (item.context !== null && item.context !== undefined) {\n if (item.implicit) {\n if (typeof item.type === \"number\" || isConvertible(item.type)) {\n const Container = item.repeated ? asn1js.Constructed : asn1js.Primitive;\n asn1Value.push(new Container({ name, optional, idBlock: { tagClass: 3, tagNumber: item.context } }));\n }\n else {\n this.cache(item.type);\n const isRepeated = !!item.repeated;\n let value = !isRepeated ? this.get(item.type, true).schema : asn1Item;\n value =\n \"valueBlock\" in value\n ? value.valueBlock.value\n :\n value.value;\n asn1Value.push(new asn1js.Constructed({\n name: !isRepeated ? name : \"\",\n optional,\n idBlock: { tagClass: 3, tagNumber: item.context },\n value: value,\n }));\n }\n }\n else {\n asn1Value.push(new asn1js.Constructed({\n optional,\n idBlock: { tagClass: 3, tagNumber: item.context },\n value: [asn1Item],\n }));\n }\n }\n else {\n asn1Item.optional = optional;\n asn1Value.push(asn1Item);\n }\n }\n switch (schema.type) {\n case AsnTypeTypes.Sequence:\n return new asn1js.Sequence({ value: asn1Value, name: \"\" });\n case AsnTypeTypes.Set:\n return new asn1js.Set({ value: asn1Value, name: \"\" });\n case AsnTypeTypes.Choice:\n return new asn1js.Choice({ value: asn1Value, name: \"\" });\n default:\n throw new Error(`Unsupported ASN1 type in use`);\n }\n }\n set(target, schema) {\n this.items.set(target, schema);\n return this;\n }\n findParentSchema(target) {\n const parent = Object.getPrototypeOf(target);\n if (parent) {\n const schema = this.items.get(parent);\n return schema || this.findParentSchema(parent);\n }\n return null;\n }\n}\n","import { AsnSchemaStorage } from \"./schema\";\nexport const schemaStorage = new AsnSchemaStorage();\n","import * as converters from \"./converters\";\nimport { AsnTypeTypes } from \"./enums\";\nimport { schemaStorage } from \"./storage\";\nexport const AsnType = (options) => (target) => {\n let schema;\n if (!schemaStorage.has(target)) {\n schema = schemaStorage.createDefault(target);\n schemaStorage.set(target, schema);\n }\n else {\n schema = schemaStorage.get(target);\n }\n Object.assign(schema, options);\n};\nexport const AsnChoiceType = () => AsnType({ type: AsnTypeTypes.Choice });\nexport const AsnSetType = (options) => AsnType({ type: AsnTypeTypes.Set, ...options });\nexport const AsnSequenceType = (options) => AsnType({ type: AsnTypeTypes.Sequence, ...options });\nexport const AsnProp = (options) => (target, propertyKey) => {\n let schema;\n if (!schemaStorage.has(target.constructor)) {\n schema = schemaStorage.createDefault(target.constructor);\n schemaStorage.set(target.constructor, schema);\n }\n else {\n schema = schemaStorage.get(target.constructor);\n }\n const copyOptions = Object.assign({}, options);\n if (typeof copyOptions.type === \"number\" && !copyOptions.converter) {\n const defaultConverter = converters.defaultConverter(options.type);\n if (!defaultConverter) {\n throw new Error(`Cannot get default converter for property '${propertyKey}' of ${target.constructor.name}`);\n }\n copyOptions.converter = defaultConverter;\n }\n copyOptions.raw = options.raw;\n schema.items[propertyKey] = copyOptions;\n};\n","export class AsnArray extends Array {\n constructor(items = []) {\n if (typeof items === \"number\") {\n super(items);\n }\n else {\n super();\n for (const item of items) {\n this.push(item);\n }\n }\n }\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","var AcceptableResponses_1;\nimport { __decorate } from \"tslib\";\nimport { AsnPropTypes, AsnArray, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nlet AcceptableResponses = AcceptableResponses_1 = class AcceptableResponses extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, AcceptableResponses_1.prototype);\n }\n};\nAcceptableResponses = AcceptableResponses_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: AsnPropTypes.ObjectIdentifier })\n], AcceptableResponses);\nexport { AcceptableResponses };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnType, AsnTypeTypes, AsnPropTypes } from \"@peculiar/asn1-schema\";\nlet ArchiveCutoff = class ArchiveCutoff {\n constructor(value = new Date()) {\n this.value = value;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime })\n], ArchiveCutoff.prototype, \"value\", void 0);\nArchiveCutoff = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], ArchiveCutoff);\nexport { ArchiveCutoff };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnType, AsnTypeTypes, AsnPropTypes } from \"@peculiar/asn1-schema\";\nlet ExtendedRevoke = class ExtendedRevoke {\n constructor(value = null) {\n this.value = value;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.Null })\n], ExtendedRevoke.prototype, \"value\", void 0);\nExtendedRevoke = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], ExtendedRevoke);\nexport { ExtendedRevoke };\n","import { Convert } from \"pvtsutils\";\nexport class IpConverter {\n static isIPv4(ip) {\n return /^(\\d{1,3}\\.){3}\\d{1,3}$/.test(ip);\n }\n static parseIPv4(ip) {\n const parts = ip.split(\".\");\n if (parts.length !== 4) {\n throw new Error(\"Invalid IPv4 address\");\n }\n return parts.map((part) => {\n const num = parseInt(part, 10);\n if (isNaN(num) || num < 0 || num > 255) {\n throw new Error(\"Invalid IPv4 address part\");\n }\n return num;\n });\n }\n static parseIPv6(ip) {\n const expandedIP = this.expandIPv6(ip);\n const parts = expandedIP.split(\":\");\n if (parts.length !== 8) {\n throw new Error(\"Invalid IPv6 address\");\n }\n return parts.reduce((bytes, part) => {\n const num = parseInt(part, 16);\n if (isNaN(num) || num < 0 || num > 0xffff) {\n throw new Error(\"Invalid IPv6 address part\");\n }\n bytes.push((num >> 8) & 0xff);\n bytes.push(num & 0xff);\n return bytes;\n }, []);\n }\n static expandIPv6(ip) {\n if (!ip.includes(\"::\")) {\n return ip;\n }\n const parts = ip.split(\"::\");\n if (parts.length > 2) {\n throw new Error(\"Invalid IPv6 address\");\n }\n const left = parts[0] ? parts[0].split(\":\") : [];\n const right = parts[1] ? parts[1].split(\":\") : [];\n const missing = 8 - (left.length + right.length);\n if (missing < 0) {\n throw new Error(\"Invalid IPv6 address\");\n }\n return [...left, ...Array(missing).fill(\"0\"), ...right].join(\":\");\n }\n static formatIPv6(bytes) {\n const parts = [];\n for (let i = 0; i < 16; i += 2) {\n parts.push(((bytes[i] << 8) | bytes[i + 1]).toString(16));\n }\n return this.compressIPv6(parts.join(\":\"));\n }\n static compressIPv6(ip) {\n const parts = ip.split(\":\");\n let longestZeroStart = -1;\n let longestZeroLength = 0;\n let currentZeroStart = -1;\n let currentZeroLength = 0;\n for (let i = 0; i < parts.length; i++) {\n if (parts[i] === \"0\") {\n if (currentZeroStart === -1) {\n currentZeroStart = i;\n }\n currentZeroLength++;\n }\n else {\n if (currentZeroLength > longestZeroLength) {\n longestZeroStart = currentZeroStart;\n longestZeroLength = currentZeroLength;\n }\n currentZeroStart = -1;\n currentZeroLength = 0;\n }\n }\n if (currentZeroLength > longestZeroLength) {\n longestZeroStart = currentZeroStart;\n longestZeroLength = currentZeroLength;\n }\n if (longestZeroLength > 1) {\n const before = parts.slice(0, longestZeroStart).join(\":\");\n const after = parts.slice(longestZeroStart + longestZeroLength).join(\":\");\n return `${before}::${after}`;\n }\n return ip;\n }\n static parseCIDR(text) {\n const [addr, prefixStr] = text.split(\"/\");\n const prefix = parseInt(prefixStr, 10);\n if (this.isIPv4(addr)) {\n if (prefix < 0 || prefix > 32) {\n throw new Error(\"Invalid IPv4 prefix length\");\n }\n return [this.parseIPv4(addr), prefix];\n }\n else {\n if (prefix < 0 || prefix > 128) {\n throw new Error(\"Invalid IPv6 prefix length\");\n }\n return [this.parseIPv6(addr), prefix];\n }\n }\n static decodeIP(value) {\n if (value.length === 64 && parseInt(value, 16) === 0) {\n return \"::/0\";\n }\n if (value.length !== 16) {\n return value;\n }\n const mask = parseInt(value.slice(8), 16)\n .toString(2)\n .split(\"\")\n .reduce((a, k) => a + +k, 0);\n let ip = value.slice(0, 8).replace(/(.{2})/g, (match) => `${parseInt(match, 16)}.`);\n ip = ip.slice(0, -1);\n return `${ip}/${mask}`;\n }\n static toString(buf) {\n const uint8 = new Uint8Array(buf);\n if (uint8.length === 4) {\n return Array.from(uint8).join(\".\");\n }\n if (uint8.length === 16) {\n return this.formatIPv6(uint8);\n }\n if (uint8.length === 8 || uint8.length === 32) {\n const half = uint8.length / 2;\n const addrBytes = uint8.slice(0, half);\n const maskBytes = uint8.slice(half);\n const isAllZeros = uint8.every((byte) => byte === 0);\n if (isAllZeros) {\n return uint8.length === 8 ? \"0.0.0.0/0\" : \"::/0\";\n }\n const prefixLen = maskBytes.reduce((a, b) => a + (b.toString(2).match(/1/g) || []).length, 0);\n if (uint8.length === 8) {\n const addrStr = Array.from(addrBytes).join(\".\");\n return `${addrStr}/${prefixLen}`;\n }\n else {\n const addrStr = this.formatIPv6(addrBytes);\n return `${addrStr}/${prefixLen}`;\n }\n }\n return this.decodeIP(Convert.ToHex(buf));\n }\n static fromString(text) {\n if (text.includes(\"/\")) {\n const [addr, prefix] = this.parseCIDR(text);\n const maskBytes = new Uint8Array(addr.length);\n let bitsLeft = prefix;\n for (let i = 0; i < maskBytes.length; i++) {\n if (bitsLeft >= 8) {\n maskBytes[i] = 0xff;\n bitsLeft -= 8;\n }\n else if (bitsLeft > 0) {\n maskBytes[i] = 0xff << (8 - bitsLeft);\n bitsLeft = 0;\n }\n }\n const out = new Uint8Array(addr.length * 2);\n out.set(addr, 0);\n out.set(maskBytes, addr.length);\n return out.buffer;\n }\n const bytes = this.isIPv4(text) ? this.parseIPv4(text) : this.parseIPv6(text);\n return new Uint8Array(bytes).buffer;\n }\n}\n","var RelativeDistinguishedName_1, RDNSequence_1, Name_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnArray } from \"@peculiar/asn1-schema\";\nimport { Convert } from \"pvtsutils\";\nlet DirectoryString = class DirectoryString {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n toString() {\n return (this.bmpString ||\n this.printableString ||\n this.teletexString ||\n this.universalString ||\n this.utf8String ||\n \"\");\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.TeletexString })\n], DirectoryString.prototype, \"teletexString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.PrintableString })\n], DirectoryString.prototype, \"printableString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.UniversalString })\n], DirectoryString.prototype, \"universalString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Utf8String })\n], DirectoryString.prototype, \"utf8String\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BmpString })\n], DirectoryString.prototype, \"bmpString\", void 0);\nDirectoryString = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], DirectoryString);\nexport { DirectoryString };\nlet AttributeValue = class AttributeValue extends DirectoryString {\n constructor(params = {}) {\n super(params);\n Object.assign(this, params);\n }\n toString() {\n return this.ia5String || (this.anyValue ? Convert.ToHex(this.anyValue) : super.toString());\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String })\n], AttributeValue.prototype, \"ia5String\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any })\n], AttributeValue.prototype, \"anyValue\", void 0);\nAttributeValue = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], AttributeValue);\nexport { AttributeValue };\nexport class AttributeTypeAndValue {\n constructor(params = {}) {\n this.type = \"\";\n this.value = new AttributeValue();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], AttributeTypeAndValue.prototype, \"type\", void 0);\n__decorate([\n AsnProp({ type: AttributeValue })\n], AttributeTypeAndValue.prototype, \"value\", void 0);\nlet RelativeDistinguishedName = RelativeDistinguishedName_1 = class RelativeDistinguishedName extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, RelativeDistinguishedName_1.prototype);\n }\n};\nRelativeDistinguishedName = RelativeDistinguishedName_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Set, itemType: AttributeTypeAndValue })\n], RelativeDistinguishedName);\nexport { RelativeDistinguishedName };\nlet RDNSequence = RDNSequence_1 = class RDNSequence extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, RDNSequence_1.prototype);\n }\n};\nRDNSequence = RDNSequence_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: RelativeDistinguishedName })\n], RDNSequence);\nexport { RDNSequence };\nlet Name = Name_1 = class Name extends RDNSequence {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, Name_1.prototype);\n }\n};\nName = Name_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], Name);\nexport { Name };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnOctetStringConverter, } from \"@peculiar/asn1-schema\";\nimport { IpConverter } from \"./ip_converter\";\nimport { DirectoryString, Name } from \"./name\";\nexport const AsnIpConverter = {\n fromASN: (value) => IpConverter.toString(AsnOctetStringConverter.fromASN(value)),\n toASN: (value) => AsnOctetStringConverter.toASN(IpConverter.fromString(value)),\n};\nexport class OtherName {\n constructor(params = {}) {\n this.typeId = \"\";\n this.value = new ArrayBuffer(0);\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], OtherName.prototype, \"typeId\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any, context: 0 })\n], OtherName.prototype, \"value\", void 0);\nexport class EDIPartyName {\n constructor(params = {}) {\n this.partyName = new DirectoryString();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: DirectoryString, optional: true, context: 0, implicit: true })\n], EDIPartyName.prototype, \"nameAssigner\", void 0);\n__decorate([\n AsnProp({ type: DirectoryString, context: 1, implicit: true })\n], EDIPartyName.prototype, \"partyName\", void 0);\nlet GeneralName = class GeneralName {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: OtherName, context: 0, implicit: true })\n], GeneralName.prototype, \"otherName\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String, context: 1, implicit: true })\n], GeneralName.prototype, \"rfc822Name\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String, context: 2, implicit: true })\n], GeneralName.prototype, \"dNSName\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any, context: 3, implicit: true })\n], GeneralName.prototype, \"x400Address\", void 0);\n__decorate([\n AsnProp({ type: Name, context: 4, implicit: false })\n], GeneralName.prototype, \"directoryName\", void 0);\n__decorate([\n AsnProp({ type: EDIPartyName, context: 5 })\n], GeneralName.prototype, \"ediPartyName\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String, context: 6, implicit: true })\n], GeneralName.prototype, \"uniformResourceIdentifier\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.OctetString,\n context: 7,\n implicit: true,\n converter: AsnIpConverter,\n })\n], GeneralName.prototype, \"iPAddress\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier, context: 8, implicit: true })\n], GeneralName.prototype, \"registeredID\", void 0);\nGeneralName = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], GeneralName);\nexport { GeneralName };\n","var AuthorityInfoAccessSyntax_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"../general_name\";\nimport { id_pe } from \"../object_identifiers\";\nexport const id_pe_authorityInfoAccess = `${id_pe}.1`;\nexport class AccessDescription {\n constructor(params = {}) {\n this.accessMethod = \"\";\n this.accessLocation = new GeneralName();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], AccessDescription.prototype, \"accessMethod\", void 0);\n__decorate([\n AsnProp({ type: GeneralName })\n], AccessDescription.prototype, \"accessLocation\", void 0);\nlet AuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax_1 = class AuthorityInfoAccessSyntax extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, AuthorityInfoAccessSyntax_1.prototype);\n }\n};\nAuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: AccessDescription })\n], AuthorityInfoAccessSyntax);\nexport { AuthorityInfoAccessSyntax };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, OctetString, } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"../general_name\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_authorityKeyIdentifier = `${id_ce}.35`;\nexport class KeyIdentifier extends OctetString {\n}\nexport class AuthorityKeyIdentifier {\n constructor(params = {}) {\n if (params) {\n Object.assign(this, params);\n }\n }\n}\n__decorate([\n AsnProp({ type: KeyIdentifier, context: 0, optional: true, implicit: true })\n], AuthorityKeyIdentifier.prototype, \"keyIdentifier\", void 0);\n__decorate([\n AsnProp({ type: GeneralName, context: 1, optional: true, implicit: true, repeated: \"sequence\" })\n], AuthorityKeyIdentifier.prototype, \"authorityCertIssuer\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n context: 2,\n optional: true,\n implicit: true,\n converter: AsnIntegerArrayBufferConverter,\n })\n], AuthorityKeyIdentifier.prototype, \"authorityCertSerialNumber\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_basicConstraints = `${id_ce}.19`;\nexport class BasicConstraints {\n constructor(params = {}) {\n this.cA = false;\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Boolean, defaultValue: false })\n], BasicConstraints.prototype, \"cA\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, optional: true })\n], BasicConstraints.prototype, \"pathLenConstraint\", void 0);\n","var GeneralNames_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"./general_name\";\nimport { AsnArray } from \"@peculiar/asn1-schema\";\nlet GeneralNames = GeneralNames_1 = class GeneralNames extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, GeneralNames_1.prototype);\n }\n};\nGeneralNames = GeneralNames_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: GeneralName })\n], GeneralNames);\nexport { GeneralNames };\n","var CertificateIssuer_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralNames } from \"../general_names\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_certificateIssuer = `${id_ce}.29`;\nlet CertificateIssuer = CertificateIssuer_1 = class CertificateIssuer extends GeneralNames {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, CertificateIssuer_1.prototype);\n }\n};\nCertificateIssuer = CertificateIssuer_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], CertificateIssuer);\nexport { CertificateIssuer };\n","var CertificatePolicies_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnArray } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_certificatePolicies = `${id_ce}.32`;\nexport const id_ce_certificatePolicies_anyPolicy = `${id_ce_certificatePolicies}.0`;\nlet DisplayText = class DisplayText {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n toString() {\n return this.ia5String || this.visibleString || this.bmpString || this.utf8String || \"\";\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String })\n], DisplayText.prototype, \"ia5String\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.VisibleString })\n], DisplayText.prototype, \"visibleString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BmpString })\n], DisplayText.prototype, \"bmpString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Utf8String })\n], DisplayText.prototype, \"utf8String\", void 0);\nDisplayText = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], DisplayText);\nexport { DisplayText };\nexport class NoticeReference {\n constructor(params = {}) {\n this.organization = new DisplayText();\n this.noticeNumbers = [];\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: DisplayText })\n], NoticeReference.prototype, \"organization\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, repeated: \"sequence\" })\n], NoticeReference.prototype, \"noticeNumbers\", void 0);\nexport class UserNotice {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: NoticeReference, optional: true })\n], UserNotice.prototype, \"noticeRef\", void 0);\n__decorate([\n AsnProp({ type: DisplayText, optional: true })\n], UserNotice.prototype, \"explicitText\", void 0);\nlet Qualifier = class Qualifier {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String })\n], Qualifier.prototype, \"cPSuri\", void 0);\n__decorate([\n AsnProp({ type: UserNotice })\n], Qualifier.prototype, \"userNotice\", void 0);\nQualifier = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], Qualifier);\nexport { Qualifier };\nexport class PolicyQualifierInfo {\n constructor(params = {}) {\n this.policyQualifierId = \"\";\n this.qualifier = new ArrayBuffer(0);\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], PolicyQualifierInfo.prototype, \"policyQualifierId\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any })\n], PolicyQualifierInfo.prototype, \"qualifier\", void 0);\nexport class PolicyInformation {\n constructor(params = {}) {\n this.policyIdentifier = \"\";\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], PolicyInformation.prototype, \"policyIdentifier\", void 0);\n__decorate([\n AsnProp({ type: PolicyQualifierInfo, repeated: \"sequence\", optional: true })\n], PolicyInformation.prototype, \"policyQualifiers\", void 0);\nlet CertificatePolicies = CertificatePolicies_1 = class CertificatePolicies extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, CertificatePolicies_1.prototype);\n }\n};\nCertificatePolicies = CertificatePolicies_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: PolicyInformation })\n], CertificatePolicies);\nexport { CertificatePolicies };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_cRLNumber = `${id_ce}.20`;\nlet CRLNumber = class CRLNumber {\n constructor(value = 0) {\n this.value = value;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], CRLNumber.prototype, \"value\", void 0);\nCRLNumber = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], CRLNumber);\nexport { CRLNumber };\n","import { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nimport { CRLNumber } from \"./crl_number\";\nexport const id_ce_deltaCRLIndicator = `${id_ce}.27`;\nlet BaseCRLNumber = class BaseCRLNumber extends CRLNumber {\n};\nBaseCRLNumber = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], BaseCRLNumber);\nexport { BaseCRLNumber };\n","var CRLDistributionPoints_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnType, AsnTypeTypes, AsnArray, BitString } from \"@peculiar/asn1-schema\";\nimport { RelativeDistinguishedName } from \"../name\";\nimport { GeneralName } from \"../general_name\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_cRLDistributionPoints = `${id_ce}.31`;\nexport var ReasonFlags;\n(function (ReasonFlags) {\n ReasonFlags[ReasonFlags[\"unused\"] = 1] = \"unused\";\n ReasonFlags[ReasonFlags[\"keyCompromise\"] = 2] = \"keyCompromise\";\n ReasonFlags[ReasonFlags[\"cACompromise\"] = 4] = \"cACompromise\";\n ReasonFlags[ReasonFlags[\"affiliationChanged\"] = 8] = \"affiliationChanged\";\n ReasonFlags[ReasonFlags[\"superseded\"] = 16] = \"superseded\";\n ReasonFlags[ReasonFlags[\"cessationOfOperation\"] = 32] = \"cessationOfOperation\";\n ReasonFlags[ReasonFlags[\"certificateHold\"] = 64] = \"certificateHold\";\n ReasonFlags[ReasonFlags[\"privilegeWithdrawn\"] = 128] = \"privilegeWithdrawn\";\n ReasonFlags[ReasonFlags[\"aACompromise\"] = 256] = \"aACompromise\";\n})(ReasonFlags || (ReasonFlags = {}));\nexport class Reason extends BitString {\n toJSON() {\n const res = [];\n const flags = this.toNumber();\n if (flags & ReasonFlags.aACompromise) {\n res.push(\"aACompromise\");\n }\n if (flags & ReasonFlags.affiliationChanged) {\n res.push(\"affiliationChanged\");\n }\n if (flags & ReasonFlags.cACompromise) {\n res.push(\"cACompromise\");\n }\n if (flags & ReasonFlags.certificateHold) {\n res.push(\"certificateHold\");\n }\n if (flags & ReasonFlags.cessationOfOperation) {\n res.push(\"cessationOfOperation\");\n }\n if (flags & ReasonFlags.keyCompromise) {\n res.push(\"keyCompromise\");\n }\n if (flags & ReasonFlags.privilegeWithdrawn) {\n res.push(\"privilegeWithdrawn\");\n }\n if (flags & ReasonFlags.superseded) {\n res.push(\"superseded\");\n }\n if (flags & ReasonFlags.unused) {\n res.push(\"unused\");\n }\n return res;\n }\n toString() {\n return `[${this.toJSON().join(\", \")}]`;\n }\n}\nlet DistributionPointName = class DistributionPointName {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: GeneralName, context: 0, repeated: \"sequence\", implicit: true })\n], DistributionPointName.prototype, \"fullName\", void 0);\n__decorate([\n AsnProp({ type: RelativeDistinguishedName, context: 1, implicit: true })\n], DistributionPointName.prototype, \"nameRelativeToCRLIssuer\", void 0);\nDistributionPointName = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], DistributionPointName);\nexport { DistributionPointName };\nexport class DistributionPoint {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: DistributionPointName, context: 0, optional: true })\n], DistributionPoint.prototype, \"distributionPoint\", void 0);\n__decorate([\n AsnProp({ type: Reason, context: 1, optional: true, implicit: true })\n], DistributionPoint.prototype, \"reasons\", void 0);\n__decorate([\n AsnProp({ type: GeneralName, context: 2, optional: true, repeated: \"sequence\", implicit: true })\n], DistributionPoint.prototype, \"cRLIssuer\", void 0);\nlet CRLDistributionPoints = CRLDistributionPoints_1 = class CRLDistributionPoints extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, CRLDistributionPoints_1.prototype);\n }\n};\nCRLDistributionPoints = CRLDistributionPoints_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })\n], CRLDistributionPoints);\nexport { CRLDistributionPoints };\n","var FreshestCRL_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nimport { CRLDistributionPoints, DistributionPoint } from \"./crl_distribution_points\";\nexport const id_ce_freshestCRL = `${id_ce}.46`;\nlet FreshestCRL = FreshestCRL_1 = class FreshestCRL extends CRLDistributionPoints {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, FreshestCRL_1.prototype);\n }\n};\nFreshestCRL = FreshestCRL_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })\n], FreshestCRL);\nexport { FreshestCRL };\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { DistributionPointName, Reason } from \"./crl_distribution_points\";\nimport { id_ce } from \"../object_identifiers\";\nimport { AsnPropTypes } from \"@peculiar/asn1-schema\";\nexport const id_ce_issuingDistributionPoint = `${id_ce}.28`;\nexport class IssuingDistributionPoint {\n constructor(params = {}) {\n this.onlyContainsUserCerts = IssuingDistributionPoint.ONLY;\n this.onlyContainsCACerts = IssuingDistributionPoint.ONLY;\n this.indirectCRL = IssuingDistributionPoint.ONLY;\n this.onlyContainsAttributeCerts = IssuingDistributionPoint.ONLY;\n Object.assign(this, params);\n }\n}\nIssuingDistributionPoint.ONLY = false;\n__decorate([\n AsnProp({ type: DistributionPointName, context: 0, optional: true })\n], IssuingDistributionPoint.prototype, \"distributionPoint\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n context: 1,\n defaultValue: IssuingDistributionPoint.ONLY,\n implicit: true,\n })\n], IssuingDistributionPoint.prototype, \"onlyContainsUserCerts\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n context: 2,\n defaultValue: IssuingDistributionPoint.ONLY,\n implicit: true,\n })\n], IssuingDistributionPoint.prototype, \"onlyContainsCACerts\", void 0);\n__decorate([\n AsnProp({ type: Reason, context: 3, optional: true, implicit: true })\n], IssuingDistributionPoint.prototype, \"onlySomeReasons\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n context: 4,\n defaultValue: IssuingDistributionPoint.ONLY,\n implicit: true,\n })\n], IssuingDistributionPoint.prototype, \"indirectCRL\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n context: 5,\n defaultValue: IssuingDistributionPoint.ONLY,\n implicit: true,\n })\n], IssuingDistributionPoint.prototype, \"onlyContainsAttributeCerts\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_cRLReasons = `${id_ce}.21`;\nexport var CRLReasons;\n(function (CRLReasons) {\n CRLReasons[CRLReasons[\"unspecified\"] = 0] = \"unspecified\";\n CRLReasons[CRLReasons[\"keyCompromise\"] = 1] = \"keyCompromise\";\n CRLReasons[CRLReasons[\"cACompromise\"] = 2] = \"cACompromise\";\n CRLReasons[CRLReasons[\"affiliationChanged\"] = 3] = \"affiliationChanged\";\n CRLReasons[CRLReasons[\"superseded\"] = 4] = \"superseded\";\n CRLReasons[CRLReasons[\"cessationOfOperation\"] = 5] = \"cessationOfOperation\";\n CRLReasons[CRLReasons[\"certificateHold\"] = 6] = \"certificateHold\";\n CRLReasons[CRLReasons[\"removeFromCRL\"] = 8] = \"removeFromCRL\";\n CRLReasons[CRLReasons[\"privilegeWithdrawn\"] = 9] = \"privilegeWithdrawn\";\n CRLReasons[CRLReasons[\"aACompromise\"] = 10] = \"aACompromise\";\n})(CRLReasons || (CRLReasons = {}));\nlet CRLReason = class CRLReason {\n constructor(reason = CRLReasons.unspecified) {\n this.reason = CRLReasons.unspecified;\n this.reason = reason;\n }\n toJSON() {\n return CRLReasons[this.reason];\n }\n toString() {\n return this.toJSON();\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.Enumerated })\n], CRLReason.prototype, \"reason\", void 0);\nCRLReason = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], CRLReason);\nexport { CRLReason };\n","var ExtendedKeyUsage_1;\nimport { __decorate } from \"tslib\";\nimport { AsnPropTypes, AsnArray, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce, id_kp } from \"../object_identifiers\";\nexport const id_ce_extKeyUsage = `${id_ce}.37`;\nlet ExtendedKeyUsage = ExtendedKeyUsage_1 = class ExtendedKeyUsage extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, ExtendedKeyUsage_1.prototype);\n }\n};\nExtendedKeyUsage = ExtendedKeyUsage_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: AsnPropTypes.ObjectIdentifier })\n], ExtendedKeyUsage);\nexport { ExtendedKeyUsage };\nexport const anyExtendedKeyUsage = `${id_ce_extKeyUsage}.0`;\nexport const id_kp_serverAuth = `${id_kp}.1`;\nexport const id_kp_clientAuth = `${id_kp}.2`;\nexport const id_kp_codeSigning = `${id_kp}.3`;\nexport const id_kp_emailProtection = `${id_kp}.4`;\nexport const id_kp_timeStamping = `${id_kp}.8`;\nexport const id_kp_OCSPSigning = `${id_kp}.9`;\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_inhibitAnyPolicy = `${id_ce}.54`;\nlet InhibitAnyPolicy = class InhibitAnyPolicy {\n constructor(value = new ArrayBuffer(0)) {\n this.value = value;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter })\n], InhibitAnyPolicy.prototype, \"value\", void 0);\nInhibitAnyPolicy = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], InhibitAnyPolicy);\nexport { InhibitAnyPolicy };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_invalidityDate = `${id_ce}.24`;\nlet InvalidityDate = class InvalidityDate {\n constructor(value) {\n this.value = new Date();\n if (value) {\n this.value = value;\n }\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime })\n], InvalidityDate.prototype, \"value\", void 0);\nInvalidityDate = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], InvalidityDate);\nexport { InvalidityDate };\n","var IssueAlternativeName_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralNames } from \"../general_names\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_issuerAltName = `${id_ce}.18`;\nlet IssueAlternativeName = IssueAlternativeName_1 = class IssueAlternativeName extends GeneralNames {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, IssueAlternativeName_1.prototype);\n }\n};\nIssueAlternativeName = IssueAlternativeName_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], IssueAlternativeName);\nexport { IssueAlternativeName };\n","import { BitString } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_keyUsage = `${id_ce}.15`;\nexport var KeyUsageFlags;\n(function (KeyUsageFlags) {\n KeyUsageFlags[KeyUsageFlags[\"digitalSignature\"] = 1] = \"digitalSignature\";\n KeyUsageFlags[KeyUsageFlags[\"nonRepudiation\"] = 2] = \"nonRepudiation\";\n KeyUsageFlags[KeyUsageFlags[\"keyEncipherment\"] = 4] = \"keyEncipherment\";\n KeyUsageFlags[KeyUsageFlags[\"dataEncipherment\"] = 8] = \"dataEncipherment\";\n KeyUsageFlags[KeyUsageFlags[\"keyAgreement\"] = 16] = \"keyAgreement\";\n KeyUsageFlags[KeyUsageFlags[\"keyCertSign\"] = 32] = \"keyCertSign\";\n KeyUsageFlags[KeyUsageFlags[\"cRLSign\"] = 64] = \"cRLSign\";\n KeyUsageFlags[KeyUsageFlags[\"encipherOnly\"] = 128] = \"encipherOnly\";\n KeyUsageFlags[KeyUsageFlags[\"decipherOnly\"] = 256] = \"decipherOnly\";\n})(KeyUsageFlags || (KeyUsageFlags = {}));\nexport class KeyUsage extends BitString {\n toJSON() {\n const flag = this.toNumber();\n const res = [];\n if (flag & KeyUsageFlags.cRLSign) {\n res.push(\"crlSign\");\n }\n if (flag & KeyUsageFlags.dataEncipherment) {\n res.push(\"dataEncipherment\");\n }\n if (flag & KeyUsageFlags.decipherOnly) {\n res.push(\"decipherOnly\");\n }\n if (flag & KeyUsageFlags.digitalSignature) {\n res.push(\"digitalSignature\");\n }\n if (flag & KeyUsageFlags.encipherOnly) {\n res.push(\"encipherOnly\");\n }\n if (flag & KeyUsageFlags.keyAgreement) {\n res.push(\"keyAgreement\");\n }\n if (flag & KeyUsageFlags.keyCertSign) {\n res.push(\"keyCertSign\");\n }\n if (flag & KeyUsageFlags.keyEncipherment) {\n res.push(\"keyEncipherment\");\n }\n if (flag & KeyUsageFlags.nonRepudiation) {\n res.push(\"nonRepudiation\");\n }\n return res;\n }\n toString() {\n return `[${this.toJSON().join(\", \")}]`;\n }\n}\n","var GeneralSubtrees_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"../general_name\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_nameConstraints = `${id_ce}.30`;\nexport class GeneralSubtree {\n constructor(params = {}) {\n this.base = new GeneralName();\n this.minimum = 0;\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: GeneralName })\n], GeneralSubtree.prototype, \"base\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, context: 0, defaultValue: 0, implicit: true })\n], GeneralSubtree.prototype, \"minimum\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, context: 1, optional: true, implicit: true })\n], GeneralSubtree.prototype, \"maximum\", void 0);\nlet GeneralSubtrees = GeneralSubtrees_1 = class GeneralSubtrees extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, GeneralSubtrees_1.prototype);\n }\n};\nGeneralSubtrees = GeneralSubtrees_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: GeneralSubtree })\n], GeneralSubtrees);\nexport { GeneralSubtrees };\nexport class NameConstraints {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: GeneralSubtrees, context: 0, optional: true, implicit: true })\n], NameConstraints.prototype, \"permittedSubtrees\", void 0);\n__decorate([\n AsnProp({ type: GeneralSubtrees, context: 1, optional: true, implicit: true })\n], NameConstraints.prototype, \"excludedSubtrees\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_policyConstraints = `${id_ce}.36`;\nexport class PolicyConstraints {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n context: 0,\n implicit: true,\n optional: true,\n converter: AsnIntegerArrayBufferConverter,\n })\n], PolicyConstraints.prototype, \"requireExplicitPolicy\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n context: 1,\n implicit: true,\n optional: true,\n converter: AsnIntegerArrayBufferConverter,\n })\n], PolicyConstraints.prototype, \"inhibitPolicyMapping\", void 0);\n","var PolicyMappings_1;\nimport { __decorate } from \"tslib\";\nimport { AsnArray, AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_policyMappings = `${id_ce}.33`;\nexport class PolicyMapping {\n constructor(params = {}) {\n this.issuerDomainPolicy = \"\";\n this.subjectDomainPolicy = \"\";\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], PolicyMapping.prototype, \"issuerDomainPolicy\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], PolicyMapping.prototype, \"subjectDomainPolicy\", void 0);\nlet PolicyMappings = PolicyMappings_1 = class PolicyMappings extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, PolicyMappings_1.prototype);\n }\n};\nPolicyMappings = PolicyMappings_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: PolicyMapping })\n], PolicyMappings);\nexport { PolicyMappings };\n","var SubjectAlternativeName_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralNames } from \"../general_names\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_subjectAltName = `${id_ce}.17`;\nlet SubjectAlternativeName = SubjectAlternativeName_1 = class SubjectAlternativeName extends GeneralNames {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, SubjectAlternativeName_1.prototype);\n }\n};\nSubjectAlternativeName = SubjectAlternativeName_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], SubjectAlternativeName);\nexport { SubjectAlternativeName };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nexport class Attribute {\n constructor(params = {}) {\n this.type = \"\";\n this.values = [];\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], Attribute.prototype, \"type\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any, repeated: \"set\" })\n], Attribute.prototype, \"values\", void 0);\n","var SubjectDirectoryAttributes_1;\nimport { __decorate } from \"tslib\";\nimport { AsnArray, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { Attribute } from \"../attribute\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_subjectDirectoryAttributes = `${id_ce}.9`;\nlet SubjectDirectoryAttributes = SubjectDirectoryAttributes_1 = class SubjectDirectoryAttributes extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, SubjectDirectoryAttributes_1.prototype);\n }\n};\nSubjectDirectoryAttributes = SubjectDirectoryAttributes_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: Attribute })\n], SubjectDirectoryAttributes);\nexport { SubjectDirectoryAttributes };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers\";\nexport const id_ce_privateKeyUsagePeriod = `${id_ce}.16`;\nexport class PrivateKeyUsagePeriod {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime, context: 0, implicit: true, optional: true })\n], PrivateKeyUsagePeriod.prototype, \"notBefore\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime, context: 1, implicit: true, optional: true })\n], PrivateKeyUsagePeriod.prototype, \"notAfter\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, BitString } from \"@peculiar/asn1-schema\";\nexport const id_entrust_entrustVersInfo = \"1.2.840.113533.7.65.0\";\nexport var EntrustInfoFlags;\n(function (EntrustInfoFlags) {\n EntrustInfoFlags[EntrustInfoFlags[\"keyUpdateAllowed\"] = 1] = \"keyUpdateAllowed\";\n EntrustInfoFlags[EntrustInfoFlags[\"newExtensions\"] = 2] = \"newExtensions\";\n EntrustInfoFlags[EntrustInfoFlags[\"pKIXCertificate\"] = 4] = \"pKIXCertificate\";\n})(EntrustInfoFlags || (EntrustInfoFlags = {}));\nexport class EntrustInfo extends BitString {\n toJSON() {\n const res = [];\n const flags = this.toNumber();\n if (flags & EntrustInfoFlags.pKIXCertificate) {\n res.push(\"pKIXCertificate\");\n }\n if (flags & EntrustInfoFlags.newExtensions) {\n res.push(\"newExtensions\");\n }\n if (flags & EntrustInfoFlags.keyUpdateAllowed) {\n res.push(\"keyUpdateAllowed\");\n }\n return res;\n }\n toString() {\n return `[${this.toJSON().join(\", \")}]`;\n }\n}\nexport class EntrustVersionInfo {\n constructor(params = {}) {\n this.entrustVers = \"\";\n this.entrustInfoFlags = new EntrustInfo();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralString })\n], EntrustVersionInfo.prototype, \"entrustVers\", void 0);\n__decorate([\n AsnProp({ type: EntrustInfo })\n], EntrustVersionInfo.prototype, \"entrustInfoFlags\", void 0);\n","var SubjectInfoAccessSyntax_1;\nimport { __decorate } from \"tslib\";\nimport { AsnArray, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_pe } from \"../object_identifiers\";\nimport { AccessDescription } from \"./authority_information_access\";\nexport const id_pe_subjectInfoAccess = `${id_pe}.11`;\nlet SubjectInfoAccessSyntax = SubjectInfoAccessSyntax_1 = class SubjectInfoAccessSyntax extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, SubjectInfoAccessSyntax_1.prototype);\n }\n};\nSubjectInfoAccessSyntax = SubjectInfoAccessSyntax_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: AccessDescription })\n], SubjectInfoAccessSyntax);\nexport { SubjectInfoAccessSyntax };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport * as pvtsutils from \"pvtsutils\";\nexport class AlgorithmIdentifier {\n constructor(params = {}) {\n this.algorithm = \"\";\n Object.assign(this, params);\n }\n isEqual(data) {\n return (data instanceof AlgorithmIdentifier &&\n data.algorithm == this.algorithm &&\n ((data.parameters &&\n this.parameters &&\n pvtsutils.isEqual(data.parameters, this.parameters)) ||\n data.parameters === this.parameters));\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.ObjectIdentifier,\n })\n], AlgorithmIdentifier.prototype, \"algorithm\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any,\n optional: true,\n })\n], AlgorithmIdentifier.prototype, \"parameters\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier\";\nexport class SubjectPublicKeyInfo {\n constructor(params = {}) {\n this.algorithm = new AlgorithmIdentifier();\n this.subjectPublicKey = new ArrayBuffer(0);\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], SubjectPublicKeyInfo.prototype, \"algorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], SubjectPublicKeyInfo.prototype, \"subjectPublicKey\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nlet Time = class Time {\n constructor(time) {\n if (time) {\n if (typeof time === \"string\" || typeof time === \"number\" || time instanceof Date) {\n const date = new Date(time);\n date.setMilliseconds(0);\n if (date.getUTCFullYear() > 2049) {\n this.generalTime = date;\n }\n else {\n this.utcTime = date;\n }\n }\n else {\n Object.assign(this, time);\n }\n }\n }\n getTime() {\n const time = this.utcTime || this.generalTime;\n if (!time) {\n throw new Error(\"Cannot get time from CHOICE object\");\n }\n return time;\n }\n};\n__decorate([\n AsnProp({\n type: AsnPropTypes.UTCTime,\n })\n], Time.prototype, \"utcTime\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.GeneralizedTime,\n })\n], Time.prototype, \"generalTime\", void 0);\nTime = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], Time);\nexport { Time };\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { Time } from \"./time\";\nexport class Validity {\n constructor(params) {\n this.notBefore = new Time(new Date());\n this.notAfter = new Time(new Date());\n if (params) {\n this.notBefore = new Time(params.notBefore);\n this.notAfter = new Time(params.notAfter);\n }\n }\n}\n__decorate([\n AsnProp({ type: Time })\n], Validity.prototype, \"notBefore\", void 0);\n__decorate([\n AsnProp({ type: Time })\n], Validity.prototype, \"notAfter\", void 0);\n","var Extensions_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, OctetString, } from \"@peculiar/asn1-schema\";\nexport class Extension {\n constructor(params = {}) {\n this.extnID = \"\";\n this.critical = Extension.CRITICAL;\n this.extnValue = new OctetString();\n Object.assign(this, params);\n }\n}\nExtension.CRITICAL = false;\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], Extension.prototype, \"extnID\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n defaultValue: Extension.CRITICAL,\n })\n], Extension.prototype, \"critical\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], Extension.prototype, \"extnValue\", void 0);\nlet Extensions = Extensions_1 = class Extensions extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, Extensions_1.prototype);\n }\n};\nExtensions = Extensions_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: Extension })\n], Extensions);\nexport { Extensions };\n","export var Version;\n(function (Version) {\n Version[Version[\"v1\"] = 0] = \"v1\";\n Version[Version[\"v2\"] = 1] = \"v2\";\n Version[Version[\"v3\"] = 2] = \"v3\";\n})(Version || (Version = {}));\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier\";\nimport { Name } from \"./name\";\nimport { SubjectPublicKeyInfo } from \"./subject_public_key_info\";\nimport { Validity } from \"./validity\";\nimport { Extensions } from \"./extension\";\nimport { Version } from \"./types\";\nexport class TBSCertificate {\n constructor(params = {}) {\n this.version = Version.v1;\n this.serialNumber = new ArrayBuffer(0);\n this.signature = new AlgorithmIdentifier();\n this.issuer = new Name();\n this.validity = new Validity();\n this.subject = new Name();\n this.subjectPublicKeyInfo = new SubjectPublicKeyInfo();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n context: 0,\n defaultValue: Version.v1,\n })\n], TBSCertificate.prototype, \"version\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n converter: AsnIntegerArrayBufferConverter,\n })\n], TBSCertificate.prototype, \"serialNumber\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], TBSCertificate.prototype, \"signature\", void 0);\n__decorate([\n AsnProp({ type: Name })\n], TBSCertificate.prototype, \"issuer\", void 0);\n__decorate([\n AsnProp({ type: Validity })\n], TBSCertificate.prototype, \"validity\", void 0);\n__decorate([\n AsnProp({ type: Name })\n], TBSCertificate.prototype, \"subject\", void 0);\n__decorate([\n AsnProp({ type: SubjectPublicKeyInfo })\n], TBSCertificate.prototype, \"subjectPublicKeyInfo\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.BitString,\n context: 1,\n implicit: true,\n optional: true,\n })\n], TBSCertificate.prototype, \"issuerUniqueID\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString, context: 2, implicit: true, optional: true })\n], TBSCertificate.prototype, \"subjectUniqueID\", void 0);\n__decorate([\n AsnProp({ type: Extensions, context: 3, optional: true })\n], TBSCertificate.prototype, \"extensions\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier\";\nimport { TBSCertificate } from \"./tbs_certificate\";\nexport class Certificate {\n constructor(params = {}) {\n this.tbsCertificate = new TBSCertificate();\n this.signatureAlgorithm = new AlgorithmIdentifier();\n this.signatureValue = new ArrayBuffer(0);\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: TBSCertificate, raw: true })\n], Certificate.prototype, \"tbsCertificate\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], Certificate.prototype, \"signatureAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], Certificate.prototype, \"signatureValue\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier\";\nimport { Name } from \"./name\";\nimport { Time } from \"./time\";\nimport { Extension } from \"./extension\";\nexport class RevokedCertificate {\n constructor(params = {}) {\n this.userCertificate = new ArrayBuffer(0);\n this.revocationDate = new Time();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter })\n], RevokedCertificate.prototype, \"userCertificate\", void 0);\n__decorate([\n AsnProp({ type: Time })\n], RevokedCertificate.prototype, \"revocationDate\", void 0);\n__decorate([\n AsnProp({ type: Extension, optional: true, repeated: \"sequence\" })\n], RevokedCertificate.prototype, \"crlEntryExtensions\", void 0);\nexport class TBSCertList {\n constructor(params = {}) {\n this.signature = new AlgorithmIdentifier();\n this.issuer = new Name();\n this.thisUpdate = new Time();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, optional: true })\n], TBSCertList.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], TBSCertList.prototype, \"signature\", void 0);\n__decorate([\n AsnProp({ type: Name })\n], TBSCertList.prototype, \"issuer\", void 0);\n__decorate([\n AsnProp({ type: Time })\n], TBSCertList.prototype, \"thisUpdate\", void 0);\n__decorate([\n AsnProp({ type: Time, optional: true })\n], TBSCertList.prototype, \"nextUpdate\", void 0);\n__decorate([\n AsnProp({ type: RevokedCertificate, repeated: \"sequence\", optional: true })\n], TBSCertList.prototype, \"revokedCertificates\", void 0);\n__decorate([\n AsnProp({ type: Extension, optional: true, context: 0, repeated: \"sequence\" })\n], TBSCertList.prototype, \"crlExtensions\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier\";\nimport { TBSCertList } from \"./tbs_cert_list\";\nexport class CertificateList {\n constructor(params = {}) {\n this.tbsCertList = new TBSCertList();\n this.signatureAlgorithm = new AlgorithmIdentifier();\n this.signature = new ArrayBuffer(0);\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: TBSCertList, raw: true })\n], CertificateList.prototype, \"tbsCertList\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], CertificateList.prototype, \"signatureAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], CertificateList.prototype, \"signature\", void 0);\n","var PreferredSignatureAlgorithms_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnArray, AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nexport class PreferredSignatureAlgorithm {\n constructor(params = {}) {\n this.sigIdentifier = new AlgorithmIdentifier();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], PreferredSignatureAlgorithm.prototype, \"sigIdentifier\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier, optional: true })\n], PreferredSignatureAlgorithm.prototype, \"certIdentifier\", void 0);\nlet PreferredSignatureAlgorithms = PreferredSignatureAlgorithms_1 = class PreferredSignatureAlgorithms extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, PreferredSignatureAlgorithms_1.prototype);\n }\n};\nPreferredSignatureAlgorithms = PreferredSignatureAlgorithms_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence, itemType: PreferredSignatureAlgorithm })\n], PreferredSignatureAlgorithms);\nexport { PreferredSignatureAlgorithms };\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { AuthorityInfoAccessSyntax, Name } from \"@peculiar/asn1-x509\";\nexport class ServiceLocator {\n constructor(params = {}) {\n this.issuer = new Name();\n this.locator = new AuthorityInfoAccessSyntax();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: Name })\n], ServiceLocator.prototype, \"issuer\", void 0);\n__decorate([\n AsnProp({ type: AuthorityInfoAccessSyntax })\n], ServiceLocator.prototype, \"locator\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnType, AsnTypeTypes, OctetString } from \"@peculiar/asn1-schema\";\nimport { Name } from \"@peculiar/asn1-x509\";\nexport class KeyHash extends OctetString {\n}\nlet ResponderID = class ResponderID {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: Name, context: 1 })\n], ResponderID.prototype, \"byName\", void 0);\n__decorate([\n AsnProp({ type: KeyHash, context: 2 })\n], ResponderID.prototype, \"byKey\", void 0);\nResponderID = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], ResponderID);\nexport { ResponderID };\n","import { __decorate } from \"tslib\";\nimport { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, OctetString, } from \"@peculiar/asn1-schema\";\nexport class CertID {\n constructor(params = {}) {\n this.hashAlgorithm = new AlgorithmIdentifier();\n this.issuerNameHash = new OctetString();\n this.issuerKeyHash = new OctetString();\n this.serialNumber = new ArrayBuffer(0);\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], CertID.prototype, \"hashAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], CertID.prototype, \"issuerNameHash\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], CertID.prototype, \"issuerKeyHash\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter })\n], CertID.prototype, \"serialNumber\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { CRLReason } from \"@peculiar/asn1-x509\";\nexport class RevokedInfo {\n constructor(params = {}) {\n this.revocationTime = new Date();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime })\n], RevokedInfo.prototype, \"revocationTime\", void 0);\n__decorate([\n AsnProp({ type: CRLReason, context: 0, optional: true })\n], RevokedInfo.prototype, \"revocationReason\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnType, AsnTypeTypes, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { RevokedInfo } from \"./revoked_info\";\nlet CertStatus = class CertStatus {\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.Null, context: 0, implicit: true })\n], CertStatus.prototype, \"good\", void 0);\n__decorate([\n AsnProp({ type: RevokedInfo, context: 1, implicit: true })\n], CertStatus.prototype, \"revoked\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Null, context: 2, implicit: true })\n], CertStatus.prototype, \"unknown\", void 0);\nCertStatus = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], CertStatus);\nexport { CertStatus };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { CertID } from \"./cert_id\";\nimport { Extension } from \"@peculiar/asn1-x509\";\nimport { CertStatus } from \"./cert_status\";\nexport class SingleResponse {\n constructor(params = {}) {\n this.certID = new CertID();\n this.certStatus = new CertStatus();\n this.thisUpdate = new Date();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: CertID })\n], SingleResponse.prototype, \"certID\", void 0);\n__decorate([\n AsnProp({ type: CertStatus })\n], SingleResponse.prototype, \"certStatus\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime })\n], SingleResponse.prototype, \"thisUpdate\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime, context: 0, optional: true })\n], SingleResponse.prototype, \"nextUpdate\", void 0);\n__decorate([\n AsnProp({ type: Extension, context: 1, repeated: \"sequence\", optional: true })\n], SingleResponse.prototype, \"singleExtensions\", void 0);\n","export var Version;\n(function (Version) {\n Version[Version[\"v1\"] = 0] = \"v1\";\n})(Version || (Version = {}));\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { Extension } from \"@peculiar/asn1-x509\";\nimport { ResponderID } from \"./responder_id\";\nimport { SingleResponse } from \"./single_response\";\nimport { Version } from \"./types\";\nexport class ResponseData {\n constructor(params = {}) {\n this.version = Version.v1;\n this.responderID = new ResponderID();\n this.producedAt = new Date();\n this.responses = [];\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, context: 0, defaultValue: Version.v1 })\n], ResponseData.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: ResponderID })\n], ResponseData.prototype, \"responderID\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime })\n], ResponseData.prototype, \"producedAt\", void 0);\n__decorate([\n AsnProp({ type: SingleResponse, repeated: \"sequence\" })\n], ResponseData.prototype, \"responses\", void 0);\n__decorate([\n AsnProp({ type: Extension, repeated: \"sequence\", context: 1, optional: true })\n], ResponseData.prototype, \"responseExtensions\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier, Certificate } from \"@peculiar/asn1-x509\";\nimport { ResponseData } from \"./response_data\";\nexport class BasicOCSPResponse {\n constructor(params = {}) {\n this.tbsResponseData = new ResponseData();\n this.signatureAlgorithm = new AlgorithmIdentifier();\n this.signature = new ArrayBuffer(0);\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: ResponseData, raw: true })\n], BasicOCSPResponse.prototype, \"tbsResponseData\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], BasicOCSPResponse.prototype, \"signatureAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], BasicOCSPResponse.prototype, \"signature\", void 0);\n__decorate([\n AsnProp({ type: Certificate, repeated: \"sequence\", optional: true, context: 0 })\n], BasicOCSPResponse.prototype, \"certs\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier, Certificate } from \"@peculiar/asn1-x509\";\nexport class Signature {\n constructor(params = {}) {\n this.signatureAlgorithm = new AlgorithmIdentifier();\n this.signature = new ArrayBuffer(0);\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], Signature.prototype, \"signatureAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], Signature.prototype, \"signature\", void 0);\n__decorate([\n AsnProp({ type: Certificate, repeated: \"sequence\", optional: true, context: 0 })\n], Signature.prototype, \"certs\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { CertID } from \"./cert_id\";\nimport { Extension } from \"@peculiar/asn1-x509\";\nexport class Request {\n constructor(params = {}) {\n this.reqCert = new CertID();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: CertID })\n], Request.prototype, \"reqCert\", void 0);\n__decorate([\n AsnProp({ type: Extension, repeated: \"sequence\", optional: true })\n], Request.prototype, \"singleRequestExtensions\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralName, Extension } from \"@peculiar/asn1-x509\";\nimport { Request } from \"./request\";\nimport { Version } from \"./types\";\nexport class TBSRequest {\n constructor(params = {}) {\n this.version = Version.v1;\n this.requestList = [];\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer, context: 0, defaultValue: Version.v1 })\n], TBSRequest.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: GeneralName, context: 1, optional: true })\n], TBSRequest.prototype, \"requestorName\", void 0);\n__decorate([\n AsnProp({ type: Request, repeated: \"sequence\" })\n], TBSRequest.prototype, \"requestList\", void 0);\n__decorate([\n AsnProp({ type: Extension, context: 2, optional: true, repeated: \"sequence\" })\n], TBSRequest.prototype, \"requestExtensions\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { Signature } from \"./signature\";\nimport { TBSRequest } from \"./tbs_request\";\nexport class OCSPRequest {\n constructor(params = {}) {\n this.tbsRequest = new TBSRequest();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: TBSRequest, raw: true })\n], OCSPRequest.prototype, \"tbsRequest\", void 0);\n__decorate([\n AsnProp({ type: Signature, optional: true, context: 0 })\n], OCSPRequest.prototype, \"optionalSignature\", void 0);\n","export var OCSPResponseStatus;\n(function (OCSPResponseStatus) {\n OCSPResponseStatus[OCSPResponseStatus[\"successful\"] = 0] = \"successful\";\n OCSPResponseStatus[OCSPResponseStatus[\"malformedRequest\"] = 1] = \"malformedRequest\";\n OCSPResponseStatus[OCSPResponseStatus[\"internalError\"] = 2] = \"internalError\";\n OCSPResponseStatus[OCSPResponseStatus[\"tryLater\"] = 3] = \"tryLater\";\n OCSPResponseStatus[OCSPResponseStatus[\"sigRequired\"] = 5] = \"sigRequired\";\n OCSPResponseStatus[OCSPResponseStatus[\"unauthorized\"] = 6] = \"unauthorized\";\n})(OCSPResponseStatus || (OCSPResponseStatus = {}));\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, OctetString } from \"@peculiar/asn1-schema\";\nexport class ResponseBytes {\n constructor(params = {}) {\n this.responseType = \"\";\n this.response = new OctetString();\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], ResponseBytes.prototype, \"responseType\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], ResponseBytes.prototype, \"response\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { OCSPResponseStatus } from \"./ocsp_response_status\";\nimport { ResponseBytes } from \"./response_bytes\";\nexport class OCSPResponse {\n constructor(params = {}) {\n this.responseStatus = OCSPResponseStatus.successful;\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Enumerated })\n], OCSPResponse.prototype, \"responseStatus\", void 0);\n__decorate([\n AsnProp({ type: ResponseBytes, context: 0, optional: true })\n], OCSPResponse.prototype, \"responseBytes\", void 0);\n",null,null,null],"names":["pvtsutils.BufferSourceConverter","pvtsutils.Convert","pvutils.utilToBase","pvutils.utilFromBase","pvutils.isEqualBuffer","pvutils.utilDecodeTC","Boolean","OctetString","BitString","pvutils.utilConcatView","pvutils.utilEncodeTC","pvutils.padNumber","asn1js.BitString","asn1js.OctetString","asn1js.Null","asn1js.fromBER","asn1js.Integer","asn1js.Enumerated","asn1js.ObjectIdentifier","asn1js.Boolean","asn1js.Utf8String","asn1js.BmpString","asn1js.UniversalString","asn1js.NumericString","asn1js.PrintableString","asn1js.TeletexString","asn1js.VideotexString","asn1js.IA5String","asn1js.GraphicString","asn1js.VisibleString","asn1js.GeneralString","asn1js.CharacterString","asn1js.UTCTime","asn1js.GeneralizedTime","asn1js.Any","asn1js.Set","asn1js.Sequence","asn1js.Repeated","asn1js.Constructed","asn1js.Primitive","asn1js.Choice","defaultConverter","converters.defaultConverter","pvtsutils.isEqual","Version"],"mappings":"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"}
|