From bb968c2f1bb7ca8c3b71718be6330acb36286f1c Mon Sep 17 00:00:00 2001 From: wangyx <2838268875@qq.com> Date: Fri, 11 Jul 2025 21:57:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- node_modules/.package-lock.json | 6 + node_modules/jsencrypt/LICENSE.txt | 107 + node_modules/jsencrypt/README.md | 192 + node_modules/jsencrypt/bin/jsencrypt.js | 263 + node_modules/jsencrypt/bin/jsencrypt.min.js | 2 + .../bin/jsencrypt.min.js.LICENSE.txt | 8 + node_modules/jsencrypt/lib/JSEncrypt.d.ts | 116 + node_modules/jsencrypt/lib/JSEncrypt.js | 192 + .../jsencrypt/lib/JSEncryptRSAKey.d.ts | 142 + node_modules/jsencrypt/lib/JSEncryptRSAKey.js | 320 + node_modules/jsencrypt/lib/index.d.ts | 3 + node_modules/jsencrypt/lib/index.js | 3 + .../jsencrypt/lib/lib/asn1js/asn1.d.ts | 51 + node_modules/jsencrypt/lib/lib/asn1js/asn1.js | 565 + .../jsencrypt/lib/lib/asn1js/base64.d.ts | 5 + .../jsencrypt/lib/lib/asn1js/base64.js | 88 + .../jsencrypt/lib/lib/asn1js/hex.d.ts | 3 + node_modules/jsencrypt/lib/lib/asn1js/hex.js | 64 + .../jsencrypt/lib/lib/asn1js/int10.d.ts | 9 + .../jsencrypt/lib/lib/asn1js/int10.js | 87 + .../jsencrypt/lib/lib/asn1js/oids.d.ts | 9778 +++++++++++++++++ node_modules/jsencrypt/lib/lib/asn1js/oids.js | 1962 ++++ .../jsencrypt/lib/lib/jsbn/base64.d.ts | 3 + node_modules/jsencrypt/lib/lib/jsbn/base64.js | 76 + node_modules/jsencrypt/lib/lib/jsbn/jsbn.d.ts | 98 + node_modules/jsencrypt/lib/lib/jsbn/jsbn.js | 1754 +++ .../jsencrypt/lib/lib/jsbn/prng4.d.ts | 10 + node_modules/jsencrypt/lib/lib/jsbn/prng4.js | 46 + node_modules/jsencrypt/lib/lib/jsbn/rng.d.ts | 3 + node_modules/jsencrypt/lib/lib/jsbn/rng.js | 78 + node_modules/jsencrypt/lib/lib/jsbn/rsa.d.ts | 23 + node_modules/jsencrypt/lib/lib/jsbn/rsa.js | 373 + node_modules/jsencrypt/lib/lib/jsbn/util.d.ts | 7 + node_modules/jsencrypt/lib/lib/jsbn/util.js | 58 + .../jsencrypt/lib/lib/jsrsasign/asn1-1.0.js | 1593 +++ .../jsencrypt/lib/lib/jsrsasign/yahoo.js | 69 + node_modules/jsencrypt/lib/version.json | 1 + node_modules/jsencrypt/package.json | 71 + package-lock.json | 7 + package.json | 1 + pages/api.js | 32 +- pages/login/login.vue | 149 +- pagesA/checkout/list/list.vue | 30 +- utils/config.js | 2 +- utils/jsencrypt.js | 20 + utils/request.js | 9 +- 46 files changed, 18451 insertions(+), 28 deletions(-) create mode 100644 node_modules/jsencrypt/LICENSE.txt create mode 100644 node_modules/jsencrypt/README.md create mode 100644 node_modules/jsencrypt/bin/jsencrypt.js create mode 100644 node_modules/jsencrypt/bin/jsencrypt.min.js create mode 100644 node_modules/jsencrypt/bin/jsencrypt.min.js.LICENSE.txt create mode 100644 node_modules/jsencrypt/lib/JSEncrypt.d.ts create mode 100644 node_modules/jsencrypt/lib/JSEncrypt.js create mode 100644 node_modules/jsencrypt/lib/JSEncryptRSAKey.d.ts create mode 100644 node_modules/jsencrypt/lib/JSEncryptRSAKey.js create mode 100644 node_modules/jsencrypt/lib/index.d.ts create mode 100644 node_modules/jsencrypt/lib/index.js create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/asn1.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/asn1.js create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/base64.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/base64.js create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/hex.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/hex.js create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/int10.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/int10.js create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/oids.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/asn1js/oids.js create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/base64.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/base64.js create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/jsbn.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/jsbn.js create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/prng4.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/prng4.js create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/rng.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/rng.js create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/rsa.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/rsa.js create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/util.d.ts create mode 100644 node_modules/jsencrypt/lib/lib/jsbn/util.js create mode 100644 node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js create mode 100644 node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js create mode 100644 node_modules/jsencrypt/lib/version.json create mode 100644 node_modules/jsencrypt/package.json create mode 100644 utils/jsencrypt.js diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index c89aa81..d4cbe79 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -841,6 +841,12 @@ "node": ">= 10.13.0" } }, + "node_modules/jsencrypt": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.3.2.tgz", + "integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==", + "license": "MIT" + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", diff --git a/node_modules/jsencrypt/LICENSE.txt b/node_modules/jsencrypt/LICENSE.txt new file mode 100644 index 0000000..8be95e3 --- /dev/null +++ b/node_modules/jsencrypt/LICENSE.txt @@ -0,0 +1,107 @@ +File: /src/LICENSE.txt +The MIT License (MIT) +Copyright (c) 2015 Form.io + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in the +Software without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the +Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +File: /lib/jsrsasign/LICENSE.txt + + +CONTAINS CODE FROM YUI LIBRARY SEE LICENSE @ http://yuilibrary.com/license/ + +The 'jsrsasign'(RSA-Sign JavaScript Library) License + +Copyright (c) 2010-2013 Kenji Urushima + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +File: /lib/jsbn/LICENSE.txt + + +Licensing +--------- + +This software is covered under the following copyright: + +/* + * Copyright (c) 2003-2005 Tom Wu + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER + * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF + * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT + * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * In addition, the following condition applies: + * + * All redistributions must retain an intact copy of this copyright notice + * and disclaimer. + */ + +Address all questions regarding this license to: + + Tom Wu + tjw@cs.Stanford.EDU +File: /lib/asn1js/LICENSE.txt + + +ASN.1 JavaScript decoder +Copyright (c) 2008-2013 Lapo Luchini + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/node_modules/jsencrypt/README.md b/node_modules/jsencrypt/README.md new file mode 100644 index 0000000..f37ac3e --- /dev/null +++ b/node_modules/jsencrypt/README.md @@ -0,0 +1,192 @@ +Website +====================== +http://travistidwell.com/jsencrypt + +Introduction +====================== +When browsing the internet looking for a good solution to RSA Javascript +encryption, there is a whole slew of libraries that basically take the fantastic +work done by Tom Wu @ http://www-cs-students.stanford.edu/~tjw/jsbn/ and then +modify that code to do what they want. + +What I couldn't find, however, was a simple wrapper around this library that +basically uses the library practically untouched, but adds a wrapper to provide parsing of +actual Private and Public key-pairs generated with OpenSSL. + +This library is the result of these efforts. + +How to use this library. +======================= +This library should work hand-in-hand with openssl. With that said, here is how to use this library. + + - Within your terminal (Unix based OS) type the following. + +``` +openssl genrsa -out rsa_1024_priv.pem 1024 +``` + + - This generates a private key, which you can see by doing the following... + +``` +cat rsa_1024_priv.pem +``` + + - You can then copy and paste this in the Private Key section of within index.html. + - Next, you can then get the public key by executing the following command. + +``` +openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem +``` + + - You can see the public key by typing... + +``` +cat rsa_1024_pub.pem +``` + + - Now copy and paste this in the Public key within the index.html. + - Now you can then convert to and from encrypted text by doing the following in code. + + +```html + + + + JavaScript RSA Encryption + + + + + +
+
+
+
+
+
+
+ + +``` + + - Look at how http://www.travistidwell.com/jsencrypt/demo works to get a better idea. + + - Signing and verification works in a similar way. + +```javascript +// Sign with the private key... +var sign = new JSEncrypt(); +sign.setPrivateKey($('#privkey').val()); +var signature = sign.sign($('#input').val(), CryptoJS.SHA256, "sha256"); + +// Verify with the public key... +var verify = new JSEncrypt(); +verify.setPublicKey($('#pubkey').val()); +var verified = verify.verify($('#input').val(), signature, CryptoJS.SHA256); + +// Now a simple check to see if the round-trip worked. +if (verified) { + alert('It works!!!'); +} +else { + alert('Something went wrong....'); +} +``` + +- Note that you have to provide the hash function. In this example we use one from the [CryptoJS](https://github.com/brix/crypto-js) library, but you can use whichever you want. +- Also, unless you use a custom hash function, you should provide the hash type to the `sign` method. Possible values are: `md2`, `md5`, `sha1`, `sha224`, `sha256`, `sha384`, `sha512`, `ripemd160`. + +Other Information +======================== + +This library heavily utilizes the wonderful work of Tom Wu found at http://www-cs-students.stanford.edu/~tjw/jsbn/. + +This jsbn library was written using the raw variables to perform encryption. This is great for encryption, but most private keys use a Private Key in the PEM format seen below. + +1024 bit RSA Private Key in Base64 Format +----------------------------------------- +``` +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDHikastc8+I81zCg/qWW8dMr8mqvXQ3qbPAmu0RjxoZVI47tvs +kYlFAXOf0sPrhO2nUuooJngnHV0639iTTEYG1vckNaW2R6U5QTdQ5Rq5u+uV3pMk +7w7Vs4n3urQ6jnqt2rTXbC1DNa/PFeAZatbf7ffBBy0IGO0zc128IshYcwIDAQAB +AoGBALTNl2JxTvq4SDW/3VH0fZkQXWH1MM10oeMbB2qO5beWb11FGaOO77nGKfWc +bYgfp5Ogrql4yhBvLAXnxH8bcqqwORtFhlyV68U1y4R+8WxDNh0aevxH8hRS/1X5 +031DJm1JlU0E+vStiktN0tC3ebH5hE+1OxbIHSZ+WOWLYX7JAkEA5uigRgKp8ScG +auUijvdOLZIhHWq7y5Wz+nOHUuDw8P7wOTKU34QJAoWEe771p9Pf/GTA/kr0BQnP +QvWUDxGzJwJBAN05C6krwPeryFKrKtjOGJIniIoY72wRnoNcdEEs3HDRhf48YWFo +riRbZylzzzNFy/gmzT6XJQTfktGqq+FZD9UCQGIJaGrxHJgfmpDuAhMzGsUsYtTr +iRox0D1Iqa7dhE693t5aBG010OF6MLqdZA1CXrn5SRtuVVaCSLZEL/2J5UcCQQDA +d3MXucNnN4NPuS/L9HMYJWD7lPoosaORcgyK77bSSNgk+u9WSjbH1uYIAIPSffUZ +bti+jc1dUg5wb+aeZlgJAkEAurrpmpqj5vg087ZngKfFGR5rozDiTsK5DceTV97K +a3Y+Nzl+XWTxDBWk4YPh2ZlKv402hZEfWBYxUDn5ZkH/bw== +-----END RSA PRIVATE KEY----- +``` + +This library simply takes keys in the following format, and translates it to those variables needed to perform the encryptions used in Tom Wu's library. + +Here are some good resources to investigate further. + - http://etherhack.co.uk/asymmetric/docs/rsa_key_breakdown.html + - http://www.di-mgt.com.au/rsa_alg.html + - https://polarssl.org/kb/cryptography/asn1-key-structures-in-der-and-pem + +With this information, we can translate a private key format to the variables +required with the jsbn library from Tom Wu by using the following mappings. + +``` +modulus => n +public exponent => e +private exponent => d +prime1 => p +prime2 => q +exponent1 => dmp1 +exponent2 => dmq1 +coefficient => coeff +``` + diff --git a/node_modules/jsencrypt/bin/jsencrypt.js b/node_modules/jsencrypt/bin/jsencrypt.js new file mode 100644 index 0000000..97d528b --- /dev/null +++ b/node_modules/jsencrypt/bin/jsencrypt.js @@ -0,0 +1,263 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["JSEncrypt"] = factory(); + else + root["JSEncrypt"] = factory(); +})(window, () => { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./lib/JSEncrypt.js": +/*!**************************!*\ + !*** ./lib/JSEncrypt.js ***! + \**************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* binding */ JSEncrypt)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./JSEncryptRSAKey */ \"./lib/JSEncryptRSAKey.js\");\n/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \"./node_modules/process/browser.js\");\nvar _a;\n\n\nvar version = typeof process !== 'undefined'\n ? (_a = process.env) === null || _a === void 0 ? void 0 : \"3.3.2\"\n : undefined;\n/**\n *\n * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour\n * possible parameters are:\n * - default_key_size {number} default: 1024 the key size in bit\n * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent\n * - log {boolean} default: false whether log warn/error or not\n * @constructor\n */\nvar JSEncrypt = /** @class */ (function () {\n function JSEncrypt(options) {\n if (options === void 0) { options = {}; }\n options = options || {};\n this.default_key_size = options.default_key_size\n ? parseInt(options.default_key_size, 10)\n : 1024;\n this.default_public_exponent = options.default_public_exponent || \"010001\"; // 65537 default openssl public exponent for rsa key type\n this.log = options.log || false;\n // The private and public key.\n this.key = null;\n }\n /**\n * Method to set the rsa key parameter (one method is enough to set both the public\n * and the private key, since the private key contains the public key paramenters)\n * Log a warning if logs are enabled\n * @param {Object|string} key the pem encoded string or an object (with or without header/footer)\n * @public\n */\n JSEncrypt.prototype.setKey = function (key) {\n if (this.log && this.key) {\n console.warn(\"A key was already set, overriding existing.\");\n }\n this.key = new _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__.JSEncryptRSAKey(key);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPrivateKey = function (privkey) {\n // Create the key.\n this.setKey(privkey);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPublicKey = function (pubkey) {\n // Sets the public key.\n this.setKey(pubkey);\n };\n /**\n * Proxy method for RSAKey object's decrypt, decrypt the string using the private\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str base64 encoded crypted string to decrypt\n * @return {string} the decrypted string\n * @public\n */\n JSEncrypt.prototype.decrypt = function (str) {\n // Return the decrypted string.\n try {\n return this.getKey().decrypt((0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.b64tohex)(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's encrypt, encrypt the string using the public\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str the string to encrypt\n * @return {string} the encrypted string encoded in base64\n * @public\n */\n JSEncrypt.prototype.encrypt = function (str) {\n // Return the encrypted string.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().encrypt(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's sign.\n * @param {string} str the string to sign\n * @param {function} digestMethod hash method\n * @param {string} digestName the name of the hash algorithm\n * @return {string} the signature encoded in base64\n * @public\n */\n JSEncrypt.prototype.sign = function (str, digestMethod, digestName) {\n // return the RSA signature of 'str' in 'hex' format.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().sign(str, digestMethod, digestName));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's verify.\n * @param {string} str the string to verify\n * @param {string} signature the signature encoded in base64 to compare the string to\n * @param {function} digestMethod hash method\n * @return {boolean} whether the data and signature match\n * @public\n */\n JSEncrypt.prototype.verify = function (str, signature, digestMethod) {\n // Return the decrypted 'digest' of the signature.\n try {\n return this.getKey().verify(str, (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.b64tohex)(signature), digestMethod);\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Getter for the current JSEncryptRSAKey object. If it doesn't exists a new object\n * will be created and returned\n * @param {callback} [cb] the callback to be called if we want the key to be generated\n * in an async fashion\n * @returns {JSEncryptRSAKey} the JSEncryptRSAKey object\n * @public\n */\n JSEncrypt.prototype.getKey = function (cb) {\n // Only create new if it does not exist.\n if (!this.key) {\n // Get a new private key.\n this.key = new _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__.JSEncryptRSAKey();\n if (cb && {}.toString.call(cb) === \"[object Function]\") {\n this.key.generateAsync(this.default_key_size, this.default_public_exponent, cb);\n return;\n }\n // Generate the key.\n this.key.generate(this.default_key_size, this.default_public_exponent);\n }\n return this.key;\n };\n /**\n * Returns the pem encoded representation of the private key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the private key WITH header and footer\n * @public\n */\n JSEncrypt.prototype.getPrivateKey = function () {\n // Return the private representation of this key.\n return this.getKey().getPrivateKey();\n };\n /**\n * Returns the pem encoded representation of the private key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the private key WITHOUT header and footer\n * @public\n */\n JSEncrypt.prototype.getPrivateKeyB64 = function () {\n // Return the private representation of this key.\n return this.getKey().getPrivateBaseKeyB64();\n };\n /**\n * Returns the pem encoded representation of the public key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the public key WITH header and footer\n * @public\n */\n JSEncrypt.prototype.getPublicKey = function () {\n // Return the private representation of this key.\n return this.getKey().getPublicKey();\n };\n /**\n * Returns the pem encoded representation of the public key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the public key WITHOUT header and footer\n * @public\n */\n JSEncrypt.prototype.getPublicKeyB64 = function () {\n // Return the private representation of this key.\n return this.getKey().getPublicBaseKeyB64();\n };\n JSEncrypt.version = version;\n return JSEncrypt;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/JSEncrypt.js?"); + +/***/ }), + +/***/ "./lib/JSEncryptRSAKey.js": +/*!********************************!*\ + !*** ./lib/JSEncryptRSAKey.js ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncryptRSAKey\": () => (/* binding */ JSEncryptRSAKey)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/asn1js/hex */ \"./lib/lib/asn1js/hex.js\");\n/* harmony import */ var _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/asn1js/base64 */ \"./lib/lib/asn1js/base64.js\");\n/* harmony import */ var _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/asn1js/asn1 */ \"./lib/lib/asn1js/asn1.js\");\n/* harmony import */ var _lib_jsbn_rsa__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/jsbn/rsa */ \"./lib/lib/jsbn/rsa.js\");\n/* harmony import */ var _lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/jsrsasign/asn1-1.0 */ \"./lib/lib/jsrsasign/asn1-1.0.js\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\n\n\n/**\n * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.\n * This object is just a decorator for parsing the key parameter\n * @param {string|Object} key - The key in string format, or an object containing\n * the parameters needed to build a RSAKey object.\n * @constructor\n */\nvar JSEncryptRSAKey = /** @class */ (function (_super) {\n __extends(JSEncryptRSAKey, _super);\n function JSEncryptRSAKey(key) {\n var _this = _super.call(this) || this;\n // Call the super constructor.\n // RSAKey.call(this);\n // If a key key was provided.\n if (key) {\n // If this is a string...\n if (typeof key === \"string\") {\n _this.parseKey(key);\n }\n else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) ||\n JSEncryptRSAKey.hasPublicKeyProperty(key)) {\n // Set the values for the key.\n _this.parsePropertiesFrom(key);\n }\n }\n return _this;\n }\n /**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\n JSEncryptRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__.Hex.decode(pem) : _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.unarmor(pem);\n var asn1 = _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__.ASN1.decode(der);\n // Fixes a bug with OpenSSL 1.0+ private keys\n if (asn1.sub.length === 3) {\n asn1 = asn1.sub[2].sub[0];\n }\n if (asn1.sub.length === 9) {\n // Parse the private key.\n modulus = asn1.sub[1].getHexStringValue(); // bigint\n this.n = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(modulus, 16);\n public_exponent = asn1.sub[2].getHexStringValue(); // int\n this.e = parseInt(public_exponent, 16);\n var private_exponent = asn1.sub[3].getHexStringValue(); // bigint\n this.d = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(private_exponent, 16);\n var prime1 = asn1.sub[4].getHexStringValue(); // bigint\n this.p = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(prime1, 16);\n var prime2 = asn1.sub[5].getHexStringValue(); // bigint\n this.q = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(prime2, 16);\n var exponent1 = asn1.sub[6].getHexStringValue(); // bigint\n this.dmp1 = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(exponent1, 16);\n var exponent2 = asn1.sub[7].getHexStringValue(); // bigint\n this.dmq1 = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(exponent2, 16);\n var coefficient = asn1.sub[8].getHexStringValue(); // bigint\n this.coeff = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(coefficient, 16);\n }\n else if (asn1.sub.length === 2) {\n if (asn1.sub[0].sub) {\n // Parse ASN.1 SubjectPublicKeyInfo type as defined by X.509\n var bit_string = asn1.sub[1];\n var sequence = bit_string.sub[0];\n modulus = sequence.sub[0].getHexStringValue();\n this.n = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(modulus, 16);\n public_exponent = sequence.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n }\n else {\n // Parse ASN.1 RSAPublicKey type as defined by PKCS #1\n modulus = asn1.sub[0].getHexStringValue();\n this.n = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(modulus, 16);\n public_exponent = asn1.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n }\n }\n else {\n return false;\n }\n return true;\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Translate rsa parameters in a hex encoded string representing the rsa key.\n *\n * The translation follow the ASN.1 notation :\n * RSAPrivateKey ::= SEQUENCE {\n * version Version,\n * modulus INTEGER, -- n\n * publicExponent INTEGER, -- e\n * privateExponent INTEGER, -- d\n * prime1 INTEGER, -- p\n * prime2 INTEGER, -- q\n * exponent1 INTEGER, -- d mod (p1)\n * exponent2 INTEGER, -- d mod (q-1)\n * coefficient INTEGER, -- (inverse of q) mod p\n * }\n * @returns {string} DER Encoded String representing the rsa private key\n * @private\n */\n JSEncryptRSAKey.prototype.getPrivateBaseKey = function () {\n var options = {\n array: [\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ int: 0 }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.n }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ int: this.e }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.d }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.p }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.q }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.dmp1 }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.dmq1 }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.coeff }),\n ],\n };\n var seq = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERSequence(options);\n return seq.getEncodedHex();\n };\n /**\n * base64 (pem) encoded version of the DER encoded representation\n * @returns {string} pem encoded representation without header and footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPrivateBaseKeyB64 = function () {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getPrivateBaseKey());\n };\n /**\n * Translate rsa parameters in a hex encoded string representing the rsa public key.\n * The representation follow the ASN.1 notation :\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * @returns {string} DER Encoded String representing the rsa public key\n * @private\n */\n JSEncryptRSAKey.prototype.getPublicBaseKey = function () {\n var first_sequence = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERSequence({\n array: [\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERObjectIdentifier({ oid: \"1.2.840.113549.1.1.1\" }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERNull(),\n ],\n });\n var second_sequence = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERSequence({\n array: [\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.n }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ int: this.e }),\n ],\n });\n var bit_string = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERBitString({\n hex: \"00\" + second_sequence.getEncodedHex(),\n });\n var seq = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERSequence({\n array: [first_sequence, bit_string],\n });\n return seq.getEncodedHex();\n };\n /**\n * base64 (pem) encoded version of the DER encoded representation\n * @returns {string} pem encoded representation without header and footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPublicBaseKeyB64 = function () {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getPublicBaseKey());\n };\n /**\n * wrap the string in block of width chars. The default value for rsa keys is 64\n * characters.\n * @param {string} str the pem encoded string without header and footer\n * @param {Number} [width=64] - the length the string has to be wrapped at\n * @returns {string}\n * @private\n */\n JSEncryptRSAKey.wordwrap = function (str, width) {\n width = width || 64;\n if (!str) {\n return str;\n }\n var regex = \"(.{1,\" + width + \"})( +|$\\n?)|(.{1,\" + width + \"})\";\n return str.match(RegExp(regex, \"g\")).join(\"\\n\");\n };\n /**\n * Retrieve the pem encoded private key\n * @returns {string} the pem encoded private key with header/footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPrivateKey = function () {\n var key = \"-----BEGIN RSA PRIVATE KEY-----\\n\";\n key += JSEncryptRSAKey.wordwrap(this.getPrivateBaseKeyB64()) + \"\\n\";\n key += \"-----END RSA PRIVATE KEY-----\";\n return key;\n };\n /**\n * Retrieve the pem encoded public key\n * @returns {string} the pem encoded public key with header/footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPublicKey = function () {\n var key = \"-----BEGIN PUBLIC KEY-----\\n\";\n key += JSEncryptRSAKey.wordwrap(this.getPublicBaseKeyB64()) + \"\\n\";\n key += \"-----END PUBLIC KEY-----\";\n return key;\n };\n /**\n * Check if the object contains the necessary parameters to populate the rsa modulus\n * and public exponent parameters.\n * @param {Object} [obj={}] - An object that may contain the two public key\n * parameters\n * @returns {boolean} true if the object contains both the modulus and the public exponent\n * properties (n and e)\n * @todo check for types of n and e. N should be a parseable bigInt object, E should\n * be a parseable integer number\n * @private\n */\n JSEncryptRSAKey.hasPublicKeyProperty = function (obj) {\n obj = obj || {};\n return obj.hasOwnProperty(\"n\") && obj.hasOwnProperty(\"e\");\n };\n /**\n * Check if the object contains ALL the parameters of an RSA key.\n * @param {Object} [obj={}] - An object that may contain nine rsa key\n * parameters\n * @returns {boolean} true if the object contains all the parameters needed\n * @todo check for types of the parameters all the parameters but the public exponent\n * should be parseable bigint objects, the public exponent should be a parseable integer number\n * @private\n */\n JSEncryptRSAKey.hasPrivateKeyProperty = function (obj) {\n obj = obj || {};\n return (obj.hasOwnProperty(\"n\") &&\n obj.hasOwnProperty(\"e\") &&\n obj.hasOwnProperty(\"d\") &&\n obj.hasOwnProperty(\"p\") &&\n obj.hasOwnProperty(\"q\") &&\n obj.hasOwnProperty(\"dmp1\") &&\n obj.hasOwnProperty(\"dmq1\") &&\n obj.hasOwnProperty(\"coeff\"));\n };\n /**\n * Parse the properties of obj in the current rsa object. Obj should AT LEAST\n * include the modulus and public exponent (n, e) parameters.\n * @param {Object} obj - the object containing rsa parameters\n * @private\n */\n JSEncryptRSAKey.prototype.parsePropertiesFrom = function (obj) {\n this.n = obj.n;\n this.e = obj.e;\n if (obj.hasOwnProperty(\"d\")) {\n this.d = obj.d;\n this.p = obj.p;\n this.q = obj.q;\n this.dmp1 = obj.dmp1;\n this.dmq1 = obj.dmq1;\n this.coeff = obj.coeff;\n }\n };\n return JSEncryptRSAKey;\n}(_lib_jsbn_rsa__WEBPACK_IMPORTED_MODULE_4__.RSAKey));\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/JSEncryptRSAKey.js?"); + +/***/ }), + +/***/ "./lib/index.js": +/*!**********************!*\ + !*** ./lib/index.js ***! + \**********************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* reexport safe */ _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./JSEncrypt */ \"./lib/JSEncrypt.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/index.js?"); + +/***/ }), + +/***/ "./lib/lib/asn1js/asn1.js": +/*!********************************!*\ + !*** ./lib/lib/asn1js/asn1.js ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ASN1\": () => (/* binding */ ASN1),\n/* harmony export */ \"ASN1Tag\": () => (/* binding */ ASN1Tag),\n/* harmony export */ \"Stream\": () => (/* binding */ Stream)\n/* harmony export */ });\n/* harmony import */ var _int10__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./int10 */ \"./lib/lib/asn1js/int10.js\");\n// ASN.1 JavaScript decoder\n// Copyright (c) 2008-2014 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\n/*global oids */\n\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \".concat(pos, \" on a stream of length \").concat(this.enc.length));\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Stream.prototype.parseStringBMP = function (start, end) {\n var str = \"\";\n var hi;\n var lo;\n for (var i = start; i < end;) {\n hi = this.get(i++);\n lo = this.get(i++);\n str += String.fromCharCode((hi << 8) | lo);\n }\n return str;\n };\n Stream.prototype.parseTime = function (start, end, shortYear) {\n var s = this.parseStringISO(start, end);\n var m = (shortYear ? reTimeS : reTimeL).exec(s);\n if (!m) {\n return \"Unrecognized time: \" + s;\n }\n if (shortYear) {\n // to avoid querying the timer, use the fixed range [1970, 2069]\n // it will conform with ITU X.400 [-10, +40] sliding window until 2030\n m[1] = +m[1];\n m[1] += (+m[1] < 70) ? 2000 : 1900;\n }\n s = m[1] + \"-\" + m[2] + \"-\" + m[3] + \" \" + m[4];\n if (m[5]) {\n s += \":\" + m[5];\n if (m[6]) {\n s += \":\" + m[6];\n if (m[7]) {\n s += \".\" + m[7];\n }\n }\n }\n if (m[8]) {\n s += \" UTC\";\n if (m[8] != \"Z\") {\n s += m[8];\n if (m[9]) {\n s += \":\" + m[9];\n }\n }\n }\n return s;\n };\n Stream.prototype.parseInteger = function (start, end) {\n var v = this.get(start);\n var neg = (v > 127);\n var pad = neg ? 255 : 0;\n var len;\n var s = \"\";\n // skip unuseful bits (not allowed in DER)\n while (v == pad && ++start < end) {\n v = this.get(start);\n }\n len = end - start;\n if (len === 0) {\n return neg ? -1 : 0;\n }\n // show bit length of huge integers\n if (len > 4) {\n s = v;\n len <<= 3;\n while (((+s ^ pad) & 0x80) == 0) {\n s = +s << 1;\n --len;\n }\n s = \"(\" + len + \" bit)\\n\";\n }\n // decode the integer\n if (neg) {\n v = v - 256;\n }\n var n = new _int10__WEBPACK_IMPORTED_MODULE_0__.Int10(v);\n for (var i = start + 1; i < end; ++i) {\n n.mulAdd(256, this.get(i));\n }\n return s + n.toString();\n };\n Stream.prototype.parseBitString = function (start, end, maxLength) {\n var unusedBit = this.get(start);\n var lenBit = ((end - start - 1) << 3) - unusedBit;\n var intro = \"(\" + lenBit + \" bit)\\n\";\n var s = \"\";\n for (var i = start + 1; i < end; ++i) {\n var b = this.get(i);\n var skip = (i == end - 1) ? unusedBit : 0;\n for (var j = 7; j >= skip; --j) {\n s += (b >> j) & 1 ? \"1\" : \"0\";\n }\n if (s.length > maxLength) {\n return intro + stringCut(s, maxLength);\n }\n }\n return intro + s;\n };\n Stream.prototype.parseOctetString = function (start, end, maxLength) {\n if (this.isASCII(start, end)) {\n return stringCut(this.parseStringISO(start, end), maxLength);\n }\n var len = end - start;\n var s = \"(\" + len + \" byte)\\n\";\n maxLength /= 2; // we work in bytes\n if (len > maxLength) {\n end = start + maxLength;\n }\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n }\n if (len > maxLength) {\n s += ellipsis;\n }\n return s;\n };\n Stream.prototype.parseOID = function (start, end, maxLength) {\n var s = \"\";\n var n = new _int10__WEBPACK_IMPORTED_MODULE_0__.Int10();\n var bits = 0;\n for (var i = start; i < end; ++i) {\n var v = this.get(i);\n n.mulAdd(128, v & 0x7F);\n bits += 7;\n if (!(v & 0x80)) { // finished\n if (s === \"\") {\n n = n.simplify();\n if (n instanceof _int10__WEBPACK_IMPORTED_MODULE_0__.Int10) {\n n.sub(80);\n s = \"2.\" + n.toString();\n }\n else {\n var m = n < 80 ? n < 40 ? 0 : 1 : 2;\n s = m + \".\" + (n - m * 40);\n }\n }\n else {\n s += \".\" + n.toString();\n }\n if (s.length > maxLength) {\n return stringCut(s, maxLength);\n }\n n = new _int10__WEBPACK_IMPORTED_MODULE_0__.Int10();\n bits = 0;\n }\n }\n if (bits > 0) {\n s += \".incomplete\";\n }\n return s;\n };\n return Stream;\n}());\n\nvar ASN1 = /** @class */ (function () {\n function ASN1(stream, header, length, tag, sub) {\n if (!(tag instanceof ASN1Tag)) {\n throw new Error(\"Invalid tag value.\");\n }\n this.stream = stream;\n this.header = header;\n this.length = length;\n this.tag = tag;\n this.sub = sub;\n }\n ASN1.prototype.typeName = function () {\n switch (this.tag.tagClass) {\n case 0: // universal\n switch (this.tag.tagNumber) {\n case 0x00:\n return \"EOC\";\n case 0x01:\n return \"BOOLEAN\";\n case 0x02:\n return \"INTEGER\";\n case 0x03:\n return \"BIT_STRING\";\n case 0x04:\n return \"OCTET_STRING\";\n case 0x05:\n return \"NULL\";\n case 0x06:\n return \"OBJECT_IDENTIFIER\";\n case 0x07:\n return \"ObjectDescriptor\";\n case 0x08:\n return \"EXTERNAL\";\n case 0x09:\n return \"REAL\";\n case 0x0A:\n return \"ENUMERATED\";\n case 0x0B:\n return \"EMBEDDED_PDV\";\n case 0x0C:\n return \"UTF8String\";\n case 0x10:\n return \"SEQUENCE\";\n case 0x11:\n return \"SET\";\n case 0x12:\n return \"NumericString\";\n case 0x13:\n return \"PrintableString\"; // ASCII subset\n case 0x14:\n return \"TeletexString\"; // aka T61String\n case 0x15:\n return \"VideotexString\";\n case 0x16:\n return \"IA5String\"; // ASCII\n case 0x17:\n return \"UTCTime\";\n case 0x18:\n return \"GeneralizedTime\";\n case 0x19:\n return \"GraphicString\";\n case 0x1A:\n return \"VisibleString\"; // ASCII subset\n case 0x1B:\n return \"GeneralString\";\n case 0x1C:\n return \"UniversalString\";\n case 0x1E:\n return \"BMPString\";\n }\n return \"Universal_\" + this.tag.tagNumber.toString();\n case 1:\n return \"Application_\" + this.tag.tagNumber.toString();\n case 2:\n return \"[\" + this.tag.tagNumber.toString() + \"]\"; // Context\n case 3:\n return \"Private_\" + this.tag.tagNumber.toString();\n }\n };\n ASN1.prototype.content = function (maxLength) {\n if (this.tag === undefined) {\n return null;\n }\n if (maxLength === undefined) {\n maxLength = Infinity;\n }\n var content = this.posContent();\n var len = Math.abs(this.length);\n if (!this.tag.isUniversal()) {\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n }\n return this.stream.parseOctetString(content, content + len, maxLength);\n }\n switch (this.tag.tagNumber) {\n case 0x01: // BOOLEAN\n return (this.stream.get(content) === 0) ? \"false\" : \"true\";\n case 0x02: // INTEGER\n return this.stream.parseInteger(content, content + len);\n case 0x03: // BIT_STRING\n return this.sub ? \"(\" + this.sub.length + \" elem)\" :\n this.stream.parseBitString(content, content + len, maxLength);\n case 0x04: // OCTET_STRING\n return this.sub ? \"(\" + this.sub.length + \" elem)\" :\n this.stream.parseOctetString(content, content + len, maxLength);\n // case 0x05: // NULL\n case 0x06: // OBJECT_IDENTIFIER\n return this.stream.parseOID(content, content + len, maxLength);\n // case 0x07: // ObjectDescriptor\n // case 0x08: // EXTERNAL\n // case 0x09: // REAL\n // case 0x0A: // ENUMERATED\n // case 0x0B: // EMBEDDED_PDV\n case 0x10: // SEQUENCE\n case 0x11: // SET\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n }\n else {\n return \"(no elem)\";\n }\n case 0x0C: // UTF8String\n return stringCut(this.stream.parseStringUTF(content, content + len), maxLength);\n case 0x12: // NumericString\n case 0x13: // PrintableString\n case 0x14: // TeletexString\n case 0x15: // VideotexString\n case 0x16: // IA5String\n // case 0x19: // GraphicString\n case 0x1A: // VisibleString\n // case 0x1B: // GeneralString\n // case 0x1C: // UniversalString\n return stringCut(this.stream.parseStringISO(content, content + len), maxLength);\n case 0x1E: // BMPString\n return stringCut(this.stream.parseStringBMP(content, content + len), maxLength);\n case 0x17: // UTCTime\n case 0x18: // GeneralizedTime\n return this.stream.parseTime(content, content + len, (this.tag.tagNumber == 0x17));\n }\n return null;\n };\n ASN1.prototype.toString = function () {\n return this.typeName() + \"@\" + this.stream.pos + \"[header:\" + this.header + \",length:\" + this.length + \",sub:\" + ((this.sub === null) ? \"null\" : this.sub.length) + \"]\";\n };\n ASN1.prototype.toPrettyString = function (indent) {\n if (indent === undefined) {\n indent = \"\";\n }\n var s = indent + this.typeName() + \" @\" + this.stream.pos;\n if (this.length >= 0) {\n s += \"+\";\n }\n s += this.length;\n if (this.tag.tagConstructed) {\n s += \" (constructed)\";\n }\n else if ((this.tag.isUniversal() && ((this.tag.tagNumber == 0x03) || (this.tag.tagNumber == 0x04))) && (this.sub !== null)) {\n s += \" (encapsulates)\";\n }\n s += \"\\n\";\n if (this.sub !== null) {\n indent += \" \";\n for (var i = 0, max = this.sub.length; i < max; ++i) {\n s += this.sub[i].toPrettyString(indent);\n }\n }\n return s;\n };\n ASN1.prototype.posStart = function () {\n return this.stream.pos;\n };\n ASN1.prototype.posContent = function () {\n return this.stream.pos + this.header;\n };\n ASN1.prototype.posEnd = function () {\n return this.stream.pos + this.header + Math.abs(this.length);\n };\n ASN1.prototype.toHexString = function () {\n return this.stream.hexDump(this.posStart(), this.posEnd(), true);\n };\n ASN1.decodeLength = function (stream) {\n var buf = stream.get();\n var len = buf & 0x7F;\n if (len == buf) {\n return len;\n }\n // no reason to use Int10, as it would be a huge buffer anyways\n if (len > 6) {\n throw new Error(\"Length over 48 bits not supported at position \" + (stream.pos - 1));\n }\n if (len === 0) {\n return null;\n } // undefined\n buf = 0;\n for (var i = 0; i < len; ++i) {\n buf = (buf * 256) + stream.get();\n }\n return buf;\n };\n /**\n * Retrieve the hexadecimal value (as a string) of the current ASN.1 element\n * @returns {string}\n * @public\n */\n ASN1.prototype.getHexStringValue = function () {\n var hexString = this.toHexString();\n var offset = this.header * 2;\n var length = this.length * 2;\n return hexString.substr(offset, length);\n };\n ASN1.decode = function (str) {\n var stream;\n if (!(str instanceof Stream)) {\n stream = new Stream(str, 0);\n }\n else {\n stream = str;\n }\n var streamStart = new Stream(stream);\n var tag = new ASN1Tag(stream);\n var len = ASN1.decodeLength(stream);\n var start = stream.pos;\n var header = start - streamStart.pos;\n var sub = null;\n var getSub = function () {\n var ret = [];\n if (len !== null) {\n // definite length\n var end = start + len;\n while (stream.pos < end) {\n ret[ret.length] = ASN1.decode(stream);\n }\n if (stream.pos != end) {\n throw new Error(\"Content size is not correct for container starting at offset \" + start);\n }\n }\n else {\n // undefined length\n try {\n for (;;) {\n var s = ASN1.decode(stream);\n if (s.tag.isEOC()) {\n break;\n }\n ret[ret.length] = s;\n }\n len = start - stream.pos; // undefined lengths are represented as negative values\n }\n catch (e) {\n throw new Error(\"Exception while decoding undefined length content: \" + e);\n }\n }\n return ret;\n };\n if (tag.tagConstructed) {\n // must have valid content\n sub = getSub();\n }\n else if (tag.isUniversal() && ((tag.tagNumber == 0x03) || (tag.tagNumber == 0x04))) {\n // sometimes BitString and OctetString are used to encapsulate ASN.1\n try {\n if (tag.tagNumber == 0x03) {\n if (stream.get() != 0) {\n throw new Error(\"BIT STRINGs with unused bits cannot encapsulate.\");\n }\n }\n sub = getSub();\n for (var i = 0; i < sub.length; ++i) {\n if (sub[i].tag.isEOC()) {\n throw new Error(\"EOC is not supposed to be actual content.\");\n }\n }\n }\n catch (e) {\n // but silently ignore when they don't\n sub = null;\n }\n }\n if (sub === null) {\n if (len === null) {\n throw new Error(\"We can't skip over an invalid tag with undefined length at offset \" + start);\n }\n stream.pos = start + Math.abs(len);\n }\n return new ASN1(streamStart, header, len, tag, sub);\n };\n return ASN1;\n}());\n\nvar ASN1Tag = /** @class */ (function () {\n function ASN1Tag(stream) {\n var buf = stream.get();\n this.tagClass = buf >> 6;\n this.tagConstructed = ((buf & 0x20) !== 0);\n this.tagNumber = buf & 0x1F;\n if (this.tagNumber == 0x1F) { // long tag\n var n = new _int10__WEBPACK_IMPORTED_MODULE_0__.Int10();\n do {\n buf = stream.get();\n n.mulAdd(128, buf & 0x7F);\n } while (buf & 0x80);\n this.tagNumber = n.simplify();\n }\n }\n ASN1Tag.prototype.isUniversal = function () {\n return this.tagClass === 0x00;\n };\n ASN1Tag.prototype.isEOC = function () {\n return this.tagClass === 0x00 && this.tagNumber === 0x00;\n };\n return ASN1Tag;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/asn1.js?"); + +/***/ }), + +/***/ "./lib/lib/asn1js/base64.js": +/*!**********************************!*\ + !*** ./lib/lib/asn1js/base64.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Base64\": () => (/* binding */ Base64)\n/* harmony export */ });\n// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Base64 = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = Object.create(null);\n for (i = 0; i < 64; ++i) {\n decoder[b64.charAt(i)] = i;\n }\n decoder['-'] = 62; //+\n decoder['_'] = 63; //-\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw new Error(\"Base64 encoding incomplete: at least 2 bits missing\");\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1]) {\n a = m[1];\n }\n else if (m[2]) {\n a = m[2];\n }\n else {\n throw new Error(\"RegExp out of sync\");\n }\n }\n return Base64.decode(a);\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/base64.js?"); + +/***/ }), + +/***/ "./lib/lib/asn1js/hex.js": +/*!*******************************!*\ + !*** ./lib/lib/asn1js/hex.js ***! + \*******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Hex\": () => (/* binding */ Hex)\n/* harmony export */ });\n// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/hex.js?"); + +/***/ }), + +/***/ "./lib/lib/asn1js/int10.js": +/*!*********************************!*\ + !*** ./lib/lib/asn1js/int10.js ***! + \*********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Int10\": () => (/* binding */ Int10)\n/* harmony export */ });\n// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/int10.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/base64.js": +/*!********************************!*\ + !*** ./lib/lib/jsbn/base64.js ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"b64toBA\": () => (/* binding */ b64toBA),\n/* harmony export */ \"b64tohex\": () => (/* binding */ b64tohex),\n/* harmony export */ \"hex2b64\": () => (/* binding */ hex2b64)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nfunction hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0) {\n ret += b64pad;\n }\n return ret;\n}\n// convert a base64 string to hex\nfunction b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop = 0;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad) {\n break;\n }\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0) {\n continue;\n }\n if (k == 0) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop);\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v & 0xf);\n k = 0;\n }\n }\n if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop << 2);\n }\n return ret;\n}\n// convert a base64 string to a byte/number array\nfunction b64toBA(s) {\n // piggyback on b64tohex for now, optimize later\n var h = b64tohex(s);\n var i;\n var a = [];\n for (i = 0; 2 * i < h.length; ++i) {\n a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16);\n }\n return a;\n}\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/base64.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/jsbn.js": +/*!******************************!*\ + !*** ./lib/lib/jsbn/jsbn.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BigInteger\": () => (/* binding */ BigInteger),\n/* harmony export */ \"intAt\": () => (/* binding */ intAt),\n/* harmony export */ \"nbi\": () => (/* binding */ nbi),\n/* harmony export */ \"nbits\": () => (/* binding */ nbits),\n/* harmony export */ \"nbv\": () => (/* binding */ nbv),\n/* harmony export */ \"parseBigInt\": () => (/* binding */ parseBigInt)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\n\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n }\n else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n }\n else {\n this.fromString(a, b);\n }\n }\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () {\n return (this.s < 0) ? this.negate() : this;\n };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return (this.s < 0) ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n // BigInteger.prototype.bitLength = bnBitLength;\n // (public) return the number of bits in \"this\"\n BigInteger.prototype.bitLength = function () {\n if (this.t <= 0) {\n return 0;\n }\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM));\n };\n // BigInteger.prototype.mod = bnMod;\n // (public) this mod a\n BigInteger.prototype.mod = function (a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n a.subTo(r, r);\n }\n return r;\n };\n // BigInteger.prototype.modPowInt = bnModPowInt;\n // (public) this^e % m, 0 <= e < 2^32\n BigInteger.prototype.modPowInt = function (e, m) {\n var z;\n if (e < 256 || m.isEven()) {\n z = new Classic(m);\n }\n else {\n z = new Montgomery(m);\n }\n return this.exp(e, z);\n };\n // BigInteger.prototype.clone = bnClone;\n // (public)\n BigInteger.prototype.clone = function () {\n var r = nbi();\n this.copyTo(r);\n return r;\n };\n // BigInteger.prototype.intValue = bnIntValue;\n // (public) return value as integer\n BigInteger.prototype.intValue = function () {\n if (this.s < 0) {\n if (this.t == 1) {\n return this[0] - this.DV;\n }\n else if (this.t == 0) {\n return -1;\n }\n }\n else if (this.t == 1) {\n return this[0];\n }\n else if (this.t == 0) {\n return 0;\n }\n // assumes 16 < DB < 32\n return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0];\n };\n // BigInteger.prototype.byteValue = bnByteValue;\n // (public) return value as byte\n BigInteger.prototype.byteValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 24) >> 24;\n };\n // BigInteger.prototype.shortValue = bnShortValue;\n // (public) return value as short (assumes DB>=16)\n BigInteger.prototype.shortValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 16) >> 16;\n };\n // BigInteger.prototype.signum = bnSigNum;\n // (public) 0 if this == 0, 1 if this > 0\n BigInteger.prototype.signum = function () {\n if (this.s < 0) {\n return -1;\n }\n else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) {\n return 0;\n }\n else {\n return 1;\n }\n };\n // BigInteger.prototype.toByteArray = bnToByteArray;\n // (public) convert to bigendian byte array\n BigInteger.prototype.toByteArray = function () {\n var i = this.t;\n var r = [];\n r[0] = this.s;\n var p = this.DB - (i * this.DB) % 8;\n var d;\n var k = 0;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p) {\n r[k++] = d | (this.s << (this.DB - p));\n }\n while (i >= 0) {\n if (p < 8) {\n d = (this[i] & ((1 << p) - 1)) << (8 - p);\n d |= this[--i] >> (p += this.DB - 8);\n }\n else {\n d = (this[i] >> (p -= 8)) & 0xff;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if ((d & 0x80) != 0) {\n d |= -256;\n }\n if (k == 0 && (this.s & 0x80) != (d & 0x80)) {\n ++k;\n }\n if (k > 0 || d != this.s) {\n r[k++] = d;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.equals = bnEquals;\n BigInteger.prototype.equals = function (a) {\n return (this.compareTo(a) == 0);\n };\n // BigInteger.prototype.min = bnMin;\n BigInteger.prototype.min = function (a) {\n return (this.compareTo(a) < 0) ? this : a;\n };\n // BigInteger.prototype.max = bnMax;\n BigInteger.prototype.max = function (a) {\n return (this.compareTo(a) > 0) ? this : a;\n };\n // BigInteger.prototype.and = bnAnd;\n BigInteger.prototype.and = function (a) {\n var r = nbi();\n this.bitwiseTo(a, _util__WEBPACK_IMPORTED_MODULE_0__.op_and, r);\n return r;\n };\n // BigInteger.prototype.or = bnOr;\n BigInteger.prototype.or = function (a) {\n var r = nbi();\n this.bitwiseTo(a, _util__WEBPACK_IMPORTED_MODULE_0__.op_or, r);\n return r;\n };\n // BigInteger.prototype.xor = bnXor;\n BigInteger.prototype.xor = function (a) {\n var r = nbi();\n this.bitwiseTo(a, _util__WEBPACK_IMPORTED_MODULE_0__.op_xor, r);\n return r;\n };\n // BigInteger.prototype.andNot = bnAndNot;\n BigInteger.prototype.andNot = function (a) {\n var r = nbi();\n this.bitwiseTo(a, _util__WEBPACK_IMPORTED_MODULE_0__.op_andnot, r);\n return r;\n };\n // BigInteger.prototype.not = bnNot;\n // (public) ~this\n BigInteger.prototype.not = function () {\n var r = nbi();\n for (var i = 0; i < this.t; ++i) {\n r[i] = this.DM & ~this[i];\n }\n r.t = this.t;\n r.s = ~this.s;\n return r;\n };\n // BigInteger.prototype.shiftLeft = bnShiftLeft;\n // (public) this << n\n BigInteger.prototype.shiftLeft = function (n) {\n var r = nbi();\n if (n < 0) {\n this.rShiftTo(-n, r);\n }\n else {\n this.lShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.shiftRight = bnShiftRight;\n // (public) this >> n\n BigInteger.prototype.shiftRight = function (n) {\n var r = nbi();\n if (n < 0) {\n this.lShiftTo(-n, r);\n }\n else {\n this.rShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\n // (public) returns index of lowest 1-bit (or -1 if none)\n BigInteger.prototype.getLowestSetBit = function () {\n for (var i = 0; i < this.t; ++i) {\n if (this[i] != 0) {\n return i * this.DB + (0,_util__WEBPACK_IMPORTED_MODULE_0__.lbit)(this[i]);\n }\n }\n if (this.s < 0) {\n return this.t * this.DB;\n }\n return -1;\n };\n // BigInteger.prototype.bitCount = bnBitCount;\n // (public) return number of set bits\n BigInteger.prototype.bitCount = function () {\n var r = 0;\n var x = this.s & this.DM;\n for (var i = 0; i < this.t; ++i) {\n r += (0,_util__WEBPACK_IMPORTED_MODULE_0__.cbit)(this[i] ^ x);\n }\n return r;\n };\n // BigInteger.prototype.testBit = bnTestBit;\n // (public) true iff nth bit is set\n BigInteger.prototype.testBit = function (n) {\n var j = Math.floor(n / this.DB);\n if (j >= this.t) {\n return (this.s != 0);\n }\n return ((this[j] & (1 << (n % this.DB))) != 0);\n };\n // BigInteger.prototype.setBit = bnSetBit;\n // (public) this | (1< 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1;\n var w;\n var is1 = true;\n var r2 = nbi();\n var t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) {\n w = (e[j] >> (i - k1)) & km;\n }\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i);\n if (j > 0) {\n w |= e[j - 1] >> (this.DB + i - k1);\n }\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) {\n z.sqrTo(r, r2);\n }\n else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & (1 << i)) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.modInverse = bnModInverse;\n // (public) 1/this % m (HAC 14.61)\n BigInteger.prototype.modInverse = function (m) {\n var ac = m.isEven();\n if ((this.isEven() && ac) || m.signum() == 0) {\n return BigInteger.ZERO;\n }\n var u = m.clone();\n var v = this.clone();\n var a = nbv(1);\n var b = nbv(0);\n var c = nbv(0);\n var d = nbv(1);\n while (u.signum() != 0) {\n while (u.isEven()) {\n u.rShiftTo(1, u);\n if (ac) {\n if (!a.isEven() || !b.isEven()) {\n a.addTo(this, a);\n b.subTo(m, b);\n }\n a.rShiftTo(1, a);\n }\n else if (!b.isEven()) {\n b.subTo(m, b);\n }\n b.rShiftTo(1, b);\n }\n while (v.isEven()) {\n v.rShiftTo(1, v);\n if (ac) {\n if (!c.isEven() || !d.isEven()) {\n c.addTo(this, c);\n d.subTo(m, d);\n }\n c.rShiftTo(1, c);\n }\n else if (!d.isEven()) {\n d.subTo(m, d);\n }\n d.rShiftTo(1, d);\n }\n if (u.compareTo(v) >= 0) {\n u.subTo(v, u);\n if (ac) {\n a.subTo(c, a);\n }\n b.subTo(d, b);\n }\n else {\n v.subTo(u, v);\n if (ac) {\n c.subTo(a, c);\n }\n d.subTo(b, d);\n }\n }\n if (v.compareTo(BigInteger.ONE) != 0) {\n return BigInteger.ZERO;\n }\n if (d.compareTo(m) >= 0) {\n return d.subtract(m);\n }\n if (d.signum() < 0) {\n d.addTo(m, d);\n }\n else {\n return d;\n }\n if (d.signum() < 0) {\n return d.add(m);\n }\n else {\n return d;\n }\n };\n // BigInteger.prototype.pow = bnPow;\n // (public) this^e\n BigInteger.prototype.pow = function (e) {\n return this.exp(e, new NullExp());\n };\n // BigInteger.prototype.gcd = bnGCD;\n // (public) gcd(this,a) (HAC 14.54)\n BigInteger.prototype.gcd = function (a) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n return x;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n while (x.signum() > 0) {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n }\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n return y;\n };\n // BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n // (public) test primality with certainty >= 1-.5^t\n BigInteger.prototype.isProbablePrime = function (t) {\n var i;\n var x = this.abs();\n if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {\n for (i = 0; i < lowprimes.length; ++i) {\n if (x[0] == lowprimes[i]) {\n return true;\n }\n }\n return false;\n }\n if (x.isEven()) {\n return false;\n }\n i = 1;\n while (i < lowprimes.length) {\n var m = lowprimes[i];\n var j = i + 1;\n while (j < lowprimes.length && m < lplim) {\n m *= lowprimes[j++];\n }\n m = x.modInt(m);\n while (i < j) {\n if (m % lowprimes[i++] == 0) {\n return false;\n }\n }\n }\n return x.millerRabin(t);\n };\n //#endregion PUBLIC\n //#region PROTECTED\n // BigInteger.prototype.copyTo = bnpCopyTo;\n // (protected) copy this to r\n BigInteger.prototype.copyTo = function (r) {\n for (var i = this.t - 1; i >= 0; --i) {\n r[i] = this[i];\n }\n r.t = this.t;\n r.s = this.s;\n };\n // BigInteger.prototype.fromInt = bnpFromInt;\n // (protected) set from integer value x, -DV <= x < DV\n BigInteger.prototype.fromInt = function (x) {\n this.t = 1;\n this.s = (x < 0) ? -1 : 0;\n if (x > 0) {\n this[0] = x;\n }\n else if (x < -1) {\n this[0] = x + this.DV;\n }\n else {\n this.t = 0;\n }\n };\n // BigInteger.prototype.fromString = bnpFromString;\n // (protected) set from string and radix\n BigInteger.prototype.fromString = function (s, b) {\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 256) {\n k = 8;\n /* byte array */\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n this.fromRadix(s, b);\n return;\n }\n this.t = 0;\n this.s = 0;\n var i = s.length;\n var mi = false;\n var sh = 0;\n while (--i >= 0) {\n var x = (k == 8) ? (+s[i]) & 0xff : intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\") {\n mi = true;\n }\n continue;\n }\n mi = false;\n if (sh == 0) {\n this[this.t++] = x;\n }\n else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;\n this[this.t++] = (x >> (this.DB - sh));\n }\n else {\n this[this.t - 1] |= x << sh;\n }\n sh += k;\n if (sh >= this.DB) {\n sh -= this.DB;\n }\n }\n if (k == 8 && ((+s[0]) & 0x80) != 0) {\n this.s = -1;\n if (sh > 0) {\n this[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh;\n }\n }\n this.clamp();\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.clamp = bnpClamp;\n // (protected) clamp off excess high words\n BigInteger.prototype.clamp = function () {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) {\n --this.t;\n }\n };\n // BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n // (protected) r = this << n*DB\n BigInteger.prototype.dlShiftTo = function (n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + n] = this[i];\n }\n for (i = n - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r.t = this.t + n;\n r.s = this.s;\n };\n // BigInteger.prototype.drShiftTo = bnpDRShiftTo;\n // (protected) r = this >> n*DB\n BigInteger.prototype.drShiftTo = function (n, r) {\n for (var i = n; i < this.t; ++i) {\n r[i - n] = this[i];\n }\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n };\n // BigInteger.prototype.lShiftTo = bnpLShiftTo;\n // (protected) r = this << n\n BigInteger.prototype.lShiftTo = function (n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB);\n var c = (this.s << bs) & this.DM;\n for (var i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (this[i] >> cbs) | c;\n c = (this[i] & bm) << bs;\n }\n for (var i = ds - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n };\n // BigInteger.prototype.rShiftTo = bnpRShiftTo;\n // (protected) r = this >> n\n BigInteger.prototype.rShiftTo = function (n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) {\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n }\n r.t = this.t - ds;\n r.clamp();\n };\n // BigInteger.prototype.subTo = bnpSubTo;\n // (protected) r = this - a\n BigInteger.prototype.subTo = function (a, r) {\n var i = 0;\n var c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c < -1) {\n r[i++] = this.DV + c;\n }\n else if (c > 0) {\n r[i++] = c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.multiplyTo = bnpMultiplyTo;\n // (protected) r = this * a, r != this,a (HAC 14.12)\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyTo = function (a, r) {\n var x = this.abs();\n var y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < y.t; ++i) {\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n }\n r.s = 0;\n r.clamp();\n if (this.s != a.s) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.squareTo = bnpSquareTo;\n // (protected) r = this^2, r != this (HAC 14.16)\n BigInteger.prototype.squareTo = function (r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) {\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n }\n r.s = 0;\n r.clamp();\n };\n // BigInteger.prototype.divRemTo = bnpDivRemTo;\n // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n // r != q, this != m. q or r may be null.\n BigInteger.prototype.divRemTo = function (m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) {\n return;\n }\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) {\n q.fromInt(0);\n }\n if (r != null) {\n this.copyTo(r);\n }\n return;\n }\n if (r == null) {\n r = nbi();\n }\n var y = nbi();\n var ts = this.s;\n var ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n }\n else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) {\n return;\n }\n var yt = y0 * (1 << this.F1) + ((ys > 1) ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt;\n var d2 = (1 << this.F1) / yt;\n var e = 1 << this.F2;\n var i = r.t;\n var j = i - ys;\n var t = (q == null) ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y); // \"negative\" y so we can replace sub with am later\n while (y.t < ys) {\n y[y.t++] = 0;\n }\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = (r[--i] == y0) ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) {\n r.subTo(t, r);\n }\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) {\n BigInteger.ZERO.subTo(q, q);\n }\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) {\n r.rShiftTo(nsh, r);\n } // Denormalize remainder\n if (ts < 0) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.invDigit = bnpInvDigit;\n // (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n // justification:\n // xy == 1 (mod m)\n // xy = 1+km\n // xy(2-xy) = (1+km)(1-km)\n // x[y(2-xy)] = 1-k^2m^2\n // x[y(2-xy)] == 1 (mod m^2)\n // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n // JS multiply \"overflows\" differently from C/C++, so care is needed here.\n BigInteger.prototype.invDigit = function () {\n if (this.t < 1) {\n return 0;\n }\n var x = this[0];\n if ((x & 1) == 0) {\n return 0;\n }\n var y = x & 3; // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf; // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff; // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - x * y % this.DV)) % this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y > 0) ? this.DV - y : -y;\n };\n // BigInteger.prototype.isEven = bnpIsEven;\n // (protected) true iff this is even\n BigInteger.prototype.isEven = function () {\n return ((this.t > 0) ? (this[0] & 1) : this.s) == 0;\n };\n // BigInteger.prototype.exp = bnpExp;\n // (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\n BigInteger.prototype.exp = function (e, z) {\n if (e > 0xffffffff || e < 1) {\n return BigInteger.ONE;\n }\n var r = nbi();\n var r2 = nbi();\n var g = z.convert(this);\n var i = nbits(e) - 1;\n g.copyTo(r);\n while (--i >= 0) {\n z.sqrTo(r, r2);\n if ((e & (1 << i)) > 0) {\n z.mulTo(r2, g, r);\n }\n else {\n var t = r;\n r = r2;\n r2 = t;\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.chunkSize = bnpChunkSize;\n // (protected) return x s.t. r^x < DV\n BigInteger.prototype.chunkSize = function (r) {\n return Math.floor(Math.LN2 * this.DB / Math.log(r));\n };\n // BigInteger.prototype.toRadix = bnpToRadix;\n // (protected) convert to radix string\n BigInteger.prototype.toRadix = function (b) {\n if (b == null) {\n b = 10;\n }\n if (this.signum() == 0 || b < 2 || b > 36) {\n return \"0\";\n }\n var cs = this.chunkSize(b);\n var a = Math.pow(b, cs);\n var d = nbv(a);\n var y = nbi();\n var z = nbi();\n var r = \"\";\n this.divRemTo(d, y, z);\n while (y.signum() > 0) {\n r = (a + z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d, y, z);\n }\n return z.intValue().toString(b) + r;\n };\n // BigInteger.prototype.fromRadix = bnpFromRadix;\n // (protected) convert from radix string\n BigInteger.prototype.fromRadix = function (s, b) {\n this.fromInt(0);\n if (b == null) {\n b = 10;\n }\n var cs = this.chunkSize(b);\n var d = Math.pow(b, cs);\n var mi = false;\n var j = 0;\n var w = 0;\n for (var i = 0; i < s.length; ++i) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\" && this.signum() == 0) {\n mi = true;\n }\n continue;\n }\n w = b * w + x;\n if (++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w, 0);\n j = 0;\n w = 0;\n }\n }\n if (j > 0) {\n this.dMultiply(Math.pow(b, j));\n this.dAddOffset(w, 0);\n }\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.fromNumber = bnpFromNumber;\n // (protected) alternate constructor\n BigInteger.prototype.fromNumber = function (a, b, c) {\n if (\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), _util__WEBPACK_IMPORTED_MODULE_0__.op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n } // force odd\n while (!this.isProbablePrime(b)) {\n this.dAddOffset(2, 0);\n if (this.bitLength() > a) {\n this.subTo(BigInteger.ONE.shiftLeft(a - 1), this);\n }\n }\n }\n }\n else {\n // new BigInteger(int,RNG)\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n // BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\n // (protected) r = this op a (bitwise)\n BigInteger.prototype.bitwiseTo = function (a, op, r) {\n var i;\n var f;\n var m = Math.min(a.t, this.t);\n for (i = 0; i < m; ++i) {\n r[i] = op(this[i], a[i]);\n }\n if (a.t < this.t) {\n f = a.s & this.DM;\n for (i = m; i < this.t; ++i) {\n r[i] = op(this[i], f);\n }\n r.t = this.t;\n }\n else {\n f = this.s & this.DM;\n for (i = m; i < a.t; ++i) {\n r[i] = op(f, a[i]);\n }\n r.t = a.t;\n }\n r.s = op(this.s, a.s);\n r.clamp();\n };\n // BigInteger.prototype.changeBit = bnpChangeBit;\n // (protected) this op (1<>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c > 0) {\n r[i++] = c;\n }\n else if (c < -1) {\n r[i++] = this.DV + c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.dMultiply = bnpDMultiply;\n // (protected) this *= n, this >= 0, 1 < n < DV\n BigInteger.prototype.dMultiply = function (n) {\n this[this.t] = this.am(0, n - 1, this, 0, 0, this.t);\n ++this.t;\n this.clamp();\n };\n // BigInteger.prototype.dAddOffset = bnpDAddOffset;\n // (protected) this += n << w words, this >= 0\n BigInteger.prototype.dAddOffset = function (n, w) {\n if (n == 0) {\n return;\n }\n while (this.t <= w) {\n this[this.t++] = 0;\n }\n this[w] += n;\n while (this[w] >= this.DV) {\n this[w] -= this.DV;\n if (++w >= this.t) {\n this[this.t++] = 0;\n }\n ++this[w];\n }\n };\n // BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\n // (protected) r = lower n words of \"this * a\", a.t <= n\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyLowerTo = function (a, n, r) {\n var i = Math.min(this.t + a.t, n);\n r.s = 0; // assumes a,this >= 0\n r.t = i;\n while (i > 0) {\n r[--i] = 0;\n }\n for (var j = r.t - this.t; i < j; ++i) {\n r[i + this.t] = this.am(0, a[i], r, i, 0, this.t);\n }\n for (var j = Math.min(a.t, n); i < j; ++i) {\n this.am(0, a[i], r, i, 0, n - i);\n }\n r.clamp();\n };\n // BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\n // (protected) r = \"this * a\" without lower n words, n > 0\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyUpperTo = function (a, n, r) {\n --n;\n var i = r.t = this.t + a.t - n;\n r.s = 0; // assumes a,this >= 0\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = Math.max(n - this.t, 0); i < a.t; ++i) {\n r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n);\n }\n r.clamp();\n r.drShiftTo(1, r);\n };\n // BigInteger.prototype.modInt = bnpModInt;\n // (protected) this % n, n < 2^26\n BigInteger.prototype.modInt = function (n) {\n if (n <= 0) {\n return 0;\n }\n var d = this.DV % n;\n var r = (this.s < 0) ? n - 1 : 0;\n if (this.t > 0) {\n if (d == 0) {\n r = this[0] % n;\n }\n else {\n for (var i = this.t - 1; i >= 0; --i) {\n r = (d * r + this[i]) % n;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.millerRabin = bnpMillerRabin;\n // (protected) true if probably prime (HAC 4.24, Miller-Rabin)\n BigInteger.prototype.millerRabin = function (t) {\n var n1 = this.subtract(BigInteger.ONE);\n var k = n1.getLowestSetBit();\n if (k <= 0) {\n return false;\n }\n var r = n1.shiftRight(k);\n t = (t + 1) >> 1;\n if (t > lowprimes.length) {\n t = lowprimes.length;\n }\n var a = nbi();\n for (var i = 0; i < t; ++i) {\n // Pick bases at random, instead of starting at 2\n a.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]);\n var y = a.modPow(r, this);\n if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while (j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2, this);\n if (y.compareTo(BigInteger.ONE) == 0) {\n return false;\n }\n }\n if (y.compareTo(n1) != 0) {\n return false;\n }\n }\n }\n return true;\n };\n // BigInteger.prototype.square = bnSquare;\n // (public) this^2\n BigInteger.prototype.square = function () {\n var r = nbi();\n this.squareTo(r);\n return r;\n };\n //#region ASYNC\n // Public API method\n BigInteger.prototype.gcda = function (a, callback) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n callback(x);\n return;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n // Workhorse of the algorithm, gets called 200 - 800 times per 512 bit keygen.\n var gcda1 = function () {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n if (!(x.signum() > 0)) {\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n setTimeout(function () { callback(y); }, 0); // escape\n }\n else {\n setTimeout(gcda1, 0);\n }\n };\n setTimeout(gcda1, 10);\n };\n // (protected) alternate constructor\n BigInteger.prototype.fromNumberAsync = function (a, b, c, callback) {\n if (\"number\" == typeof b) {\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), _util__WEBPACK_IMPORTED_MODULE_0__.op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n }\n var bnp_1 = this;\n var bnpfn1_1 = function () {\n bnp_1.dAddOffset(2, 0);\n if (bnp_1.bitLength() > a) {\n bnp_1.subTo(BigInteger.ONE.shiftLeft(a - 1), bnp_1);\n }\n if (bnp_1.isProbablePrime(b)) {\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(bnpfn1_1, 0);\n }\n };\n setTimeout(bnpfn1_1, 0);\n }\n }\n else {\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n return BigInteger;\n}());\n\n//#region REDUCERS\n//#region NullExp\nvar NullExp = /** @class */ (function () {\n function NullExp() {\n }\n // NullExp.prototype.convert = nNop;\n NullExp.prototype.convert = function (x) {\n return x;\n };\n // NullExp.prototype.revert = nNop;\n NullExp.prototype.revert = function (x) {\n return x;\n };\n // NullExp.prototype.mulTo = nMulTo;\n NullExp.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n };\n // NullExp.prototype.sqrTo = nSqrTo;\n NullExp.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n };\n return NullExp;\n}());\n// Modular reduction using \"classic\" algorithm\nvar Classic = /** @class */ (function () {\n function Classic(m) {\n this.m = m;\n }\n // Classic.prototype.convert = cConvert;\n Classic.prototype.convert = function (x) {\n if (x.s < 0 || x.compareTo(this.m) >= 0) {\n return x.mod(this.m);\n }\n else {\n return x;\n }\n };\n // Classic.prototype.revert = cRevert;\n Classic.prototype.revert = function (x) {\n return x;\n };\n // Classic.prototype.reduce = cReduce;\n Classic.prototype.reduce = function (x) {\n x.divRemTo(this.m, null, x);\n };\n // Classic.prototype.mulTo = cMulTo;\n Classic.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Classic.prototype.sqrTo = cSqrTo;\n Classic.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Classic;\n}());\n//#endregion\n//#region Montgomery\n// Montgomery reduction\nvar Montgomery = /** @class */ (function () {\n function Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << (m.DB - 15)) - 1;\n this.mt2 = 2 * m.t;\n }\n // Montgomery.prototype.convert = montConvert;\n // xR mod m\n Montgomery.prototype.convert = function (x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n this.m.subTo(r, r);\n }\n return r;\n };\n // Montgomery.prototype.revert = montRevert;\n // x/R mod m\n Montgomery.prototype.revert = function (x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n };\n // Montgomery.prototype.reduce = montReduce;\n // x = x/R mod m (HAC 14.32)\n Montgomery.prototype.reduce = function (x) {\n while (x.t <= this.mt2) {\n // pad x so am has enough room later\n x[x.t++] = 0;\n }\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Montgomery.prototype.mulTo = montMulTo;\n // r = \"xy/R mod m\"; x,y != r\n Montgomery.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Montgomery.prototype.sqrTo = montSqrTo;\n // r = \"x^2/R mod m\"; x != r\n Montgomery.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Montgomery;\n}());\n//#endregion Montgomery\n//#region Barrett\n// Barrett modular reduction\nvar Barrett = /** @class */ (function () {\n function Barrett(m) {\n this.m = m;\n // setup Barrett\n this.r2 = nbi();\n this.q3 = nbi();\n BigInteger.ONE.dlShiftTo(2 * m.t, this.r2);\n this.mu = this.r2.divide(m);\n }\n // Barrett.prototype.convert = barrettConvert;\n Barrett.prototype.convert = function (x) {\n if (x.s < 0 || x.t > 2 * this.m.t) {\n return x.mod(this.m);\n }\n else if (x.compareTo(this.m) < 0) {\n return x;\n }\n else {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n }\n };\n // Barrett.prototype.revert = barrettRevert;\n Barrett.prototype.revert = function (x) {\n return x;\n };\n // Barrett.prototype.reduce = barrettReduce;\n // x = x mod m (HAC 14.42)\n Barrett.prototype.reduce = function (x) {\n x.drShiftTo(this.m.t - 1, this.r2);\n if (x.t > this.m.t + 1) {\n x.t = this.m.t + 1;\n x.clamp();\n }\n this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3);\n this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);\n while (x.compareTo(this.r2) < 0) {\n x.dAddOffset(1, this.m.t + 1);\n }\n x.subTo(this.r2, x);\n while (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Barrett.prototype.mulTo = barrettMulTo;\n // r = x*y mod m; x,y != r\n Barrett.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Barrett.prototype.sqrTo = barrettSqrTo;\n // r = x^2 mod m; x != r\n Barrett.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Barrett;\n}());\n//#endregion\n//#endregion REDUCERS\n// return new, unset BigInteger\nfunction nbi() { return new BigInteger(null); }\nfunction parseBigInt(str, r) {\n return new BigInteger(str, r);\n}\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\nvar inBrowser = typeof navigator !== \"undefined\";\nif (inBrowser && j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n // am2 avoids a big mult-and-extract completely.\n // Max digit bits should be <= 30 because we do bitwise ops\n // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n BigInteger.prototype.am = function am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff;\n var xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n };\n dbits = 30;\n}\nelse if (inBrowser && j_lm && (navigator.appName != \"Netscape\")) {\n // am1: use a single mult and divide to get the high bits,\n // max digit bits should be 26 because\n // max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n BigInteger.prototype.am = function am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n };\n dbits = 26;\n}\nelse { // Mozilla/Netscape seems to prefer am3\n // Alternately, set max digit bits to 28 since some\n // browsers slow down when dealing with 32-bit numbers.\n BigInteger.prototype.am = function am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff;\n var xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n };\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = ((1 << dbits) - 1);\nBigInteger.prototype.DV = (1 << dbits);\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n// Digit conversions\nvar BI_RC = [];\nvar rr;\nvar vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return (c == null) ? -1 : c;\n}\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1;\n var t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/jsbn.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/prng4.js": +/*!*******************************!*\ + !*** ./lib/lib/jsbn/prng4.js ***! + \*******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Arcfour\": () => (/* binding */ Arcfour),\n/* harmony export */ \"prng_newstate\": () => (/* binding */ prng_newstate),\n/* harmony export */ \"rng_psize\": () => (/* binding */ rng_psize)\n/* harmony export */ });\n// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n // Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\n\n// Plug in your RNG constructor here\nfunction prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nvar rng_psize = 256;\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/prng4.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/rng.js": +/*!*****************************!*\ + !*** ./lib/lib/jsbn/rng.js ***! + \*****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SecureRandom\": () => (/* binding */ SecureRandom)\n/* harmony export */ });\n/* harmony import */ var _prng4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./prng4 */ \"./lib/lib/jsbn/prng4.js\");\n// Random number generator - requires a PRNG backend, e.g. prng4.js\n\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var count = 0;\n var onMouseMoveListener_1 = function (ev) {\n count = count || 0;\n if (count >= 256 || rng_pptr >= _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (typeof window !== 'undefined') {\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = (0,_prng4__WEBPACK_IMPORTED_MODULE_0__.prng_newstate)();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/rng.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/rsa.js": +/*!*****************************!*\ + !*** ./lib/lib/jsbn/rsa.js ***! + \*****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"RSAKey\": () => (/* binding */ RSAKey)\n/* harmony export */ });\n/* harmony import */ var _jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _rng__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng */ \"./lib/lib/jsbn/rng.js\");\n// Depends on jsbn.js and rng.js\n// Version 1.1: support utf-8 encoding in pkcs1pad2\n// convert a (hex) string to a bignum object\n\n\n// function linebrk(s,n) {\n// var ret = \"\";\n// var i = 0;\n// while(i + n < s.length) {\n// ret += s.substring(i,i+n) + \"\\n\";\n// i += n;\n// }\n// return ret + s.substring(i,s.length);\n// }\n// function byte2Hex(b) {\n// if(b < 0x10)\n// return \"0\" + b.toString(16);\n// else\n// return b.toString(16);\n// }\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(m, 16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) { // TODO: fix for utf-8\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) { // encode using utf-8\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var x = [];\n while (n > 2) { // random non-zero pad\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null) {\n return x.modPow(this.d, this.n);\n }\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0) {\n xp = xp.add(this.p);\n }\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n }\n else {\n console.error(\"Invalid RSA public key\");\n }\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var maxLength = (this.n.bitLength() + 7) >> 3;\n var m = pkcs1pad2(text, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n // fix zero before result\n for (var i = 0; i < maxLength * 2 - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, D) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n this.d = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(D, 16);\n }\n else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.setPrivateEx = RSASetPrivateEx;\n // Set the private key fields N, e, d and CRT params from hex strings\n RSAKey.prototype.setPrivateEx = function (N, E, D, P, Q, DP, DQ, C) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n this.d = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(D, 16);\n this.p = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(P, 16);\n this.q = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(Q, 16);\n this.dmp1 = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(DP, 16);\n this.dmq1 = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(DQ, 16);\n this.coeff = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(C, 16);\n }\n else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.generate = RSAGenerate;\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generate = function (B, E) {\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(E, 16);\n for (;;) {\n for (;;) {\n this.p = new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(B - qs, 1, rng);\n if (this.p.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE).gcd(ee).compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {\n break;\n }\n }\n for (;;) {\n this.q = new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(qs, 1, rng);\n if (this.q.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE).gcd(ee).compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {\n break;\n }\n }\n if (this.p.compareTo(this.q) <= 0) {\n var t = this.p;\n this.p = this.q;\n this.q = t;\n }\n var p1 = this.p.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n var q1 = this.q.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0) {\n this.n = this.p.multiply(this.q);\n this.d = ee.modInverse(phi);\n this.dmp1 = this.d.mod(p1);\n this.dmq1 = this.d.mod(q1);\n this.coeff = this.q.modInverse(this.p);\n break;\n }\n }\n };\n // RSAKey.prototype.decrypt = RSADecrypt;\n // Return the PKCS#1 RSA decryption of \"ctext\".\n // \"ctext\" is an even-length hex string and the output is a plain string.\n RSAKey.prototype.decrypt = function (ctext) {\n var c = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(ctext, 16);\n var m = this.doPrivate(c);\n if (m == null) {\n return null;\n }\n return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3);\n };\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generateAsync = function (B, E, callback) {\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(E, 16);\n var rsa = this;\n // These functions have non-descript names because they were originally for(;;) loops.\n // I don't know about cryptography to give them better names than loop1-4.\n var loop1 = function () {\n var loop4 = function () {\n if (rsa.p.compareTo(rsa.q) <= 0) {\n var t = rsa.p;\n rsa.p = rsa.q;\n rsa.q = t;\n }\n var p1 = rsa.p.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n var q1 = rsa.q.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0) {\n rsa.n = rsa.p.multiply(rsa.q);\n rsa.d = ee.modInverse(phi);\n rsa.dmp1 = rsa.d.mod(p1);\n rsa.dmq1 = rsa.d.mod(q1);\n rsa.coeff = rsa.q.modInverse(rsa.p);\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(loop1, 0);\n }\n };\n var loop3 = function () {\n rsa.q = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.nbi)();\n rsa.q.fromNumberAsync(qs, 1, rng, function () {\n rsa.q.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) {\n setTimeout(loop4, 0);\n }\n else {\n setTimeout(loop3, 0);\n }\n });\n });\n };\n var loop2 = function () {\n rsa.p = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.nbi)();\n rsa.p.fromNumberAsync(B - qs, 1, rng, function () {\n rsa.p.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) {\n setTimeout(loop3, 0);\n }\n else {\n setTimeout(loop2, 0);\n }\n });\n });\n };\n setTimeout(loop2, 0);\n };\n setTimeout(loop1, 0);\n };\n RSAKey.prototype.sign = function (text, digestMethod, digestName) {\n var header = getDigestHeader(digestName);\n var digest = header + digestMethod(text).toString();\n var m = pkcs1pad1(digest, this.n.bitLength() / 4);\n if (m == null) {\n return null;\n }\n var c = this.doPrivate(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n if ((h.length & 1) == 0) {\n return h;\n }\n else {\n return \"0\" + h;\n }\n };\n RSAKey.prototype.verify = function (text, signature, digestMethod) {\n var c = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(signature, 16);\n var m = this.doPublic(c);\n if (m == null) {\n return null;\n }\n var unpadded = m.toString(16).replace(/^1f+00/, \"\");\n var digest = removeDigestHeader(unpadded);\n return digest == digestMethod(text).toString();\n };\n return RSAKey;\n}());\n\n// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext\nfunction pkcs1unpad2(d, n) {\n var b = d.toByteArray();\n var i = 0;\n while (i < b.length && b[i] == 0) {\n ++i;\n }\n if (b.length - i != n - 1 || b[i] != 2) {\n return null;\n }\n ++i;\n while (b[i] != 0) {\n if (++i >= b.length) {\n return null;\n }\n }\n var ret = \"\";\n while (++i < b.length) {\n var c = b[i] & 255;\n if (c < 128) { // utf-8 decode\n ret += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63));\n ++i;\n }\n else {\n ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63));\n i += 2;\n }\n }\n return ret;\n}\n// https://tools.ietf.org/html/rfc3447#page-43\nvar DIGEST_HEADERS = {\n md2: \"3020300c06082a864886f70d020205000410\",\n md5: \"3020300c06082a864886f70d020505000410\",\n sha1: \"3021300906052b0e03021a05000414\",\n sha224: \"302d300d06096086480165030402040500041c\",\n sha256: \"3031300d060960864801650304020105000420\",\n sha384: \"3041300d060960864801650304020205000430\",\n sha512: \"3051300d060960864801650304020305000440\",\n ripemd160: \"3021300906052b2403020105000414\"\n};\nfunction getDigestHeader(name) {\n return DIGEST_HEADERS[name] || \"\";\n}\nfunction removeDigestHeader(str) {\n for (var name_1 in DIGEST_HEADERS) {\n if (DIGEST_HEADERS.hasOwnProperty(name_1)) {\n var header = DIGEST_HEADERS[name_1];\n var len = header.length;\n if (str.substr(0, len) == header) {\n return str.substr(len);\n }\n }\n }\n return str;\n}\n// Return the PKCS#1 RSA encryption of \"text\" as a Base64-encoded string\n// function RSAEncryptB64(text) {\n// var h = this.encrypt(text);\n// if(h) return hex2b64(h); else return null;\n// }\n// public\n// RSAKey.prototype.encrypt_b64 = RSAEncryptB64;\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/rsa.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/util.js": +/*!******************************!*\ + !*** ./lib/lib/jsbn/util.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"cbit\": () => (/* binding */ cbit),\n/* harmony export */ \"int2char\": () => (/* binding */ int2char),\n/* harmony export */ \"lbit\": () => (/* binding */ lbit),\n/* harmony export */ \"op_and\": () => (/* binding */ op_and),\n/* harmony export */ \"op_andnot\": () => (/* binding */ op_andnot),\n/* harmony export */ \"op_or\": () => (/* binding */ op_or),\n/* harmony export */ \"op_xor\": () => (/* binding */ op_xor)\n/* harmony export */ });\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nfunction op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nfunction op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nfunction op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nfunction op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\n if (x == 0) {\n return -1;\n }\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0) {\n ++r;\n }\n return r;\n}\n// return number of 1 bits in x\nfunction cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/util.js?"); + +/***/ }), + +/***/ "./lib/lib/jsrsasign/asn1-1.0.js": +/*!***************************************!*\ + !*** ./lib/lib/jsrsasign/asn1-1.0.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KJUR\": () => (/* binding */ KJUR)\n/* harmony export */ });\n/* harmony import */ var _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _yahoo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./yahoo */ \"./lib/lib/jsrsasign/yahoo.js\");\n/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n/*\n * asn1.js - ASN.1 DER encoder classes\n *\n * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com)\n *\n * This software is licensed under the terms of the MIT License.\n * https://kjur.github.io/jsrsasign/license\n *\n * The above copyright and license notice shall be\n * included in all copies or substantial portions of the Software.\n */\n\n\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license MIT License\n */\n/**\n * kjur's class library name space\n *

\n * This name space provides following name spaces:\n *

    \n *
  • {@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder
  • \n *
  • {@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL
  • \n *
  • {@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature\n * class and utilities
  • \n *
\n *

\n * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.\n * @name KJUR\n * @namespace kjur's class library name space\n */\nvar KJUR = {};\n/**\n * kjur's ASN.1 class library name space\n *

\n * This is ITU-T X.690 ASN.1 DER encoder class library and\n * class structure and methods is very similar to\n * org.bouncycastle.asn1 package of\n * well known BouncyCaslte Cryptography Library.\n *

PROVIDING ASN.1 PRIMITIVES

\n * Here are ASN.1 DER primitive classes.\n *
    \n *
  • 0x01 {@link KJUR.asn1.DERBoolean}
  • \n *
  • 0x02 {@link KJUR.asn1.DERInteger}
  • \n *
  • 0x03 {@link KJUR.asn1.DERBitString}
  • \n *
  • 0x04 {@link KJUR.asn1.DEROctetString}
  • \n *
  • 0x05 {@link KJUR.asn1.DERNull}
  • \n *
  • 0x06 {@link KJUR.asn1.DERObjectIdentifier}
  • \n *
  • 0x0a {@link KJUR.asn1.DEREnumerated}
  • \n *
  • 0x0c {@link KJUR.asn1.DERUTF8String}
  • \n *
  • 0x12 {@link KJUR.asn1.DERNumericString}
  • \n *
  • 0x13 {@link KJUR.asn1.DERPrintableString}
  • \n *
  • 0x14 {@link KJUR.asn1.DERTeletexString}
  • \n *
  • 0x16 {@link KJUR.asn1.DERIA5String}
  • \n *
  • 0x17 {@link KJUR.asn1.DERUTCTime}
  • \n *
  • 0x18 {@link KJUR.asn1.DERGeneralizedTime}
  • \n *
  • 0x30 {@link KJUR.asn1.DERSequence}
  • \n *
  • 0x31 {@link KJUR.asn1.DERSet}
  • \n *
\n *

OTHER ASN.1 CLASSES

\n *
    \n *
  • {@link KJUR.asn1.ASN1Object}
  • \n *
  • {@link KJUR.asn1.DERAbstractString}
  • \n *
  • {@link KJUR.asn1.DERAbstractTime}
  • \n *
  • {@link KJUR.asn1.DERAbstractStructured}
  • \n *
  • {@link KJUR.asn1.DERTaggedObject}
  • \n *
\n *

SUB NAME SPACES

\n *
    \n *
  • {@link KJUR.asn1.cades} - CAdES long term signature format
  • \n *
  • {@link KJUR.asn1.cms} - Cryptographic Message Syntax
  • \n *
  • {@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)
  • \n *
  • {@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format
  • \n *
  • {@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL
  • \n *
\n *

\n * NOTE: Please ignore method summary and document of this namespace.\n * This caused by a bug of jsdoc2.\n * @name KJUR.asn1\n * @namespace\n */\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1)\n KJUR.asn1 = {};\n/**\n * ASN1 utilities class\n * @name KJUR.asn1.ASN1Util\n * @class ASN1 utilities class\n * @since asn1 1.0.2\n */\nKJUR.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (i) {\n var h = i.toString(16);\n if ((h.length % 2) == 1)\n h = '0' + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substr(0, 1) != '-') {\n if (h.length % 2 == 1) {\n h = '0' + h;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n h = '00' + h;\n }\n }\n }\n else {\n var hPos = h.substr(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = '';\n for (var i = 0; i < xorLen; i++) {\n hMask += 'f';\n }\n var biMask = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(hMask, 16);\n var biNeg = biMask.xor(bigIntegerValue).add(_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n h = biNeg.toString(16).replace(/^-/, '');\n }\n return h;\n };\n /**\n * get PEM string from hexadecimal data and header string\n * @name getPEMStringFromHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} dataHex hexadecimal string of PEM body\n * @param {String} pemHeader PEM header string (ex. 'RSA PRIVATE KEY')\n * @return {String} PEM formatted string of input data\n * @description\n * This method converts a hexadecimal string to a PEM string with\n * a specified header. Its line break will be CRLF(\"\\r\\n\").\n * @example\n * var pem = KJUR.asn1.ASN1Util.getPEMStringFromHex('616161', 'RSA PRIVATE KEY');\n * // value of pem will be:\n * -----BEGIN PRIVATE KEY-----\n * YWFh\n * -----END PRIVATE KEY-----\n */\n this.getPEMStringFromHex = function (dataHex, pemHeader) {\n return hextopem(dataHex, pemHeader);\n };\n /**\n * generate ASN1Object specifed by JSON parameters\n * @name newObject\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return {KJUR.asn1.ASN1Object} generated object\n * @since asn1 1.0.3\n * @description\n * generate any ASN1Object specified by JSON param\n * including ASN.1 primitive or structured.\n * Generally 'param' can be described as follows:\n *
\n * {TYPE-OF-ASNOBJ: ASN1OBJ-PARAMETER}\n *
\n * 'TYPE-OF-ASN1OBJ' can be one of following symbols:\n *
    \n *
  • 'bool' - DERBoolean
  • \n *
  • 'int' - DERInteger
  • \n *
  • 'bitstr' - DERBitString
  • \n *
  • 'octstr' - DEROctetString
  • \n *
  • 'null' - DERNull
  • \n *
  • 'oid' - DERObjectIdentifier
  • \n *
  • 'enum' - DEREnumerated
  • \n *
  • 'utf8str' - DERUTF8String
  • \n *
  • 'numstr' - DERNumericString
  • \n *
  • 'prnstr' - DERPrintableString
  • \n *
  • 'telstr' - DERTeletexString
  • \n *
  • 'ia5str' - DERIA5String
  • \n *
  • 'utctime' - DERUTCTime
  • \n *
  • 'gentime' - DERGeneralizedTime
  • \n *
  • 'seq' - DERSequence
  • \n *
  • 'set' - DERSet
  • \n *
  • 'tag' - DERTaggedObject
  • \n *
\n * @example\n * newObject({'prnstr': 'aaa'});\n * newObject({'seq': [{'int': 3}, {'prnstr': 'aaa'}]})\n * // ASN.1 Tagged Object\n * newObject({'tag': {'tag': 'a1',\n * 'explicit': true,\n * 'obj': {'seq': [{'int': 3}, {'prnstr': 'aaa'}]}}});\n * // more simple representation of ASN.1 Tagged Object\n * newObject({'tag': ['a1',\n * true,\n * {'seq': [\n * {'int': 3},\n * {'prnstr': 'aaa'}]}\n * ]});\n */\n this.newObject = function (param) {\n var _KJUR = KJUR, _KJUR_asn1 = _KJUR.asn1, _DERBoolean = _KJUR_asn1.DERBoolean, _DERInteger = _KJUR_asn1.DERInteger, _DERBitString = _KJUR_asn1.DERBitString, _DEROctetString = _KJUR_asn1.DEROctetString, _DERNull = _KJUR_asn1.DERNull, _DERObjectIdentifier = _KJUR_asn1.DERObjectIdentifier, _DEREnumerated = _KJUR_asn1.DEREnumerated, _DERUTF8String = _KJUR_asn1.DERUTF8String, _DERNumericString = _KJUR_asn1.DERNumericString, _DERPrintableString = _KJUR_asn1.DERPrintableString, _DERTeletexString = _KJUR_asn1.DERTeletexString, _DERIA5String = _KJUR_asn1.DERIA5String, _DERUTCTime = _KJUR_asn1.DERUTCTime, _DERGeneralizedTime = _KJUR_asn1.DERGeneralizedTime, _DERSequence = _KJUR_asn1.DERSequence, _DERSet = _KJUR_asn1.DERSet, _DERTaggedObject = _KJUR_asn1.DERTaggedObject, _newObject = _KJUR_asn1.ASN1Util.newObject;\n var keys = Object.keys(param);\n if (keys.length != 1)\n throw \"key of param shall be only one.\";\n var key = keys[0];\n if (\":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:\".indexOf(\":\" + key + \":\") == -1)\n throw \"undefined key: \" + key;\n if (key == \"bool\")\n return new _DERBoolean(param[key]);\n if (key == \"int\")\n return new _DERInteger(param[key]);\n if (key == \"bitstr\")\n return new _DERBitString(param[key]);\n if (key == \"octstr\")\n return new _DEROctetString(param[key]);\n if (key == \"null\")\n return new _DERNull(param[key]);\n if (key == \"oid\")\n return new _DERObjectIdentifier(param[key]);\n if (key == \"enum\")\n return new _DEREnumerated(param[key]);\n if (key == \"utf8str\")\n return new _DERUTF8String(param[key]);\n if (key == \"numstr\")\n return new _DERNumericString(param[key]);\n if (key == \"prnstr\")\n return new _DERPrintableString(param[key]);\n if (key == \"telstr\")\n return new _DERTeletexString(param[key]);\n if (key == \"ia5str\")\n return new _DERIA5String(param[key]);\n if (key == \"utctime\")\n return new _DERUTCTime(param[key]);\n if (key == \"gentime\")\n return new _DERGeneralizedTime(param[key]);\n if (key == \"seq\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSequence({ 'array': a });\n }\n if (key == \"set\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSet({ 'array': a });\n }\n if (key == \"tag\") {\n var tagParam = param[key];\n if (Object.prototype.toString.call(tagParam) === '[object Array]' &&\n tagParam.length == 3) {\n var obj = _newObject(tagParam[2]);\n return new _DERTaggedObject({ tag: tagParam[0],\n explicit: tagParam[1],\n obj: obj });\n }\n else {\n var newParam = {};\n if (tagParam.explicit !== undefined)\n newParam.explicit = tagParam.explicit;\n if (tagParam.tag !== undefined)\n newParam.tag = tagParam.tag;\n if (tagParam.obj === undefined)\n throw \"obj shall be specified for 'tag'.\";\n newParam.obj = _newObject(tagParam.obj);\n return new _DERTaggedObject(newParam);\n }\n }\n };\n /**\n * get encoded hexadecimal string of ASN1Object specifed by JSON parameters\n * @name jsonToASN1HEX\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return hexadecimal string of ASN1Object\n * @since asn1 1.0.4\n * @description\n * As for ASN.1 object representation of JSON object,\n * please see {@link newObject}.\n * @example\n * jsonToASN1HEX({'prnstr': 'aaa'});\n */\n this.jsonToASN1HEX = function (param) {\n var asn1Obj = this.newObject(param);\n return asn1Obj.getEncodedHex();\n };\n};\n/**\n * get dot noted oid number string from hexadecimal value of OID\n * @name oidHexToInt\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} hex hexadecimal value of object identifier\n * @return {String} dot noted string of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from hexadecimal string representation of\n * ASN.1 value of object identifier to oid number string.\n * @example\n * KJUR.asn1.ASN1Util.oidHexToInt('550406') → \"2.5.4.6\"\n */\nKJUR.asn1.ASN1Util.oidHexToInt = function (hex) {\n var s = \"\";\n var i01 = parseInt(hex.substr(0, 2), 16);\n var i0 = Math.floor(i01 / 40);\n var i1 = i01 % 40;\n var s = i0 + \".\" + i1;\n var binbuf = \"\";\n for (var i = 2; i < hex.length; i += 2) {\n var value = parseInt(hex.substr(i, 2), 16);\n var bin = (\"00000000\" + value.toString(2)).slice(-8);\n binbuf = binbuf + bin.substr(1, 7);\n if (bin.substr(0, 1) == \"0\") {\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(binbuf, 2);\n s = s + \".\" + bi.toString(10);\n binbuf = \"\";\n }\n }\n ;\n return s;\n};\n/**\n * get hexadecimal value of object identifier from dot noted oid value\n * @name oidIntToHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} oidString dot noted string of object identifier\n * @return {String} hexadecimal value of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from object identifier value string.\n * to hexadecimal string representation of it.\n * @example\n * KJUR.asn1.ASN1Util.oidIntToHex(\"2.5.4.6\") → \"550406\"\n */\nKJUR.asn1.ASN1Util.oidIntToHex = function (oidString) {\n var itox = function (i) {\n var h = i.toString(16);\n if (h.length == 1)\n h = '0' + h;\n return h;\n };\n var roidtox = function (roid) {\n var h = '';\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++)\n bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substr(i, 7);\n if (i != b.length - 7)\n b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n return h;\n};\n// ********************************************************************\n// Abstract ASN.1 Classes\n// ********************************************************************\n// ********************************************************************\n/**\n * base class for ASN.1 DER encoder object\n * @name KJUR.asn1.ASN1Object\n * @class base class for ASN.1 DER encoder object\n * @property {Boolean} isModified flag whether internal data was changed\n * @property {String} hTLV hexadecimal string of ASN.1 TLV\n * @property {String} hT hexadecimal string of ASN.1 TLV tag(T)\n * @property {String} hL hexadecimal string of ASN.1 TLV length(L)\n * @property {String} hV hexadecimal string of ASN.1 TLV value(V)\n * @description\n */\nKJUR.asn1.ASN1Object = function () {\n var isModified = true;\n var hTLV = null;\n var hT = '00';\n var hL = '00';\n var hV = '';\n /**\n * get hexadecimal ASN.1 TLV length(L) bytes from TLV value(V)\n * @name getLengthHexFromValue\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV length(L)\n */\n this.getLengthHexFromValue = function () {\n if (typeof this.hV == \"undefined\" || this.hV == null) {\n throw \"this.hV is null or undefined.\";\n }\n if (this.hV.length % 2 == 1) {\n throw \"value hex must be even length: n=\" + hV.length + \",v=\" + this.hV;\n }\n var n = this.hV.length / 2;\n var hN = n.toString(16);\n if (hN.length % 2 == 1) {\n hN = \"0\" + hN;\n }\n if (n < 128) {\n return hN;\n }\n else {\n var hNlen = hN.length / 2;\n if (hNlen > 15) {\n throw \"ASN.1 length too long to represent by 8x: n = \" + n.toString(16);\n }\n var head = 128 + hNlen;\n return head.toString(16) + hN;\n }\n };\n /**\n * get hexadecimal string of ASN.1 TLV bytes\n * @name getEncodedHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV\n */\n this.getEncodedHex = function () {\n if (this.hTLV == null || this.isModified) {\n this.hV = this.getFreshValueHex();\n this.hL = this.getLengthHexFromValue();\n this.hTLV = this.hT + this.hL + this.hV;\n this.isModified = false;\n //alert(\"first time: \" + this.hTLV);\n }\n return this.hTLV;\n };\n /**\n * get hexadecimal string of ASN.1 TLV value(V) bytes\n * @name getValueHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV value(V) bytes\n */\n this.getValueHex = function () {\n this.getEncodedHex();\n return this.hV;\n };\n this.getFreshValueHex = function () {\n return '';\n };\n};\n// == BEGIN DERAbstractString ================================================\n/**\n * base class for ASN.1 DER string classes\n * @name KJUR.asn1.DERAbstractString\n * @class base class for ASN.1 DER string classes\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @property {String} s internal string of value\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • str - specify initial ASN.1 value(V) by a string
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERAbstractString = function (params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n var s = null;\n var hV = null;\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @return {String} string value of this string object\n */\n this.getString = function () {\n return this.s;\n };\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newS value by a string to set\n */\n this.setString = function (newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(this.s);\n };\n /**\n * set value by a hexadecimal string\n * @name setStringHex\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newHexString value by a hexadecimal string to set\n */\n this.setStringHex = function (newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\") {\n this.setString(params);\n }\n else if (typeof params['str'] != \"undefined\") {\n this.setString(params['str']);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setStringHex(params['hex']);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object);\n// == END DERAbstractString ================================================\n// == BEGIN DERAbstractTime ==================================================\n/**\n * base class for ASN.1 DER Generalized/UTCTime class\n * @name KJUR.asn1.DERAbstractTime\n * @class base class for ASN.1 DER Generalized/UTCTime class\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractTime = function (params) {\n KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);\n var s = null;\n var date = null;\n // --- PRIVATE METHODS --------------------\n this.localDateToUTC = function (d) {\n utc = d.getTime() + (d.getTimezoneOffset() * 60000);\n var utcDate = new Date(utc);\n return utcDate;\n };\n /*\n * format date string by Data object\n * @name formatDate\n * @memberOf KJUR.asn1.AbstractTime;\n * @param {Date} dateObject\n * @param {string} type 'utc' or 'gen'\n * @param {boolean} withMillis flag for with millisections or not\n * @description\n * 'withMillis' flag is supported from asn1 1.0.6.\n */\n this.formatDate = function (dateObject, type, withMillis) {\n var pad = this.zeroPadding;\n var d = this.localDateToUTC(dateObject);\n var year = String(d.getFullYear());\n if (type == 'utc')\n year = year.substr(2, 2);\n var month = pad(String(d.getMonth() + 1), 2);\n var day = pad(String(d.getDate()), 2);\n var hour = pad(String(d.getHours()), 2);\n var min = pad(String(d.getMinutes()), 2);\n var sec = pad(String(d.getSeconds()), 2);\n var s = year + month + day + hour + min + sec;\n if (withMillis === true) {\n var millis = d.getMilliseconds();\n if (millis != 0) {\n var sMillis = pad(String(millis), 3);\n sMillis = sMillis.replace(/[0]+$/, \"\");\n s = s + \".\" + sMillis;\n }\n }\n return s + \"Z\";\n };\n this.zeroPadding = function (s, len) {\n if (s.length >= len)\n return s;\n return new Array(len - s.length + 1).join('0') + s;\n };\n // --- PUBLIC METHODS --------------------\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @return {String} string value of this time object\n */\n this.getString = function () {\n return this.s;\n };\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {String} newS value by a string to set such like \"130430235959Z\"\n */\n this.setString = function (newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(newS);\n };\n /**\n * set value by a Date object\n * @name setByDateValue\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {Integer} year year of date (ex. 2013)\n * @param {Integer} month month of date between 1 and 12 (ex. 12)\n * @param {Integer} day day of month\n * @param {Integer} hour hours of date\n * @param {Integer} min minutes of date\n * @param {Integer} sec seconds of date\n */\n this.setByDateValue = function (year, month, day, hour, min, sec) {\n var dateObject = new Date(Date.UTC(year, month - 1, day, hour, min, sec, 0));\n this.setByDate(dateObject);\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object);\n// == END DERAbstractTime ==================================================\n// == BEGIN DERAbstractStructured ============================================\n/**\n * base class for ASN.1 DER structured class\n * @name KJUR.asn1.DERAbstractStructured\n * @class base class for ASN.1 DER structured class\n * @property {Array} asn1Array internal array of ASN1Object\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractStructured = function (params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n var asn1Array = null;\n /**\n * set value by array of ASN1Object\n * @name setByASN1ObjectArray\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {array} asn1ObjectArray array of ASN1Object to set\n */\n this.setByASN1ObjectArray = function (asn1ObjectArray) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array = asn1ObjectArray;\n };\n /**\n * append an ASN1Object to internal array\n * @name appendASN1Object\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {ASN1Object} asn1Object to add\n */\n this.appendASN1Object = function (asn1Object) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array.push(asn1Object);\n };\n this.asn1Array = new Array();\n if (typeof params != \"undefined\") {\n if (typeof params['array'] != \"undefined\") {\n this.asn1Array = params['array'];\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object);\n// ********************************************************************\n// ASN.1 Object Classes\n// ********************************************************************\n// ********************************************************************\n/**\n * class for ASN.1 DER Boolean\n * @name KJUR.asn1.DERBoolean\n * @class class for ASN.1 DER Boolean\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERBoolean = function () {\n KJUR.asn1.DERBoolean.superclass.constructor.call(this);\n this.hT = \"01\";\n this.hTLV = \"0101ff\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER Integer\n * @name KJUR.asn1.DERInteger\n * @class class for ASN.1 DER Integer\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • int - specify initial ASN.1 value(V) by integer value
  • \n *
  • bigint - specify initial ASN.1 value(V) by BigInteger object
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERInteger = function (params) {\n KJUR.asn1.DERInteger.superclass.constructor.call(this);\n this.hT = \"02\";\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function (bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DERInteger\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function (intValue) {\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n *
\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n * @example\n * new KJUR.asn1.DERInteger(123);\n * new KJUR.asn1.DERInteger({'int': 123});\n * new KJUR.asn1.DERInteger({'hex': '1fad'});\n */\n this.setValueHex = function (newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['bigint'] != \"undefined\") {\n this.setByBigInteger(params['bigint']);\n }\n else if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n }\n else if (typeof params == \"number\") {\n this.setByInteger(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER encoded BitString primitive\n * @name KJUR.asn1.DERBitString\n * @class class for ASN.1 DER encoded BitString primitive\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • bin - specify binary string (ex. '10111')
  • \n *
  • array - specify array of boolean (ex. [true,false,true,true])
  • \n *
  • hex - specify hexadecimal string of ASN.1 value(V) including unused bits
  • \n *
  • obj - specify {@link KJUR.asn1.ASN1Util.newObject}\n * argument for \"BitString encapsulates\" structure.
  • \n *
\n * NOTE1: 'params' can be omitted.
\n * NOTE2: 'obj' parameter have been supported since\n * asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).
\n * @example\n * // default constructor\n * o = new KJUR.asn1.DERBitString();\n * // initialize with binary string\n * o = new KJUR.asn1.DERBitString({bin: \"1011\"});\n * // initialize with boolean array\n * o = new KJUR.asn1.DERBitString({array: [true,false,true,true]});\n * // initialize with hexadecimal string (04 is unused bits)\n * o = new KJUR.asn1.DEROctetString({hex: \"04bac0\"});\n * // initialize with ASN1Util.newObject argument for encapsulated\n * o = new KJUR.asn1.DERBitString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // BIT STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DERBitString = function (params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = \"00\" + o.getEncodedHex();\n }\n KJUR.asn1.DERBitString.superclass.constructor.call(this);\n this.hT = \"03\";\n /**\n * set ASN.1 value(V) by a hexadecimal string including unused bits\n * @name setHexValueIncludingUnusedBits\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} newHexStringIncludingUnusedBits\n */\n this.setHexValueIncludingUnusedBits = function (newHexStringIncludingUnusedBits) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = newHexStringIncludingUnusedBits;\n };\n /**\n * set ASN.1 value(V) by unused bit and hexadecimal string of value\n * @name setUnusedBitsAndHexValue\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {Integer} unusedBits\n * @param {String} hValue\n */\n this.setUnusedBitsAndHexValue = function (unusedBits, hValue) {\n if (unusedBits < 0 || 7 < unusedBits) {\n throw \"unused bits shall be from 0 to 7: u = \" + unusedBits;\n }\n var hUnusedBits = \"0\" + unusedBits;\n this.hTLV = null;\n this.isModified = true;\n this.hV = hUnusedBits + hValue;\n };\n /**\n * set ASN.1 DER BitString by binary string
\n * @name setByBinaryString\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} binaryString binary value string (i.e. '10111')\n * @description\n * Its unused bits will be calculated automatically by length of\n * 'binaryValue'.
\n * NOTE: Trailing zeros '0' will be ignored.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray(\"01011\");\n */\n this.setByBinaryString = function (binaryString) {\n binaryString = binaryString.replace(/0+$/, '');\n var unusedBits = 8 - binaryString.length % 8;\n if (unusedBits == 8)\n unusedBits = 0;\n for (var i = 0; i <= unusedBits; i++) {\n binaryString += '0';\n }\n var h = '';\n for (var i = 0; i < binaryString.length - 1; i += 8) {\n var b = binaryString.substr(i, 8);\n var x = parseInt(b, 2).toString(16);\n if (x.length == 1)\n x = '0' + x;\n h += x;\n }\n this.hTLV = null;\n this.isModified = true;\n this.hV = '0' + unusedBits + h;\n };\n /**\n * set ASN.1 TLV value(V) by an array of boolean
\n * @name setByBooleanArray\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {array} booleanArray array of boolean (ex. [true, false, true])\n * @description\n * NOTE: Trailing falses will be ignored in the ASN.1 DER Object.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray([false, true, false, true, true]);\n */\n this.setByBooleanArray = function (booleanArray) {\n var s = '';\n for (var i = 0; i < booleanArray.length; i++) {\n if (booleanArray[i] == true) {\n s += '1';\n }\n else {\n s += '0';\n }\n }\n this.setByBinaryString(s);\n };\n /**\n * generate an array of falses with specified length
\n * @name newFalseArray\n * @memberOf KJUR.asn1.DERBitString\n * @function\n * @param {Integer} nLength length of array to generate\n * @return {array} array of boolean falses\n * @description\n * This static method may be useful to initialize boolean array.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.newFalseArray(3) → [false, false, false]\n */\n this.newFalseArray = function (nLength) {\n var a = new Array(nLength);\n for (var i = 0; i < nLength; i++) {\n a[i] = false;\n }\n return a;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\" && params.toLowerCase().match(/^[0-9a-f]+$/)) {\n this.setHexValueIncludingUnusedBits(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setHexValueIncludingUnusedBits(params['hex']);\n }\n else if (typeof params['bin'] != \"undefined\") {\n this.setByBinaryString(params['bin']);\n }\n else if (typeof params['array'] != \"undefined\") {\n this.setByBooleanArray(params['array']);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER OctetString
\n * @name KJUR.asn1.DEROctetString\n * @class class for ASN.1 DER OctetString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * This class provides ASN.1 OctetString simple type.
\n * Supported \"params\" attributes are:\n *
    \n *
  • str - to set a string as a value
  • \n *
  • hex - to set a hexadecimal string as a value
  • \n *
  • obj - to set a encapsulated ASN.1 value by JSON object\n * which is defined in {@link KJUR.asn1.ASN1Util.newObject}
  • \n *
\n * NOTE: A parameter 'obj' have been supported\n * for \"OCTET STRING, encapsulates\" structure.\n * since asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).\n * @see KJUR.asn1.DERAbstractString - superclass\n * @example\n * // default constructor\n * o = new KJUR.asn1.DEROctetString();\n * // initialize with string\n * o = new KJUR.asn1.DEROctetString({str: \"aaa\"});\n * // initialize with hexadecimal string\n * o = new KJUR.asn1.DEROctetString({hex: \"616161\"});\n * // initialize with ASN1Util.newObject argument\n * o = new KJUR.asn1.DEROctetString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // OCTET STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DEROctetString = function (params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = o.getEncodedHex();\n }\n KJUR.asn1.DEROctetString.superclass.constructor.call(this, params);\n this.hT = \"04\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER Null\n * @name KJUR.asn1.DERNull\n * @class class for ASN.1 DER Null\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERNull = function () {\n KJUR.asn1.DERNull.superclass.constructor.call(this);\n this.hT = \"05\";\n this.hTLV = \"0500\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER ObjectIdentifier\n * @name KJUR.asn1.DERObjectIdentifier\n * @class class for ASN.1 DER ObjectIdentifier\n * @param {Array} params associative array of parameters (ex. {'oid': '2.5.4.5'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • oid - specify initial ASN.1 value(V) by a oid string (ex. 2.5.4.13)
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERObjectIdentifier = function (params) {\n var itox = function (i) {\n var h = i.toString(16);\n if (h.length == 1)\n h = '0' + h;\n return h;\n };\n var roidtox = function (roid) {\n var h = '';\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++)\n bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substr(i, 7);\n if (i != b.length - 7)\n b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);\n this.hT = \"06\";\n /**\n * set value by a hexadecimal string\n * @name setValueHex\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} newHexString hexadecimal value of OID bytes\n */\n this.setValueHex = function (newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n /**\n * set value by a OID string
\n * @name setValueOidString\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidString OID string (ex. 2.5.4.13)\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueOidString(\"2.5.4.13\");\n */\n this.setValueOidString = function (oidString) {\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = h;\n };\n /**\n * set value by a OID name\n * @name setValueName\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidName OID name (ex. 'serverAuth')\n * @since 1.0.1\n * @description\n * OID name shall be defined in 'KJUR.asn1.x509.OID.name2oidList'.\n * Otherwise raise error.\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueName(\"serverAuth\");\n */\n this.setValueName = function (oidName) {\n var oid = KJUR.asn1.x509.OID.name2oid(oidName);\n if (oid !== '') {\n this.setValueOidString(oid);\n }\n else {\n throw \"DERObjectIdentifier oidName undefined: \" + oidName;\n }\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (params !== undefined) {\n if (typeof params === \"string\") {\n if (params.match(/^[0-2].[0-9.]+$/)) {\n this.setValueOidString(params);\n }\n else {\n this.setValueName(params);\n }\n }\n else if (params.oid !== undefined) {\n this.setValueOidString(params.oid);\n }\n else if (params.hex !== undefined) {\n this.setValueHex(params.hex);\n }\n else if (params.name !== undefined) {\n this.setValueName(params.name);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER Enumerated\n * @name KJUR.asn1.DEREnumerated\n * @class class for ASN.1 DER Enumerated\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • int - specify initial ASN.1 value(V) by integer value
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n * @example\n * new KJUR.asn1.DEREnumerated(123);\n * new KJUR.asn1.DEREnumerated({int: 123});\n * new KJUR.asn1.DEREnumerated({hex: '1fad'});\n */\nKJUR.asn1.DEREnumerated = function (params) {\n KJUR.asn1.DEREnumerated.superclass.constructor.call(this);\n this.hT = \"0a\";\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function (bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function (intValue) {\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n *
\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n */\n this.setValueHex = function (newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n }\n else if (typeof params == \"number\") {\n this.setByInteger(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DEREnumerated, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER UTF8String\n * @name KJUR.asn1.DERUTF8String\n * @class class for ASN.1 DER UTF8String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERUTF8String = function (params) {\n KJUR.asn1.DERUTF8String.superclass.constructor.call(this, params);\n this.hT = \"0c\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER NumericString\n * @name KJUR.asn1.DERNumericString\n * @class class for ASN.1 DER NumericString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERNumericString = function (params) {\n KJUR.asn1.DERNumericString.superclass.constructor.call(this, params);\n this.hT = \"12\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER PrintableString\n * @name KJUR.asn1.DERPrintableString\n * @class class for ASN.1 DER PrintableString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERPrintableString = function (params) {\n KJUR.asn1.DERPrintableString.superclass.constructor.call(this, params);\n this.hT = \"13\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER TeletexString\n * @name KJUR.asn1.DERTeletexString\n * @class class for ASN.1 DER TeletexString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERTeletexString = function (params) {\n KJUR.asn1.DERTeletexString.superclass.constructor.call(this, params);\n this.hT = \"14\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER IA5String\n * @name KJUR.asn1.DERIA5String\n * @class class for ASN.1 DER IA5String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERIA5String = function (params) {\n KJUR.asn1.DERIA5String.superclass.constructor.call(this, params);\n this.hT = \"16\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER UTCTime\n * @name KJUR.asn1.DERUTCTime\n * @class class for ASN.1 DER UTCTime\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • str - specify initial ASN.1 value(V) by a string (ex.'130430235959Z')
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
  • date - specify Date object.
  • \n *
\n * NOTE: 'params' can be omitted.\n *

EXAMPLES

\n * @example\n * d1 = new KJUR.asn1.DERUTCTime();\n * d1.setString('130430125959Z');\n *\n * d2 = new KJUR.asn1.DERUTCTime({'str': '130430125959Z'});\n * d3 = new KJUR.asn1.DERUTCTime({'date': new Date(Date.UTC(2015, 0, 31, 0, 0, 0, 0))});\n * d4 = new KJUR.asn1.DERUTCTime('130430125959Z');\n */\nKJUR.asn1.DERUTCTime = function (params) {\n KJUR.asn1.DERUTCTime.superclass.constructor.call(this, params);\n this.hT = \"17\";\n /**\n * set value by a Date object
\n * @name setByDate\n * @memberOf KJUR.asn1.DERUTCTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * o = new KJUR.asn1.DERUTCTime();\n * o.setByDate(new Date(\"2016/12/31\"));\n */\n this.setByDate = function (dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function () {\n if (typeof this.date == \"undefined\" && typeof this.s == \"undefined\") {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n }\n else if (typeof params == \"string\" && params.match(/^[0-9]{12}Z$/)) {\n this.setString(params);\n }\n else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n }\n else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime);\n// ********************************************************************\n/**\n * class for ASN.1 DER GeneralizedTime\n * @name KJUR.asn1.DERGeneralizedTime\n * @class class for ASN.1 DER GeneralizedTime\n * @param {Array} params associative array of parameters (ex. {'str': '20130430235959Z'})\n * @property {Boolean} withMillis flag to show milliseconds or not\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • str - specify initial ASN.1 value(V) by a string (ex.'20130430235959Z')
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
  • date - specify Date object.
  • \n *
  • millis - specify flag to show milliseconds (from 1.0.6)
  • \n *
\n * NOTE1: 'params' can be omitted.\n * NOTE2: 'withMillis' property is supported from asn1 1.0.6.\n */\nKJUR.asn1.DERGeneralizedTime = function (params) {\n KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, params);\n this.hT = \"18\";\n this.withMillis = false;\n /**\n * set value by a Date object\n * @name setByDate\n * @memberOf KJUR.asn1.DERGeneralizedTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * When you specify UTC time, use 'Date.UTC' method like this:
\n * o1 = new DERUTCTime();\n * o1.setByDate(date);\n *\n * date = new Date(Date.UTC(2015, 0, 31, 23, 59, 59, 0)); #2015JAN31 23:59:59\n */\n this.setByDate = function (dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function () {\n if (this.date === undefined && this.s === undefined) {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n }\n else if (typeof params == \"string\" && params.match(/^[0-9]{14}Z$/)) {\n this.setString(params);\n }\n else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n }\n else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n if (params.millis === true) {\n this.withMillis = true;\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime);\n// ********************************************************************\n/**\n * class for ASN.1 DER Sequence\n * @name KJUR.asn1.DERSequence\n * @class class for ASN.1 DER Sequence\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • array - specify array of ASN1Object to set elements of content
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERSequence = function (params) {\n KJUR.asn1.DERSequence.superclass.constructor.call(this, params);\n this.hT = \"30\";\n this.getFreshValueHex = function () {\n var h = '';\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n h += asn1Obj.getEncodedHex();\n }\n this.hV = h;\n return this.hV;\n };\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured);\n// ********************************************************************\n/**\n * class for ASN.1 DER Set\n * @name KJUR.asn1.DERSet\n * @class class for ASN.1 DER Set\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • array - specify array of ASN1Object to set elements of content
  • \n *
  • sortflag - flag for sort (default: true). ASN.1 BER is not sorted in 'SET OF'.
  • \n *
\n * NOTE1: 'params' can be omitted.
\n * NOTE2: sortflag is supported since 1.0.5.\n */\nKJUR.asn1.DERSet = function (params) {\n KJUR.asn1.DERSet.superclass.constructor.call(this, params);\n this.hT = \"31\";\n this.sortFlag = true; // item shall be sorted only in ASN.1 DER\n this.getFreshValueHex = function () {\n var a = new Array();\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n a.push(asn1Obj.getEncodedHex());\n }\n if (this.sortFlag == true)\n a.sort();\n this.hV = a.join('');\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params.sortflag != \"undefined\" &&\n params.sortflag == false)\n this.sortFlag = false;\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured);\n// ********************************************************************\n/**\n * class for ASN.1 DER TaggedObject\n * @name KJUR.asn1.DERTaggedObject\n * @class class for ASN.1 DER TaggedObject\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * Parameter 'tagNoNex' is ASN.1 tag(T) value for this object.\n * For example, if you find '[1]' tag in a ASN.1 dump,\n * 'tagNoHex' will be 'a1'.\n *
\n * As for optional argument 'params' for constructor, you can specify *ANY* of\n * following properties:\n *
    \n *
  • explicit - specify true if this is explicit tag otherwise false\n * (default is 'true').
  • \n *
  • tag - specify tag (default is 'a0' which means [0])
  • \n *
  • obj - specify ASN1Object which is tagged
  • \n *
\n * @example\n * d1 = new KJUR.asn1.DERUTF8String({'str':'a'});\n * d2 = new KJUR.asn1.DERTaggedObject({'obj': d1});\n * hex = d2.getEncodedHex();\n */\nKJUR.asn1.DERTaggedObject = function (params) {\n KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);\n this.hT = \"a0\";\n this.hV = '';\n this.isExplicit = true;\n this.asn1Object = null;\n /**\n * set value by an ASN1Object\n * @name setString\n * @memberOf KJUR.asn1.DERTaggedObject#\n * @function\n * @param {Boolean} isExplicitFlag flag for explicit/implicit tag\n * @param {Integer} tagNoHex hexadecimal string of ASN.1 tag\n * @param {ASN1Object} asn1Object ASN.1 to encapsulate\n */\n this.setASN1Object = function (isExplicitFlag, tagNoHex, asn1Object) {\n this.hT = tagNoHex;\n this.isExplicit = isExplicitFlag;\n this.asn1Object = asn1Object;\n if (this.isExplicit) {\n this.hV = this.asn1Object.getEncodedHex();\n this.hTLV = null;\n this.isModified = true;\n }\n else {\n this.hV = null;\n this.hTLV = asn1Object.getEncodedHex();\n this.hTLV = this.hTLV.replace(/^../, tagNoHex);\n this.isModified = false;\n }\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['tag'] != \"undefined\") {\n this.hT = params['tag'];\n }\n if (typeof params['explicit'] != \"undefined\") {\n this.isExplicit = params['explicit'];\n }\n if (typeof params['obj'] != \"undefined\") {\n this.asn1Object = params['obj'];\n this.setASN1Object(this.isExplicit, this.hT, this.asn1Object);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsrsasign/asn1-1.0.js?"); + +/***/ }), + +/***/ "./lib/lib/jsrsasign/yahoo.js": +/*!************************************!*\ + !*** ./lib/lib/jsrsasign/yahoo.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"YAHOO\": () => (/* binding */ YAHOO)\n/* harmony export */ });\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nvar YAHOO = {};\nYAHOO.lang = {\n /**\n * Utility to set up the prototype, constructor and superclass properties to\n * support an inheritance strategy that can chain constructors and methods.\n * Static members will not be inherited.\n *\n * @method extend\n * @static\n * @param {Function} subc the object to modify\n * @param {Function} superc the object to inherit\n * @param {Object} overrides additional properties/methods to add to the\n * subclass prototype. These will override the\n * matching items obtained from the superclass\n * if present.\n */\n extend: function (subc, superc, overrides) {\n if (!superc || !subc) {\n throw new Error(\"YAHOO.lang.extend failed, please check that \" +\n \"all dependencies are included.\");\n }\n var F = function () { };\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n if (overrides) {\n var i;\n for (i in overrides) {\n subc.prototype[i] = overrides[i];\n }\n /*\n * IE will not enumerate native functions in a derived object even if the\n * function was overridden. This is a workaround for specific functions\n * we care about on the Object prototype.\n * @property _IEEnumFix\n * @param {Function} r the object to receive the augmentation\n * @param {Function} s the object that supplies the properties to augment\n * @static\n * @private\n */\n var _IEEnumFix = function () { }, ADD = [\"toString\", \"valueOf\"];\n try {\n if (/MSIE/.test(navigator.userAgent)) {\n _IEEnumFix = function (r, s) {\n for (i = 0; i < ADD.length; i = i + 1) {\n var fname = ADD[i], f = s[fname];\n if (typeof f === 'function' && f != Object.prototype[fname]) {\n r[fname] = f;\n }\n }\n };\n }\n }\n catch (ex) { }\n ;\n _IEEnumFix(subc.prototype, overrides);\n }\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsrsasign/yahoo.js?"); + +/***/ }), + +/***/ "./node_modules/process/browser.js": +/*!*****************************************!*\ + !*** ./node_modules/process/browser.js ***! + \*****************************************/ +/***/ ((module) => { + +eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack://JSEncrypt/./node_modules/process/browser.js?"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module can't be inlined because the eval devtool is used. +/******/ var __webpack_exports__ = __webpack_require__("./lib/index.js"); +/******/ __webpack_exports__ = __webpack_exports__["default"]; +/******/ +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/node_modules/jsencrypt/bin/jsencrypt.min.js b/node_modules/jsencrypt/bin/jsencrypt.min.js new file mode 100644 index 0000000..b36656c --- /dev/null +++ b/node_modules/jsencrypt/bin/jsencrypt.min.js @@ -0,0 +1,2 @@ +/*! For license information please see jsencrypt.min.js.LICENSE.txt */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.JSEncrypt=e():t.JSEncrypt=e()}(window,(()=>(()=>{var t={155:t=>{var e,i,r=t.exports={};function n(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function o(t){if(e===setTimeout)return setTimeout(t,0);if((e===n||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(i){try{return e.call(null,t,0)}catch(i){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:n}catch(t){e=n}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(t){i=s}}();var h,a=[],u=!1,c=-1;function f(){u&&h&&(u=!1,h.length?a=h.concat(a):c=-1,a.length&&l())}function l(){if(!u){var t=o(f);u=!0;for(var e=a.length;e;){for(h=a,a=[];++c1)for(var i=1;i{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};return(()=>{"use strict";i.d(r,{default:()=>ct});var t="0123456789abcdefghijklmnopqrstuvwxyz";function e(e){return t.charAt(e)}function n(t,e){return t&e}function s(t,e){return t|e}function o(t,e){return t^e}function h(t,e){return t&~e}function a(t){if(0==t)return-1;var e=0;return 0==(65535&t)&&(t>>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function u(t){for(var e=0;0!=t;)t&=t-1,++e;return e}var c,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l="=";function p(t){var e,i,r="";for(e=0;e+3<=t.length;e+=3)i=parseInt(t.substring(e,e+3),16),r+=f.charAt(i>>6)+f.charAt(63&i);for(e+1==t.length?(i=parseInt(t.substring(e,e+1),16),r+=f.charAt(i<<2)):e+2==t.length&&(i=parseInt(t.substring(e,e+2),16),r+=f.charAt(i>>2)+f.charAt((3&i)<<4));(3&r.length)>0;)r+=l;return r}function g(t){var i,r="",n=0,s=0;for(i=0;i>2),s=3&o,n=1):1==n?(r+=e(s<<2|o>>4),s=15&o,n=2):2==n?(r+=e(s),r+=e(o>>2),s=3&o,n=3):(r+=e(s<<2|o>>4),r+=e(15&o),n=0))}return 1==n&&(r+=e(s<<2)),r}var d,v={decode:function(t){var e;if(void 0===d){var i="= \f\n\r\t \u2028\u2029";for(d=Object.create(null),e=0;e<64;++e)d["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)]=e;for(d["-"]=62,d._=63,e=0;e=4?(r[r.length]=n>>16,r[r.length]=n>>8&255,r[r.length]=255&n,n=0,s=0):n<<=6}}switch(s){case 1:throw new Error("Base64 encoding incomplete: at least 2 bits missing");case 2:r[r.length]=n>>10;break;case 3:r[r.length]=n>>16,r[r.length]=n>>8&255}return r},re:/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,unarmor:function(t){var e=v.re.exec(t);if(e)if(e[1])t=e[1];else{if(!e[2])throw new Error("RegExp out of sync");t=e[2]}return v.decode(t)}},m=1e13,y=function(){function t(t){this.buf=[+t||0]}return t.prototype.mulAdd=function(t,e){var i,r,n=this.buf,s=n.length;for(i=0;i0&&(n[i]=e)},t.prototype.sub=function(t){var e,i,r=this.buf,n=r.length;for(e=0;e=0;--r)i+=(m+e[r]).toString().substring(1);return i},t.prototype.valueOf=function(){for(var t=this.buf,e=0,i=t.length-1;i>=0;--i)e=e*m+t[i];return e},t.prototype.simplify=function(){var t=this.buf;return 1==t.length?t[0]:this},t}(),b="…",T=/^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/,S=/^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;function E(t,e){return t.length>e&&(t=t.substring(0,e)+b),t}var w,D=function(){function t(e,i){this.hexDigits="0123456789ABCDEF",e instanceof t?(this.enc=e.enc,this.pos=e.pos):(this.enc=e,this.pos=i)}return t.prototype.get=function(t){if(void 0===t&&(t=this.pos++),t>=this.enc.length)throw new Error("Requesting byte offset ".concat(t," on a stream of length ").concat(this.enc.length));return"string"==typeof this.enc?this.enc.charCodeAt(t):this.enc[t]},t.prototype.hexByte=function(t){return this.hexDigits.charAt(t>>4&15)+this.hexDigits.charAt(15&t)},t.prototype.hexDump=function(t,e,i){for(var r="",n=t;n176)return!1}return!0},t.prototype.parseStringISO=function(t,e){for(var i="",r=t;r191&&n<224?String.fromCharCode((31&n)<<6|63&this.get(r++)):String.fromCharCode((15&n)<<12|(63&this.get(r++))<<6|63&this.get(r++))}return i},t.prototype.parseStringBMP=function(t,e){for(var i,r,n="",s=t;s127,s=n?255:0,o="";r==s&&++t4){for(o=r,i<<=3;0==(128&(+o^s));)o=+o<<1,--i;o="("+i+" bit)\n"}n&&(r-=256);for(var h=new y(r),a=t+1;a=a;--u)s+=h>>u&1?"1":"0";if(s.length>i)return n+E(s,i)}return n+s},t.prototype.parseOctetString=function(t,e,i){if(this.isASCII(t,e))return E(this.parseStringISO(t,e),i);var r=e-t,n="("+r+" byte)\n";r>(i/=2)&&(e=t+i);for(var s=t;si&&(n+=b),n},t.prototype.parseOID=function(t,e,i){for(var r="",n=new y,s=0,o=t;oi)return E(r,i);n=new y,s=0}}return s>0&&(r+=".incomplete"),r},t}(),x=function(){function t(t,e,i,r,n){if(!(r instanceof R))throw new Error("Invalid tag value.");this.stream=t,this.header=e,this.length=i,this.tag=r,this.sub=n}return t.prototype.typeName=function(){switch(this.tag.tagClass){case 0:switch(this.tag.tagNumber){case 0:return"EOC";case 1:return"BOOLEAN";case 2:return"INTEGER";case 3:return"BIT_STRING";case 4:return"OCTET_STRING";case 5:return"NULL";case 6:return"OBJECT_IDENTIFIER";case 7:return"ObjectDescriptor";case 8:return"EXTERNAL";case 9:return"REAL";case 10:return"ENUMERATED";case 11:return"EMBEDDED_PDV";case 12:return"UTF8String";case 16:return"SEQUENCE";case 17:return"SET";case 18:return"NumericString";case 19:return"PrintableString";case 20:return"TeletexString";case 21:return"VideotexString";case 22:return"IA5String";case 23:return"UTCTime";case 24:return"GeneralizedTime";case 25:return"GraphicString";case 26:return"VisibleString";case 27:return"GeneralString";case 28:return"UniversalString";case 30:return"BMPString"}return"Universal_"+this.tag.tagNumber.toString();case 1:return"Application_"+this.tag.tagNumber.toString();case 2:return"["+this.tag.tagNumber.toString()+"]";case 3:return"Private_"+this.tag.tagNumber.toString()}},t.prototype.content=function(t){if(void 0===this.tag)return null;void 0===t&&(t=1/0);var e=this.posContent(),i=Math.abs(this.length);if(!this.tag.isUniversal())return null!==this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);switch(this.tag.tagNumber){case 1:return 0===this.stream.get(e)?"false":"true";case 2:return this.stream.parseInteger(e,e+i);case 3:return this.sub?"("+this.sub.length+" elem)":this.stream.parseBitString(e,e+i,t);case 4:return this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);case 6:return this.stream.parseOID(e,e+i,t);case 16:case 17:return null!==this.sub?"("+this.sub.length+" elem)":"(no elem)";case 12:return E(this.stream.parseStringUTF(e,e+i),t);case 18:case 19:case 20:case 21:case 22:case 26:return E(this.stream.parseStringISO(e,e+i),t);case 30:return E(this.stream.parseStringBMP(e,e+i),t);case 23:case 24:return this.stream.parseTime(e,e+i,23==this.tag.tagNumber)}return null},t.prototype.toString=function(){return this.typeName()+"@"+this.stream.pos+"[header:"+this.header+",length:"+this.length+",sub:"+(null===this.sub?"null":this.sub.length)+"]"},t.prototype.toPrettyString=function(t){void 0===t&&(t="");var e=t+this.typeName()+" @"+this.stream.pos;if(this.length>=0&&(e+="+"),e+=this.length,this.tag.tagConstructed?e+=" (constructed)":!this.tag.isUniversal()||3!=this.tag.tagNumber&&4!=this.tag.tagNumber||null===this.sub||(e+=" (encapsulates)"),e+="\n",null!==this.sub){t+=" ";for(var i=0,r=this.sub.length;i6)throw new Error("Length over 48 bits not supported at position "+(t.pos-1));if(0===i)return null;e=0;for(var r=0;r>6,this.tagConstructed=0!=(32&e),this.tagNumber=31&e,31==this.tagNumber){var i=new y;do{e=t.get(),i.mulAdd(128,127&e)}while(128&e);this.tagNumber=i.simplify()}}return t.prototype.isUniversal=function(){return 0===this.tagClass},t.prototype.isEOC=function(){return 0===this.tagClass&&0===this.tagNumber},t}(),B=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],O=(1<<26)/B[B.length-1],A=function(){function t(t,e,i){null!=t&&("number"==typeof t?this.fromNumber(t,e,i):null==e&&"string"!=typeof t?this.fromString(t,256):this.fromString(t,e))}return t.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var i;if(16==t)i=4;else if(8==t)i=3;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)return this.toRadix(t);i=2}var r,n=(1<0)for(a>a)>0&&(s=!0,o=e(r));h>=0;)a>(a+=this.DB-i)):(r=this[h]>>(a-=i)&n,a<=0&&(a+=this.DB,--h)),r>0&&(s=!0),s&&(o+=e(r));return s?o:"0"},t.prototype.negate=function(){var e=M();return t.ZERO.subTo(this,e),e},t.prototype.abs=function(){return this.s<0?this.negate():this},t.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var i=this.t;if(0!=(e=i-t.t))return this.s<0?-e:e;for(;--i>=0;)if(0!=(e=this[i]-t[i]))return e;return 0},t.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+K(this[this.t-1]^this.s&this.DM)},t.prototype.mod=function(e){var i=M();return this.abs().divRemTo(e,null,i),this.s<0&&i.compareTo(t.ZERO)>0&&e.subTo(i,i),i},t.prototype.modPowInt=function(t,e){var i;return i=t<256||e.isEven()?new I(e):new N(e),this.exp(t,i)},t.prototype.clone=function(){var t=M();return this.copyTo(t),t},t.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<>24},t.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},t.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},t.prototype.toByteArray=function(){var t=this.t,e=[];e[0]=this.s;var i,r=this.DB-t*this.DB%8,n=0;if(t-- >0)for(r>r)!=(this.s&this.DM)>>r&&(e[n++]=i|this.s<=0;)r<8?(i=(this[t]&(1<>(r+=this.DB-8)):(i=this[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),0!=(128&i)&&(i|=-256),0==n&&(128&this.s)!=(128&i)&&++n,(n>0||i!=this.s)&&(e[n++]=i);return e},t.prototype.equals=function(t){return 0==this.compareTo(t)},t.prototype.min=function(t){return this.compareTo(t)<0?this:t},t.prototype.max=function(t){return this.compareTo(t)>0?this:t},t.prototype.and=function(t){var e=M();return this.bitwiseTo(t,n,e),e},t.prototype.or=function(t){var e=M();return this.bitwiseTo(t,s,e),e},t.prototype.xor=function(t){var e=M();return this.bitwiseTo(t,o,e),e},t.prototype.andNot=function(t){var e=M();return this.bitwiseTo(t,h,e),e},t.prototype.not=function(){for(var t=M(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var c=M();for(r.sqrTo(o[1],c);h<=u;)o[h]=M(),r.mulTo(c,o[h-2],o[h]),h+=2}var f,l,p=t.t-1,g=!0,d=M();for(n=K(t[p])-1;p>=0;){for(n>=a?f=t[p]>>n-a&u:(f=(t[p]&(1<0&&(f|=t[p-1]>>this.DB+n-a)),h=i;0==(1&f);)f>>=1,--h;if((n-=h)<0&&(n+=this.DB,--p),g)o[f].copyTo(s),g=!1;else{for(;h>1;)r.sqrTo(s,d),r.sqrTo(d,s),h-=2;h>0?r.sqrTo(s,d):(l=s,s=d,d=l),r.mulTo(d,o[f],s)}for(;p>=0&&0==(t[p]&1<=0?(r.subTo(n,r),i&&s.subTo(h,s),o.subTo(a,o)):(n.subTo(r,n),i&&h.subTo(s,h),a.subTo(o,a))}return 0!=n.compareTo(t.ONE)?t.ZERO:a.compareTo(e)>=0?a.subtract(e):a.signum()<0?(a.addTo(e,a),a.signum()<0?a.add(e):a):a},t.prototype.pow=function(t){return this.exp(t,new V)},t.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),i=t.s<0?t.negate():t.clone();if(e.compareTo(i)<0){var r=e;e=i,i=r}var n=e.getLowestSetBit(),s=i.getLowestSetBit();if(s<0)return e;for(n0&&(e.rShiftTo(s,e),i.rShiftTo(s,i));e.signum()>0;)(n=e.getLowestSetBit())>0&&e.rShiftTo(n,e),(n=i.getLowestSetBit())>0&&i.rShiftTo(n,i),e.compareTo(i)>=0?(e.subTo(i,e),e.rShiftTo(1,e)):(i.subTo(e,i),i.rShiftTo(1,i));return s>0&&i.lShiftTo(s,i),i},t.prototype.isProbablePrime=function(t){var e,i=this.abs();if(1==i.t&&i[0]<=B[B.length-1]){for(e=0;e=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},t.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},t.prototype.fromString=function(e,i){var r;if(16==i)r=4;else if(8==i)r=3;else if(256==i)r=8;else if(2==i)r=1;else if(32==i)r=5;else{if(4!=i)return void this.fromRadix(e,i);r=2}this.t=0,this.s=0;for(var n=e.length,s=!1,o=0;--n>=0;){var h=8==r?255&+e[n]:F(e,n);h<0?"-"==e.charAt(n)&&(s=!0):(s=!1,0==o?this[this.t++]=h:o+r>this.DB?(this[this.t-1]|=(h&(1<>this.DB-o):this[this.t-1]|=h<=this.DB&&(o-=this.DB))}8==r&&0!=(128&+e[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},t.prototype.dlShiftTo=function(t,e){var i;for(i=this.t-1;i>=0;--i)e[i+t]=this[i];for(i=t-1;i>=0;--i)e[i]=0;e.t=this.t+t,e.s=this.s},t.prototype.drShiftTo=function(t,e){for(var i=t;i=0;--h)e[h+s+1]=this[h]>>r|o,o=(this[h]&n)<=0;--h)e[h]=0;e[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()},t.prototype.rShiftTo=function(t,e){e.s=this.s;var i=Math.floor(t/this.DB);if(i>=this.t)e.t=0;else{var r=t%this.DB,n=this.DB-r,s=(1<>r;for(var o=i+1;o>r;r>0&&(e[this.t-i-1]|=(this.s&s)<>=this.DB;if(t.t>=this.DB;r+=this.s}else{for(r+=this.s;i>=this.DB;r-=t.s}e.s=r<0?-1:0,r<-1?e[i++]=this.DV+r:r>0&&(e[i++]=r),e.t=i,e.clamp()},t.prototype.multiplyTo=function(e,i){var r=this.abs(),n=e.abs(),s=r.t;for(i.t=s+n.t;--s>=0;)i[s]=0;for(s=0;s=0;)t[i]=0;for(i=0;i=e.DV&&(t[i+e.t]-=e.DV,t[i+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(i,e[i],t,2*i,0,1)),t.s=0,t.clamp()},t.prototype.divRemTo=function(e,i,r){var n=e.abs();if(!(n.t<=0)){var s=this.abs();if(s.t0?(n.lShiftTo(u,o),s.lShiftTo(u,r)):(n.copyTo(o),s.copyTo(r));var c=o.t,f=o[c-1];if(0!=f){var l=f*(1<1?o[c-2]>>this.F2:0),p=this.FV/l,g=(1<=0&&(r[r.t++]=1,r.subTo(y,r)),t.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t=0;){var b=r[--v]==f?this.DM:Math.floor(r[v]*p+(r[v-1]+d)*g);if((r[v]+=o.am(0,b,r,m,0,c))0&&r.rShiftTo(u,r),h<0&&t.ZERO.subTo(r,r)}}},t.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},t.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},t.prototype.exp=function(e,i){if(e>4294967295||e<1)return t.ONE;var r=M(),n=M(),s=i.convert(this),o=K(e)-1;for(s.copyTo(r);--o>=0;)if(i.sqrTo(r,n),(e&1<0)i.mulTo(n,s,r);else{var h=r;r=n,n=h}return i.revert(r)},t.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},t.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),i=Math.pow(t,e),r=U(i),n=M(),s=M(),o="";for(this.divRemTo(r,n,s);n.signum()>0;)o=(i+s.intValue()).toString(t).substr(1)+o,n.divRemTo(r,n,s);return s.intValue().toString(t)+o},t.prototype.fromRadix=function(e,i){this.fromInt(0),null==i&&(i=10);for(var r=this.chunkSize(i),n=Math.pow(i,r),s=!1,o=0,h=0,a=0;a=r&&(this.dMultiply(n),this.dAddOffset(h,0),o=0,h=0))}o>0&&(this.dMultiply(Math.pow(i,o)),this.dAddOffset(h,0)),s&&t.ZERO.subTo(this,this)},t.prototype.fromNumber=function(e,i,r){if("number"==typeof i)if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(t.ONE.shiftLeft(e-1),s,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(i);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(t.ONE.shiftLeft(e-1),this);else{var n=[],o=7&e;n.length=1+(e>>3),i.nextBytes(n),o>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;r+=this.s}else{for(r+=this.s;i>=this.DB;r+=t.s}e.s=r<0?-1:0,r>0?e[i++]=r:r<-1&&(e[i++]=this.DV+r),e.t=i,e.clamp()},t.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},t.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},t.prototype.multiplyLowerTo=function(t,e,i){var r=Math.min(this.t+t.t,e);for(i.s=0,i.t=r;r>0;)i[--r]=0;for(var n=i.t-this.t;r=0;)i[r]=0;for(r=Math.max(e-this.t,0);r0)if(0==e)i=this[0]%t;else for(var r=this.t-1;r>=0;--r)i=(e*i+this[r])%t;return i},t.prototype.millerRabin=function(e){var i=this.subtract(t.ONE),r=i.getLowestSetBit();if(r<=0)return!1;var n=i.shiftRight(r);(e=e+1>>1)>B.length&&(e=B.length);for(var s=M(),o=0;o0&&(i.rShiftTo(o,i),r.rShiftTo(o,r));var h=function(){(s=i.getLowestSetBit())>0&&i.rShiftTo(s,i),(s=r.getLowestSetBit())>0&&r.rShiftTo(s,r),i.compareTo(r)>=0?(i.subTo(r,i),i.rShiftTo(1,i)):(r.subTo(i,r),r.rShiftTo(1,r)),i.signum()>0?setTimeout(h,0):(o>0&&r.lShiftTo(o,r),setTimeout((function(){e(r)}),0))};setTimeout(h,10)}},t.prototype.fromNumberAsync=function(e,i,r,n){if("number"==typeof i)if(e<2)this.fromInt(1);else{this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(t.ONE.shiftLeft(e-1),s,this),this.isEven()&&this.dAddOffset(1,0);var o=this,h=function(){o.dAddOffset(2,0),o.bitLength()>e&&o.subTo(t.ONE.shiftLeft(e-1),o),o.isProbablePrime(i)?setTimeout((function(){n()}),0):setTimeout(h,0)};setTimeout(h,0)}else{var a=[],u=7&e;a.length=1+(e>>3),i.nextBytes(a),u>0?a[0]&=(1<=0?t.mod(this.m):t},t.prototype.revert=function(t){return t},t.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}(),N=function(){function t(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(e,e),e},t.prototype.revert=function(t){var e=M();return t.copyTo(e),this.reduce(e),e},t.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[i=e+this.m.t]+=this.m.am(0,r,t,e,0,this.m.t);t[i]>=t.DV;)t[i]-=t.DV,t[++i]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}(),P=function(){function t(t){this.m=t,this.r2=M(),this.q3=M(),A.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t)}return t.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=M();return t.copyTo(e),this.reduce(e),e},t.prototype.revert=function(t){return t},t.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},t.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},t.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},t}();function M(){return new A(null)}function L(t,e){return new A(t,e)}var j="undefined"!=typeof navigator;j&&"Microsoft Internet Explorer"==navigator.appName?(A.prototype.am=function(t,e,i,r,n,s){for(var o=32767&e,h=e>>15;--s>=0;){var a=32767&this[t],u=this[t++]>>15,c=h*a+u*o;n=((a=o*a+((32767&c)<<15)+i[r]+(1073741823&n))>>>30)+(c>>>15)+h*u+(n>>>30),i[r++]=1073741823&a}return n},w=30):j&&"Netscape"!=navigator.appName?(A.prototype.am=function(t,e,i,r,n,s){for(;--s>=0;){var o=e*this[t++]+i[r]+n;n=Math.floor(o/67108864),i[r++]=67108863&o}return n},w=26):(A.prototype.am=function(t,e,i,r,n,s){for(var o=16383&e,h=e>>14;--s>=0;){var a=16383&this[t],u=this[t++]>>14,c=h*a+u*o;n=((a=o*a+((16383&c)<<14)+i[r]+n)>>28)+(c>>14)+h*u,i[r++]=268435455&a}return n},w=28),A.prototype.DB=w,A.prototype.DM=(1<>>16)&&(t=e,i+=16),0!=(e=t>>8)&&(t=e,i+=8),0!=(e=t>>4)&&(t=e,i+=4),0!=(e=t>>2)&&(t=e,i+=2),0!=(e=t>>1)&&(t=e,i+=1),i}A.ZERO=U(0),A.ONE=U(1);var k,_,z=function(){function t(){this.i=0,this.j=0,this.S=[]}return t.prototype.init=function(t){var e,i,r;for(e=0;e<256;++e)this.S[e]=e;for(i=0,e=0;e<256;++e)i=i+this.S[e]+t[e%t.length]&255,r=this.S[e],this.S[e]=this.S[i],this.S[i]=r;this.i=0,this.j=0},t.prototype.next=function(){var t;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,t=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=t,this.S[t+this.S[this.i]&255]},t}(),Z=256,G=null;if(null==G){G=[],_=0;var $=void 0;if("undefined"!=typeof window&&window.crypto&&window.crypto.getRandomValues){var Y=new Uint32Array(256);for(window.crypto.getRandomValues(Y),$=0;$=256||_>=Z)window.removeEventListener?window.removeEventListener("mousemove",X,!1):window.detachEvent&&window.detachEvent("onmousemove",X);else try{var e=t.x+t.y;G[_++]=255&e,J+=1}catch(t){}};"undefined"!=typeof window&&(window.addEventListener?window.addEventListener("mousemove",X,!1):window.attachEvent&&window.attachEvent("onmousemove",X))}function Q(){if(null==k){for(k=new z;_0&&e.length>0?(this.n=L(t,16),this.e=parseInt(e,16)):console.error("Invalid RSA public key")},t.prototype.encrypt=function(t){var e=this.n.bitLength()+7>>3,i=function(t,e){if(e=0&&e>0;){var n=t.charCodeAt(r--);n<128?i[--e]=n:n>127&&n<2048?(i[--e]=63&n|128,i[--e]=n>>6|192):(i[--e]=63&n|128,i[--e]=n>>6&63|128,i[--e]=n>>12|224)}i[--e]=0;for(var s=new W,o=[];e>2;){for(o[0]=0;0==o[0];)s.nextBytes(o);i[--e]=o[0]}return i[--e]=2,i[--e]=0,new A(i)}(t,e);if(null==i)return null;var r=this.doPublic(i);if(null==r)return null;for(var n=r.toString(16),s=n.length,o=0;o<2*e-s;o++)n="0"+n;return n},t.prototype.setPrivate=function(t,e,i){null!=t&&null!=e&&t.length>0&&e.length>0?(this.n=L(t,16),this.e=parseInt(e,16),this.d=L(i,16)):console.error("Invalid RSA private key")},t.prototype.setPrivateEx=function(t,e,i,r,n,s,o,h){null!=t&&null!=e&&t.length>0&&e.length>0?(this.n=L(t,16),this.e=parseInt(e,16),this.d=L(i,16),this.p=L(r,16),this.q=L(n,16),this.dmp1=L(s,16),this.dmq1=L(o,16),this.coeff=L(h,16)):console.error("Invalid RSA private key")},t.prototype.generate=function(t,e){var i=new W,r=t>>1;this.e=parseInt(e,16);for(var n=new A(e,16);;){for(;this.p=new A(t-r,1,i),0!=this.p.subtract(A.ONE).gcd(n).compareTo(A.ONE)||!this.p.isProbablePrime(10););for(;this.q=new A(r,1,i),0!=this.q.subtract(A.ONE).gcd(n).compareTo(A.ONE)||!this.q.isProbablePrime(10););if(this.p.compareTo(this.q)<=0){var s=this.p;this.p=this.q,this.q=s}var o=this.p.subtract(A.ONE),h=this.q.subtract(A.ONE),a=o.multiply(h);if(0==a.gcd(n).compareTo(A.ONE)){this.n=this.p.multiply(this.q),this.d=n.modInverse(a),this.dmp1=this.d.mod(o),this.dmq1=this.d.mod(h),this.coeff=this.q.modInverse(this.p);break}}},t.prototype.decrypt=function(t){var e=L(t,16),i=this.doPrivate(e);return null==i?null:function(t,e){for(var i=t.toByteArray(),r=0;r=i.length)return null;for(var n="";++r191&&s<224?(n+=String.fromCharCode((31&s)<<6|63&i[r+1]),++r):(n+=String.fromCharCode((15&s)<<12|(63&i[r+1])<<6|63&i[r+2]),r+=2)}return n}(i,this.n.bitLength()+7>>3)},t.prototype.generateAsync=function(t,e,i){var r=new W,n=t>>1;this.e=parseInt(e,16);var s=new A(e,16),o=this,h=function(){var e=function(){if(o.p.compareTo(o.q)<=0){var t=o.p;o.p=o.q,o.q=t}var e=o.p.subtract(A.ONE),r=o.q.subtract(A.ONE),n=e.multiply(r);0==n.gcd(s).compareTo(A.ONE)?(o.n=o.p.multiply(o.q),o.d=s.modInverse(n),o.dmp1=o.d.mod(e),o.dmq1=o.d.mod(r),o.coeff=o.q.modInverse(o.p),setTimeout((function(){i()}),0)):setTimeout(h,0)},a=function(){o.q=M(),o.q.fromNumberAsync(n,1,r,(function(){o.q.subtract(A.ONE).gcda(s,(function(t){0==t.compareTo(A.ONE)&&o.q.isProbablePrime(10)?setTimeout(e,0):setTimeout(a,0)}))}))},u=function(){o.p=M(),o.p.fromNumberAsync(t-n,1,r,(function(){o.p.subtract(A.ONE).gcda(s,(function(t){0==t.compareTo(A.ONE)&&o.p.isProbablePrime(10)?setTimeout(a,0):setTimeout(u,0)}))}))};setTimeout(u,0)};setTimeout(h,0)},t.prototype.sign=function(t,e,i){var r=function(t,e){if(e15)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+i).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""}},rt.asn1.DERAbstractString=function(t){rt.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(this.s)},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},it.lang.extend(rt.asn1.DERAbstractString,rt.asn1.ASN1Object),rt.asn1.DERAbstractTime=function(t){rt.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(t){return utc=t.getTime()+6e4*t.getTimezoneOffset(),new Date(utc)},this.formatDate=function(t,e,i){var r=this.zeroPadding,n=this.localDateToUTC(t),s=String(n.getFullYear());"utc"==e&&(s=s.substr(2,2));var o=s+r(String(n.getMonth()+1),2)+r(String(n.getDate()),2)+r(String(n.getHours()),2)+r(String(n.getMinutes()),2)+r(String(n.getSeconds()),2);if(!0===i){var h=n.getMilliseconds();if(0!=h){var a=r(String(h),3);o=o+"."+(a=a.replace(/[0]+$/,""))}}return o+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(t)},this.setByDateValue=function(t,e,i,r,n,s){var o=new Date(Date.UTC(t,e-1,i,r,n,s,0));this.setByDate(o)},this.getFreshValueHex=function(){return this.hV}},it.lang.extend(rt.asn1.DERAbstractTime,rt.asn1.ASN1Object),rt.asn1.DERAbstractStructured=function(t){rt.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},it.lang.extend(rt.asn1.DERAbstractStructured,rt.asn1.ASN1Object),rt.asn1.DERBoolean=function(){rt.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV="0101ff"},it.lang.extend(rt.asn1.DERBoolean,rt.asn1.ASN1Object),rt.asn1.DERInteger=function(t){rt.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=rt.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new A(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},it.lang.extend(rt.asn1.DERInteger,rt.asn1.ASN1Object),rt.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=rt.asn1.ASN1Util.newObject(t.obj);t.hex="00"+e.getEncodedHex()}rt.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7=2?(n[n.length]=s,s=0,o=0):s<<=4}}if(o)throw new Error("Hex encoding incomplete: 4 bits missing");return n}(t):v.unarmor(t),n=x.decode(r);if(3===n.sub.length&&(n=n.sub[2].sub[0]),9===n.sub.length){e=n.sub[1].getHexStringValue(),this.n=L(e,16),i=n.sub[2].getHexStringValue(),this.e=parseInt(i,16);var s=n.sub[3].getHexStringValue();this.d=L(s,16);var o=n.sub[4].getHexStringValue();this.p=L(o,16);var h=n.sub[5].getHexStringValue();this.q=L(h,16);var a=n.sub[6].getHexStringValue();this.dmp1=L(a,16);var u=n.sub[7].getHexStringValue();this.dmq1=L(u,16);var f=n.sub[8].getHexStringValue();this.coeff=L(f,16)}else{if(2!==n.sub.length)return!1;if(n.sub[0].sub){var l=n.sub[1].sub[0];e=l.sub[0].getHexStringValue(),this.n=L(e,16),i=l.sub[1].getHexStringValue(),this.e=parseInt(i,16)}else e=n.sub[0].getHexStringValue(),this.n=L(e,16),i=n.sub[1].getHexStringValue(),this.e=parseInt(i,16)}return!0}catch(t){return!1}},e.prototype.getPrivateBaseKey=function(){var t={array:[new rt.asn1.DERInteger({int:0}),new rt.asn1.DERInteger({bigint:this.n}),new rt.asn1.DERInteger({int:this.e}),new rt.asn1.DERInteger({bigint:this.d}),new rt.asn1.DERInteger({bigint:this.p}),new rt.asn1.DERInteger({bigint:this.q}),new rt.asn1.DERInteger({bigint:this.dmp1}),new rt.asn1.DERInteger({bigint:this.dmq1}),new rt.asn1.DERInteger({bigint:this.coeff})]};return new rt.asn1.DERSequence(t).getEncodedHex()},e.prototype.getPrivateBaseKeyB64=function(){return p(this.getPrivateBaseKey())},e.prototype.getPublicBaseKey=function(){var t=new rt.asn1.DERSequence({array:[new rt.asn1.DERObjectIdentifier({oid:"1.2.840.113549.1.1.1"}),new rt.asn1.DERNull]}),e=new rt.asn1.DERSequence({array:[new rt.asn1.DERInteger({bigint:this.n}),new rt.asn1.DERInteger({int:this.e})]}),i=new rt.asn1.DERBitString({hex:"00"+e.getEncodedHex()});return new rt.asn1.DERSequence({array:[t,i]}).getEncodedHex()},e.prototype.getPublicBaseKeyB64=function(){return p(this.getPublicBaseKey())},e.wordwrap=function(t,e){if(!t)return t;var i="(.{1,"+(e=e||64)+"})( +|$\n?)|(.{1,"+e+"})";return t.match(RegExp(i,"g")).join("\n")},e.prototype.getPrivateKey=function(){var t="-----BEGIN RSA PRIVATE KEY-----\n";return(t+=e.wordwrap(this.getPrivateBaseKeyB64())+"\n")+"-----END RSA PRIVATE KEY-----"},e.prototype.getPublicKey=function(){var t="-----BEGIN PUBLIC KEY-----\n";return(t+=e.wordwrap(this.getPublicBaseKeyB64())+"\n")+"-----END PUBLIC KEY-----"},e.hasPublicKeyProperty=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")},e.hasPrivateKeyProperty=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")&&t.hasOwnProperty("d")&&t.hasOwnProperty("p")&&t.hasOwnProperty("q")&&t.hasOwnProperty("dmp1")&&t.hasOwnProperty("dmq1")&&t.hasOwnProperty("coeff")},e.prototype.parsePropertiesFrom=function(t){this.n=t.n,this.e=t.e,t.hasOwnProperty("d")&&(this.d=t.d,this.p=t.p,this.q=t.q,this.dmp1=t.dmp1,this.dmq1=t.dmq1,this.coeff=t.coeff)},e}(tt),at=i(155),ut=void 0!==at?null===(st=at.env)||void 0===st?void 0:"3.3.2":void 0;const ct=function(){function t(t){void 0===t&&(t={}),t=t||{},this.default_key_size=t.default_key_size?parseInt(t.default_key_size,10):1024,this.default_public_exponent=t.default_public_exponent||"010001",this.log=t.log||!1,this.key=null}return t.prototype.setKey=function(t){this.log&&this.key&&console.warn("A key was already set, overriding existing."),this.key=new ht(t)},t.prototype.setPrivateKey=function(t){this.setKey(t)},t.prototype.setPublicKey=function(t){this.setKey(t)},t.prototype.decrypt=function(t){try{return this.getKey().decrypt(g(t))}catch(t){return!1}},t.prototype.encrypt=function(t){try{return p(this.getKey().encrypt(t))}catch(t){return!1}},t.prototype.sign=function(t,e,i){try{return p(this.getKey().sign(t,e,i))}catch(t){return!1}},t.prototype.verify=function(t,e,i){try{return this.getKey().verify(t,g(e),i)}catch(t){return!1}},t.prototype.getKey=function(t){if(!this.key){if(this.key=new ht,t&&"[object Function]"==={}.toString.call(t))return void this.key.generateAsync(this.default_key_size,this.default_public_exponent,t);this.key.generate(this.default_key_size,this.default_public_exponent)}return this.key},t.prototype.getPrivateKey=function(){return this.getKey().getPrivateKey()},t.prototype.getPrivateKeyB64=function(){return this.getKey().getPrivateBaseKeyB64()},t.prototype.getPublicKey=function(){return this.getKey().getPublicKey()},t.prototype.getPublicKeyB64=function(){return this.getKey().getPublicBaseKeyB64()},t.version=ut,t}()})(),r.default})())); \ No newline at end of file diff --git a/node_modules/jsencrypt/bin/jsencrypt.min.js.LICENSE.txt b/node_modules/jsencrypt/bin/jsencrypt.min.js.LICENSE.txt new file mode 100644 index 0000000..307590d --- /dev/null +++ b/node_modules/jsencrypt/bin/jsencrypt.min.js.LICENSE.txt @@ -0,0 +1,8 @@ +/** + * @fileOverview + * @name asn1-1.0.js + * @author Kenji Urushima kenji.urushima@gmail.com + * @version asn1 1.0.13 (2017-Jun-02) + * @since jsrsasign 2.1 + * @license MIT License + */ diff --git a/node_modules/jsencrypt/lib/JSEncrypt.d.ts b/node_modules/jsencrypt/lib/JSEncrypt.d.ts new file mode 100644 index 0000000..d81c134 --- /dev/null +++ b/node_modules/jsencrypt/lib/JSEncrypt.d.ts @@ -0,0 +1,116 @@ +import { JSEncryptRSAKey } from "./JSEncryptRSAKey"; +export interface IJSEncryptOptions { + default_key_size?: string; + default_public_exponent?: string; + log?: boolean; +} +/** + * + * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour + * possible parameters are: + * - default_key_size {number} default: 1024 the key size in bit + * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent + * - log {boolean} default: false whether log warn/error or not + * @constructor + */ +export declare class JSEncrypt { + constructor(options?: IJSEncryptOptions); + private default_key_size; + private default_public_exponent; + private log; + private key; + static version: string; + /** + * Method to set the rsa key parameter (one method is enough to set both the public + * and the private key, since the private key contains the public key paramenters) + * Log a warning if logs are enabled + * @param {Object|string} key the pem encoded string or an object (with or without header/footer) + * @public + */ + setKey(key: string): void; + /** + * Proxy method for setKey, for api compatibility + * @see setKey + * @public + */ + setPrivateKey(privkey: string): void; + /** + * Proxy method for setKey, for api compatibility + * @see setKey + * @public + */ + setPublicKey(pubkey: string): void; + /** + * Proxy method for RSAKey object's decrypt, decrypt the string using the private + * components of the rsa key object. Note that if the object was not set will be created + * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor + * @param {string} str base64 encoded crypted string to decrypt + * @return {string} the decrypted string + * @public + */ + decrypt(str: string): string | false; + /** + * Proxy method for RSAKey object's encrypt, encrypt the string using the public + * components of the rsa key object. Note that if the object was not set will be created + * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor + * @param {string} str the string to encrypt + * @return {string} the encrypted string encoded in base64 + * @public + */ + encrypt(str: string): string | false; + /** + * Proxy method for RSAKey object's sign. + * @param {string} str the string to sign + * @param {function} digestMethod hash method + * @param {string} digestName the name of the hash algorithm + * @return {string} the signature encoded in base64 + * @public + */ + sign(str: string, digestMethod: (str: string) => string, digestName: string): string | false; + /** + * Proxy method for RSAKey object's verify. + * @param {string} str the string to verify + * @param {string} signature the signature encoded in base64 to compare the string to + * @param {function} digestMethod hash method + * @return {boolean} whether the data and signature match + * @public + */ + verify(str: string, signature: string, digestMethod: (str: string) => string): boolean; + /** + * Getter for the current JSEncryptRSAKey object. If it doesn't exists a new object + * will be created and returned + * @param {callback} [cb] the callback to be called if we want the key to be generated + * in an async fashion + * @returns {JSEncryptRSAKey} the JSEncryptRSAKey object + * @public + */ + getKey(cb?: () => void): JSEncryptRSAKey; + /** + * Returns the pem encoded representation of the private key + * If the key doesn't exists a new key will be created + * @returns {string} pem encoded representation of the private key WITH header and footer + * @public + */ + getPrivateKey(): string; + /** + * Returns the pem encoded representation of the private key + * If the key doesn't exists a new key will be created + * @returns {string} pem encoded representation of the private key WITHOUT header and footer + * @public + */ + getPrivateKeyB64(): string; + /** + * Returns the pem encoded representation of the public key + * If the key doesn't exists a new key will be created + * @returns {string} pem encoded representation of the public key WITH header and footer + * @public + */ + getPublicKey(): string; + /** + * Returns the pem encoded representation of the public key + * If the key doesn't exists a new key will be created + * @returns {string} pem encoded representation of the public key WITHOUT header and footer + * @public + */ + getPublicKeyB64(): string; +} diff --git a/node_modules/jsencrypt/lib/JSEncrypt.js b/node_modules/jsencrypt/lib/JSEncrypt.js new file mode 100644 index 0000000..460df55 --- /dev/null +++ b/node_modules/jsencrypt/lib/JSEncrypt.js @@ -0,0 +1,192 @@ +var _a; +import { b64tohex, hex2b64 } from "./lib/jsbn/base64"; +import { JSEncryptRSAKey } from "./JSEncryptRSAKey"; +var version = typeof process !== 'undefined' + ? (_a = process.env) === null || _a === void 0 ? void 0 : _a.npm_package_version + : undefined; +/** + * + * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour + * possible parameters are: + * - default_key_size {number} default: 1024 the key size in bit + * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent + * - log {boolean} default: false whether log warn/error or not + * @constructor + */ +var JSEncrypt = /** @class */ (function () { + function JSEncrypt(options) { + if (options === void 0) { options = {}; } + options = options || {}; + this.default_key_size = options.default_key_size + ? parseInt(options.default_key_size, 10) + : 1024; + this.default_public_exponent = options.default_public_exponent || "010001"; // 65537 default openssl public exponent for rsa key type + this.log = options.log || false; + // The private and public key. + this.key = null; + } + /** + * Method to set the rsa key parameter (one method is enough to set both the public + * and the private key, since the private key contains the public key paramenters) + * Log a warning if logs are enabled + * @param {Object|string} key the pem encoded string or an object (with or without header/footer) + * @public + */ + JSEncrypt.prototype.setKey = function (key) { + if (this.log && this.key) { + console.warn("A key was already set, overriding existing."); + } + this.key = new JSEncryptRSAKey(key); + }; + /** + * Proxy method for setKey, for api compatibility + * @see setKey + * @public + */ + JSEncrypt.prototype.setPrivateKey = function (privkey) { + // Create the key. + this.setKey(privkey); + }; + /** + * Proxy method for setKey, for api compatibility + * @see setKey + * @public + */ + JSEncrypt.prototype.setPublicKey = function (pubkey) { + // Sets the public key. + this.setKey(pubkey); + }; + /** + * Proxy method for RSAKey object's decrypt, decrypt the string using the private + * components of the rsa key object. Note that if the object was not set will be created + * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor + * @param {string} str base64 encoded crypted string to decrypt + * @return {string} the decrypted string + * @public + */ + JSEncrypt.prototype.decrypt = function (str) { + // Return the decrypted string. + try { + return this.getKey().decrypt(b64tohex(str)); + } + catch (ex) { + return false; + } + }; + /** + * Proxy method for RSAKey object's encrypt, encrypt the string using the public + * components of the rsa key object. Note that if the object was not set will be created + * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor + * @param {string} str the string to encrypt + * @return {string} the encrypted string encoded in base64 + * @public + */ + JSEncrypt.prototype.encrypt = function (str) { + // Return the encrypted string. + try { + return hex2b64(this.getKey().encrypt(str)); + } + catch (ex) { + return false; + } + }; + /** + * Proxy method for RSAKey object's sign. + * @param {string} str the string to sign + * @param {function} digestMethod hash method + * @param {string} digestName the name of the hash algorithm + * @return {string} the signature encoded in base64 + * @public + */ + JSEncrypt.prototype.sign = function (str, digestMethod, digestName) { + // return the RSA signature of 'str' in 'hex' format. + try { + return hex2b64(this.getKey().sign(str, digestMethod, digestName)); + } + catch (ex) { + return false; + } + }; + /** + * Proxy method for RSAKey object's verify. + * @param {string} str the string to verify + * @param {string} signature the signature encoded in base64 to compare the string to + * @param {function} digestMethod hash method + * @return {boolean} whether the data and signature match + * @public + */ + JSEncrypt.prototype.verify = function (str, signature, digestMethod) { + // Return the decrypted 'digest' of the signature. + try { + return this.getKey().verify(str, b64tohex(signature), digestMethod); + } + catch (ex) { + return false; + } + }; + /** + * Getter for the current JSEncryptRSAKey object. If it doesn't exists a new object + * will be created and returned + * @param {callback} [cb] the callback to be called if we want the key to be generated + * in an async fashion + * @returns {JSEncryptRSAKey} the JSEncryptRSAKey object + * @public + */ + JSEncrypt.prototype.getKey = function (cb) { + // Only create new if it does not exist. + if (!this.key) { + // Get a new private key. + this.key = new JSEncryptRSAKey(); + if (cb && {}.toString.call(cb) === "[object Function]") { + this.key.generateAsync(this.default_key_size, this.default_public_exponent, cb); + return; + } + // Generate the key. + this.key.generate(this.default_key_size, this.default_public_exponent); + } + return this.key; + }; + /** + * Returns the pem encoded representation of the private key + * If the key doesn't exists a new key will be created + * @returns {string} pem encoded representation of the private key WITH header and footer + * @public + */ + JSEncrypt.prototype.getPrivateKey = function () { + // Return the private representation of this key. + return this.getKey().getPrivateKey(); + }; + /** + * Returns the pem encoded representation of the private key + * If the key doesn't exists a new key will be created + * @returns {string} pem encoded representation of the private key WITHOUT header and footer + * @public + */ + JSEncrypt.prototype.getPrivateKeyB64 = function () { + // Return the private representation of this key. + return this.getKey().getPrivateBaseKeyB64(); + }; + /** + * Returns the pem encoded representation of the public key + * If the key doesn't exists a new key will be created + * @returns {string} pem encoded representation of the public key WITH header and footer + * @public + */ + JSEncrypt.prototype.getPublicKey = function () { + // Return the private representation of this key. + return this.getKey().getPublicKey(); + }; + /** + * Returns the pem encoded representation of the public key + * If the key doesn't exists a new key will be created + * @returns {string} pem encoded representation of the public key WITHOUT header and footer + * @public + */ + JSEncrypt.prototype.getPublicKeyB64 = function () { + // Return the private representation of this key. + return this.getKey().getPublicBaseKeyB64(); + }; + JSEncrypt.version = version; + return JSEncrypt; +}()); +export { JSEncrypt }; diff --git a/node_modules/jsencrypt/lib/JSEncryptRSAKey.d.ts b/node_modules/jsencrypt/lib/JSEncryptRSAKey.d.ts new file mode 100644 index 0000000..dbb77e4 --- /dev/null +++ b/node_modules/jsencrypt/lib/JSEncryptRSAKey.d.ts @@ -0,0 +1,142 @@ +import { RSAKey } from "./lib/jsbn/rsa"; +/** + * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object. + * This object is just a decorator for parsing the key parameter + * @param {string|Object} key - The key in string format, or an object containing + * the parameters needed to build a RSAKey object. + * @constructor + */ +export declare class JSEncryptRSAKey extends RSAKey { + constructor(key?: string); + /** + * Method to parse a pem encoded string containing both a public or private key. + * The method will translate the pem encoded string in a der encoded string and + * will parse private key and public key parameters. This method accepts public key + * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1). + * + * @todo Check how many rsa formats use the same format of pkcs #1. + * + * The format is defined as: + * PublicKeyInfo ::= SEQUENCE { + * algorithm AlgorithmIdentifier, + * PublicKey BIT STRING + * } + * Where AlgorithmIdentifier is: + * AlgorithmIdentifier ::= SEQUENCE { + * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm + * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1) + * } + * and PublicKey is a SEQUENCE encapsulated in a BIT STRING + * RSAPublicKey ::= SEQUENCE { + * modulus INTEGER, -- n + * publicExponent INTEGER -- e + * } + * it's possible to examine the structure of the keys obtained from openssl using + * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/ + * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer + * @private + */ + parseKey(pem: string): boolean; + /** + * Translate rsa parameters in a hex encoded string representing the rsa key. + * + * The translation follow the ASN.1 notation : + * RSAPrivateKey ::= SEQUENCE { + * version Version, + * modulus INTEGER, -- n + * publicExponent INTEGER, -- e + * privateExponent INTEGER, -- d + * prime1 INTEGER, -- p + * prime2 INTEGER, -- q + * exponent1 INTEGER, -- d mod (p1) + * exponent2 INTEGER, -- d mod (q-1) + * coefficient INTEGER, -- (inverse of q) mod p + * } + * @returns {string} DER Encoded String representing the rsa private key + * @private + */ + getPrivateBaseKey(): string; + /** + * base64 (pem) encoded version of the DER encoded representation + * @returns {string} pem encoded representation without header and footer + * @public + */ + getPrivateBaseKeyB64(): string; + /** + * Translate rsa parameters in a hex encoded string representing the rsa public key. + * The representation follow the ASN.1 notation : + * PublicKeyInfo ::= SEQUENCE { + * algorithm AlgorithmIdentifier, + * PublicKey BIT STRING + * } + * Where AlgorithmIdentifier is: + * AlgorithmIdentifier ::= SEQUENCE { + * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm + * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1) + * } + * and PublicKey is a SEQUENCE encapsulated in a BIT STRING + * RSAPublicKey ::= SEQUENCE { + * modulus INTEGER, -- n + * publicExponent INTEGER -- e + * } + * @returns {string} DER Encoded String representing the rsa public key + * @private + */ + getPublicBaseKey(): string; + /** + * base64 (pem) encoded version of the DER encoded representation + * @returns {string} pem encoded representation without header and footer + * @public + */ + getPublicBaseKeyB64(): string; + /** + * wrap the string in block of width chars. The default value for rsa keys is 64 + * characters. + * @param {string} str the pem encoded string without header and footer + * @param {Number} [width=64] - the length the string has to be wrapped at + * @returns {string} + * @private + */ + static wordwrap(str: string, width?: number): string; + /** + * Retrieve the pem encoded private key + * @returns {string} the pem encoded private key with header/footer + * @public + */ + getPrivateKey(): string; + /** + * Retrieve the pem encoded public key + * @returns {string} the pem encoded public key with header/footer + * @public + */ + getPublicKey(): string; + /** + * Check if the object contains the necessary parameters to populate the rsa modulus + * and public exponent parameters. + * @param {Object} [obj={}] - An object that may contain the two public key + * parameters + * @returns {boolean} true if the object contains both the modulus and the public exponent + * properties (n and e) + * @todo check for types of n and e. N should be a parseable bigInt object, E should + * be a parseable integer number + * @private + */ + static hasPublicKeyProperty(obj: object): boolean; + /** + * Check if the object contains ALL the parameters of an RSA key. + * @param {Object} [obj={}] - An object that may contain nine rsa key + * parameters + * @returns {boolean} true if the object contains all the parameters needed + * @todo check for types of the parameters all the parameters but the public exponent + * should be parseable bigint objects, the public exponent should be a parseable integer number + * @private + */ + static hasPrivateKeyProperty(obj: object): boolean; + /** + * Parse the properties of obj in the current rsa object. Obj should AT LEAST + * include the modulus and public exponent (n, e) parameters. + * @param {Object} obj - the object containing rsa parameters + * @private + */ + parsePropertiesFrom(obj: any): void; +} diff --git a/node_modules/jsencrypt/lib/JSEncryptRSAKey.js b/node_modules/jsencrypt/lib/JSEncryptRSAKey.js new file mode 100644 index 0000000..f61f388 --- /dev/null +++ b/node_modules/jsencrypt/lib/JSEncryptRSAKey.js @@ -0,0 +1,320 @@ +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +import { hex2b64 } from "./lib/jsbn/base64"; +import { Hex } from "./lib/asn1js/hex"; +import { Base64 } from "./lib/asn1js/base64"; +import { ASN1 } from "./lib/asn1js/asn1"; +import { RSAKey } from "./lib/jsbn/rsa"; +import { parseBigInt } from "./lib/jsbn/jsbn"; +import { KJUR } from "./lib/jsrsasign/asn1-1.0"; +/** + * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object. + * This object is just a decorator for parsing the key parameter + * @param {string|Object} key - The key in string format, or an object containing + * the parameters needed to build a RSAKey object. + * @constructor + */ +var JSEncryptRSAKey = /** @class */ (function (_super) { + __extends(JSEncryptRSAKey, _super); + function JSEncryptRSAKey(key) { + var _this = _super.call(this) || this; + // Call the super constructor. + // RSAKey.call(this); + // If a key key was provided. + if (key) { + // If this is a string... + if (typeof key === "string") { + _this.parseKey(key); + } + else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) || + JSEncryptRSAKey.hasPublicKeyProperty(key)) { + // Set the values for the key. + _this.parsePropertiesFrom(key); + } + } + return _this; + } + /** + * Method to parse a pem encoded string containing both a public or private key. + * The method will translate the pem encoded string in a der encoded string and + * will parse private key and public key parameters. This method accepts public key + * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1). + * + * @todo Check how many rsa formats use the same format of pkcs #1. + * + * The format is defined as: + * PublicKeyInfo ::= SEQUENCE { + * algorithm AlgorithmIdentifier, + * PublicKey BIT STRING + * } + * Where AlgorithmIdentifier is: + * AlgorithmIdentifier ::= SEQUENCE { + * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm + * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1) + * } + * and PublicKey is a SEQUENCE encapsulated in a BIT STRING + * RSAPublicKey ::= SEQUENCE { + * modulus INTEGER, -- n + * publicExponent INTEGER -- e + * } + * it's possible to examine the structure of the keys obtained from openssl using + * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/ + * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer + * @private + */ + JSEncryptRSAKey.prototype.parseKey = function (pem) { + try { + var modulus = 0; + var public_exponent = 0; + var reHex = /^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/; + var der = reHex.test(pem) ? Hex.decode(pem) : Base64.unarmor(pem); + var asn1 = ASN1.decode(der); + // Fixes a bug with OpenSSL 1.0+ private keys + if (asn1.sub.length === 3) { + asn1 = asn1.sub[2].sub[0]; + } + if (asn1.sub.length === 9) { + // Parse the private key. + modulus = asn1.sub[1].getHexStringValue(); // bigint + this.n = parseBigInt(modulus, 16); + public_exponent = asn1.sub[2].getHexStringValue(); // int + this.e = parseInt(public_exponent, 16); + var private_exponent = asn1.sub[3].getHexStringValue(); // bigint + this.d = parseBigInt(private_exponent, 16); + var prime1 = asn1.sub[4].getHexStringValue(); // bigint + this.p = parseBigInt(prime1, 16); + var prime2 = asn1.sub[5].getHexStringValue(); // bigint + this.q = parseBigInt(prime2, 16); + var exponent1 = asn1.sub[6].getHexStringValue(); // bigint + this.dmp1 = parseBigInt(exponent1, 16); + var exponent2 = asn1.sub[7].getHexStringValue(); // bigint + this.dmq1 = parseBigInt(exponent2, 16); + var coefficient = asn1.sub[8].getHexStringValue(); // bigint + this.coeff = parseBigInt(coefficient, 16); + } + else if (asn1.sub.length === 2) { + if (asn1.sub[0].sub) { + // Parse ASN.1 SubjectPublicKeyInfo type as defined by X.509 + var bit_string = asn1.sub[1]; + var sequence = bit_string.sub[0]; + modulus = sequence.sub[0].getHexStringValue(); + this.n = parseBigInt(modulus, 16); + public_exponent = sequence.sub[1].getHexStringValue(); + this.e = parseInt(public_exponent, 16); + } + else { + // Parse ASN.1 RSAPublicKey type as defined by PKCS #1 + modulus = asn1.sub[0].getHexStringValue(); + this.n = parseBigInt(modulus, 16); + public_exponent = asn1.sub[1].getHexStringValue(); + this.e = parseInt(public_exponent, 16); + } + } + else { + return false; + } + return true; + } + catch (ex) { + return false; + } + }; + /** + * Translate rsa parameters in a hex encoded string representing the rsa key. + * + * The translation follow the ASN.1 notation : + * RSAPrivateKey ::= SEQUENCE { + * version Version, + * modulus INTEGER, -- n + * publicExponent INTEGER, -- e + * privateExponent INTEGER, -- d + * prime1 INTEGER, -- p + * prime2 INTEGER, -- q + * exponent1 INTEGER, -- d mod (p1) + * exponent2 INTEGER, -- d mod (q-1) + * coefficient INTEGER, -- (inverse of q) mod p + * } + * @returns {string} DER Encoded String representing the rsa private key + * @private + */ + JSEncryptRSAKey.prototype.getPrivateBaseKey = function () { + var options = { + array: [ + new KJUR.asn1.DERInteger({ int: 0 }), + new KJUR.asn1.DERInteger({ bigint: this.n }), + new KJUR.asn1.DERInteger({ int: this.e }), + new KJUR.asn1.DERInteger({ bigint: this.d }), + new KJUR.asn1.DERInteger({ bigint: this.p }), + new KJUR.asn1.DERInteger({ bigint: this.q }), + new KJUR.asn1.DERInteger({ bigint: this.dmp1 }), + new KJUR.asn1.DERInteger({ bigint: this.dmq1 }), + new KJUR.asn1.DERInteger({ bigint: this.coeff }), + ], + }; + var seq = new KJUR.asn1.DERSequence(options); + return seq.getEncodedHex(); + }; + /** + * base64 (pem) encoded version of the DER encoded representation + * @returns {string} pem encoded representation without header and footer + * @public + */ + JSEncryptRSAKey.prototype.getPrivateBaseKeyB64 = function () { + return hex2b64(this.getPrivateBaseKey()); + }; + /** + * Translate rsa parameters in a hex encoded string representing the rsa public key. + * The representation follow the ASN.1 notation : + * PublicKeyInfo ::= SEQUENCE { + * algorithm AlgorithmIdentifier, + * PublicKey BIT STRING + * } + * Where AlgorithmIdentifier is: + * AlgorithmIdentifier ::= SEQUENCE { + * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm + * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1) + * } + * and PublicKey is a SEQUENCE encapsulated in a BIT STRING + * RSAPublicKey ::= SEQUENCE { + * modulus INTEGER, -- n + * publicExponent INTEGER -- e + * } + * @returns {string} DER Encoded String representing the rsa public key + * @private + */ + JSEncryptRSAKey.prototype.getPublicBaseKey = function () { + var first_sequence = new KJUR.asn1.DERSequence({ + array: [ + new KJUR.asn1.DERObjectIdentifier({ oid: "1.2.840.113549.1.1.1" }), + new KJUR.asn1.DERNull(), + ], + }); + var second_sequence = new KJUR.asn1.DERSequence({ + array: [ + new KJUR.asn1.DERInteger({ bigint: this.n }), + new KJUR.asn1.DERInteger({ int: this.e }), + ], + }); + var bit_string = new KJUR.asn1.DERBitString({ + hex: "00" + second_sequence.getEncodedHex(), + }); + var seq = new KJUR.asn1.DERSequence({ + array: [first_sequence, bit_string], + }); + return seq.getEncodedHex(); + }; + /** + * base64 (pem) encoded version of the DER encoded representation + * @returns {string} pem encoded representation without header and footer + * @public + */ + JSEncryptRSAKey.prototype.getPublicBaseKeyB64 = function () { + return hex2b64(this.getPublicBaseKey()); + }; + /** + * wrap the string in block of width chars. The default value for rsa keys is 64 + * characters. + * @param {string} str the pem encoded string without header and footer + * @param {Number} [width=64] - the length the string has to be wrapped at + * @returns {string} + * @private + */ + JSEncryptRSAKey.wordwrap = function (str, width) { + width = width || 64; + if (!str) { + return str; + } + var regex = "(.{1," + width + "})( +|$\n?)|(.{1," + width + "})"; + return str.match(RegExp(regex, "g")).join("\n"); + }; + /** + * Retrieve the pem encoded private key + * @returns {string} the pem encoded private key with header/footer + * @public + */ + JSEncryptRSAKey.prototype.getPrivateKey = function () { + var key = "-----BEGIN RSA PRIVATE KEY-----\n"; + key += JSEncryptRSAKey.wordwrap(this.getPrivateBaseKeyB64()) + "\n"; + key += "-----END RSA PRIVATE KEY-----"; + return key; + }; + /** + * Retrieve the pem encoded public key + * @returns {string} the pem encoded public key with header/footer + * @public + */ + JSEncryptRSAKey.prototype.getPublicKey = function () { + var key = "-----BEGIN PUBLIC KEY-----\n"; + key += JSEncryptRSAKey.wordwrap(this.getPublicBaseKeyB64()) + "\n"; + key += "-----END PUBLIC KEY-----"; + return key; + }; + /** + * Check if the object contains the necessary parameters to populate the rsa modulus + * and public exponent parameters. + * @param {Object} [obj={}] - An object that may contain the two public key + * parameters + * @returns {boolean} true if the object contains both the modulus and the public exponent + * properties (n and e) + * @todo check for types of n and e. N should be a parseable bigInt object, E should + * be a parseable integer number + * @private + */ + JSEncryptRSAKey.hasPublicKeyProperty = function (obj) { + obj = obj || {}; + return obj.hasOwnProperty("n") && obj.hasOwnProperty("e"); + }; + /** + * Check if the object contains ALL the parameters of an RSA key. + * @param {Object} [obj={}] - An object that may contain nine rsa key + * parameters + * @returns {boolean} true if the object contains all the parameters needed + * @todo check for types of the parameters all the parameters but the public exponent + * should be parseable bigint objects, the public exponent should be a parseable integer number + * @private + */ + JSEncryptRSAKey.hasPrivateKeyProperty = function (obj) { + obj = obj || {}; + return (obj.hasOwnProperty("n") && + obj.hasOwnProperty("e") && + obj.hasOwnProperty("d") && + obj.hasOwnProperty("p") && + obj.hasOwnProperty("q") && + obj.hasOwnProperty("dmp1") && + obj.hasOwnProperty("dmq1") && + obj.hasOwnProperty("coeff")); + }; + /** + * Parse the properties of obj in the current rsa object. Obj should AT LEAST + * include the modulus and public exponent (n, e) parameters. + * @param {Object} obj - the object containing rsa parameters + * @private + */ + JSEncryptRSAKey.prototype.parsePropertiesFrom = function (obj) { + this.n = obj.n; + this.e = obj.e; + if (obj.hasOwnProperty("d")) { + this.d = obj.d; + this.p = obj.p; + this.q = obj.q; + this.dmp1 = obj.dmp1; + this.dmq1 = obj.dmq1; + this.coeff = obj.coeff; + } + }; + return JSEncryptRSAKey; +}(RSAKey)); +export { JSEncryptRSAKey }; diff --git a/node_modules/jsencrypt/lib/index.d.ts b/node_modules/jsencrypt/lib/index.d.ts new file mode 100644 index 0000000..cae3cf2 --- /dev/null +++ b/node_modules/jsencrypt/lib/index.d.ts @@ -0,0 +1,3 @@ +import { JSEncrypt } from './JSEncrypt'; +export { JSEncrypt }; +export default JSEncrypt; diff --git a/node_modules/jsencrypt/lib/index.js b/node_modules/jsencrypt/lib/index.js new file mode 100644 index 0000000..cae3cf2 --- /dev/null +++ b/node_modules/jsencrypt/lib/index.js @@ -0,0 +1,3 @@ +import { JSEncrypt } from './JSEncrypt'; +export { JSEncrypt }; +export default JSEncrypt; diff --git a/node_modules/jsencrypt/lib/lib/asn1js/asn1.d.ts b/node_modules/jsencrypt/lib/lib/asn1js/asn1.d.ts new file mode 100644 index 0000000..a8bfd66 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/asn1.d.ts @@ -0,0 +1,51 @@ +import { Int10 } from "./int10"; +export declare class Stream { + constructor(enc: Stream | number[], pos?: number); + private enc; + pos: number; + get(pos?: number): number; + hexDigits: string; + hexByte(b: number): string; + hexDump(start: number, end: number, raw: boolean): string; + isASCII(start: number, end: number): boolean; + parseStringISO(start: number, end: number): string; + parseStringUTF(start: number, end: number): string; + parseStringBMP(start: number, end: number): string; + parseTime(start: number, end: number, shortYear: boolean): string; + parseInteger(start: number, end: number): string | 0 | -1; + parseBitString(start: number, end: number, maxLength: number): string; + parseOctetString(start: number, end: number, maxLength: number): string; + parseOID(start: number, end: number, maxLength: number): string; +} +export declare class ASN1 { + constructor(stream: Stream, header: number, length: number, tag: ASN1Tag, sub: ASN1[]); + private stream; + private header; + private length; + private tag; + sub: ASN1[]; + typeName(): string; + content(maxLength: number): string | 0 | -1; + toString(): string; + toPrettyString(indent: string): string; + posStart(): number; + posContent(): number; + posEnd(): number; + toHexString(): string; + static decodeLength(stream: Stream): number; + /** + * Retrieve the hexadecimal value (as a string) of the current ASN.1 element + * @returns {string} + * @public + */ + getHexStringValue(): string; + static decode(str: Stream | number[]): ASN1; +} +export declare class ASN1Tag { + constructor(stream: Stream); + tagClass: number; + tagConstructed: boolean; + tagNumber: number | Int10; + isUniversal(): boolean; + isEOC(): boolean; +} diff --git a/node_modules/jsencrypt/lib/lib/asn1js/asn1.js b/node_modules/jsencrypt/lib/lib/asn1js/asn1.js new file mode 100644 index 0000000..5884ea4 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/asn1.js @@ -0,0 +1,565 @@ +// ASN.1 JavaScript decoder +// Copyright (c) 2008-2014 Lapo Luchini +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */ +/*global oids */ +import { Int10 } from "./int10"; +var ellipsis = "\u2026"; +var reTimeS = /^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/; +var reTimeL = /^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/; +function stringCut(str, len) { + if (str.length > len) { + str = str.substring(0, len) + ellipsis; + } + return str; +} +var Stream = /** @class */ (function () { + function Stream(enc, pos) { + this.hexDigits = "0123456789ABCDEF"; + if (enc instanceof Stream) { + this.enc = enc.enc; + this.pos = enc.pos; + } + else { + // enc should be an array or a binary string + this.enc = enc; + this.pos = pos; + } + } + Stream.prototype.get = function (pos) { + if (pos === undefined) { + pos = this.pos++; + } + if (pos >= this.enc.length) { + throw new Error("Requesting byte offset ".concat(pos, " on a stream of length ").concat(this.enc.length)); + } + return ("string" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos]; + }; + Stream.prototype.hexByte = function (b) { + return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF); + }; + Stream.prototype.hexDump = function (start, end, raw) { + var s = ""; + for (var i = start; i < end; ++i) { + s += this.hexByte(this.get(i)); + if (raw !== true) { + switch (i & 0xF) { + case 0x7: + s += " "; + break; + case 0xF: + s += "\n"; + break; + default: + s += " "; + } + } + } + return s; + }; + Stream.prototype.isASCII = function (start, end) { + for (var i = start; i < end; ++i) { + var c = this.get(i); + if (c < 32 || c > 176) { + return false; + } + } + return true; + }; + Stream.prototype.parseStringISO = function (start, end) { + var s = ""; + for (var i = start; i < end; ++i) { + s += String.fromCharCode(this.get(i)); + } + return s; + }; + Stream.prototype.parseStringUTF = function (start, end) { + var s = ""; + for (var i = start; i < end;) { + var c = this.get(i++); + if (c < 128) { + s += String.fromCharCode(c); + } + else if ((c > 191) && (c < 224)) { + s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F)); + } + else { + s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F)); + } + } + return s; + }; + Stream.prototype.parseStringBMP = function (start, end) { + var str = ""; + var hi; + var lo; + for (var i = start; i < end;) { + hi = this.get(i++); + lo = this.get(i++); + str += String.fromCharCode((hi << 8) | lo); + } + return str; + }; + Stream.prototype.parseTime = function (start, end, shortYear) { + var s = this.parseStringISO(start, end); + var m = (shortYear ? reTimeS : reTimeL).exec(s); + if (!m) { + return "Unrecognized time: " + s; + } + if (shortYear) { + // to avoid querying the timer, use the fixed range [1970, 2069] + // it will conform with ITU X.400 [-10, +40] sliding window until 2030 + m[1] = +m[1]; + m[1] += (+m[1] < 70) ? 2000 : 1900; + } + s = m[1] + "-" + m[2] + "-" + m[3] + " " + m[4]; + if (m[5]) { + s += ":" + m[5]; + if (m[6]) { + s += ":" + m[6]; + if (m[7]) { + s += "." + m[7]; + } + } + } + if (m[8]) { + s += " UTC"; + if (m[8] != "Z") { + s += m[8]; + if (m[9]) { + s += ":" + m[9]; + } + } + } + return s; + }; + Stream.prototype.parseInteger = function (start, end) { + var v = this.get(start); + var neg = (v > 127); + var pad = neg ? 255 : 0; + var len; + var s = ""; + // skip unuseful bits (not allowed in DER) + while (v == pad && ++start < end) { + v = this.get(start); + } + len = end - start; + if (len === 0) { + return neg ? -1 : 0; + } + // show bit length of huge integers + if (len > 4) { + s = v; + len <<= 3; + while (((+s ^ pad) & 0x80) == 0) { + s = +s << 1; + --len; + } + s = "(" + len + " bit)\n"; + } + // decode the integer + if (neg) { + v = v - 256; + } + var n = new Int10(v); + for (var i = start + 1; i < end; ++i) { + n.mulAdd(256, this.get(i)); + } + return s + n.toString(); + }; + Stream.prototype.parseBitString = function (start, end, maxLength) { + var unusedBit = this.get(start); + var lenBit = ((end - start - 1) << 3) - unusedBit; + var intro = "(" + lenBit + " bit)\n"; + var s = ""; + for (var i = start + 1; i < end; ++i) { + var b = this.get(i); + var skip = (i == end - 1) ? unusedBit : 0; + for (var j = 7; j >= skip; --j) { + s += (b >> j) & 1 ? "1" : "0"; + } + if (s.length > maxLength) { + return intro + stringCut(s, maxLength); + } + } + return intro + s; + }; + Stream.prototype.parseOctetString = function (start, end, maxLength) { + if (this.isASCII(start, end)) { + return stringCut(this.parseStringISO(start, end), maxLength); + } + var len = end - start; + var s = "(" + len + " byte)\n"; + maxLength /= 2; // we work in bytes + if (len > maxLength) { + end = start + maxLength; + } + for (var i = start; i < end; ++i) { + s += this.hexByte(this.get(i)); + } + if (len > maxLength) { + s += ellipsis; + } + return s; + }; + Stream.prototype.parseOID = function (start, end, maxLength) { + var s = ""; + var n = new Int10(); + var bits = 0; + for (var i = start; i < end; ++i) { + var v = this.get(i); + n.mulAdd(128, v & 0x7F); + bits += 7; + if (!(v & 0x80)) { // finished + if (s === "") { + n = n.simplify(); + if (n instanceof Int10) { + n.sub(80); + s = "2." + n.toString(); + } + else { + var m = n < 80 ? n < 40 ? 0 : 1 : 2; + s = m + "." + (n - m * 40); + } + } + else { + s += "." + n.toString(); + } + if (s.length > maxLength) { + return stringCut(s, maxLength); + } + n = new Int10(); + bits = 0; + } + } + if (bits > 0) { + s += ".incomplete"; + } + return s; + }; + return Stream; +}()); +export { Stream }; +var ASN1 = /** @class */ (function () { + function ASN1(stream, header, length, tag, sub) { + if (!(tag instanceof ASN1Tag)) { + throw new Error("Invalid tag value."); + } + this.stream = stream; + this.header = header; + this.length = length; + this.tag = tag; + this.sub = sub; + } + ASN1.prototype.typeName = function () { + switch (this.tag.tagClass) { + case 0: // universal + switch (this.tag.tagNumber) { + case 0x00: + return "EOC"; + case 0x01: + return "BOOLEAN"; + case 0x02: + return "INTEGER"; + case 0x03: + return "BIT_STRING"; + case 0x04: + return "OCTET_STRING"; + case 0x05: + return "NULL"; + case 0x06: + return "OBJECT_IDENTIFIER"; + case 0x07: + return "ObjectDescriptor"; + case 0x08: + return "EXTERNAL"; + case 0x09: + return "REAL"; + case 0x0A: + return "ENUMERATED"; + case 0x0B: + return "EMBEDDED_PDV"; + case 0x0C: + return "UTF8String"; + case 0x10: + return "SEQUENCE"; + case 0x11: + return "SET"; + case 0x12: + return "NumericString"; + case 0x13: + return "PrintableString"; // ASCII subset + case 0x14: + return "TeletexString"; // aka T61String + case 0x15: + return "VideotexString"; + case 0x16: + return "IA5String"; // ASCII + case 0x17: + return "UTCTime"; + case 0x18: + return "GeneralizedTime"; + case 0x19: + return "GraphicString"; + case 0x1A: + return "VisibleString"; // ASCII subset + case 0x1B: + return "GeneralString"; + case 0x1C: + return "UniversalString"; + case 0x1E: + return "BMPString"; + } + return "Universal_" + this.tag.tagNumber.toString(); + case 1: + return "Application_" + this.tag.tagNumber.toString(); + case 2: + return "[" + this.tag.tagNumber.toString() + "]"; // Context + case 3: + return "Private_" + this.tag.tagNumber.toString(); + } + }; + ASN1.prototype.content = function (maxLength) { + if (this.tag === undefined) { + return null; + } + if (maxLength === undefined) { + maxLength = Infinity; + } + var content = this.posContent(); + var len = Math.abs(this.length); + if (!this.tag.isUniversal()) { + if (this.sub !== null) { + return "(" + this.sub.length + " elem)"; + } + return this.stream.parseOctetString(content, content + len, maxLength); + } + switch (this.tag.tagNumber) { + case 0x01: // BOOLEAN + return (this.stream.get(content) === 0) ? "false" : "true"; + case 0x02: // INTEGER + return this.stream.parseInteger(content, content + len); + case 0x03: // BIT_STRING + return this.sub ? "(" + this.sub.length + " elem)" : + this.stream.parseBitString(content, content + len, maxLength); + case 0x04: // OCTET_STRING + return this.sub ? "(" + this.sub.length + " elem)" : + this.stream.parseOctetString(content, content + len, maxLength); + // case 0x05: // NULL + case 0x06: // OBJECT_IDENTIFIER + return this.stream.parseOID(content, content + len, maxLength); + // case 0x07: // ObjectDescriptor + // case 0x08: // EXTERNAL + // case 0x09: // REAL + // case 0x0A: // ENUMERATED + // case 0x0B: // EMBEDDED_PDV + case 0x10: // SEQUENCE + case 0x11: // SET + if (this.sub !== null) { + return "(" + this.sub.length + " elem)"; + } + else { + return "(no elem)"; + } + case 0x0C: // UTF8String + return stringCut(this.stream.parseStringUTF(content, content + len), maxLength); + case 0x12: // NumericString + case 0x13: // PrintableString + case 0x14: // TeletexString + case 0x15: // VideotexString + case 0x16: // IA5String + // case 0x19: // GraphicString + case 0x1A: // VisibleString + // case 0x1B: // GeneralString + // case 0x1C: // UniversalString + return stringCut(this.stream.parseStringISO(content, content + len), maxLength); + case 0x1E: // BMPString + return stringCut(this.stream.parseStringBMP(content, content + len), maxLength); + case 0x17: // UTCTime + case 0x18: // GeneralizedTime + return this.stream.parseTime(content, content + len, (this.tag.tagNumber == 0x17)); + } + return null; + }; + ASN1.prototype.toString = function () { + return this.typeName() + "@" + this.stream.pos + "[header:" + this.header + ",length:" + this.length + ",sub:" + ((this.sub === null) ? "null" : this.sub.length) + "]"; + }; + ASN1.prototype.toPrettyString = function (indent) { + if (indent === undefined) { + indent = ""; + } + var s = indent + this.typeName() + " @" + this.stream.pos; + if (this.length >= 0) { + s += "+"; + } + s += this.length; + if (this.tag.tagConstructed) { + s += " (constructed)"; + } + else if ((this.tag.isUniversal() && ((this.tag.tagNumber == 0x03) || (this.tag.tagNumber == 0x04))) && (this.sub !== null)) { + s += " (encapsulates)"; + } + s += "\n"; + if (this.sub !== null) { + indent += " "; + for (var i = 0, max = this.sub.length; i < max; ++i) { + s += this.sub[i].toPrettyString(indent); + } + } + return s; + }; + ASN1.prototype.posStart = function () { + return this.stream.pos; + }; + ASN1.prototype.posContent = function () { + return this.stream.pos + this.header; + }; + ASN1.prototype.posEnd = function () { + return this.stream.pos + this.header + Math.abs(this.length); + }; + ASN1.prototype.toHexString = function () { + return this.stream.hexDump(this.posStart(), this.posEnd(), true); + }; + ASN1.decodeLength = function (stream) { + var buf = stream.get(); + var len = buf & 0x7F; + if (len == buf) { + return len; + } + // no reason to use Int10, as it would be a huge buffer anyways + if (len > 6) { + throw new Error("Length over 48 bits not supported at position " + (stream.pos - 1)); + } + if (len === 0) { + return null; + } // undefined + buf = 0; + for (var i = 0; i < len; ++i) { + buf = (buf * 256) + stream.get(); + } + return buf; + }; + /** + * Retrieve the hexadecimal value (as a string) of the current ASN.1 element + * @returns {string} + * @public + */ + ASN1.prototype.getHexStringValue = function () { + var hexString = this.toHexString(); + var offset = this.header * 2; + var length = this.length * 2; + return hexString.substr(offset, length); + }; + ASN1.decode = function (str) { + var stream; + if (!(str instanceof Stream)) { + stream = new Stream(str, 0); + } + else { + stream = str; + } + var streamStart = new Stream(stream); + var tag = new ASN1Tag(stream); + var len = ASN1.decodeLength(stream); + var start = stream.pos; + var header = start - streamStart.pos; + var sub = null; + var getSub = function () { + var ret = []; + if (len !== null) { + // definite length + var end = start + len; + while (stream.pos < end) { + ret[ret.length] = ASN1.decode(stream); + } + if (stream.pos != end) { + throw new Error("Content size is not correct for container starting at offset " + start); + } + } + else { + // undefined length + try { + for (;;) { + var s = ASN1.decode(stream); + if (s.tag.isEOC()) { + break; + } + ret[ret.length] = s; + } + len = start - stream.pos; // undefined lengths are represented as negative values + } + catch (e) { + throw new Error("Exception while decoding undefined length content: " + e); + } + } + return ret; + }; + if (tag.tagConstructed) { + // must have valid content + sub = getSub(); + } + else if (tag.isUniversal() && ((tag.tagNumber == 0x03) || (tag.tagNumber == 0x04))) { + // sometimes BitString and OctetString are used to encapsulate ASN.1 + try { + if (tag.tagNumber == 0x03) { + if (stream.get() != 0) { + throw new Error("BIT STRINGs with unused bits cannot encapsulate."); + } + } + sub = getSub(); + for (var i = 0; i < sub.length; ++i) { + if (sub[i].tag.isEOC()) { + throw new Error("EOC is not supposed to be actual content."); + } + } + } + catch (e) { + // but silently ignore when they don't + sub = null; + } + } + if (sub === null) { + if (len === null) { + throw new Error("We can't skip over an invalid tag with undefined length at offset " + start); + } + stream.pos = start + Math.abs(len); + } + return new ASN1(streamStart, header, len, tag, sub); + }; + return ASN1; +}()); +export { ASN1 }; +var ASN1Tag = /** @class */ (function () { + function ASN1Tag(stream) { + var buf = stream.get(); + this.tagClass = buf >> 6; + this.tagConstructed = ((buf & 0x20) !== 0); + this.tagNumber = buf & 0x1F; + if (this.tagNumber == 0x1F) { // long tag + var n = new Int10(); + do { + buf = stream.get(); + n.mulAdd(128, buf & 0x7F); + } while (buf & 0x80); + this.tagNumber = n.simplify(); + } + } + ASN1Tag.prototype.isUniversal = function () { + return this.tagClass === 0x00; + }; + ASN1Tag.prototype.isEOC = function () { + return this.tagClass === 0x00 && this.tagNumber === 0x00; + }; + return ASN1Tag; +}()); +export { ASN1Tag }; diff --git a/node_modules/jsencrypt/lib/lib/asn1js/base64.d.ts b/node_modules/jsencrypt/lib/lib/asn1js/base64.d.ts new file mode 100644 index 0000000..583d962 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/base64.d.ts @@ -0,0 +1,5 @@ +export declare const Base64: { + decode(a: string): number[]; + re: RegExp; + unarmor(a: string): number[]; +}; diff --git a/node_modules/jsencrypt/lib/lib/asn1js/base64.js b/node_modules/jsencrypt/lib/lib/asn1js/base64.js new file mode 100644 index 0000000..13cd7ce --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/base64.js @@ -0,0 +1,88 @@ +// Base64 JavaScript decoder +// Copyright (c) 2008-2013 Lapo Luchini +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */ +var decoder; +export var Base64 = { + decode: function (a) { + var i; + if (decoder === undefined) { + var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var ignore = "= \f\n\r\t\u00A0\u2028\u2029"; + decoder = Object.create(null); + for (i = 0; i < 64; ++i) { + decoder[b64.charAt(i)] = i; + } + decoder['-'] = 62; //+ + decoder['_'] = 63; //- + for (i = 0; i < ignore.length; ++i) { + decoder[ignore.charAt(i)] = -1; + } + } + var out = []; + var bits = 0; + var char_count = 0; + for (i = 0; i < a.length; ++i) { + var c = a.charAt(i); + if (c == "=") { + break; + } + c = decoder[c]; + if (c == -1) { + continue; + } + if (c === undefined) { + throw new Error("Illegal character at offset " + i); + } + bits |= c; + if (++char_count >= 4) { + out[out.length] = (bits >> 16); + out[out.length] = (bits >> 8) & 0xFF; + out[out.length] = bits & 0xFF; + bits = 0; + char_count = 0; + } + else { + bits <<= 6; + } + } + switch (char_count) { + case 1: + throw new Error("Base64 encoding incomplete: at least 2 bits missing"); + case 2: + out[out.length] = (bits >> 10); + break; + case 3: + out[out.length] = (bits >> 16); + out[out.length] = (bits >> 8) & 0xFF; + break; + } + return out; + }, + re: /-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/, + unarmor: function (a) { + var m = Base64.re.exec(a); + if (m) { + if (m[1]) { + a = m[1]; + } + else if (m[2]) { + a = m[2]; + } + else { + throw new Error("RegExp out of sync"); + } + } + return Base64.decode(a); + } +}; diff --git a/node_modules/jsencrypt/lib/lib/asn1js/hex.d.ts b/node_modules/jsencrypt/lib/lib/asn1js/hex.d.ts new file mode 100644 index 0000000..c6d2d7b --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/hex.d.ts @@ -0,0 +1,3 @@ +export declare const Hex: { + decode(a: string): number[]; +}; diff --git a/node_modules/jsencrypt/lib/lib/asn1js/hex.js b/node_modules/jsencrypt/lib/lib/asn1js/hex.js new file mode 100644 index 0000000..a815651 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/hex.js @@ -0,0 +1,64 @@ +// Hex JavaScript decoder +// Copyright (c) 2008-2013 Lapo Luchini +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */ +var decoder; +export var Hex = { + decode: function (a) { + var i; + if (decoder === undefined) { + var hex = "0123456789ABCDEF"; + var ignore = " \f\n\r\t\u00A0\u2028\u2029"; + decoder = {}; + for (i = 0; i < 16; ++i) { + decoder[hex.charAt(i)] = i; + } + hex = hex.toLowerCase(); + for (i = 10; i < 16; ++i) { + decoder[hex.charAt(i)] = i; + } + for (i = 0; i < ignore.length; ++i) { + decoder[ignore.charAt(i)] = -1; + } + } + var out = []; + var bits = 0; + var char_count = 0; + for (i = 0; i < a.length; ++i) { + var c = a.charAt(i); + if (c == "=") { + break; + } + c = decoder[c]; + if (c == -1) { + continue; + } + if (c === undefined) { + throw new Error("Illegal character at offset " + i); + } + bits |= c; + if (++char_count >= 2) { + out[out.length] = bits; + bits = 0; + char_count = 0; + } + else { + bits <<= 4; + } + } + if (char_count) { + throw new Error("Hex encoding incomplete: 4 bits missing"); + } + return out; + } +}; diff --git a/node_modules/jsencrypt/lib/lib/asn1js/int10.d.ts b/node_modules/jsencrypt/lib/lib/asn1js/int10.d.ts new file mode 100644 index 0000000..cf66b88 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/int10.d.ts @@ -0,0 +1,9 @@ +export declare class Int10 { + constructor(value?: string | number); + mulAdd(m: number, c: number): void; + sub(c: number): void; + toString(base?: number): string; + valueOf(): number; + simplify(): number | this; + private buf; +} diff --git a/node_modules/jsencrypt/lib/lib/asn1js/int10.js b/node_modules/jsencrypt/lib/lib/asn1js/int10.js new file mode 100644 index 0000000..620b1fe --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/int10.js @@ -0,0 +1,87 @@ +// Big integer base-10 printing library +// Copyright (c) 2014 Lapo Luchini +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */ +var max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256 +var Int10 = /** @class */ (function () { + function Int10(value) { + this.buf = [+value || 0]; + } + Int10.prototype.mulAdd = function (m, c) { + // assert(m <= 256) + var b = this.buf; + var l = b.length; + var i; + var t; + for (i = 0; i < l; ++i) { + t = b[i] * m + c; + if (t < max) { + c = 0; + } + else { + c = 0 | (t / max); + t -= c * max; + } + b[i] = t; + } + if (c > 0) { + b[i] = c; + } + }; + Int10.prototype.sub = function (c) { + // assert(m <= 256) + var b = this.buf; + var l = b.length; + var i; + var t; + for (i = 0; i < l; ++i) { + t = b[i] - c; + if (t < 0) { + t += max; + c = 1; + } + else { + c = 0; + } + b[i] = t; + } + while (b[b.length - 1] === 0) { + b.pop(); + } + }; + Int10.prototype.toString = function (base) { + if ((base || 10) != 10) { + throw new Error("only base 10 is supported"); + } + var b = this.buf; + var s = b[b.length - 1].toString(); + for (var i = b.length - 2; i >= 0; --i) { + s += (max + b[i]).toString().substring(1); + } + return s; + }; + Int10.prototype.valueOf = function () { + var b = this.buf; + var v = 0; + for (var i = b.length - 1; i >= 0; --i) { + v = v * max + b[i]; + } + return v; + }; + Int10.prototype.simplify = function () { + var b = this.buf; + return (b.length == 1) ? b[0] : this; + }; + return Int10; +}()); +export { Int10 }; diff --git a/node_modules/jsencrypt/lib/lib/asn1js/oids.d.ts b/node_modules/jsencrypt/lib/lib/asn1js/oids.d.ts new file mode 100644 index 0000000..a537821 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/oids.d.ts @@ -0,0 +1,9778 @@ +export declare const oids: { + "0.2.262.1.10": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.0": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.0": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.0.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.0.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.0.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.0.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.0.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.0.6": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.0.7": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.0.8": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.1.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.1.9": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.0": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.2.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.2.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.2.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.2.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.2.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.3.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.3.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.3.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.3.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.3.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.5.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.5.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.5.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.5.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.2.5.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.3.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.3.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.3.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.3.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.3.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.3.6": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.3.7": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.3.8": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.1.4.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.0": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.6": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.7": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.8": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.9": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.10": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.11": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.12": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.13": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.2.14": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.3.0": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.3.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.3.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.3.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.3.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.3.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.6": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.0": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.6": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.7": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.8": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.9": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.10": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.11": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.12": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.13": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.14": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.15": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.16": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.17": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.18": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.19": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.20": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.21": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.22": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.23": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.24": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.25": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.26": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.27": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.28": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.29": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.30": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.31": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.32": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.33": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.34": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.35": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.36": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.37": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.38": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.39": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.40": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.41": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.51": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.7.52": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.8": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.9": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.10": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.11": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.11.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.12": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.12.0": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.12.1": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.12.2": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.12.3": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.12.4": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.12.5": { + d: string; + c: string; + w: boolean; + }; + "0.2.262.1.10.12.6": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.2.3": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.2.3.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.2.3.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.2.3.3": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.4.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.4.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.4.1.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.4.1.3": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.4.1.4": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.4.1.5": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.1.4.1.6": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.5.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.5.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.1.5.1.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.1.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2.1.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2.1.3": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2.1.4": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2.2.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2.2.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.2.2.3": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.3": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.3.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.2.2.3.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.127.0.7.3.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.1862": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.1862.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.1862.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.1862.1.2": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.1862.1.3": { + d: string; + c: string; + w: boolean; + }; + "0.4.0.1862.1.4": { + d: string; + c: string; + w: boolean; + }; + "0.9.2342.19200300.100.1.1": { + d: string; + c: string; + w: boolean; + }; + "0.9.2342.19200300.100.1.3": { + d: string; + c: string; + w: boolean; + }; + "0.9.2342.19200300.100.1.25": { + d: string; + c: string; + w: boolean; + }; + "1.0.10118.3.0.49": { + d: string; + c: string; + w: boolean; + }; + "1.0.10118.3.0.50": { + d: string; + c: string; + w: boolean; + }; + "1.0.10118.3.0.55": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.2.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.2.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.2.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.2.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.4.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.1.4.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.1.1.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.2.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.2.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.2.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.2.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.3.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.4.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.4.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.4.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.3.1.3.2.4.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.1.333.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.68980861.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.68980861.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.68980861.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.68980861.1.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.68980861.1.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.68980861.1.1.20": { + d: string; + c: string; + w: boolean; + }; + "1.2.36.75878867.1.100.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.392.200011.61.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.392.200011.61.1.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.15": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.16": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.17": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.20": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.1.21": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.5.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.7.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.7.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.7.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.10.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.10.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.10.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.10.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.10.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200004.10.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.21": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.22": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.23": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.31": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.32": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.33": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.34": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.35": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.36": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.37": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.38": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.39": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.40": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.41": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.42": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.43": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.44": { + d: string; + c: string; + w: boolean; + }; + "1.2.410.200046.1.1.45": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.19": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.20": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.21": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.31.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.31.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.31.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.31.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.31.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.31.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.31.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.31.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.30.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.30.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.35.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.35.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.35.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.35.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.36.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.36.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.14.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.14.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.13.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.13.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.643.2.2.96": { + d: string; + c: string; + w: boolean; + }; + "1.2.752.34.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.752.34.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.752.34.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.752.34.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.752.34.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.752.34.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.4.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10040.4.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.1.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.1.2.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.1.2.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.1.2.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.16": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.18": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.19": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.0.20": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.3.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.4.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.4.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.4.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.4.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.4.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10045.4.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.3.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10046.3.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10065.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10065.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.10065.2.3.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.65": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.65.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.66": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.66.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.66.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.66.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.66.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.66.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.67": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.67.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.68": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.68.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113533.7.68.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.5.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.7.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.7.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.7.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.7.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.7.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.7.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.7.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.7.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.15": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.15.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.15.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.15.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.15.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.15.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.15.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.0.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.0.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.0.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.0.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.0.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.0.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.0.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.0.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.15": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.16": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.17": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.18": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.19": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.20": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.21": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.22": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.23": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.24": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.25": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.26": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.27": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.28": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.29": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.30": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.31": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.32": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.33": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.1.34": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.15": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.16": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.17": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.18": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.19": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.20": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.21": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.22": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.23": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.24": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.25": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.26": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.27": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.28": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.29": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.30": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.31": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.32": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.33": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.34": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.35": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.36": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.37": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.38": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.39": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.40": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.41": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.42": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.43": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.44": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.45": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.46": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.47": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.48": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.49": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.50": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.2.51": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.15": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.3.16": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.6.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.6.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.6.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.6.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.6.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.6.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.8.15": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.9.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.9.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.9.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.9.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.16.11.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.20": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.21": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.22": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.22.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.22.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.23": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.23.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.24": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.25": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.25.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.25.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.25.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.25.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.25.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.26": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.9.27": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.3.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.4.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.5.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.10.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.10.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.10.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.10.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.10.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.10.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.12.10.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.15.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.15.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.15.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.1.15.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.2.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.2.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.2.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.2.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.2.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.2.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113549.3.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.114021.1.6.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.114021.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.2.241": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.3.0": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.3.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.3.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.3.17": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.3.22": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.3.23": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.3.46": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.2.281": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.145": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1327": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1328": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1329": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1330": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1331": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1332": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1333": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1334": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1335": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1429": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1430": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1431": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1432": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1433": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1434": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1435": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1436": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1437": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1438": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1439": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1674": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.1.4.1675": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.4.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.4.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113556.4.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113628.114.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.13": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.14": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.15": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.16": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.1.17": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.2.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.2.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.2.7": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.5.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.5.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.6.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.6.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.6.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.4.6.4": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.5": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.5.3": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.6": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.6.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.6.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.6.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.840.113635.100.6.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.18": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.19": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.20": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.21": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.22": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.25": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.26": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.27": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.2.1.28": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.3.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.16": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.3.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.6.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.6.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.7.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.8.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.9.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.10.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.11.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.11.20": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.11.28": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.11.29": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.10.12.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.13.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.13.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.13.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.13.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.16.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.17.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.17.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.17.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.20.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.20.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.20.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.20.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.20.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.20.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.16": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.17": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.19": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.20": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.21": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.21.22": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.25.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.31.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.47.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.47.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.60.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.61.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.60.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.60.2.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.60.2.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.311.88.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.188.7.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.188.7.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.188.7.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.188.7.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.188.7.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.2428.10.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.2712.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.2786.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.1.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.1.2.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.3.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.3.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.3.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.3.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.4.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.4.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.4.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.4.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.4.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.4.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.42.11172.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.54.11940.54": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3029.88.89.90.90.89": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3401.8.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3576.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3576.7.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3576.7.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3576.7.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3576.7.65": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3576.7.97": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3576.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.3576.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.20": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.30": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.40": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.50": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.60": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.70": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.80": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.81": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.90": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.95": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5309.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5309.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5309.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5309.1.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5309.1.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5472": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5472.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5472.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5472.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5472.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5770.0.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.5770.0.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.6449.1.2.1.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.6449.1.2.2.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.6449.1.3.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.6449.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.8301.3.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.8301.3.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.8231.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.12.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.21": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.22": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.23": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.24": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.41": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.42": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.43": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.11591.13.2.44": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.16334.509.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.16334.509.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.16334.509.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.16334.509.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.0.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.1.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.3.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.4.16": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.5.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.6.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.6.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.6.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.6.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.8.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.8.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.8.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.9.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.9.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.9.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.9.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.9.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.10.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.10.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.10.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.10.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.10.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.10.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.11.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.14.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.20": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.20.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.20.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.7.48.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.8.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.8.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.8.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.5.5.8.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.12.2.1011.7.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.12.2.1011.7.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.12.2.1011.7.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.12.2.1011.7.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.12.2.1011.7.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.12.2.1011.7.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.12.2.1011.7.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.12.2.1011.7.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.12.2.1011.7.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.2.26.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.16": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.17": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.18": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.19": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.20": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.21": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.22": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.23": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.24": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.25": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.26": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.27": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.28": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.2.29": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.3.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.7.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.7.2.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.14.7.2.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.1.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.3.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.3.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.3.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.3.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.2.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.2.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.2.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.4.512.17": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.5.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.1.5.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.2.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.1.1.1024.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.1.2.1024.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.3.2.8.1.1.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.4.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.4.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.4.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.3.4.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.6.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.6.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.6.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.7.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.7.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.7.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.7.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.16": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.17": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.18": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.11.1.19": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.3.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.4.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.5.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.5.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.5.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.5.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.5.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.5.1.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.6.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.11": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.12": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.13": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.14": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.16": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.17": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.18": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.19": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.20": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.21": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.22": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.23": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.24": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.25": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.26": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.27": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.28": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.29": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.30": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.31": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.32": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.33": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.34": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.35": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.36": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.37": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.38": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.39": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.40": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.41": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.42": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.43": { + d: string; + c: string; + w: boolean; + }; + "1.3.36.8.7.1.45": { + d: string; + c: string; + w: boolean; + }; + "1.3.101.1.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.101.1.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.4": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.5": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.7": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.8": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.9": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.10": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.15": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.16": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.17": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.22": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.23": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.24": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.25": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.26": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.27": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.28": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.29": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.30": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.31": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.32": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.33": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.34": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.35": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.36": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.37": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.38": { + d: string; + c: string; + w: boolean; + }; + "1.3.132.0.39": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.0": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.2": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.3": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.4": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.5": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.6": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.7": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.7.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.8": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.8.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.9": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.9.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.10": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.10.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.11": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.11.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.12": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.13": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.14": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.15": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.16": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.16.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.17": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.17.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.18": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.18.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.19": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.19.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.20": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.20.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.21": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.21.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.22": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.22.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.23": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.23.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.24": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.25": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.25.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.26": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.27": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.28": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.29": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.30": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.31": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.32": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.33": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.34": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.35": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.36": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.37": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.38": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.39": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.40": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.41": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.42": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.43": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.44": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.45": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.46": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.47": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.48": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.49": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.50": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.51": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.52": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.53": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.54": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.55": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.56": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.57": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.58": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.59": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.60": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.61": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.62": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.63": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.64": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.65": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.66": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.67": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.68": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.69": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.70": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.71": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.72": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.73": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.74": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.75": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.76": { + d: string; + c: string; + w: boolean; + }; + "2.5.4.82": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.0": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.2": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.3": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.4": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.5": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.6": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.7": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.8": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.9": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.10": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.11": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.12": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.13": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.14": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.15": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.16": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.17": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.21": { + d: string; + c: string; + w: boolean; + }; + "2.5.6.22": { + d: string; + c: string; + w: boolean; + }; + "2.5.8.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.1": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.2": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.3": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.4": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.5": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.6": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.7": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.8": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.9": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.10": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.11": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.12": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.13": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.14": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.15": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.16": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.17": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.18": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.19": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.20": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.21": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.22": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.23": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.24": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.25": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.26": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.27": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.28": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.29": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.30": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.31": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.32": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.32.0": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.33": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.34": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.35": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.36": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.37": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.37.0": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.38": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.39": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.40": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.41": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.42": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.43": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.44": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.45": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.46": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.47": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.48": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.49": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.50": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.51": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.52": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.53": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.54": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.55": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.56": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.57": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.58": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.59": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.60": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.61": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.62": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.63": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.64": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.65": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.66": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.67": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.68": { + d: string; + c: string; + w: boolean; + }; + "2.5.29.69": { + d: string; + c: string; + w: boolean; + }; + "2.16.724.1.2.2.4.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.5": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.7": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.8": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.9": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.10": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.11": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.12": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.13": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.14": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.15": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.16": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.17": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.18": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.19": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.20": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.21": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.22": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.23": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.1.24": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.42": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.48": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.49": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.50": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.66": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.72": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.73": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.74": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.75": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.2.76": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.5": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.7": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.8": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.9": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.10": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.11": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.10.12": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.11": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.11.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.11.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.11.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.11.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.11.3.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.12": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.13": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.13.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.13.0.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.13.0.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.13.0.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.3.13.0.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.5": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.7": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.8": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.10": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.11": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.12": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.13": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.14": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.20": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.21": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.22": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.23": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.24": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.25": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.26": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.27": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.28": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.29": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.30": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.31": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.40": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.41": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.42": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.43": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.44": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.45": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.46": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.47": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.48": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.49": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.50": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.51": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.52": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.53": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.54": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.55": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.56": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.57": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.58": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.59": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.5.60": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.7.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.7.1.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.8.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.8.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.10.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.10.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.10.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.11.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.11.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.11.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.11.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.11.5": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.11.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.1.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.1.0.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.1.0.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.1.0.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.2.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.2.0.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.2.0.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.2.0.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.3.0": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.3.0.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.3.0.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.0.3.0.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.2.1.12.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.3.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.3.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.3.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.3.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.48.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.48.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.48.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.48.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.48.5": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.1.48.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.2.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.3.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.3.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.3.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.2.5": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.5": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.7": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.8": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.21": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.22": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.23": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.24": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.25": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.26": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.27": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.28": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.41": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.42": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.43": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.44": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.45": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.46": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.47": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.1.48": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.2.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.2.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.2.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.2.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.3.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.101.3.4.3.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.22": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.23": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.24": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.25": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.26": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.27": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.28": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.29": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.30": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.31": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.32": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.40": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.50": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.51": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.52": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.69": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.82": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.92": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.95": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.130": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.131": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.132": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.2.8.133": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.9": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.9.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.9.4.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113719.1.9.4.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.7": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.8": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.9": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.10": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.11": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.12": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.1.13": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.2.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.2.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.2.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.2.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.2.5": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.2.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.3.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.3.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.3.1.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.3.1.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.3.1.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.3.2.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113730.4.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.6.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.6.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.6.11": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.6.13": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.6.15": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.7.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.7.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.7.1.1.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.7.23.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.8.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.9": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.9.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.9.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.9.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.9.5": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.9.6": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.9.7": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.9.8": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114412.1.3.0.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114412.1.3.0.2": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114412.1.3.0.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114412.1.3.0.4": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.0": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.0.0": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.0.1": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.0.2": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.1": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.0": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.1": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.2": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.3": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.4": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.5": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.6": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.7": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.8": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.9": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.10": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.11": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.2.12": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.3": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.3.0": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.3.0.0": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.3.0.1": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.4": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.5": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.5.0": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.6": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.7": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.7.0": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.7.1": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.7.2": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.7.3": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.7.4": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.7.5": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.7.6": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.8": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.8.1": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.8.4": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.8.5": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.8.30": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.8.34": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.8.6011": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.0": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.1": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.2": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.3": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.4": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.5": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.6": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.7": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.8": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.9": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.10": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.11": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.12": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.13": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.14": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.15": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.16": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.17": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.18": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.19": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.20": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.21": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.22": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.23": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.24": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.25": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.26": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.27": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.28": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.29": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.30": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.31": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.32": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.33": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.34": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.35": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.36": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.37": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.9.38": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.10": { + d: string; + c: string; + w: boolean; + }; + "2.23.42.10.392": { + d: string; + c: string; + w: boolean; + }; + "2.23.136.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.54.1775.2": { + d: string; + c: string; + w: boolean; + }; + "2.54.1775.3": { + d: string; + c: string; + w: boolean; + }; + "2.54.1775.4": { + d: string; + c: string; + w: boolean; + }; + "2.54.1775.5": { + d: string; + c: string; + w: boolean; + }; + "2.54.1775.6": { + d: string; + c: string; + w: boolean; + }; + "2.54.1775.7": { + d: string; + c: string; + w: boolean; + }; + "2.54.1775.99": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.6449.1.2.1.5.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.34697.2.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.34697.2.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.34697.2.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.34697.2.4": { + d: string; + c: string; + w: boolean; + }; + "2.16.578.1.26.1.3.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.22234.2.5.2.3.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.6334.1.100.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114412.2.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.528.1.1001.1.1.1.12.6.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114028.10.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.14370.1.6": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.4146.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114413.1.7.23.3": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.14777.6.1.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.14777.6.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.782.1.2.1.8.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.8024.0.2.100.1.2": { + d: string; + c: string; + w: boolean; + }; + "1.2.392.200091.100.721.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114404.1.1.2.4.1": { + d: string; + c: string; + w: boolean; + }; + "1.3.6.1.4.1.23223.1.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114414.1.7.23.3": { + d: string; + c: string; + w: boolean; + }; + "2.16.756.1.89.1.2.1.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.113733.1.7.48.1": { + d: string; + c: string; + w: boolean; + }; + "2.16.840.1.114171.500.9": { + d: string; + c: string; + w: boolean; + }; + END: string; +}; diff --git a/node_modules/jsencrypt/lib/lib/asn1js/oids.js b/node_modules/jsencrypt/lib/lib/asn1js/oids.js new file mode 100644 index 0000000..0487416 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/asn1js/oids.js @@ -0,0 +1,1962 @@ +// Converted from: http://www.cs.auckland.ac.nz/~pgut001/dumpasn1.cfg +// which is made by Peter Gutmann and whose license states: +// You can use this code in whatever way you want, +// as long as you don't try to claim you wrote it. +export var oids = { + "0.2.262.1.10": { "d": "Telesec", "c": "Deutsche Telekom", "w": false }, + "0.2.262.1.10.0": { "d": "extension", "c": "Telesec", "w": false }, + "0.2.262.1.10.1": { "d": "mechanism", "c": "Telesec", "w": false }, + "0.2.262.1.10.1.0": { "d": "authentication", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.0.1": { "d": "passwordAuthentication", "c": "Telesec authentication", "w": false }, + "0.2.262.1.10.1.0.2": { "d": "protectedPasswordAuthentication", "c": "Telesec authentication", "w": false }, + "0.2.262.1.10.1.0.3": { "d": "oneWayX509Authentication", "c": "Telesec authentication", "w": false }, + "0.2.262.1.10.1.0.4": { "d": "twoWayX509Authentication", "c": "Telesec authentication", "w": false }, + "0.2.262.1.10.1.0.5": { "d": "threeWayX509Authentication", "c": "Telesec authentication", "w": false }, + "0.2.262.1.10.1.0.6": { "d": "oneWayISO9798Authentication", "c": "Telesec authentication", "w": false }, + "0.2.262.1.10.1.0.7": { "d": "twoWayISO9798Authentication", "c": "Telesec authentication", "w": false }, + "0.2.262.1.10.1.0.8": { "d": "telekomAuthentication", "c": "Telesec authentication", "w": false }, + "0.2.262.1.10.1.1": { "d": "signature", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.1.1": { "d": "md4WithRSAAndISO9697", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.1.2": { "d": "md4WithRSAAndTelesecSignatureStandard", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.1.3": { "d": "md5WithRSAAndISO9697", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.1.4": { "d": "md5WithRSAAndTelesecSignatureStandard", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.1.5": { "d": "ripemd160WithRSAAndTelekomSignatureStandard", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.1.9": { "d": "hbciRsaSignature", "c": "Telesec signature", "w": false }, + "0.2.262.1.10.1.2": { "d": "encryption", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.2.0": { "d": "none", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.1": { "d": "rsaTelesec", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.2": { "d": "des", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.2.1": { "d": "desECB", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.2.2": { "d": "desCBC", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.2.3": { "d": "desOFB", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.2.4": { "d": "desCFB8", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.2.5": { "d": "desCFB64", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.3": { "d": "des3", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.3.1": { "d": "des3ECB", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.3.2": { "d": "des3CBC", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.3.3": { "d": "des3OFB", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.3.4": { "d": "des3CFB8", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.3.5": { "d": "des3CFB64", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.4": { "d": "magenta", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.5": { "d": "idea", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.5.1": { "d": "ideaECB", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.5.2": { "d": "ideaCBC", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.5.3": { "d": "ideaOFB", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.5.4": { "d": "ideaCFB8", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.2.5.5": { "d": "ideaCFB64", "c": "Telesec encryption", "w": false }, + "0.2.262.1.10.1.3": { "d": "oneWayFunction", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.3.1": { "d": "md4", "c": "Telesec one-way function", "w": false }, + "0.2.262.1.10.1.3.2": { "d": "md5", "c": "Telesec one-way function", "w": false }, + "0.2.262.1.10.1.3.3": { "d": "sqModNX509", "c": "Telesec one-way function", "w": false }, + "0.2.262.1.10.1.3.4": { "d": "sqModNISO", "c": "Telesec one-way function", "w": false }, + "0.2.262.1.10.1.3.5": { "d": "ripemd128", "c": "Telesec one-way function", "w": false }, + "0.2.262.1.10.1.3.6": { "d": "hashUsingBlockCipher", "c": "Telesec one-way function", "w": false }, + "0.2.262.1.10.1.3.7": { "d": "mac", "c": "Telesec one-way function", "w": false }, + "0.2.262.1.10.1.3.8": { "d": "ripemd160", "c": "Telesec one-way function", "w": false }, + "0.2.262.1.10.1.4": { "d": "fecFunction", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.1.4.1": { "d": "reedSolomon", "c": "Telesec mechanism", "w": false }, + "0.2.262.1.10.2": { "d": "module", "c": "Telesec", "w": false }, + "0.2.262.1.10.2.0": { "d": "algorithms", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.1": { "d": "attributeTypes", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.2": { "d": "certificateTypes", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.3": { "d": "messageTypes", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.4": { "d": "plProtocol", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.5": { "d": "smeAndComponentsOfSme", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.6": { "d": "fec", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.7": { "d": "usefulDefinitions", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.8": { "d": "stefiles", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.9": { "d": "sadmib", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.10": { "d": "electronicOrder", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.11": { "d": "telesecTtpAsymmetricApplication", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.12": { "d": "telesecTtpBasisApplication", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.13": { "d": "telesecTtpMessages", "c": "Telesec module", "w": false }, + "0.2.262.1.10.2.14": { "d": "telesecTtpTimeStampApplication", "c": "Telesec module", "w": false }, + "0.2.262.1.10.3": { "d": "objectClass", "c": "Telesec", "w": false }, + "0.2.262.1.10.3.0": { "d": "telesecOtherName", "c": "Telesec object class", "w": false }, + "0.2.262.1.10.3.1": { "d": "directory", "c": "Telesec object class", "w": false }, + "0.2.262.1.10.3.2": { "d": "directoryType", "c": "Telesec object class", "w": false }, + "0.2.262.1.10.3.3": { "d": "directoryGroup", "c": "Telesec object class", "w": false }, + "0.2.262.1.10.3.4": { "d": "directoryUser", "c": "Telesec object class", "w": false }, + "0.2.262.1.10.3.5": { "d": "symmetricKeyEntry", "c": "Telesec object class", "w": false }, + "0.2.262.1.10.4": { "d": "package", "c": "Telesec", "w": false }, + "0.2.262.1.10.5": { "d": "parameter", "c": "Telesec", "w": false }, + "0.2.262.1.10.6": { "d": "nameBinding", "c": "Telesec", "w": false }, + "0.2.262.1.10.7": { "d": "attribute", "c": "Telesec", "w": false }, + "0.2.262.1.10.7.0": { "d": "applicationGroupIdentifier", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.1": { "d": "certificateType", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.2": { "d": "telesecCertificate", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.3": { "d": "certificateNumber", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.4": { "d": "certificateRevocationList", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.5": { "d": "creationDate", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.6": { "d": "issuer", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.7": { "d": "namingAuthority", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.8": { "d": "publicKeyDirectory", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.9": { "d": "securityDomain", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.10": { "d": "subject", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.11": { "d": "timeOfRevocation", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.12": { "d": "userGroupReference", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.13": { "d": "validity", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.14": { "d": "zert93", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.15": { "d": "securityMessEnv", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.16": { "d": "anonymizedPublicKeyDirectory", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.17": { "d": "telesecGivenName", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.18": { "d": "nameAdditions", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.19": { "d": "telesecPostalCode", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.20": { "d": "nameDistinguisher", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.21": { "d": "telesecCertificateList", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.22": { "d": "teletrustCertificateList", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.23": { "d": "x509CertificateList", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.24": { "d": "timeOfIssue", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.25": { "d": "physicalCardNumber", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.26": { "d": "fileType", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.27": { "d": "ctlFileIsArchive", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.28": { "d": "emailAddress", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.29": { "d": "certificateTemplateList", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.30": { "d": "directoryName", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.31": { "d": "directoryTypeName", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.32": { "d": "directoryGroupName", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.33": { "d": "directoryUserName", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.34": { "d": "revocationFlag", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.35": { "d": "symmetricKeyEntryName", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.36": { "d": "glNumber", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.37": { "d": "goNumber", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.38": { "d": "gKeyData", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.39": { "d": "zKeyData", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.40": { "d": "ktKeyData", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.41": { "d": "ktKeyNumber", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.51": { "d": "timeOfRevocationGen", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.7.52": { "d": "liabilityText", "c": "Telesec attribute", "w": false }, + "0.2.262.1.10.8": { "d": "attributeGroup", "c": "Telesec", "w": false }, + "0.2.262.1.10.9": { "d": "action", "c": "Telesec", "w": false }, + "0.2.262.1.10.10": { "d": "notification", "c": "Telesec", "w": false }, + "0.2.262.1.10.11": { "d": "snmp-mibs", "c": "Telesec", "w": false }, + "0.2.262.1.10.11.1": { "d": "securityApplication", "c": "Telesec SNMP MIBs", "w": false }, + "0.2.262.1.10.12": { "d": "certAndCrlExtensionDefinitions", "c": "Telesec", "w": false }, + "0.2.262.1.10.12.0": { "d": "liabilityLimitationFlag", "c": "Telesec cert/CRL extension", "w": false }, + "0.2.262.1.10.12.1": { "d": "telesecCertIdExt", "c": "Telesec cert/CRL extension", "w": false }, + "0.2.262.1.10.12.2": { "d": "Telesec policyIdentifier", "c": "Telesec cert/CRL extension", "w": false }, + "0.2.262.1.10.12.3": { "d": "telesecPolicyQualifierID", "c": "Telesec cert/CRL extension", "w": false }, + "0.2.262.1.10.12.4": { "d": "telesecCRLFilteredExt", "c": "Telesec cert/CRL extension", "w": false }, + "0.2.262.1.10.12.5": { "d": "telesecCRLFilterExt", "c": "Telesec cert/CRL extension", "w": false }, + "0.2.262.1.10.12.6": { "d": "telesecNamingAuthorityExt", "c": "Telesec cert/CRL extension", "w": false }, + "0.4.0.127.0.7": { "d": "bsi", "c": "BSI TR-03110/TR-03111", "w": false }, + "0.4.0.127.0.7.1": { "d": "bsiEcc", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1": { "d": "bsifieldType", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.1": { "d": "bsiPrimeField", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.2": { "d": "bsiCharacteristicTwoField", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.2.3": { "d": "bsiCharacteristicTwoBasis", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.2.3.1": { "d": "bsiGnBasis", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.2.3.2": { "d": "bsiTpBasis", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.2.3.3": { "d": "bsiPpBasis", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.4.1": { "d": "bsiEcdsaSignatures", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.4.1.1": { "d": "bsiEcdsaWithSHA1", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.4.1.2": { "d": "bsiEcdsaWithSHA224", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.4.1.3": { "d": "bsiEcdsaWithSHA256", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.4.1.4": { "d": "bsiEcdsaWithSHA384", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.4.1.5": { "d": "bsiEcdsaWithSHA512", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.1.4.1.6": { "d": "bsiEcdsaWithRIPEMD160", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.2": { "d": "bsiEcKeyType", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.2.1": { "d": "bsiEcPublicKey", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.5.1": { "d": "bsiKaeg", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.5.1.1": { "d": "bsiKaegWithX963KDF", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.1.5.1.2": { "d": "bsiKaegWith3DESKDF", "c": "BSI TR-03111", "w": false }, + "0.4.0.127.0.7.2.2.1": { "d": "bsiPK", "c": "BSI TR-03110. Formerly known as bsiCA, now moved to ...2.2.3.x", "w": false }, + "0.4.0.127.0.7.2.2.1.1": { "d": "bsiPK_DH", "c": "BSI TR-03110. Formerly known as bsiCA_DH, now moved to ...2.2.3.x", "w": false }, + "0.4.0.127.0.7.2.2.1.2": { "d": "bsiPK_ECDH", "c": "BSI TR-03110. Formerly known as bsiCA_ECDH, now moved to ...2.2.3.x", "w": false }, + "0.4.0.127.0.7.2.2.2": { "d": "bsiTA", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.2.1": { "d": "bsiTA_RSA", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.2.1.1": { "d": "bsiTA_RSAv1_5_SHA1", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.2.1.2": { "d": "bsiTA_RSAv1_5_SHA256", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.2.1.3": { "d": "bsiTA_RSAPSS_SHA1", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.2.1.4": { "d": "bsiTA_RSAPSS_SHA256", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.2.2": { "d": "bsiTA_ECDSA", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.2.2.1": { "d": "bsiTA_ECDSA_SHA1", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.2.2.2": { "d": "bsiTA_ECDSA_SHA224", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.2.2.3": { "d": "bsiTA_ECDSA_SHA256", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.3": { "d": "bsiCA", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.3.1": { "d": "bsiCA_DH", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.2.2.3.2": { "d": "bsiCA_ECDH", "c": "BSI TR-03110", "w": false }, + "0.4.0.127.0.7.3.1.2.1": { "d": "bsiRoleEAC", "c": "BSI TR-03110", "w": false }, + "0.4.0.1862": { "d": "etsiQcsProfile", "c": "ETSI TS 101 862 qualified certificates", "w": false }, + "0.4.0.1862.1": { "d": "etsiQcs", "c": "ETSI TS 101 862 qualified certificates", "w": false }, + "0.4.0.1862.1.1": { "d": "etsiQcsCompliance", "c": "ETSI TS 101 862 qualified certificates", "w": false }, + "0.4.0.1862.1.2": { "d": "etsiQcsLimitValue", "c": "ETSI TS 101 862 qualified certificates", "w": false }, + "0.4.0.1862.1.3": { "d": "etsiQcsRetentionPeriod", "c": "ETSI TS 101 862 qualified certificates", "w": false }, + "0.4.0.1862.1.4": { "d": "etsiQcsQcSSCD", "c": "ETSI TS 101 862 qualified certificates", "w": false }, + "0.9.2342.19200300.100.1.1": { "d": "userID", "c": "Some oddball X.500 attribute collection", "w": false }, + "0.9.2342.19200300.100.1.3": { "d": "rfc822Mailbox", "c": "Some oddball X.500 attribute collection", "w": false }, + "0.9.2342.19200300.100.1.25": { "d": "domainComponent", "c": "Men are from Mars, this OID is from Pluto", "w": false }, + "1.0.10118.3.0.49": { "d": "ripemd160", "c": "ISO 10118-3 hash function", "w": false }, + "1.0.10118.3.0.50": { "d": "ripemd128", "c": "ISO 10118-3 hash function", "w": false }, + "1.0.10118.3.0.55": { "d": "whirlpool", "c": "ISO 10118-3 hash function", "w": false }, + "1.2.36.1.3.1.1.1": { "d": "qgpki", "c": "Queensland Government PKI", "w": false }, + "1.2.36.1.3.1.1.1.1": { "d": "qgpkiPolicies", "c": "QGPKI policies", "w": false }, + "1.2.36.1.3.1.1.1.1.1": { "d": "qgpkiMedIntermedCA", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.1.1": { "d": "qgpkiMedIntermedIndividual", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.1.2": { "d": "qgpkiMedIntermedDeviceControl", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.1.3": { "d": "qgpkiMedIntermedDevice", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.1.4": { "d": "qgpkiMedIntermedAuthorisedParty", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.1.5": { "d": "qgpkiMedIntermedDeviceSystem", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.2": { "d": "qgpkiMedIssuingCA", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.2.1": { "d": "qgpkiMedIssuingIndividual", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.2.2": { "d": "qgpkiMedIssuingDeviceControl", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.2.3": { "d": "qgpkiMedIssuingDevice", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.2.4": { "d": "qgpkiMedIssuingAuthorisedParty", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.2.5": { "d": "qgpkiMedIssuingClientAuth", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.2.6": { "d": "qgpkiMedIssuingServerAuth", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.2.7": { "d": "qgpkiMedIssuingDataProt", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.2.8": { "d": "qgpkiMedIssuingTokenAuth", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.3": { "d": "qgpkiBasicIntermedCA", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.3.1": { "d": "qgpkiBasicIntermedDeviceSystem", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.4": { "d": "qgpkiBasicIssuingCA", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.4.1": { "d": "qgpkiBasicIssuingClientAuth", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.4.2": { "d": "qgpkiBasicIssuingServerAuth", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.1.4.3": { "d": "qgpkiBasicIssuingDataSigning", "c": "QGPKI policy", "w": false }, + "1.2.36.1.3.1.1.1.2": { "d": "qgpkiAssuranceLevel", "c": "QGPKI assurance level", "w": false }, + "1.2.36.1.3.1.1.1.2.1": { "d": "qgpkiAssuranceRudimentary", "c": "QGPKI assurance level", "w": false }, + "1.2.36.1.3.1.1.1.2.2": { "d": "qgpkiAssuranceBasic", "c": "QGPKI assurance level", "w": false }, + "1.2.36.1.3.1.1.1.2.3": { "d": "qgpkiAssuranceMedium", "c": "QGPKI assurance level", "w": false }, + "1.2.36.1.3.1.1.1.2.4": { "d": "qgpkiAssuranceHigh", "c": "QGPKI assurance level", "w": false }, + "1.2.36.1.3.1.1.1.3": { "d": "qgpkiCertFunction", "c": "QGPKI policies", "w": false }, + "1.2.36.1.3.1.1.1.3.1": { "d": "qgpkiFunctionIndividual", "c": "QGPKI policies", "w": false }, + "1.2.36.1.3.1.1.1.3.2": { "d": "qgpkiFunctionDevice", "c": "QGPKI policies", "w": false }, + "1.2.36.1.3.1.1.1.3.3": { "d": "qgpkiFunctionAuthorisedParty", "c": "QGPKI policies", "w": false }, + "1.2.36.1.3.1.1.1.3.4": { "d": "qgpkiFunctionDeviceControl", "c": "QGPKI policies", "w": false }, + "1.2.36.1.3.1.2": { "d": "qpspki", "c": "Queensland Police PKI", "w": false }, + "1.2.36.1.3.1.2.1": { "d": "qpspkiPolicies", "c": "Queensland Police PKI", "w": false }, + "1.2.36.1.3.1.2.1.2": { "d": "qpspkiPolicyBasic", "c": "Queensland Police PKI", "w": false }, + "1.2.36.1.3.1.2.1.3": { "d": "qpspkiPolicyMedium", "c": "Queensland Police PKI", "w": false }, + "1.2.36.1.3.1.2.1.4": { "d": "qpspkiPolicyHigh", "c": "Queensland Police PKI", "w": false }, + "1.2.36.1.3.1.3.2": { "d": "qtmrpki", "c": "Queensland Transport PKI", "w": false }, + "1.2.36.1.3.1.3.2.1": { "d": "qtmrpkiPolicies", "c": "Queensland Transport PKI", "w": false }, + "1.2.36.1.3.1.3.2.2": { "d": "qtmrpkiPurpose", "c": "Queensland Transport PKI", "w": false }, + "1.2.36.1.3.1.3.2.2.1": { "d": "qtmrpkiIndividual", "c": "Queensland Transport PKI purpose", "w": false }, + "1.2.36.1.3.1.3.2.2.2": { "d": "qtmrpkiDeviceControl", "c": "Queensland Transport PKI purpose", "w": false }, + "1.2.36.1.3.1.3.2.2.3": { "d": "qtmrpkiDevice", "c": "Queensland Transport PKI purpose", "w": false }, + "1.2.36.1.3.1.3.2.2.4": { "d": "qtmrpkiAuthorisedParty", "c": "Queensland Transport PKI purpose", "w": false }, + "1.2.36.1.3.1.3.2.2.5": { "d": "qtmrpkiDeviceSystem", "c": "Queensland Transport PKI purpose", "w": false }, + "1.2.36.1.3.1.3.2.3": { "d": "qtmrpkiDevice", "c": "Queensland Transport PKI", "w": false }, + "1.2.36.1.3.1.3.2.3.1": { "d": "qtmrpkiDriverLicense", "c": "Queensland Transport PKI device", "w": false }, + "1.2.36.1.3.1.3.2.3.2": { "d": "qtmrpkiIndustryAuthority", "c": "Queensland Transport PKI device", "w": false }, + "1.2.36.1.3.1.3.2.3.3": { "d": "qtmrpkiMarineLicense", "c": "Queensland Transport PKI device", "w": false }, + "1.2.36.1.3.1.3.2.3.4": { "d": "qtmrpkiAdultProofOfAge", "c": "Queensland Transport PKI device", "w": false }, + "1.2.36.1.3.1.3.2.3.5": { "d": "qtmrpkiSam", "c": "Queensland Transport PKI device", "w": false }, + "1.2.36.1.3.1.3.2.4": { "d": "qtmrpkiAuthorisedParty", "c": "Queensland Transport PKI", "w": false }, + "1.2.36.1.3.1.3.2.4.1": { "d": "qtmrpkiTransportInspector", "c": "Queensland Transport PKI authorised party", "w": false }, + "1.2.36.1.3.1.3.2.4.2": { "d": "qtmrpkiPoliceOfficer", "c": "Queensland Transport PKI authorised party", "w": false }, + "1.2.36.1.3.1.3.2.4.3": { "d": "qtmrpkiSystem", "c": "Queensland Transport PKI authorised party", "w": false }, + "1.2.36.1.3.1.3.2.4.4": { "d": "qtmrpkiLiquorLicensingInspector", "c": "Queensland Transport PKI authorised party", "w": false }, + "1.2.36.1.3.1.3.2.4.5": { "d": "qtmrpkiMarineEnforcementOfficer", "c": "Queensland Transport PKI authorised party", "w": false }, + "1.2.36.1.333.1": { "d": "australianBusinessNumber", "c": "Australian Government corporate taxpayer ID", "w": false }, + "1.2.36.68980861.1.1.2": { "d": "signetPersonal", "c": "Signet CA", "w": false }, + "1.2.36.68980861.1.1.3": { "d": "signetBusiness", "c": "Signet CA", "w": false }, + "1.2.36.68980861.1.1.4": { "d": "signetLegal", "c": "Signet CA", "w": false }, + "1.2.36.68980861.1.1.10": { "d": "signetPilot", "c": "Signet CA", "w": false }, + "1.2.36.68980861.1.1.11": { "d": "signetIntraNet", "c": "Signet CA", "w": false }, + "1.2.36.68980861.1.1.20": { "d": "signetPolicy", "c": "Signet CA", "w": false }, + "1.2.36.75878867.1.100.1.1": { "d": "certificatesAustraliaPolicy", "c": "Certificates Australia CA", "w": false }, + "1.2.392.200011.61.1.1.1": { "d": "mitsubishiSecurityAlgorithm", "c": "Mitsubishi security algorithm", "w": false }, + "1.2.392.200011.61.1.1.1.1": { "d": "misty1-cbc", "c": "Mitsubishi security algorithm", "w": false }, + "1.2.410.200004.1": { "d": "kisaAlgorithm", "c": "KISA algorithm", "w": false }, + "1.2.410.200004.1.1": { "d": "kcdsa", "c": "Korean DSA", "w": false }, + "1.2.410.200004.1.2": { "d": "has160", "c": "Korean hash algorithm", "w": false }, + "1.2.410.200004.1.3": { "d": "seedECB", "c": "Korean SEED algorithm, ECB mode", "w": false }, + "1.2.410.200004.1.4": { "d": "seedCBC", "c": "Korean SEED algorithm, CBC mode", "w": false }, + "1.2.410.200004.1.5": { "d": "seedOFB", "c": "Korean SEED algorithm, OFB mode", "w": false }, + "1.2.410.200004.1.6": { "d": "seedCFB", "c": "Korean SEED algorithm, CFB mode", "w": false }, + "1.2.410.200004.1.7": { "d": "seedMAC", "c": "Korean SEED algorithm, MAC mode", "w": false }, + "1.2.410.200004.1.8": { "d": "kcdsaWithHAS160", "c": "Korean signature algorithm", "w": false }, + "1.2.410.200004.1.9": { "d": "kcdsaWithSHA1", "c": "Korean signature algorithm", "w": false }, + "1.2.410.200004.1.10": { "d": "pbeWithHAS160AndSEED-ECB", "c": "Korean SEED algorithm, PBE key derivation", "w": false }, + "1.2.410.200004.1.11": { "d": "pbeWithHAS160AndSEED-CBC", "c": "Korean SEED algorithm, PBE key derivation", "w": false }, + "1.2.410.200004.1.12": { "d": "pbeWithHAS160AndSEED-CFB", "c": "Korean SEED algorithm, PBE key derivation", "w": false }, + "1.2.410.200004.1.13": { "d": "pbeWithHAS160AndSEED-OFB", "c": "Korean SEED algorithm, PBE key derivation", "w": false }, + "1.2.410.200004.1.14": { "d": "pbeWithSHA1AndSEED-ECB", "c": "Korean SEED algorithm, PBE key derivation", "w": false }, + "1.2.410.200004.1.15": { "d": "pbeWithSHA1AndSEED-CBC", "c": "Korean SEED algorithm, PBE key derivation", "w": false }, + "1.2.410.200004.1.16": { "d": "pbeWithSHA1AndSEED-CFB", "c": "Korean SEED algorithm, PBE key derivation", "w": false }, + "1.2.410.200004.1.17": { "d": "pbeWithSHA1AndSEED-OFB", "c": "Korean SEED algorithm, PBE key derivation", "w": false }, + "1.2.410.200004.1.20": { "d": "rsaWithHAS160", "c": "Korean signature algorithm", "w": false }, + "1.2.410.200004.1.21": { "d": "kcdsa1", "c": "Korean DSA", "w": false }, + "1.2.410.200004.2": { "d": "npkiCP", "c": "KISA NPKI certificate policies", "w": false }, + "1.2.410.200004.2.1": { "d": "npkiSignaturePolicy", "c": "KISA NPKI certificate policies", "w": false }, + "1.2.410.200004.3": { "d": "npkiKP", "c": "KISA NPKI key usage", "w": false }, + "1.2.410.200004.4": { "d": "npkiAT", "c": "KISA NPKI attribute", "w": false }, + "1.2.410.200004.5": { "d": "npkiLCA", "c": "KISA NPKI licensed CA", "w": false }, + "1.2.410.200004.5.1": { "d": "npkiSignKorea", "c": "KISA NPKI licensed CA", "w": false }, + "1.2.410.200004.5.2": { "d": "npkiSignGate", "c": "KISA NPKI licensed CA", "w": false }, + "1.2.410.200004.5.3": { "d": "npkiNcaSign", "c": "KISA NPKI licensed CA", "w": false }, + "1.2.410.200004.6": { "d": "npkiON", "c": "KISA NPKI otherName", "w": false }, + "1.2.410.200004.7": { "d": "npkiAPP", "c": "KISA NPKI application", "w": false }, + "1.2.410.200004.7.1": { "d": "npkiSMIME", "c": "KISA NPKI application", "w": false }, + "1.2.410.200004.7.1.1": { "d": "npkiSMIMEAlgo", "c": "KISA NPKI application", "w": false }, + "1.2.410.200004.7.1.1.1": { "d": "npkiCmsSEEDWrap", "c": "KISA NPKI application", "w": false }, + "1.2.410.200004.10": { "d": "npki", "c": "KISA NPKI", "w": false }, + "1.2.410.200004.10.1": { "d": "npkiAttribute", "c": "KISA NPKI attribute", "w": false }, + "1.2.410.200004.10.1.1": { "d": "npkiIdentifyData", "c": "KISA NPKI attribute", "w": false }, + "1.2.410.200004.10.1.1.1": { "d": "npkiVID", "c": "KISA NPKI attribute", "w": false }, + "1.2.410.200004.10.1.1.2": { "d": "npkiEncryptedVID", "c": "KISA NPKI attribute", "w": false }, + "1.2.410.200004.10.1.1.3": { "d": "npkiRandomNum", "c": "KISA NPKI attribute", "w": false }, + "1.2.410.200004.10.1.1.4": { "d": "npkiVID", "c": "KISA NPKI attribute", "w": false }, + "1.2.410.200046.1.1": { "d": "aria1AlgorithmModes", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.1": { "d": "aria128-ecb", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.2": { "d": "aria128-cbc", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.3": { "d": "aria128-cfb", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.4": { "d": "aria128-ofb", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.5": { "d": "aria128-ctr", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.6": { "d": "aria192-ecb", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.7": { "d": "aria192-cbc", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.8": { "d": "aria192-cfb", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.9": { "d": "aria192-ofb", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.10": { "d": "aria192-ctr", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.11": { "d": "aria256-ecb", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.12": { "d": "aria256-cbc", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.13": { "d": "aria256-cfb", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.21": { "d": "aria128-cmac", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.22": { "d": "aria192-cmac", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.23": { "d": "aria256-cmac", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.31": { "d": "aria128-ocb2", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.32": { "d": "aria192-ocb2", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.33": { "d": "aria256-ocb2", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.34": { "d": "aria128-gcm", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.35": { "d": "aria192-gcm", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.36": { "d": "aria256-gcm", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.37": { "d": "aria128-ccm", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.38": { "d": "aria192-ccm", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.39": { "d": "aria256-ccm", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.40": { "d": "aria128-keywrap", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.41": { "d": "aria192-keywrap", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.42": { "d": "aria256-keywrap", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.43": { "d": "aria128-keywrapWithPad", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.44": { "d": "aria192-keywrapWithPad", "c": "ARIA algorithm modes", "w": false }, + "1.2.410.200046.1.1.45": { "d": "aria256-keywrapWithPad", "c": "ARIA algorithm modes", "w": false }, + "1.2.643.2.2.3": { "d": "gostSignature", "c": "GOST R 34.10-2001 + GOST R 34.11-94 signature", "w": false }, + "1.2.643.2.2.4": { "d": "gost94Signature", "c": "GOST R 34.10-94 + GOST R 34.11-94 signature. Obsoleted by GOST R 34.10-2001", "w": true }, + "1.2.643.2.2.19": { "d": "gostPublicKey", "c": "GOST R 34.10-2001 (ECC) public key", "w": false }, + "1.2.643.2.2.20": { "d": "gost94PublicKey", "c": "GOST R 34.10-94 public key. Obsoleted by GOST R 34.10-2001", "w": true }, + "1.2.643.2.2.21": { "d": "gostCipher", "c": "GOST 28147-89 (symmetric key block cipher)", "w": false }, + "1.2.643.2.2.31.0": { "d": "testCipherParams", "c": "Test params for GOST 28147-89", "w": false }, + "1.2.643.2.2.31.1": { "d": "cryptoProCipherA", "c": "CryptoPro params A for GOST 28147-89", "w": false }, + "1.2.643.2.2.31.2": { "d": "cryptoProCipherB", "c": "CryptoPro params B for GOST 28147-89", "w": false }, + "1.2.643.2.2.31.3": { "d": "cryptoProCipherC", "c": "CryptoPro params C for GOST 28147-89", "w": false }, + "1.2.643.2.2.31.4": { "d": "cryptoProCipherD", "c": "CryptoPro params D for GOST 28147-89", "w": false }, + "1.2.643.2.2.31.5": { "d": "oscar11Cipher", "c": "Oscar-1.1 params for GOST 28147-89", "w": false }, + "1.2.643.2.2.31.6": { "d": "oscar10Cipher", "c": "Oscar-1.0 params for GOST 28147-89", "w": false }, + "1.2.643.2.2.31.7": { "d": "ric1Cipher", "c": "RIC-1 params for GOST 28147-89", "w": false }, + "1.2.643.2.2.9": { "d": "gostDigest", "c": "GOST R 34.11-94 digest", "w": false }, + "1.2.643.2.2.30.0": { "d": "testDigestParams", "c": "Test params for GOST R 34.11-94", "w": false }, + "1.2.643.2.2.30.1": { "d": "cryptoProDigestA", "c": "CryptoPro digest params for GOST R 34.11-94", "w": false }, + "1.2.643.2.2.35.0": { "d": "testSignParams", "c": "Test elliptic curve for GOST R 34.11-2001", "w": false }, + "1.2.643.2.2.35.1": { "d": "cryptoProSignA", "c": "CryptoPro ell.curve A for GOST R 34.11-2001", "w": false }, + "1.2.643.2.2.35.2": { "d": "cryptoProSignB", "c": "CryptoPro ell.curve B for GOST R 34.11-2001", "w": false }, + "1.2.643.2.2.35.3": { "d": "cryptoProSignC", "c": "CryptoPro ell.curve C for GOST R 34.11-2001", "w": false }, + "1.2.643.2.2.36.0": { "d": "cryptoProSignXA", "c": "CryptoPro ell.curve XA for GOST R 34.11-2001", "w": false }, + "1.2.643.2.2.36.1": { "d": "cryptoProSignXB", "c": "CryptoPro ell.curve XB for GOST R 34.11-2001", "w": false }, + "1.2.643.2.2.14.0": { "d": "nullMeshing", "c": "Do not mesh state of GOST 28147-89 cipher", "w": false }, + "1.2.643.2.2.14.1": { "d": "cryptoProMeshing", "c": "CryptoPro meshing of state of GOST 28147-89 cipher", "w": false }, + "1.2.643.2.2.10": { "d": "hmacGost", "c": "HMAC with GOST R 34.11-94", "w": false }, + "1.2.643.2.2.13.0": { "d": "gostWrap", "c": "Wrap key using GOST 28147-89 key", "w": false }, + "1.2.643.2.2.13.1": { "d": "cryptoProWrap", "c": "Wrap key using diversified GOST 28147-89 key", "w": false }, + "1.2.643.2.2.96": { "d": "cryptoProECDHWrap", "c": "Wrap key using ECC DH on GOST R 34.10-2001 keys (VKO)", "w": false }, + "1.2.752.34.1": { "d": "seis-cp", "c": "SEIS Project", "w": false }, + "1.2.752.34.1.1": { "d": "SEIS high-assurance policyIdentifier", "c": "SEIS Project certificate policies", "w": false }, + "1.2.752.34.1.2": { "d": "SEIS GAK policyIdentifier", "c": "SEIS Project certificate policies", "w": false }, + "1.2.752.34.2": { "d": "SEIS pe", "c": "SEIS Project", "w": false }, + "1.2.752.34.3": { "d": "SEIS at", "c": "SEIS Project", "w": false }, + "1.2.752.34.3.1": { "d": "SEIS at-personalIdentifier", "c": "SEIS Project attribute", "w": false }, + "1.2.840.10040.1": { "d": "module", "c": "ANSI X9.57", "w": false }, + "1.2.840.10040.1.1": { "d": "x9f1-cert-mgmt", "c": "ANSI X9.57 module", "w": false }, + "1.2.840.10040.2": { "d": "holdinstruction", "c": "ANSI X9.57", "w": false }, + "1.2.840.10040.2.1": { "d": "holdinstruction-none", "c": "ANSI X9.57 hold instruction", "w": false }, + "1.2.840.10040.2.2": { "d": "callissuer", "c": "ANSI X9.57 hold instruction", "w": false }, + "1.2.840.10040.2.3": { "d": "reject", "c": "ANSI X9.57 hold instruction", "w": false }, + "1.2.840.10040.2.4": { "d": "pickupToken", "c": "ANSI X9.57 hold instruction", "w": false }, + "1.2.840.10040.3": { "d": "attribute", "c": "ANSI X9.57", "w": false }, + "1.2.840.10040.3.1": { "d": "countersignature", "c": "ANSI X9.57 attribute", "w": false }, + "1.2.840.10040.3.2": { "d": "attribute-cert", "c": "ANSI X9.57 attribute", "w": false }, + "1.2.840.10040.4": { "d": "algorithm", "c": "ANSI X9.57", "w": false }, + "1.2.840.10040.4.1": { "d": "dsa", "c": "ANSI X9.57 algorithm", "w": false }, + "1.2.840.10040.4.2": { "d": "dsa-match", "c": "ANSI X9.57 algorithm", "w": false }, + "1.2.840.10040.4.3": { "d": "dsaWithSha1", "c": "ANSI X9.57 algorithm", "w": false }, + "1.2.840.10045.1": { "d": "fieldType", "c": "ANSI X9.62. This OID is also assigned as ecdsa-with-SHA1", "w": false }, + "1.2.840.10045.1.1": { "d": "prime-field", "c": "ANSI X9.62 field type", "w": false }, + "1.2.840.10045.1.2": { "d": "characteristic-two-field", "c": "ANSI X9.62 field type", "w": false }, + "1.2.840.10045.1.2.3": { "d": "characteristic-two-basis", "c": "ANSI X9.62 field type", "w": false }, + "1.2.840.10045.1.2.3.1": { "d": "onBasis", "c": "ANSI X9.62 field basis", "w": false }, + "1.2.840.10045.1.2.3.2": { "d": "tpBasis", "c": "ANSI X9.62 field basis", "w": false }, + "1.2.840.10045.1.2.3.3": { "d": "ppBasis", "c": "ANSI X9.62 field basis", "w": false }, + "1.2.840.10045.2": { "d": "publicKeyType", "c": "ANSI X9.62", "w": false }, + "1.2.840.10045.2.1": { "d": "ecPublicKey", "c": "ANSI X9.62 public key type", "w": false }, + "1.2.840.10045.3.0.1": { "d": "c2pnb163v1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.2": { "d": "c2pnb163v2", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.3": { "d": "c2pnb163v3", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.5": { "d": "c2tnb191v1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.6": { "d": "c2tnb191v2", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.7": { "d": "c2tnb191v3", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.10": { "d": "c2pnb208w1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.11": { "d": "c2tnb239v1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.12": { "d": "c2tnb239v2", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.13": { "d": "c2tnb239v3", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.16": { "d": "c2pnb272w1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.18": { "d": "c2tnb359v1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.19": { "d": "c2pnb368w1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.0.20": { "d": "c2tnb431r1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.1.1": { "d": "prime192v1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.1.2": { "d": "prime192v2", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.1.3": { "d": "prime192v3", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.1.4": { "d": "prime239v1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.1.5": { "d": "prime239v2", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.1.6": { "d": "prime239v3", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.3.1.7": { "d": "prime256v1", "c": "ANSI X9.62 named elliptic curve", "w": false }, + "1.2.840.10045.4.1": { "d": "ecdsaWithSHA1", "c": "ANSI X9.62 ECDSA algorithm with SHA1", "w": false }, + "1.2.840.10045.4.2": { "d": "ecdsaWithRecommended", "c": "ANSI X9.62 ECDSA algorithm with Recommended", "w": false }, + "1.2.840.10045.4.3": { "d": "ecdsaWithSpecified", "c": "ANSI X9.62 ECDSA algorithm with Specified", "w": false }, + "1.2.840.10045.4.3.1": { "d": "ecdsaWithSHA224", "c": "ANSI X9.62 ECDSA algorithm with SHA224", "w": false }, + "1.2.840.10045.4.3.2": { "d": "ecdsaWithSHA256", "c": "ANSI X9.62 ECDSA algorithm with SHA256", "w": false }, + "1.2.840.10045.4.3.3": { "d": "ecdsaWithSHA384", "c": "ANSI X9.62 ECDSA algorithm with SHA384", "w": false }, + "1.2.840.10045.4.3.4": { "d": "ecdsaWithSHA512", "c": "ANSI X9.62 ECDSA algorithm with SHA512", "w": false }, + "1.2.840.10046.1": { "d": "fieldType", "c": "ANSI X9.42", "w": false }, + "1.2.840.10046.1.1": { "d": "gf-prime", "c": "ANSI X9.42 field type", "w": false }, + "1.2.840.10046.2": { "d": "numberType", "c": "ANSI X9.42", "w": false }, + "1.2.840.10046.2.1": { "d": "dhPublicKey", "c": "ANSI X9.42 number type", "w": false }, + "1.2.840.10046.3": { "d": "scheme", "c": "ANSI X9.42", "w": false }, + "1.2.840.10046.3.1": { "d": "dhStatic", "c": "ANSI X9.42 scheme", "w": false }, + "1.2.840.10046.3.2": { "d": "dhEphem", "c": "ANSI X9.42 scheme", "w": false }, + "1.2.840.10046.3.3": { "d": "dhHybrid1", "c": "ANSI X9.42 scheme", "w": false }, + "1.2.840.10046.3.4": { "d": "dhHybrid2", "c": "ANSI X9.42 scheme", "w": false }, + "1.2.840.10046.3.5": { "d": "mqv2", "c": "ANSI X9.42 scheme", "w": false }, + "1.2.840.10046.3.6": { "d": "mqv1", "c": "ANSI X9.42 scheme", "w": false }, + "1.2.840.10065.2.2": { "d": "?", "c": "ASTM 31.20", "w": false }, + "1.2.840.10065.2.3": { "d": "healthcareLicense", "c": "ASTM 31.20", "w": false }, + "1.2.840.10065.2.3.1.1": { "d": "license?", "c": "ASTM 31.20 healthcare license type", "w": false }, + "1.2.840.113533.7": { "d": "nsn", "c": "", "w": false }, + "1.2.840.113533.7.65": { "d": "nsn-ce", "c": "", "w": false }, + "1.2.840.113533.7.65.0": { "d": "entrustVersInfo", "c": "Nortel Secure Networks ce", "w": false }, + "1.2.840.113533.7.66": { "d": "nsn-alg", "c": "", "w": false }, + "1.2.840.113533.7.66.3": { "d": "cast3CBC", "c": "Nortel Secure Networks alg", "w": false }, + "1.2.840.113533.7.66.10": { "d": "cast5CBC", "c": "Nortel Secure Networks alg", "w": false }, + "1.2.840.113533.7.66.11": { "d": "cast5MAC", "c": "Nortel Secure Networks alg", "w": false }, + "1.2.840.113533.7.66.12": { "d": "pbeWithMD5AndCAST5-CBC", "c": "Nortel Secure Networks alg", "w": false }, + "1.2.840.113533.7.66.13": { "d": "passwordBasedMac", "c": "Nortel Secure Networks alg", "w": false }, + "1.2.840.113533.7.67": { "d": "nsn-oc", "c": "", "w": false }, + "1.2.840.113533.7.67.0": { "d": "entrustUser", "c": "Nortel Secure Networks oc", "w": false }, + "1.2.840.113533.7.68": { "d": "nsn-at", "c": "", "w": false }, + "1.2.840.113533.7.68.0": { "d": "entrustCAInfo", "c": "Nortel Secure Networks at", "w": false }, + "1.2.840.113533.7.68.10": { "d": "attributeCertificate", "c": "Nortel Secure Networks at", "w": false }, + "1.2.840.113549.1.1": { "d": "pkcs-1", "c": "", "w": false }, + "1.2.840.113549.1.1.1": { "d": "rsaEncryption", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.2": { "d": "md2WithRSAEncryption", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.3": { "d": "md4WithRSAEncryption", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.4": { "d": "md5WithRSAEncryption", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.5": { "d": "sha1WithRSAEncryption", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.7": { "d": "rsaOAEP", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.8": { "d": "pkcs1-MGF", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.9": { "d": "rsaOAEP-pSpecified", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.10": { "d": "rsaPSS", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.11": { "d": "sha256WithRSAEncryption", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.12": { "d": "sha384WithRSAEncryption", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.13": { "d": "sha512WithRSAEncryption", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.14": { "d": "sha224WithRSAEncryption", "c": "PKCS #1", "w": false }, + "1.2.840.113549.1.1.6": { "d": "rsaOAEPEncryptionSET", "c": "PKCS #1. This OID may also be assigned as ripemd160WithRSAEncryption", "w": false }, + "1.2.840.113549.1.2": { "d": "bsafeRsaEncr", "c": "Obsolete BSAFE OID", "w": true }, + "1.2.840.113549.1.3": { "d": "pkcs-3", "c": "", "w": false }, + "1.2.840.113549.1.3.1": { "d": "dhKeyAgreement", "c": "PKCS #3", "w": false }, + "1.2.840.113549.1.5": { "d": "pkcs-5", "c": "", "w": false }, + "1.2.840.113549.1.5.1": { "d": "pbeWithMD2AndDES-CBC", "c": "PKCS #5", "w": false }, + "1.2.840.113549.1.5.3": { "d": "pbeWithMD5AndDES-CBC", "c": "PKCS #5", "w": false }, + "1.2.840.113549.1.5.4": { "d": "pbeWithMD2AndRC2-CBC", "c": "PKCS #5", "w": false }, + "1.2.840.113549.1.5.6": { "d": "pbeWithMD5AndRC2-CBC", "c": "PKCS #5", "w": false }, + "1.2.840.113549.1.5.9": { "d": "pbeWithMD5AndXOR", "c": "PKCS #5, used in BSAFE only", "w": true }, + "1.2.840.113549.1.5.10": { "d": "pbeWithSHAAndDES-CBC", "c": "PKCS #5", "w": false }, + "1.2.840.113549.1.5.12": { "d": "pkcs5PBKDF2", "c": "PKCS #5 v2.0", "w": false }, + "1.2.840.113549.1.5.13": { "d": "pkcs5PBES2", "c": "PKCS #5 v2.0", "w": false }, + "1.2.840.113549.1.5.14": { "d": "pkcs5PBMAC1", "c": "PKCS #5 v2.0", "w": false }, + "1.2.840.113549.1.7": { "d": "pkcs-7", "c": "", "w": false }, + "1.2.840.113549.1.7.1": { "d": "data", "c": "PKCS #7", "w": false }, + "1.2.840.113549.1.7.2": { "d": "signedData", "c": "PKCS #7", "w": false }, + "1.2.840.113549.1.7.3": { "d": "envelopedData", "c": "PKCS #7", "w": false }, + "1.2.840.113549.1.7.4": { "d": "signedAndEnvelopedData", "c": "PKCS #7", "w": false }, + "1.2.840.113549.1.7.5": { "d": "digestedData", "c": "PKCS #7", "w": false }, + "1.2.840.113549.1.7.6": { "d": "encryptedData", "c": "PKCS #7", "w": false }, + "1.2.840.113549.1.7.7": { "d": "dataWithAttributes", "c": "PKCS #7 experimental", "w": true }, + "1.2.840.113549.1.7.8": { "d": "encryptedPrivateKeyInfo", "c": "PKCS #7 experimental", "w": true }, + "1.2.840.113549.1.9": { "d": "pkcs-9", "c": "", "w": false }, + "1.2.840.113549.1.9.1": { "d": "emailAddress", "c": "PKCS #9. Deprecated, use an altName extension instead", "w": false }, + "1.2.840.113549.1.9.2": { "d": "unstructuredName", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.3": { "d": "contentType", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.4": { "d": "messageDigest", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.5": { "d": "signingTime", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.6": { "d": "countersignature", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.7": { "d": "challengePassword", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.8": { "d": "unstructuredAddress", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.9": { "d": "extendedCertificateAttributes", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.10": { "d": "issuerAndSerialNumber", "c": "PKCS #9 experimental", "w": true }, + "1.2.840.113549.1.9.11": { "d": "passwordCheck", "c": "PKCS #9 experimental", "w": true }, + "1.2.840.113549.1.9.12": { "d": "publicKey", "c": "PKCS #9 experimental", "w": true }, + "1.2.840.113549.1.9.13": { "d": "signingDescription", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.14": { "d": "extensionRequest", "c": "PKCS #9 via CRMF", "w": false }, + "1.2.840.113549.1.9.15": { "d": "sMIMECapabilities", "c": "PKCS #9. This OID was formerly assigned as symmetricCapabilities, then reassigned as SMIMECapabilities, then renamed to the current name", "w": false }, + "1.2.840.113549.1.9.15.1": { "d": "preferSignedData", "c": "sMIMECapabilities", "w": false }, + "1.2.840.113549.1.9.15.2": { "d": "canNotDecryptAny", "c": "sMIMECapabilities", "w": false }, + "1.2.840.113549.1.9.15.3": { "d": "receiptRequest", "c": "sMIMECapabilities. Deprecated, use (1 2 840 113549 1 9 16 2 1) instead", "w": true }, + "1.2.840.113549.1.9.15.4": { "d": "receipt", "c": "sMIMECapabilities. Deprecated, use (1 2 840 113549 1 9 16 1 1) instead", "w": true }, + "1.2.840.113549.1.9.15.5": { "d": "contentHints", "c": "sMIMECapabilities. Deprecated, use (1 2 840 113549 1 9 16 2 4) instead", "w": true }, + "1.2.840.113549.1.9.15.6": { "d": "mlExpansionHistory", "c": "sMIMECapabilities. Deprecated, use (1 2 840 113549 1 9 16 2 3) instead", "w": true }, + "1.2.840.113549.1.9.16": { "d": "id-sMIME", "c": "PKCS #9", "w": false }, + "1.2.840.113549.1.9.16.0": { "d": "id-mod", "c": "id-sMIME", "w": false }, + "1.2.840.113549.1.9.16.0.1": { "d": "id-mod-cms", "c": "S/MIME Modules", "w": false }, + "1.2.840.113549.1.9.16.0.2": { "d": "id-mod-ess", "c": "S/MIME Modules", "w": false }, + "1.2.840.113549.1.9.16.0.3": { "d": "id-mod-oid", "c": "S/MIME Modules", "w": false }, + "1.2.840.113549.1.9.16.0.4": { "d": "id-mod-msg-v3", "c": "S/MIME Modules", "w": false }, + "1.2.840.113549.1.9.16.0.5": { "d": "id-mod-ets-eSignature-88", "c": "S/MIME Modules", "w": false }, + "1.2.840.113549.1.9.16.0.6": { "d": "id-mod-ets-eSignature-97", "c": "S/MIME Modules", "w": false }, + "1.2.840.113549.1.9.16.0.7": { "d": "id-mod-ets-eSigPolicy-88", "c": "S/MIME Modules", "w": false }, + "1.2.840.113549.1.9.16.0.8": { "d": "id-mod-ets-eSigPolicy-88", "c": "S/MIME Modules", "w": false }, + "1.2.840.113549.1.9.16.1": { "d": "contentType", "c": "S/MIME", "w": false }, + "1.2.840.113549.1.9.16.1.1": { "d": "receipt", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.2": { "d": "authData", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.3": { "d": "publishCert", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.4": { "d": "tSTInfo", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.5": { "d": "tDTInfo", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.6": { "d": "contentInfo", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.7": { "d": "dVCSRequestData", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.8": { "d": "dVCSResponseData", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.9": { "d": "compressedData", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.10": { "d": "scvpCertValRequest", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.11": { "d": "scvpCertValResponse", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.12": { "d": "scvpValPolRequest", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.13": { "d": "scvpValPolResponse", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.14": { "d": "attrCertEncAttrs", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.15": { "d": "tSReq", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.16": { "d": "firmwarePackage", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.17": { "d": "firmwareLoadReceipt", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.18": { "d": "firmwareLoadError", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.19": { "d": "contentCollection", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.20": { "d": "contentWithAttrs", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.21": { "d": "encKeyWithID", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.22": { "d": "encPEPSI", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.23": { "d": "authEnvelopedData", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.24": { "d": "routeOriginAttest", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.25": { "d": "symmetricKeyPackage", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.26": { "d": "rpkiManifest", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.27": { "d": "asciiTextWithCRLF", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.28": { "d": "xml", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.29": { "d": "pdf", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.30": { "d": "postscript", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.31": { "d": "timestampedData", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.32": { "d": "asAdjacencyAttest", "c": "S/MIME Content Types", "w": true }, + "1.2.840.113549.1.9.16.1.33": { "d": "rpkiTrustAnchor", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.1.34": { "d": "trustAnchorList", "c": "S/MIME Content Types", "w": false }, + "1.2.840.113549.1.9.16.2": { "d": "authenticatedAttributes", "c": "S/MIME", "w": false }, + "1.2.840.113549.1.9.16.2.1": { "d": "receiptRequest", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.2": { "d": "securityLabel", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.3": { "d": "mlExpandHistory", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.4": { "d": "contentHint", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.5": { "d": "msgSigDigest", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.6": { "d": "encapContentType", "c": "S/MIME Authenticated Attributes. Obsolete", "w": true }, + "1.2.840.113549.1.9.16.2.7": { "d": "contentIdentifier", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.8": { "d": "macValue", "c": "S/MIME Authenticated Attributes. Obsolete", "w": true }, + "1.2.840.113549.1.9.16.2.9": { "d": "equivalentLabels", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.10": { "d": "contentReference", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.11": { "d": "encrypKeyPref", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.12": { "d": "signingCertificate", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.13": { "d": "smimeEncryptCerts", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.14": { "d": "timeStampToken", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.15": { "d": "sigPolicyId", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.16": { "d": "commitmentType", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.17": { "d": "signerLocation", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.18": { "d": "signerAttr", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.19": { "d": "otherSigCert", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.20": { "d": "contentTimestamp", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.21": { "d": "certificateRefs", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.22": { "d": "revocationRefs", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.23": { "d": "certValues", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.24": { "d": "revocationValues", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.25": { "d": "escTimeStamp", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.26": { "d": "certCRLTimestamp", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.27": { "d": "archiveTimeStamp", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.28": { "d": "signatureType", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.29": { "d": "dvcsDvc", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.30": { "d": "cekReference", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.31": { "d": "maxCEKDecrypts", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.32": { "d": "kekDerivationAlg", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.33": { "d": "intendedRecipients", "c": "S/MIME Authenticated Attributes. Obsolete", "w": true }, + "1.2.840.113549.1.9.16.2.34": { "d": "cmcUnsignedData", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.35": { "d": "fwPackageID", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.36": { "d": "fwTargetHardwareIDs", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.37": { "d": "fwDecryptKeyID", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.38": { "d": "fwImplCryptAlgs", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.39": { "d": "fwWrappedFirmwareKey", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.40": { "d": "fwCommunityIdentifiers", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.41": { "d": "fwPkgMessageDigest", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.42": { "d": "fwPackageInfo", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.43": { "d": "fwImplCompressAlgs", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.44": { "d": "etsAttrCertificateRefs", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.45": { "d": "etsAttrRevocationRefs", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.46": { "d": "binarySigningTime", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.47": { "d": "signingCertificateV2", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.48": { "d": "etsArchiveTimeStampV2", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.49": { "d": "erInternal", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.50": { "d": "erExternal", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.2.51": { "d": "multipleSignatures", "c": "S/MIME Authenticated Attributes", "w": false }, + "1.2.840.113549.1.9.16.3.1": { "d": "esDHwith3DES", "c": "S/MIME Algorithms. Obsolete", "w": true }, + "1.2.840.113549.1.9.16.3.2": { "d": "esDHwithRC2", "c": "S/MIME Algorithms. Obsolete", "w": true }, + "1.2.840.113549.1.9.16.3.3": { "d": "3desWrap", "c": "S/MIME Algorithms. Obsolete", "w": true }, + "1.2.840.113549.1.9.16.3.4": { "d": "rc2Wrap", "c": "S/MIME Algorithms. Obsolete", "w": true }, + "1.2.840.113549.1.9.16.3.5": { "d": "esDH", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.6": { "d": "cms3DESwrap", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.7": { "d": "cmsRC2wrap", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.8": { "d": "zlib", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.9": { "d": "pwriKEK", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.10": { "d": "ssDH", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.11": { "d": "hmacWith3DESwrap", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.12": { "d": "hmacWithAESwrap", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.13": { "d": "md5XorExperiment", "c": "S/MIME Algorithms. Experimental", "w": true }, + "1.2.840.113549.1.9.16.3.14": { "d": "rsaKEM", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.15": { "d": "authEnc128", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.3.16": { "d": "authEnc256", "c": "S/MIME Algorithms", "w": false }, + "1.2.840.113549.1.9.16.4.1": { "d": "certDist-ldap", "c": "S/MIME Certificate Distribution", "w": false }, + "1.2.840.113549.1.9.16.5.1": { "d": "sigPolicyQualifier-spuri x", "c": "S/MIME Signature Policy Qualifiers", "w": false }, + "1.2.840.113549.1.9.16.5.2": { "d": "sigPolicyQualifier-spUserNotice", "c": "S/MIME Signature Policy Qualifiers", "w": false }, + "1.2.840.113549.1.9.16.6.1": { "d": "proofOfOrigin", "c": "S/MIME Commitment Type Identifiers", "w": false }, + "1.2.840.113549.1.9.16.6.2": { "d": "proofOfReceipt", "c": "S/MIME Commitment Type Identifiers", "w": false }, + "1.2.840.113549.1.9.16.6.3": { "d": "proofOfDelivery", "c": "S/MIME Commitment Type Identifiers", "w": false }, + "1.2.840.113549.1.9.16.6.4": { "d": "proofOfSender", "c": "S/MIME Commitment Type Identifiers", "w": false }, + "1.2.840.113549.1.9.16.6.5": { "d": "proofOfApproval", "c": "S/MIME Commitment Type Identifiers", "w": false }, + "1.2.840.113549.1.9.16.6.6": { "d": "proofOfCreation", "c": "S/MIME Commitment Type Identifiers", "w": false }, + "1.2.840.113549.1.9.16.8.1": { "d": "glUseKEK", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.2": { "d": "glDelete", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.3": { "d": "glAddMember", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.4": { "d": "glDeleteMember", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.5": { "d": "glRekey", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.6": { "d": "glAddOwner", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.7": { "d": "glRemoveOwner", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.8": { "d": "glkCompromise", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.9": { "d": "glkRefresh", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.10": { "d": "glFailInfo", "c": "S/MIME Symmetric Key Distribution Attributes. Obsolete", "w": true }, + "1.2.840.113549.1.9.16.8.11": { "d": "glaQueryRequest", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.12": { "d": "glaQueryResponse", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.13": { "d": "glProvideCert", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.14": { "d": "glUpdateCert", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.8.15": { "d": "glKey", "c": "S/MIME Symmetric Key Distribution Attributes", "w": false }, + "1.2.840.113549.1.9.16.9": { "d": "signatureTypeIdentifier", "c": "S/MIME", "w": false }, + "1.2.840.113549.1.9.16.9.1": { "d": "originatorSig", "c": "S/MIME Signature Type Identifier", "w": false }, + "1.2.840.113549.1.9.16.9.2": { "d": "domainSig", "c": "S/MIME Signature Type Identifier", "w": false }, + "1.2.840.113549.1.9.16.9.3": { "d": "additionalAttributesSig", "c": "S/MIME Signature Type Identifier", "w": false }, + "1.2.840.113549.1.9.16.9.4": { "d": "reviewSig", "c": "S/MIME Signature Type Identifier", "w": false }, + "1.2.840.113549.1.9.16.11": { "d": "capabilities", "c": "S/MIME", "w": false }, + "1.2.840.113549.1.9.16.11.1": { "d": "preferBinaryInside", "c": "S/MIME Capability", "w": false }, + "1.2.840.113549.1.9.20": { "d": "friendlyName (for PKCS #12)", "c": "PKCS #9 via PKCS #12", "w": false }, + "1.2.840.113549.1.9.21": { "d": "localKeyID (for PKCS #12)", "c": "PKCS #9 via PKCS #12", "w": false }, + "1.2.840.113549.1.9.22": { "d": "certTypes (for PKCS #12)", "c": "PKCS #9 via PKCS #12", "w": false }, + "1.2.840.113549.1.9.22.1": { "d": "x509Certificate (for PKCS #12)", "c": "PKCS #9 via PKCS #12", "w": false }, + "1.2.840.113549.1.9.22.2": { "d": "sdsiCertificate (for PKCS #12)", "c": "PKCS #9 via PKCS #12", "w": false }, + "1.2.840.113549.1.9.23": { "d": "crlTypes (for PKCS #12)", "c": "PKCS #9 via PKCS #12", "w": false }, + "1.2.840.113549.1.9.23.1": { "d": "x509Crl (for PKCS #12)", "c": "PKCS #9 via PKCS #12", "w": false }, + "1.2.840.113549.1.9.24": { "d": "pkcs9objectClass", "c": "PKCS #9/RFC 2985", "w": false }, + "1.2.840.113549.1.9.25": { "d": "pkcs9attributes", "c": "PKCS #9/RFC 2985", "w": false }, + "1.2.840.113549.1.9.25.1": { "d": "pkcs15Token", "c": "PKCS #9/RFC 2985 attribute", "w": false }, + "1.2.840.113549.1.9.25.2": { "d": "encryptedPrivateKeyInfo", "c": "PKCS #9/RFC 2985 attribute", "w": false }, + "1.2.840.113549.1.9.25.3": { "d": "randomNonce", "c": "PKCS #9/RFC 2985 attribute", "w": false }, + "1.2.840.113549.1.9.25.4": { "d": "sequenceNumber", "c": "PKCS #9/RFC 2985 attribute", "w": false }, + "1.2.840.113549.1.9.25.5": { "d": "pkcs7PDU", "c": "PKCS #9/RFC 2985 attribute", "w": false }, + "1.2.840.113549.1.9.26": { "d": "pkcs9syntax", "c": "PKCS #9/RFC 2985", "w": false }, + "1.2.840.113549.1.9.27": { "d": "pkcs9matchingRules", "c": "PKCS #9/RFC 2985", "w": false }, + "1.2.840.113549.1.12": { "d": "pkcs-12", "c": "", "w": false }, + "1.2.840.113549.1.12.1": { "d": "pkcs-12-PbeIds", "c": "This OID was formerly assigned as PKCS #12 modeID", "w": false }, + "1.2.840.113549.1.12.1.1": { "d": "pbeWithSHAAnd128BitRC4", "c": "PKCS #12 PbeIds. This OID was formerly assigned as pkcs-12-OfflineTransportMode", "w": false }, + "1.2.840.113549.1.12.1.2": { "d": "pbeWithSHAAnd40BitRC4", "c": "PKCS #12 PbeIds. This OID was formerly assigned as pkcs-12-OnlineTransportMode", "w": false }, + "1.2.840.113549.1.12.1.3": { "d": "pbeWithSHAAnd3-KeyTripleDES-CBC", "c": "PKCS #12 PbeIds", "w": false }, + "1.2.840.113549.1.12.1.4": { "d": "pbeWithSHAAnd2-KeyTripleDES-CBC", "c": "PKCS #12 PbeIds", "w": false }, + "1.2.840.113549.1.12.1.5": { "d": "pbeWithSHAAnd128BitRC2-CBC", "c": "PKCS #12 PbeIds", "w": false }, + "1.2.840.113549.1.12.1.6": { "d": "pbeWithSHAAnd40BitRC2-CBC", "c": "PKCS #12 PbeIds", "w": false }, + "1.2.840.113549.1.12.2": { "d": "pkcs-12-ESPVKID", "c": "Deprecated", "w": true }, + "1.2.840.113549.1.12.2.1": { "d": "pkcs-12-PKCS8KeyShrouding", "c": "PKCS #12 ESPVKID. Deprecated, use (1 2 840 113549 1 12 3 5) instead", "w": true }, + "1.2.840.113549.1.12.3": { "d": "pkcs-12-BagIds", "c": "", "w": false }, + "1.2.840.113549.1.12.3.1": { "d": "pkcs-12-keyBagId", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.3.2": { "d": "pkcs-12-certAndCRLBagId", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.3.3": { "d": "pkcs-12-secretBagId", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.3.4": { "d": "pkcs-12-safeContentsId", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.3.5": { "d": "pkcs-12-pkcs-8ShroudedKeyBagId", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.4": { "d": "pkcs-12-CertBagID", "c": "Deprecated", "w": true }, + "1.2.840.113549.1.12.4.1": { "d": "pkcs-12-X509CertCRLBagID", "c": "PKCS #12 CertBagID. This OID was formerly assigned as pkcs-12-X509CertCRLBag", "w": false }, + "1.2.840.113549.1.12.4.2": { "d": "pkcs-12-SDSICertBagID", "c": "PKCS #12 CertBagID. This OID was formerly assigned as pkcs-12-SDSICertBag", "w": false }, + "1.2.840.113549.1.12.5": { "d": "pkcs-12-OID", "c": "", "w": true }, + "1.2.840.113549.1.12.5.1": { "d": "pkcs-12-PBEID", "c": "PKCS #12 OID. Deprecated, use the partially compatible (1 2 840 113549 1 12 1) OIDs instead", "w": true }, + "1.2.840.113549.1.12.5.1.1": { "d": "pkcs-12-PBEWithSha1And128BitRC4", "c": "PKCS #12 OID PBEID. Deprecated, use (1 2 840 113549 1 12 1 1) instead", "w": true }, + "1.2.840.113549.1.12.5.1.2": { "d": "pkcs-12-PBEWithSha1And40BitRC4", "c": "PKCS #12 OID PBEID. Deprecated, use (1 2 840 113549 1 12 1 2) instead", "w": true }, + "1.2.840.113549.1.12.5.1.3": { "d": "pkcs-12-PBEWithSha1AndTripleDESCBC", "c": "PKCS #12 OID PBEID. Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 3) or (1 2 840 113549 1 12 1 4) instead", "w": true }, + "1.2.840.113549.1.12.5.1.4": { "d": "pkcs-12-PBEWithSha1And128BitRC2CBC", "c": "PKCS #12 OID PBEID. Deprecated, use (1 2 840 113549 1 12 1 5) instead", "w": true }, + "1.2.840.113549.1.12.5.1.5": { "d": "pkcs-12-PBEWithSha1And40BitRC2CBC", "c": "PKCS #12 OID PBEID. Deprecated, use (1 2 840 113549 1 12 1 6) instead", "w": true }, + "1.2.840.113549.1.12.5.1.6": { "d": "pkcs-12-PBEWithSha1AndRC4", "c": "PKCS #12 OID PBEID. Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 1) or (1 2 840 113549 1 12 1 2) instead", "w": true }, + "1.2.840.113549.1.12.5.1.7": { "d": "pkcs-12-PBEWithSha1AndRC2CBC", "c": "PKCS #12 OID PBEID. Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 5) or (1 2 840 113549 1 12 1 6) instead", "w": true }, + "1.2.840.113549.1.12.5.2": { "d": "pkcs-12-EnvelopingID", "c": "PKCS #12 OID. Deprecated, use the conventional PKCS #1 OIDs instead", "w": false }, + "1.2.840.113549.1.12.5.2.1": { "d": "pkcs-12-RSAEncryptionWith128BitRC4", "c": "PKCS #12 OID EnvelopingID. Deprecated, use the conventional PKCS #1 OIDs instead", "w": true }, + "1.2.840.113549.1.12.5.2.2": { "d": "pkcs-12-RSAEncryptionWith40BitRC4", "c": "PKCS #12 OID EnvelopingID. Deprecated, use the conventional PKCS #1 OIDs instead", "w": true }, + "1.2.840.113549.1.12.5.2.3": { "d": "pkcs-12-RSAEncryptionWithTripleDES", "c": "PKCS #12 OID EnvelopingID. Deprecated, use the conventional PKCS #1 OIDs instead", "w": true }, + "1.2.840.113549.1.12.5.3": { "d": "pkcs-12-SignatureID", "c": "PKCS #12 OID EnvelopingID. Deprecated, use the conventional PKCS #1 OIDs instead", "w": true }, + "1.2.840.113549.1.12.5.3.1": { "d": "pkcs-12-RSASignatureWithSHA1Digest", "c": "PKCS #12 OID SignatureID. Deprecated, use the conventional PKCS #1 OIDs instead", "w": true }, + "1.2.840.113549.1.12.10": { "d": "pkcs-12Version1", "c": "", "w": false }, + "1.2.840.113549.1.12.10.1": { "d": "pkcs-12BadIds", "c": "", "w": false }, + "1.2.840.113549.1.12.10.1.1": { "d": "pkcs-12-keyBag", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.10.1.2": { "d": "pkcs-12-pkcs-8ShroudedKeyBag", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.10.1.3": { "d": "pkcs-12-certBag", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.10.1.4": { "d": "pkcs-12-crlBag", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.10.1.5": { "d": "pkcs-12-secretBag", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.12.10.1.6": { "d": "pkcs-12-safeContentsBag", "c": "PKCS #12 BagIds", "w": false }, + "1.2.840.113549.1.15.1": { "d": "pkcs15modules", "c": "PKCS #15", "w": false }, + "1.2.840.113549.1.15.2": { "d": "pkcs15attributes", "c": "PKCS #15", "w": false }, + "1.2.840.113549.1.15.3": { "d": "pkcs15contentType", "c": "PKCS #15", "w": false }, + "1.2.840.113549.1.15.3.1": { "d": "pkcs15content", "c": "PKCS #15 content type", "w": false }, + "1.2.840.113549.2": { "d": "digestAlgorithm", "c": "", "w": false }, + "1.2.840.113549.2.2": { "d": "md2", "c": "RSADSI digestAlgorithm", "w": false }, + "1.2.840.113549.2.4": { "d": "md4", "c": "RSADSI digestAlgorithm", "w": false }, + "1.2.840.113549.2.5": { "d": "md5", "c": "RSADSI digestAlgorithm", "w": false }, + "1.2.840.113549.2.7": { "d": "hmacWithSHA1", "c": "RSADSI digestAlgorithm", "w": false }, + "1.2.840.113549.2.8": { "d": "hmacWithSHA224", "c": "RSADSI digestAlgorithm", "w": false }, + "1.2.840.113549.2.9": { "d": "hmacWithSHA256", "c": "RSADSI digestAlgorithm", "w": false }, + "1.2.840.113549.2.10": { "d": "hmacWithSHA384", "c": "RSADSI digestAlgorithm", "w": false }, + "1.2.840.113549.2.11": { "d": "hmacWithSHA512", "c": "RSADSI digestAlgorithm", "w": false }, + "1.2.840.113549.3": { "d": "encryptionAlgorithm", "c": "", "w": false }, + "1.2.840.113549.3.2": { "d": "rc2CBC", "c": "RSADSI encryptionAlgorithm", "w": false }, + "1.2.840.113549.3.3": { "d": "rc2ECB", "c": "RSADSI encryptionAlgorithm", "w": false }, + "1.2.840.113549.3.4": { "d": "rc4", "c": "RSADSI encryptionAlgorithm", "w": false }, + "1.2.840.113549.3.5": { "d": "rc4WithMAC", "c": "RSADSI encryptionAlgorithm", "w": false }, + "1.2.840.113549.3.6": { "d": "desx-CBC", "c": "RSADSI encryptionAlgorithm", "w": false }, + "1.2.840.113549.3.7": { "d": "des-EDE3-CBC", "c": "RSADSI encryptionAlgorithm", "w": false }, + "1.2.840.113549.3.8": { "d": "rc5CBC", "c": "RSADSI encryptionAlgorithm", "w": false }, + "1.2.840.113549.3.9": { "d": "rc5-CBCPad", "c": "RSADSI encryptionAlgorithm", "w": false }, + "1.2.840.113549.3.10": { "d": "desCDMF", "c": "RSADSI encryptionAlgorithm. Formerly called CDMFCBCPad", "w": false }, + "1.2.840.114021.1.6.1": { "d": "Identrus unknown policyIdentifier", "c": "Identrus", "w": false }, + "1.2.840.114021.4.1": { "d": "identrusOCSP", "c": "Identrus", "w": false }, + "1.2.840.113556.1.2.241": { "d": "deliveryMechanism", "c": "Microsoft Exchange Server - attribute", "w": false }, + "1.2.840.113556.1.3.0": { "d": "site-Addressing", "c": "Microsoft Exchange Server - object class", "w": false }, + "1.2.840.113556.1.3.13": { "d": "classSchema", "c": "Microsoft Exchange Server - object class", "w": false }, + "1.2.840.113556.1.3.14": { "d": "attributeSchema", "c": "Microsoft Exchange Server - object class", "w": false }, + "1.2.840.113556.1.3.17": { "d": "mailbox-Agent", "c": "Microsoft Exchange Server - object class", "w": false }, + "1.2.840.113556.1.3.22": { "d": "mailbox", "c": "Microsoft Exchange Server - object class", "w": false }, + "1.2.840.113556.1.3.23": { "d": "container", "c": "Microsoft Exchange Server - object class", "w": false }, + "1.2.840.113556.1.3.46": { "d": "mailRecipient", "c": "Microsoft Exchange Server - object class", "w": false }, + "1.2.840.113556.1.2.281": { "d": "ntSecurityDescriptor", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.145": { "d": "revision", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1327": { "d": "pKIDefaultKeySpec", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1328": { "d": "pKIKeyUsage", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1329": { "d": "pKIMaxIssuingDepth", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1330": { "d": "pKICriticalExtensions", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1331": { "d": "pKIExpirationPeriod", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1332": { "d": "pKIOverlapPeriod", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1333": { "d": "pKIExtendedKeyUsage", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1334": { "d": "pKIDefaultCSPs", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1335": { "d": "pKIEnrollmentAccess", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1429": { "d": "msPKI-RA-Signature", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1430": { "d": "msPKI-Enrollment-Flag", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1431": { "d": "msPKI-Private-Key-Flag", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1432": { "d": "msPKI-Certificate-Name-Flag", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1433": { "d": "msPKI-Minimal-Key-Size", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1434": { "d": "msPKI-Template-Schema-Version", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1435": { "d": "msPKI-Template-Minor-Revision", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1436": { "d": "msPKI-Cert-Template-OID", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1437": { "d": "msPKI-Supersede-Templates", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1438": { "d": "msPKI-RA-Policies", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1439": { "d": "msPKI-Certificate-Policy", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1674": { "d": "msPKI-Certificate-Application-Policy", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.1.4.1675": { "d": "msPKI-RA-Application-Policies", "c": "Microsoft Cert Template - attribute", "w": false }, + "1.2.840.113556.4.3": { "d": "microsoftExcel", "c": "Microsoft", "w": false }, + "1.2.840.113556.4.4": { "d": "titledWithOID", "c": "Microsoft", "w": false }, + "1.2.840.113556.4.5": { "d": "microsoftPowerPoint", "c": "Microsoft", "w": false }, + "1.2.840.113628.114.1.7": { "d": "adobePKCS7", "c": "Adobe", "w": false }, + "1.2.840.113635.100": { "d": "appleDataSecurity", "c": "Apple", "w": false }, + "1.2.840.113635.100.1": { "d": "appleTrustPolicy", "c": "Apple", "w": false }, + "1.2.840.113635.100.1.1": { "d": "appleISignTP", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.2": { "d": "appleX509Basic", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.3": { "d": "appleSSLPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.4": { "d": "appleLocalCertGenPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.5": { "d": "appleCSRGenPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.6": { "d": "appleCRLPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.7": { "d": "appleOCSPPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.8": { "d": "appleSMIMEPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.9": { "d": "appleEAPPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.10": { "d": "appleSWUpdateSigningPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.11": { "d": "appleIPSecPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.12": { "d": "appleIChatPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.13": { "d": "appleResourceSignPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.14": { "d": "applePKINITClientPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.15": { "d": "applePKINITServerPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.16": { "d": "appleCodeSigningPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.1.17": { "d": "applePackageSigningPolicy", "c": "Apple trust policy", "w": false }, + "1.2.840.113635.100.2": { "d": "appleSecurityAlgorithm", "c": "Apple", "w": false }, + "1.2.840.113635.100.2.1": { "d": "appleFEE", "c": "Apple security algorithm", "w": false }, + "1.2.840.113635.100.2.2": { "d": "appleASC", "c": "Apple security algorithm", "w": false }, + "1.2.840.113635.100.2.3": { "d": "appleFEE_MD5", "c": "Apple security algorithm", "w": false }, + "1.2.840.113635.100.2.4": { "d": "appleFEE_SHA1", "c": "Apple security algorithm", "w": false }, + "1.2.840.113635.100.2.5": { "d": "appleFEED", "c": "Apple security algorithm", "w": false }, + "1.2.840.113635.100.2.6": { "d": "appleFEEDEXP", "c": "Apple security algorithm", "w": false }, + "1.2.840.113635.100.2.7": { "d": "appleECDSA", "c": "Apple security algorithm", "w": false }, + "1.2.840.113635.100.3": { "d": "appleDotMacCertificate", "c": "Apple", "w": false }, + "1.2.840.113635.100.3.1": { "d": "appleDotMacCertificateRequest", "c": "Apple dotMac certificate", "w": false }, + "1.2.840.113635.100.3.2": { "d": "appleDotMacCertificateExtension", "c": "Apple dotMac certificate", "w": false }, + "1.2.840.113635.100.3.3": { "d": "appleDotMacCertificateRequestValues", "c": "Apple dotMac certificate", "w": false }, + "1.2.840.113635.100.4": { "d": "appleExtendedKeyUsage", "c": "Apple", "w": false }, + "1.2.840.113635.100.4.1": { "d": "appleCodeSigning", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.1.1": { "d": "appleCodeSigningDevelopment", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.1.2": { "d": "appleSoftwareUpdateSigning", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.1.3": { "d": "appleCodeSigningThirdParty", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.1.4": { "d": "appleResourceSigning", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.2": { "d": "appleIChatSigning", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.3": { "d": "appleIChatEncryption", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.4": { "d": "appleSystemIdentity", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.5": { "d": "appleCryptoEnv", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.5.1": { "d": "appleCryptoProductionEnv", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.5.2": { "d": "appleCryptoMaintenanceEnv", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.5.3": { "d": "appleCryptoTestEnv", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.5.4": { "d": "appleCryptoDevelopmentEnv", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.6": { "d": "appleCryptoQoS", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.6.1": { "d": "appleCryptoTier0QoS", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.6.2": { "d": "appleCryptoTier1QoS", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.6.3": { "d": "appleCryptoTier2QoS", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.4.6.4": { "d": "appleCryptoTier3QoS", "c": "Apple extended key usage", "w": false }, + "1.2.840.113635.100.5": { "d": "appleCertificatePolicies", "c": "Apple", "w": false }, + "1.2.840.113635.100.5.1": { "d": "appleCertificatePolicyID", "c": "Apple", "w": false }, + "1.2.840.113635.100.5.2": { "d": "appleDotMacCertificatePolicyID", "c": "Apple", "w": false }, + "1.2.840.113635.100.5.3": { "d": "appleADCCertificatePolicyID", "c": "Apple", "w": false }, + "1.2.840.113635.100.6": { "d": "appleCertificateExtensions", "c": "Apple", "w": false }, + "1.2.840.113635.100.6.1": { "d": "appleCertificateExtensionCodeSigning", "c": "Apple certificate extension", "w": false }, + "1.2.840.113635.100.6.1.1": { "d": "appleCertificateExtensionAppleSigning", "c": "Apple certificate extension", "w": false }, + "1.2.840.113635.100.6.1.2": { "d": "appleCertificateExtensionADCDeveloperSigning", "c": "Apple certificate extension", "w": false }, + "1.2.840.113635.100.6.1.3": { "d": "appleCertificateExtensionADCAppleSigning", "c": "Apple certificate extension", "w": false }, + "1.3.6.1.4.1.311.2.1.4": { "d": "spcIndirectDataContext", "c": "Microsoft code signing", "w": false }, + "1.3.6.1.4.1.311.2.1.10": { "d": "spcAgencyInfo", "c": "Microsoft code signing. Also known as policyLink", "w": false }, + "1.3.6.1.4.1.311.2.1.11": { "d": "spcStatementType", "c": "Microsoft code signing", "w": false }, + "1.3.6.1.4.1.311.2.1.12": { "d": "spcSpOpusInfo", "c": "Microsoft code signing", "w": false }, + "1.3.6.1.4.1.311.2.1.14": { "d": "certReqExtensions", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.2.1.15": { "d": "spcPEImageData", "c": "Microsoft code signing", "w": false }, + "1.3.6.1.4.1.311.2.1.18": { "d": "spcRawFileData", "c": "Microsoft code signing", "w": false }, + "1.3.6.1.4.1.311.2.1.19": { "d": "spcStructuredStorageData", "c": "Microsoft code signing", "w": false }, + "1.3.6.1.4.1.311.2.1.20": { "d": "spcJavaClassData (type 1)", "c": "Microsoft code signing. Formerly \"link extension\" aka \"glue extension\"", "w": false }, + "1.3.6.1.4.1.311.2.1.21": { "d": "individualCodeSigning", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.2.1.22": { "d": "commercialCodeSigning", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.2.1.25": { "d": "spcLink (type 2)", "c": "Microsoft code signing. Also known as \"glue extension\"", "w": false }, + "1.3.6.1.4.1.311.2.1.26": { "d": "spcMinimalCriteriaInfo", "c": "Microsoft code signing", "w": false }, + "1.3.6.1.4.1.311.2.1.27": { "d": "spcFinancialCriteriaInfo", "c": "Microsoft code signing", "w": false }, + "1.3.6.1.4.1.311.2.1.28": { "d": "spcLink (type 3)", "c": "Microsoft code signing. Also known as \"glue extension\"", "w": false }, + "1.3.6.1.4.1.311.3.2.1": { "d": "timestampRequest", "c": "Microsoft code signing", "w": false }, + "1.3.6.1.4.1.311.10.1": { "d": "certTrustList", "c": "Microsoft contentType", "w": false }, + "1.3.6.1.4.1.311.10.1.1": { "d": "sortedCtl", "c": "Microsoft contentType", "w": false }, + "1.3.6.1.4.1.311.10.2": { "d": "nextUpdateLocation", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.10.3.1": { "d": "certTrustListSigning", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.2": { "d": "timeStampSigning", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.3": { "d": "serverGatedCrypto", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.3.1": { "d": "serialized", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.10.3.4": { "d": "encryptedFileSystem", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.5": { "d": "whqlCrypto", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.6": { "d": "nt5Crypto", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.7": { "d": "oemWHQLCrypto", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.8": { "d": "embeddedNTCrypto", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.9": { "d": "rootListSigner", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.10": { "d": "qualifiedSubordination", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.11": { "d": "keyRecovery", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.12": { "d": "documentSigning", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.13": { "d": "lifetimeSigning", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.14": { "d": "mobileDeviceSoftware", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.15": { "d": "smartDisplay", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.16": { "d": "cspSignature", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.3.4.1": { "d": "efsRecovery", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.4.1": { "d": "yesnoTrustAttr", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.10.5.1": { "d": "drm", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.5.2": { "d": "drmIndividualization", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.6.1": { "d": "licenses", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.6.2": { "d": "licenseServer", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.10.7.1": { "d": "keyidRdn", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.10.8.1": { "d": "removeCertificate", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.10.9.1": { "d": "crossCertDistPoints", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.10.10.1": { "d": "cmcAddAttributes", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.10.11": { "d": "certPropIdPrefix", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.10.11.4": { "d": "certMd5HashPropId", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.10.11.20": { "d": "certKeyIdentifierPropId", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.10.11.28": { "d": "certIssuerSerialNumberMd5HashPropId", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.10.11.29": { "d": "certSubjectNameMd5HashPropId", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.10.12.1": { "d": "anyApplicationPolicy", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.13.1": { "d": "renewalCertificate", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.13.2.1": { "d": "enrolmentNameValuePair", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.13.2.2": { "d": "enrolmentCSP", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.13.2.3": { "d": "osVersion", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.16.4": { "d": "microsoftRecipientInfo", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.17.1": { "d": "pkcs12KeyProviderNameAttr", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.17.2": { "d": "localMachineKeyset", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.17.3": { "d": "pkcs12ExtendedAttributes", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.20.1": { "d": "autoEnrollCtlUsage", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.20.2": { "d": "enrollCerttypeExtension", "c": "Microsoft CAPICOM certificate template, V1", "w": false }, + "1.3.6.1.4.1.311.20.2.1": { "d": "enrollmentAgent", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.20.2.2": { "d": "smartcardLogon", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.20.2.3": { "d": "universalPrincipalName", "c": "Microsoft UPN", "w": false }, + "1.3.6.1.4.1.311.20.3": { "d": "certManifold", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.1": { "d": "cAKeyCertIndexPair", "c": "Microsoft attribute. Also known as certsrvCaVersion", "w": false }, + "1.3.6.1.4.1.311.21.5": { "d": "caExchange", "c": "Microsoft extended key usage", "w": true }, + "1.3.6.1.4.1.311.21.2": { "d": "certSrvPreviousCertHash", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.3": { "d": "crlVirtualBase", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.4": { "d": "crlNextPublish", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.6": { "d": "keyRecovery", "c": "Microsoft extended key usage", "w": true }, + "1.3.6.1.4.1.311.21.7": { "d": "certificateTemplate", "c": "Microsoft CAPICOM certificate template, V2", "w": false }, + "1.3.6.1.4.1.311.21.9": { "d": "rdnDummySigner", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.10": { "d": "applicationCertPolicies", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.11": { "d": "applicationPolicyMappings", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.12": { "d": "applicationPolicyConstraints", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.13": { "d": "archivedKey", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.21.14": { "d": "crlSelfCDP", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.15": { "d": "requireCertChainPolicy", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.16": { "d": "archivedKeyCertHash", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.17": { "d": "issuedCertHash", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.19": { "d": "dsEmailReplication", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.21.20": { "d": "requestClientInfo", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.21.21": { "d": "encryptedKeyHash", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.21.22": { "d": "certsrvCrossCaVersion", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.25.1": { "d": "ntdsReplication", "c": "Microsoft", "w": false }, + "1.3.6.1.4.1.311.31.1": { "d": "productUpdate", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.311.47.1.1": { "d": "systemHealth", "c": "Microsoft extended key usage", "w": false }, + "1.3.6.1.4.1.311.47.1.3": { "d": "systemHealthLoophole", "c": "Microsoft extended key usage", "w": false }, + "1.3.6.1.4.1.311.60.1.1": { "d": "rootProgramFlags", "c": "Microsoft policy attribute", "w": false }, + "1.3.6.1.4.1.311.61.1.1": { "d": "kernelModeCodeSigning", "c": "Microsoft enhanced key usage", "w": false }, + "1.3.6.1.4.1.311.60.2.1.1": { "d": "jurisdictionOfIncorporationL", "c": "Microsoft (???)", "w": false }, + "1.3.6.1.4.1.311.60.2.1.2": { "d": "jurisdictionOfIncorporationSP", "c": "Microsoft (???)", "w": false }, + "1.3.6.1.4.1.311.60.2.1.3": { "d": "jurisdictionOfIncorporationC", "c": "Microsoft (???)", "w": false }, + "1.3.6.1.4.1.311.88.2.1": { "d": "originalFilename", "c": "Microsoft attribute", "w": false }, + "1.3.6.1.4.1.188.7.1.1": { "d": "ascom", "c": "Ascom Systech", "w": false }, + "1.3.6.1.4.1.188.7.1.1.1": { "d": "ideaECB", "c": "Ascom Systech", "w": false }, + "1.3.6.1.4.1.188.7.1.1.2": { "d": "ideaCBC", "c": "Ascom Systech", "w": false }, + "1.3.6.1.4.1.188.7.1.1.3": { "d": "ideaCFB", "c": "Ascom Systech", "w": false }, + "1.3.6.1.4.1.188.7.1.1.4": { "d": "ideaOFB", "c": "Ascom Systech", "w": false }, + "1.3.6.1.4.1.2428.10.1.1": { "d": "UNINETT policyIdentifier", "c": "UNINETT PCA", "w": false }, + "1.3.6.1.4.1.2712.10": { "d": "ICE-TEL policyIdentifier", "c": "ICE-TEL CA", "w": false }, + "1.3.6.1.4.1.2786.1.1.1": { "d": "ICE-TEL Italian policyIdentifier", "c": "ICE-TEL CA policy", "w": false }, + "1.3.6.1.4.1.3029.1.1.1": { "d": "blowfishECB", "c": "cryptlib encryption algorithm", "w": false }, + "1.3.6.1.4.1.3029.1.1.2": { "d": "blowfishCBC", "c": "cryptlib encryption algorithm", "w": false }, + "1.3.6.1.4.1.3029.1.1.3": { "d": "blowfishCFB", "c": "cryptlib encryption algorithm", "w": false }, + "1.3.6.1.4.1.3029.1.1.4": { "d": "blowfishOFB", "c": "cryptlib encryption algorithm", "w": false }, + "1.3.6.1.4.1.3029.1.2.1": { "d": "elgamal", "c": "cryptlib public-key algorithm", "w": false }, + "1.3.6.1.4.1.3029.1.2.1.1": { "d": "elgamalWithSHA-1", "c": "cryptlib public-key algorithm", "w": false }, + "1.3.6.1.4.1.3029.1.2.1.2": { "d": "elgamalWithRIPEMD-160", "c": "cryptlib public-key algorithm", "w": false }, + "1.3.6.1.4.1.3029.3.1.1": { "d": "cryptlibPresenceCheck", "c": "cryptlib attribute type", "w": false }, + "1.3.6.1.4.1.3029.3.1.2": { "d": "pkiBoot", "c": "cryptlib attribute type", "w": false }, + "1.3.6.1.4.1.3029.3.1.4": { "d": "crlExtReason", "c": "cryptlib attribute type", "w": false }, + "1.3.6.1.4.1.3029.3.1.5": { "d": "keyFeatures", "c": "cryptlib attribute type", "w": false }, + "1.3.6.1.4.1.3029.4.1": { "d": "cryptlibContent", "c": "cryptlib", "w": false }, + "1.3.6.1.4.1.3029.4.1.1": { "d": "cryptlibConfigData", "c": "cryptlib content type", "w": false }, + "1.3.6.1.4.1.3029.4.1.2": { "d": "cryptlibUserIndex", "c": "cryptlib content type", "w": false }, + "1.3.6.1.4.1.3029.4.1.3": { "d": "cryptlibUserInfo", "c": "cryptlib content type", "w": false }, + "1.3.6.1.4.1.3029.4.1.4": { "d": "rtcsRequest", "c": "cryptlib content type", "w": false }, + "1.3.6.1.4.1.3029.4.1.5": { "d": "rtcsResponse", "c": "cryptlib content type", "w": false }, + "1.3.6.1.4.1.3029.4.1.6": { "d": "rtcsResponseExt", "c": "cryptlib content type", "w": false }, + "1.3.6.1.4.1.3029.42.11172.1": { "d": "mpeg-1", "c": "cryptlib special MPEG-of-cat OID", "w": false }, + "1.3.6.1.4.1.3029.54.11940.54": { "d": "TSA policy \"Anything that arrives, we sign\"", "c": "cryptlib TSA policy", "w": false }, + "1.3.6.1.4.1.3029.88.89.90.90.89": { "d": "xYZZY policyIdentifier", "c": "cryptlib certificate policy", "w": false }, + "1.3.6.1.4.1.3401.8.1.1": { "d": "pgpExtension", "c": "PGP key information", "w": false }, + "1.3.6.1.4.1.3576.7": { "d": "eciaAscX12Edi", "c": "TMN EDI for Interactive Agents", "w": false }, + "1.3.6.1.4.1.3576.7.1": { "d": "plainEDImessage", "c": "TMN EDI for Interactive Agents", "w": false }, + "1.3.6.1.4.1.3576.7.2": { "d": "signedEDImessage", "c": "TMN EDI for Interactive Agents", "w": false }, + "1.3.6.1.4.1.3576.7.5": { "d": "integrityEDImessage", "c": "TMN EDI for Interactive Agents", "w": false }, + "1.3.6.1.4.1.3576.7.65": { "d": "iaReceiptMessage", "c": "TMN EDI for Interactive Agents", "w": false }, + "1.3.6.1.4.1.3576.7.97": { "d": "iaStatusMessage", "c": "TMN EDI for Interactive Agents", "w": false }, + "1.3.6.1.4.1.3576.8": { "d": "eciaEdifact", "c": "TMN EDI for Interactive Agents", "w": false }, + "1.3.6.1.4.1.3576.9": { "d": "eciaNonEdi", "c": "TMN EDI for Interactive Agents", "w": false }, + "1.3.6.1.4.1.4146": { "d": "Globalsign", "c": "Globalsign", "w": false }, + "1.3.6.1.4.1.4146.1": { "d": "globalsignPolicy", "c": "Globalsign", "w": false }, + "1.3.6.1.4.1.4146.1.10": { "d": "globalsignDVPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.20": { "d": "globalsignOVPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.30": { "d": "globalsignTSAPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.40": { "d": "globalsignClientCertPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.50": { "d": "globalsignCodeSignPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.60": { "d": "globalsignRootSignPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.70": { "d": "globalsignTrustedRootPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.80": { "d": "globalsignEDIClientPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.81": { "d": "globalsignEDIServerPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.90": { "d": "globalsignTPMRootPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.4146.1.95": { "d": "globalsignOCSPPolicy", "c": "Globalsign policy", "w": false }, + "1.3.6.1.4.1.5309.1": { "d": "edelWebPolicy", "c": "EdelWeb policy", "w": false }, + "1.3.6.1.4.1.5309.1.2": { "d": "edelWebCustomerPolicy", "c": "EdelWeb policy", "w": false }, + "1.3.6.1.4.1.5309.1.2.1": { "d": "edelWebClepsydrePolicy", "c": "EdelWeb policy", "w": false }, + "1.3.6.1.4.1.5309.1.2.2": { "d": "edelWebExperimentalTSAPolicy", "c": "EdelWeb policy", "w": false }, + "1.3.6.1.4.1.5309.1.2.3": { "d": "edelWebOpenEvidenceTSAPolicy", "c": "EdelWeb policy", "w": false }, + "1.3.6.1.4.1.5472": { "d": "timeproof", "c": "enterprise", "w": false }, + "1.3.6.1.4.1.5472.1": { "d": "tss", "c": "timeproof", "w": false }, + "1.3.6.1.4.1.5472.1.1": { "d": "tss80", "c": "timeproof TSS", "w": false }, + "1.3.6.1.4.1.5472.1.2": { "d": "tss380", "c": "timeproof TSS", "w": false }, + "1.3.6.1.4.1.5472.1.3": { "d": "tss400", "c": "timeproof TSS", "w": false }, + "1.3.6.1.4.1.5770.0.3": { "d": "secondaryPractices", "c": "MEDePass", "w": false }, + "1.3.6.1.4.1.5770.0.4": { "d": "physicianIdentifiers", "c": "MEDePass", "w": false }, + "1.3.6.1.4.1.6449.1.2.1.3.1": { "d": "comodoPolicy", "c": "Comodo CA", "w": false }, + "1.3.6.1.4.1.6449.1.2.2.15": { "d": "wotrustPolicy", "c": "WoTrust (Comodo) CA", "w": false }, + "1.3.6.1.4.1.6449.1.3.5.2": { "d": "comodoCertifiedDeliveryService", "c": "Comodo CA", "w": false }, + "1.3.6.1.4.1.6449.2.1.1": { "d": "comodoTimestampingPolicy", "c": "Comodo CA", "w": false }, + "1.3.6.1.4.1.8301.3.5.1": { "d": "validityModelChain", "c": "TU Darmstadt ValidityModel", "w": false }, + "1.3.6.1.4.1.8301.3.5.2": { "d": "validityModelShell", "c": "ValidityModel", "w": false }, + "1.3.6.1.4.1.8231.1": { "d": "rolUnicoNacional", "c": "Chilean Government national unique roll number", "w": false }, + "1.3.6.1.4.1.11591": { "d": "gnu", "c": "GNU Project (see http://www.gnupg.org/oids.html)", "w": false }, + "1.3.6.1.4.1.11591.1": { "d": "gnuRadius", "c": "GNU Radius", "w": false }, + "1.3.6.1.4.1.11591.3": { "d": "gnuRadar", "c": "GNU Radar", "w": false }, + "1.3.6.1.4.1.11591.12": { "d": "gnuDigestAlgorithm", "c": "GNU digest algorithm", "w": false }, + "1.3.6.1.4.1.11591.12.2": { "d": "tiger", "c": "GNU digest algorithm", "w": false }, + "1.3.6.1.4.1.11591.13": { "d": "gnuEncryptionAlgorithm", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2": { "d": "serpent", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.1": { "d": "serpent128_ECB", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.2": { "d": "serpent128_CBC", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.3": { "d": "serpent128_OFB", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.4": { "d": "serpent128_CFB", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.21": { "d": "serpent192_ECB", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.22": { "d": "serpent192_CBC", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.23": { "d": "serpent192_OFB", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.24": { "d": "serpent192_CFB", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.41": { "d": "serpent256_ECB", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.42": { "d": "serpent256_CBC", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.43": { "d": "serpent256_OFB", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.11591.13.2.44": { "d": "serpent256_CFB", "c": "GNU encryption algorithm", "w": false }, + "1.3.6.1.4.1.16334.509.1.1": { "d": "Northrop Grumman extKeyUsage?", "c": "Northrop Grumman extended key usage", "w": false }, + "1.3.6.1.4.1.16334.509.2.1": { "d": "ngcClass1", "c": "Northrop Grumman policy", "w": false }, + "1.3.6.1.4.1.16334.509.2.2": { "d": "ngcClass2", "c": "Northrop Grumman policy", "w": false }, + "1.3.6.1.4.1.16334.509.2.3": { "d": "ngcClass3", "c": "Northrop Grumman policy", "w": false }, + "1.3.6.1.5.5.7": { "d": "pkix", "c": "", "w": false }, + "1.3.6.1.5.5.7.0.12": { "d": "attributeCert", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.1": { "d": "privateExtension", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.1.1": { "d": "authorityInfoAccess", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.2": { "d": "biometricInfo", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.3": { "d": "qcStatements", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.4": { "d": "acAuditIdentity", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.5": { "d": "acTargeting", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.6": { "d": "acAaControls", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.7": { "d": "ipAddrBlocks", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.8": { "d": "autonomousSysIds", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.9": { "d": "routerIdentifier", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.10": { "d": "acProxying", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.11": { "d": "subjectInfoAccess", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.12": { "d": "logoType", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.1.13": { "d": "wlanSSID", "c": "PKIX private extension", "w": false }, + "1.3.6.1.5.5.7.2": { "d": "policyQualifierIds", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.2.1": { "d": "cps", "c": "PKIX policy qualifier", "w": false }, + "1.3.6.1.5.5.7.2.2": { "d": "unotice", "c": "PKIX policy qualifier", "w": false }, + "1.3.6.1.5.5.7.2.3": { "d": "textNotice", "c": "PKIX policy qualifier", "w": false }, + "1.3.6.1.5.5.7.3": { "d": "keyPurpose", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.3.1": { "d": "serverAuth", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.2": { "d": "clientAuth", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.3": { "d": "codeSigning", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.4": { "d": "emailProtection", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.5": { "d": "ipsecEndSystem", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.6": { "d": "ipsecTunnel", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.7": { "d": "ipsecUser", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.8": { "d": "timeStamping", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.9": { "d": "ocspSigning", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.10": { "d": "dvcs", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.11": { "d": "sbgpCertAAServerAuth", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.13": { "d": "eapOverPPP", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.3.14": { "d": "eapOverLAN", "c": "PKIX key purpose", "w": false }, + "1.3.6.1.5.5.7.4": { "d": "cmpInformationTypes", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.4.1": { "d": "caProtEncCert", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.2": { "d": "signKeyPairTypes", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.3": { "d": "encKeyPairTypes", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.4": { "d": "preferredSymmAlg", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.5": { "d": "caKeyUpdateInfo", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.6": { "d": "currentCRL", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.7": { "d": "unsupportedOIDs", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.10": { "d": "keyPairParamReq", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.11": { "d": "keyPairParamRep", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.12": { "d": "revPassphrase", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.13": { "d": "implicitConfirm", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.14": { "d": "confirmWaitTime", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.15": { "d": "origPKIMessage", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.4.16": { "d": "suppLangTags", "c": "PKIX CMP information", "w": false }, + "1.3.6.1.5.5.7.5": { "d": "crmfRegistration", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.5.1": { "d": "regCtrl", "c": "PKIX CRMF registration", "w": false }, + "1.3.6.1.5.5.7.5.1.1": { "d": "regToken", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.5.1.2": { "d": "authenticator", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.5.1.3": { "d": "pkiPublicationInfo", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.5.1.4": { "d": "pkiArchiveOptions", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.5.1.5": { "d": "oldCertID", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.5.1.6": { "d": "protocolEncrKey", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.5.1.7": { "d": "altCertTemplate", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.5.1.8": { "d": "wtlsTemplate", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.5.2": { "d": "utf8Pairs", "c": "PKIX CRMF registration", "w": false }, + "1.3.6.1.5.5.7.5.2.1": { "d": "utf8Pairs", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.5.2.2": { "d": "certReq", "c": "PKIX CRMF registration control", "w": false }, + "1.3.6.1.5.5.7.6": { "d": "algorithms", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.6.1": { "d": "des40", "c": "PKIX algorithm", "w": false }, + "1.3.6.1.5.5.7.6.2": { "d": "noSignature", "c": "PKIX algorithm", "w": false }, + "1.3.6.1.5.5.7.6.3": { "d": "dh-sig-hmac-sha1", "c": "PKIX algorithm", "w": false }, + "1.3.6.1.5.5.7.6.4": { "d": "dh-pop", "c": "PKIX algorithm", "w": false }, + "1.3.6.1.5.5.7.7": { "d": "cmcControls", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.8": { "d": "otherNames", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.8.1": { "d": "personalData", "c": "PKIX other name", "w": false }, + "1.3.6.1.5.5.7.8.2": { "d": "userGroup", "c": "PKIX other name", "w": false }, + "1.3.6.1.5.5.7.8.5": { "d": "xmppAddr", "c": "PKIX other name", "w": false }, + "1.3.6.1.5.5.7.9": { "d": "personalData", "c": "PKIX qualified certificates", "w": false }, + "1.3.6.1.5.5.7.9.1": { "d": "dateOfBirth", "c": "PKIX personal data", "w": false }, + "1.3.6.1.5.5.7.9.2": { "d": "placeOfBirth", "c": "PKIX personal data", "w": false }, + "1.3.6.1.5.5.7.9.3": { "d": "gender", "c": "PKIX personal data", "w": false }, + "1.3.6.1.5.5.7.9.4": { "d": "countryOfCitizenship", "c": "PKIX personal data", "w": false }, + "1.3.6.1.5.5.7.9.5": { "d": "countryOfResidence", "c": "PKIX personal data", "w": false }, + "1.3.6.1.5.5.7.10": { "d": "attributeCertificate", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.10.1": { "d": "authenticationInfo", "c": "PKIX attribute certificate extension", "w": false }, + "1.3.6.1.5.5.7.10.2": { "d": "accessIdentity", "c": "PKIX attribute certificate extension", "w": false }, + "1.3.6.1.5.5.7.10.3": { "d": "chargingIdentity", "c": "PKIX attribute certificate extension", "w": false }, + "1.3.6.1.5.5.7.10.4": { "d": "group", "c": "PKIX attribute certificate extension", "w": false }, + "1.3.6.1.5.5.7.10.5": { "d": "role", "c": "PKIX attribute certificate extension", "w": false }, + "1.3.6.1.5.5.7.10.6": { "d": "wlanSSID", "c": "PKIX attribute-certificate extension", "w": false }, + "1.3.6.1.5.5.7.11": { "d": "personalData", "c": "PKIX qualified certificates", "w": false }, + "1.3.6.1.5.5.7.11.1": { "d": "pkixQCSyntax-v1", "c": "PKIX qualified certificates", "w": false }, + "1.3.6.1.5.5.7.14.2": { "d": "resourceCertificatePolicy", "c": "PKIX policies", "w": false }, + "1.3.6.1.5.5.7.20": { "d": "logo", "c": "PKIX qualified certificates", "w": false }, + "1.3.6.1.5.5.7.20.1": { "d": "logoLoyalty", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.20.2": { "d": "logoBackground", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.48.1": { "d": "ocsp", "c": "PKIX", "w": false }, + "1.3.6.1.5.5.7.48.1.1": { "d": "ocspBasic", "c": "OCSP", "w": false }, + "1.3.6.1.5.5.7.48.1.2": { "d": "ocspNonce", "c": "OCSP", "w": false }, + "1.3.6.1.5.5.7.48.1.3": { "d": "ocspCRL", "c": "OCSP", "w": false }, + "1.3.6.1.5.5.7.48.1.4": { "d": "ocspResponse", "c": "OCSP", "w": false }, + "1.3.6.1.5.5.7.48.1.5": { "d": "ocspNoCheck", "c": "OCSP", "w": false }, + "1.3.6.1.5.5.7.48.1.6": { "d": "ocspArchiveCutoff", "c": "OCSP", "w": false }, + "1.3.6.1.5.5.7.48.1.7": { "d": "ocspServiceLocator", "c": "OCSP", "w": false }, + "1.3.6.1.5.5.7.48.2": { "d": "caIssuers", "c": "PKIX subject/authority info access descriptor", "w": false }, + "1.3.6.1.5.5.7.48.3": { "d": "timeStamping", "c": "PKIX subject/authority info access descriptor", "w": false }, + "1.3.6.1.5.5.7.48.4": { "d": "dvcs", "c": "PKIX subject/authority info access descriptor", "w": false }, + "1.3.6.1.5.5.7.48.5": { "d": "caRepository", "c": "PKIX subject/authority info access descriptor", "w": false }, + "1.3.6.1.5.5.7.48.7": { "d": "signedObjectRepository", "c": "PKIX subject/authority info access descriptor", "w": false }, + "1.3.6.1.5.5.7.48.10": { "d": "rpkiManifest", "c": "PKIX subject/authority info access descriptor", "w": false }, + "1.3.6.1.5.5.7.48.11": { "d": "signedObject", "c": "PKIX subject/authority info access descriptor", "w": false }, + "1.3.6.1.5.5.8.1.1": { "d": "hmacMD5", "c": "ISAKMP HMAC algorithm", "w": false }, + "1.3.6.1.5.5.8.1.2": { "d": "hmacSHA", "c": "ISAKMP HMAC algorithm", "w": false }, + "1.3.6.1.5.5.8.1.3": { "d": "hmacTiger", "c": "ISAKMP HMAC algorithm", "w": false }, + "1.3.6.1.5.5.8.2.2": { "d": "iKEIntermediate", "c": "IKE ???", "w": false }, + "1.3.12.2.1011.7.1": { "d": "decEncryptionAlgorithm", "c": "DASS algorithm", "w": false }, + "1.3.12.2.1011.7.1.2": { "d": "decDEA", "c": "DASS encryption algorithm", "w": false }, + "1.3.12.2.1011.7.2": { "d": "decHashAlgorithm", "c": "DASS algorithm", "w": false }, + "1.3.12.2.1011.7.2.1": { "d": "decMD2", "c": "DASS hash algorithm", "w": false }, + "1.3.12.2.1011.7.2.2": { "d": "decMD4", "c": "DASS hash algorithm", "w": false }, + "1.3.12.2.1011.7.3": { "d": "decSignatureAlgorithm", "c": "DASS algorithm", "w": false }, + "1.3.12.2.1011.7.3.1": { "d": "decMD2withRSA", "c": "DASS signature algorithm", "w": false }, + "1.3.12.2.1011.7.3.2": { "d": "decMD4withRSA", "c": "DASS signature algorithm", "w": false }, + "1.3.12.2.1011.7.3.3": { "d": "decDEAMAC", "c": "DASS signature algorithm", "w": false }, + "1.3.14.2.26.5": { "d": "sha", "c": "Unsure about this OID", "w": false }, + "1.3.14.3.2.1.1": { "d": "rsa", "c": "X.509. Unsure about this OID", "w": false }, + "1.3.14.3.2.2": { "d": "md4WitRSA", "c": "Oddball OIW OID", "w": false }, + "1.3.14.3.2.3": { "d": "md5WithRSA", "c": "Oddball OIW OID", "w": false }, + "1.3.14.3.2.4": { "d": "md4WithRSAEncryption", "c": "Oddball OIW OID", "w": false }, + "1.3.14.3.2.2.1": { "d": "sqmod-N", "c": "X.509. Deprecated", "w": true }, + "1.3.14.3.2.3.1": { "d": "sqmod-NwithRSA", "c": "X.509. Deprecated", "w": true }, + "1.3.14.3.2.6": { "d": "desECB", "c": "", "w": false }, + "1.3.14.3.2.7": { "d": "desCBC", "c": "", "w": false }, + "1.3.14.3.2.8": { "d": "desOFB", "c": "", "w": false }, + "1.3.14.3.2.9": { "d": "desCFB", "c": "", "w": false }, + "1.3.14.3.2.10": { "d": "desMAC", "c": "", "w": false }, + "1.3.14.3.2.11": { "d": "rsaSignature", "c": "ISO 9796-2, also X9.31 Part 1", "w": false }, + "1.3.14.3.2.12": { "d": "dsa", "c": "OIW?, supposedly from an incomplete version of SDN.701 (doesn't match final SDN.701)", "w": true }, + "1.3.14.3.2.13": { "d": "dsaWithSHA", "c": "Oddball OIW OID. Incorrectly used by JDK 1.1 in place of (1 3 14 3 2 27)", "w": true }, + "1.3.14.3.2.14": { "d": "mdc2WithRSASignature", "c": "Oddball OIW OID using 9796-2 padding rules", "w": false }, + "1.3.14.3.2.15": { "d": "shaWithRSASignature", "c": "Oddball OIW OID using 9796-2 padding rules", "w": false }, + "1.3.14.3.2.16": { "d": "dhWithCommonModulus", "c": "Oddball OIW OID. Deprecated, use a plain DH OID instead", "w": true }, + "1.3.14.3.2.17": { "d": "desEDE", "c": "Oddball OIW OID. Mode is ECB", "w": false }, + "1.3.14.3.2.18": { "d": "sha", "c": "Oddball OIW OID", "w": false }, + "1.3.14.3.2.19": { "d": "mdc-2", "c": "Oddball OIW OID, DES-based hash, planned for X9.31 Part 2", "w": false }, + "1.3.14.3.2.20": { "d": "dsaCommon", "c": "Oddball OIW OID. Deprecated, use a plain DSA OID instead", "w": true }, + "1.3.14.3.2.21": { "d": "dsaCommonWithSHA", "c": "Oddball OIW OID. Deprecated, use a plain dsaWithSHA OID instead", "w": true }, + "1.3.14.3.2.22": { "d": "rsaKeyTransport", "c": "Oddball OIW OID", "w": false }, + "1.3.14.3.2.23": { "d": "keyed-hash-seal", "c": "Oddball OIW OID", "w": false }, + "1.3.14.3.2.24": { "d": "md2WithRSASignature", "c": "Oddball OIW OID using 9796-2 padding rules", "w": false }, + "1.3.14.3.2.25": { "d": "md5WithRSASignature", "c": "Oddball OIW OID using 9796-2 padding rules", "w": false }, + "1.3.14.3.2.26": { "d": "sha1", "c": "OIW", "w": false }, + "1.3.14.3.2.27": { "d": "dsaWithSHA1", "c": "OIW. This OID may also be assigned as ripemd-160", "w": false }, + "1.3.14.3.2.28": { "d": "dsaWithCommonSHA1", "c": "OIW", "w": false }, + "1.3.14.3.2.29": { "d": "sha-1WithRSAEncryption", "c": "Oddball OIW OID", "w": false }, + "1.3.14.3.3.1": { "d": "simple-strong-auth-mechanism", "c": "Oddball OIW OID", "w": false }, + "1.3.14.7.2.1.1": { "d": "ElGamal", "c": "Unsure about this OID", "w": false }, + "1.3.14.7.2.3.1": { "d": "md2WithRSA", "c": "Unsure about this OID", "w": false }, + "1.3.14.7.2.3.2": { "d": "md2WithElGamal", "c": "Unsure about this OID", "w": false }, + "1.3.36.1": { "d": "document", "c": "Teletrust document", "w": false }, + "1.3.36.1.1": { "d": "finalVersion", "c": "Teletrust document", "w": false }, + "1.3.36.1.2": { "d": "draft", "c": "Teletrust document", "w": false }, + "1.3.36.2": { "d": "sio", "c": "Teletrust sio", "w": false }, + "1.3.36.2.1": { "d": "sedu", "c": "Teletrust sio", "w": false }, + "1.3.36.3": { "d": "algorithm", "c": "Teletrust algorithm", "w": false }, + "1.3.36.3.1": { "d": "encryptionAlgorithm", "c": "Teletrust algorithm", "w": false }, + "1.3.36.3.1.1": { "d": "des", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.1.1": { "d": "desECB_pad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.1.1.1": { "d": "desECB_ISOpad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.1.2.1": { "d": "desCBC_pad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.1.2.1.1": { "d": "desCBC_ISOpad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.3": { "d": "des_3", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.3.1.1": { "d": "des_3ECB_pad", "c": "Teletrust encryption algorithm. EDE triple DES", "w": false }, + "1.3.36.3.1.3.1.1.1": { "d": "des_3ECB_ISOpad", "c": "Teletrust encryption algorithm. EDE triple DES", "w": false }, + "1.3.36.3.1.3.2.1": { "d": "des_3CBC_pad", "c": "Teletrust encryption algorithm. EDE triple DES", "w": false }, + "1.3.36.3.1.3.2.1.1": { "d": "des_3CBC_ISOpad", "c": "Teletrust encryption algorithm. EDE triple DES", "w": false }, + "1.3.36.3.1.2": { "d": "idea", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.2.1": { "d": "ideaECB", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.2.1.1": { "d": "ideaECB_pad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.2.1.1.1": { "d": "ideaECB_ISOpad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.2.2": { "d": "ideaCBC", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.2.2.1": { "d": "ideaCBC_pad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.2.2.1.1": { "d": "ideaCBC_ISOpad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.2.3": { "d": "ideaOFB", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.2.4": { "d": "ideaCFB", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.4": { "d": "rsaEncryption", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.4.512.17": { "d": "rsaEncryptionWithlmod512expe17", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.5": { "d": "bsi-1", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.5.1": { "d": "bsi_1ECB_pad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.5.2": { "d": "bsi_1CBC_pad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.1.5.2.1": { "d": "bsi_1CBC_PEMpad", "c": "Teletrust encryption algorithm", "w": false }, + "1.3.36.3.2": { "d": "hashAlgorithm", "c": "Teletrust algorithm", "w": false }, + "1.3.36.3.2.1": { "d": "ripemd160", "c": "Teletrust hash algorithm", "w": false }, + "1.3.36.3.2.2": { "d": "ripemd128", "c": "Teletrust hash algorithm", "w": false }, + "1.3.36.3.2.3": { "d": "ripemd256", "c": "Teletrust hash algorithm", "w": false }, + "1.3.36.3.2.4": { "d": "mdc2singleLength", "c": "Teletrust hash algorithm", "w": false }, + "1.3.36.3.2.5": { "d": "mdc2doubleLength", "c": "Teletrust hash algorithm", "w": false }, + "1.3.36.3.3": { "d": "signatureAlgorithm", "c": "Teletrust algorithm", "w": false }, + "1.3.36.3.3.1": { "d": "rsaSignature", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.1.1": { "d": "rsaSignatureWithsha1", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.1.1.1024.11": { "d": "rsaSignatureWithsha1_l1024_l11", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.1.2": { "d": "rsaSignatureWithripemd160", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.1.2.1024.11": { "d": "rsaSignatureWithripemd160_l1024_l11", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.1.3": { "d": "rsaSignatureWithrimpemd128", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.1.4": { "d": "rsaSignatureWithrimpemd256", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.2": { "d": "ecsieSign", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.2.1": { "d": "ecsieSignWithsha1", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.2.2": { "d": "ecsieSignWithripemd160", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.2.3": { "d": "ecsieSignWithmd2", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.2.4": { "d": "ecsieSignWithmd5", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.3.3.2.8.1.1.1": { "d": "brainpoolP160r1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.2": { "d": "brainpoolP160t1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.3": { "d": "brainpoolP192r1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.4": { "d": "brainpoolP192t1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.5": { "d": "brainpoolP224r1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.6": { "d": "brainpoolP224t1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.7": { "d": "brainpoolP256r1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.8": { "d": "brainpoolP256t1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.9": { "d": "brainpoolP320r1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.10": { "d": "brainpoolP320t1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.11": { "d": "brainpoolP384r1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.12": { "d": "brainpoolP384t1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.13": { "d": "brainpoolP512r1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.3.2.8.1.1.14": { "d": "brainpoolP512t1", "c": "ECC Brainpool Standard Curves and Curve Generation", "w": false }, + "1.3.36.3.4": { "d": "signatureScheme", "c": "Teletrust algorithm", "w": false }, + "1.3.36.3.4.1": { "d": "sigS_ISO9796-1", "c": "Teletrust signature scheme", "w": false }, + "1.3.36.3.4.2": { "d": "sigS_ISO9796-2", "c": "Teletrust signature scheme", "w": false }, + "1.3.36.3.4.2.1": { "d": "sigS_ISO9796-2Withred", "c": "Teletrust signature scheme. Unsure what this is supposed to be", "w": false }, + "1.3.36.3.4.2.2": { "d": "sigS_ISO9796-2Withrsa", "c": "Teletrust signature scheme. Unsure what this is supposed to be", "w": false }, + "1.3.36.3.4.2.3": { "d": "sigS_ISO9796-2Withrnd", "c": "Teletrust signature scheme. 9796-2 with random number in padding field", "w": false }, + "1.3.36.4": { "d": "attribute", "c": "Teletrust attribute", "w": false }, + "1.3.36.5": { "d": "policy", "c": "Teletrust policy", "w": false }, + "1.3.36.6": { "d": "api", "c": "Teletrust API", "w": false }, + "1.3.36.6.1": { "d": "manufacturer-specific_api", "c": "Teletrust API", "w": false }, + "1.3.36.6.1.1": { "d": "utimaco-api", "c": "Teletrust API", "w": false }, + "1.3.36.6.2": { "d": "functionality-specific_api", "c": "Teletrust API", "w": false }, + "1.3.36.7": { "d": "keymgmnt", "c": "Teletrust key management", "w": false }, + "1.3.36.7.1": { "d": "keyagree", "c": "Teletrust key management", "w": false }, + "1.3.36.7.1.1": { "d": "bsiPKE", "c": "Teletrust key management", "w": false }, + "1.3.36.7.2": { "d": "keytrans", "c": "Teletrust key management", "w": false }, + "1.3.36.7.2.1": { "d": "encISO9796-2Withrsa", "c": "Teletrust key management. 9796-2 with key stored in hash field", "w": false }, + "1.3.36.8.1.1": { "d": "Teletrust SigGConform policyIdentifier", "c": "Teletrust policy", "w": false }, + "1.3.36.8.2.1": { "d": "directoryService", "c": "Teletrust extended key usage", "w": false }, + "1.3.36.8.3.1": { "d": "dateOfCertGen", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.2": { "d": "procuration", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.3": { "d": "admission", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.4": { "d": "monetaryLimit", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.5": { "d": "declarationOfMajority", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.6": { "d": "integratedCircuitCardSerialNumber", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.7": { "d": "pKReference", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.8": { "d": "restriction", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.9": { "d": "retrieveIfAllowed", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.10": { "d": "requestedCertificate", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.11": { "d": "namingAuthorities", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.11.1": { "d": "rechtWirtschaftSteuern", "c": "Teletrust naming authorities", "w": false }, + "1.3.36.8.3.11.1.1": { "d": "rechtsanwaeltin", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.2": { "d": "rechtsanwalt", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.3": { "d": "rechtsBeistand", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.4": { "d": "steuerBeraterin", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.5": { "d": "steuerBerater", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.6": { "d": "steuerBevollmaechtigte", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.7": { "d": "steuerBevollmaechtigter", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.8": { "d": "notarin", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.9": { "d": "notar", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.10": { "d": "notarVertreterin", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.11": { "d": "notarVertreter", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.12": { "d": "notariatsVerwalterin", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.13": { "d": "notariatsVerwalter", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.14": { "d": "wirtschaftsPrueferin", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.15": { "d": "wirtschaftsPruefer", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.16": { "d": "vereidigteBuchprueferin", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.17": { "d": "vereidigterBuchpruefer", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.18": { "d": "patentAnwaeltin", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.11.1.19": { "d": "patentAnwalt", "c": "Teletrust ProfessionInfo", "w": false }, + "1.3.36.8.3.12": { "d": "certInDirSince", "c": "Teletrust OCSP attribute (obsolete)", "w": true }, + "1.3.36.8.3.13": { "d": "certHash", "c": "Teletrust OCSP attribute", "w": false }, + "1.3.36.8.3.14": { "d": "nameAtBirth", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.3.15": { "d": "additionalInformation", "c": "Teletrust attribute", "w": false }, + "1.3.36.8.4.1": { "d": "personalData", "c": "Teletrust OtherName attribute", "w": false }, + "1.3.36.8.4.8": { "d": "restriction", "c": "Teletrust attribute certificate attribute", "w": false }, + "1.3.36.8.5.1.1.1": { "d": "rsaIndicateSHA1", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.8.5.1.1.2": { "d": "rsaIndicateRIPEMD160", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.8.5.1.1.3": { "d": "rsaWithSHA1", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.8.5.1.1.4": { "d": "rsaWithRIPEMD160", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.8.5.1.2.1": { "d": "dsaExtended", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.8.5.1.2.2": { "d": "dsaWithRIPEMD160", "c": "Teletrust signature algorithm", "w": false }, + "1.3.36.8.6.1": { "d": "cert", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.6.2": { "d": "certRef", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.6.3": { "d": "attrCert", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.6.4": { "d": "attrRef", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.6.5": { "d": "fileName", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.6.6": { "d": "storageTime", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.6.7": { "d": "fileSize", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.6.8": { "d": "location", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.6.9": { "d": "sigNumber", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.6.10": { "d": "autoGen", "c": "Teletrust signature attributes", "w": false }, + "1.3.36.8.7.1.1": { "d": "ptAdobeILL", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.2": { "d": "ptAmiPro", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.3": { "d": "ptAutoCAD", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.4": { "d": "ptBinary", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.5": { "d": "ptBMP", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.6": { "d": "ptCGM", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.7": { "d": "ptCorelCRT", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.8": { "d": "ptCorelDRW", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.9": { "d": "ptCorelEXC", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.10": { "d": "ptCorelPHT", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.11": { "d": "ptDraw", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.12": { "d": "ptDVI", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.13": { "d": "ptEPS", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.14": { "d": "ptExcel", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.15": { "d": "ptGEM", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.16": { "d": "ptGIF", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.17": { "d": "ptHPGL", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.18": { "d": "ptJPEG", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.19": { "d": "ptKodak", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.20": { "d": "ptLaTeX", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.21": { "d": "ptLotus", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.22": { "d": "ptLotusPIC", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.23": { "d": "ptMacPICT", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.24": { "d": "ptMacWord", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.25": { "d": "ptMSWfD", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.26": { "d": "ptMSWord", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.27": { "d": "ptMSWord2", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.28": { "d": "ptMSWord6", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.29": { "d": "ptMSWord8", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.30": { "d": "ptPDF", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.31": { "d": "ptPIF", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.32": { "d": "ptPostscript", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.33": { "d": "ptRTF", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.34": { "d": "ptSCITEX", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.35": { "d": "ptTAR", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.36": { "d": "ptTarga", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.37": { "d": "ptTeX", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.38": { "d": "ptText", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.39": { "d": "ptTIFF", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.40": { "d": "ptTIFF-FC", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.41": { "d": "ptUID", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.42": { "d": "ptUUEncode", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.43": { "d": "ptWMF", "c": "Teletrust presentation types", "w": false }, + "1.3.36.8.7.1.45": { "d": "ptWPGrph", "c": "Teletrust presentation types", "w": false }, + "1.3.101.1.4": { "d": "thawte-ce", "c": "Thawte", "w": false }, + "1.3.101.1.4.1": { "d": "strongExtranet", "c": "Thawte certificate extension", "w": false }, + "1.3.132.0.1": { "d": "sect163k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.2": { "d": "sect163r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.3": { "d": "sect239k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.4": { "d": "sect113r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.5": { "d": "sect113r2", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.6": { "d": "secp112r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.7": { "d": "secp112r2", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.8": { "d": "secp160r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.9": { "d": "secp160k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.10": { "d": "secp256k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.15": { "d": "sect163r2", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.16": { "d": "sect283k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.17": { "d": "sect283r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.22": { "d": "sect131r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.23": { "d": "sect131r2", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.24": { "d": "sect193r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.25": { "d": "sect193r2", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.26": { "d": "sect233k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.27": { "d": "sect233r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.28": { "d": "secp128r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.29": { "d": "secp128r2", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.30": { "d": "secp160r2", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.31": { "d": "secp192k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.32": { "d": "secp224k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.33": { "d": "secp224r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.34": { "d": "secp384r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.35": { "d": "secp521r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.36": { "d": "sect409k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.37": { "d": "sect409r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.38": { "d": "sect571k1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "1.3.132.0.39": { "d": "sect571r1", "c": "SECG (Certicom) named elliptic curve", "w": false }, + "2.5.4.0": { "d": "objectClass", "c": "X.520 DN component", "w": false }, + "2.5.4.1": { "d": "aliasedEntryName", "c": "X.520 DN component", "w": false }, + "2.5.4.2": { "d": "knowledgeInformation", "c": "X.520 DN component", "w": false }, + "2.5.4.3": { "d": "commonName", "c": "X.520 DN component", "w": false }, + "2.5.4.4": { "d": "surname", "c": "X.520 DN component", "w": false }, + "2.5.4.5": { "d": "serialNumber", "c": "X.520 DN component", "w": false }, + "2.5.4.6": { "d": "countryName", "c": "X.520 DN component", "w": false }, + "2.5.4.7": { "d": "localityName", "c": "X.520 DN component", "w": false }, + "2.5.4.7.1": { "d": "collectiveLocalityName", "c": "X.520 DN component", "w": false }, + "2.5.4.8": { "d": "stateOrProvinceName", "c": "X.520 DN component", "w": false }, + "2.5.4.8.1": { "d": "collectiveStateOrProvinceName", "c": "X.520 DN component", "w": false }, + "2.5.4.9": { "d": "streetAddress", "c": "X.520 DN component", "w": false }, + "2.5.4.9.1": { "d": "collectiveStreetAddress", "c": "X.520 DN component", "w": false }, + "2.5.4.10": { "d": "organizationName", "c": "X.520 DN component", "w": false }, + "2.5.4.10.1": { "d": "collectiveOrganizationName", "c": "X.520 DN component", "w": false }, + "2.5.4.11": { "d": "organizationalUnitName", "c": "X.520 DN component", "w": false }, + "2.5.4.11.1": { "d": "collectiveOrganizationalUnitName", "c": "X.520 DN component", "w": false }, + "2.5.4.12": { "d": "title", "c": "X.520 DN component", "w": false }, + "2.5.4.13": { "d": "description", "c": "X.520 DN component", "w": false }, + "2.5.4.14": { "d": "searchGuide", "c": "X.520 DN component", "w": false }, + "2.5.4.15": { "d": "businessCategory", "c": "X.520 DN component", "w": false }, + "2.5.4.16": { "d": "postalAddress", "c": "X.520 DN component", "w": false }, + "2.5.4.16.1": { "d": "collectivePostalAddress", "c": "X.520 DN component", "w": false }, + "2.5.4.17": { "d": "postalCode", "c": "X.520 DN component", "w": false }, + "2.5.4.17.1": { "d": "collectivePostalCode", "c": "X.520 DN component", "w": false }, + "2.5.4.18": { "d": "postOfficeBox", "c": "X.520 DN component", "w": false }, + "2.5.4.18.1": { "d": "collectivePostOfficeBox", "c": "X.520 DN component", "w": false }, + "2.5.4.19": { "d": "physicalDeliveryOfficeName", "c": "X.520 DN component", "w": false }, + "2.5.4.19.1": { "d": "collectivePhysicalDeliveryOfficeName", "c": "X.520 DN component", "w": false }, + "2.5.4.20": { "d": "telephoneNumber", "c": "X.520 DN component", "w": false }, + "2.5.4.20.1": { "d": "collectiveTelephoneNumber", "c": "X.520 DN component", "w": false }, + "2.5.4.21": { "d": "telexNumber", "c": "X.520 DN component", "w": false }, + "2.5.4.21.1": { "d": "collectiveTelexNumber", "c": "X.520 DN component", "w": false }, + "2.5.4.22": { "d": "teletexTerminalIdentifier", "c": "X.520 DN component", "w": false }, + "2.5.4.22.1": { "d": "collectiveTeletexTerminalIdentifier", "c": "X.520 DN component", "w": false }, + "2.5.4.23": { "d": "facsimileTelephoneNumber", "c": "X.520 DN component", "w": false }, + "2.5.4.23.1": { "d": "collectiveFacsimileTelephoneNumber", "c": "X.520 DN component", "w": false }, + "2.5.4.24": { "d": "x121Address", "c": "X.520 DN component", "w": false }, + "2.5.4.25": { "d": "internationalISDNNumber", "c": "X.520 DN component", "w": false }, + "2.5.4.25.1": { "d": "collectiveInternationalISDNNumber", "c": "X.520 DN component", "w": false }, + "2.5.4.26": { "d": "registeredAddress", "c": "X.520 DN component", "w": false }, + "2.5.4.27": { "d": "destinationIndicator", "c": "X.520 DN component", "w": false }, + "2.5.4.28": { "d": "preferredDeliveryMehtod", "c": "X.520 DN component", "w": false }, + "2.5.4.29": { "d": "presentationAddress", "c": "X.520 DN component", "w": false }, + "2.5.4.30": { "d": "supportedApplicationContext", "c": "X.520 DN component", "w": false }, + "2.5.4.31": { "d": "member", "c": "X.520 DN component", "w": false }, + "2.5.4.32": { "d": "owner", "c": "X.520 DN component", "w": false }, + "2.5.4.33": { "d": "roleOccupant", "c": "X.520 DN component", "w": false }, + "2.5.4.34": { "d": "seeAlso", "c": "X.520 DN component", "w": false }, + "2.5.4.35": { "d": "userPassword", "c": "X.520 DN component", "w": false }, + "2.5.4.36": { "d": "userCertificate", "c": "X.520 DN component", "w": false }, + "2.5.4.37": { "d": "caCertificate", "c": "X.520 DN component", "w": false }, + "2.5.4.38": { "d": "authorityRevocationList", "c": "X.520 DN component", "w": false }, + "2.5.4.39": { "d": "certificateRevocationList", "c": "X.520 DN component", "w": false }, + "2.5.4.40": { "d": "crossCertificatePair", "c": "X.520 DN component", "w": false }, + "2.5.4.41": { "d": "name", "c": "X.520 DN component", "w": false }, + "2.5.4.42": { "d": "givenName", "c": "X.520 DN component", "w": false }, + "2.5.4.43": { "d": "initials", "c": "X.520 DN component", "w": false }, + "2.5.4.44": { "d": "generationQualifier", "c": "X.520 DN component", "w": false }, + "2.5.4.45": { "d": "uniqueIdentifier", "c": "X.520 DN component", "w": false }, + "2.5.4.46": { "d": "dnQualifier", "c": "X.520 DN component", "w": false }, + "2.5.4.47": { "d": "enhancedSearchGuide", "c": "X.520 DN component", "w": false }, + "2.5.4.48": { "d": "protocolInformation", "c": "X.520 DN component", "w": false }, + "2.5.4.49": { "d": "distinguishedName", "c": "X.520 DN component", "w": false }, + "2.5.4.50": { "d": "uniqueMember", "c": "X.520 DN component", "w": false }, + "2.5.4.51": { "d": "houseIdentifier", "c": "X.520 DN component", "w": false }, + "2.5.4.52": { "d": "supportedAlgorithms", "c": "X.520 DN component", "w": false }, + "2.5.4.53": { "d": "deltaRevocationList", "c": "X.520 DN component", "w": false }, + "2.5.4.54": { "d": "dmdName", "c": "X.520 DN component", "w": false }, + "2.5.4.55": { "d": "clearance", "c": "X.520 DN component", "w": false }, + "2.5.4.56": { "d": "defaultDirQop", "c": "X.520 DN component", "w": false }, + "2.5.4.57": { "d": "attributeIntegrityInfo", "c": "X.520 DN component", "w": false }, + "2.5.4.58": { "d": "attributeCertificate", "c": "X.520 DN component", "w": false }, + "2.5.4.59": { "d": "attributeCertificateRevocationList", "c": "X.520 DN component", "w": false }, + "2.5.4.60": { "d": "confKeyInfo", "c": "X.520 DN component", "w": false }, + "2.5.4.61": { "d": "aACertificate", "c": "X.520 DN component", "w": false }, + "2.5.4.62": { "d": "attributeDescriptorCertificate", "c": "X.520 DN component", "w": false }, + "2.5.4.63": { "d": "attributeAuthorityRevocationList", "c": "X.520 DN component", "w": false }, + "2.5.4.64": { "d": "familyInformation", "c": "X.520 DN component", "w": false }, + "2.5.4.65": { "d": "pseudonym", "c": "X.520 DN component", "w": false }, + "2.5.4.66": { "d": "communicationsService", "c": "X.520 DN component", "w": false }, + "2.5.4.67": { "d": "communicationsNetwork", "c": "X.520 DN component", "w": false }, + "2.5.4.68": { "d": "certificationPracticeStmt", "c": "X.520 DN component", "w": false }, + "2.5.4.69": { "d": "certificatePolicy", "c": "X.520 DN component", "w": false }, + "2.5.4.70": { "d": "pkiPath", "c": "X.520 DN component", "w": false }, + "2.5.4.71": { "d": "privPolicy", "c": "X.520 DN component", "w": false }, + "2.5.4.72": { "d": "role", "c": "X.520 DN component", "w": false }, + "2.5.4.73": { "d": "delegationPath", "c": "X.520 DN component", "w": false }, + "2.5.4.74": { "d": "protPrivPolicy", "c": "X.520 DN component", "w": false }, + "2.5.4.75": { "d": "xMLPrivilegeInfo", "c": "X.520 DN component", "w": false }, + "2.5.4.76": { "d": "xmlPrivPolicy", "c": "X.520 DN component", "w": false }, + "2.5.4.82": { "d": "permission", "c": "X.520 DN component", "w": false }, + "2.5.6.0": { "d": "top", "c": "X.520 objectClass", "w": false }, + "2.5.6.1": { "d": "alias", "c": "X.520 objectClass", "w": false }, + "2.5.6.2": { "d": "country", "c": "X.520 objectClass", "w": false }, + "2.5.6.3": { "d": "locality", "c": "X.520 objectClass", "w": false }, + "2.5.6.4": { "d": "organization", "c": "X.520 objectClass", "w": false }, + "2.5.6.5": { "d": "organizationalUnit", "c": "X.520 objectClass", "w": false }, + "2.5.6.6": { "d": "person", "c": "X.520 objectClass", "w": false }, + "2.5.6.7": { "d": "organizationalPerson", "c": "X.520 objectClass", "w": false }, + "2.5.6.8": { "d": "organizationalRole", "c": "X.520 objectClass", "w": false }, + "2.5.6.9": { "d": "groupOfNames", "c": "X.520 objectClass", "w": false }, + "2.5.6.10": { "d": "residentialPerson", "c": "X.520 objectClass", "w": false }, + "2.5.6.11": { "d": "applicationProcess", "c": "X.520 objectClass", "w": false }, + "2.5.6.12": { "d": "applicationEntity", "c": "X.520 objectClass", "w": false }, + "2.5.6.13": { "d": "dSA", "c": "X.520 objectClass", "w": false }, + "2.5.6.14": { "d": "device", "c": "X.520 objectClass", "w": false }, + "2.5.6.15": { "d": "strongAuthenticationUser", "c": "X.520 objectClass", "w": false }, + "2.5.6.16": { "d": "certificateAuthority", "c": "X.520 objectClass", "w": false }, + "2.5.6.17": { "d": "groupOfUniqueNames", "c": "X.520 objectClass", "w": false }, + "2.5.6.21": { "d": "pkiUser", "c": "X.520 objectClass", "w": false }, + "2.5.6.22": { "d": "pkiCA", "c": "X.520 objectClass", "w": false }, + "2.5.8.1.1": { "d": "rsa", "c": "X.500 algorithms. Ambiguous, since no padding rules specified", "w": true }, + "2.5.29.1": { "d": "authorityKeyIdentifier", "c": "X.509 extension. Deprecated, use 2 5 29 35 instead", "w": true }, + "2.5.29.2": { "d": "keyAttributes", "c": "X.509 extension. Obsolete, use keyUsage/extKeyUsage instead", "w": true }, + "2.5.29.3": { "d": "certificatePolicies", "c": "X.509 extension. Deprecated, use 2 5 29 32 instead", "w": true }, + "2.5.29.4": { "d": "keyUsageRestriction", "c": "X.509 extension. Obsolete, use keyUsage/extKeyUsage instead", "w": true }, + "2.5.29.5": { "d": "policyMapping", "c": "X.509 extension. Deprecated, use 2 5 29 33 instead", "w": true }, + "2.5.29.6": { "d": "subtreesConstraint", "c": "X.509 extension. Obsolete, use nameConstraints instead", "w": true }, + "2.5.29.7": { "d": "subjectAltName", "c": "X.509 extension. Deprecated, use 2 5 29 17 instead", "w": true }, + "2.5.29.8": { "d": "issuerAltName", "c": "X.509 extension. Deprecated, use 2 5 29 18 instead", "w": true }, + "2.5.29.9": { "d": "subjectDirectoryAttributes", "c": "X.509 extension", "w": false }, + "2.5.29.10": { "d": "basicConstraints", "c": "X.509 extension. Deprecated, use 2 5 29 19 instead", "w": true }, + "2.5.29.11": { "d": "nameConstraints", "c": "X.509 extension. Deprecated, use 2 5 29 30 instead", "w": true }, + "2.5.29.12": { "d": "policyConstraints", "c": "X.509 extension. Deprecated, use 2 5 29 36 instead", "w": true }, + "2.5.29.13": { "d": "basicConstraints", "c": "X.509 extension. Deprecated, use 2 5 29 19 instead", "w": true }, + "2.5.29.14": { "d": "subjectKeyIdentifier", "c": "X.509 extension", "w": false }, + "2.5.29.15": { "d": "keyUsage", "c": "X.509 extension", "w": false }, + "2.5.29.16": { "d": "privateKeyUsagePeriod", "c": "X.509 extension", "w": false }, + "2.5.29.17": { "d": "subjectAltName", "c": "X.509 extension", "w": false }, + "2.5.29.18": { "d": "issuerAltName", "c": "X.509 extension", "w": false }, + "2.5.29.19": { "d": "basicConstraints", "c": "X.509 extension", "w": false }, + "2.5.29.20": { "d": "cRLNumber", "c": "X.509 extension", "w": false }, + "2.5.29.21": { "d": "cRLReason", "c": "X.509 extension", "w": false }, + "2.5.29.22": { "d": "expirationDate", "c": "X.509 extension. Deprecated, alternative OID uncertain", "w": true }, + "2.5.29.23": { "d": "instructionCode", "c": "X.509 extension", "w": false }, + "2.5.29.24": { "d": "invalidityDate", "c": "X.509 extension", "w": false }, + "2.5.29.25": { "d": "cRLDistributionPoints", "c": "X.509 extension. Deprecated, use 2 5 29 31 instead", "w": true }, + "2.5.29.26": { "d": "issuingDistributionPoint", "c": "X.509 extension. Deprecated, use 2 5 29 28 instead", "w": true }, + "2.5.29.27": { "d": "deltaCRLIndicator", "c": "X.509 extension", "w": false }, + "2.5.29.28": { "d": "issuingDistributionPoint", "c": "X.509 extension", "w": false }, + "2.5.29.29": { "d": "certificateIssuer", "c": "X.509 extension", "w": false }, + "2.5.29.30": { "d": "nameConstraints", "c": "X.509 extension", "w": false }, + "2.5.29.31": { "d": "cRLDistributionPoints", "c": "X.509 extension", "w": false }, + "2.5.29.32": { "d": "certificatePolicies", "c": "X.509 extension", "w": false }, + "2.5.29.32.0": { "d": "anyPolicy", "c": "X.509 certificate policy", "w": false }, + "2.5.29.33": { "d": "policyMappings", "c": "X.509 extension", "w": false }, + "2.5.29.34": { "d": "policyConstraints", "c": "X.509 extension. Deprecated, use 2 5 29 36 instead", "w": true }, + "2.5.29.35": { "d": "authorityKeyIdentifier", "c": "X.509 extension", "w": false }, + "2.5.29.36": { "d": "policyConstraints", "c": "X.509 extension", "w": false }, + "2.5.29.37": { "d": "extKeyUsage", "c": "X.509 extension", "w": false }, + "2.5.29.37.0": { "d": "anyExtendedKeyUsage", "c": "X.509 extended key usage", "w": false }, + "2.5.29.38": { "d": "authorityAttributeIdentifier", "c": "X.509 extension", "w": false }, + "2.5.29.39": { "d": "roleSpecCertIdentifier", "c": "X.509 extension", "w": false }, + "2.5.29.40": { "d": "cRLStreamIdentifier", "c": "X.509 extension", "w": false }, + "2.5.29.41": { "d": "basicAttConstraints", "c": "X.509 extension", "w": false }, + "2.5.29.42": { "d": "delegatedNameConstraints", "c": "X.509 extension", "w": false }, + "2.5.29.43": { "d": "timeSpecification", "c": "X.509 extension", "w": false }, + "2.5.29.44": { "d": "cRLScope", "c": "X.509 extension", "w": false }, + "2.5.29.45": { "d": "statusReferrals", "c": "X.509 extension", "w": false }, + "2.5.29.46": { "d": "freshestCRL", "c": "X.509 extension", "w": false }, + "2.5.29.47": { "d": "orderedList", "c": "X.509 extension", "w": false }, + "2.5.29.48": { "d": "attributeDescriptor", "c": "X.509 extension", "w": false }, + "2.5.29.49": { "d": "userNotice", "c": "X.509 extension", "w": false }, + "2.5.29.50": { "d": "sOAIdentifier", "c": "X.509 extension", "w": false }, + "2.5.29.51": { "d": "baseUpdateTime", "c": "X.509 extension", "w": false }, + "2.5.29.52": { "d": "acceptableCertPolicies", "c": "X.509 extension", "w": false }, + "2.5.29.53": { "d": "deltaInfo", "c": "X.509 extension", "w": false }, + "2.5.29.54": { "d": "inhibitAnyPolicy", "c": "X.509 extension", "w": false }, + "2.5.29.55": { "d": "targetInformation", "c": "X.509 extension", "w": false }, + "2.5.29.56": { "d": "noRevAvail", "c": "X.509 extension", "w": false }, + "2.5.29.57": { "d": "acceptablePrivilegePolicies", "c": "X.509 extension", "w": false }, + "2.5.29.58": { "d": "toBeRevoked", "c": "X.509 extension", "w": false }, + "2.5.29.59": { "d": "revokedGroups", "c": "X.509 extension", "w": false }, + "2.5.29.60": { "d": "expiredCertsOnCRL", "c": "X.509 extension", "w": false }, + "2.5.29.61": { "d": "indirectIssuer", "c": "X.509 extension", "w": false }, + "2.5.29.62": { "d": "noAssertion", "c": "X.509 extension", "w": false }, + "2.5.29.63": { "d": "aAissuingDistributionPoint", "c": "X.509 extension", "w": false }, + "2.5.29.64": { "d": "issuedOnBehalfOf", "c": "X.509 extension", "w": false }, + "2.5.29.65": { "d": "singleUse", "c": "X.509 extension", "w": false }, + "2.5.29.66": { "d": "groupAC", "c": "X.509 extension", "w": false }, + "2.5.29.67": { "d": "allowedAttAss", "c": "X.509 extension", "w": false }, + "2.5.29.68": { "d": "attributeMappings", "c": "X.509 extension", "w": false }, + "2.5.29.69": { "d": "holderNameConstraints", "c": "X.509 extension", "w": false }, + "2.16.724.1.2.2.4.1": { "d": "personalDataInfo", "c": "Spanish Government PKI?", "w": false }, + "2.16.840.1.101.2.1.1.1": { "d": "sdnsSignatureAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.2": { "d": "fortezzaSignatureAlgorithm", "c": "SDN.700 INFOSEC algorithms. Formerly known as mosaicSignatureAlgorithm, this OID is better known as dsaWithSHA-1.", "w": false }, + "2.16.840.1.101.2.1.1.3": { "d": "sdnsConfidentialityAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.4": { "d": "fortezzaConfidentialityAlgorithm", "c": "SDN.700 INFOSEC algorithms. Formerly known as mosaicConfidentialityAlgorithm", "w": false }, + "2.16.840.1.101.2.1.1.5": { "d": "sdnsIntegrityAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.6": { "d": "fortezzaIntegrityAlgorithm", "c": "SDN.700 INFOSEC algorithms. Formerly known as mosaicIntegrityAlgorithm", "w": false }, + "2.16.840.1.101.2.1.1.7": { "d": "sdnsTokenProtectionAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.8": { "d": "fortezzaTokenProtectionAlgorithm", "c": "SDN.700 INFOSEC algorithms. Formerly know as mosaicTokenProtectionAlgorithm", "w": false }, + "2.16.840.1.101.2.1.1.9": { "d": "sdnsKeyManagementAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.10": { "d": "fortezzaKeyManagementAlgorithm", "c": "SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyManagementAlgorithm", "w": false }, + "2.16.840.1.101.2.1.1.11": { "d": "sdnsKMandSigAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.12": { "d": "fortezzaKMandSigAlgorithm", "c": "SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandSigAlgorithm", "w": false }, + "2.16.840.1.101.2.1.1.13": { "d": "suiteASignatureAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.14": { "d": "suiteAConfidentialityAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.15": { "d": "suiteAIntegrityAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.16": { "d": "suiteATokenProtectionAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.17": { "d": "suiteAKeyManagementAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.18": { "d": "suiteAKMandSigAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.19": { "d": "fortezzaUpdatedSigAlgorithm", "c": "SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedSigAlgorithm", "w": false }, + "2.16.840.1.101.2.1.1.20": { "d": "fortezzaKMandUpdSigAlgorithms", "c": "SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandUpdSigAlgorithms", "w": false }, + "2.16.840.1.101.2.1.1.21": { "d": "fortezzaUpdatedIntegAlgorithm", "c": "SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedIntegAlgorithm", "w": false }, + "2.16.840.1.101.2.1.1.22": { "d": "keyExchangeAlgorithm", "c": "SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyEncryptionAlgorithm", "w": false }, + "2.16.840.1.101.2.1.1.23": { "d": "fortezzaWrap80Algorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.1.24": { "d": "kEAKeyEncryptionAlgorithm", "c": "SDN.700 INFOSEC algorithms", "w": false }, + "2.16.840.1.101.2.1.2.1": { "d": "rfc822MessageFormat", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.2": { "d": "emptyContent", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.3": { "d": "cspContentType", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.42": { "d": "mspRev3ContentType", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.48": { "d": "mspContentType", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.49": { "d": "mspRekeyAgentProtocol", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.50": { "d": "mspMMP", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.66": { "d": "mspRev3-1ContentType", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.72": { "d": "forwardedMSPMessageBodyPart", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.73": { "d": "mspForwardedMessageParameters", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.74": { "d": "forwardedCSPMsgBodyPart", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.75": { "d": "cspForwardedMessageParameters", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.2.76": { "d": "mspMMP2", "c": "SDN.700 INFOSEC format", "w": false }, + "2.16.840.1.101.2.1.3.1": { "d": "sdnsSecurityPolicy", "c": "SDN.700 INFOSEC policy", "w": false }, + "2.16.840.1.101.2.1.3.2": { "d": "sdnsPRBAC", "c": "SDN.700 INFOSEC policy", "w": false }, + "2.16.840.1.101.2.1.3.3": { "d": "mosaicPRBAC", "c": "SDN.700 INFOSEC policy", "w": false }, + "2.16.840.1.101.2.1.3.10": { "d": "siSecurityPolicy", "c": "SDN.700 INFOSEC policy", "w": false }, + "2.16.840.1.101.2.1.3.10.0": { "d": "siNASP", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.1": { "d": "siELCO", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.2": { "d": "siTK", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.3": { "d": "siDSAP", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.4": { "d": "siSSSS", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.5": { "d": "siDNASP", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.6": { "d": "siBYEMAN", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.7": { "d": "siREL-US", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.8": { "d": "siREL-AUS", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.9": { "d": "siREL-CAN", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.10": { "d": "siREL_UK", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.11": { "d": "siREL-NZ", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.10.12": { "d": "siGeneric", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.11": { "d": "genser", "c": "SDN.700 INFOSEC policy", "w": false }, + "2.16.840.1.101.2.1.3.11.0": { "d": "genserNations", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.11.1": { "d": "genserComsec", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.11.2": { "d": "genserAcquisition", "c": "SDN.700 INFOSEC policy (obsolete)", "w": true }, + "2.16.840.1.101.2.1.3.11.3": { "d": "genserSecurityCategories", "c": "SDN.700 INFOSEC policy", "w": false }, + "2.16.840.1.101.2.1.3.11.3.0": { "d": "genserTagSetName", "c": "SDN.700 INFOSEC GENSER policy", "w": false }, + "2.16.840.1.101.2.1.3.12": { "d": "defaultSecurityPolicy", "c": "SDN.700 INFOSEC policy", "w": false }, + "2.16.840.1.101.2.1.3.13": { "d": "capcoMarkings", "c": "SDN.700 INFOSEC policy", "w": false }, + "2.16.840.1.101.2.1.3.13.0": { "d": "capcoSecurityCategories", "c": "SDN.700 INFOSEC policy CAPCO markings", "w": false }, + "2.16.840.1.101.2.1.3.13.0.1": { "d": "capcoTagSetName1", "c": "SDN.700 INFOSEC policy CAPCO markings", "w": false }, + "2.16.840.1.101.2.1.3.13.0.2": { "d": "capcoTagSetName2", "c": "SDN.700 INFOSEC policy CAPCO markings", "w": false }, + "2.16.840.1.101.2.1.3.13.0.3": { "d": "capcoTagSetName3", "c": "SDN.700 INFOSEC policy CAPCO markings", "w": false }, + "2.16.840.1.101.2.1.3.13.0.4": { "d": "capcoTagSetName4", "c": "SDN.700 INFOSEC policy CAPCO markings", "w": false }, + "2.16.840.1.101.2.1.5.1": { "d": "sdnsKeyManagementCertificate", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.2": { "d": "sdnsUserSignatureCertificate", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.3": { "d": "sdnsKMandSigCertificate", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.4": { "d": "fortezzaKeyManagementCertificate", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.5": { "d": "fortezzaKMandSigCertificate", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.6": { "d": "fortezzaUserSignatureCertificate", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.7": { "d": "fortezzaCASignatureCertificate", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.8": { "d": "sdnsCASignatureCertificate", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.10": { "d": "auxiliaryVector", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.11": { "d": "mlReceiptPolicy", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.12": { "d": "mlMembership", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.13": { "d": "mlAdministrators", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.14": { "d": "alid", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.20": { "d": "janUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.21": { "d": "febUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.22": { "d": "marUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.23": { "d": "aprUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.24": { "d": "mayUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.25": { "d": "junUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.26": { "d": "julUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.27": { "d": "augUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.28": { "d": "sepUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.29": { "d": "octUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.30": { "d": "novUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.31": { "d": "decUKMs", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.40": { "d": "metaSDNSckl", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.41": { "d": "sdnsCKL", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.42": { "d": "metaSDNSsignatureCKL", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.43": { "d": "sdnsSignatureCKL", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.44": { "d": "sdnsCertificateRevocationList", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.45": { "d": "fortezzaCertificateRevocationList", "c": "SDN.700 INFOSEC attributes (superseded)", "w": true }, + "2.16.840.1.101.2.1.5.46": { "d": "fortezzaCKL", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.47": { "d": "alExemptedAddressProcessor", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.48": { "d": "guard", "c": "SDN.700 INFOSEC attributes (obsolete)", "w": true }, + "2.16.840.1.101.2.1.5.49": { "d": "algorithmsSupported", "c": "SDN.700 INFOSEC attributes (obsolete)", "w": true }, + "2.16.840.1.101.2.1.5.50": { "d": "suiteAKeyManagementCertificate", "c": "SDN.700 INFOSEC attributes (obsolete)", "w": true }, + "2.16.840.1.101.2.1.5.51": { "d": "suiteAKMandSigCertificate", "c": "SDN.700 INFOSEC attributes (obsolete)", "w": true }, + "2.16.840.1.101.2.1.5.52": { "d": "suiteAUserSignatureCertificate", "c": "SDN.700 INFOSEC attributes (obsolete)", "w": true }, + "2.16.840.1.101.2.1.5.53": { "d": "prbacInfo", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.54": { "d": "prbacCAConstraints", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.55": { "d": "sigOrKMPrivileges", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.56": { "d": "commPrivileges", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.57": { "d": "labeledAttribute", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.58": { "d": "policyInformationFile", "c": "SDN.700 INFOSEC attributes (obsolete)", "w": true }, + "2.16.840.1.101.2.1.5.59": { "d": "secPolicyInformationFile", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.5.60": { "d": "cAClearanceConstraint", "c": "SDN.700 INFOSEC attributes", "w": false }, + "2.16.840.1.101.2.1.7.1": { "d": "cspExtns", "c": "SDN.700 INFOSEC extensions", "w": false }, + "2.16.840.1.101.2.1.7.1.0": { "d": "cspCsExtn", "c": "SDN.700 INFOSEC extensions", "w": false }, + "2.16.840.1.101.2.1.8.1": { "d": "mISSISecurityCategories", "c": "SDN.700 INFOSEC security category", "w": false }, + "2.16.840.1.101.2.1.8.2": { "d": "standardSecurityLabelPrivileges", "c": "SDN.700 INFOSEC security category", "w": false }, + "2.16.840.1.101.2.1.10.1": { "d": "sigPrivileges", "c": "SDN.700 INFOSEC privileges", "w": false }, + "2.16.840.1.101.2.1.10.2": { "d": "kmPrivileges", "c": "SDN.700 INFOSEC privileges", "w": false }, + "2.16.840.1.101.2.1.10.3": { "d": "namedTagSetPrivilege", "c": "SDN.700 INFOSEC privileges", "w": false }, + "2.16.840.1.101.2.1.11.1": { "d": "ukDemo", "c": "SDN.700 INFOSEC certificate policy", "w": false }, + "2.16.840.1.101.2.1.11.2": { "d": "usDODClass2", "c": "SDN.700 INFOSEC certificate policy", "w": false }, + "2.16.840.1.101.2.1.11.3": { "d": "usMediumPilot", "c": "SDN.700 INFOSEC certificate policy", "w": false }, + "2.16.840.1.101.2.1.11.4": { "d": "usDODClass4", "c": "SDN.700 INFOSEC certificate policy", "w": false }, + "2.16.840.1.101.2.1.11.5": { "d": "usDODClass3", "c": "SDN.700 INFOSEC certificate policy", "w": false }, + "2.16.840.1.101.2.1.11.6": { "d": "usDODClass5", "c": "SDN.700 INFOSEC certificate policy", "w": false }, + "2.16.840.1.101.2.1.12.0": { "d": "testSecurityPolicy", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.1": { "d": "tsp1", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.1.0": { "d": "tsp1SecurityCategories", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.1.0.0": { "d": "tsp1TagSetZero", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.1.0.1": { "d": "tsp1TagSetOne", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.1.0.2": { "d": "tsp1TagSetTwo", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.2": { "d": "tsp2", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.2.0": { "d": "tsp2SecurityCategories", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.2.0.0": { "d": "tsp2TagSetZero", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.2.0.1": { "d": "tsp2TagSetOne", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.2.0.2": { "d": "tsp2TagSetTwo", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.3": { "d": "kafka", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.3.0": { "d": "kafkaSecurityCategories", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.3.0.1": { "d": "kafkaTagSetName1", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.3.0.2": { "d": "kafkaTagSetName2", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.0.3.0.3": { "d": "kafkaTagSetName3", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.2.1.12.1.1": { "d": "tcp1", "c": "SDN.700 INFOSEC test objects", "w": false }, + "2.16.840.1.101.3.1": { "d": "slabel", "c": "CSOR GAK", "w": true }, + "2.16.840.1.101.3.2": { "d": "pki", "c": "NIST", "w": true }, + "2.16.840.1.101.3.2.1": { "d": "NIST policyIdentifier", "c": "NIST policies", "w": true }, + "2.16.840.1.101.3.2.1.3.1": { "d": "fbcaRudimentaryPolicy", "c": "Federal Bridge CA Policy", "w": false }, + "2.16.840.1.101.3.2.1.3.2": { "d": "fbcaBasicPolicy", "c": "Federal Bridge CA Policy", "w": false }, + "2.16.840.1.101.3.2.1.3.3": { "d": "fbcaMediumPolicy", "c": "Federal Bridge CA Policy", "w": false }, + "2.16.840.1.101.3.2.1.3.4": { "d": "fbcaHighPolicy", "c": "Federal Bridge CA Policy", "w": false }, + "2.16.840.1.101.3.2.1.48.1": { "d": "nistTestPolicy1", "c": "NIST PKITS policies", "w": false }, + "2.16.840.1.101.3.2.1.48.2": { "d": "nistTestPolicy2", "c": "NIST PKITS policies", "w": false }, + "2.16.840.1.101.3.2.1.48.3": { "d": "nistTestPolicy3", "c": "NIST PKITS policies", "w": false }, + "2.16.840.1.101.3.2.1.48.4": { "d": "nistTestPolicy4", "c": "NIST PKITS policies", "w": false }, + "2.16.840.1.101.3.2.1.48.5": { "d": "nistTestPolicy5", "c": "NIST PKITS policies", "w": false }, + "2.16.840.1.101.3.2.1.48.6": { "d": "nistTestPolicy6", "c": "NIST PKITS policies", "w": false }, + "2.16.840.1.101.3.2.2": { "d": "gak", "c": "CSOR GAK extended key usage", "w": true }, + "2.16.840.1.101.3.2.2.1": { "d": "kRAKey", "c": "CSOR GAK extended key usage", "w": true }, + "2.16.840.1.101.3.2.3": { "d": "extensions", "c": "CSOR GAK extensions", "w": true }, + "2.16.840.1.101.3.2.3.1": { "d": "kRTechnique", "c": "CSOR GAK extensions", "w": true }, + "2.16.840.1.101.3.2.3.2": { "d": "kRecoveryCapable", "c": "CSOR GAK extensions", "w": true }, + "2.16.840.1.101.3.2.3.3": { "d": "kR", "c": "CSOR GAK extensions", "w": true }, + "2.16.840.1.101.3.2.4": { "d": "keyRecoverySchemes", "c": "CSOR GAK", "w": true }, + "2.16.840.1.101.3.2.5": { "d": "krapola", "c": "CSOR GAK", "w": true }, + "2.16.840.1.101.3.3": { "d": "arpa", "c": "CSOR GAK", "w": true }, + "2.16.840.1.101.3.4": { "d": "nistAlgorithm", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1": { "d": "aes", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.1": { "d": "aes128-ECB", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.2": { "d": "aes128-CBC", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.3": { "d": "aes128-OFB", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.4": { "d": "aes128-CFB", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.5": { "d": "aes128-wrap", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.6": { "d": "aes128-GCM", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.7": { "d": "aes128-CCM", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.8": { "d": "aes128-wrap-pad", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.21": { "d": "aes192-ECB", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.22": { "d": "aes192-CBC", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.23": { "d": "aes192-OFB", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.24": { "d": "aes192-CFB", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.25": { "d": "aes192-wrap", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.26": { "d": "aes192-GCM", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.27": { "d": "aes192-CCM", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.28": { "d": "aes192-wrap-pad", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.41": { "d": "aes256-ECB", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.42": { "d": "aes256-CBC", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.43": { "d": "aes256-OFB", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.44": { "d": "aes256-CFB", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.45": { "d": "aes256-wrap", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.46": { "d": "aes256-GCM", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.47": { "d": "aes256-CCM", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.1.48": { "d": "aes256-wrap-pad", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.2": { "d": "hashAlgos", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.2.1": { "d": "sha-256", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.2.2": { "d": "sha-384", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.2.3": { "d": "sha-512", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.2.4": { "d": "sha-224", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.3.1": { "d": "dsaWithSha224", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.101.3.4.3.2": { "d": "dsaWithSha256", "c": "NIST Algorithm", "w": false }, + "2.16.840.1.113719.1.2.8": { "d": "novellAlgorithm", "c": "Novell", "w": false }, + "2.16.840.1.113719.1.2.8.22": { "d": "desCbcIV8", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.23": { "d": "desCbcPadIV8", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.24": { "d": "desEDE2CbcIV8", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.25": { "d": "desEDE2CbcPadIV8", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.26": { "d": "desEDE3CbcIV8", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.27": { "d": "desEDE3CbcPadIV8", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.28": { "d": "rc5CbcPad", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.29": { "d": "md2WithRSAEncryptionBSafe1", "c": "Novell signature algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.30": { "d": "md5WithRSAEncryptionBSafe1", "c": "Novell signature algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.31": { "d": "sha1WithRSAEncryptionBSafe1", "c": "Novell signature algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.32": { "d": "lmDigest", "c": "Novell digest algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.40": { "d": "md2", "c": "Novell digest algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.50": { "d": "md5", "c": "Novell digest algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.51": { "d": "ikeHmacWithSHA1-RSA", "c": "Novell signature algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.52": { "d": "ikeHmacWithMD5-RSA", "c": "Novell signature algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.69": { "d": "rc2CbcPad", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.82": { "d": "sha-1", "c": "Novell digest algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.92": { "d": "rc2BSafe1Cbc", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.95": { "d": "md4", "c": "Novell digest algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.130": { "d": "md4Packet", "c": "Novell keyed hash", "w": false }, + "2.16.840.1.113719.1.2.8.131": { "d": "rsaEncryptionBsafe1", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.132": { "d": "nwPassword", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.2.8.133": { "d": "novellObfuscate-1", "c": "Novell encryption algorithm", "w": false }, + "2.16.840.1.113719.1.9": { "d": "pki", "c": "Novell", "w": false }, + "2.16.840.1.113719.1.9.4": { "d": "pkiAttributeType", "c": "Novell PKI", "w": false }, + "2.16.840.1.113719.1.9.4.1": { "d": "securityAttributes", "c": "Novell PKI attribute type", "w": false }, + "2.16.840.1.113719.1.9.4.2": { "d": "relianceLimit", "c": "Novell PKI attribute type", "w": false }, + "2.16.840.1.113730.1": { "d": "cert-extension", "c": "Netscape", "w": false }, + "2.16.840.1.113730.1.1": { "d": "netscape-cert-type", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.2": { "d": "netscape-base-url", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.3": { "d": "netscape-revocation-url", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.4": { "d": "netscape-ca-revocation-url", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.7": { "d": "netscape-cert-renewal-url", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.8": { "d": "netscape-ca-policy-url", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.9": { "d": "HomePage-url", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.10": { "d": "EntityLogo", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.11": { "d": "UserPicture", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.12": { "d": "netscape-ssl-server-name", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.1.13": { "d": "netscape-comment", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.2": { "d": "data-type", "c": "Netscape", "w": false }, + "2.16.840.1.113730.2.1": { "d": "dataGIF", "c": "Netscape data type", "w": false }, + "2.16.840.1.113730.2.2": { "d": "dataJPEG", "c": "Netscape data type", "w": false }, + "2.16.840.1.113730.2.3": { "d": "dataURL", "c": "Netscape data type", "w": false }, + "2.16.840.1.113730.2.4": { "d": "dataHTML", "c": "Netscape data type", "w": false }, + "2.16.840.1.113730.2.5": { "d": "certSequence", "c": "Netscape data type", "w": false }, + "2.16.840.1.113730.2.6": { "d": "certURL", "c": "Netscape certificate extension", "w": false }, + "2.16.840.1.113730.3": { "d": "directory", "c": "Netscape", "w": false }, + "2.16.840.1.113730.3.1": { "d": "ldapDefinitions", "c": "Netscape directory", "w": false }, + "2.16.840.1.113730.3.1.1": { "d": "carLicense", "c": "Netscape LDAP definitions", "w": false }, + "2.16.840.1.113730.3.1.2": { "d": "departmentNumber", "c": "Netscape LDAP definitions", "w": false }, + "2.16.840.1.113730.3.1.3": { "d": "employeeNumber", "c": "Netscape LDAP definitions", "w": false }, + "2.16.840.1.113730.3.1.4": { "d": "employeeType", "c": "Netscape LDAP definitions", "w": false }, + "2.16.840.1.113730.3.2.2": { "d": "inetOrgPerson", "c": "Netscape LDAP definitions", "w": false }, + "2.16.840.1.113730.4.1": { "d": "serverGatedCrypto", "c": "Netscape", "w": false }, + "2.16.840.1.113733.1.6.3": { "d": "verisignCZAG", "c": "Verisign extension", "w": false }, + "2.16.840.1.113733.1.6.6": { "d": "verisignInBox", "c": "Verisign extension", "w": false }, + "2.16.840.1.113733.1.6.11": { "d": "verisignOnsiteJurisdictionHash", "c": "Verisign extension", "w": false }, + "2.16.840.1.113733.1.6.13": { "d": "Unknown Verisign VPN extension", "c": "Verisign extension", "w": false }, + "2.16.840.1.113733.1.6.15": { "d": "verisignServerID", "c": "Verisign extension", "w": false }, + "2.16.840.1.113733.1.7.1.1": { "d": "verisignCertPolicies95Qualifier1", "c": "Verisign policy", "w": false }, + "2.16.840.1.113733.1.7.1.1.1": { "d": "verisignCPSv1notice", "c": "Verisign policy (obsolete)", "w": false }, + "2.16.840.1.113733.1.7.1.1.2": { "d": "verisignCPSv1nsi", "c": "Verisign policy (obsolete)", "w": false }, + "2.16.840.1.113733.1.7.23.6": { "d": "verisignEVPolicy", "c": "Verisign extension", "w": false }, + "2.16.840.1.113733.1.8.1": { "d": "verisignISSStrongCrypto", "c": "Verisign", "w": false }, + "2.16.840.1.113733.1": { "d": "pki", "c": "Verisign extension", "w": false }, + "2.16.840.1.113733.1.9": { "d": "pkcs7Attribute", "c": "Verisign PKI extension", "w": false }, + "2.16.840.1.113733.1.9.2": { "d": "messageType", "c": "Verisign PKCS #7 attribute", "w": false }, + "2.16.840.1.113733.1.9.3": { "d": "pkiStatus", "c": "Verisign PKCS #7 attribute", "w": false }, + "2.16.840.1.113733.1.9.4": { "d": "failInfo", "c": "Verisign PKCS #7 attribute", "w": false }, + "2.16.840.1.113733.1.9.5": { "d": "senderNonce", "c": "Verisign PKCS #7 attribute", "w": false }, + "2.16.840.1.113733.1.9.6": { "d": "recipientNonce", "c": "Verisign PKCS #7 attribute", "w": false }, + "2.16.840.1.113733.1.9.7": { "d": "transID", "c": "Verisign PKCS #7 attribute", "w": false }, + "2.16.840.1.113733.1.9.8": { "d": "extensionReq", "c": "Verisign PKCS #7 attribute. Use PKCS #9 extensionRequest instead", "w": true }, + "2.16.840.1.114412.1.3.0.1": { "d": "digiCertGlobalCAPolicy", "c": "Digicert CA policy", "w": false }, + "2.16.840.1.114412.1.3.0.2": { "d": "digiCertHighAssuranceEVCAPolicy", "c": "Digicert CA policy", "w": false }, + "2.16.840.1.114412.1.3.0.3": { "d": "digiCertGlobalRootCAPolicy", "c": "Digicert CA policy", "w": false }, + "2.16.840.1.114412.1.3.0.4": { "d": "digiCertAssuredIDRootCAPolicy", "c": "Digicert CA policy", "w": false }, + "2.23.42.0": { "d": "contentType", "c": "SET", "w": false }, + "2.23.42.0.0": { "d": "panData", "c": "SET contentType", "w": false }, + "2.23.42.0.1": { "d": "panToken", "c": "SET contentType", "w": false }, + "2.23.42.0.2": { "d": "panOnly", "c": "SET contentType", "w": false }, + "2.23.42.1": { "d": "msgExt", "c": "SET", "w": false }, + "2.23.42.2": { "d": "field", "c": "SET", "w": false }, + "2.23.42.2.0": { "d": "fullName", "c": "SET field", "w": false }, + "2.23.42.2.1": { "d": "givenName", "c": "SET field", "w": false }, + "2.23.42.2.2": { "d": "familyName", "c": "SET field", "w": false }, + "2.23.42.2.3": { "d": "birthFamilyName", "c": "SET field", "w": false }, + "2.23.42.2.4": { "d": "placeName", "c": "SET field", "w": false }, + "2.23.42.2.5": { "d": "identificationNumber", "c": "SET field", "w": false }, + "2.23.42.2.6": { "d": "month", "c": "SET field", "w": false }, + "2.23.42.2.7": { "d": "date", "c": "SET field", "w": false }, + "2.23.42.2.8": { "d": "address", "c": "SET field", "w": false }, + "2.23.42.2.9": { "d": "telephone", "c": "SET field", "w": false }, + "2.23.42.2.10": { "d": "amount", "c": "SET field", "w": false }, + "2.23.42.2.11": { "d": "accountNumber", "c": "SET field", "w": false }, + "2.23.42.2.12": { "d": "passPhrase", "c": "SET field", "w": false }, + "2.23.42.3": { "d": "attribute", "c": "SET", "w": false }, + "2.23.42.3.0": { "d": "cert", "c": "SET attribute", "w": false }, + "2.23.42.3.0.0": { "d": "rootKeyThumb", "c": "SET cert attribute", "w": false }, + "2.23.42.3.0.1": { "d": "additionalPolicy", "c": "SET cert attribute", "w": false }, + "2.23.42.4": { "d": "algorithm", "c": "SET", "w": false }, + "2.23.42.5": { "d": "policy", "c": "SET", "w": false }, + "2.23.42.5.0": { "d": "root", "c": "SET policy", "w": false }, + "2.23.42.6": { "d": "module", "c": "SET", "w": false }, + "2.23.42.7": { "d": "certExt", "c": "SET", "w": false }, + "2.23.42.7.0": { "d": "hashedRootKey", "c": "SET cert extension", "w": false }, + "2.23.42.7.1": { "d": "certificateType", "c": "SET cert extension", "w": false }, + "2.23.42.7.2": { "d": "merchantData", "c": "SET cert extension", "w": false }, + "2.23.42.7.3": { "d": "cardCertRequired", "c": "SET cert extension", "w": false }, + "2.23.42.7.4": { "d": "tunneling", "c": "SET cert extension", "w": false }, + "2.23.42.7.5": { "d": "setExtensions", "c": "SET cert extension", "w": false }, + "2.23.42.7.6": { "d": "setQualifier", "c": "SET cert extension", "w": false }, + "2.23.42.8": { "d": "brand", "c": "SET", "w": false }, + "2.23.42.8.1": { "d": "IATA-ATA", "c": "SET brand", "w": false }, + "2.23.42.8.4": { "d": "VISA", "c": "SET brand", "w": false }, + "2.23.42.8.5": { "d": "MasterCard", "c": "SET brand", "w": false }, + "2.23.42.8.30": { "d": "Diners", "c": "SET brand", "w": false }, + "2.23.42.8.34": { "d": "AmericanExpress", "c": "SET brand", "w": false }, + "2.23.42.8.6011": { "d": "Novus", "c": "SET brand", "w": false }, + "2.23.42.9": { "d": "vendor", "c": "SET", "w": false }, + "2.23.42.9.0": { "d": "GlobeSet", "c": "SET vendor", "w": false }, + "2.23.42.9.1": { "d": "IBM", "c": "SET vendor", "w": false }, + "2.23.42.9.2": { "d": "CyberCash", "c": "SET vendor", "w": false }, + "2.23.42.9.3": { "d": "Terisa", "c": "SET vendor", "w": false }, + "2.23.42.9.4": { "d": "RSADSI", "c": "SET vendor", "w": false }, + "2.23.42.9.5": { "d": "VeriFone", "c": "SET vendor", "w": false }, + "2.23.42.9.6": { "d": "TrinTech", "c": "SET vendor", "w": false }, + "2.23.42.9.7": { "d": "BankGate", "c": "SET vendor", "w": false }, + "2.23.42.9.8": { "d": "GTE", "c": "SET vendor", "w": false }, + "2.23.42.9.9": { "d": "CompuSource", "c": "SET vendor", "w": false }, + "2.23.42.9.10": { "d": "Griffin", "c": "SET vendor", "w": false }, + "2.23.42.9.11": { "d": "Certicom", "c": "SET vendor", "w": false }, + "2.23.42.9.12": { "d": "OSS", "c": "SET vendor", "w": false }, + "2.23.42.9.13": { "d": "TenthMountain", "c": "SET vendor", "w": false }, + "2.23.42.9.14": { "d": "Antares", "c": "SET vendor", "w": false }, + "2.23.42.9.15": { "d": "ECC", "c": "SET vendor", "w": false }, + "2.23.42.9.16": { "d": "Maithean", "c": "SET vendor", "w": false }, + "2.23.42.9.17": { "d": "Netscape", "c": "SET vendor", "w": false }, + "2.23.42.9.18": { "d": "Verisign", "c": "SET vendor", "w": false }, + "2.23.42.9.19": { "d": "BlueMoney", "c": "SET vendor", "w": false }, + "2.23.42.9.20": { "d": "Lacerte", "c": "SET vendor", "w": false }, + "2.23.42.9.21": { "d": "Fujitsu", "c": "SET vendor", "w": false }, + "2.23.42.9.22": { "d": "eLab", "c": "SET vendor", "w": false }, + "2.23.42.9.23": { "d": "Entrust", "c": "SET vendor", "w": false }, + "2.23.42.9.24": { "d": "VIAnet", "c": "SET vendor", "w": false }, + "2.23.42.9.25": { "d": "III", "c": "SET vendor", "w": false }, + "2.23.42.9.26": { "d": "OpenMarket", "c": "SET vendor", "w": false }, + "2.23.42.9.27": { "d": "Lexem", "c": "SET vendor", "w": false }, + "2.23.42.9.28": { "d": "Intertrader", "c": "SET vendor", "w": false }, + "2.23.42.9.29": { "d": "Persimmon", "c": "SET vendor", "w": false }, + "2.23.42.9.30": { "d": "NABLE", "c": "SET vendor", "w": false }, + "2.23.42.9.31": { "d": "espace-net", "c": "SET vendor", "w": false }, + "2.23.42.9.32": { "d": "Hitachi", "c": "SET vendor", "w": false }, + "2.23.42.9.33": { "d": "Microsoft", "c": "SET vendor", "w": false }, + "2.23.42.9.34": { "d": "NEC", "c": "SET vendor", "w": false }, + "2.23.42.9.35": { "d": "Mitsubishi", "c": "SET vendor", "w": false }, + "2.23.42.9.36": { "d": "NCR", "c": "SET vendor", "w": false }, + "2.23.42.9.37": { "d": "e-COMM", "c": "SET vendor", "w": false }, + "2.23.42.9.38": { "d": "Gemplus", "c": "SET vendor", "w": false }, + "2.23.42.10": { "d": "national", "c": "SET", "w": false }, + "2.23.42.10.392": { "d": "Japan", "c": "SET national", "w": false }, + "2.23.136.1.1.1": { "d": "mRTDSignatureData", "c": "ICAO MRTD", "w": false }, + "2.54.1775.2": { "d": "hashedRootKey", "c": "SET. Deprecated, use (2 23 42 7 0) instead", "w": true }, + "2.54.1775.3": { "d": "certificateType", "c": "SET. Deprecated, use (2 23 42 7 0) instead", "w": true }, + "2.54.1775.4": { "d": "merchantData", "c": "SET. Deprecated, use (2 23 42 7 0) instead", "w": true }, + "2.54.1775.5": { "d": "cardCertRequired", "c": "SET. Deprecated, use (2 23 42 7 0) instead", "w": true }, + "2.54.1775.6": { "d": "tunneling", "c": "SET. Deprecated, use (2 23 42 7 0) instead", "w": true }, + "2.54.1775.7": { "d": "setQualifier", "c": "SET. Deprecated, use (2 23 42 7 0) instead", "w": true }, + "2.54.1775.99": { "d": "setData", "c": "SET. Deprecated, use (2 23 42 7 0) instead", "w": true }, + "1.3.6.1.4.1.6449.1.2.1.5.1": { "d": "AddTrust EV policy", "c": "AddTrust External CA Root", "w": false }, + "1.3.6.1.4.1.34697.2.1": { "d": "AffirmTrust EV policy", "c": "AffirmTrust Commercial", "w": false }, + "1.3.6.1.4.1.34697.2.2": { "d": "AffirmTrust EV policy", "c": "AffirmTrust Networking", "w": false }, + "1.3.6.1.4.1.34697.2.3": { "d": "AffirmTrust EV policy", "c": "AffirmTrust Premium", "w": false }, + "1.3.6.1.4.1.34697.2.4": { "d": "AffirmTrust EV policy", "c": "AffirmTrust Premium ECC", "w": false }, + "2.16.578.1.26.1.3.3": { "d": "BuyPass EV policy", "c": "BuyPass Class 3 EV", "w": false }, + "1.3.6.1.4.1.22234.2.5.2.3.1": { "d": "CertPlus EV policy", "c": "CertPlus Class 2 Primary CA (KEYNECTIS)", "w": false }, + "1.3.6.1.4.1.6334.1.100.1": { "d": "Cybertrust EV policy", "c": "Cybertrust Global Root", "w": false }, + "2.16.840.1.114412.2.1": { "d": "DigiCert EV policy", "c": "DigiCert High Assurance EV Root CA", "w": false }, + "2.16.528.1.1001.1.1.1.12.6.1.1.1": { "d": "DigiNotar EV policy", "c": "DigiNotar Root CA", "w": false }, + "2.16.840.1.114028.10.1.2": { "d": "Entrust EV policy", "c": "Entrust Net Secure Server Certification Authority", "w": false }, + "1.3.6.1.4.1.14370.1.6": { "d": "Equifax EV policy", "c": "Equifax Secure Certificate Authority (GeoTrust)", "w": false }, + "1.3.6.1.4.1.4146.1.1": { "d": "GlobalSign EV policy", "c": "GlobalSign", "w": false }, + "2.16.840.1.114413.1.7.23.3": { "d": "GoDaddy EV policy", "c": "GoDaddy Class 2 Certification Authority", "w": false }, + "1.3.6.1.4.1.14777.6.1.1": { "d": "Izenpe EV policy", "c": "Certificado de Servidor Seguro SSL EV", "w": false }, + "1.3.6.1.4.1.14777.6.1.2": { "d": "Izenpe EV policy", "c": "Certificado de Sede Electronica EV", "w": false }, + "1.3.6.1.4.1.782.1.2.1.8.1": { "d": "Network Solutions EV policy", "c": "Network Solutions Certificate Authority", "w": false }, + "1.3.6.1.4.1.8024.0.2.100.1.2": { "d": "QuoVadis EV policy", "c": "QuoVadis Root CA 2", "w": false }, + "1.2.392.200091.100.721.1": { "d": "SECOM EV policy", "c": "SECOM Trust Systems EV", "w": false }, + "2.16.840.1.114404.1.1.2.4.1": { "d": "SecureTrust EV policy", "c": "SecureTrust CA, SecureTrust Corporation", "w": false }, + "1.3.6.1.4.1.23223.1.1.1": { "d": "StartCom EV policy", "c": "StartCom Certification Authority", "w": false }, + "2.16.840.1.114414.1.7.23.3": { "d": "Starfield EV policy", "c": "Starfield Class 2 Certification Authority", "w": false }, + "2.16.756.1.89.1.2.1.1": { "d": "SwissSign EV policy", "c": "SwissSign Gold CA - G2", "w": false }, + "2.16.840.1.113733.1.7.48.1": { "d": "Thawte EV policy", "c": "Thawte Premium Server CA", "w": false }, + "2.16.840.1.114171.500.9": { "d": "Wells Fargo EV policy", "c": "Wells Fargo WellsSecure Public Root Certificate Authority", "w": false }, + "END": "" +}; diff --git a/node_modules/jsencrypt/lib/lib/jsbn/base64.d.ts b/node_modules/jsencrypt/lib/lib/jsbn/base64.d.ts new file mode 100644 index 0000000..b9e20fd --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/base64.d.ts @@ -0,0 +1,3 @@ +export declare function hex2b64(h: string): string; +export declare function b64tohex(s: string): string; +export declare function b64toBA(s: string): number[]; diff --git a/node_modules/jsencrypt/lib/lib/jsbn/base64.js b/node_modules/jsencrypt/lib/lib/jsbn/base64.js new file mode 100644 index 0000000..4024e00 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/base64.js @@ -0,0 +1,76 @@ +import { int2char } from "./util"; +var b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var b64pad = "="; +export function hex2b64(h) { + var i; + var c; + var ret = ""; + for (i = 0; i + 3 <= h.length; i += 3) { + c = parseInt(h.substring(i, i + 3), 16); + ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63); + } + if (i + 1 == h.length) { + c = parseInt(h.substring(i, i + 1), 16); + ret += b64map.charAt(c << 2); + } + else if (i + 2 == h.length) { + c = parseInt(h.substring(i, i + 2), 16); + ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4); + } + while ((ret.length & 3) > 0) { + ret += b64pad; + } + return ret; +} +// convert a base64 string to hex +export function b64tohex(s) { + var ret = ""; + var i; + var k = 0; // b64 state, 0-3 + var slop = 0; + for (i = 0; i < s.length; ++i) { + if (s.charAt(i) == b64pad) { + break; + } + var v = b64map.indexOf(s.charAt(i)); + if (v < 0) { + continue; + } + if (k == 0) { + ret += int2char(v >> 2); + slop = v & 3; + k = 1; + } + else if (k == 1) { + ret += int2char((slop << 2) | (v >> 4)); + slop = v & 0xf; + k = 2; + } + else if (k == 2) { + ret += int2char(slop); + ret += int2char(v >> 2); + slop = v & 3; + k = 3; + } + else { + ret += int2char((slop << 2) | (v >> 4)); + ret += int2char(v & 0xf); + k = 0; + } + } + if (k == 1) { + ret += int2char(slop << 2); + } + return ret; +} +// convert a base64 string to a byte/number array +export function b64toBA(s) { + // piggyback on b64tohex for now, optimize later + var h = b64tohex(s); + var i; + var a = []; + for (i = 0; 2 * i < h.length; ++i) { + a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16); + } + return a; +} diff --git a/node_modules/jsencrypt/lib/lib/jsbn/jsbn.d.ts b/node_modules/jsencrypt/lib/lib/jsbn/jsbn.d.ts new file mode 100644 index 0000000..8087f1e --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/jsbn.d.ts @@ -0,0 +1,98 @@ +import { SecureRandom } from "./rng"; +export declare class BigInteger { + constructor(a: number | number[] | string, b?: number | SecureRandom, c?: number | SecureRandom); + toString(b: number): string; + protected negate(): BigInteger; + abs(): BigInteger; + compareTo(a: BigInteger): number; + bitLength(): number; + mod(a: BigInteger): BigInteger; + modPowInt(e: number, m: BigInteger): BigInteger; + protected clone(): BigInteger; + protected intValue(): number; + protected byteValue(): number; + protected shortValue(): number; + protected signum(): 0 | 1 | -1; + toByteArray(): number[]; + protected equals(a: BigInteger): boolean; + protected min(a: BigInteger): BigInteger; + protected max(a: BigInteger): BigInteger; + protected and(a: BigInteger): BigInteger; + protected or(a: BigInteger): BigInteger; + protected xor(a: BigInteger): BigInteger; + protected andNot(a: BigInteger): BigInteger; + protected not(): BigInteger; + protected shiftLeft(n: number): BigInteger; + protected shiftRight(n: number): BigInteger; + protected getLowestSetBit(): number; + protected bitCount(): number; + protected testBit(n: number): boolean; + protected setBit(n: number): BigInteger; + protected clearBit(n: number): BigInteger; + protected flipBit(n: number): BigInteger; + add(a: BigInteger): BigInteger; + subtract(a: BigInteger): BigInteger; + multiply(a: BigInteger): BigInteger; + divide(a: BigInteger): BigInteger; + protected remainder(a: BigInteger): BigInteger; + protected divideAndRemainder(a: BigInteger): BigInteger[]; + modPow(e: BigInteger, m: BigInteger): BigInteger; + modInverse(m: BigInteger): BigInteger; + protected pow(e: number): BigInteger; + gcd(a: BigInteger): BigInteger; + isProbablePrime(t: number): boolean; + copyTo(r: BigInteger): void; + fromInt(x: number): void; + protected fromString(s: string | number[], b: number): void; + clamp(): void; + dlShiftTo(n: number, r: BigInteger): void; + drShiftTo(n: number, r: BigInteger): void; + protected lShiftTo(n: number, r: BigInteger): void; + protected rShiftTo(n: number, r: BigInteger): void; + subTo(a: BigInteger, r: BigInteger): void; + multiplyTo(a: BigInteger, r: BigInteger): void; + squareTo(r: BigInteger): void; + divRemTo(m: BigInteger, q: BigInteger, r: BigInteger): void; + invDigit(): number; + protected isEven(): boolean; + protected exp(e: number, z: IReduction): BigInteger; + protected chunkSize(r: number): number; + protected toRadix(b: number): string; + fromRadix(s: string, b: number): void; + protected fromNumber(a: number, b: number | SecureRandom, c?: number | SecureRandom): void; + protected bitwiseTo(a: BigInteger, op: (a: number, b: number) => number, r: BigInteger): void; + protected changeBit(n: number, op: (a: number, b: number) => number): BigInteger; + protected addTo(a: BigInteger, r: BigInteger): void; + protected dMultiply(n: number): void; + dAddOffset(n: number, w: number): void; + multiplyLowerTo(a: BigInteger, n: number, r: BigInteger): void; + multiplyUpperTo(a: BigInteger, n: number, r: BigInteger): void; + protected modInt(n: number): number; + protected millerRabin(t: number): boolean; + protected square(): BigInteger; + gcda(a: BigInteger, callback: (x: BigInteger) => void): void; + fromNumberAsync(a: number, b: number | SecureRandom, c: number | SecureRandom, callback: () => void): void; + s: number; + t: number; + DB: number; + DM: number; + DV: number; + FV: number; + F1: number; + F2: number; + am: (i: number, x: number, w: BigInteger, j: number, c: number, n: number) => number; + [index: number]: number; + static ONE: BigInteger; + static ZERO: BigInteger; +} +export interface IReduction { + convert(x: BigInteger): BigInteger; + revert(x: BigInteger): BigInteger; + mulTo(x: BigInteger, y: BigInteger, r: BigInteger): void; + sqrTo(x: BigInteger, r: BigInteger): void; +} +export declare function nbi(): BigInteger; +export declare function parseBigInt(str: string, r: number): BigInteger; +export declare function intAt(s: string, i: number): number; +export declare function nbv(i: number): BigInteger; +export declare function nbits(x: number): number; diff --git a/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js b/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js new file mode 100644 index 0000000..a36e219 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js @@ -0,0 +1,1754 @@ +// Copyright (c) 2005 Tom Wu +// All Rights Reserved. +// See "LICENSE" for details. +// Basic JavaScript BN library - subset useful for RSA encryption. +import { cbit, int2char, lbit, op_and, op_andnot, op_or, op_xor } from "./util"; +// Bits per digit +var dbits; +// JavaScript engine analysis +var canary = 0xdeadbeefcafe; +var j_lm = ((canary & 0xffffff) == 0xefcafe); +//#region +var lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]; +var lplim = (1 << 26) / lowprimes[lowprimes.length - 1]; +//#endregion +// (public) Constructor +var BigInteger = /** @class */ (function () { + function BigInteger(a, b, c) { + if (a != null) { + if ("number" == typeof a) { + this.fromNumber(a, b, c); + } + else if (b == null && "string" != typeof a) { + this.fromString(a, 256); + } + else { + this.fromString(a, b); + } + } + } + //#region PUBLIC + // BigInteger.prototype.toString = bnToString; + // (public) return string representation in given radix + BigInteger.prototype.toString = function (b) { + if (this.s < 0) { + return "-" + this.negate().toString(b); + } + var k; + if (b == 16) { + k = 4; + } + else if (b == 8) { + k = 3; + } + else if (b == 2) { + k = 1; + } + else if (b == 32) { + k = 5; + } + else if (b == 4) { + k = 2; + } + else { + return this.toRadix(b); + } + var km = (1 << k) - 1; + var d; + var m = false; + var r = ""; + var i = this.t; + var p = this.DB - (i * this.DB) % k; + if (i-- > 0) { + if (p < this.DB && (d = this[i] >> p) > 0) { + m = true; + r = int2char(d); + } + while (i >= 0) { + if (p < k) { + d = (this[i] & ((1 << p) - 1)) << (k - p); + d |= this[--i] >> (p += this.DB - k); + } + else { + d = (this[i] >> (p -= k)) & km; + if (p <= 0) { + p += this.DB; + --i; + } + } + if (d > 0) { + m = true; + } + if (m) { + r += int2char(d); + } + } + } + return m ? r : "0"; + }; + // BigInteger.prototype.negate = bnNegate; + // (public) -this + BigInteger.prototype.negate = function () { + var r = nbi(); + BigInteger.ZERO.subTo(this, r); + return r; + }; + // BigInteger.prototype.abs = bnAbs; + // (public) |this| + BigInteger.prototype.abs = function () { + return (this.s < 0) ? this.negate() : this; + }; + // BigInteger.prototype.compareTo = bnCompareTo; + // (public) return + if this > a, - if this < a, 0 if equal + BigInteger.prototype.compareTo = function (a) { + var r = this.s - a.s; + if (r != 0) { + return r; + } + var i = this.t; + r = i - a.t; + if (r != 0) { + return (this.s < 0) ? -r : r; + } + while (--i >= 0) { + if ((r = this[i] - a[i]) != 0) { + return r; + } + } + return 0; + }; + // BigInteger.prototype.bitLength = bnBitLength; + // (public) return the number of bits in "this" + BigInteger.prototype.bitLength = function () { + if (this.t <= 0) { + return 0; + } + return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM)); + }; + // BigInteger.prototype.mod = bnMod; + // (public) this mod a + BigInteger.prototype.mod = function (a) { + var r = nbi(); + this.abs().divRemTo(a, null, r); + if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) { + a.subTo(r, r); + } + return r; + }; + // BigInteger.prototype.modPowInt = bnModPowInt; + // (public) this^e % m, 0 <= e < 2^32 + BigInteger.prototype.modPowInt = function (e, m) { + var z; + if (e < 256 || m.isEven()) { + z = new Classic(m); + } + else { + z = new Montgomery(m); + } + return this.exp(e, z); + }; + // BigInteger.prototype.clone = bnClone; + // (public) + BigInteger.prototype.clone = function () { + var r = nbi(); + this.copyTo(r); + return r; + }; + // BigInteger.prototype.intValue = bnIntValue; + // (public) return value as integer + BigInteger.prototype.intValue = function () { + if (this.s < 0) { + if (this.t == 1) { + return this[0] - this.DV; + } + else if (this.t == 0) { + return -1; + } + } + else if (this.t == 1) { + return this[0]; + } + else if (this.t == 0) { + return 0; + } + // assumes 16 < DB < 32 + return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0]; + }; + // BigInteger.prototype.byteValue = bnByteValue; + // (public) return value as byte + BigInteger.prototype.byteValue = function () { + return (this.t == 0) ? this.s : (this[0] << 24) >> 24; + }; + // BigInteger.prototype.shortValue = bnShortValue; + // (public) return value as short (assumes DB>=16) + BigInteger.prototype.shortValue = function () { + return (this.t == 0) ? this.s : (this[0] << 16) >> 16; + }; + // BigInteger.prototype.signum = bnSigNum; + // (public) 0 if this == 0, 1 if this > 0 + BigInteger.prototype.signum = function () { + if (this.s < 0) { + return -1; + } + else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) { + return 0; + } + else { + return 1; + } + }; + // BigInteger.prototype.toByteArray = bnToByteArray; + // (public) convert to bigendian byte array + BigInteger.prototype.toByteArray = function () { + var i = this.t; + var r = []; + r[0] = this.s; + var p = this.DB - (i * this.DB) % 8; + var d; + var k = 0; + if (i-- > 0) { + if (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p) { + r[k++] = d | (this.s << (this.DB - p)); + } + while (i >= 0) { + if (p < 8) { + d = (this[i] & ((1 << p) - 1)) << (8 - p); + d |= this[--i] >> (p += this.DB - 8); + } + else { + d = (this[i] >> (p -= 8)) & 0xff; + if (p <= 0) { + p += this.DB; + --i; + } + } + if ((d & 0x80) != 0) { + d |= -256; + } + if (k == 0 && (this.s & 0x80) != (d & 0x80)) { + ++k; + } + if (k > 0 || d != this.s) { + r[k++] = d; + } + } + } + return r; + }; + // BigInteger.prototype.equals = bnEquals; + BigInteger.prototype.equals = function (a) { + return (this.compareTo(a) == 0); + }; + // BigInteger.prototype.min = bnMin; + BigInteger.prototype.min = function (a) { + return (this.compareTo(a) < 0) ? this : a; + }; + // BigInteger.prototype.max = bnMax; + BigInteger.prototype.max = function (a) { + return (this.compareTo(a) > 0) ? this : a; + }; + // BigInteger.prototype.and = bnAnd; + BigInteger.prototype.and = function (a) { + var r = nbi(); + this.bitwiseTo(a, op_and, r); + return r; + }; + // BigInteger.prototype.or = bnOr; + BigInteger.prototype.or = function (a) { + var r = nbi(); + this.bitwiseTo(a, op_or, r); + return r; + }; + // BigInteger.prototype.xor = bnXor; + BigInteger.prototype.xor = function (a) { + var r = nbi(); + this.bitwiseTo(a, op_xor, r); + return r; + }; + // BigInteger.prototype.andNot = bnAndNot; + BigInteger.prototype.andNot = function (a) { + var r = nbi(); + this.bitwiseTo(a, op_andnot, r); + return r; + }; + // BigInteger.prototype.not = bnNot; + // (public) ~this + BigInteger.prototype.not = function () { + var r = nbi(); + for (var i = 0; i < this.t; ++i) { + r[i] = this.DM & ~this[i]; + } + r.t = this.t; + r.s = ~this.s; + return r; + }; + // BigInteger.prototype.shiftLeft = bnShiftLeft; + // (public) this << n + BigInteger.prototype.shiftLeft = function (n) { + var r = nbi(); + if (n < 0) { + this.rShiftTo(-n, r); + } + else { + this.lShiftTo(n, r); + } + return r; + }; + // BigInteger.prototype.shiftRight = bnShiftRight; + // (public) this >> n + BigInteger.prototype.shiftRight = function (n) { + var r = nbi(); + if (n < 0) { + this.lShiftTo(-n, r); + } + else { + this.rShiftTo(n, r); + } + return r; + }; + // BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit; + // (public) returns index of lowest 1-bit (or -1 if none) + BigInteger.prototype.getLowestSetBit = function () { + for (var i = 0; i < this.t; ++i) { + if (this[i] != 0) { + return i * this.DB + lbit(this[i]); + } + } + if (this.s < 0) { + return this.t * this.DB; + } + return -1; + }; + // BigInteger.prototype.bitCount = bnBitCount; + // (public) return number of set bits + BigInteger.prototype.bitCount = function () { + var r = 0; + var x = this.s & this.DM; + for (var i = 0; i < this.t; ++i) { + r += cbit(this[i] ^ x); + } + return r; + }; + // BigInteger.prototype.testBit = bnTestBit; + // (public) true iff nth bit is set + BigInteger.prototype.testBit = function (n) { + var j = Math.floor(n / this.DB); + if (j >= this.t) { + return (this.s != 0); + } + return ((this[j] & (1 << (n % this.DB))) != 0); + }; + // BigInteger.prototype.setBit = bnSetBit; + // (public) this | (1< 1) { + var g2 = nbi(); + z.sqrTo(g[1], g2); + while (n <= km) { + g[n] = nbi(); + z.mulTo(g2, g[n - 2], g[n]); + n += 2; + } + } + var j = e.t - 1; + var w; + var is1 = true; + var r2 = nbi(); + var t; + i = nbits(e[j]) - 1; + while (j >= 0) { + if (i >= k1) { + w = (e[j] >> (i - k1)) & km; + } + else { + w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i); + if (j > 0) { + w |= e[j - 1] >> (this.DB + i - k1); + } + } + n = k; + while ((w & 1) == 0) { + w >>= 1; + --n; + } + if ((i -= n) < 0) { + i += this.DB; + --j; + } + if (is1) { // ret == 1, don't bother squaring or multiplying it + g[w].copyTo(r); + is1 = false; + } + else { + while (n > 1) { + z.sqrTo(r, r2); + z.sqrTo(r2, r); + n -= 2; + } + if (n > 0) { + z.sqrTo(r, r2); + } + else { + t = r; + r = r2; + r2 = t; + } + z.mulTo(r2, g[w], r); + } + while (j >= 0 && (e[j] & (1 << i)) == 0) { + z.sqrTo(r, r2); + t = r; + r = r2; + r2 = t; + if (--i < 0) { + i = this.DB - 1; + --j; + } + } + } + return z.revert(r); + }; + // BigInteger.prototype.modInverse = bnModInverse; + // (public) 1/this % m (HAC 14.61) + BigInteger.prototype.modInverse = function (m) { + var ac = m.isEven(); + if ((this.isEven() && ac) || m.signum() == 0) { + return BigInteger.ZERO; + } + var u = m.clone(); + var v = this.clone(); + var a = nbv(1); + var b = nbv(0); + var c = nbv(0); + var d = nbv(1); + while (u.signum() != 0) { + while (u.isEven()) { + u.rShiftTo(1, u); + if (ac) { + if (!a.isEven() || !b.isEven()) { + a.addTo(this, a); + b.subTo(m, b); + } + a.rShiftTo(1, a); + } + else if (!b.isEven()) { + b.subTo(m, b); + } + b.rShiftTo(1, b); + } + while (v.isEven()) { + v.rShiftTo(1, v); + if (ac) { + if (!c.isEven() || !d.isEven()) { + c.addTo(this, c); + d.subTo(m, d); + } + c.rShiftTo(1, c); + } + else if (!d.isEven()) { + d.subTo(m, d); + } + d.rShiftTo(1, d); + } + if (u.compareTo(v) >= 0) { + u.subTo(v, u); + if (ac) { + a.subTo(c, a); + } + b.subTo(d, b); + } + else { + v.subTo(u, v); + if (ac) { + c.subTo(a, c); + } + d.subTo(b, d); + } + } + if (v.compareTo(BigInteger.ONE) != 0) { + return BigInteger.ZERO; + } + if (d.compareTo(m) >= 0) { + return d.subtract(m); + } + if (d.signum() < 0) { + d.addTo(m, d); + } + else { + return d; + } + if (d.signum() < 0) { + return d.add(m); + } + else { + return d; + } + }; + // BigInteger.prototype.pow = bnPow; + // (public) this^e + BigInteger.prototype.pow = function (e) { + return this.exp(e, new NullExp()); + }; + // BigInteger.prototype.gcd = bnGCD; + // (public) gcd(this,a) (HAC 14.54) + BigInteger.prototype.gcd = function (a) { + var x = (this.s < 0) ? this.negate() : this.clone(); + var y = (a.s < 0) ? a.negate() : a.clone(); + if (x.compareTo(y) < 0) { + var t = x; + x = y; + y = t; + } + var i = x.getLowestSetBit(); + var g = y.getLowestSetBit(); + if (g < 0) { + return x; + } + if (i < g) { + g = i; + } + if (g > 0) { + x.rShiftTo(g, x); + y.rShiftTo(g, y); + } + while (x.signum() > 0) { + if ((i = x.getLowestSetBit()) > 0) { + x.rShiftTo(i, x); + } + if ((i = y.getLowestSetBit()) > 0) { + y.rShiftTo(i, y); + } + if (x.compareTo(y) >= 0) { + x.subTo(y, x); + x.rShiftTo(1, x); + } + else { + y.subTo(x, y); + y.rShiftTo(1, y); + } + } + if (g > 0) { + y.lShiftTo(g, y); + } + return y; + }; + // BigInteger.prototype.isProbablePrime = bnIsProbablePrime; + // (public) test primality with certainty >= 1-.5^t + BigInteger.prototype.isProbablePrime = function (t) { + var i; + var x = this.abs(); + if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) { + for (i = 0; i < lowprimes.length; ++i) { + if (x[0] == lowprimes[i]) { + return true; + } + } + return false; + } + if (x.isEven()) { + return false; + } + i = 1; + while (i < lowprimes.length) { + var m = lowprimes[i]; + var j = i + 1; + while (j < lowprimes.length && m < lplim) { + m *= lowprimes[j++]; + } + m = x.modInt(m); + while (i < j) { + if (m % lowprimes[i++] == 0) { + return false; + } + } + } + return x.millerRabin(t); + }; + //#endregion PUBLIC + //#region PROTECTED + // BigInteger.prototype.copyTo = bnpCopyTo; + // (protected) copy this to r + BigInteger.prototype.copyTo = function (r) { + for (var i = this.t - 1; i >= 0; --i) { + r[i] = this[i]; + } + r.t = this.t; + r.s = this.s; + }; + // BigInteger.prototype.fromInt = bnpFromInt; + // (protected) set from integer value x, -DV <= x < DV + BigInteger.prototype.fromInt = function (x) { + this.t = 1; + this.s = (x < 0) ? -1 : 0; + if (x > 0) { + this[0] = x; + } + else if (x < -1) { + this[0] = x + this.DV; + } + else { + this.t = 0; + } + }; + // BigInteger.prototype.fromString = bnpFromString; + // (protected) set from string and radix + BigInteger.prototype.fromString = function (s, b) { + var k; + if (b == 16) { + k = 4; + } + else if (b == 8) { + k = 3; + } + else if (b == 256) { + k = 8; + /* byte array */ + } + else if (b == 2) { + k = 1; + } + else if (b == 32) { + k = 5; + } + else if (b == 4) { + k = 2; + } + else { + this.fromRadix(s, b); + return; + } + this.t = 0; + this.s = 0; + var i = s.length; + var mi = false; + var sh = 0; + while (--i >= 0) { + var x = (k == 8) ? (+s[i]) & 0xff : intAt(s, i); + if (x < 0) { + if (s.charAt(i) == "-") { + mi = true; + } + continue; + } + mi = false; + if (sh == 0) { + this[this.t++] = x; + } + else if (sh + k > this.DB) { + this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh; + this[this.t++] = (x >> (this.DB - sh)); + } + else { + this[this.t - 1] |= x << sh; + } + sh += k; + if (sh >= this.DB) { + sh -= this.DB; + } + } + if (k == 8 && ((+s[0]) & 0x80) != 0) { + this.s = -1; + if (sh > 0) { + this[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh; + } + } + this.clamp(); + if (mi) { + BigInteger.ZERO.subTo(this, this); + } + }; + // BigInteger.prototype.clamp = bnpClamp; + // (protected) clamp off excess high words + BigInteger.prototype.clamp = function () { + var c = this.s & this.DM; + while (this.t > 0 && this[this.t - 1] == c) { + --this.t; + } + }; + // BigInteger.prototype.dlShiftTo = bnpDLShiftTo; + // (protected) r = this << n*DB + BigInteger.prototype.dlShiftTo = function (n, r) { + var i; + for (i = this.t - 1; i >= 0; --i) { + r[i + n] = this[i]; + } + for (i = n - 1; i >= 0; --i) { + r[i] = 0; + } + r.t = this.t + n; + r.s = this.s; + }; + // BigInteger.prototype.drShiftTo = bnpDRShiftTo; + // (protected) r = this >> n*DB + BigInteger.prototype.drShiftTo = function (n, r) { + for (var i = n; i < this.t; ++i) { + r[i - n] = this[i]; + } + r.t = Math.max(this.t - n, 0); + r.s = this.s; + }; + // BigInteger.prototype.lShiftTo = bnpLShiftTo; + // (protected) r = this << n + BigInteger.prototype.lShiftTo = function (n, r) { + var bs = n % this.DB; + var cbs = this.DB - bs; + var bm = (1 << cbs) - 1; + var ds = Math.floor(n / this.DB); + var c = (this.s << bs) & this.DM; + for (var i = this.t - 1; i >= 0; --i) { + r[i + ds + 1] = (this[i] >> cbs) | c; + c = (this[i] & bm) << bs; + } + for (var i = ds - 1; i >= 0; --i) { + r[i] = 0; + } + r[ds] = c; + r.t = this.t + ds + 1; + r.s = this.s; + r.clamp(); + }; + // BigInteger.prototype.rShiftTo = bnpRShiftTo; + // (protected) r = this >> n + BigInteger.prototype.rShiftTo = function (n, r) { + r.s = this.s; + var ds = Math.floor(n / this.DB); + if (ds >= this.t) { + r.t = 0; + return; + } + var bs = n % this.DB; + var cbs = this.DB - bs; + var bm = (1 << bs) - 1; + r[0] = this[ds] >> bs; + for (var i = ds + 1; i < this.t; ++i) { + r[i - ds - 1] |= (this[i] & bm) << cbs; + r[i - ds] = this[i] >> bs; + } + if (bs > 0) { + r[this.t - ds - 1] |= (this.s & bm) << cbs; + } + r.t = this.t - ds; + r.clamp(); + }; + // BigInteger.prototype.subTo = bnpSubTo; + // (protected) r = this - a + BigInteger.prototype.subTo = function (a, r) { + var i = 0; + var c = 0; + var m = Math.min(a.t, this.t); + while (i < m) { + c += this[i] - a[i]; + r[i++] = c & this.DM; + c >>= this.DB; + } + if (a.t < this.t) { + c -= a.s; + while (i < this.t) { + c += this[i]; + r[i++] = c & this.DM; + c >>= this.DB; + } + c += this.s; + } + else { + c += this.s; + while (i < a.t) { + c -= a[i]; + r[i++] = c & this.DM; + c >>= this.DB; + } + c -= a.s; + } + r.s = (c < 0) ? -1 : 0; + if (c < -1) { + r[i++] = this.DV + c; + } + else if (c > 0) { + r[i++] = c; + } + r.t = i; + r.clamp(); + }; + // BigInteger.prototype.multiplyTo = bnpMultiplyTo; + // (protected) r = this * a, r != this,a (HAC 14.12) + // "this" should be the larger one if appropriate. + BigInteger.prototype.multiplyTo = function (a, r) { + var x = this.abs(); + var y = a.abs(); + var i = x.t; + r.t = i + y.t; + while (--i >= 0) { + r[i] = 0; + } + for (i = 0; i < y.t; ++i) { + r[i + x.t] = x.am(0, y[i], r, i, 0, x.t); + } + r.s = 0; + r.clamp(); + if (this.s != a.s) { + BigInteger.ZERO.subTo(r, r); + } + }; + // BigInteger.prototype.squareTo = bnpSquareTo; + // (protected) r = this^2, r != this (HAC 14.16) + BigInteger.prototype.squareTo = function (r) { + var x = this.abs(); + var i = r.t = 2 * x.t; + while (--i >= 0) { + r[i] = 0; + } + for (i = 0; i < x.t - 1; ++i) { + var c = x.am(i, x[i], r, 2 * i, 0, 1); + if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) { + r[i + x.t] -= x.DV; + r[i + x.t + 1] = 1; + } + } + if (r.t > 0) { + r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1); + } + r.s = 0; + r.clamp(); + }; + // BigInteger.prototype.divRemTo = bnpDivRemTo; + // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) + // r != q, this != m. q or r may be null. + BigInteger.prototype.divRemTo = function (m, q, r) { + var pm = m.abs(); + if (pm.t <= 0) { + return; + } + var pt = this.abs(); + if (pt.t < pm.t) { + if (q != null) { + q.fromInt(0); + } + if (r != null) { + this.copyTo(r); + } + return; + } + if (r == null) { + r = nbi(); + } + var y = nbi(); + var ts = this.s; + var ms = m.s; + var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus + if (nsh > 0) { + pm.lShiftTo(nsh, y); + pt.lShiftTo(nsh, r); + } + else { + pm.copyTo(y); + pt.copyTo(r); + } + var ys = y.t; + var y0 = y[ys - 1]; + if (y0 == 0) { + return; + } + var yt = y0 * (1 << this.F1) + ((ys > 1) ? y[ys - 2] >> this.F2 : 0); + var d1 = this.FV / yt; + var d2 = (1 << this.F1) / yt; + var e = 1 << this.F2; + var i = r.t; + var j = i - ys; + var t = (q == null) ? nbi() : q; + y.dlShiftTo(j, t); + if (r.compareTo(t) >= 0) { + r[r.t++] = 1; + r.subTo(t, r); + } + BigInteger.ONE.dlShiftTo(ys, t); + t.subTo(y, y); // "negative" y so we can replace sub with am later + while (y.t < ys) { + y[y.t++] = 0; + } + while (--j >= 0) { + // Estimate quotient digit + var qd = (r[--i] == y0) ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2); + if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out + y.dlShiftTo(j, t); + r.subTo(t, r); + while (r[i] < --qd) { + r.subTo(t, r); + } + } + } + if (q != null) { + r.drShiftTo(ys, q); + if (ts != ms) { + BigInteger.ZERO.subTo(q, q); + } + } + r.t = ys; + r.clamp(); + if (nsh > 0) { + r.rShiftTo(nsh, r); + } // Denormalize remainder + if (ts < 0) { + BigInteger.ZERO.subTo(r, r); + } + }; + // BigInteger.prototype.invDigit = bnpInvDigit; + // (protected) return "-1/this % 2^DB"; useful for Mont. reduction + // justification: + // xy == 1 (mod m) + // xy = 1+km + // xy(2-xy) = (1+km)(1-km) + // x[y(2-xy)] = 1-k^2m^2 + // x[y(2-xy)] == 1 (mod m^2) + // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 + // should reduce x and y(2-xy) by m^2 at each step to keep size bounded. + // JS multiply "overflows" differently from C/C++, so care is needed here. + BigInteger.prototype.invDigit = function () { + if (this.t < 1) { + return 0; + } + var x = this[0]; + if ((x & 1) == 0) { + return 0; + } + var y = x & 3; // y == 1/x mod 2^2 + y = (y * (2 - (x & 0xf) * y)) & 0xf; // y == 1/x mod 2^4 + y = (y * (2 - (x & 0xff) * y)) & 0xff; // y == 1/x mod 2^8 + y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; // y == 1/x mod 2^16 + // last step - calculate inverse mod DV directly; + // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints + y = (y * (2 - x * y % this.DV)) % this.DV; // y == 1/x mod 2^dbits + // we really want the negative inverse, and -DV < y < DV + return (y > 0) ? this.DV - y : -y; + }; + // BigInteger.prototype.isEven = bnpIsEven; + // (protected) true iff this is even + BigInteger.prototype.isEven = function () { + return ((this.t > 0) ? (this[0] & 1) : this.s) == 0; + }; + // BigInteger.prototype.exp = bnpExp; + // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79) + BigInteger.prototype.exp = function (e, z) { + if (e > 0xffffffff || e < 1) { + return BigInteger.ONE; + } + var r = nbi(); + var r2 = nbi(); + var g = z.convert(this); + var i = nbits(e) - 1; + g.copyTo(r); + while (--i >= 0) { + z.sqrTo(r, r2); + if ((e & (1 << i)) > 0) { + z.mulTo(r2, g, r); + } + else { + var t = r; + r = r2; + r2 = t; + } + } + return z.revert(r); + }; + // BigInteger.prototype.chunkSize = bnpChunkSize; + // (protected) return x s.t. r^x < DV + BigInteger.prototype.chunkSize = function (r) { + return Math.floor(Math.LN2 * this.DB / Math.log(r)); + }; + // BigInteger.prototype.toRadix = bnpToRadix; + // (protected) convert to radix string + BigInteger.prototype.toRadix = function (b) { + if (b == null) { + b = 10; + } + if (this.signum() == 0 || b < 2 || b > 36) { + return "0"; + } + var cs = this.chunkSize(b); + var a = Math.pow(b, cs); + var d = nbv(a); + var y = nbi(); + var z = nbi(); + var r = ""; + this.divRemTo(d, y, z); + while (y.signum() > 0) { + r = (a + z.intValue()).toString(b).substr(1) + r; + y.divRemTo(d, y, z); + } + return z.intValue().toString(b) + r; + }; + // BigInteger.prototype.fromRadix = bnpFromRadix; + // (protected) convert from radix string + BigInteger.prototype.fromRadix = function (s, b) { + this.fromInt(0); + if (b == null) { + b = 10; + } + var cs = this.chunkSize(b); + var d = Math.pow(b, cs); + var mi = false; + var j = 0; + var w = 0; + for (var i = 0; i < s.length; ++i) { + var x = intAt(s, i); + if (x < 0) { + if (s.charAt(i) == "-" && this.signum() == 0) { + mi = true; + } + continue; + } + w = b * w + x; + if (++j >= cs) { + this.dMultiply(d); + this.dAddOffset(w, 0); + j = 0; + w = 0; + } + } + if (j > 0) { + this.dMultiply(Math.pow(b, j)); + this.dAddOffset(w, 0); + } + if (mi) { + BigInteger.ZERO.subTo(this, this); + } + }; + // BigInteger.prototype.fromNumber = bnpFromNumber; + // (protected) alternate constructor + BigInteger.prototype.fromNumber = function (a, b, c) { + if ("number" == typeof b) { + // new BigInteger(int,int,RNG) + if (a < 2) { + this.fromInt(1); + } + else { + this.fromNumber(a, c); + if (!this.testBit(a - 1)) { + // force MSB set + this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this); + } + if (this.isEven()) { + this.dAddOffset(1, 0); + } // force odd + while (!this.isProbablePrime(b)) { + this.dAddOffset(2, 0); + if (this.bitLength() > a) { + this.subTo(BigInteger.ONE.shiftLeft(a - 1), this); + } + } + } + } + else { + // new BigInteger(int,RNG) + var x = []; + var t = a & 7; + x.length = (a >> 3) + 1; + b.nextBytes(x); + if (t > 0) { + x[0] &= ((1 << t) - 1); + } + else { + x[0] = 0; + } + this.fromString(x, 256); + } + }; + // BigInteger.prototype.bitwiseTo = bnpBitwiseTo; + // (protected) r = this op a (bitwise) + BigInteger.prototype.bitwiseTo = function (a, op, r) { + var i; + var f; + var m = Math.min(a.t, this.t); + for (i = 0; i < m; ++i) { + r[i] = op(this[i], a[i]); + } + if (a.t < this.t) { + f = a.s & this.DM; + for (i = m; i < this.t; ++i) { + r[i] = op(this[i], f); + } + r.t = this.t; + } + else { + f = this.s & this.DM; + for (i = m; i < a.t; ++i) { + r[i] = op(f, a[i]); + } + r.t = a.t; + } + r.s = op(this.s, a.s); + r.clamp(); + }; + // BigInteger.prototype.changeBit = bnpChangeBit; + // (protected) this op (1<>= this.DB; + } + if (a.t < this.t) { + c += a.s; + while (i < this.t) { + c += this[i]; + r[i++] = c & this.DM; + c >>= this.DB; + } + c += this.s; + } + else { + c += this.s; + while (i < a.t) { + c += a[i]; + r[i++] = c & this.DM; + c >>= this.DB; + } + c += a.s; + } + r.s = (c < 0) ? -1 : 0; + if (c > 0) { + r[i++] = c; + } + else if (c < -1) { + r[i++] = this.DV + c; + } + r.t = i; + r.clamp(); + }; + // BigInteger.prototype.dMultiply = bnpDMultiply; + // (protected) this *= n, this >= 0, 1 < n < DV + BigInteger.prototype.dMultiply = function (n) { + this[this.t] = this.am(0, n - 1, this, 0, 0, this.t); + ++this.t; + this.clamp(); + }; + // BigInteger.prototype.dAddOffset = bnpDAddOffset; + // (protected) this += n << w words, this >= 0 + BigInteger.prototype.dAddOffset = function (n, w) { + if (n == 0) { + return; + } + while (this.t <= w) { + this[this.t++] = 0; + } + this[w] += n; + while (this[w] >= this.DV) { + this[w] -= this.DV; + if (++w >= this.t) { + this[this.t++] = 0; + } + ++this[w]; + } + }; + // BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo; + // (protected) r = lower n words of "this * a", a.t <= n + // "this" should be the larger one if appropriate. + BigInteger.prototype.multiplyLowerTo = function (a, n, r) { + var i = Math.min(this.t + a.t, n); + r.s = 0; // assumes a,this >= 0 + r.t = i; + while (i > 0) { + r[--i] = 0; + } + for (var j = r.t - this.t; i < j; ++i) { + r[i + this.t] = this.am(0, a[i], r, i, 0, this.t); + } + for (var j = Math.min(a.t, n); i < j; ++i) { + this.am(0, a[i], r, i, 0, n - i); + } + r.clamp(); + }; + // BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo; + // (protected) r = "this * a" without lower n words, n > 0 + // "this" should be the larger one if appropriate. + BigInteger.prototype.multiplyUpperTo = function (a, n, r) { + --n; + var i = r.t = this.t + a.t - n; + r.s = 0; // assumes a,this >= 0 + while (--i >= 0) { + r[i] = 0; + } + for (i = Math.max(n - this.t, 0); i < a.t; ++i) { + r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n); + } + r.clamp(); + r.drShiftTo(1, r); + }; + // BigInteger.prototype.modInt = bnpModInt; + // (protected) this % n, n < 2^26 + BigInteger.prototype.modInt = function (n) { + if (n <= 0) { + return 0; + } + var d = this.DV % n; + var r = (this.s < 0) ? n - 1 : 0; + if (this.t > 0) { + if (d == 0) { + r = this[0] % n; + } + else { + for (var i = this.t - 1; i >= 0; --i) { + r = (d * r + this[i]) % n; + } + } + } + return r; + }; + // BigInteger.prototype.millerRabin = bnpMillerRabin; + // (protected) true if probably prime (HAC 4.24, Miller-Rabin) + BigInteger.prototype.millerRabin = function (t) { + var n1 = this.subtract(BigInteger.ONE); + var k = n1.getLowestSetBit(); + if (k <= 0) { + return false; + } + var r = n1.shiftRight(k); + t = (t + 1) >> 1; + if (t > lowprimes.length) { + t = lowprimes.length; + } + var a = nbi(); + for (var i = 0; i < t; ++i) { + // Pick bases at random, instead of starting at 2 + a.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]); + var y = a.modPow(r, this); + if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) { + var j = 1; + while (j++ < k && y.compareTo(n1) != 0) { + y = y.modPowInt(2, this); + if (y.compareTo(BigInteger.ONE) == 0) { + return false; + } + } + if (y.compareTo(n1) != 0) { + return false; + } + } + } + return true; + }; + // BigInteger.prototype.square = bnSquare; + // (public) this^2 + BigInteger.prototype.square = function () { + var r = nbi(); + this.squareTo(r); + return r; + }; + //#region ASYNC + // Public API method + BigInteger.prototype.gcda = function (a, callback) { + var x = (this.s < 0) ? this.negate() : this.clone(); + var y = (a.s < 0) ? a.negate() : a.clone(); + if (x.compareTo(y) < 0) { + var t = x; + x = y; + y = t; + } + var i = x.getLowestSetBit(); + var g = y.getLowestSetBit(); + if (g < 0) { + callback(x); + return; + } + if (i < g) { + g = i; + } + if (g > 0) { + x.rShiftTo(g, x); + y.rShiftTo(g, y); + } + // Workhorse of the algorithm, gets called 200 - 800 times per 512 bit keygen. + var gcda1 = function () { + if ((i = x.getLowestSetBit()) > 0) { + x.rShiftTo(i, x); + } + if ((i = y.getLowestSetBit()) > 0) { + y.rShiftTo(i, y); + } + if (x.compareTo(y) >= 0) { + x.subTo(y, x); + x.rShiftTo(1, x); + } + else { + y.subTo(x, y); + y.rShiftTo(1, y); + } + if (!(x.signum() > 0)) { + if (g > 0) { + y.lShiftTo(g, y); + } + setTimeout(function () { callback(y); }, 0); // escape + } + else { + setTimeout(gcda1, 0); + } + }; + setTimeout(gcda1, 10); + }; + // (protected) alternate constructor + BigInteger.prototype.fromNumberAsync = function (a, b, c, callback) { + if ("number" == typeof b) { + if (a < 2) { + this.fromInt(1); + } + else { + this.fromNumber(a, c); + if (!this.testBit(a - 1)) { + this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this); + } + if (this.isEven()) { + this.dAddOffset(1, 0); + } + var bnp_1 = this; + var bnpfn1_1 = function () { + bnp_1.dAddOffset(2, 0); + if (bnp_1.bitLength() > a) { + bnp_1.subTo(BigInteger.ONE.shiftLeft(a - 1), bnp_1); + } + if (bnp_1.isProbablePrime(b)) { + setTimeout(function () { callback(); }, 0); // escape + } + else { + setTimeout(bnpfn1_1, 0); + } + }; + setTimeout(bnpfn1_1, 0); + } + } + else { + var x = []; + var t = a & 7; + x.length = (a >> 3) + 1; + b.nextBytes(x); + if (t > 0) { + x[0] &= ((1 << t) - 1); + } + else { + x[0] = 0; + } + this.fromString(x, 256); + } + }; + return BigInteger; +}()); +export { BigInteger }; +//#region REDUCERS +//#region NullExp +var NullExp = /** @class */ (function () { + function NullExp() { + } + // NullExp.prototype.convert = nNop; + NullExp.prototype.convert = function (x) { + return x; + }; + // NullExp.prototype.revert = nNop; + NullExp.prototype.revert = function (x) { + return x; + }; + // NullExp.prototype.mulTo = nMulTo; + NullExp.prototype.mulTo = function (x, y, r) { + x.multiplyTo(y, r); + }; + // NullExp.prototype.sqrTo = nSqrTo; + NullExp.prototype.sqrTo = function (x, r) { + x.squareTo(r); + }; + return NullExp; +}()); +// Modular reduction using "classic" algorithm +var Classic = /** @class */ (function () { + function Classic(m) { + this.m = m; + } + // Classic.prototype.convert = cConvert; + Classic.prototype.convert = function (x) { + if (x.s < 0 || x.compareTo(this.m) >= 0) { + return x.mod(this.m); + } + else { + return x; + } + }; + // Classic.prototype.revert = cRevert; + Classic.prototype.revert = function (x) { + return x; + }; + // Classic.prototype.reduce = cReduce; + Classic.prototype.reduce = function (x) { + x.divRemTo(this.m, null, x); + }; + // Classic.prototype.mulTo = cMulTo; + Classic.prototype.mulTo = function (x, y, r) { + x.multiplyTo(y, r); + this.reduce(r); + }; + // Classic.prototype.sqrTo = cSqrTo; + Classic.prototype.sqrTo = function (x, r) { + x.squareTo(r); + this.reduce(r); + }; + return Classic; +}()); +//#endregion +//#region Montgomery +// Montgomery reduction +var Montgomery = /** @class */ (function () { + function Montgomery(m) { + this.m = m; + this.mp = m.invDigit(); + this.mpl = this.mp & 0x7fff; + this.mph = this.mp >> 15; + this.um = (1 << (m.DB - 15)) - 1; + this.mt2 = 2 * m.t; + } + // Montgomery.prototype.convert = montConvert; + // xR mod m + Montgomery.prototype.convert = function (x) { + var r = nbi(); + x.abs().dlShiftTo(this.m.t, r); + r.divRemTo(this.m, null, r); + if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) { + this.m.subTo(r, r); + } + return r; + }; + // Montgomery.prototype.revert = montRevert; + // x/R mod m + Montgomery.prototype.revert = function (x) { + var r = nbi(); + x.copyTo(r); + this.reduce(r); + return r; + }; + // Montgomery.prototype.reduce = montReduce; + // x = x/R mod m (HAC 14.32) + Montgomery.prototype.reduce = function (x) { + while (x.t <= this.mt2) { + // pad x so am has enough room later + x[x.t++] = 0; + } + for (var i = 0; i < this.m.t; ++i) { + // faster way of calculating u0 = x[i]*mp mod DV + var j = x[i] & 0x7fff; + var u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM; + // use am to combine the multiply-shift-add into one call + j = i + this.m.t; + x[j] += this.m.am(0, u0, x, i, 0, this.m.t); + // propagate carry + while (x[j] >= x.DV) { + x[j] -= x.DV; + x[++j]++; + } + } + x.clamp(); + x.drShiftTo(this.m.t, x); + if (x.compareTo(this.m) >= 0) { + x.subTo(this.m, x); + } + }; + // Montgomery.prototype.mulTo = montMulTo; + // r = "xy/R mod m"; x,y != r + Montgomery.prototype.mulTo = function (x, y, r) { + x.multiplyTo(y, r); + this.reduce(r); + }; + // Montgomery.prototype.sqrTo = montSqrTo; + // r = "x^2/R mod m"; x != r + Montgomery.prototype.sqrTo = function (x, r) { + x.squareTo(r); + this.reduce(r); + }; + return Montgomery; +}()); +//#endregion Montgomery +//#region Barrett +// Barrett modular reduction +var Barrett = /** @class */ (function () { + function Barrett(m) { + this.m = m; + // setup Barrett + this.r2 = nbi(); + this.q3 = nbi(); + BigInteger.ONE.dlShiftTo(2 * m.t, this.r2); + this.mu = this.r2.divide(m); + } + // Barrett.prototype.convert = barrettConvert; + Barrett.prototype.convert = function (x) { + if (x.s < 0 || x.t > 2 * this.m.t) { + return x.mod(this.m); + } + else if (x.compareTo(this.m) < 0) { + return x; + } + else { + var r = nbi(); + x.copyTo(r); + this.reduce(r); + return r; + } + }; + // Barrett.prototype.revert = barrettRevert; + Barrett.prototype.revert = function (x) { + return x; + }; + // Barrett.prototype.reduce = barrettReduce; + // x = x mod m (HAC 14.42) + Barrett.prototype.reduce = function (x) { + x.drShiftTo(this.m.t - 1, this.r2); + if (x.t > this.m.t + 1) { + x.t = this.m.t + 1; + x.clamp(); + } + this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3); + this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); + while (x.compareTo(this.r2) < 0) { + x.dAddOffset(1, this.m.t + 1); + } + x.subTo(this.r2, x); + while (x.compareTo(this.m) >= 0) { + x.subTo(this.m, x); + } + }; + // Barrett.prototype.mulTo = barrettMulTo; + // r = x*y mod m; x,y != r + Barrett.prototype.mulTo = function (x, y, r) { + x.multiplyTo(y, r); + this.reduce(r); + }; + // Barrett.prototype.sqrTo = barrettSqrTo; + // r = x^2 mod m; x != r + Barrett.prototype.sqrTo = function (x, r) { + x.squareTo(r); + this.reduce(r); + }; + return Barrett; +}()); +//#endregion +//#endregion REDUCERS +// return new, unset BigInteger +export function nbi() { return new BigInteger(null); } +export function parseBigInt(str, r) { + return new BigInteger(str, r); +} +// am: Compute w_j += (x*this_i), propagate carries, +// c is initial carry, returns final carry. +// c < 3*dvalue, x < 2*dvalue, this_i < dvalue +// We need to select the fastest one that works in this environment. +var inBrowser = typeof navigator !== "undefined"; +if (inBrowser && j_lm && (navigator.appName == "Microsoft Internet Explorer")) { + // am2 avoids a big mult-and-extract completely. + // Max digit bits should be <= 30 because we do bitwise ops + // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) + BigInteger.prototype.am = function am2(i, x, w, j, c, n) { + var xl = x & 0x7fff; + var xh = x >> 15; + while (--n >= 0) { + var l = this[i] & 0x7fff; + var h = this[i++] >> 15; + var m = xh * l + h * xl; + l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff); + c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30); + w[j++] = l & 0x3fffffff; + } + return c; + }; + dbits = 30; +} +else if (inBrowser && j_lm && (navigator.appName != "Netscape")) { + // am1: use a single mult and divide to get the high bits, + // max digit bits should be 26 because + // max internal value = 2*dvalue^2-2*dvalue (< 2^53) + BigInteger.prototype.am = function am1(i, x, w, j, c, n) { + while (--n >= 0) { + var v = x * this[i++] + w[j] + c; + c = Math.floor(v / 0x4000000); + w[j++] = v & 0x3ffffff; + } + return c; + }; + dbits = 26; +} +else { // Mozilla/Netscape seems to prefer am3 + // Alternately, set max digit bits to 28 since some + // browsers slow down when dealing with 32-bit numbers. + BigInteger.prototype.am = function am3(i, x, w, j, c, n) { + var xl = x & 0x3fff; + var xh = x >> 14; + while (--n >= 0) { + var l = this[i] & 0x3fff; + var h = this[i++] >> 14; + var m = xh * l + h * xl; + l = xl * l + ((m & 0x3fff) << 14) + w[j] + c; + c = (l >> 28) + (m >> 14) + xh * h; + w[j++] = l & 0xfffffff; + } + return c; + }; + dbits = 28; +} +BigInteger.prototype.DB = dbits; +BigInteger.prototype.DM = ((1 << dbits) - 1); +BigInteger.prototype.DV = (1 << dbits); +var BI_FP = 52; +BigInteger.prototype.FV = Math.pow(2, BI_FP); +BigInteger.prototype.F1 = BI_FP - dbits; +BigInteger.prototype.F2 = 2 * dbits - BI_FP; +// Digit conversions +var BI_RC = []; +var rr; +var vv; +rr = "0".charCodeAt(0); +for (vv = 0; vv <= 9; ++vv) { + BI_RC[rr++] = vv; +} +rr = "a".charCodeAt(0); +for (vv = 10; vv < 36; ++vv) { + BI_RC[rr++] = vv; +} +rr = "A".charCodeAt(0); +for (vv = 10; vv < 36; ++vv) { + BI_RC[rr++] = vv; +} +export function intAt(s, i) { + var c = BI_RC[s.charCodeAt(i)]; + return (c == null) ? -1 : c; +} +// return bigint initialized to value +export function nbv(i) { + var r = nbi(); + r.fromInt(i); + return r; +} +// returns bit length of the integer x +export function nbits(x) { + var r = 1; + var t; + if ((t = x >>> 16) != 0) { + x = t; + r += 16; + } + if ((t = x >> 8) != 0) { + x = t; + r += 8; + } + if ((t = x >> 4) != 0) { + x = t; + r += 4; + } + if ((t = x >> 2) != 0) { + x = t; + r += 2; + } + if ((t = x >> 1) != 0) { + x = t; + r += 1; + } + return r; +} +// "constants" +BigInteger.ZERO = nbv(0); +BigInteger.ONE = nbv(1); diff --git a/node_modules/jsencrypt/lib/lib/jsbn/prng4.d.ts b/node_modules/jsencrypt/lib/lib/jsbn/prng4.d.ts new file mode 100644 index 0000000..f3ec870 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/prng4.d.ts @@ -0,0 +1,10 @@ +export declare class Arcfour { + constructor(); + init(key: number[]): void; + next(): number; + private i; + private j; + private S; +} +export declare function prng_newstate(): Arcfour; +export declare let rng_psize: number; diff --git a/node_modules/jsencrypt/lib/lib/jsbn/prng4.js b/node_modules/jsencrypt/lib/lib/jsbn/prng4.js new file mode 100644 index 0000000..80c4724 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/prng4.js @@ -0,0 +1,46 @@ +// prng4.js - uses Arcfour as a PRNG +var Arcfour = /** @class */ (function () { + function Arcfour() { + this.i = 0; + this.j = 0; + this.S = []; + } + // Arcfour.prototype.init = ARC4init; + // Initialize arcfour context from key, an array of ints, each from [0..255] + Arcfour.prototype.init = function (key) { + var i; + var j; + var t; + for (i = 0; i < 256; ++i) { + this.S[i] = i; + } + j = 0; + for (i = 0; i < 256; ++i) { + j = (j + this.S[i] + key[i % key.length]) & 255; + t = this.S[i]; + this.S[i] = this.S[j]; + this.S[j] = t; + } + this.i = 0; + this.j = 0; + }; + // Arcfour.prototype.next = ARC4next; + Arcfour.prototype.next = function () { + var t; + this.i = (this.i + 1) & 255; + this.j = (this.j + this.S[this.i]) & 255; + t = this.S[this.i]; + this.S[this.i] = this.S[this.j]; + this.S[this.j] = t; + return this.S[(t + this.S[this.i]) & 255]; + }; + return Arcfour; +}()); +export { Arcfour }; +// Plug in your RNG constructor here +export function prng_newstate() { + return new Arcfour(); +} +// Pool size must be a multiple of 4 and greater than 32. +// An array of bytes the size of the pool will be passed to init() +export var rng_psize = 256; diff --git a/node_modules/jsencrypt/lib/lib/jsbn/rng.d.ts b/node_modules/jsencrypt/lib/lib/jsbn/rng.d.ts new file mode 100644 index 0000000..49ad80d --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/rng.d.ts @@ -0,0 +1,3 @@ +export declare class SecureRandom { + nextBytes(ba: number[]): void; +} diff --git a/node_modules/jsencrypt/lib/lib/jsbn/rng.js b/node_modules/jsencrypt/lib/lib/jsbn/rng.js new file mode 100644 index 0000000..65bd0df --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/rng.js @@ -0,0 +1,78 @@ +// Random number generator - requires a PRNG backend, e.g. prng4.js +import { prng_newstate, rng_psize } from "./prng4"; +var rng_state; +var rng_pool = null; +var rng_pptr; +// Initialize the pool with junk if needed. +if (rng_pool == null) { + rng_pool = []; + rng_pptr = 0; + var t = void 0; + if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) { + // Extract entropy (2048 bits) from RNG if available + var z = new Uint32Array(256); + window.crypto.getRandomValues(z); + for (t = 0; t < z.length; ++t) { + rng_pool[rng_pptr++] = z[t] & 255; + } + } + // Use mouse events for entropy, if we do not have enough entropy by the time + // we need it, entropy will be generated by Math.random. + var count = 0; + var onMouseMoveListener_1 = function (ev) { + count = count || 0; + if (count >= 256 || rng_pptr >= rng_psize) { + if (window.removeEventListener) { + window.removeEventListener("mousemove", onMouseMoveListener_1, false); + } + else if (window.detachEvent) { + window.detachEvent("onmousemove", onMouseMoveListener_1); + } + return; + } + try { + var mouseCoordinates = ev.x + ev.y; + rng_pool[rng_pptr++] = mouseCoordinates & 255; + count += 1; + } + catch (e) { + // Sometimes Firefox will deny permission to access event properties for some reason. Ignore. + } + }; + if (typeof window !== 'undefined') { + if (window.addEventListener) { + window.addEventListener("mousemove", onMouseMoveListener_1, false); + } + else if (window.attachEvent) { + window.attachEvent("onmousemove", onMouseMoveListener_1); + } + } +} +function rng_get_byte() { + if (rng_state == null) { + rng_state = prng_newstate(); + // At this point, we may not have collected enough entropy. If not, fall back to Math.random + while (rng_pptr < rng_psize) { + var random = Math.floor(65536 * Math.random()); + rng_pool[rng_pptr++] = random & 255; + } + rng_state.init(rng_pool); + for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) { + rng_pool[rng_pptr] = 0; + } + rng_pptr = 0; + } + // TODO: allow reseeding after first request + return rng_state.next(); +} +var SecureRandom = /** @class */ (function () { + function SecureRandom() { + } + SecureRandom.prototype.nextBytes = function (ba) { + for (var i = 0; i < ba.length; ++i) { + ba[i] = rng_get_byte(); + } + }; + return SecureRandom; +}()); +export { SecureRandom }; diff --git a/node_modules/jsencrypt/lib/lib/jsbn/rsa.d.ts b/node_modules/jsencrypt/lib/lib/jsbn/rsa.d.ts new file mode 100644 index 0000000..1285ad3 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/rsa.d.ts @@ -0,0 +1,23 @@ +import { BigInteger } from "./jsbn"; +export declare class RSAKey { + constructor(); + doPublic(x: BigInteger): BigInteger; + doPrivate(x: BigInteger): BigInteger; + setPublic(N: string, E: string): void; + encrypt(text: string): string; + setPrivate(N: string, E: string, D: string): void; + setPrivateEx(N: string, E: string, D: string, P: string, Q: string, DP: string, DQ: string, C: string): void; + generate(B: number, E: string): void; + decrypt(ctext: string): string; + generateAsync(B: number, E: string, callback: () => void): void; + sign(text: string, digestMethod: (str: string) => string, digestName: string): string; + verify(text: string, signature: string, digestMethod: (str: string) => string): boolean; + protected n: BigInteger; + protected e: number; + protected d: BigInteger; + protected p: BigInteger; + protected q: BigInteger; + protected dmp1: BigInteger; + protected dmq1: BigInteger; + protected coeff: BigInteger; +} diff --git a/node_modules/jsencrypt/lib/lib/jsbn/rsa.js b/node_modules/jsencrypt/lib/lib/jsbn/rsa.js new file mode 100644 index 0000000..b47d793 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/rsa.js @@ -0,0 +1,373 @@ +// Depends on jsbn.js and rng.js +// Version 1.1: support utf-8 encoding in pkcs1pad2 +// convert a (hex) string to a bignum object +import { BigInteger, nbi, parseBigInt } from "./jsbn"; +import { SecureRandom } from "./rng"; +// function linebrk(s,n) { +// var ret = ""; +// var i = 0; +// while(i + n < s.length) { +// ret += s.substring(i,i+n) + "\n"; +// i += n; +// } +// return ret + s.substring(i,s.length); +// } +// function byte2Hex(b) { +// if(b < 0x10) +// return "0" + b.toString(16); +// else +// return b.toString(16); +// } +function pkcs1pad1(s, n) { + if (n < s.length + 22) { + console.error("Message too long for RSA"); + return null; + } + var len = n - s.length - 6; + var filler = ""; + for (var f = 0; f < len; f += 2) { + filler += "ff"; + } + var m = "0001" + filler + "00" + s; + return parseBigInt(m, 16); +} +// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint +function pkcs1pad2(s, n) { + if (n < s.length + 11) { // TODO: fix for utf-8 + console.error("Message too long for RSA"); + return null; + } + var ba = []; + var i = s.length - 1; + while (i >= 0 && n > 0) { + var c = s.charCodeAt(i--); + if (c < 128) { // encode using utf-8 + ba[--n] = c; + } + else if ((c > 127) && (c < 2048)) { + ba[--n] = (c & 63) | 128; + ba[--n] = (c >> 6) | 192; + } + else { + ba[--n] = (c & 63) | 128; + ba[--n] = ((c >> 6) & 63) | 128; + ba[--n] = (c >> 12) | 224; + } + } + ba[--n] = 0; + var rng = new SecureRandom(); + var x = []; + while (n > 2) { // random non-zero pad + x[0] = 0; + while (x[0] == 0) { + rng.nextBytes(x); + } + ba[--n] = x[0]; + } + ba[--n] = 2; + ba[--n] = 0; + return new BigInteger(ba); +} +// "empty" RSA key constructor +var RSAKey = /** @class */ (function () { + function RSAKey() { + this.n = null; + this.e = 0; + this.d = null; + this.p = null; + this.q = null; + this.dmp1 = null; + this.dmq1 = null; + this.coeff = null; + } + //#region PROTECTED + // protected + // RSAKey.prototype.doPublic = RSADoPublic; + // Perform raw public operation on "x": return x^e (mod n) + RSAKey.prototype.doPublic = function (x) { + return x.modPowInt(this.e, this.n); + }; + // RSAKey.prototype.doPrivate = RSADoPrivate; + // Perform raw private operation on "x": return x^d (mod n) + RSAKey.prototype.doPrivate = function (x) { + if (this.p == null || this.q == null) { + return x.modPow(this.d, this.n); + } + // TODO: re-calculate any missing CRT params + var xp = x.mod(this.p).modPow(this.dmp1, this.p); + var xq = x.mod(this.q).modPow(this.dmq1, this.q); + while (xp.compareTo(xq) < 0) { + xp = xp.add(this.p); + } + return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq); + }; + //#endregion PROTECTED + //#region PUBLIC + // RSAKey.prototype.setPublic = RSASetPublic; + // Set the public key fields N and e from hex strings + RSAKey.prototype.setPublic = function (N, E) { + if (N != null && E != null && N.length > 0 && E.length > 0) { + this.n = parseBigInt(N, 16); + this.e = parseInt(E, 16); + } + else { + console.error("Invalid RSA public key"); + } + }; + // RSAKey.prototype.encrypt = RSAEncrypt; + // Return the PKCS#1 RSA encryption of "text" as an even-length hex string + RSAKey.prototype.encrypt = function (text) { + var maxLength = (this.n.bitLength() + 7) >> 3; + var m = pkcs1pad2(text, maxLength); + if (m == null) { + return null; + } + var c = this.doPublic(m); + if (c == null) { + return null; + } + var h = c.toString(16); + var length = h.length; + // fix zero before result + for (var i = 0; i < maxLength * 2 - length; i++) { + h = "0" + h; + } + return h; + }; + // RSAKey.prototype.setPrivate = RSASetPrivate; + // Set the private key fields N, e, and d from hex strings + RSAKey.prototype.setPrivate = function (N, E, D) { + if (N != null && E != null && N.length > 0 && E.length > 0) { + this.n = parseBigInt(N, 16); + this.e = parseInt(E, 16); + this.d = parseBigInt(D, 16); + } + else { + console.error("Invalid RSA private key"); + } + }; + // RSAKey.prototype.setPrivateEx = RSASetPrivateEx; + // Set the private key fields N, e, d and CRT params from hex strings + RSAKey.prototype.setPrivateEx = function (N, E, D, P, Q, DP, DQ, C) { + if (N != null && E != null && N.length > 0 && E.length > 0) { + this.n = parseBigInt(N, 16); + this.e = parseInt(E, 16); + this.d = parseBigInt(D, 16); + this.p = parseBigInt(P, 16); + this.q = parseBigInt(Q, 16); + this.dmp1 = parseBigInt(DP, 16); + this.dmq1 = parseBigInt(DQ, 16); + this.coeff = parseBigInt(C, 16); + } + else { + console.error("Invalid RSA private key"); + } + }; + // RSAKey.prototype.generate = RSAGenerate; + // Generate a new random private key B bits long, using public expt E + RSAKey.prototype.generate = function (B, E) { + var rng = new SecureRandom(); + var qs = B >> 1; + this.e = parseInt(E, 16); + var ee = new BigInteger(E, 16); + for (;;) { + for (;;) { + this.p = new BigInteger(B - qs, 1, rng); + if (this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) { + break; + } + } + for (;;) { + this.q = new BigInteger(qs, 1, rng); + if (this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) { + break; + } + } + if (this.p.compareTo(this.q) <= 0) { + var t = this.p; + this.p = this.q; + this.q = t; + } + var p1 = this.p.subtract(BigInteger.ONE); + var q1 = this.q.subtract(BigInteger.ONE); + var phi = p1.multiply(q1); + if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) { + this.n = this.p.multiply(this.q); + this.d = ee.modInverse(phi); + this.dmp1 = this.d.mod(p1); + this.dmq1 = this.d.mod(q1); + this.coeff = this.q.modInverse(this.p); + break; + } + } + }; + // RSAKey.prototype.decrypt = RSADecrypt; + // Return the PKCS#1 RSA decryption of "ctext". + // "ctext" is an even-length hex string and the output is a plain string. + RSAKey.prototype.decrypt = function (ctext) { + var c = parseBigInt(ctext, 16); + var m = this.doPrivate(c); + if (m == null) { + return null; + } + return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3); + }; + // Generate a new random private key B bits long, using public expt E + RSAKey.prototype.generateAsync = function (B, E, callback) { + var rng = new SecureRandom(); + var qs = B >> 1; + this.e = parseInt(E, 16); + var ee = new BigInteger(E, 16); + var rsa = this; + // These functions have non-descript names because they were originally for(;;) loops. + // I don't know about cryptography to give them better names than loop1-4. + var loop1 = function () { + var loop4 = function () { + if (rsa.p.compareTo(rsa.q) <= 0) { + var t = rsa.p; + rsa.p = rsa.q; + rsa.q = t; + } + var p1 = rsa.p.subtract(BigInteger.ONE); + var q1 = rsa.q.subtract(BigInteger.ONE); + var phi = p1.multiply(q1); + if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) { + rsa.n = rsa.p.multiply(rsa.q); + rsa.d = ee.modInverse(phi); + rsa.dmp1 = rsa.d.mod(p1); + rsa.dmq1 = rsa.d.mod(q1); + rsa.coeff = rsa.q.modInverse(rsa.p); + setTimeout(function () { callback(); }, 0); // escape + } + else { + setTimeout(loop1, 0); + } + }; + var loop3 = function () { + rsa.q = nbi(); + rsa.q.fromNumberAsync(qs, 1, rng, function () { + rsa.q.subtract(BigInteger.ONE).gcda(ee, function (r) { + if (r.compareTo(BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) { + setTimeout(loop4, 0); + } + else { + setTimeout(loop3, 0); + } + }); + }); + }; + var loop2 = function () { + rsa.p = nbi(); + rsa.p.fromNumberAsync(B - qs, 1, rng, function () { + rsa.p.subtract(BigInteger.ONE).gcda(ee, function (r) { + if (r.compareTo(BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) { + setTimeout(loop3, 0); + } + else { + setTimeout(loop2, 0); + } + }); + }); + }; + setTimeout(loop2, 0); + }; + setTimeout(loop1, 0); + }; + RSAKey.prototype.sign = function (text, digestMethod, digestName) { + var header = getDigestHeader(digestName); + var digest = header + digestMethod(text).toString(); + var m = pkcs1pad1(digest, this.n.bitLength() / 4); + if (m == null) { + return null; + } + var c = this.doPrivate(m); + if (c == null) { + return null; + } + var h = c.toString(16); + if ((h.length & 1) == 0) { + return h; + } + else { + return "0" + h; + } + }; + RSAKey.prototype.verify = function (text, signature, digestMethod) { + var c = parseBigInt(signature, 16); + var m = this.doPublic(c); + if (m == null) { + return null; + } + var unpadded = m.toString(16).replace(/^1f+00/, ""); + var digest = removeDigestHeader(unpadded); + return digest == digestMethod(text).toString(); + }; + return RSAKey; +}()); +export { RSAKey }; +// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext +function pkcs1unpad2(d, n) { + var b = d.toByteArray(); + var i = 0; + while (i < b.length && b[i] == 0) { + ++i; + } + if (b.length - i != n - 1 || b[i] != 2) { + return null; + } + ++i; + while (b[i] != 0) { + if (++i >= b.length) { + return null; + } + } + var ret = ""; + while (++i < b.length) { + var c = b[i] & 255; + if (c < 128) { // utf-8 decode + ret += String.fromCharCode(c); + } + else if ((c > 191) && (c < 224)) { + ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63)); + ++i; + } + else { + ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63)); + i += 2; + } + } + return ret; +} +// https://tools.ietf.org/html/rfc3447#page-43 +var DIGEST_HEADERS = { + md2: "3020300c06082a864886f70d020205000410", + md5: "3020300c06082a864886f70d020505000410", + sha1: "3021300906052b0e03021a05000414", + sha224: "302d300d06096086480165030402040500041c", + sha256: "3031300d060960864801650304020105000420", + sha384: "3041300d060960864801650304020205000430", + sha512: "3051300d060960864801650304020305000440", + ripemd160: "3021300906052b2403020105000414" +}; +function getDigestHeader(name) { + return DIGEST_HEADERS[name] || ""; +} +function removeDigestHeader(str) { + for (var name_1 in DIGEST_HEADERS) { + if (DIGEST_HEADERS.hasOwnProperty(name_1)) { + var header = DIGEST_HEADERS[name_1]; + var len = header.length; + if (str.substr(0, len) == header) { + return str.substr(len); + } + } + } + return str; +} +// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string +// function RSAEncryptB64(text) { +// var h = this.encrypt(text); +// if(h) return hex2b64(h); else return null; +// } +// public +// RSAKey.prototype.encrypt_b64 = RSAEncryptB64; diff --git a/node_modules/jsencrypt/lib/lib/jsbn/util.d.ts b/node_modules/jsencrypt/lib/lib/jsbn/util.d.ts new file mode 100644 index 0000000..57d0160 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/util.d.ts @@ -0,0 +1,7 @@ +export declare function int2char(n: number): string; +export declare function op_and(x: number, y: number): number; +export declare function op_or(x: number, y: number): number; +export declare function op_xor(x: number, y: number): number; +export declare function op_andnot(x: number, y: number): number; +export declare function lbit(x: number): number; +export declare function cbit(x: number): number; diff --git a/node_modules/jsencrypt/lib/lib/jsbn/util.js b/node_modules/jsencrypt/lib/lib/jsbn/util.js new file mode 100644 index 0000000..122ac2f --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsbn/util.js @@ -0,0 +1,58 @@ +var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz"; +export function int2char(n) { + return BI_RM.charAt(n); +} +//#region BIT_OPERATIONS +// (public) this & a +export function op_and(x, y) { + return x & y; +} +// (public) this | a +export function op_or(x, y) { + return x | y; +} +// (public) this ^ a +export function op_xor(x, y) { + return x ^ y; +} +// (public) this & ~a +export function op_andnot(x, y) { + return x & ~y; +} +// return index of lowest 1-bit in x, x < 2^31 +export function lbit(x) { + if (x == 0) { + return -1; + } + var r = 0; + if ((x & 0xffff) == 0) { + x >>= 16; + r += 16; + } + if ((x & 0xff) == 0) { + x >>= 8; + r += 8; + } + if ((x & 0xf) == 0) { + x >>= 4; + r += 4; + } + if ((x & 3) == 0) { + x >>= 2; + r += 2; + } + if ((x & 1) == 0) { + ++r; + } + return r; +} +// return number of 1 bits in x +export function cbit(x) { + var r = 0; + while (x != 0) { + x &= x - 1; + ++r; + } + return r; +} +//#endregion BIT_OPERATIONS diff --git a/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js b/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js new file mode 100644 index 0000000..51f7896 --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js @@ -0,0 +1,1593 @@ +/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license + */ +/* + * asn1.js - ASN.1 DER encoder classes + * + * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com) + * + * This software is licensed under the terms of the MIT License. + * https://kjur.github.io/jsrsasign/license + * + * The above copyright and license notice shall be + * included in all copies or substantial portions of the Software. + */ +import { BigInteger } from "../jsbn/jsbn"; +import { YAHOO } from "./yahoo"; +/** + * @fileOverview + * @name asn1-1.0.js + * @author Kenji Urushima kenji.urushima@gmail.com + * @version asn1 1.0.13 (2017-Jun-02) + * @since jsrsasign 2.1 + * @license MIT License + */ +/** + * kjur's class library name space + *

+ * This name space provides following name spaces: + *

    + *
  • {@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder
  • + *
  • {@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL
  • + *
  • {@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature + * class and utilities
  • + *
+ *

+ * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2. + * @name KJUR + * @namespace kjur's class library name space + */ +export var KJUR = {}; +/** + * kjur's ASN.1 class library name space + *

+ * This is ITU-T X.690 ASN.1 DER encoder class library and + * class structure and methods is very similar to + * org.bouncycastle.asn1 package of + * well known BouncyCaslte Cryptography Library. + *

PROVIDING ASN.1 PRIMITIVES

+ * Here are ASN.1 DER primitive classes. + *
    + *
  • 0x01 {@link KJUR.asn1.DERBoolean}
  • + *
  • 0x02 {@link KJUR.asn1.DERInteger}
  • + *
  • 0x03 {@link KJUR.asn1.DERBitString}
  • + *
  • 0x04 {@link KJUR.asn1.DEROctetString}
  • + *
  • 0x05 {@link KJUR.asn1.DERNull}
  • + *
  • 0x06 {@link KJUR.asn1.DERObjectIdentifier}
  • + *
  • 0x0a {@link KJUR.asn1.DEREnumerated}
  • + *
  • 0x0c {@link KJUR.asn1.DERUTF8String}
  • + *
  • 0x12 {@link KJUR.asn1.DERNumericString}
  • + *
  • 0x13 {@link KJUR.asn1.DERPrintableString}
  • + *
  • 0x14 {@link KJUR.asn1.DERTeletexString}
  • + *
  • 0x16 {@link KJUR.asn1.DERIA5String}
  • + *
  • 0x17 {@link KJUR.asn1.DERUTCTime}
  • + *
  • 0x18 {@link KJUR.asn1.DERGeneralizedTime}
  • + *
  • 0x30 {@link KJUR.asn1.DERSequence}
  • + *
  • 0x31 {@link KJUR.asn1.DERSet}
  • + *
+ *

OTHER ASN.1 CLASSES

+ *
    + *
  • {@link KJUR.asn1.ASN1Object}
  • + *
  • {@link KJUR.asn1.DERAbstractString}
  • + *
  • {@link KJUR.asn1.DERAbstractTime}
  • + *
  • {@link KJUR.asn1.DERAbstractStructured}
  • + *
  • {@link KJUR.asn1.DERTaggedObject}
  • + *
+ *

SUB NAME SPACES

+ *
    + *
  • {@link KJUR.asn1.cades} - CAdES long term signature format
  • + *
  • {@link KJUR.asn1.cms} - Cryptographic Message Syntax
  • + *
  • {@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)
  • + *
  • {@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format
  • + *
  • {@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL
  • + *
+ *

+ * NOTE: Please ignore method summary and document of this namespace. + * This caused by a bug of jsdoc2. + * @name KJUR.asn1 + * @namespace + */ +if (typeof KJUR.asn1 == "undefined" || !KJUR.asn1) + KJUR.asn1 = {}; +/** + * ASN1 utilities class + * @name KJUR.asn1.ASN1Util + * @class ASN1 utilities class + * @since asn1 1.0.2 + */ +KJUR.asn1.ASN1Util = new function () { + this.integerToByteHex = function (i) { + var h = i.toString(16); + if ((h.length % 2) == 1) + h = '0' + h; + return h; + }; + this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) { + var h = bigIntegerValue.toString(16); + if (h.substr(0, 1) != '-') { + if (h.length % 2 == 1) { + h = '0' + h; + } + else { + if (!h.match(/^[0-7]/)) { + h = '00' + h; + } + } + } + else { + var hPos = h.substr(1); + var xorLen = hPos.length; + if (xorLen % 2 == 1) { + xorLen += 1; + } + else { + if (!h.match(/^[0-7]/)) { + xorLen += 2; + } + } + var hMask = ''; + for (var i = 0; i < xorLen; i++) { + hMask += 'f'; + } + var biMask = new BigInteger(hMask, 16); + var biNeg = biMask.xor(bigIntegerValue).add(BigInteger.ONE); + h = biNeg.toString(16).replace(/^-/, ''); + } + return h; + }; + /** + * get PEM string from hexadecimal data and header string + * @name getPEMStringFromHex + * @memberOf KJUR.asn1.ASN1Util + * @function + * @param {String} dataHex hexadecimal string of PEM body + * @param {String} pemHeader PEM header string (ex. 'RSA PRIVATE KEY') + * @return {String} PEM formatted string of input data + * @description + * This method converts a hexadecimal string to a PEM string with + * a specified header. Its line break will be CRLF("\r\n"). + * @example + * var pem = KJUR.asn1.ASN1Util.getPEMStringFromHex('616161', 'RSA PRIVATE KEY'); + * // value of pem will be: + * -----BEGIN PRIVATE KEY----- + * YWFh + * -----END PRIVATE KEY----- + */ + this.getPEMStringFromHex = function (dataHex, pemHeader) { + return hextopem(dataHex, pemHeader); + }; + /** + * generate ASN1Object specifed by JSON parameters + * @name newObject + * @memberOf KJUR.asn1.ASN1Util + * @function + * @param {Array} param JSON parameter to generate ASN1Object + * @return {KJUR.asn1.ASN1Object} generated object + * @since asn1 1.0.3 + * @description + * generate any ASN1Object specified by JSON param + * including ASN.1 primitive or structured. + * Generally 'param' can be described as follows: + *
+ * {TYPE-OF-ASNOBJ: ASN1OBJ-PARAMETER} + *
+ * 'TYPE-OF-ASN1OBJ' can be one of following symbols: + *
    + *
  • 'bool' - DERBoolean
  • + *
  • 'int' - DERInteger
  • + *
  • 'bitstr' - DERBitString
  • + *
  • 'octstr' - DEROctetString
  • + *
  • 'null' - DERNull
  • + *
  • 'oid' - DERObjectIdentifier
  • + *
  • 'enum' - DEREnumerated
  • + *
  • 'utf8str' - DERUTF8String
  • + *
  • 'numstr' - DERNumericString
  • + *
  • 'prnstr' - DERPrintableString
  • + *
  • 'telstr' - DERTeletexString
  • + *
  • 'ia5str' - DERIA5String
  • + *
  • 'utctime' - DERUTCTime
  • + *
  • 'gentime' - DERGeneralizedTime
  • + *
  • 'seq' - DERSequence
  • + *
  • 'set' - DERSet
  • + *
  • 'tag' - DERTaggedObject
  • + *
+ * @example + * newObject({'prnstr': 'aaa'}); + * newObject({'seq': [{'int': 3}, {'prnstr': 'aaa'}]}) + * // ASN.1 Tagged Object + * newObject({'tag': {'tag': 'a1', + * 'explicit': true, + * 'obj': {'seq': [{'int': 3}, {'prnstr': 'aaa'}]}}}); + * // more simple representation of ASN.1 Tagged Object + * newObject({'tag': ['a1', + * true, + * {'seq': [ + * {'int': 3}, + * {'prnstr': 'aaa'}]} + * ]}); + */ + this.newObject = function (param) { + var _KJUR = KJUR, _KJUR_asn1 = _KJUR.asn1, _DERBoolean = _KJUR_asn1.DERBoolean, _DERInteger = _KJUR_asn1.DERInteger, _DERBitString = _KJUR_asn1.DERBitString, _DEROctetString = _KJUR_asn1.DEROctetString, _DERNull = _KJUR_asn1.DERNull, _DERObjectIdentifier = _KJUR_asn1.DERObjectIdentifier, _DEREnumerated = _KJUR_asn1.DEREnumerated, _DERUTF8String = _KJUR_asn1.DERUTF8String, _DERNumericString = _KJUR_asn1.DERNumericString, _DERPrintableString = _KJUR_asn1.DERPrintableString, _DERTeletexString = _KJUR_asn1.DERTeletexString, _DERIA5String = _KJUR_asn1.DERIA5String, _DERUTCTime = _KJUR_asn1.DERUTCTime, _DERGeneralizedTime = _KJUR_asn1.DERGeneralizedTime, _DERSequence = _KJUR_asn1.DERSequence, _DERSet = _KJUR_asn1.DERSet, _DERTaggedObject = _KJUR_asn1.DERTaggedObject, _newObject = _KJUR_asn1.ASN1Util.newObject; + var keys = Object.keys(param); + if (keys.length != 1) + throw "key of param shall be only one."; + var key = keys[0]; + if (":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:".indexOf(":" + key + ":") == -1) + throw "undefined key: " + key; + if (key == "bool") + return new _DERBoolean(param[key]); + if (key == "int") + return new _DERInteger(param[key]); + if (key == "bitstr") + return new _DERBitString(param[key]); + if (key == "octstr") + return new _DEROctetString(param[key]); + if (key == "null") + return new _DERNull(param[key]); + if (key == "oid") + return new _DERObjectIdentifier(param[key]); + if (key == "enum") + return new _DEREnumerated(param[key]); + if (key == "utf8str") + return new _DERUTF8String(param[key]); + if (key == "numstr") + return new _DERNumericString(param[key]); + if (key == "prnstr") + return new _DERPrintableString(param[key]); + if (key == "telstr") + return new _DERTeletexString(param[key]); + if (key == "ia5str") + return new _DERIA5String(param[key]); + if (key == "utctime") + return new _DERUTCTime(param[key]); + if (key == "gentime") + return new _DERGeneralizedTime(param[key]); + if (key == "seq") { + var paramList = param[key]; + var a = []; + for (var i = 0; i < paramList.length; i++) { + var asn1Obj = _newObject(paramList[i]); + a.push(asn1Obj); + } + return new _DERSequence({ 'array': a }); + } + if (key == "set") { + var paramList = param[key]; + var a = []; + for (var i = 0; i < paramList.length; i++) { + var asn1Obj = _newObject(paramList[i]); + a.push(asn1Obj); + } + return new _DERSet({ 'array': a }); + } + if (key == "tag") { + var tagParam = param[key]; + if (Object.prototype.toString.call(tagParam) === '[object Array]' && + tagParam.length == 3) { + var obj = _newObject(tagParam[2]); + return new _DERTaggedObject({ tag: tagParam[0], + explicit: tagParam[1], + obj: obj }); + } + else { + var newParam = {}; + if (tagParam.explicit !== undefined) + newParam.explicit = tagParam.explicit; + if (tagParam.tag !== undefined) + newParam.tag = tagParam.tag; + if (tagParam.obj === undefined) + throw "obj shall be specified for 'tag'."; + newParam.obj = _newObject(tagParam.obj); + return new _DERTaggedObject(newParam); + } + } + }; + /** + * get encoded hexadecimal string of ASN1Object specifed by JSON parameters + * @name jsonToASN1HEX + * @memberOf KJUR.asn1.ASN1Util + * @function + * @param {Array} param JSON parameter to generate ASN1Object + * @return hexadecimal string of ASN1Object + * @since asn1 1.0.4 + * @description + * As for ASN.1 object representation of JSON object, + * please see {@link newObject}. + * @example + * jsonToASN1HEX({'prnstr': 'aaa'}); + */ + this.jsonToASN1HEX = function (param) { + var asn1Obj = this.newObject(param); + return asn1Obj.getEncodedHex(); + }; +}; +/** + * get dot noted oid number string from hexadecimal value of OID + * @name oidHexToInt + * @memberOf KJUR.asn1.ASN1Util + * @function + * @param {String} hex hexadecimal value of object identifier + * @return {String} dot noted string of object identifier + * @since jsrsasign 4.8.3 asn1 1.0.7 + * @description + * This static method converts from hexadecimal string representation of + * ASN.1 value of object identifier to oid number string. + * @example + * KJUR.asn1.ASN1Util.oidHexToInt('550406') → "2.5.4.6" + */ +KJUR.asn1.ASN1Util.oidHexToInt = function (hex) { + var s = ""; + var i01 = parseInt(hex.substr(0, 2), 16); + var i0 = Math.floor(i01 / 40); + var i1 = i01 % 40; + var s = i0 + "." + i1; + var binbuf = ""; + for (var i = 2; i < hex.length; i += 2) { + var value = parseInt(hex.substr(i, 2), 16); + var bin = ("00000000" + value.toString(2)).slice(-8); + binbuf = binbuf + bin.substr(1, 7); + if (bin.substr(0, 1) == "0") { + var bi = new BigInteger(binbuf, 2); + s = s + "." + bi.toString(10); + binbuf = ""; + } + } + ; + return s; +}; +/** + * get hexadecimal value of object identifier from dot noted oid value + * @name oidIntToHex + * @memberOf KJUR.asn1.ASN1Util + * @function + * @param {String} oidString dot noted string of object identifier + * @return {String} hexadecimal value of object identifier + * @since jsrsasign 4.8.3 asn1 1.0.7 + * @description + * This static method converts from object identifier value string. + * to hexadecimal string representation of it. + * @example + * KJUR.asn1.ASN1Util.oidIntToHex("2.5.4.6") → "550406" + */ +KJUR.asn1.ASN1Util.oidIntToHex = function (oidString) { + var itox = function (i) { + var h = i.toString(16); + if (h.length == 1) + h = '0' + h; + return h; + }; + var roidtox = function (roid) { + var h = ''; + var bi = new BigInteger(roid, 10); + var b = bi.toString(2); + var padLen = 7 - b.length % 7; + if (padLen == 7) + padLen = 0; + var bPad = ''; + for (var i = 0; i < padLen; i++) + bPad += '0'; + b = bPad + b; + for (var i = 0; i < b.length - 1; i += 7) { + var b8 = b.substr(i, 7); + if (i != b.length - 7) + b8 = '1' + b8; + h += itox(parseInt(b8, 2)); + } + return h; + }; + if (!oidString.match(/^[0-9.]+$/)) { + throw "malformed oid string: " + oidString; + } + var h = ''; + var a = oidString.split('.'); + var i0 = parseInt(a[0]) * 40 + parseInt(a[1]); + h += itox(i0); + a.splice(0, 2); + for (var i = 0; i < a.length; i++) { + h += roidtox(a[i]); + } + return h; +}; +// ******************************************************************** +// Abstract ASN.1 Classes +// ******************************************************************** +// ******************************************************************** +/** + * base class for ASN.1 DER encoder object + * @name KJUR.asn1.ASN1Object + * @class base class for ASN.1 DER encoder object + * @property {Boolean} isModified flag whether internal data was changed + * @property {String} hTLV hexadecimal string of ASN.1 TLV + * @property {String} hT hexadecimal string of ASN.1 TLV tag(T) + * @property {String} hL hexadecimal string of ASN.1 TLV length(L) + * @property {String} hV hexadecimal string of ASN.1 TLV value(V) + * @description + */ +KJUR.asn1.ASN1Object = function () { + var isModified = true; + var hTLV = null; + var hT = '00'; + var hL = '00'; + var hV = ''; + /** + * get hexadecimal ASN.1 TLV length(L) bytes from TLV value(V) + * @name getLengthHexFromValue + * @memberOf KJUR.asn1.ASN1Object# + * @function + * @return {String} hexadecimal string of ASN.1 TLV length(L) + */ + this.getLengthHexFromValue = function () { + if (typeof this.hV == "undefined" || this.hV == null) { + throw "this.hV is null or undefined."; + } + if (this.hV.length % 2 == 1) { + throw "value hex must be even length: n=" + hV.length + ",v=" + this.hV; + } + var n = this.hV.length / 2; + var hN = n.toString(16); + if (hN.length % 2 == 1) { + hN = "0" + hN; + } + if (n < 128) { + return hN; + } + else { + var hNlen = hN.length / 2; + if (hNlen > 15) { + throw "ASN.1 length too long to represent by 8x: n = " + n.toString(16); + } + var head = 128 + hNlen; + return head.toString(16) + hN; + } + }; + /** + * get hexadecimal string of ASN.1 TLV bytes + * @name getEncodedHex + * @memberOf KJUR.asn1.ASN1Object# + * @function + * @return {String} hexadecimal string of ASN.1 TLV + */ + this.getEncodedHex = function () { + if (this.hTLV == null || this.isModified) { + this.hV = this.getFreshValueHex(); + this.hL = this.getLengthHexFromValue(); + this.hTLV = this.hT + this.hL + this.hV; + this.isModified = false; + //alert("first time: " + this.hTLV); + } + return this.hTLV; + }; + /** + * get hexadecimal string of ASN.1 TLV value(V) bytes + * @name getValueHex + * @memberOf KJUR.asn1.ASN1Object# + * @function + * @return {String} hexadecimal string of ASN.1 TLV value(V) bytes + */ + this.getValueHex = function () { + this.getEncodedHex(); + return this.hV; + }; + this.getFreshValueHex = function () { + return ''; + }; +}; +// == BEGIN DERAbstractString ================================================ +/** + * base class for ASN.1 DER string classes + * @name KJUR.asn1.DERAbstractString + * @class base class for ASN.1 DER string classes + * @param {Array} params associative array of parameters (ex. {'str': 'aaa'}) + * @property {String} s internal string of value + * @extends KJUR.asn1.ASN1Object + * @description + *
+ * As for argument 'params' for constructor, you can specify one of + * following properties: + *
    + *
  • str - specify initial ASN.1 value(V) by a string
  • + *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • + *
+ * NOTE: 'params' can be omitted. + */ +KJUR.asn1.DERAbstractString = function (params) { + KJUR.asn1.DERAbstractString.superclass.constructor.call(this); + var s = null; + var hV = null; + /** + * get string value of this string object + * @name getString + * @memberOf KJUR.asn1.DERAbstractString# + * @function + * @return {String} string value of this string object + */ + this.getString = function () { + return this.s; + }; + /** + * set value by a string + * @name setString + * @memberOf KJUR.asn1.DERAbstractString# + * @function + * @param {String} newS value by a string to set + */ + this.setString = function (newS) { + this.hTLV = null; + this.isModified = true; + this.s = newS; + this.hV = stohex(this.s); + }; + /** + * set value by a hexadecimal string + * @name setStringHex + * @memberOf KJUR.asn1.DERAbstractString# + * @function + * @param {String} newHexString value by a hexadecimal string to set + */ + this.setStringHex = function (newHexString) { + this.hTLV = null; + this.isModified = true; + this.s = null; + this.hV = newHexString; + }; + this.getFreshValueHex = function () { + return this.hV; + }; + if (typeof params != "undefined") { + if (typeof params == "string") { + this.setString(params); + } + else if (typeof params['str'] != "undefined") { + this.setString(params['str']); + } + else if (typeof params['hex'] != "undefined") { + this.setStringHex(params['hex']); + } + } +}; +YAHOO.lang.extend(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object); +// == END DERAbstractString ================================================ +// == BEGIN DERAbstractTime ================================================== +/** + * base class for ASN.1 DER Generalized/UTCTime class + * @name KJUR.asn1.DERAbstractTime + * @class base class for ASN.1 DER Generalized/UTCTime class + * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'}) + * @extends KJUR.asn1.ASN1Object + * @description + * @see KJUR.asn1.ASN1Object - superclass + */ +KJUR.asn1.DERAbstractTime = function (params) { + KJUR.asn1.DERAbstractTime.superclass.constructor.call(this); + var s = null; + var date = null; + // --- PRIVATE METHODS -------------------- + this.localDateToUTC = function (d) { + utc = d.getTime() + (d.getTimezoneOffset() * 60000); + var utcDate = new Date(utc); + return utcDate; + }; + /* + * format date string by Data object + * @name formatDate + * @memberOf KJUR.asn1.AbstractTime; + * @param {Date} dateObject + * @param {string} type 'utc' or 'gen' + * @param {boolean} withMillis flag for with millisections or not + * @description + * 'withMillis' flag is supported from asn1 1.0.6. + */ + this.formatDate = function (dateObject, type, withMillis) { + var pad = this.zeroPadding; + var d = this.localDateToUTC(dateObject); + var year = String(d.getFullYear()); + if (type == 'utc') + year = year.substr(2, 2); + var month = pad(String(d.getMonth() + 1), 2); + var day = pad(String(d.getDate()), 2); + var hour = pad(String(d.getHours()), 2); + var min = pad(String(d.getMinutes()), 2); + var sec = pad(String(d.getSeconds()), 2); + var s = year + month + day + hour + min + sec; + if (withMillis === true) { + var millis = d.getMilliseconds(); + if (millis != 0) { + var sMillis = pad(String(millis), 3); + sMillis = sMillis.replace(/[0]+$/, ""); + s = s + "." + sMillis; + } + } + return s + "Z"; + }; + this.zeroPadding = function (s, len) { + if (s.length >= len) + return s; + return new Array(len - s.length + 1).join('0') + s; + }; + // --- PUBLIC METHODS -------------------- + /** + * get string value of this string object + * @name getString + * @memberOf KJUR.asn1.DERAbstractTime# + * @function + * @return {String} string value of this time object + */ + this.getString = function () { + return this.s; + }; + /** + * set value by a string + * @name setString + * @memberOf KJUR.asn1.DERAbstractTime# + * @function + * @param {String} newS value by a string to set such like "130430235959Z" + */ + this.setString = function (newS) { + this.hTLV = null; + this.isModified = true; + this.s = newS; + this.hV = stohex(newS); + }; + /** + * set value by a Date object + * @name setByDateValue + * @memberOf KJUR.asn1.DERAbstractTime# + * @function + * @param {Integer} year year of date (ex. 2013) + * @param {Integer} month month of date between 1 and 12 (ex. 12) + * @param {Integer} day day of month + * @param {Integer} hour hours of date + * @param {Integer} min minutes of date + * @param {Integer} sec seconds of date + */ + this.setByDateValue = function (year, month, day, hour, min, sec) { + var dateObject = new Date(Date.UTC(year, month - 1, day, hour, min, sec, 0)); + this.setByDate(dateObject); + }; + this.getFreshValueHex = function () { + return this.hV; + }; +}; +YAHOO.lang.extend(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object); +// == END DERAbstractTime ================================================== +// == BEGIN DERAbstractStructured ============================================ +/** + * base class for ASN.1 DER structured class + * @name KJUR.asn1.DERAbstractStructured + * @class base class for ASN.1 DER structured class + * @property {Array} asn1Array internal array of ASN1Object + * @extends KJUR.asn1.ASN1Object + * @description + * @see KJUR.asn1.ASN1Object - superclass + */ +KJUR.asn1.DERAbstractStructured = function (params) { + KJUR.asn1.DERAbstractString.superclass.constructor.call(this); + var asn1Array = null; + /** + * set value by array of ASN1Object + * @name setByASN1ObjectArray + * @memberOf KJUR.asn1.DERAbstractStructured# + * @function + * @param {array} asn1ObjectArray array of ASN1Object to set + */ + this.setByASN1ObjectArray = function (asn1ObjectArray) { + this.hTLV = null; + this.isModified = true; + this.asn1Array = asn1ObjectArray; + }; + /** + * append an ASN1Object to internal array + * @name appendASN1Object + * @memberOf KJUR.asn1.DERAbstractStructured# + * @function + * @param {ASN1Object} asn1Object to add + */ + this.appendASN1Object = function (asn1Object) { + this.hTLV = null; + this.isModified = true; + this.asn1Array.push(asn1Object); + }; + this.asn1Array = new Array(); + if (typeof params != "undefined") { + if (typeof params['array'] != "undefined") { + this.asn1Array = params['array']; + } + } +}; +YAHOO.lang.extend(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object); +// ******************************************************************** +// ASN.1 Object Classes +// ******************************************************************** +// ******************************************************************** +/** + * class for ASN.1 DER Boolean + * @name KJUR.asn1.DERBoolean + * @class class for ASN.1 DER Boolean + * @extends KJUR.asn1.ASN1Object + * @description + * @see KJUR.asn1.ASN1Object - superclass + */ +KJUR.asn1.DERBoolean = function () { + KJUR.asn1.DERBoolean.superclass.constructor.call(this); + this.hT = "01"; + this.hTLV = "0101ff"; +}; +YAHOO.lang.extend(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object); +// ******************************************************************** +/** + * class for ASN.1 DER Integer + * @name KJUR.asn1.DERInteger + * @class class for ASN.1 DER Integer + * @extends KJUR.asn1.ASN1Object + * @description + *
+ * As for argument 'params' for constructor, you can specify one of + * following properties: + *
    + *
  • int - specify initial ASN.1 value(V) by integer value
  • + *
  • bigint - specify initial ASN.1 value(V) by BigInteger object
  • + *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • + *
+ * NOTE: 'params' can be omitted. + */ +KJUR.asn1.DERInteger = function (params) { + KJUR.asn1.DERInteger.superclass.constructor.call(this); + this.hT = "02"; + /** + * set value by Tom Wu's BigInteger object + * @name setByBigInteger + * @memberOf KJUR.asn1.DERInteger# + * @function + * @param {BigInteger} bigIntegerValue to set + */ + this.setByBigInteger = function (bigIntegerValue) { + this.hTLV = null; + this.isModified = true; + this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue); + }; + /** + * set value by integer value + * @name setByInteger + * @memberOf KJUR.asn1.DERInteger + * @function + * @param {Integer} integer value to set + */ + this.setByInteger = function (intValue) { + var bi = new BigInteger(String(intValue), 10); + this.setByBigInteger(bi); + }; + /** + * set value by integer value + * @name setValueHex + * @memberOf KJUR.asn1.DERInteger# + * @function + * @param {String} hexadecimal string of integer value + * @description + *
+ * NOTE: Value shall be represented by minimum octet length of + * two's complement representation. + * @example + * new KJUR.asn1.DERInteger(123); + * new KJUR.asn1.DERInteger({'int': 123}); + * new KJUR.asn1.DERInteger({'hex': '1fad'}); + */ + this.setValueHex = function (newHexString) { + this.hV = newHexString; + }; + this.getFreshValueHex = function () { + return this.hV; + }; + if (typeof params != "undefined") { + if (typeof params['bigint'] != "undefined") { + this.setByBigInteger(params['bigint']); + } + else if (typeof params['int'] != "undefined") { + this.setByInteger(params['int']); + } + else if (typeof params == "number") { + this.setByInteger(params); + } + else if (typeof params['hex'] != "undefined") { + this.setValueHex(params['hex']); + } + } +}; +YAHOO.lang.extend(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object); +// ******************************************************************** +/** + * class for ASN.1 DER encoded BitString primitive + * @name KJUR.asn1.DERBitString + * @class class for ASN.1 DER encoded BitString primitive + * @extends KJUR.asn1.ASN1Object + * @description + *
+ * As for argument 'params' for constructor, you can specify one of + * following properties: + *
    + *
  • bin - specify binary string (ex. '10111')
  • + *
  • array - specify array of boolean (ex. [true,false,true,true])
  • + *
  • hex - specify hexadecimal string of ASN.1 value(V) including unused bits
  • + *
  • obj - specify {@link KJUR.asn1.ASN1Util.newObject} + * argument for "BitString encapsulates" structure.
  • + *
+ * NOTE1: 'params' can be omitted.
+ * NOTE2: 'obj' parameter have been supported since + * asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).
+ * @example + * // default constructor + * o = new KJUR.asn1.DERBitString(); + * // initialize with binary string + * o = new KJUR.asn1.DERBitString({bin: "1011"}); + * // initialize with boolean array + * o = new KJUR.asn1.DERBitString({array: [true,false,true,true]}); + * // initialize with hexadecimal string (04 is unused bits) + * o = new KJUR.asn1.DEROctetString({hex: "04bac0"}); + * // initialize with ASN1Util.newObject argument for encapsulated + * o = new KJUR.asn1.DERBitString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}}); + * // above generates a ASN.1 data like this: + * // BIT STRING, encapsulates { + * // SEQUENCE { + * // INTEGER 3 + * // PrintableString 'aaa' + * // } + * // } + */ +KJUR.asn1.DERBitString = function (params) { + if (params !== undefined && typeof params.obj !== "undefined") { + var o = KJUR.asn1.ASN1Util.newObject(params.obj); + params.hex = "00" + o.getEncodedHex(); + } + KJUR.asn1.DERBitString.superclass.constructor.call(this); + this.hT = "03"; + /** + * set ASN.1 value(V) by a hexadecimal string including unused bits + * @name setHexValueIncludingUnusedBits + * @memberOf KJUR.asn1.DERBitString# + * @function + * @param {String} newHexStringIncludingUnusedBits + */ + this.setHexValueIncludingUnusedBits = function (newHexStringIncludingUnusedBits) { + this.hTLV = null; + this.isModified = true; + this.hV = newHexStringIncludingUnusedBits; + }; + /** + * set ASN.1 value(V) by unused bit and hexadecimal string of value + * @name setUnusedBitsAndHexValue + * @memberOf KJUR.asn1.DERBitString# + * @function + * @param {Integer} unusedBits + * @param {String} hValue + */ + this.setUnusedBitsAndHexValue = function (unusedBits, hValue) { + if (unusedBits < 0 || 7 < unusedBits) { + throw "unused bits shall be from 0 to 7: u = " + unusedBits; + } + var hUnusedBits = "0" + unusedBits; + this.hTLV = null; + this.isModified = true; + this.hV = hUnusedBits + hValue; + }; + /** + * set ASN.1 DER BitString by binary string
+ * @name setByBinaryString + * @memberOf KJUR.asn1.DERBitString# + * @function + * @param {String} binaryString binary value string (i.e. '10111') + * @description + * Its unused bits will be calculated automatically by length of + * 'binaryValue'.
+ * NOTE: Trailing zeros '0' will be ignored. + * @example + * o = new KJUR.asn1.DERBitString(); + * o.setByBooleanArray("01011"); + */ + this.setByBinaryString = function (binaryString) { + binaryString = binaryString.replace(/0+$/, ''); + var unusedBits = 8 - binaryString.length % 8; + if (unusedBits == 8) + unusedBits = 0; + for (var i = 0; i <= unusedBits; i++) { + binaryString += '0'; + } + var h = ''; + for (var i = 0; i < binaryString.length - 1; i += 8) { + var b = binaryString.substr(i, 8); + var x = parseInt(b, 2).toString(16); + if (x.length == 1) + x = '0' + x; + h += x; + } + this.hTLV = null; + this.isModified = true; + this.hV = '0' + unusedBits + h; + }; + /** + * set ASN.1 TLV value(V) by an array of boolean
+ * @name setByBooleanArray + * @memberOf KJUR.asn1.DERBitString# + * @function + * @param {array} booleanArray array of boolean (ex. [true, false, true]) + * @description + * NOTE: Trailing falses will be ignored in the ASN.1 DER Object. + * @example + * o = new KJUR.asn1.DERBitString(); + * o.setByBooleanArray([false, true, false, true, true]); + */ + this.setByBooleanArray = function (booleanArray) { + var s = ''; + for (var i = 0; i < booleanArray.length; i++) { + if (booleanArray[i] == true) { + s += '1'; + } + else { + s += '0'; + } + } + this.setByBinaryString(s); + }; + /** + * generate an array of falses with specified length
+ * @name newFalseArray + * @memberOf KJUR.asn1.DERBitString + * @function + * @param {Integer} nLength length of array to generate + * @return {array} array of boolean falses + * @description + * This static method may be useful to initialize boolean array. + * @example + * o = new KJUR.asn1.DERBitString(); + * o.newFalseArray(3) → [false, false, false] + */ + this.newFalseArray = function (nLength) { + var a = new Array(nLength); + for (var i = 0; i < nLength; i++) { + a[i] = false; + } + return a; + }; + this.getFreshValueHex = function () { + return this.hV; + }; + if (typeof params != "undefined") { + if (typeof params == "string" && params.toLowerCase().match(/^[0-9a-f]+$/)) { + this.setHexValueIncludingUnusedBits(params); + } + else if (typeof params['hex'] != "undefined") { + this.setHexValueIncludingUnusedBits(params['hex']); + } + else if (typeof params['bin'] != "undefined") { + this.setByBinaryString(params['bin']); + } + else if (typeof params['array'] != "undefined") { + this.setByBooleanArray(params['array']); + } + } +}; +YAHOO.lang.extend(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object); +// ******************************************************************** +/** + * class for ASN.1 DER OctetString
+ * @name KJUR.asn1.DEROctetString + * @class class for ASN.1 DER OctetString + * @param {Array} params associative array of parameters (ex. {'str': 'aaa'}) + * @extends KJUR.asn1.DERAbstractString + * @description + * This class provides ASN.1 OctetString simple type.
+ * Supported "params" attributes are: + *
    + *
  • str - to set a string as a value
  • + *
  • hex - to set a hexadecimal string as a value
  • + *
  • obj - to set a encapsulated ASN.1 value by JSON object + * which is defined in {@link KJUR.asn1.ASN1Util.newObject}
  • + *
+ * NOTE: A parameter 'obj' have been supported + * for "OCTET STRING, encapsulates" structure. + * since asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25). + * @see KJUR.asn1.DERAbstractString - superclass + * @example + * // default constructor + * o = new KJUR.asn1.DEROctetString(); + * // initialize with string + * o = new KJUR.asn1.DEROctetString({str: "aaa"}); + * // initialize with hexadecimal string + * o = new KJUR.asn1.DEROctetString({hex: "616161"}); + * // initialize with ASN1Util.newObject argument + * o = new KJUR.asn1.DEROctetString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}}); + * // above generates a ASN.1 data like this: + * // OCTET STRING, encapsulates { + * // SEQUENCE { + * // INTEGER 3 + * // PrintableString 'aaa' + * // } + * // } + */ +KJUR.asn1.DEROctetString = function (params) { + if (params !== undefined && typeof params.obj !== "undefined") { + var o = KJUR.asn1.ASN1Util.newObject(params.obj); + params.hex = o.getEncodedHex(); + } + KJUR.asn1.DEROctetString.superclass.constructor.call(this, params); + this.hT = "04"; +}; +YAHOO.lang.extend(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString); +// ******************************************************************** +/** + * class for ASN.1 DER Null + * @name KJUR.asn1.DERNull + * @class class for ASN.1 DER Null + * @extends KJUR.asn1.ASN1Object + * @description + * @see KJUR.asn1.ASN1Object - superclass + */ +KJUR.asn1.DERNull = function () { + KJUR.asn1.DERNull.superclass.constructor.call(this); + this.hT = "05"; + this.hTLV = "0500"; +}; +YAHOO.lang.extend(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object); +// ******************************************************************** +/** + * class for ASN.1 DER ObjectIdentifier + * @name KJUR.asn1.DERObjectIdentifier + * @class class for ASN.1 DER ObjectIdentifier + * @param {Array} params associative array of parameters (ex. {'oid': '2.5.4.5'}) + * @extends KJUR.asn1.ASN1Object + * @description + *
+ * As for argument 'params' for constructor, you can specify one of + * following properties: + *
    + *
  • oid - specify initial ASN.1 value(V) by a oid string (ex. 2.5.4.13)
  • + *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • + *
+ * NOTE: 'params' can be omitted. + */ +KJUR.asn1.DERObjectIdentifier = function (params) { + var itox = function (i) { + var h = i.toString(16); + if (h.length == 1) + h = '0' + h; + return h; + }; + var roidtox = function (roid) { + var h = ''; + var bi = new BigInteger(roid, 10); + var b = bi.toString(2); + var padLen = 7 - b.length % 7; + if (padLen == 7) + padLen = 0; + var bPad = ''; + for (var i = 0; i < padLen; i++) + bPad += '0'; + b = bPad + b; + for (var i = 0; i < b.length - 1; i += 7) { + var b8 = b.substr(i, 7); + if (i != b.length - 7) + b8 = '1' + b8; + h += itox(parseInt(b8, 2)); + } + return h; + }; + KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this); + this.hT = "06"; + /** + * set value by a hexadecimal string + * @name setValueHex + * @memberOf KJUR.asn1.DERObjectIdentifier# + * @function + * @param {String} newHexString hexadecimal value of OID bytes + */ + this.setValueHex = function (newHexString) { + this.hTLV = null; + this.isModified = true; + this.s = null; + this.hV = newHexString; + }; + /** + * set value by a OID string
+ * @name setValueOidString + * @memberOf KJUR.asn1.DERObjectIdentifier# + * @function + * @param {String} oidString OID string (ex. 2.5.4.13) + * @example + * o = new KJUR.asn1.DERObjectIdentifier(); + * o.setValueOidString("2.5.4.13"); + */ + this.setValueOidString = function (oidString) { + if (!oidString.match(/^[0-9.]+$/)) { + throw "malformed oid string: " + oidString; + } + var h = ''; + var a = oidString.split('.'); + var i0 = parseInt(a[0]) * 40 + parseInt(a[1]); + h += itox(i0); + a.splice(0, 2); + for (var i = 0; i < a.length; i++) { + h += roidtox(a[i]); + } + this.hTLV = null; + this.isModified = true; + this.s = null; + this.hV = h; + }; + /** + * set value by a OID name + * @name setValueName + * @memberOf KJUR.asn1.DERObjectIdentifier# + * @function + * @param {String} oidName OID name (ex. 'serverAuth') + * @since 1.0.1 + * @description + * OID name shall be defined in 'KJUR.asn1.x509.OID.name2oidList'. + * Otherwise raise error. + * @example + * o = new KJUR.asn1.DERObjectIdentifier(); + * o.setValueName("serverAuth"); + */ + this.setValueName = function (oidName) { + var oid = KJUR.asn1.x509.OID.name2oid(oidName); + if (oid !== '') { + this.setValueOidString(oid); + } + else { + throw "DERObjectIdentifier oidName undefined: " + oidName; + } + }; + this.getFreshValueHex = function () { + return this.hV; + }; + if (params !== undefined) { + if (typeof params === "string") { + if (params.match(/^[0-2].[0-9.]+$/)) { + this.setValueOidString(params); + } + else { + this.setValueName(params); + } + } + else if (params.oid !== undefined) { + this.setValueOidString(params.oid); + } + else if (params.hex !== undefined) { + this.setValueHex(params.hex); + } + else if (params.name !== undefined) { + this.setValueName(params.name); + } + } +}; +YAHOO.lang.extend(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object); +// ******************************************************************** +/** + * class for ASN.1 DER Enumerated + * @name KJUR.asn1.DEREnumerated + * @class class for ASN.1 DER Enumerated + * @extends KJUR.asn1.ASN1Object + * @description + *
+ * As for argument 'params' for constructor, you can specify one of + * following properties: + *
    + *
  • int - specify initial ASN.1 value(V) by integer value
  • + *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • + *
+ * NOTE: 'params' can be omitted. + * @example + * new KJUR.asn1.DEREnumerated(123); + * new KJUR.asn1.DEREnumerated({int: 123}); + * new KJUR.asn1.DEREnumerated({hex: '1fad'}); + */ +KJUR.asn1.DEREnumerated = function (params) { + KJUR.asn1.DEREnumerated.superclass.constructor.call(this); + this.hT = "0a"; + /** + * set value by Tom Wu's BigInteger object + * @name setByBigInteger + * @memberOf KJUR.asn1.DEREnumerated# + * @function + * @param {BigInteger} bigIntegerValue to set + */ + this.setByBigInteger = function (bigIntegerValue) { + this.hTLV = null; + this.isModified = true; + this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue); + }; + /** + * set value by integer value + * @name setByInteger + * @memberOf KJUR.asn1.DEREnumerated# + * @function + * @param {Integer} integer value to set + */ + this.setByInteger = function (intValue) { + var bi = new BigInteger(String(intValue), 10); + this.setByBigInteger(bi); + }; + /** + * set value by integer value + * @name setValueHex + * @memberOf KJUR.asn1.DEREnumerated# + * @function + * @param {String} hexadecimal string of integer value + * @description + *
+ * NOTE: Value shall be represented by minimum octet length of + * two's complement representation. + */ + this.setValueHex = function (newHexString) { + this.hV = newHexString; + }; + this.getFreshValueHex = function () { + return this.hV; + }; + if (typeof params != "undefined") { + if (typeof params['int'] != "undefined") { + this.setByInteger(params['int']); + } + else if (typeof params == "number") { + this.setByInteger(params); + } + else if (typeof params['hex'] != "undefined") { + this.setValueHex(params['hex']); + } + } +}; +YAHOO.lang.extend(KJUR.asn1.DEREnumerated, KJUR.asn1.ASN1Object); +// ******************************************************************** +/** + * class for ASN.1 DER UTF8String + * @name KJUR.asn1.DERUTF8String + * @class class for ASN.1 DER UTF8String + * @param {Array} params associative array of parameters (ex. {'str': 'aaa'}) + * @extends KJUR.asn1.DERAbstractString + * @description + * @see KJUR.asn1.DERAbstractString - superclass + */ +KJUR.asn1.DERUTF8String = function (params) { + KJUR.asn1.DERUTF8String.superclass.constructor.call(this, params); + this.hT = "0c"; +}; +YAHOO.lang.extend(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString); +// ******************************************************************** +/** + * class for ASN.1 DER NumericString + * @name KJUR.asn1.DERNumericString + * @class class for ASN.1 DER NumericString + * @param {Array} params associative array of parameters (ex. {'str': 'aaa'}) + * @extends KJUR.asn1.DERAbstractString + * @description + * @see KJUR.asn1.DERAbstractString - superclass + */ +KJUR.asn1.DERNumericString = function (params) { + KJUR.asn1.DERNumericString.superclass.constructor.call(this, params); + this.hT = "12"; +}; +YAHOO.lang.extend(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString); +// ******************************************************************** +/** + * class for ASN.1 DER PrintableString + * @name KJUR.asn1.DERPrintableString + * @class class for ASN.1 DER PrintableString + * @param {Array} params associative array of parameters (ex. {'str': 'aaa'}) + * @extends KJUR.asn1.DERAbstractString + * @description + * @see KJUR.asn1.DERAbstractString - superclass + */ +KJUR.asn1.DERPrintableString = function (params) { + KJUR.asn1.DERPrintableString.superclass.constructor.call(this, params); + this.hT = "13"; +}; +YAHOO.lang.extend(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString); +// ******************************************************************** +/** + * class for ASN.1 DER TeletexString + * @name KJUR.asn1.DERTeletexString + * @class class for ASN.1 DER TeletexString + * @param {Array} params associative array of parameters (ex. {'str': 'aaa'}) + * @extends KJUR.asn1.DERAbstractString + * @description + * @see KJUR.asn1.DERAbstractString - superclass + */ +KJUR.asn1.DERTeletexString = function (params) { + KJUR.asn1.DERTeletexString.superclass.constructor.call(this, params); + this.hT = "14"; +}; +YAHOO.lang.extend(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString); +// ******************************************************************** +/** + * class for ASN.1 DER IA5String + * @name KJUR.asn1.DERIA5String + * @class class for ASN.1 DER IA5String + * @param {Array} params associative array of parameters (ex. {'str': 'aaa'}) + * @extends KJUR.asn1.DERAbstractString + * @description + * @see KJUR.asn1.DERAbstractString - superclass + */ +KJUR.asn1.DERIA5String = function (params) { + KJUR.asn1.DERIA5String.superclass.constructor.call(this, params); + this.hT = "16"; +}; +YAHOO.lang.extend(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString); +// ******************************************************************** +/** + * class for ASN.1 DER UTCTime + * @name KJUR.asn1.DERUTCTime + * @class class for ASN.1 DER UTCTime + * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'}) + * @extends KJUR.asn1.DERAbstractTime + * @description + *
+ * As for argument 'params' for constructor, you can specify one of + * following properties: + *
    + *
  • str - specify initial ASN.1 value(V) by a string (ex.'130430235959Z')
  • + *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • + *
  • date - specify Date object.
  • + *
+ * NOTE: 'params' can be omitted. + *

EXAMPLES

+ * @example + * d1 = new KJUR.asn1.DERUTCTime(); + * d1.setString('130430125959Z'); + * + * d2 = new KJUR.asn1.DERUTCTime({'str': '130430125959Z'}); + * d3 = new KJUR.asn1.DERUTCTime({'date': new Date(Date.UTC(2015, 0, 31, 0, 0, 0, 0))}); + * d4 = new KJUR.asn1.DERUTCTime('130430125959Z'); + */ +KJUR.asn1.DERUTCTime = function (params) { + KJUR.asn1.DERUTCTime.superclass.constructor.call(this, params); + this.hT = "17"; + /** + * set value by a Date object
+ * @name setByDate + * @memberOf KJUR.asn1.DERUTCTime# + * @function + * @param {Date} dateObject Date object to set ASN.1 value(V) + * @example + * o = new KJUR.asn1.DERUTCTime(); + * o.setByDate(new Date("2016/12/31")); + */ + this.setByDate = function (dateObject) { + this.hTLV = null; + this.isModified = true; + this.date = dateObject; + this.s = this.formatDate(this.date, 'utc'); + this.hV = stohex(this.s); + }; + this.getFreshValueHex = function () { + if (typeof this.date == "undefined" && typeof this.s == "undefined") { + this.date = new Date(); + this.s = this.formatDate(this.date, 'utc'); + this.hV = stohex(this.s); + } + return this.hV; + }; + if (params !== undefined) { + if (params.str !== undefined) { + this.setString(params.str); + } + else if (typeof params == "string" && params.match(/^[0-9]{12}Z$/)) { + this.setString(params); + } + else if (params.hex !== undefined) { + this.setStringHex(params.hex); + } + else if (params.date !== undefined) { + this.setByDate(params.date); + } + } +}; +YAHOO.lang.extend(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime); +// ******************************************************************** +/** + * class for ASN.1 DER GeneralizedTime + * @name KJUR.asn1.DERGeneralizedTime + * @class class for ASN.1 DER GeneralizedTime + * @param {Array} params associative array of parameters (ex. {'str': '20130430235959Z'}) + * @property {Boolean} withMillis flag to show milliseconds or not + * @extends KJUR.asn1.DERAbstractTime + * @description + *
+ * As for argument 'params' for constructor, you can specify one of + * following properties: + *
    + *
  • str - specify initial ASN.1 value(V) by a string (ex.'20130430235959Z')
  • + *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • + *
  • date - specify Date object.
  • + *
  • millis - specify flag to show milliseconds (from 1.0.6)
  • + *
+ * NOTE1: 'params' can be omitted. + * NOTE2: 'withMillis' property is supported from asn1 1.0.6. + */ +KJUR.asn1.DERGeneralizedTime = function (params) { + KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, params); + this.hT = "18"; + this.withMillis = false; + /** + * set value by a Date object + * @name setByDate + * @memberOf KJUR.asn1.DERGeneralizedTime# + * @function + * @param {Date} dateObject Date object to set ASN.1 value(V) + * @example + * When you specify UTC time, use 'Date.UTC' method like this:
+ * o1 = new DERUTCTime(); + * o1.setByDate(date); + * + * date = new Date(Date.UTC(2015, 0, 31, 23, 59, 59, 0)); #2015JAN31 23:59:59 + */ + this.setByDate = function (dateObject) { + this.hTLV = null; + this.isModified = true; + this.date = dateObject; + this.s = this.formatDate(this.date, 'gen', this.withMillis); + this.hV = stohex(this.s); + }; + this.getFreshValueHex = function () { + if (this.date === undefined && this.s === undefined) { + this.date = new Date(); + this.s = this.formatDate(this.date, 'gen', this.withMillis); + this.hV = stohex(this.s); + } + return this.hV; + }; + if (params !== undefined) { + if (params.str !== undefined) { + this.setString(params.str); + } + else if (typeof params == "string" && params.match(/^[0-9]{14}Z$/)) { + this.setString(params); + } + else if (params.hex !== undefined) { + this.setStringHex(params.hex); + } + else if (params.date !== undefined) { + this.setByDate(params.date); + } + if (params.millis === true) { + this.withMillis = true; + } + } +}; +YAHOO.lang.extend(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime); +// ******************************************************************** +/** + * class for ASN.1 DER Sequence + * @name KJUR.asn1.DERSequence + * @class class for ASN.1 DER Sequence + * @extends KJUR.asn1.DERAbstractStructured + * @description + *
+ * As for argument 'params' for constructor, you can specify one of + * following properties: + *
    + *
  • array - specify array of ASN1Object to set elements of content
  • + *
+ * NOTE: 'params' can be omitted. + */ +KJUR.asn1.DERSequence = function (params) { + KJUR.asn1.DERSequence.superclass.constructor.call(this, params); + this.hT = "30"; + this.getFreshValueHex = function () { + var h = ''; + for (var i = 0; i < this.asn1Array.length; i++) { + var asn1Obj = this.asn1Array[i]; + h += asn1Obj.getEncodedHex(); + } + this.hV = h; + return this.hV; + }; +}; +YAHOO.lang.extend(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured); +// ******************************************************************** +/** + * class for ASN.1 DER Set + * @name KJUR.asn1.DERSet + * @class class for ASN.1 DER Set + * @extends KJUR.asn1.DERAbstractStructured + * @description + *
+ * As for argument 'params' for constructor, you can specify one of + * following properties: + *
    + *
  • array - specify array of ASN1Object to set elements of content
  • + *
  • sortflag - flag for sort (default: true). ASN.1 BER is not sorted in 'SET OF'.
  • + *
+ * NOTE1: 'params' can be omitted.
+ * NOTE2: sortflag is supported since 1.0.5. + */ +KJUR.asn1.DERSet = function (params) { + KJUR.asn1.DERSet.superclass.constructor.call(this, params); + this.hT = "31"; + this.sortFlag = true; // item shall be sorted only in ASN.1 DER + this.getFreshValueHex = function () { + var a = new Array(); + for (var i = 0; i < this.asn1Array.length; i++) { + var asn1Obj = this.asn1Array[i]; + a.push(asn1Obj.getEncodedHex()); + } + if (this.sortFlag == true) + a.sort(); + this.hV = a.join(''); + return this.hV; + }; + if (typeof params != "undefined") { + if (typeof params.sortflag != "undefined" && + params.sortflag == false) + this.sortFlag = false; + } +}; +YAHOO.lang.extend(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured); +// ******************************************************************** +/** + * class for ASN.1 DER TaggedObject + * @name KJUR.asn1.DERTaggedObject + * @class class for ASN.1 DER TaggedObject + * @extends KJUR.asn1.ASN1Object + * @description + *
+ * Parameter 'tagNoNex' is ASN.1 tag(T) value for this object. + * For example, if you find '[1]' tag in a ASN.1 dump, + * 'tagNoHex' will be 'a1'. + *
+ * As for optional argument 'params' for constructor, you can specify *ANY* of + * following properties: + *
    + *
  • explicit - specify true if this is explicit tag otherwise false + * (default is 'true').
  • + *
  • tag - specify tag (default is 'a0' which means [0])
  • + *
  • obj - specify ASN1Object which is tagged
  • + *
+ * @example + * d1 = new KJUR.asn1.DERUTF8String({'str':'a'}); + * d2 = new KJUR.asn1.DERTaggedObject({'obj': d1}); + * hex = d2.getEncodedHex(); + */ +KJUR.asn1.DERTaggedObject = function (params) { + KJUR.asn1.DERTaggedObject.superclass.constructor.call(this); + this.hT = "a0"; + this.hV = ''; + this.isExplicit = true; + this.asn1Object = null; + /** + * set value by an ASN1Object + * @name setString + * @memberOf KJUR.asn1.DERTaggedObject# + * @function + * @param {Boolean} isExplicitFlag flag for explicit/implicit tag + * @param {Integer} tagNoHex hexadecimal string of ASN.1 tag + * @param {ASN1Object} asn1Object ASN.1 to encapsulate + */ + this.setASN1Object = function (isExplicitFlag, tagNoHex, asn1Object) { + this.hT = tagNoHex; + this.isExplicit = isExplicitFlag; + this.asn1Object = asn1Object; + if (this.isExplicit) { + this.hV = this.asn1Object.getEncodedHex(); + this.hTLV = null; + this.isModified = true; + } + else { + this.hV = null; + this.hTLV = asn1Object.getEncodedHex(); + this.hTLV = this.hTLV.replace(/^../, tagNoHex); + this.isModified = false; + } + }; + this.getFreshValueHex = function () { + return this.hV; + }; + if (typeof params != "undefined") { + if (typeof params['tag'] != "undefined") { + this.hT = params['tag']; + } + if (typeof params['explicit'] != "undefined") { + this.isExplicit = params['explicit']; + } + if (typeof params['obj'] != "undefined") { + this.asn1Object = params['obj']; + this.setASN1Object(this.isExplicit, this.hT, this.asn1Object); + } + } +}; +YAHOO.lang.extend(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object); diff --git a/node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js b/node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js new file mode 100644 index 0000000..aa0d9aa --- /dev/null +++ b/node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js @@ -0,0 +1,69 @@ +/*! +Copyright (c) 2011, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 2.9.0 +*/ +export var YAHOO = {}; +YAHOO.lang = { + /** + * Utility to set up the prototype, constructor and superclass properties to + * support an inheritance strategy that can chain constructors and methods. + * Static members will not be inherited. + * + * @method extend + * @static + * @param {Function} subc the object to modify + * @param {Function} superc the object to inherit + * @param {Object} overrides additional properties/methods to add to the + * subclass prototype. These will override the + * matching items obtained from the superclass + * if present. + */ + extend: function (subc, superc, overrides) { + if (!superc || !subc) { + throw new Error("YAHOO.lang.extend failed, please check that " + + "all dependencies are included."); + } + var F = function () { }; + F.prototype = superc.prototype; + subc.prototype = new F(); + subc.prototype.constructor = subc; + subc.superclass = superc.prototype; + if (superc.prototype.constructor == Object.prototype.constructor) { + superc.prototype.constructor = superc; + } + if (overrides) { + var i; + for (i in overrides) { + subc.prototype[i] = overrides[i]; + } + /* + * IE will not enumerate native functions in a derived object even if the + * function was overridden. This is a workaround for specific functions + * we care about on the Object prototype. + * @property _IEEnumFix + * @param {Function} r the object to receive the augmentation + * @param {Function} s the object that supplies the properties to augment + * @static + * @private + */ + var _IEEnumFix = function () { }, ADD = ["toString", "valueOf"]; + try { + if (/MSIE/.test(navigator.userAgent)) { + _IEEnumFix = function (r, s) { + for (i = 0; i < ADD.length; i = i + 1) { + var fname = ADD[i], f = s[fname]; + if (typeof f === 'function' && f != Object.prototype[fname]) { + r[fname] = f; + } + } + }; + } + } + catch (ex) { } + ; + _IEEnumFix(subc.prototype, overrides); + } + } +}; diff --git a/node_modules/jsencrypt/lib/version.json b/node_modules/jsencrypt/lib/version.json new file mode 100644 index 0000000..00ae474 --- /dev/null +++ b/node_modules/jsencrypt/lib/version.json @@ -0,0 +1 @@ +{"version": "3.3.0"} \ No newline at end of file diff --git a/node_modules/jsencrypt/package.json b/node_modules/jsencrypt/package.json new file mode 100644 index 0000000..7c12dc6 --- /dev/null +++ b/node_modules/jsencrypt/package.json @@ -0,0 +1,71 @@ +{ + "name": "jsencrypt", + "version": "3.3.2", + "description": "A Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.", + "main": "bin/jsencrypt.js", + "module": "lib/index.js", + "browser": "lib/index.js", + "types": "lib/index.d.ts", + "dependencies": {}, + "devDependencies": { + "@babel/core": "^7.20.12", + "@babel/preset-env": "^7.20.2", + "@babel/preset-typescript": "^7.18.6", + "@babel/register": "^7.18.9", + "@types/expect": "^24.3.0", + "@types/mocha": "^10.0.0", + "@types/node": "^18.11.4", + "chai": "^4.3.6", + "dirty-chai": "^2.0.1", + "fs-jetpack": "^5.1.0", + "mocha": "^10.0.0", + "process": "^0.11.10", + "ts-mocha": "^10.0.0", + "ts-node": "^10.9.1", + "typescript": "^4.2.4", + "url": "^0.11.0", + "webpack": "^5.35.1", + "webpack-cli": "^4.6.0" + }, + "files": [ + "bin", + "lib" + ], + "scripts": { + "build:dev": "tsc && tsc --project tsconfig-def.json && webpack", + "build:test": "tsc && tsc --project tsconfig-def.json && webpack --config webpack.test.js", + "build:prod": "tsc && tsc --project tsconfig-def.json && webpack --config webpack.prod.js", + "build": "npm run build:dev && npm run build:test && npm run build:prod", + "serve": "bundle exec jekyll server --config _config.build.yml", + "test": "ts-mocha test/test.rsa.js" + }, + "author": "Travis Tidwell ", + "contributors": [ + { + "name": "Travis Tidwell", + "email": "travis@form.io", + "url": "http://github.com/travist" + }, + { + "name": "Antonio", + "url": "https://github.com/zoloft" + }, + { + "name": "Julio", + "url": "https://github.com/jmgaya" + }, + { + "name": "Taehyun Hwang", + "url": "https://github.com/HwangTaehyun" + } + ], + "homepage": "http://www.travistidwell.com/jsencrypt", + "repository": { + "type": "git", + "url": "git://github.com/travist/jsencrypt.git" + }, + "bugs": { + "url": "http://github.com/travist/jsencrypt/issues" + }, + "license": "MIT" +} diff --git a/package-lock.json b/package-lock.json index 68a0f93..c583e6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "packages": { "": { "dependencies": { + "jsencrypt": "^3.3.2", "uview-ui": "^2.0.38" }, "devDependencies": { @@ -1102,6 +1103,12 @@ "node": ">= 10.13.0" } }, + "node_modules/jsencrypt": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.3.2.tgz", + "integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==", + "license": "MIT" + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", diff --git a/package.json b/package.json index 77860f2..87b80ba 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "dependencies": { + "jsencrypt": "^3.3.2", "uview-ui": "^2.0.38" }, "devDependencies": { diff --git a/pages/api.js b/pages/api.js index bb8cc9e..e0184e8 100644 --- a/pages/api.js +++ b/pages/api.js @@ -1,8 +1,32 @@ import request from "../utils/request.js"; -export function getList(params) { + +// 获取验证码 +export function getCodeImg() { return request({ - url: "/api/v1/user/list", - method: "get", - params, + url: '/captchaImage', + header: { + isToken: false + }, + method: 'get', + timeout: 20000 + }) +} +export function login({ username, password, code, uuid, client }) { + return request({ + url: "/login", + method: "post", + data: { username, password, code, uuid, client }, + header: { + isToken: false, + repeatSubmit: false, + }, }); } +// 退房列表 +export function listCheckoutAlert(query) { + return request({ + url: "/apartment/manager/listCheckoutAlert", + method: "get", + params: query, + }); +} \ No newline at end of file diff --git a/pages/login/login.vue b/pages/login/login.vue index d64daf7..0128129 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -13,11 +13,11 @@