edockit 0.4.0-dev.1 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -1
- package/README.md +3 -7
- package/dist/{certificate-3c9dcdac.js → certificate-85461237.js} +11 -11
- package/dist/certificate-85461237.js.map +1 -0
- package/dist/{certificate-c7123a37.js → certificate-e6d074b8.js} +11 -11
- package/dist/certificate-e6d074b8.js.map +1 -0
- package/dist/core/parser/types.d.ts +16 -0
- package/dist/core/revocation/index.d.ts +1 -1
- package/dist/core/revocation/ocsp.d.ts +21 -0
- package/dist/core/trustedlist/build.d.ts +2 -1
- package/dist/core/trustedlist/index.d.ts +13 -0
- package/dist/core/trustedlist/loader.d.ts +14 -0
- package/dist/core/trustedlist/types.d.ts +4 -0
- package/dist/{identity-fca881b1.js → identity-2eb76bc9.js} +80 -7
- package/dist/identity-2eb76bc9.js.map +1 -0
- package/dist/{identity-c9e5052e.js → identity-d8910151.js} +77 -3
- package/dist/identity-d8910151.js.map +1 -0
- package/dist/index.cjs.js +3566 -164
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +3567 -165
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +17 -17
- package/dist/index.umd.js.map +1 -1
- package/dist/{loader-ad1a5051.js → loader-776cb996.js} +21 -3
- package/dist/loader-776cb996.js.map +1 -0
- package/dist/{loader-7a0f771f.js → loader-9ce42535.js} +21 -2
- package/dist/loader-9ce42535.js.map +1 -0
- package/dist/{reference-provider-3838ebfb.js → reference-provider-1dd56087.js} +3 -3
- package/dist/{reference-provider-3838ebfb.js.map → reference-provider-1dd56087.js.map} +1 -1
- package/dist/{reference-provider-9bbbaab8.js → reference-provider-50466d83.js} +3 -3
- package/dist/{reference-provider-9bbbaab8.js.map → reference-provider-50466d83.js.map} +1 -1
- package/dist/trusted-list-build.cjs.js +65 -30
- package/dist/trusted-list-build.cjs.js.map +1 -1
- package/dist/trusted-list-build.esm.js +64 -28
- package/dist/trusted-list-build.esm.js.map +1 -1
- package/dist/trusted-list-bundled.cjs.js +4 -30392
- package/dist/trusted-list-bundled.cjs.js.map +1 -1
- package/dist/trusted-list-bundled.esm.js +4 -30392
- package/dist/trusted-list-bundled.esm.js.map +1 -1
- package/dist/trusted-list.cjs.js +3 -3
- package/dist/trusted-list.esm.js +3 -3
- package/package.json +8 -1
- package/dist/certificate-3c9dcdac.js.map +0 -1
- package/dist/certificate-c7123a37.js.map +0 -1
- package/dist/identity-c9e5052e.js.map +0 -1
- package/dist/identity-fca881b1.js.map +0 -1
- package/dist/loader-7a0f771f.js.map +0 -1
- package/dist/loader-ad1a5051.js.map +0 -1
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/core/canonicalization/XMLCanonicalizer.ts","../src/core/parser/certificateUtils.ts","../src/core/parser/signatureParser.ts","../src/core/parser.ts","../src/core/rsa-modulus-padding-fix.ts","../src/core/revocation/types.ts","../src/core/revocation/crl.ts","../src/core/revocation/check.ts","../src/core/timestamp/verify.ts","../src/core/rsa-digestinfo-workaround.ts","../src/core/verification.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["querySelector","createXMLParser","querySelectorAll","XmlParserModule.serializeToXML","certificate","x509","X509Certificate","extractSignerInfo","unzipSync","X509Crl","arrayBufferToBase64","fetchCRL","checkOCSP","base64ToArrayBuffer","AsnConvert","ContentInfo","SignedData","TSTInfo","arrayBufferToPEM","arrayBufferToHex","isBrowser","checkCertificateValidity","parseCertificate","base64ToUint8Array","extractIssuerIdentityFromCertificate","extractCertificateIdentityFromCertificate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/core/canonicalization/XMLCanonicalizer.ts","../src/core/parser/certificateUtils.ts","../src/core/parser/signatureParser.ts","../src/core/parser.ts","../src/core/rsa-modulus-padding-fix.ts","../src/core/revocation/types.ts","../node_modules/pvtsutils/build/index.es.js","../node_modules/pvutils/build/utils.es.js","../node_modules/asn1js/build/index.es.js","../src/core/revocation/crl.ts","../src/core/revocation/check.ts","../src/core/timestamp/verify.ts","../src/core/rsa-digestinfo-workaround.ts","../src/core/verification.ts"],"sourcesContent":[null,null,null,null,null,null,"/*!\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, _context) {\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, _context) {\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 = 0;\n while (true) {\n const tagByteIndex = count + 1;\n if (tagByteIndex >= intBuffer.length) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n count++;\n if ((intBuffer[tagByteIndex] & 0x80) === 0x00)\n break;\n }\n this.blockLength = (count + 1);\n const intTagNumberBuffer = this.valueHexView = new Uint8Array(count);\n for (let i = 0; i < count; i++)\n intTagNumberBuffer[i] = intBuffer[i + 1] & 0x7F;\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, context) {\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm)\n ? inputLength\n : this.lenBlock.length, context);\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\nconst DEFAULT_MAX_DEPTH = 100;\nconst DEFAULT_MAX_NODES = 10000;\nconst DEFAULT_MAX_CONTENT_LENGTH = 16 * 1024 * 1024;\nconst MAX_DEPTH_EXCEEDED_ERROR = \"Maximum ASN.1 nesting depth exceeded\";\nconst MAX_NODES_EXCEEDED_ERROR = \"Maximum ASN.1 node count exceeded\";\nconst MAX_CONTENT_LENGTH_EXCEEDED_ERROR = \"Maximum ASN.1 content length exceeded\";\nfunction createFromBerContext(options = {}) {\n var _a, _b, _c;\n return {\n depth: 0,\n maxDepth: (_a = options.maxDepth) !== null && _a !== void 0 ? _a : DEFAULT_MAX_DEPTH,\n nodesCount: 0,\n maxNodes: (_b = options.maxNodes) !== null && _b !== void 0 ? _b : DEFAULT_MAX_NODES,\n maxContentLength: (_c = options.maxContentLength) !== null && _c !== void 0 ? _c : DEFAULT_MAX_CONTENT_LENGTH,\n };\n}\nfunction createErrorResult(error) {\n const result = new BaseBlock({}, ValueBlock);\n result.error = error;\n return {\n offset: -1,\n result,\n };\n}\nfunction checkNodesLimit(context) {\n context.nodesCount += 1;\n if (context.nodesCount > context.maxNodes) {\n return MAX_NODES_EXCEEDED_ERROR;\n }\n return undefined;\n}\nfunction checkContentLengthLimit(inputLength, context) {\n if (inputLength > context.maxContentLength) {\n return MAX_CONTENT_LENGTH_EXCEEDED_ERROR;\n }\n return undefined;\n}\nfunction localFromBERWithChildContext(inputBuffer, inputOffset, inputLength, context) {\n const childDepth = context.depth + 1;\n if (childDepth > context.maxDepth) {\n return createErrorResult(MAX_DEPTH_EXCEEDED_ERROR);\n }\n context.depth = childDepth;\n try {\n return localFromBER(inputBuffer, inputOffset, inputLength, context);\n }\n finally {\n context.depth -= 1;\n }\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, context = createFromBerContext()) {\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 const nodesLimitError = checkNodesLimit(context);\n if (nodesLimitError) {\n returnObject.error = nodesLimitError;\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 const valueLength = returnObject.lenBlock.isIndefiniteForm ? inputLength : returnObject.lenBlock.length;\n const contentLengthError = checkContentLengthLimit(valueLength, context);\n if (contentLengthError) {\n returnObject.error = contentLengthError;\n return {\n offset: -1,\n result: returnObject,\n };\n }\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, valueLength, context);\n returnObject.valueBeforeDecodeView = inputBuffer.subarray(incomingOffset, incomingOffset + returnObject.blockLength);\n return {\n offset: resultOffset,\n result: returnObject,\n };\n}\nfunction fromBER(inputBuffer, options = {}) {\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, createFromBerContext(options));\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, context) {\n const view = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n const parseContext = context !== null && context !== void 0 ? context : createFromBerContext();\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 = localFromBERWithChildContext(view, currentOffset, inputLength, parseContext);\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, context) {\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length, context);\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, context) {\n let resultOffset = 0;\n if (this.isConstructed) {\n this.isHexOnly = false;\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength, context);\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, context) {\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 parseContext = context !== null && context !== void 0 ? context : createFromBerContext();\n const asn = localFromBERWithChildContext(buf, 0, buf.byteLength, parseContext);\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, context);\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, context) {\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, context);\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 parseContext = context !== null && context !== void 0 ? context : createFromBerContext();\n const asn = localFromBERWithChildContext(buf, 0, buf.byteLength, parseContext);\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, context) {\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n return super.fromBER(inputBuffer, inputOffset, inputLength, context);\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, DEFAULT_MAX_CONTENT_LENGTH, DEFAULT_MAX_DEPTH, DEFAULT_MAX_NODES, 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",null,null,null,null,null],"names":["querySelector","createXMLParser","querySelectorAll","XmlParserModule.serializeToXML","certificate","x509","X509Certificate","extractSignerInfo","unzipSync","pvtsutils.BufferSourceConverter","pvtsutils.Convert","pvutils.utilToBase","pvutils.utilFromBase","pvutils.isEqualBuffer","pvutils.utilDecodeTC","Boolean","pvutils.utilConcatView","pvutils.utilEncodeTC","Set","pvutils.padNumber","base64ToArrayBuffer","AsnParser","CertificateList","X509Crl","arrayBufferToBase64","fetchCRL","checkOCSP","AsnConvert","ContentInfo","SignedData","TSTInfo","arrayBufferToPEM","arrayBufferToHex","isBrowser","checkCertificateValidity","parseCertificate","base64ToUint8Array","extractCertsFromOCSPResponses","extractIssuerIdentityFromCertificate","extractCertificateIdentityFromCertificate"],"mappings":"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"}
|