{"_id":"virgil-crypto","_rev":"135-77b0f5b4357eed2212f4a3e9b1f9b205","name":"virgil-crypto","dist-tags":{"beta":"2.0.0-beta.4","next":"4.1.1","latest":"5.1.2"},"versions":{"0.1.0":{"name":"virgil-crypto","version":"0.1.0","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@0.1.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@gmail.com"}],"dist":{"shasum":"988857a521bd10c3ddd4ae740ce8cc0c4837ca9c","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-0.1.0.tgz","integrity":"sha512-kpG55I6IK7eJORQYega4+IPRC3U6nZh2jH1PvXvNk8UEdhl+b6Vt7oh9qQChd2SEyzjF2gFN1Hjjqyq787an0w==","signatures":[{"sig":"MEUCIQC27sTKKjyVtHlRZrzieHnydIPyO4IC9Ev+yOXrNJYy1AIgHQagV7GLAGEx7QEwHlHVYJuPuxH6FYQrt4CYrxicKnU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"988857a521bd10c3ddd4ae740ce8cc0c4837ca9c","gitHead":"42a183f3f0ae59f58434488bf73a76c2a0ac0724","scripts":{"test":"node tests/index.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@gmail.com"},"_npmVersion":"1.4.17","description":"Virgil Security crypto library","directories":{},"dependencies":{"getos":"^2.4.0"},"devDependencies":{"tape":"^4.0.2"}},"0.2.0":{"name":"virgil-crypto","version":"0.2.0","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@0.2.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"dist":{"shasum":"e3bfbb2e1ce2864d6973563fe0af1f5bcecb0d30","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-0.2.0.tgz","integrity":"sha512-4hTYSd3YRI1imAWWswSXCvvcxWCajukgpUd4Atn+Ir/OtrtxVBbHyfQDs7S1FT2uK+oqGF+DOC2A85AuKQ3kSg==","signatures":[{"sig":"MEUCIQDsWVHxjqgdPmP0KSR7W3Em7ZQrVcJEpfiqjSHGwnp3XgIgIpP9Qa1OW2K8j9SEYv3TyeaqPXYnjONoloSIHT7bLA8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e3bfbb2e1ce2864d6973563fe0af1f5bcecb0d30","gitHead":"65bba9cccbb85fbfb2b91e9df1b3ac0e6b236c01","scripts":{"test":"node tests/index.js","postinstall":"node scripts/download-native-library.js; npm test"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@gmail.com"},"_npmVersion":"2.11.3","description":"Virgil Security crypto library","directories":{},"_nodeVersion":"0.12.7","dependencies":{"getos":"^2.4.0"},"devDependencies":{"tape":"^4.0.2"}},"0.2.1":{"name":"virgil-crypto","version":"0.2.1","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@0.2.1","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"dist":{"shasum":"5f6ee08e19cbcddf211ff30d75d4734274c080af","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-0.2.1.tgz","integrity":"sha512-fn94CC18H+EQXcJGkuuoRKPYyF1MBBit2Jw+2T0lW/VHB1GNLd9PmAz/7ipJZX4Br1TINGoJl/VsH+rj4LMzCA==","signatures":[{"sig":"MEQCIBNG8fQUoQgdq0rNNuST5rfo5dGOaymwGOKKr/K97+uiAiB46oQSUgEeaW7N6qgXDDGcZ5Be9oGqgaed6d7nlS8hsw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"5f6ee08e19cbcddf211ff30d75d4734274c080af","gitHead":"95365714025959bc27f6df0f62e2230c82736cc8","scripts":{"test":"node tests/index.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@gmail.com"},"_npmVersion":"2.11.3","description":"Virgil Security crypto library","directories":{},"_nodeVersion":"0.12.7","dependencies":{"getos":"^2.4.0"},"devDependencies":{"tape":"^4.0.2"}},"0.2.2":{"name":"virgil-crypto","version":"0.2.2","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@0.2.2","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"dist":{"shasum":"648f251e3181e3542c2ba88198429c9c9bb78b9a","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-0.2.2.tgz","integrity":"sha512-8eG+W7M99q6XpP8PkiDFUYqGFrXCjYStyU5P1yl6EVQcbXaFT1SsjVC0jPKfgis4WKNn4ZDdve64JbgT6OTEgQ==","signatures":[{"sig":"MEUCIQCiVNGMz79niWLsuC5rV/BACwawANKFRCoybQsRgKuVRgIgbB8o0n2Vzrh3kFtDxUAg0LzJWbi74j1hfDy69dPhDJI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"648f251e3181e3542c2ba88198429c9c9bb78b9a","gitHead":"17a49af694fa1a6382dc52ea5097ee863ba501b1","scripts":{"test":"node tests/index.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@gmail.com"},"_npmVersion":"2.14.2","description":"Virgil Security crypto library","directories":{},"_nodeVersion":"4.0.0","dependencies":{"getos":"^2.4.0"},"devDependencies":{"tape":"^4.0.2"}},"0.2.3":{"name":"virgil-crypto","version":"0.2.3","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@0.2.3","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"dist":{"shasum":"b0c860d70b2150cb67824e31b2109cbd5f55d1f8","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-0.2.3.tgz","integrity":"sha512-ETl34UEh76i514SNh6EsCIQJgMKL0t5gsZjPulVMDO11Vu5mPud5OvMcchsiJpoKGV9kUtn3GAYZbGlVZcVlAQ==","signatures":[{"sig":"MEQCIBdmz8JN0Ql6KvhL/i7WLRzJJXTiGekm6tpl2Qfbmuh+AiAHwaXEK5/lQde5SE1Ja2GlCeHHXwF0hJ7aOc70fJBhfw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b0c860d70b2150cb67824e31b2109cbd5f55d1f8","gitHead":"edd4ee551f97ffbfa288f7c1d0a367eee37d2c84","scripts":{"test":"node tests/index.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@gmail.com"},"_npmVersion":"2.14.2","description":"Virgil Security crypto library","directories":{},"_nodeVersion":"4.0.0","dependencies":{"getos":"^2.4.0"},"devDependencies":{"tape":"^4.0.2"}},"0.2.4":{"name":"virgil-crypto","version":"0.2.4","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@0.2.4","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"dist":{"shasum":"74440f629a5723b44533ac8cd2a7e6e057878b8a","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-0.2.4.tgz","integrity":"sha512-6gaaPF5YloRYnN8s5/fxxPPnXAPAp23a5ptXSxbgRRcctqYPkldq+NXjUOCMGFbUNCfjNkM+MS1vW2zxTU2m/g==","signatures":[{"sig":"MEUCIG5Gvw5nGfoXHtY73e66Mv+7RLMfZqPo4jI2l0CpA9GYAiEA7sRDNnM3qWcv2GQdBIDEsZSKzvl9+9Cp7gbTov5kX/A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"74440f629a5723b44533ac8cd2a7e6e057878b8a","gitHead":"95bfa6e503dfe735bb8e460a95c7d5ca0b5072af","scripts":{"test":"node tests/index.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@gmail.com"},"_npmVersion":"2.11.3","description":"Virgil Security crypto library","directories":{},"_nodeVersion":"0.12.7","dependencies":{"getos":"^2.4.0"},"devDependencies":{"tape":"^4.0.2"}},"0.2.5":{"name":"virgil-crypto","version":"0.2.5","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@0.2.5","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"dist":{"shasum":"b7fbf5f1ac9a384bf8aa350afc2afefeb1a2789d","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-0.2.5.tgz","integrity":"sha512-8k/olUfdWcIiL+bhQz9SrWhql+r0sKZGAyWV8T/F4zd+caRqweSD57gi5/w1eN2Km39JM4lHF6ROX8RJWlbOHQ==","signatures":[{"sig":"MEUCICTeGYL7RV6oG2/0SN/DJ44zPFytx5yY9qsk6tM2wY58AiEArFvRO33YXEQwrvVbutxE3ibH1nKfL0yS4Tb7F4MMZ1g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b7fbf5f1ac9a384bf8aa350afc2afefeb1a2789d","gitHead":"28e428367f9ce92e41cba8a88c46fc22798fcf05","scripts":{"test":"node tests/index.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@gmail.com"},"_npmVersion":"1.4.28","description":"Virgil Security crypto library","directories":{},"dependencies":{"getos":"^2.4.0"},"devDependencies":{"tape":"^4.0.2"}},"0.2.6":{"name":"virgil-crypto","version":"0.2.6","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@0.2.6","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"dist":{"shasum":"2a1f7298f17c7602b0b6e2fccd00641947ce34b1","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-0.2.6.tgz","integrity":"sha512-AS7jrdFOcVqWVDJtfjg/R3JIDI60D9dXRzU/Rl9B+XsPWaCrtaUlY9+Uqv0BnL0hHp+K/PgusIXpHh7U5T237A==","signatures":[{"sig":"MEUCIQCejZfjaYawerIrsOmURfm+G7Rp+NsMpXS+AG1adTOUIQIgZ+CtvzYsBeR3xu0Ymk5veK5d6oz44goRsiG6mOixbJY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"2a1f7298f17c7602b0b6e2fccd00641947ce34b1","gitHead":"7cba7a2878fbaa0e67f2fc02cfdb7edba905de91","scripts":{"test":"node tests/index.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"_npmVersion":"2.11.3","description":"Virgil Security crypto library","directories":{},"_nodeVersion":"0.12.7","dependencies":{"getos":"^2.4.0"},"devDependencies":{"tape":"^4.0.2"}},"0.2.7":{"name":"virgil-crypto","version":"0.2.7","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@0.2.7","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"dist":{"shasum":"6b45dd223707151d3d3840e96226a0b1b21dc8f6","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-0.2.7.tgz","integrity":"sha512-55p9W9ACk0yI/eo8SuQkk8U5EfnRLlbOUMKZvf362K0LGvUA86NiRm2t2PWlmQGaw8i5SK5MSki7wlMbkgaycg==","signatures":[{"sig":"MEUCIBU39ycp81JTNNDLGq9L4ckMTWuhLC4ziQP8Lnzgjct1AiEA54y2i6ORkfJ6Lk7LU+tBb9edWd9IZSwVR8SJ9kzsQ80=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"6b45dd223707151d3d3840e96226a0b1b21dc8f6","gitHead":"134cd741570ea070b06f8462bbf1f68e9dc74a32","scripts":{"test":"node tests/index.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"_npmVersion":"2.14.7","description":"Virgil Security crypto library","directories":{},"_nodeVersion":"4.2.0","dependencies":{"getos":"^2.4.0"},"devDependencies":{"tape":"^4.0.2"}},"1.1.3":{"name":"virgil-crypto","version":"1.1.3","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.1.3","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"b502cdc7527352d6bbf2f7adfb4d792d672f626b","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.1.3.tgz","integrity":"sha512-Vu3f+XK5u+Bgo6PsmTBJ9m/5HGg0mDke/vtD5IIyv3HsBqoQLPEfjU25ZpL4pA8r2Fm3F4Rk25z628ylGbtKUQ==","signatures":[{"sig":"MEUCIQDyd9hHEtNA0Kln8RocHYUQ0f4+Xbn6oKf/NvwIlGZcawIgAgMI+7GoF0BFsavDKP1EeEkUR1GG9F0/6opSRxDKiNg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b502cdc7527352d6bbf2f7adfb4d792d672f626b","browser":"dist/virgil-crypto.min.js","gitHead":"1ad034aea46b2d1968f4b91688fafe91def709d2","scripts":{"build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.2","dependencies":{"getos":"^2.6.0","bowser":"^1.0.0","buffer":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","yargs":"^3.31.0","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","script-loader":"^0.6.1","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9"}},"1.1.4":{"name":"virgil-crypto","version":"1.1.4","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.1.4","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"f746cba5bce90d1bb8f9323d9e6177148966ac7a","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.1.4.tgz","integrity":"sha512-bA6lYWavdUaHMjPgsVS4eQseAoJFaoyPqMUGG0vbLHeuYAXdn+VrkgZimZIVEsumP1mOx5NQewan/ZcLdv8DgA==","signatures":[{"sig":"MEUCIQCpGnALObQV8n8FSngCsSgeWVV0anSz61w/fQmsYgBfpAIgUgXlJq1ofkZUYtCa2ya3JPAdHygAq0ILsHze+Au8Lf0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f746cba5bce90d1bb8f9323d9e6177148966ac7a","browser":"dist/virgil-crypto.min.js","gitHead":"b46c24e2c5f0c46d7bf4baa85e6a92c0a062740d","scripts":{"build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.2","dependencies":{"getos":"^2.6.0","bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","yargs":"^3.31.0","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","script-loader":"^0.6.1","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9"}},"1.1.5":{"name":"virgil-crypto","version":"1.1.5","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.1.5","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"b818acbc161a68c97a9f42dbb14d3f0345f1f59e","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.1.5.tgz","integrity":"sha512-jvtBC2jREDD8BIWC7/vyCs4bdIpoAjrhkkizximxwNs2KcbPlLcya48zyzy9au1Cmvis3MpmO5thbjpWb+IFbw==","signatures":[{"sig":"MEUCIHYWrm+/GFGOZBal3tkRQpLE29nvygHaq9NpV0UxzDcuAiEA8pcgom77R+cWjSBz+YB7LJj9PkG2zWukRAfcTXdFxR8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b818acbc161a68c97a9f42dbb14d3f0345f1f59e","browser":"dist/virgil-crypto.min.js","gitHead":"b9309c6f8e8f5b0f0b122d39284dcf81e1ed9890","scripts":{"build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"2.11.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"0.12.7","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","yargs":"^3.31.0","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","script-loader":"^0.6.1","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9"}},"1.1.6":{"name":"virgil-crypto","version":"1.1.6","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.1.6","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"a3d2de8b11fb0b22fb3f70ceef101b1bad10d07b","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.1.6.tgz","integrity":"sha512-f1JfXEn7cRTP+OHIYhQpNiJ4mFIKIDFIMdKl/q9hhF9/iiNNLT2Hpqpk1DuWRT3gwwUcfl43Yl8G2N/ceE7kyQ==","signatures":[{"sig":"MEUCID7zSLAQWRpLV344dV++/YAe/tLyib8TxM0CQwQZgIfuAiEAtfnUCP/BIUSFS1QPd+7YINg7iyj94PHFtkic51yVWEM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a3d2de8b11fb0b22fb3f70ceef101b1bad10d07b","browser":"dist/virgil-crypto.min.js","gitHead":"011679c89477c0801f9abd0fe48307fd40b10db9","scripts":{"build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.2","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","yargs":"^3.31.0","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","script-loader":"^0.6.1","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9"}},"1.1.7":{"name":"virgil-crypto","version":"1.1.7","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.1.7","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"1e5a3ac4e7be254625569b3be35a4d9b80fde9c4","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.1.7.tgz","integrity":"sha512-YJoyGGlf4u/GdrB7iojK7F4wyyJvgX80cJ44PuGsLoNN+bmOjUzcC+OzwV7Qgug9ZC/X5QWtzvvSlzqXvfhS6w==","signatures":[{"sig":"MEUCIGXC+PLJUaMLSol8ziEseReCya2PvhXOtAbH6+Y459WfAiEAmFGoc69Llf7eYyV+fzKJcPqLu0t5Sh45e/wPU/c5L0g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"1e5a3ac4e7be254625569b3be35a4d9b80fde9c4","browser":"dist/virgil-crypto.min.js","gitHead":"dc1c104d9a589c5e6de1ebad258774c2e57fc66e","scripts":{"build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","yargs":"^3.31.0","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","script-loader":"^0.6.1","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9"}},"1.2.7":{"name":"virgil-crypto","version":"1.2.7","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.2.7","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"91440ace2a611309a62c4740f6fd3ac15a3d7c41","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.2.7.tgz","integrity":"sha512-tPk92Fg1GoWKtR3wUFJesrS8G+SsSoD+FwTdQO/OBT9OY0oy069gknP6XGSNjlHzmzgPGIBDdKipscRk7Zjm5Q==","signatures":[{"sig":"MEYCIQCAremVZXaWSks6i7sWuzHn/lnbEnZylJcDiiqurhf19wIhANi8sOqgFu9ERiaDV6GCzpTYEKaEkXD1yDKZw2eQ0Nsi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"91440ace2a611309a62c4740f6fd3ac15a3d7c41","browser":"dist/virgil-crypto.min.js","gitHead":"195c31c9caef12558fa9c1dfb02924763c4b6421","scripts":{"build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.2","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","yargs":"^3.31.0","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","script-loader":"^0.6.1","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9"}},"1.2.0":{"name":"virgil-crypto","version":"1.2.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.2.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"e88cd456d909e8f6f5df42b3d5983802aaa5e407","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.2.0.tgz","integrity":"sha512-otr6VtZnEeblmrNgMF/4YM/nPhwogmwcR+MfQ69+hc1sW6drcc80hCo+BzOr173XPSWVbCxcZIRHrJY20TL9hA==","signatures":[{"sig":"MEUCIFIKuBUm6Xh2kvWovzB1DbmRyJ/8R3qHwv7ulVOG5oZNAiEA04vdSZj+Z4cXotYxnh199fqdEC5SlYaAFroUJMOwrTA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e88cd456d909e8f6f5df42b3d5983802aaa5e407","browser":"dist/virgil-crypto.min.js","gitHead":"6a93c379e1da2c01d4cc67a57d97c899b95bdc5a","scripts":{"build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.2","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","yargs":"^3.31.0","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","script-loader":"^0.6.1","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9"}},"1.2.1":{"name":"virgil-crypto","version":"1.2.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.2.1","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"c9f9be45fe21b0a92b9cdc712f7ed250932b5ae6","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.2.1.tgz","integrity":"sha512-AY6fBuhpNofQsQ5gXLevrMDhSxZX+BAmtrEtgJSm8VeMirVsal2kZBhiDvM6ACT+yipw8jymyCc5UjHjJdCICQ==","signatures":[{"sig":"MEQCIHw5rghrLoMKf4FrneBaFprwcRD3N8LOihIFnP7+fKjqAiAW1HJE4twzzjZMkrmmnmbzX5Vtw29bKqkDXw/GR+9wBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"c9f9be45fe21b0a92b9cdc712f7ed250932b5ae6","browser":"dist/virgil-crypto.min.js","gitHead":"f38341d3d2dd96d57feb3d93b898221db77f3b35","scripts":{"build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"0.10.40","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","yargs":"^3.31.0","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","script-loader":"^0.6.1","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9"}},"1.2.2":{"name":"virgil-crypto","version":"1.2.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.2.2","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"8af9235b395117eb863835b134be9c1f09310b0d","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.2.2.tgz","integrity":"sha512-kORBxVafU4imX/Lfc8nrYUqNz5kvijSmA6XIX2pvJnytF5VyPLJ06LQLr0qewVG++67NSTqWLwkZstK1MTV/zQ==","signatures":[{"sig":"MEUCIQCduhDL+YI3JLK2H89k9u66UT4WRSMOniboWdTOho9g5gIgOWpGBB7V1XV5RGHgAlA4OD4q5gRSdw+sybxrdrN+3Sc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"8af9235b395117eb863835b134be9c1f09310b0d","browser":"dist/virgil-crypto.min.js","gitHead":"8fd5382e71965b1f868945bae151e13f8822f08f","scripts":{"test":"gulp test","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.2","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","yargs":"^3.32.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"}},"1.2.3":{"name":"virgil-crypto","version":"1.2.3","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.2.3","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"b02b24386c3e161f40d75710289345b4fb39b79c","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.2.3.tgz","integrity":"sha512-pCijAVPg8iT3BbnbAGcJj30CmNgFw0Xk+AOY2OZ4xEjHl7atu5s7w1rvxcaooYPHQAxYpA0Ff2LQN6Uz0xIghg==","signatures":[{"sig":"MEQCIC/9B8XOz43lDvAL+xevlrvJUy/6lAgkWflwkMe/sbx/AiAOpGy326DN3RSahksN/SUpcq3ZYpK1S9E1fQD3/173Ag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b02b24386c3e161f40d75710289345b4fb39b79c","browser":"dist/virgil-crypto.min.js","gitHead":"684573d47507d72a8712d8baa1f7aaa8858c4939","scripts":{"test":"gulp test","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.2","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","yargs":"^3.32.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.2.3.tgz_1454774590660_0.04764218465425074","host":"packages-5-east.internal.npmjs.com"}},"1.2.4":{"name":"virgil-crypto","version":"1.2.4","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.2.4","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"a83e916abce8aa6d463ab89231e7e4fe2385963c","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.2.4.tgz","integrity":"sha512-tx3Zpofo/EM0oLllvLOvzk4owltRioIf3uwqoOvKv5OqmU4YXxTdhKMATK/LWOAJW4OyniPPWXTAb1UVplzNNw==","signatures":[{"sig":"MEYCIQCC7Knmx7gd1PO+PlViBPN38lfuEKUMbQ/Auos9vyulxAIhAPDk+LGgb3UYAqD1kIlRMboOvvowdbOFw3t6T3D/9VAb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a83e916abce8aa6d463ab89231e7e4fe2385963c","browser":"dist/virgil-crypto.min.js","gitHead":"89fadc28835beaf82afa911d1497e3d32e17e448","scripts":{"test":"gulp test","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.2","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","yargs":"^3.32.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.2.4.tgz_1455221568102_0.4106325611937791","host":"packages-6-west.internal.npmjs.com"}},"1.2.5":{"name":"virgil-crypto","version":"1.2.5","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.2.5","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"f41cf47a95eefc03df2b875f02fbf8793491d455","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.2.5.tgz","integrity":"sha512-XDu+V7eIQPnlvPxj2PmqkVvC9pmjfJPVus1wsoXFC0+PVeXz0c6TqAainWHmzKdXHSjZxa5sjFryTqumYz2nPw==","signatures":[{"sig":"MEYCIQC4ce2I67BnA3rpEOtyhb3m5RUUX3qqGs/DsOjKXBkWdAIhAPpRZnfIGVC/t2HboHaTz6HkTb1iOkuQRrNq3cIYv1HD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f41cf47a95eefc03df2b875f02fbf8793491d455","browser":"dist/virgil-crypto.min.js","gitHead":"a5d63001430538c521988a59caa434ae7c1edc2c","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.2.5.tgz_1457882841055_0.4684635966550559","host":"packages-12-west.internal.npmjs.com"}},"1.3.0":{"name":"virgil-crypto","version":"1.3.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.3.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"093b622719d26b299a2df5a1d45bdd888bcfa464","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.3.0.tgz","integrity":"sha512-tdlUvIYT9DssmoyoPHW7/UG58stD9IIt2m2/9SBECXr7CVgAqvlOmZkOsS4I8y8ggGHCKBDaW3ANTQAiHvpWBQ==","signatures":[{"sig":"MEQCIAn4IYnrJe/cmj8N+hICCKLu+H5ygarG03q+5Kjo35PYAiBa5nPSF8lRF1xDbLy7yrCjw4XzO1uxOTOX/w1rpB9yLw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"093b622719d26b299a2df5a1d45bdd888bcfa464","browser":"dist/virgil-crypto.min.js","gitHead":"02b75015a3dd8f1c11ed4be650fb81c6bb56ec86","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.3.0.tgz_1458894630565_0.3758148355409503","host":"packages-12-west.internal.npmjs.com"}},"1.3.1":{"name":"virgil-crypto","version":"1.3.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.3.1","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"02f9ea64c4065acacbde211f9a7b1571204620d0","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.3.1.tgz","integrity":"sha512-Xcrtn/PpIm09JuaphhPUwp3nktufEpQ4+pG3jlE4Jl04gyP6bn9aBMiGinrBVKModr3vUp5EPKYeMciWdu5p+A==","signatures":[{"sig":"MEQCIFJn7mN2RNA4Eg9sg6ReIOMW67bxZKmQj4pgB0e0C2C/AiA5Q4ZJFU+d7jbgGz3bQoparjF9UrulfHsmHTvDMmXL6g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"02f9ea64c4065acacbde211f9a7b1571204620d0","browser":"dist/virgil-crypto.min.js","gitHead":"563f655e845c5816e8bb2b6855ea2b5d43fa75d5","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.3.1.tgz_1459170712537_0.08708859537728131","host":"packages-16-east.internal.npmjs.com"}},"1.3.4":{"name":"virgil-crypto","version":"1.3.4","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.3.4","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"09a601e9793ae6615d0a4b7fbb2b411c3a63212b","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.3.4.tgz","integrity":"sha512-yBdHX8Qy5nkewZ72t+5RciwWvmfmq2KDkt1lIMLYnHCgBsJZxtbDycJEXzWlu/wrV+NrL9MYhenKqQJRWnsUlA==","signatures":[{"sig":"MEUCIBQ9dhZRyOwm2tTw+LD3Imk3N6okPs1NKmRYzSuUdT5pAiEAxC8w1xdWGsvXK0SxQFxsmMxzQCfqDYQmCfrupShCO9U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"09a601e9793ae6615d0a4b7fbb2b411c3a63212b","browser":"dist/virgil-crypto.min.js","gitHead":"fd43aec1c71c62eb41e5407675b75c26adb6f949","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.3.4.tgz_1459177217661_0.11477433145046234","host":"packages-12-west.internal.npmjs.com"}},"1.3.5":{"name":"virgil-crypto","version":"1.3.5","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.3.5","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"b575c5546f673d3af287f6a4fff7525c8c09845a","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.3.5.tgz","integrity":"sha512-8OecZoMQqN8upF6iGUbl7NUStACetToVE7oT2+I+1AawKagrj1SzpiiCuO718Ang1rybA7ucvRLNr/laj3brAg==","signatures":[{"sig":"MEYCIQDNTdBNgrespvIiDDRJbaNkzfVy5IYph3ZXKpTdaGagowIhAI1swkxI/9ImlK4KGtYUC4cXjcR2i59fC0h/EZJDXzPh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b575c5546f673d3af287f6a4fff7525c8c09845a","browser":"dist/virgil-crypto.min.js","gitHead":"38ddf0a703783e4046761ebf2d7c1a1af74c93b3","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.3.5.tgz_1459179603954_0.6251700893044472","host":"packages-12-west.internal.npmjs.com"}},"1.4.0":{"name":"virgil-crypto","version":"1.4.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.4.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"7e63fa9d5a05ca03d16d2b107cd03449edd05b00","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.4.0.tgz","integrity":"sha512-wVjyMzZOUTJsG+OpChcsITWixwvQwnAhWznVXS+t+j4Xki5Uf5lRwokHX1WSyLj8q/MbtFU6KrBwvyUtHYe6zw==","signatures":[{"sig":"MEYCIQDb26yBEWAvCWrWnxsSEUfyuW6ifkIwFs4/ApNF9ZdQrQIhAPLWvS5TB5CMWojPQl6n0embolq351YtUvO1hWH5Ssds","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"7e63fa9d5a05ca03d16d2b107cd03449edd05b00","browser":"dist/virgil-crypto.min.js","gitHead":"26245dc61689847147fd485b1e8b310f1f18c290","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"bowser":"^1.0.0","buffer":"^4.0.0","lodash":"^4.0.0","es6-error":"^2.0.2","operative":"^0.4.4"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","gulp-util":"^3.0.7","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.4.0.tgz_1460561309678_0.11231108056381345","host":"packages-16-east.internal.npmjs.com"}},"1.5.0":{"name":"virgil-crypto","version":"1.5.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"43a5204b1ac6217b34bb663e590b74834bdcc890","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.0.tgz","integrity":"sha512-s4DKDBy9oWLpkh9YSflp3azJqGQ//2kI4Pd8N5zDfmPi16YpNnH8Szq6H/oW6Uc+rcXC3TvM2uf+tzGjqLKwJg==","signatures":[{"sig":"MEUCIQCjgBOxEQJVcPE7UhVyEy/a0bvV1bgdFrL8q4hCpvcVfgIgaDYJzg52h/6NRltUPkAHvqJPRQluMK/MC7xmtzbZfyk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"43a5204b1ac6217b34bb663e590b74834bdcc890","browser":"dist/virgil-crypto.dev.js","gitHead":"8a44f5756455d403e57df6812cf95b53c4be209b","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"0.10.40","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.0.tgz_1461927096332_0.24313525995239615","host":"packages-12-west.internal.npmjs.com"}},"1.5.1":{"name":"virgil-crypto","version":"1.5.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.1","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"a20999538701762043a88c31a68bb2c73f39d1df","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.1.tgz","integrity":"sha512-VJfJR1lswXK2/tbzYNfgnEOucaO+OCvvh0p5dcPpB3EQHiADm6NTCiU7q6zj0D2S8Sxxvt+z7Z4vVqdaAvgnFw==","signatures":[{"sig":"MEYCIQD7Huh6ozxUvpvPZIVvG4mgB2XOf+Yjr2JyyseCR7aW+AIhAK3xEVb1kRW4W25PTxOrp+H0CmJswQ2qGyvo0dEobee8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a20999538701762043a88c31a68bb2c73f39d1df","browser":"dist/virgil-crypto.dev.js","gitHead":"6a0c72c91f3f4a3c594b862ed74caf13b923b0ed","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.1.tgz_1462226815650_0.9284723114687949","host":"packages-12-west.internal.npmjs.com"}},"1.5.2":{"name":"virgil-crypto","version":"1.5.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.2","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"d742dee9ed01908b724408e16e1e7840c245e0d3","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.2.tgz","integrity":"sha512-GLtS+nM9YY1L5LHKnUu90WC5pkPjIZ+uDOMEXPHdpzEnDaV6wBHsz3Cw9SI6+pG8r4H3mQNDkCUsByDVmMB8VQ==","signatures":[{"sig":"MEYCIQDxtXLgz0MsUN4qMGM2c/rRop7nayLRYwa5k1w6HM09xgIhAKZR3VOnZeg9f+GyG/GMqAS9s6KULUvZqv3QkW9bUhTy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d742dee9ed01908b724408e16e1e7840c245e0d3","browser":"dist/virgil-crypto.dev.js","gitHead":"03f2e1c3f06a83231e8b565e2d223ae209ce7ece","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.2.tgz_1462229148016_0.38883843808434904","host":"packages-12-west.internal.npmjs.com"}},"1.5.3":{"name":"virgil-crypto","version":"1.5.3","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.3","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"b4c018f41183633ed872498381e8ebd835de14a3","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.3.tgz","integrity":"sha512-dz/atJI89qD5vTQ4kOQj5cHAH4q/+D1jIslxukNYi81dn3EerxBfMXcnnOK5OXj/lbSucod5uWtZzVfz3brgLA==","signatures":[{"sig":"MEQCIEq2dbHos5ymBp1ShQUjdJOzmIu5k+PbdnbLnEnSihrzAiAdmPakUW7a4vVJvcD/E6/HmspmWMRZ0m06Au0QbAhM+g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"b4c018f41183633ed872498381e8ebd835de14a3","browser":"dist/virgil-crypto.dev.js","gitHead":"461422e78edb0ca328b8004884e6c763591b1af0","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.3.tgz_1462249259518_0.15939813712611794","host":"packages-12-west.internal.npmjs.com"}},"1.5.4":{"name":"virgil-crypto","version":"1.5.4","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.4","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"a9a83e7c4a15899ffd0c18f062be57e2c8a26cd7","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.4.tgz","integrity":"sha512-/di9VycjZzi8PxxdkqTRiD2EE9fiv2Nu30t0cpkLs+ewbjhoAnyLqBPSRibYzkeEhmDUwZyWrrTcPEXiuKhzqQ==","signatures":[{"sig":"MEQCIAlOgqZA/3bk2RmfQs9nIq3uPFV434q+DFt96ImvyPuLAiBiBjIVscPp/j2X6IwQ43Bx693rh+fwGSw43WmOhyX9oQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a9a83e7c4a15899ffd0c18f062be57e2c8a26cd7","browser":"dist/virgil-crypto.dev.js","gitHead":"abe0f6c3d62ce2ca51daa0cd6dd19cabcb20e776","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.4.tgz_1462255033419_0.6148259525652975","host":"packages-12-west.internal.npmjs.com"}},"1.5.5":{"name":"virgil-crypto","version":"1.5.5","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.5","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"d65382698e8362ca322c62f3863f2a020aac770f","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.5.tgz","integrity":"sha512-QtDAzyjYyyMr9QA6p2AkqfsJMdbDs40ZE1CxbjCtMGoZxEInIkQmJ6iFohP0ULRdARwbQPzslZoA2Pv8Tr1qNA==","signatures":[{"sig":"MEUCIByTrZ1qjxGsWe1OiQRBAHWrDhbz9Qd4fluFb4P7TgesAiEA0CSqkPLRoQsbHLgDlDSdAIt3NBRUmsUy5cV/dBlmjmI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d65382698e8362ca322c62f3863f2a020aac770f","browser":"dist/virgil-crypto.dev.js","gitHead":"a473218f3331c126687ad4ca001c582ce597531d","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.5.tgz_1462257532393_0.19447389873676002","host":"packages-12-west.internal.npmjs.com"}},"1.5.6":{"name":"virgil-crypto","version":"1.5.6","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.6","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"45f7769a8c6d8bedbb5c5866298c178c61b0463b","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.6.tgz","integrity":"sha512-EsjIFtuXNPZ1JkEbbNWKDOA/sj5nCdiQSa6JyO9mEh+n6zZxZI3+qJj9tp6x/QgHBl1RM3EWjTtnleYsr8474w==","signatures":[{"sig":"MEQCHxbMgS38iJUJxS8zHsN8BWh0O/zwlBx5je0dM8HXDeACIQCBQ+WqqkIedN8brqhzLgzKJDn17D9NPu6OxXiTnKTQMw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"45f7769a8c6d8bedbb5c5866298c178c61b0463b","browser":"dist/virgil-crypto.dev.js","gitHead":"ecd124868c8b1129d6fb1e12a048ae53a57cdabf","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"0.10.40","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.6.tgz_1462480458227_0.18367968243546784","host":"packages-16-east.internal.npmjs.com"}},"1.5.7":{"name":"virgil-crypto","version":"1.5.7","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.7","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"5fabcf8666b7d904d9a0b4f0e22838a9ebb71ea5","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.7.tgz","integrity":"sha512-Ua9TAYjkyAMp9QApp8IS6SEIXhrt4lO5n8aUG4woKZRa/VecLta0iig0vrXEMcp/c72xVZ7DJuYH8DjXEwjwKg==","signatures":[{"sig":"MEQCIDQD+WjPB7BFNUsr+nFHiPSVhdySf3wxBwaL4hJU6PNPAiBiV02ma6cRr/LmVZTF1zEuJkRss/qy7e6mi6yDPvgTFA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"5fabcf8666b7d904d9a0b4f0e22838a9ebb71ea5","browser":"dist/virgil-crypto.dev.js","gitHead":"6f5812d06f61e91fc45563acd5b53fd0a30e1ae0","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.2","description":"Virgil Crypto","directories":{},"_nodeVersion":"0.10.40","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.7.tgz_1462894809064_0.48295577615499496","host":"packages-16-east.internal.npmjs.com"}},"1.5.8":{"name":"virgil-crypto","version":"1.5.8","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.8","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"6bface4329118044d7953be29c2c7bda02cc392f","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.8.tgz","integrity":"sha512-1dl6COhuSry/Mf2U+P2QWnO5CXRsjoSJ/05/6IIFqL1Tach6j2JY6T43Qo95CJPz1UnosswnyFSzUzdD4Ok5Rg==","signatures":[{"sig":"MEMCHy9j+8tDn1mVF+mswx6ounvo9wefmaLnaHc+fMOeCVoCICR8iB7bRE9sc1lFZbT0Q76mx+wgu5cy5P1GOqY4qPKz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"6bface4329118044d7953be29c2c7bda02cc392f","browser":"dist/virgil-crypto.dev.js","gitHead":"db74fd8e01b9c28afb5ab61eecb5d7d4755d7fba","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"2.15.1","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.4.3","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.8.tgz_1462993895883_0.10481815226376057","host":"packages-16-east.internal.npmjs.com"}},"1.5.9":{"name":"virgil-crypto","version":"1.5.9","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.5.9","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"41109202bd6a222d0a67be414385725105634dcc","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.5.9.tgz","integrity":"sha512-2xM5VLdynRUtuN8PUa+0bEsI+a9wv9coCfd0IFtI8r372l5qTVdSKd+YL6vxX3JPyYcOy6Knv6V7D0I7NiPH8A==","signatures":[{"sig":"MEYCIQDVXde+IsSpwwjjDrgDxwmGJLMKE9U4sZz6Ejm74V3NggIhAIqcaS5p4uNpC6qxfbnzHmPn6wg5om7fnSjYl3SxuAO2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"41109202bd6a222d0a67be414385725105634dcc","browser":"dist/virgil-crypto.dev.js","gitHead":"95c46f69f286952af53c15be4273eaa4d41451bd","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.5.9.tgz_1463583122023_0.7260313413571566","host":"packages-16-east.internal.npmjs.com"}},"1.6.0":{"name":"virgil-crypto","version":"1.6.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.6.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"ca89d5e9d1133a657fcd8bcf0e55f0c9687e68e2","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.6.0.tgz","integrity":"sha512-wBSz0dtZkTk3HjwNuhsES6iPHkfuhcOWVbjnX2SSwNbIdGel9/jB37Wa7EwNA7cqgknQMjrGeccRm8sj2tpKng==","signatures":[{"sig":"MEYCIQDAnqhqHF3QUAhoVNAYJd/gnMv4oNbD9I1+I1ZQafI/5QIhAM8t2jYGnW0grAlIdGKxW9dS7WOBT/UynmqGpmILnx9e","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"ca89d5e9d1133a657fcd8bcf0e55f0c9687e68e2","browser":"dist/virgil-crypto.dev.js","gitHead":"5a93fb7fb59cad33617d3f7983a95ed8ebc08fc4","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.6.0.tgz_1465649958169_0.6125348752830178","host":"packages-16-east.internal.npmjs.com"}},"1.6.1":{"name":"virgil-crypto","version":"1.6.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@1.6.1","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"41db059c6b115f5a1c02ead9cc2ad7d707db516c","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-1.6.1.tgz","integrity":"sha512-Dl7B/n9/0738g/6k2EwQsz5jxsbsGa3R3qehOxbjgpn+1zptaeDAjlc7OUeebHHVFcE24GiGMqiFGNDHXM770Q==","signatures":[{"sig":"MEYCIQC/PjDOenO93fgb/PqvJh37X8oGcKuJr+1ZlKVrJ/uKuAIhANGk8wsY6LAz3g6br2zDb7UroiIluXeHW220r+wfIyZV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"41db059c6b115f5a1c02ead9cc2ad7d707db516c","browser":"dist/virgil-crypto.dev.js","gitHead":"7f9b01d81d2af352049ae7d584602183d2f4c301","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.5.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.0","dependencies":{"lodash":"^4.0.0","node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-1.6.1.tgz_1467644274618_0.2410622334573418","host":"packages-12-west.internal.npmjs.com"}},"4.0.0-beta.0":{"name":"virgil-crypto","version":"4.0.0-beta.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@4.0.0-beta.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"6c4f7b95c13cd16818a91e70938e3da616c2c968","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-beta.0.tgz","integrity":"sha512-snSPXCjou8YqiesBD4iDdHWYSlfS9Smk+8quQjkiCxOjPbk9EViekfbFTQBLOMbJB5KsCcudfL6zt+ZcHRfXWw==","signatures":[{"sig":"MEYCIQCNzxzj4q5LuMf9bOjWgHnMGTlbOdjWomQkLG2nW2TN4gIhAJ1IOBWjsLr5rLRZJEnxa/oPrdsEic3+VUFBQLFMjkGH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"6c4f7b95c13cd16818a91e70938e3da616c2c968","browser":"dist/virgil-crypto.dev.js","gitHead":"c0487fb7c3970ecc877ae4e87f287324e35495cb","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.8","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.4","dependencies":{"node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-4.0.0-beta.0.tgz_1476793977055_0.8101596704218537","host":"packages-16-east.internal.npmjs.com"}},"2.0.0-beta.0":{"name":"virgil-crypto","version":"2.0.0-beta.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD","_id":"virgil-crypto@2.0.0-beta.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"d34bb06466c5d08e68b2b7efdf32158688f087cf","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.0.0-beta.0.tgz","integrity":"sha512-PjGxkvRVqKNZohdxg/Pt0Ph9vY+Jm39vEk2qGQwDglOkHUHHoQQ48/6Rb+V4X/pmaPV2MzwDU1NH7g+4ihUWmA==","signatures":[{"sig":"MEUCICmVnj7Xv/+XP5QkqSVkvC4KkMghLQNqwRV+uMnHcH/WAiEAprUOZbR/E8851BjsoUd2SCBm/6D+oW/iyaWi2c6zAfc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d34bb06466c5d08e68b2b7efdf32158688f087cf","browser":"dist/virgil-crypto.dev.js","gitHead":"fe5a6ac93120ef2aec14460b887c91f765110883","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.8","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.4","dependencies":{"node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.0.0-beta.0.tgz_1476794497333_0.48336678743362427","host":"packages-16-east.internal.npmjs.com"}},"2.0.0-beta.1":{"name":"virgil-crypto","version":"2.0.0-beta.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.0.0-beta.1","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"52ff8777e29af4ca257a9d6ea2fc8ae2cb6ef252","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.0.0-beta.1.tgz","integrity":"sha512-60ho0qq3o38Xqg83KmB3W2jNCOnmanOJxbPQUik746JOnmqjOHPCekDdn5qPD3f6jueamvr4qTHxnP5T6spmJw==","signatures":[{"sig":"MEYCIQCG7xrEKtrOqXOZzuKw7x9Yoo4R4KSEp5ZKJMD0Gpy66QIhAJ0fi1Yi5RwZEfdsvA2Q+94pKVtJD1zxQKORiUS4QiQ8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"52ff8777e29af4ca257a9d6ea2fc8ae2cb6ef252","browser":"dist/virgil-crypto.dev.js","gitHead":"6976815b52032894afde79b9491889c99090d27e","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.8","description":"Virgil Crypto","directories":{},"_nodeVersion":"4.2.4","dependencies":{"node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.0.0-beta.1.tgz_1477059070302_0.35867768176831305","host":"packages-18-east.internal.npmjs.com"}},"2.0.0-beta.2":{"name":"virgil-crypto","version":"2.0.0-beta.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.0.0-beta.2","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"ebf43746094598aef17b6d99065fbcf3639715d8","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.0.0-beta.2.tgz","integrity":"sha512-D+V0upcSGFQ1MTI8XRwcW1e6kMmoPyM1e9215GsfWfjLu3cQkDlZRSy8wKFiaBTgR2DmDQN3PP4lnG5o2tXz+w==","signatures":[{"sig":"MEUCIEjKecSKi7Qbc8Ih6A8XJDkRFmUeCysTHaymEbyxwN90AiEAqGOKfFF0lwPAa2h5H3RUFZ//uTylThFYr4qVwIDass4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"ebf43746094598aef17b6d99065fbcf3639715d8","browser":"dist/virgil-crypto.dev.js","gitHead":"3e68216850911d4964e882d66554bd3557931735","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.7.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"5.9.1","dependencies":{"node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.0.0-beta.2.tgz_1478008429547_0.6625920799560845","host":"packages-12-west.internal.npmjs.com"}},"2.0.0-beta.3":{"name":"virgil-crypto","version":"2.0.0-beta.3","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.0.0-beta.3","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"39d9427879651bc87f76f4e18b782a7327e6b185","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.0.0-beta.3.tgz","integrity":"sha512-LHjW8KBlzNQ1gb3qaCz2LQyHL+YVUcTrit7SC/4ZrxG7QSeLgsK5IkGlHyJBciCYAE+nFxBmdmXfZxQ7mStkZg==","signatures":[{"sig":"MEYCIQDOjsUMG9a9PpLZEhHMPPfzexwc38qy+ilWE4cCS658dQIhAL/F4DxfiB7fl85+9GgS2ea279teyLRR2xAFcyrUmlol","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"39d9427879651bc87f76f4e18b782a7327e6b185","browser":"dist/virgil-crypto.dev.js","gitHead":"b133061fbad12e91cd015cef0b29b3339d1066e6","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.7.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"5.9.1","dependencies":{"node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.0.0-beta.3.tgz_1478095997228_0.34843211667612195","host":"packages-12-west.internal.npmjs.com"}},"2.0.0-beta.4":{"name":"virgil-crypto","version":"2.0.0-beta.4","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.0.0-beta.4","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"6d31b96eee8f277f04013e2b60cf0da040d298c6","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.0.0-beta.4.tgz","integrity":"sha512-+FokgrmyASH4Ti3cx54PDGbGjAQzZ0lplD0Bk8iePeQGd1C3b7zjjMctWTVqdhq7XD5vmiuSWlsJGFbhFKjRmA==","signatures":[{"sig":"MEUCIHhtzyyxyKsG9KzlbccoX0FfbTPdq1rrEeIiKyXe6lzVAiEA80rjg+AlpMz6ejat52SDtJWSnb9NziHLyzyI4NEefTk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"6d31b96eee8f277f04013e2b60cf0da040d298c6","browser":"dist/virgil-crypto.dev.js","gitHead":"e8eddd357688825a5ce7574f6bb4a0bcf2762aab","scripts":{"test":"mocha src/node/tests","build":"gulp build --debug && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.7.3","description":"Virgil Crypto","directories":{},"_nodeVersion":"5.9.1","dependencies":{"node-uuid":"^1.4.7"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","babel":"^5.8.21","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^5.3.2","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","babel-runtime":"^5.8.20","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","es6-module-loader":"^0.17.9","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.0.0-beta.4.tgz_1478101067077_0.19717426598072052","host":"packages-18-east.internal.npmjs.com"}},"2.0.0":{"name":"virgil-crypto","version":"2.0.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.0.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"bc15041e42cd8abdfe60aaaff8f4f29af0907026","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.0.0.tgz","integrity":"sha512-b6ZB+SoayhW7iLs20VQFM+EuUwDY3290JdF6tIO5Hr3VlhAAlEUUeHMGfm+b28G8wzZuzxMITgP36qXgK0KjKg==","signatures":[{"sig":"MEQCIHjXhjQoUZpj6s+YtJEi3g1ijmA6EveKrYIHwed1gKIbAiAhr7VMsrb0CQh+Uz391Mk6EhYcRowYl+CmDyjczLONLw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"bc15041e42cd8abdfe60aaaff8f4f29af0907026","browser":"dist/virgil-crypto.dev.js","gitHead":"9d111bc4920bc2107db68fdea77c194d376d08aa","scripts":{"test":"mocha src/node/tests","build":"gulp build --development && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.8","description":"Virgil Crypto","directories":{},"_nodeVersion":"6.9.1","dependencies":{"babel-runtime":"^6.20.0"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","buffer":"^4.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","babel-core":"^6.21.0","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^6.2.10","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.18.0","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7","babel-plugin-transform-runtime":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.0.0.tgz_1484232766899_0.6916500488296151","host":"packages-12-west.internal.npmjs.com"}},"2.0.1":{"name":"virgil-crypto","version":"2.0.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.0.1","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"c9d552803501ba1391ffdde7226c988da87dbf68","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.0.1.tgz","integrity":"sha512-9RQgsHdZynVdZpP0m+/shIxZnzB1SyVAQ+wlM8tbNKtBFg5Req2kd8Yz6xNTDiqE+PyNMz52gQ0PGgG2wJmP4w==","signatures":[{"sig":"MEYCIQDyET3MNN171bZr/TpHCuZu5env6aGAx1Vj9bwlBPQ6oQIhAID6RC4Cr4qIdNhSI6kur94izhqhbWL4eGk4Y+cYUC6x","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"c9d552803501ba1391ffdde7226c988da87dbf68","browser":"dist/virgil-crypto.dev.js","engines":{"node":">=0.12 <7.0.0"},"gitHead":"7892fc1c4036d09da849f922d695ba15e24443c2","scripts":{"test":"mocha src/node/tests","build":"gulp build --development && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.8","description":"Virgil Crypto","directories":{},"_nodeVersion":"6.9.1","dependencies":{"babel-runtime":"^6.20.0"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","babel-core":"^6.21.0","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^6.2.10","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.18.0","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7","babel-plugin-transform-runtime":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.0.1.tgz_1484588699156_0.2283251800108701","host":"packages-12-west.internal.npmjs.com"}},"2.0.2":{"name":"virgil-crypto","version":"2.0.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.0.2","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"a9987716b1c314893effada8a0187b6cfc3f0483","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.0.2.tgz","integrity":"sha512-Y5BFYIL6V4n3gtiSt24RYD0I8ESWYdIjtMm4WgE3V/F1AlwCJjDwZDMPCIh6RwgGX2GbWG0ok4qjvda+OvakDA==","signatures":[{"sig":"MEYCIQDE39aqYSkC552ZZBHD3PZPFXm7gA3hcIlsKePPpFeL/AIhAOGkrY+XTcshUSpfd+xq3aLi43YfZFpcJ9z2//dHrCq2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a9987716b1c314893effada8a0187b6cfc3f0483","browser":"dist/virgil-crypto.dev.js","engines":{"node":">=0.12 <7.0.0"},"gitHead":"05aeca91b444b6073b7825568542a058a46aa551","scripts":{"test":"mocha src/node/tests","build":"gulp build --development && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.8","description":"Virgil Crypto","directories":{},"_nodeVersion":"6.9.1","dependencies":{"is-buffer":"^1.1.4","babel-runtime":"^6.20.0"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","babel-core":"^6.21.0","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^6.2.10","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.18.0","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7","babel-plugin-transform-runtime":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.0.2.tgz_1489408756678_0.816896503791213","host":"packages-12-west.internal.npmjs.com"}},"2.1.0":{"name":"virgil-crypto","version":"2.1.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.1.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"5a74b14ed660ac3ec7b31e686632c6e1a485fe54","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.1.0.tgz","integrity":"sha512-/h1sfsT7PdgaRIOhyVQfRTYCnMGtdW5qup1TsqQrSdgCVK6ttbDR18qI5HccHeKKnU539qCqqPzjH+MQZFL57A==","signatures":[{"sig":"MEYCIQCPvToWpdFSxiy61aLdqBNch3zzcBHeMfpdclM3/jfzQAIhAOlji65zZWSMlbVh6a1HLKbtbI0E9MBk+yd9X4AbaE61","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"5a74b14ed660ac3ec7b31e686632c6e1a485fe54","browser":"dist/virgil-crypto.dev.js","engines":{"node":">=0.12 <7.0.0"},"gitHead":"3a2fe9dd96ea9cca81035ed689cbb9d0bf417667","scripts":{"test":"mocha src/node/tests","build":"gulp build --development && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.8","description":"Virgil Crypto","directories":{},"_nodeVersion":"6.9.1","dependencies":{"is-buffer":"^1.1.4","babel-runtime":"^6.20.0"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","babel-core":"^6.21.0","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^6.2.10","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.18.0","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7","babel-plugin-transform-runtime":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.1.0.tgz_1493904324539_0.8695383490994573","host":"packages-18-east.internal.npmjs.com"}},"2.1.1":{"name":"virgil-crypto","version":"2.1.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.1.1","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"0f4f8db47ae1a63af2c3f9ce7f5004a67ede07d7","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.1.1.tgz","integrity":"sha512-dS42Cx/NQCBwb7tUPSaUM8UGzXwUHY9h0VuKcjp5OubZyRQ5x5zStvSF2Z2+ijkdNpyHJlGmu4r6Yy/uz0agyw==","signatures":[{"sig":"MEMCH1SBXrxaKSZGkXXbSakaL8eIwIR7/+N/AJSzWkRUyEUCIBCNrvYONFwuWNRdG0LQkB2KkCV+fAMlQDXI+NDVgF6z","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"0f4f8db47ae1a63af2c3f9ce7f5004a67ede07d7","browser":"dist/virgil-crypto.dev.js","engines":{"node":">=0.12 <7.0.0"},"gitHead":"c3eb6c1020f046198bdbbeafb4a10308f8739bf3","scripts":{"test":"mocha src/node/tests","build":"gulp build --development && gulp build --production","asm-update":"node scripts/download-asmjs-library.js","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.8","description":"Virgil Crypto","directories":{},"_nodeVersion":"6.9.1","dependencies":{"is-buffer":"^1.1.4","babel-runtime":"^6.20.0"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","babel-core":"^6.21.0","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^6.2.10","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.18.0","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7","babel-plugin-transform-runtime":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.1.1.tgz_1499795363602_0.6961929141543806","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"virgil-crypto","version":"2.1.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.1.2","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"d7be4c3ec5e86aa8fb85867e03116865c73119b7","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.1.2.tgz","integrity":"sha512-e2bQX6OMjF2dr0tuVlBiJShdS+SdxZbgKkFgHvXdKHjw532P3vUKXfVgE4EnhqP0mfEln0mHJRfoXZ+nS/3T6A==","signatures":[{"sig":"MEQCIFMIZGQrh7BBmLcnCN92tBUfA6S/US0kvS3fQct0WsxZAiB+urr1xChk2DuQPvv9mY0diNxX20o7jx9XS6Y65LElOQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d7be4c3ec5e86aa8fb85867e03116865c73119b7","browser":"dist/virgil-crypto.dev.js","engines":{"node":">=0.12 <7.0.0"},"gitHead":"d3973eac1937d6f133198c3699f2175393162fc9","scripts":{"test":"mocha src/node/tests","build":"gulp build --development && gulp build --production","version":"npm run build && node scripts/updateReadme.js && git add dist README.md","asm-update":"node scripts/download-asmjs-library.js","preversion":"npm test && gulp test","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.10","description":"Virgil Crypto","directories":{},"_nodeVersion":"6.11.2","dependencies":{"is-buffer":"^1.1.4","babel-runtime":"^6.20.0"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","babel-core":"^6.21.0","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^6.2.10","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.18.0","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7","babel-plugin-transform-runtime":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.1.2.tgz_1504023611936_0.45481321797706187","host":"s3://npm-registry-packages"}},"2.1.3":{"name":"virgil-crypto","version":"2.1.3","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.1.3","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"d60933b2dcde1a73a5e63b07f4dbc00577b5f279","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.1.3.tgz","integrity":"sha512-NQsBpeG6rLUgHXfpc2PYPCmnOZTKBpIPtgwpkszQv4dNg2VR8nBDMVTiQi1/cp1vZPu3waTNkzj0g7LKBzNnRQ==","signatures":[{"sig":"MEUCIQC95lOd/zx/w0cLuc2+VfoVEGJlsbW93TG4aJnXo4MpRAIgOOSlX5b4xN4LDWkiIVh32j+iGPsBNu+KUZbMFHLn5HM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d60933b2dcde1a73a5e63b07f4dbc00577b5f279","browser":"dist/virgil-crypto.dev.js","engines":{"node":">= 4 < 7"},"gitHead":"71b8b5f523ffe4d4e79901f2747a947441e7218f","scripts":{"gulp":"gulp --","test":"mocha src/node/tests","build":"gulp build --development && gulp build --production","version":"npm run build && node scripts/updateReadme.js && git add dist README.md","asm-update":"node scripts/download-asmjs-library.js","preversion":"npm test && gulp test","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"3.10.10","description":"Virgil Crypto","directories":{},"_nodeVersion":"6.12.0","dependencies":{"is-buffer":"^1.1.4","babel-runtime":"^6.20.0"},"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","babel-core":"^6.21.0","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^6.2.10","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.18.0","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7","babel-plugin-transform-runtime":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto-2.1.3.tgz_1517579079342_0.7577284728176892","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"virgil-crypto","version":"2.2.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@2.2.0","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"contributors":[{"url":"https://github.com/ebaranov/","name":"Eugene Baranov","email":"ebaranov.dev@gmail.com"},{"url":"https://github.com/boo1ean/","name":"Egor Gumenyuk","email":"boo1ean0807@gmail.com"},{"url":"https://github.com/vadimavdeev/","name":"Vadim Avdeiev","email":"v.avdeiev@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"472ab17e96be1a99defb9a5c366c8be082ace09d","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-2.2.0.tgz","fileCount":126,"integrity":"sha512-T0aBS1D6WdLQ2CcdPA5uZEzIf1PHLDnMcVi9r46uOXXkdbv9jX+dxqjx1eZvstGBt7OP9PUsey+2i6YYZr99Ew==","signatures":[{"sig":"MEYCIQCtnbHsAK7Gn0DwKP05PCLJ6/PvQy40kbXt0ObvD9falgIhAPHdQqTHnd+SAmykFDhndUp3Hye/T6lSjdIdIFTo+eAk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6314427},"main":"index.js","browser":"dist/virgil-crypto.dev.js","engines":{"node":"4.0.0 - 9.9999.9999"},"gitHead":"f5182618765d299b18354b8864e6b6e649ffefae","scripts":{"gulp":"gulp --","test":"mocha src/node/tests","build":"gulp build --development && gulp build --production","version":"npm run build && node scripts/updateReadme.js && git add dist README.md","asm-update":"node scripts/download-asmjs-library.js","preversion":"npm test && gulp test","test-watch":"gulp test --debug --watch","postinstall":"node scripts/download-native-library.js"},"_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.5.1","description":"Virgil Crypto","directories":{},"_nodeVersion":"8.9.1","dependencies":{"is-buffer":"^1.1.4","babel-runtime":"^6.20.0"},"_hasShrinkwrap":false,"devDependencies":{"del":"^2.2.0","gulp":"^3.9.0","tape":"^4.4.0","karma":"^0.13.19","mocha":"^2.4.5","yargs":"^3.32.0","bowser":"^1.0.0","expect":"^1.14.0","jasmine":"^2.4.1","request":"^2.67.0","webpack":"^1.12.9","es6-error":"^2.0.2","gulp-util":"^3.0.7","operative":"^0.4.4","babel-core":"^6.21.0","raw-loader":"^0.5.1","gulp-notify":"^2.2.0","vinyl-named":"^1.1.0","babel-loader":"^6.2.10","gulp-changed":"^1.3.0","gulp-plumber":"^1.0.1","karma-jasmine":"^0.3.6","karma-webpack":"^1.7.0","script-loader":"^0.6.1","jasmine-expect":"^2.0.0-beta2","webpack-stream":"^3.1.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.18.0","karma-mocha-reporter":"^1.1.5","karma-chrome-launcher":"^0.2.2","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.7","karma-jasmine-matchers":"^2.0.0-beta2","karma-sourcemap-loader":"^0.3.7","babel-plugin-transform-runtime":"^6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_2.2.0_1519318504735_0.5162854354843391","host":"s3://npm-registry-packages"}},"3.0.0-alpha.2":{"name":"virgil-crypto","version":"3.0.0-alpha.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.2","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"33a6abc24918be139948364414a4c26c9e5b2dbb","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.2.tgz","fileCount":39,"integrity":"sha512-9taWbJyqKw6q7vcPjxoCkHk7oVsBmrKhCvSbSg3lDSRxWWyd91ixJ3cSQAh6pVvjmFrPrnMr2oFiVV3oH0dHBg==","signatures":[{"sig":"MEUCIC5FyvyLp0sQ9FQPKZTifs2My+xcLbFo88EM9kfRvpIdAiEAtFpbMMFfGX/mLl6uvoBt9cC5ezcEexlQ1NapVqwAiGY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6679456},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-native-library.js"],"module":"dist/virgil-crypto.es.js","readme":"# JavaScript Crypto Library [![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg?branch=v2_0)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n\nJavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto) \nfor modern browsers and Node.js.\n\n- [Install](#install)\n- [Usage](#usage)\n- [Generate Keys](#generate-keys)\n- [Encryption](#encryption)\n- [Decryption](#decryption)\n- [Signatures](#signatures)\n- [Authenticated Encryption](#authenticated-encryption)\n- [Hashing](#hashing)\n- [Key Pair Utils](#key-pair-utils)\n- [Resources](#resources)\n- [License](#license)\n- [Contacts](#contacts)\n  \n## Install\n\n### NPM\n\n```sh\nnpm install virgil-crypto\n```\n\n> **Important!** You will need Node.js version >=4 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n```html\n<script\nsrc=\"https://cdn.virgilsecurity.com/packages/javascript/crypto/3.0.0-alpha.2/virgil-crypto.browser.umd.min.js\"\nintegrity=\"sha256-TTtyoRao0dfT0t1+/EiKUWWlBlArBNUS1aSunJSg2R8=\"\ncrossorigin=\"anonymous\"></script>\n```\n\n## Usage\n\nAll API functions accept and return bytes as `Buffer` objects. In browser \n[this module](https://github.com/feross/buffer) is used and is available via `VirgilCrypto.Buffer` property. \nIn Node.js it's native [Buffer](https://nodejs.org/api/buffer.html).\n\nAsync versions of functions are implemented using [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Worker)\nand therefore are only available in the browser. This also means that Chrome and Opera will give an error \n`\"Uncaught SecurityError: Script at '[blob url here]' cannot be accessed from origin 'null'.\"` when you try \nto load VirgilCrypto from `file:///` url. It needs to be on a proper domain. \n\nAsync functions are Promise-based. Promise implementation is provided\nby [core-js](https://github.com/zloirock/core-js#ecmascript-6-promise).\n\n## Generate Keys\n\n### generateKeyPair(\\[options\\])\n\nGenerates a key pair. Provide `options` to specify the type of keys to generate (see below for the list \nof available types) and\\or password to use to encrypt the private key. The keys returned are in PEM format.\n\n\n#### Arguments\n\n* \\[options={}\\] (Object): The options object.\n* \\[options.password\\] (Buffer): Optional password to use to encrypt the private key.\n* \\[options.type\\] (string): Optional type of keys to generate.\n\n\n#### Returns\n\n* (Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>): The new key pair.\n\n\n#### Available Key Pair Types\n\n\n\n| Key Type          | Description                    |\n|-------------------|--------------------------------|\n| Default      | the safest recommended type        |\n| RSA_2048     | RSA 2048 bit (not recommended) |\n| RSA_3072     | RSA 3072 bit                   |\n| RSA_4096     | RSA 4096 bit                   |\n| RSA_8192     | RSA 8192 bit                   |\n| EC_SECP256R1 | 256-bits NIST curve            |\n| EC_SECP384R1 | 384-bits NIST curve            |\n| EC_SECP521R1 | 521-bits NIST curve            |\n| EC_BP256R1   | 256-bits Brainpool curve       |\n| EC_BP384R1   | 384-bits Brainpool curve       |\n| EC_BP512R1   | 512-bits Brainpool curve       |\n| EC_SECP256K1 | 256-bits \"Koblitz\" curve       |\n| FAST_EC_X25519 | Curve25519\t\t\t\t\t|\n| FAST_EC_ED25519 | Ed25519\t\t\t\t\t\t|\n\ne.g. `VirgilCrypto.KeyPairType.EC_SECP384R1` for 384-bits NIST curve.\n\n\n#### Examples\n\nGenerate a key pair of recommended safest type without encrypting private key: \n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair();\n//{\n//   publicKey: ...,  // Buffer with public key\n//   privateKey: ...  // Buffer with private key\n//}\n```\n\nGenerate a key pair with encrypted private key and recommended type:\n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd') \n});\n```\n\nGenerate Curve25519 key pair with encrypted private key:\n\n```javascript\nvar keyPairCurve25519 = VirgilCrypto.generateKeyPair({ \n\ttype: VirgilCrypto.KeyPairType.FAST_EC_X25519,\n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd')\n});\n```\n\n### generateKeyPairAsync(\\[options\\]) (Browsers only)\n\nSame as [generateKeyPair](#generatekeypairoptions) but returns the Promise that is resolved with generated\nkey pair or rejected with an error.\n\n#### Returns\n\n* (Promise\\<Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>\\>): The Promise that will be resolved with the new key pair.\n\n#### Examples\n\n\n```javascript\nVirgilCrypto.generateKeyPairAsync()\n\t.then(function (keyPair) {\n\t\t//{\n        //   publicKey: ...,  // Buffer with public key material\n        //   privateKey: ...  // Buffer with private key material\n        //}\n\t});\n```\n\n## Encryption\n\n### encrypt(data, recipientId | recipients | password, \\[publicKey\\])\n\n#### Arguments\n\nEncrypts the data with single recipient's public key, multiple recipients' public keys or password depending \non the number and types of arguments passed.\n\n* data (Buffer): The data to encrypt.\n* recipientId|recipients|password: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n\t- password (Buffer): The password to use for encryption.\n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for single recipient (i.e. when \n\tthe second argument is recipientId).\n\n#### Returns\n\n* (Buffer): Returns encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar password = new Buffer('pa$$w0rd');\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing Key\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar recipientId1 = new Buffer('<SOME_RECIPIENT_ID_1>');\nvar recipientId2 = new Buffer('<SOME_RECIPIENT_ID_2>');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientsList);\n\n// encrypted data now can be decrypted by either keyPair1.privateKey \n// or keyPair2.privateKey\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\n\n### encryptAsync(data, recipientId | recipients | password, \\[publicKey\\]) (Browsers only)\n\nSame as [encrypt](#encryptdata-recipientid--recipients--password-publickey) but returns the Promise \nthat is resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\n\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing Key\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar recipientId = new VirgilCrypto.Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\n\nvar recipientId1 = new VirgilCrypto.Buffer('recipient1');\nvar recipientId2 = new VirgilCrypto.Buffer('recipient2');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nVirgilCrypto.encryptAsync(plainText, recipientsList)\n\t.then(function (encryptedData) {\n\t\t// encrypted data now can be decrypted by either keyPair1.privateKey \n\t\t// or keyPair2.privateKey\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Decryption\n\n### decrypt(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\])\n\nDecrypts the data using password or private key depending on the number of arguments passed in.\n\n#### Arguments\n\n* encryptedData (Buffer): The data to decrypt.\n* recipientId|password: Either one of the following\n\t- recipientId (Buffer): The recipient id used for encryption.\n\t- password (Buffer): The password to use for decryption.\n* \\[privateKey\\] (Buffer): The private key to use for decryption.\n* \\[privateKeyPassword\\] (Buffer): Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\nvar decryptedData = VirgilCrypto.decrypt(encryptedData, password);\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, \n\t\t\t\t\trecipientId, \n\t\t\t\t\tkeyPair.privateKey, \n\t\t\t\t\tprivateKeyPassword);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n\n### decryptAsync(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [decrypt](#decryptencrypteddata-recipientid--password-privatekey-privatekeypassword) but returns a \nPromise that is resolved with decrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(encryptedData, password);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t \t// handle error\n\t \tconsole.log(err);\n\t});\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, \n\t\t\t\trecipientId, \n\t\t\t\tkeyPair.privateKey, \n\t\t\t\tprivateKeyPassword);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Signatures\n\nCryptographic digital signatures use public key algorithms to provide authenticity and integrity assurances on the data. \nWhen you sign the data with a digital signature, someone else can verify the signature and can prove that the data \noriginated from you and was not altered after you signed it.\n\n### sign(data, privateKey, \\[privateKeyPassword\\])\n\nSigns the data using the private key and returns the signature.\n\n#### Arguments\n\n* data (Buffer): The data to sign\n* privateKey (Buffer): The private key to use for signing.\n* \\[privateKeyPassword\\]: Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey);\n\nconsole.log(signature.toString('base64'));\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey, keyPassword);\n\nconsole.log(signature.toString('base64'));\n```\n\n### signAsync(data, privateKey, \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [sign](#signdata-privatekey-privatekeypassword) but returns the Promise that will be \nresolved with the signature or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey, keyPassword)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\n### verify(data, sign, publicKey)\n\nVerifies the signature for the data and returns `true` if verification succeeded or `false` if it failed.\n\n#### Arguments\n\n* data (Buffer): The signed data.\n* sign (Buffer): The signature.\n* publicKey (Buffer): The public key of the party that signed the data.\n\n#### Returns\n\n* (boolean): Returns `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nvar isVerified = VirgilCrypto.verify(encryptedData, signature, keyPair.publicKey);\nconsole.log('Is signature valid: ' + isVerified);\n```\n\n### verifyAsync(data, sign, publicKey) (Browsers only)\n\nSame as [verify](#verifydata-sign-publickey) but returns the Promise that will be resolved with `true` if verification \nsucceeded or `false` if it failed, or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<boolean\\>): The Promise that will be resolved with `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nVirgilCrypto.verifyAsync(encryptedData, signature, keyPair.publicKey)\n\t.then(function (isVerified) {\n\t\tconsole.log('Is signature valid: ' + isVerified);\n\t});\n```\n\n## Authenticated Encryption\n\nA form of encryption which simultaneously provides confidentiality, integrity, and authenticity assurances on the data.\n\n### signThenEncrypt(data, privateKey, recipientId | recipients, [publicKey])\n\nCombines encryption in a single step with message authentication. Signs the data using the private key and encrypts\nthe signed message using the public key (or public keys depending on the number of arguments passed).\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing three properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n- \\[recipientId\\] (Buffer): Optional. Recipient Id is used to identify the signing key for cases when you later want \nto verify the signature with any of the several possible public keys.\n\n#### Arguments\n\n* data (Buffer): The data to sign and encrypt.\n* privateKey | privateKeyInfo: Either one of the following \n\t- privateKey (Buffer): The raw private key with no password.\n\t- privateKeyInfo ({privateKey: Buffer, password: Buffer, recipientId: Buffer}): A hash with three properties: \n\t`privateKey`, `password` and `recipientId`.\n* recipientId | recipients: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for a single recipient (i.e. when \n\tthe second argument is recipientId)\n\n#### Returns\n\n* (Buffer): Returns encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar password = new Buffer('super_secret');\nvar senderKeyPair = VirgilCrypto.generateKeyPair({\n\tpassword: password \n});\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, password: password }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\nWith private key identifier:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\n### signThenEncryptAsync(data, privateKey, recipientId | recipients, [publicKey]) (Browsers only)\n\nSame as [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey) but returns the Promise\nthat will be resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, senderKeyPair.privateKey, recipientId, recipientKeyPair.publicKey)\n.then(function (encryptedSignedData) {\n\tconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n})\n.catch(function (err) {\n\t// handle error\n\tconsole.log(err);\n});\n\n```\n\n### decryptThenVerify(cipherData, recipientId, privateKey, publicKey)\n\nCombines decryption in a single step with integrity verification. Decrypts the data and verifies the attached signature.\nReturns decrypted data if verification succeeded or throws `VirgilCrypto.VirgilCryptoError` if it failed.\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing two properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n\nThe `publicKey` argument can be a Buffer or an array. If `publicKey` is a Buffer, it is treated as a raw public key. If \n`publicKey` is an array, it is interpreted as an array of objects each of which contains two properties:\n \n- publicKey (Buffer): The public key value.\n- recipientId (Buffer): The identifier used during the signing phase to identify the private key used to calculate the \nsignature. If the cipher data contains an identifier of the private key used to calculate the signature, then the \npublic key with that identifier from `publicKey` array will be used to verify the signature, otherwise all of the \nkeys are tried in sequence. See [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey).\n\n#### Arguments\n\n* cipherData (Buffer): The data to decrypt and verify.\n* recipientId (Buffer): The recipient id used for encryption.\n* privateKey (Buffer): The private key to use for decryption.\n* publicKey | publicKeys: Either one of the following:\n \t- publicKey (Buffer): The sender's public key to use for signature verification.\n\t- publicKeys (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): The list of public keys with identifiers.\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar password = new Buffer('super_secret');\nvar recipientKeyPair = VirgilCrypto.generateKeyPair({ password: password });\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\t{ privateKey: recipientKeyPair.privateKey: password: password }, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith multiple public keys:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPairId = VirgilCrypto.hash(recipientKeyPair.publicKey);\n\nvar anotherKeyPair = VirgilCrypto.generateKeyPair();\nvar anotherKeyPairId = VirgilCrypto.hash(anotherKeyPair.publicKey);\n\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\t\\[ \n\t\t\t\t\t\t{ publicKey: recipientKeyPair.publicKey, recipientId: recipientKeyPairId },\n\t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n\t\t\t\t\t\\]);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientKeyPairId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\t\\[\n    \t\t\t\t\t\t{ publicKey: senderKeyPair.publicKey, recipientId: senderKeyPairId },\n    \t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n    \t\t\t\t\t\\]);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n### decryptThenVerifyAsync(cipherData, recipientId, privateKey, publicKey) (Browsers only)\n\nSame as [decryptThenVerify](#decryptthenverifycipherdata-recipientid-privatekey-publickey) but returns the Promise\nthat will be resolved with decrypted data or rejected with `VirgilCrypto.VirgilCryptoError`.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data or rejected with an error.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, \n\tsenderKeyPair.privateKey, \n\trecipientId, \n\trecipientKeyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptThenVerifyAsync(\n\t\t\tencryptedData, \n\t\t\trecipientId, \n\t\t\trecipientKeyPair.privateKey, \n\t\t\tsenderKeyPair.publicKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n\t})\n\t.catch(function (err) {\n\t\t// Message integrity\\authenticity verification failed\n        console.log(ex);\n\t});\n```\n\n\n## Hashing\n\n### hash(data, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA256\\])\n\nReturns a cryptographic hash of the message.\n\n### Arguments\n\n* data (Buffer): The data to compute the hash for.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA256\\] (string): Optional name of the hash algorithm to use (Default - SHA-256).\n\n### Returns\n\n* (Buffer): Returns the hash.\n\n### Supported hash algorithms\n\n| Algorithm  |\n|------------|\n| SHA1       |\n| SHA224     |\n| SHA256     |\n| SHA384     |\n| SHA512     |\n\ne.g. `VirgilCrypto.HashAlgorithm.SHA1` for the SHA1 hash.\n\n\n### obfuscate(value, salt, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA384\\], \\[iterations = 2048\\])\n\nReturns an obfuscated value derived with PBKDF using the given salt, hash algorithm and number of iterations.\n\n#### Arguments\n\n* value (Buffer): The value to obfuscate.\n* salt (Buffer): The salt for PBKDF.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA384\\] (string): Optional name of the hash algorithm to use (Default - SHA-384).\n* \\[iterations\\] (iterations): Optional number of iterations for PBKDF (Default - 2048).\n\n#### Returns\n\n* (Buffer): Returns the obfuscated value.\n\n\n## Key pair utils\n\n### changePrivateKeyPassword(privateKey, oldPassword, newPassword)\n\nChanges the password used to encrypt the private key. Returns the private key encrypted using the new password.\n\n#### Arguments\n\n* privateKey (Buffer): The private key.\n* oldPassword (Buffer): The old password.\n* newPassword (Buffer): The new password.\n\n#### Returns\n\n* (Buffer): Returns the private key encrypted using the new password.\n\n\n### decryptPrivateKey(privateKey, privateKeyPassword)\n\nDecrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to decrypt.\n* privateKeyPassword (Buffer): The password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the unencrypted private key.\n\n\n### encryptPrivateKey(privateKey, privateKeyPassword)\n\nEncrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to encrypt.\n* privateKeyPassword (Buffer): The password to use for encryption. \n\n#### Returns\n\n* (Buffer): Returns the encrypted private key.\n\n\n### extractPrivateKey(privateKey, \\[privateKeyPassword\\])\n\nReturns the public key computed from the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key from which the public key is computed.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the public key.\n\n\n### privateKeyToDER(privateKey, \\[privateKeyPassword\\])\n\nReturns the private key in DER format.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to convert to DER format.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the private key in DER format.\n\n### publicKeyToDER(publicKey)\n\nReturns the public key in DER format.\n\n#### Arguments\n\n* publicKey (Buffer): The public key to convert to DER format.\n\n#### Returns\n\n* (Buffer): Returns the public key in DER format.\n\n\n## Resources\n\n* [Crypto Library](https://github.com/VirgilSecurity/virgil/blob/master/javascript/crypto-library/readme.md)\n* [SDK](https://github.com/VirgilSecurity/virgil/blob/master/javascript/keys-sdk/readme.md)\n\n## License\nBSD 3-Clause. See [LICENSE](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE) for details.\n\n## Contacts\nEmail: <support@virgilsecurity.com>\n","browser":{"./src/index.ts":"./src/browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":"4.0.0 - 9.9999.9999"},"gitHead":"9dab7c4897fae9e2baf6f9c5cc6bae6e7df491ad","scripts":{"test":"npm run test:node && npm run test:browser","build":"node scripts/build.js","version":"npm run build && node scripts/updateReadme.js && git add README.md","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-native-library.js","test:browser":"karma start"},"typings":"dist/types/virgil-crypto.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.5.1","description":"JavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto)  for modern browsers and Node.js.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","should":"^13.2.1","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.0","prettier":"^1.4.4","uglify-es":"^3.3.9","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","karma-should":"^1.0.0","builtin-modules":"^2.0.0","rollup-pluginutils":"^2.0.1","rollup-plugin-ignore":"^1.0.3","rollup-plugin-inject":"^2.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-commonjs":"^9.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.2_1522953424674_0.7497765637555995","host":"s3://npm-registry-packages"}},"3.0.0-alpha.3":{"name":"virgil-crypto","version":"3.0.0-alpha.3","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.3","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"87a656ce29672f269ec33e84a14591be5e8d32aa","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.3.tgz","fileCount":39,"integrity":"sha512-t8yiu5/22ntRzARv54xh9DJdCF/nqF4nMgJhR9PnmIl8If0h8uZUMYxtqUNyykSn/xQoVWdpd+L/Jv+1lPUl8g==","signatures":[{"sig":"MEUCIF8F6Ywcp6z3PwyiUlgEmqwJttrNHms3UtK/hHC1ZgEYAiEAtT98ylIfKNAhngpZVlRC4j5y4+mYXRTc6lIHXunW/Fg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6679448},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-native-library.js"],"module":"dist/virgil-crypto.es.js","readme":"# JavaScript Crypto Library [![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg?branch=v2_0)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n\nJavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto) \nfor modern browsers and Node.js.\n\n- [Install](#install)\n- [Usage](#usage)\n- [Generate Keys](#generate-keys)\n- [Encryption](#encryption)\n- [Decryption](#decryption)\n- [Signatures](#signatures)\n- [Authenticated Encryption](#authenticated-encryption)\n- [Hashing](#hashing)\n- [Key Pair Utils](#key-pair-utils)\n- [Resources](#resources)\n- [License](#license)\n- [Contacts](#contacts)\n  \n## Install\n\n### NPM\n\n```sh\nnpm install virgil-crypto\n```\n\n> **Important!** You will need Node.js version >=4 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n```html\n<script\nsrc=\"https://cdn.virgilsecurity.com/packages/javascript/crypto/3.0.0-alpha.3/virgil-crypto.browser.umd.min.js\"\nintegrity=\"sha256-TTtyoRao0dfT0t1+/EiKUWWlBlArBNUS1aSunJSg2R8=\"\ncrossorigin=\"anonymous\"></script>\n```\n\n## Usage\n\nAll API functions accept and return bytes as `Buffer` objects. In browser \n[this module](https://github.com/feross/buffer) is used and is available via `VirgilCrypto.Buffer` property. \nIn Node.js it's native [Buffer](https://nodejs.org/api/buffer.html).\n\nAsync versions of functions are implemented using [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Worker)\nand therefore are only available in the browser. This also means that Chrome and Opera will give an error \n`\"Uncaught SecurityError: Script at '[blob url here]' cannot be accessed from origin 'null'.\"` when you try \nto load VirgilCrypto from `file:///` url. It needs to be on a proper domain. \n\nAsync functions are Promise-based. Promise implementation is provided\nby [core-js](https://github.com/zloirock/core-js#ecmascript-6-promise).\n\n## Generate Keys\n\n### generateKeyPair(\\[options\\])\n\nGenerates a key pair. Provide `options` to specify the type of keys to generate (see below for the list \nof available types) and\\or password to use to encrypt the private key. The keys returned are in PEM format.\n\n\n#### Arguments\n\n* \\[options={}\\] (Object): The options object.\n* \\[options.password\\] (Buffer): Optional password to use to encrypt the private key.\n* \\[options.type\\] (string): Optional type of keys to generate.\n\n\n#### Returns\n\n* (Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>): The new key pair.\n\n\n#### Available Key Pair Types\n\n\n\n| Key Type          | Description                    |\n|-------------------|--------------------------------|\n| Default      | the safest recommended type        |\n| RSA_2048     | RSA 2048 bit (not recommended) |\n| RSA_3072     | RSA 3072 bit                   |\n| RSA_4096     | RSA 4096 bit                   |\n| RSA_8192     | RSA 8192 bit                   |\n| EC_SECP256R1 | 256-bits NIST curve            |\n| EC_SECP384R1 | 384-bits NIST curve            |\n| EC_SECP521R1 | 521-bits NIST curve            |\n| EC_BP256R1   | 256-bits Brainpool curve       |\n| EC_BP384R1   | 384-bits Brainpool curve       |\n| EC_BP512R1   | 512-bits Brainpool curve       |\n| EC_SECP256K1 | 256-bits \"Koblitz\" curve       |\n| FAST_EC_X25519 | Curve25519\t\t\t\t\t|\n| FAST_EC_ED25519 | Ed25519\t\t\t\t\t\t|\n\ne.g. `VirgilCrypto.KeyPairType.EC_SECP384R1` for 384-bits NIST curve.\n\n\n#### Examples\n\nGenerate a key pair of recommended safest type without encrypting private key: \n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair();\n//{\n//   publicKey: ...,  // Buffer with public key\n//   privateKey: ...  // Buffer with private key\n//}\n```\n\nGenerate a key pair with encrypted private key and recommended type:\n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd') \n});\n```\n\nGenerate Curve25519 key pair with encrypted private key:\n\n```javascript\nvar keyPairCurve25519 = VirgilCrypto.generateKeyPair({ \n\ttype: VirgilCrypto.KeyPairType.FAST_EC_X25519,\n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd')\n});\n```\n\n### generateKeyPairAsync(\\[options\\]) (Browsers only)\n\nSame as [generateKeyPair](#generatekeypairoptions) but returns the Promise that is resolved with generated\nkey pair or rejected with an error.\n\n#### Returns\n\n* (Promise\\<Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>\\>): The Promise that will be resolved with the new key pair.\n\n#### Examples\n\n\n```javascript\nVirgilCrypto.generateKeyPairAsync()\n\t.then(function (keyPair) {\n\t\t//{\n        //   publicKey: ...,  // Buffer with public key material\n        //   privateKey: ...  // Buffer with private key material\n        //}\n\t});\n```\n\n## Encryption\n\n### encrypt(data, recipientId | recipients | password, \\[publicKey\\])\n\n#### Arguments\n\nEncrypts the data with single recipient's public key, multiple recipients' public keys or password depending \non the number and types of arguments passed.\n\n* data (Buffer): The data to encrypt.\n* recipientId|recipients|password: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n\t- password (Buffer): The password to use for encryption.\n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for single recipient (i.e. when \n\tthe second argument is recipientId).\n\n#### Returns\n\n* (Buffer): Returns encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar password = new Buffer('pa$$w0rd');\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing Key\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar recipientId1 = new Buffer('<SOME_RECIPIENT_ID_1>');\nvar recipientId2 = new Buffer('<SOME_RECIPIENT_ID_2>');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientsList);\n\n// encrypted data now can be decrypted by either keyPair1.privateKey \n// or keyPair2.privateKey\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\n\n### encryptAsync(data, recipientId | recipients | password, \\[publicKey\\]) (Browsers only)\n\nSame as [encrypt](#encryptdata-recipientid--recipients--password-publickey) but returns the Promise \nthat is resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\n\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing Key\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar recipientId = new VirgilCrypto.Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\n\nvar recipientId1 = new VirgilCrypto.Buffer('recipient1');\nvar recipientId2 = new VirgilCrypto.Buffer('recipient2');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nVirgilCrypto.encryptAsync(plainText, recipientsList)\n\t.then(function (encryptedData) {\n\t\t// encrypted data now can be decrypted by either keyPair1.privateKey \n\t\t// or keyPair2.privateKey\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Decryption\n\n### decrypt(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\])\n\nDecrypts the data using password or private key depending on the number of arguments passed in.\n\n#### Arguments\n\n* encryptedData (Buffer): The data to decrypt.\n* recipientId|password: Either one of the following\n\t- recipientId (Buffer): The recipient id used for encryption.\n\t- password (Buffer): The password to use for decryption.\n* \\[privateKey\\] (Buffer): The private key to use for decryption.\n* \\[privateKeyPassword\\] (Buffer): Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\nvar decryptedData = VirgilCrypto.decrypt(encryptedData, password);\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, \n\t\t\t\t\trecipientId, \n\t\t\t\t\tkeyPair.privateKey, \n\t\t\t\t\tprivateKeyPassword);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n\n### decryptAsync(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [decrypt](#decryptencrypteddata-recipientid--password-privatekey-privatekeypassword) but returns a \nPromise that is resolved with decrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(encryptedData, password);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t \t// handle error\n\t \tconsole.log(err);\n\t});\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, \n\t\t\t\trecipientId, \n\t\t\t\tkeyPair.privateKey, \n\t\t\t\tprivateKeyPassword);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Signatures\n\nCryptographic digital signatures use public key algorithms to provide authenticity and integrity assurances on the data. \nWhen you sign the data with a digital signature, someone else can verify the signature and can prove that the data \noriginated from you and was not altered after you signed it.\n\n### sign(data, privateKey, \\[privateKeyPassword\\])\n\nSigns the data using the private key and returns the signature.\n\n#### Arguments\n\n* data (Buffer): The data to sign\n* privateKey (Buffer): The private key to use for signing.\n* \\[privateKeyPassword\\]: Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey);\n\nconsole.log(signature.toString('base64'));\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey, keyPassword);\n\nconsole.log(signature.toString('base64'));\n```\n\n### signAsync(data, privateKey, \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [sign](#signdata-privatekey-privatekeypassword) but returns the Promise that will be \nresolved with the signature or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey, keyPassword)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\n### verify(data, sign, publicKey)\n\nVerifies the signature for the data and returns `true` if verification succeeded or `false` if it failed.\n\n#### Arguments\n\n* data (Buffer): The signed data.\n* sign (Buffer): The signature.\n* publicKey (Buffer): The public key of the party that signed the data.\n\n#### Returns\n\n* (boolean): Returns `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nvar isVerified = VirgilCrypto.verify(encryptedData, signature, keyPair.publicKey);\nconsole.log('Is signature valid: ' + isVerified);\n```\n\n### verifyAsync(data, sign, publicKey) (Browsers only)\n\nSame as [verify](#verifydata-sign-publickey) but returns the Promise that will be resolved with `true` if verification \nsucceeded or `false` if it failed, or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<boolean\\>): The Promise that will be resolved with `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nVirgilCrypto.verifyAsync(encryptedData, signature, keyPair.publicKey)\n\t.then(function (isVerified) {\n\t\tconsole.log('Is signature valid: ' + isVerified);\n\t});\n```\n\n## Authenticated Encryption\n\nA form of encryption which simultaneously provides confidentiality, integrity, and authenticity assurances on the data.\n\n### signThenEncrypt(data, privateKey, recipientId | recipients, [publicKey])\n\nCombines encryption in a single step with message authentication. Signs the data using the private key and encrypts\nthe signed message using the public key (or public keys depending on the number of arguments passed).\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing three properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n- \\[recipientId\\] (Buffer): Optional. Recipient Id is used to identify the signing key for cases when you later want \nto verify the signature with any of the several possible public keys.\n\n#### Arguments\n\n* data (Buffer): The data to sign and encrypt.\n* privateKey | privateKeyInfo: Either one of the following \n\t- privateKey (Buffer): The raw private key with no password.\n\t- privateKeyInfo ({privateKey: Buffer, password: Buffer, recipientId: Buffer}): A hash with three properties: \n\t`privateKey`, `password` and `recipientId`.\n* recipientId | recipients: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for a single recipient (i.e. when \n\tthe second argument is recipientId)\n\n#### Returns\n\n* (Buffer): Returns encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar password = new Buffer('super_secret');\nvar senderKeyPair = VirgilCrypto.generateKeyPair({\n\tpassword: password \n});\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, password: password }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\nWith private key identifier:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\n### signThenEncryptAsync(data, privateKey, recipientId | recipients, [publicKey]) (Browsers only)\n\nSame as [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey) but returns the Promise\nthat will be resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, senderKeyPair.privateKey, recipientId, recipientKeyPair.publicKey)\n.then(function (encryptedSignedData) {\n\tconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n})\n.catch(function (err) {\n\t// handle error\n\tconsole.log(err);\n});\n\n```\n\n### decryptThenVerify(cipherData, recipientId, privateKey, publicKey)\n\nCombines decryption in a single step with integrity verification. Decrypts the data and verifies the attached signature.\nReturns decrypted data if verification succeeded or throws `VirgilCrypto.VirgilCryptoError` if it failed.\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing two properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n\nThe `publicKey` argument can be a Buffer or an array. If `publicKey` is a Buffer, it is treated as a raw public key. If \n`publicKey` is an array, it is interpreted as an array of objects each of which contains two properties:\n \n- publicKey (Buffer): The public key value.\n- recipientId (Buffer): The identifier used during the signing phase to identify the private key used to calculate the \nsignature. If the cipher data contains an identifier of the private key used to calculate the signature, then the \npublic key with that identifier from `publicKey` array will be used to verify the signature, otherwise all of the \nkeys are tried in sequence. See [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey).\n\n#### Arguments\n\n* cipherData (Buffer): The data to decrypt and verify.\n* recipientId (Buffer): The recipient id used for encryption.\n* privateKey (Buffer): The private key to use for decryption.\n* publicKey | publicKeys: Either one of the following:\n \t- publicKey (Buffer): The sender's public key to use for signature verification.\n\t- publicKeys (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): The list of public keys with identifiers.\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar password = new Buffer('super_secret');\nvar recipientKeyPair = VirgilCrypto.generateKeyPair({ password: password });\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\t{ privateKey: recipientKeyPair.privateKey: password: password }, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith multiple public keys:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPairId = VirgilCrypto.hash(recipientKeyPair.publicKey);\n\nvar anotherKeyPair = VirgilCrypto.generateKeyPair();\nvar anotherKeyPairId = VirgilCrypto.hash(anotherKeyPair.publicKey);\n\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\t\\[ \n\t\t\t\t\t\t{ publicKey: recipientKeyPair.publicKey, recipientId: recipientKeyPairId },\n\t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n\t\t\t\t\t\\]);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientKeyPairId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\t\\[\n    \t\t\t\t\t\t{ publicKey: senderKeyPair.publicKey, recipientId: senderKeyPairId },\n    \t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n    \t\t\t\t\t\\]);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n### decryptThenVerifyAsync(cipherData, recipientId, privateKey, publicKey) (Browsers only)\n\nSame as [decryptThenVerify](#decryptthenverifycipherdata-recipientid-privatekey-publickey) but returns the Promise\nthat will be resolved with decrypted data or rejected with `VirgilCrypto.VirgilCryptoError`.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data or rejected with an error.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, \n\tsenderKeyPair.privateKey, \n\trecipientId, \n\trecipientKeyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptThenVerifyAsync(\n\t\t\tencryptedData, \n\t\t\trecipientId, \n\t\t\trecipientKeyPair.privateKey, \n\t\t\tsenderKeyPair.publicKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n\t})\n\t.catch(function (err) {\n\t\t// Message integrity\\authenticity verification failed\n        console.log(ex);\n\t});\n```\n\n\n## Hashing\n\n### hash(data, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA256\\])\n\nReturns a cryptographic hash of the message.\n\n### Arguments\n\n* data (Buffer): The data to compute the hash for.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA256\\] (string): Optional name of the hash algorithm to use (Default - SHA-256).\n\n### Returns\n\n* (Buffer): Returns the hash.\n\n### Supported hash algorithms\n\n| Algorithm  |\n|------------|\n| SHA1       |\n| SHA224     |\n| SHA256     |\n| SHA384     |\n| SHA512     |\n\ne.g. `VirgilCrypto.HashAlgorithm.SHA1` for the SHA1 hash.\n\n\n### obfuscate(value, salt, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA384\\], \\[iterations = 2048\\])\n\nReturns an obfuscated value derived with PBKDF using the given salt, hash algorithm and number of iterations.\n\n#### Arguments\n\n* value (Buffer): The value to obfuscate.\n* salt (Buffer): The salt for PBKDF.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA384\\] (string): Optional name of the hash algorithm to use (Default - SHA-384).\n* \\[iterations\\] (iterations): Optional number of iterations for PBKDF (Default - 2048).\n\n#### Returns\n\n* (Buffer): Returns the obfuscated value.\n\n\n## Key pair utils\n\n### changePrivateKeyPassword(privateKey, oldPassword, newPassword)\n\nChanges the password used to encrypt the private key. Returns the private key encrypted using the new password.\n\n#### Arguments\n\n* privateKey (Buffer): The private key.\n* oldPassword (Buffer): The old password.\n* newPassword (Buffer): The new password.\n\n#### Returns\n\n* (Buffer): Returns the private key encrypted using the new password.\n\n\n### decryptPrivateKey(privateKey, privateKeyPassword)\n\nDecrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to decrypt.\n* privateKeyPassword (Buffer): The password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the unencrypted private key.\n\n\n### encryptPrivateKey(privateKey, privateKeyPassword)\n\nEncrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to encrypt.\n* privateKeyPassword (Buffer): The password to use for encryption. \n\n#### Returns\n\n* (Buffer): Returns the encrypted private key.\n\n\n### extractPrivateKey(privateKey, \\[privateKeyPassword\\])\n\nReturns the public key computed from the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key from which the public key is computed.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the public key.\n\n\n### privateKeyToDER(privateKey, \\[privateKeyPassword\\])\n\nReturns the private key in DER format.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to convert to DER format.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the private key in DER format.\n\n### publicKeyToDER(publicKey)\n\nReturns the public key in DER format.\n\n#### Arguments\n\n* publicKey (Buffer): The public key to convert to DER format.\n\n#### Returns\n\n* (Buffer): Returns the public key in DER format.\n\n\n## Resources\n\n* [Crypto Library](https://github.com/VirgilSecurity/virgil/blob/master/javascript/crypto-library/readme.md)\n* [SDK](https://github.com/VirgilSecurity/virgil/blob/master/javascript/keys-sdk/readme.md)\n\n## License\nBSD 3-Clause. See [LICENSE](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE) for details.\n\n## Contacts\nEmail: <support@virgilsecurity.com>\n","browser":{"./src/index.ts":"./src/browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":"4.0.0 - 9.9999.9999"},"gitHead":"ace6b7eb22870f67e3fbdf6910893cb841478e2b","scripts":{"test":"npm run test:node && npm run test:browser","build":"node scripts/build.js","version":"npm run build && node scripts/updateReadme.js && git add README.md","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-native-library.js","test:browser":"karma start"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.5.1","description":"JavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto)  for modern browsers and Node.js.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","should":"^13.2.1","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.0","prettier":"^1.4.4","uglify-es":"^3.3.9","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","karma-should":"^1.0.0","builtin-modules":"^2.0.0","rollup-pluginutils":"^2.0.1","rollup-plugin-ignore":"^1.0.3","rollup-plugin-inject":"^2.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-commonjs":"^9.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.3_1523016347879_0.6060565893489374","host":"s3://npm-registry-packages"}},"3.0.0-alpha.4":{"name":"virgil-crypto","version":"3.0.0-alpha.4","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.4","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"8d969a409462ae9a05282a7c4a9e574ec6e1b9cf","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.4.tgz","fileCount":39,"integrity":"sha512-/r3hVCJ8sHvSH78FhrM62kNeB2wSM5bxg7TWK7wdTOzJXcI7cKpdziFVPHd+IUi8Tu0aRrQvQJs+T4XmyvyqDQ==","signatures":[{"sig":"MEUCIB9lPbMXggsbLo/tLbk+iYMckue8KesYBkHoE/ekS5zeAiEAxN0h5sKAHxm0ngPPgOTXNwAFk4E6PZl95t5kXPb7BEk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6698082,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1veSCRA9TVsSAnZWagAAI3gP/0QJ3CRlV68FY7QCknGq\n1lMxgsir+QiXtk4AmPWtL04Rlr2XXqQd8DPrR+m39mnIhO1LbbZ4ZRmbuFFz\nBnKInweEMYSSCA+M3wTSKOKKPU/D/Cy9G63Ie9HnCRngEbAzSmNAQvkW5z33\nyeIOERguRe/ju0+uQLL6viZywDyK50QeqUKYC0pX/vYrisNpEroQ1Md+r970\nS9Ufway1AhVjzYZCwwCzC7Hyrs0bIGlnYzX0VoU1M3eC1uNJEwYo0c/yK9/0\nWYOcNAiP+zj0HRNs+MaDej5e/5o/sjAB/fG8jhVrv9vbPiJ+gPXgEXzDEVZK\n28hBmWYblXRsd+V75fJQxqk3mmQkvESNFyEtTvRwCeERgaE2IMeUMtM2GRQS\n1mh6Nm2SfmeZycU6WBSAftqGSi88UlPoFVmApkBOBuwK/EbHPCN43qBePTMG\nvIRllNs0NIjVloehrAQsJK2ppPjavvPMY6fAlYeOqXjgOzvbXxVG3qXqKULc\nUsnlg6W6prgOVVR9zxMtQkXY8Y0vZgfonmnvwii6FlGrniZqbnD1JVgA6tW/\nM2N5587vCMeYcFURi9QW4s51zmHd11QBS0n2a9i8vrIvn2HhLX3jGRa1pLQL\n5vDI1A5ZGAV7nuzlvL9ePkQ9yyAfWpNgcuE+Ci+4c3r94arU+AuDUJc9+MkB\nJQSX\r\n=WPvQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-native-library.js"],"module":"dist/virgil-crypto.es.js","readme":"# JavaScript Crypto Library [![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg?branch=v2_0)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n\nJavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto) \nfor modern browsers and Node.js.\n\n- [Install](#install)\n- [Usage](#usage)\n- [Generate Keys](#generate-keys)\n- [Encryption](#encryption)\n- [Decryption](#decryption)\n- [Signatures](#signatures)\n- [Authenticated Encryption](#authenticated-encryption)\n- [Hashing](#hashing)\n- [Key Pair Utils](#key-pair-utils)\n- [Resources](#resources)\n- [License](#license)\n- [Contacts](#contacts)\n  \n## Install\n\n### NPM\n\n```sh\nnpm install virgil-crypto\n```\n\n> **Important!** You will need Node.js version >=4 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n```html\n<script\nsrc=\"https://cdn.virgilsecurity.com/packages/javascript/crypto/3.0.0-alpha.4/virgil-crypto.browser.umd.min.js\"\nintegrity=\"sha256-p0VlauixxiZVDzkQWJgBPd+jP1vJzOaQNqlmHQtSKvs=\"\ncrossorigin=\"anonymous\"></script>\n```\n\n## Usage\n\nAll API functions accept and return bytes as `Buffer` objects. In browser \n[this module](https://github.com/feross/buffer) is used and is available via `VirgilCrypto.Buffer` property. \nIn Node.js it's native [Buffer](https://nodejs.org/api/buffer.html).\n\nAsync versions of functions are implemented using [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Worker)\nand therefore are only available in the browser. This also means that Chrome and Opera will give an error \n`\"Uncaught SecurityError: Script at '[blob url here]' cannot be accessed from origin 'null'.\"` when you try \nto load VirgilCrypto from `file:///` url. It needs to be on a proper domain. \n\nAsync functions are Promise-based. Promise implementation is provided\nby [core-js](https://github.com/zloirock/core-js#ecmascript-6-promise).\n\n## Generate Keys\n\n### generateKeyPair(\\[options\\])\n\nGenerates a key pair. Provide `options` to specify the type of keys to generate (see below for the list \nof available types) and\\or password to use to encrypt the private key. The keys returned are in PEM format.\n\n\n#### Arguments\n\n* \\[options={}\\] (Object): The options object.\n* \\[options.password\\] (Buffer): Optional password to use to encrypt the private key.\n* \\[options.type\\] (string): Optional type of keys to generate.\n\n\n#### Returns\n\n* (Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>): The new key pair.\n\n\n#### Available Key Pair Types\n\n\n\n| Key Type          | Description                    |\n|-------------------|--------------------------------|\n| Default      | the safest recommended type        |\n| RSA_2048     | RSA 2048 bit (not recommended) |\n| RSA_3072     | RSA 3072 bit                   |\n| RSA_4096     | RSA 4096 bit                   |\n| RSA_8192     | RSA 8192 bit                   |\n| EC_SECP256R1 | 256-bits NIST curve            |\n| EC_SECP384R1 | 384-bits NIST curve            |\n| EC_SECP521R1 | 521-bits NIST curve            |\n| EC_BP256R1   | 256-bits Brainpool curve       |\n| EC_BP384R1   | 384-bits Brainpool curve       |\n| EC_BP512R1   | 512-bits Brainpool curve       |\n| EC_SECP256K1 | 256-bits \"Koblitz\" curve       |\n| FAST_EC_X25519 | Curve25519\t\t\t\t\t|\n| FAST_EC_ED25519 | Ed25519\t\t\t\t\t\t|\n\ne.g. `VirgilCrypto.KeyPairType.EC_SECP384R1` for 384-bits NIST curve.\n\n\n#### Examples\n\nGenerate a key pair of recommended safest type without encrypting private key: \n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair();\n//{\n//   publicKey: ...,  // Buffer with public key\n//   privateKey: ...  // Buffer with private key\n//}\n```\n\nGenerate a key pair with encrypted private key and recommended type:\n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd') \n});\n```\n\nGenerate Curve25519 key pair with encrypted private key:\n\n```javascript\nvar keyPairCurve25519 = VirgilCrypto.generateKeyPair({ \n\ttype: VirgilCrypto.KeyPairType.FAST_EC_X25519,\n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd')\n});\n```\n\n### generateKeyPairAsync(\\[options\\]) (Browsers only)\n\nSame as [generateKeyPair](#generatekeypairoptions) but returns the Promise that is resolved with generated\nkey pair or rejected with an error.\n\n#### Returns\n\n* (Promise\\<Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>\\>): The Promise that will be resolved with the new key pair.\n\n#### Examples\n\n\n```javascript\nVirgilCrypto.generateKeyPairAsync()\n\t.then(function (keyPair) {\n\t\t//{\n        //   publicKey: ...,  // Buffer with public key material\n        //   privateKey: ...  // Buffer with private key material\n        //}\n\t});\n```\n\n## Encryption\n\n### encrypt(data, recipientId | recipients | password, \\[publicKey\\])\n\n#### Arguments\n\nEncrypts the data with single recipient's public key, multiple recipients' public keys or password depending \non the number and types of arguments passed.\n\n* data (Buffer): The data to encrypt.\n* recipientId|recipients|password: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n\t- password (Buffer): The password to use for encryption.\n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for single recipient (i.e. when \n\tthe second argument is recipientId).\n\n#### Returns\n\n* (Buffer): Returns encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar password = new Buffer('pa$$w0rd');\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing Key\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar recipientId1 = new Buffer('<SOME_RECIPIENT_ID_1>');\nvar recipientId2 = new Buffer('<SOME_RECIPIENT_ID_2>');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientsList);\n\n// encrypted data now can be decrypted by either keyPair1.privateKey \n// or keyPair2.privateKey\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\n\n### encryptAsync(data, recipientId | recipients | password, \\[publicKey\\]) (Browsers only)\n\nSame as [encrypt](#encryptdata-recipientid--recipients--password-publickey) but returns the Promise \nthat is resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\n\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing Key\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar recipientId = new VirgilCrypto.Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\n\nvar recipientId1 = new VirgilCrypto.Buffer('recipient1');\nvar recipientId2 = new VirgilCrypto.Buffer('recipient2');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nVirgilCrypto.encryptAsync(plainText, recipientsList)\n\t.then(function (encryptedData) {\n\t\t// encrypted data now can be decrypted by either keyPair1.privateKey \n\t\t// or keyPair2.privateKey\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Decryption\n\n### decrypt(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\])\n\nDecrypts the data using password or private key depending on the number of arguments passed in.\n\n#### Arguments\n\n* encryptedData (Buffer): The data to decrypt.\n* recipientId|password: Either one of the following\n\t- recipientId (Buffer): The recipient id used for encryption.\n\t- password (Buffer): The password to use for decryption.\n* \\[privateKey\\] (Buffer): The private key to use for decryption.\n* \\[privateKeyPassword\\] (Buffer): Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\nvar decryptedData = VirgilCrypto.decrypt(encryptedData, password);\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, \n\t\t\t\t\trecipientId, \n\t\t\t\t\tkeyPair.privateKey, \n\t\t\t\t\tprivateKeyPassword);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n\n### decryptAsync(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [decrypt](#decryptencrypteddata-recipientid--password-privatekey-privatekeypassword) but returns a \nPromise that is resolved with decrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(encryptedData, password);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t \t// handle error\n\t \tconsole.log(err);\n\t});\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, \n\t\t\t\trecipientId, \n\t\t\t\tkeyPair.privateKey, \n\t\t\t\tprivateKeyPassword);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Signatures\n\nCryptographic digital signatures use public key algorithms to provide authenticity and integrity assurances on the data. \nWhen you sign the data with a digital signature, someone else can verify the signature and can prove that the data \noriginated from you and was not altered after you signed it.\n\n### sign(data, privateKey, \\[privateKeyPassword\\])\n\nSigns the data using the private key and returns the signature.\n\n#### Arguments\n\n* data (Buffer): The data to sign\n* privateKey (Buffer): The private key to use for signing.\n* \\[privateKeyPassword\\]: Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey);\n\nconsole.log(signature.toString('base64'));\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey, keyPassword);\n\nconsole.log(signature.toString('base64'));\n```\n\n### signAsync(data, privateKey, \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [sign](#signdata-privatekey-privatekeypassword) but returns the Promise that will be \nresolved with the signature or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey, keyPassword)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\n### verify(data, sign, publicKey)\n\nVerifies the signature for the data and returns `true` if verification succeeded or `false` if it failed.\n\n#### Arguments\n\n* data (Buffer): The signed data.\n* sign (Buffer): The signature.\n* publicKey (Buffer): The public key of the party that signed the data.\n\n#### Returns\n\n* (boolean): Returns `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nvar isVerified = VirgilCrypto.verify(encryptedData, signature, keyPair.publicKey);\nconsole.log('Is signature valid: ' + isVerified);\n```\n\n### verifyAsync(data, sign, publicKey) (Browsers only)\n\nSame as [verify](#verifydata-sign-publickey) but returns the Promise that will be resolved with `true` if verification \nsucceeded or `false` if it failed, or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<boolean\\>): The Promise that will be resolved with `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nVirgilCrypto.verifyAsync(encryptedData, signature, keyPair.publicKey)\n\t.then(function (isVerified) {\n\t\tconsole.log('Is signature valid: ' + isVerified);\n\t});\n```\n\n## Authenticated Encryption\n\nA form of encryption which simultaneously provides confidentiality, integrity, and authenticity assurances on the data.\n\n### signThenEncrypt(data, privateKey, recipientId | recipients, [publicKey])\n\nCombines encryption in a single step with message authentication. Signs the data using the private key and encrypts\nthe signed message using the public key (or public keys depending on the number of arguments passed).\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing three properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n- \\[recipientId\\] (Buffer): Optional. Recipient Id is used to identify the signing key for cases when you later want \nto verify the signature with any of the several possible public keys.\n\n#### Arguments\n\n* data (Buffer): The data to sign and encrypt.\n* privateKey | privateKeyInfo: Either one of the following \n\t- privateKey (Buffer): The raw private key with no password.\n\t- privateKeyInfo ({privateKey: Buffer, password: Buffer, recipientId: Buffer}): A hash with three properties: \n\t`privateKey`, `password` and `recipientId`.\n* recipientId | recipients: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for a single recipient (i.e. when \n\tthe second argument is recipientId)\n\n#### Returns\n\n* (Buffer): Returns encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar password = new Buffer('super_secret');\nvar senderKeyPair = VirgilCrypto.generateKeyPair({\n\tpassword: password \n});\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, password: password }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\nWith private key identifier:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\n### signThenEncryptAsync(data, privateKey, recipientId | recipients, [publicKey]) (Browsers only)\n\nSame as [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey) but returns the Promise\nthat will be resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, senderKeyPair.privateKey, recipientId, recipientKeyPair.publicKey)\n.then(function (encryptedSignedData) {\n\tconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n})\n.catch(function (err) {\n\t// handle error\n\tconsole.log(err);\n});\n\n```\n\n### decryptThenVerify(cipherData, recipientId, privateKey, publicKey)\n\nCombines decryption in a single step with integrity verification. Decrypts the data and verifies the attached signature.\nReturns decrypted data if verification succeeded or throws `VirgilCrypto.VirgilCryptoError` if it failed.\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing two properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n\nThe `publicKey` argument can be a Buffer or an array. If `publicKey` is a Buffer, it is treated as a raw public key. If \n`publicKey` is an array, it is interpreted as an array of objects each of which contains two properties:\n \n- publicKey (Buffer): The public key value.\n- recipientId (Buffer): The identifier used during the signing phase to identify the private key used to calculate the \nsignature. If the cipher data contains an identifier of the private key used to calculate the signature, then the \npublic key with that identifier from `publicKey` array will be used to verify the signature, otherwise all of the \nkeys are tried in sequence. See [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey).\n\n#### Arguments\n\n* cipherData (Buffer): The data to decrypt and verify.\n* recipientId (Buffer): The recipient id used for encryption.\n* privateKey (Buffer): The private key to use for decryption.\n* publicKey | publicKeys: Either one of the following:\n \t- publicKey (Buffer): The sender's public key to use for signature verification.\n\t- publicKeys (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): The list of public keys with identifiers.\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar password = new Buffer('super_secret');\nvar recipientKeyPair = VirgilCrypto.generateKeyPair({ password: password });\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\t{ privateKey: recipientKeyPair.privateKey: password: password }, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith multiple public keys:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPairId = VirgilCrypto.hash(recipientKeyPair.publicKey);\n\nvar anotherKeyPair = VirgilCrypto.generateKeyPair();\nvar anotherKeyPairId = VirgilCrypto.hash(anotherKeyPair.publicKey);\n\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\t\\[ \n\t\t\t\t\t\t{ publicKey: recipientKeyPair.publicKey, recipientId: recipientKeyPairId },\n\t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n\t\t\t\t\t\\]);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientKeyPairId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\t\\[\n    \t\t\t\t\t\t{ publicKey: senderKeyPair.publicKey, recipientId: senderKeyPairId },\n    \t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n    \t\t\t\t\t\\]);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n### decryptThenVerifyAsync(cipherData, recipientId, privateKey, publicKey) (Browsers only)\n\nSame as [decryptThenVerify](#decryptthenverifycipherdata-recipientid-privatekey-publickey) but returns the Promise\nthat will be resolved with decrypted data or rejected with `VirgilCrypto.VirgilCryptoError`.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data or rejected with an error.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, \n\tsenderKeyPair.privateKey, \n\trecipientId, \n\trecipientKeyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptThenVerifyAsync(\n\t\t\tencryptedData, \n\t\t\trecipientId, \n\t\t\trecipientKeyPair.privateKey, \n\t\t\tsenderKeyPair.publicKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n\t})\n\t.catch(function (err) {\n\t\t// Message integrity\\authenticity verification failed\n        console.log(ex);\n\t});\n```\n\n\n## Hashing\n\n### hash(data, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA256\\])\n\nReturns a cryptographic hash of the message.\n\n### Arguments\n\n* data (Buffer): The data to compute the hash for.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA256\\] (string): Optional name of the hash algorithm to use (Default - SHA-256).\n\n### Returns\n\n* (Buffer): Returns the hash.\n\n### Supported hash algorithms\n\n| Algorithm  |\n|------------|\n| SHA1       |\n| SHA224     |\n| SHA256     |\n| SHA384     |\n| SHA512     |\n\ne.g. `VirgilCrypto.HashAlgorithm.SHA1` for the SHA1 hash.\n\n\n### obfuscate(value, salt, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA384\\], \\[iterations = 2048\\])\n\nReturns an obfuscated value derived with PBKDF using the given salt, hash algorithm and number of iterations.\n\n#### Arguments\n\n* value (Buffer): The value to obfuscate.\n* salt (Buffer): The salt for PBKDF.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA384\\] (string): Optional name of the hash algorithm to use (Default - SHA-384).\n* \\[iterations\\] (iterations): Optional number of iterations for PBKDF (Default - 2048).\n\n#### Returns\n\n* (Buffer): Returns the obfuscated value.\n\n\n## Key pair utils\n\n### changePrivateKeyPassword(privateKey, oldPassword, newPassword)\n\nChanges the password used to encrypt the private key. Returns the private key encrypted using the new password.\n\n#### Arguments\n\n* privateKey (Buffer): The private key.\n* oldPassword (Buffer): The old password.\n* newPassword (Buffer): The new password.\n\n#### Returns\n\n* (Buffer): Returns the private key encrypted using the new password.\n\n\n### decryptPrivateKey(privateKey, privateKeyPassword)\n\nDecrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to decrypt.\n* privateKeyPassword (Buffer): The password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the unencrypted private key.\n\n\n### encryptPrivateKey(privateKey, privateKeyPassword)\n\nEncrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to encrypt.\n* privateKeyPassword (Buffer): The password to use for encryption. \n\n#### Returns\n\n* (Buffer): Returns the encrypted private key.\n\n\n### extractPrivateKey(privateKey, \\[privateKeyPassword\\])\n\nReturns the public key computed from the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key from which the public key is computed.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the public key.\n\n\n### privateKeyToDER(privateKey, \\[privateKeyPassword\\])\n\nReturns the private key in DER format.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to convert to DER format.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the private key in DER format.\n\n### publicKeyToDER(publicKey)\n\nReturns the public key in DER format.\n\n#### Arguments\n\n* publicKey (Buffer): The public key to convert to DER format.\n\n#### Returns\n\n* (Buffer): Returns the public key in DER format.\n\n\n## Resources\n\n* [Crypto Library](https://github.com/VirgilSecurity/virgil/blob/master/javascript/crypto-library/readme.md)\n* [SDK](https://github.com/VirgilSecurity/virgil/blob/master/javascript/keys-sdk/readme.md)\n\n## License\nBSD 3-Clause. See [LICENSE](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE) for details.\n\n## Contacts\nEmail: <support@virgilsecurity.com>\n","browser":{"./src/node/api.ts":"./src/browser/api.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":"4.0.0 - 9.9999.9999"},"gitHead":"faae4813214d0b5408ad7981448d76013ba12f3b","scripts":{"test":"npm run test:node && npm run test:browser","build":"node scripts/build.js","version":"npm run build && node scripts/updateReadme.js && git add README.md","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-native-library.js","test:browser":"karma start"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.5.1","description":"JavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto)  for modern browsers and Node.js.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.0","prettier":"^1.4.4","uglify-es":"^3.3.9","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-pluginutils":"^2.0.1","rollup-plugin-ignore":"^1.0.3","rollup-plugin-inject":"^2.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-commonjs":"^9.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.4_1524037522405_0.8745955598390642","host":"s3://npm-registry-packages"}},"3.0.0-alpha.5":{"name":"virgil-crypto","version":"3.0.0-alpha.5","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.5","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"ddfde3068b184164ca51ae883ed652f475f08bf9","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.5.tgz","fileCount":39,"integrity":"sha512-FibAwZ2Szn0xuZNuF6YzzQLAcegzZKoUYk2xfBBYN/gwcBQMYQg8xnaPEtwCxbF7c6ZuQha3hs/JT3eVG+7L3Q==","signatures":[{"sig":"MEUCIA/3HVIaqzJ61jk8VsZAvbQUAABZIBqc5ss6JxiLY4MTAiEA3ZKBlSZHVIup2trYFNmZcOqvAxMC7RQ+z0zBcDtx/A8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6699085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1xAOCRA9TVsSAnZWagAAdtkQAII61usd0/uJylfyi87p\nDal0UcN1jSFU7/cUzmnFXnzE++Db7+DERPRtggYjgyLBUb7cZPL5wGk/1DIf\nVgnmQ51mK34Ih2VoiPk2q3BvyrVoYPyS3nvmi6EUzPM7lQwA2mKv1XfTMaZw\noaGvrIz5rPT7KOznIS4psR3hXNeJOpWQUcj0F6eTOXajieObEBnT3NdY3n2s\n0IQ/Plz4HQ+vOrihBgn+OH0lOJyF61XWci5bHDtlKq+KgQ0N9Dl8osh6Becs\n12ox72M5eOOJtKC/+tmi0kXUX2kXR9DBlTd1qJJN86AUZGfLwFoanm9lTbUt\n4BdFAhGUbRzLkQ15058CZJZdc0uZ1S2b/7/AfEIzxgpGnP8wOzjbfGopbVlT\nETh670P+/Iv7WPKSxPMPrHrqzRt7y8XscpG6EkUS7NvMeYoMfPf/YvQZgECW\n61bkeUFR8LpktbDDkPalt1WY8v8IFNuSOrbfEaD+3nogo2Qu/9eh89nvAfGX\noNlKaJynGEy2sd1LDytmEDLSbUbCNkQu5GFiOlPzn8BrE9Vusg1GTJRNcq02\nIQWD8KOWoJYuBhnETDFiEe4m++odZ9pvaQWrITZ4mPcAm+l+KSd/5MRiFoi/\ndsGAjzgNG6gkd2yoONQw7jMrRQln/48nf55YH0PAk4Fz5LPMo15nep2zXP6z\nPMOW\r\n=+eCb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-native-library.js"],"module":"dist/virgil-crypto.es.js","readme":"# JavaScript Crypto Library [![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg?branch=v2_0)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n\nJavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto) \nfor modern browsers and Node.js.\n\n- [Install](#install)\n- [Usage](#usage)\n- [Generate Keys](#generate-keys)\n- [Encryption](#encryption)\n- [Decryption](#decryption)\n- [Signatures](#signatures)\n- [Authenticated Encryption](#authenticated-encryption)\n- [Hashing](#hashing)\n- [Key Pair Utils](#key-pair-utils)\n- [Resources](#resources)\n- [License](#license)\n- [Contacts](#contacts)\n  \n## Install\n\n### NPM\n\n```sh\nnpm install virgil-crypto\n```\n\n> **Important!** You will need Node.js version >=4 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n```html\n<script\nsrc=\"https://cdn.virgilsecurity.com/packages/javascript/crypto/3.0.0-alpha.5/virgil-crypto.browser.umd.min.js\"\nintegrity=\"sha256-swsxCdZGkfwlF5VKSb5m5CV4nRvgXjtgmpvNlpdsJ+A=\"\ncrossorigin=\"anonymous\"></script>\n```\n\n## Usage\n\nAll API functions accept and return bytes as `Buffer` objects. In browser \n[this module](https://github.com/feross/buffer) is used and is available via `VirgilCrypto.Buffer` property. \nIn Node.js it's native [Buffer](https://nodejs.org/api/buffer.html).\n\nAsync versions of functions are implemented using [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Worker)\nand therefore are only available in the browser. This also means that Chrome and Opera will give an error \n`\"Uncaught SecurityError: Script at '[blob url here]' cannot be accessed from origin 'null'.\"` when you try \nto load VirgilCrypto from `file:///` url. It needs to be on a proper domain. \n\nAsync functions are Promise-based. Promise implementation is provided\nby [core-js](https://github.com/zloirock/core-js#ecmascript-6-promise).\n\n## Generate Keys\n\n### generateKeyPair(\\[options\\])\n\nGenerates a key pair. Provide `options` to specify the type of keys to generate (see below for the list \nof available types) and\\or password to use to encrypt the private key. The keys returned are in PEM format.\n\n\n#### Arguments\n\n* \\[options={}\\] (Object): The options object.\n* \\[options.password\\] (Buffer): Optional password to use to encrypt the private key.\n* \\[options.type\\] (string): Optional type of keys to generate.\n\n\n#### Returns\n\n* (Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>): The new key pair.\n\n\n#### Available Key Pair Types\n\n\n\n| Key Type          | Description                    |\n|-------------------|--------------------------------|\n| Default      | the safest recommended type        |\n| RSA_2048     | RSA 2048 bit (not recommended) |\n| RSA_3072     | RSA 3072 bit                   |\n| RSA_4096     | RSA 4096 bit                   |\n| RSA_8192     | RSA 8192 bit                   |\n| EC_SECP256R1 | 256-bits NIST curve            |\n| EC_SECP384R1 | 384-bits NIST curve            |\n| EC_SECP521R1 | 521-bits NIST curve            |\n| EC_BP256R1   | 256-bits Brainpool curve       |\n| EC_BP384R1   | 384-bits Brainpool curve       |\n| EC_BP512R1   | 512-bits Brainpool curve       |\n| EC_SECP256K1 | 256-bits \"Koblitz\" curve       |\n| FAST_EC_X25519 | Curve25519\t\t\t\t\t|\n| FAST_EC_ED25519 | Ed25519\t\t\t\t\t\t|\n\ne.g. `VirgilCrypto.KeyPairType.EC_SECP384R1` for 384-bits NIST curve.\n\n\n#### Examples\n\nGenerate a key pair of recommended safest type without encrypting private key: \n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair();\n//{\n//   publicKey: ...,  // Buffer with public key\n//   privateKey: ...  // Buffer with private key\n//}\n```\n\nGenerate a key pair with encrypted private key and recommended type:\n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd') \n});\n```\n\nGenerate Curve25519 key pair with encrypted private key:\n\n```javascript\nvar keyPairCurve25519 = VirgilCrypto.generateKeyPair({ \n\ttype: VirgilCrypto.KeyPairType.FAST_EC_X25519,\n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd')\n});\n```\n\n### generateKeyPairAsync(\\[options\\]) (Browsers only)\n\nSame as [generateKeyPair](#generatekeypairoptions) but returns the Promise that is resolved with generated\nkey pair or rejected with an error.\n\n#### Returns\n\n* (Promise\\<Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>\\>): The Promise that will be resolved with the new key pair.\n\n#### Examples\n\n\n```javascript\nVirgilCrypto.generateKeyPairAsync()\n\t.then(function (keyPair) {\n\t\t//{\n        //   publicKey: ...,  // Buffer with public key material\n        //   privateKey: ...  // Buffer with private key material\n        //}\n\t});\n```\n\n## Encryption\n\n### encrypt(data, recipientId | recipients | password, \\[publicKey\\])\n\n#### Arguments\n\nEncrypts the data with single recipient's public key, multiple recipients' public keys or password depending \non the number and types of arguments passed.\n\n* data (Buffer): The data to encrypt.\n* recipientId|recipients|password: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n\t- password (Buffer): The password to use for encryption.\n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for single recipient (i.e. when \n\tthe second argument is recipientId).\n\n#### Returns\n\n* (Buffer): Returns encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar password = new Buffer('pa$$w0rd');\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing Key\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar recipientId1 = new Buffer('<SOME_RECIPIENT_ID_1>');\nvar recipientId2 = new Buffer('<SOME_RECIPIENT_ID_2>');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientsList);\n\n// encrypted data now can be decrypted by either keyPair1.privateKey \n// or keyPair2.privateKey\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\n\n### encryptAsync(data, recipientId | recipients | password, \\[publicKey\\]) (Browsers only)\n\nSame as [encrypt](#encryptdata-recipientid--recipients--password-publickey) but returns the Promise \nthat is resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\n\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing Key\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar recipientId = new VirgilCrypto.Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\n\nvar recipientId1 = new VirgilCrypto.Buffer('recipient1');\nvar recipientId2 = new VirgilCrypto.Buffer('recipient2');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nVirgilCrypto.encryptAsync(plainText, recipientsList)\n\t.then(function (encryptedData) {\n\t\t// encrypted data now can be decrypted by either keyPair1.privateKey \n\t\t// or keyPair2.privateKey\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Decryption\n\n### decrypt(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\])\n\nDecrypts the data using password or private key depending on the number of arguments passed in.\n\n#### Arguments\n\n* encryptedData (Buffer): The data to decrypt.\n* recipientId|password: Either one of the following\n\t- recipientId (Buffer): The recipient id used for encryption.\n\t- password (Buffer): The password to use for decryption.\n* \\[privateKey\\] (Buffer): The private key to use for decryption.\n* \\[privateKeyPassword\\] (Buffer): Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\nvar decryptedData = VirgilCrypto.decrypt(encryptedData, password);\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, \n\t\t\t\t\trecipientId, \n\t\t\t\t\tkeyPair.privateKey, \n\t\t\t\t\tprivateKeyPassword);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n\n### decryptAsync(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [decrypt](#decryptencrypteddata-recipientid--password-privatekey-privatekeypassword) but returns a \nPromise that is resolved with decrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(encryptedData, password);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t \t// handle error\n\t \tconsole.log(err);\n\t});\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, \n\t\t\t\trecipientId, \n\t\t\t\tkeyPair.privateKey, \n\t\t\t\tprivateKeyPassword);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Signatures\n\nCryptographic digital signatures use public key algorithms to provide authenticity and integrity assurances on the data. \nWhen you sign the data with a digital signature, someone else can verify the signature and can prove that the data \noriginated from you and was not altered after you signed it.\n\n### sign(data, privateKey, \\[privateKeyPassword\\])\n\nSigns the data using the private key and returns the signature.\n\n#### Arguments\n\n* data (Buffer): The data to sign\n* privateKey (Buffer): The private key to use for signing.\n* \\[privateKeyPassword\\]: Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey);\n\nconsole.log(signature.toString('base64'));\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey, keyPassword);\n\nconsole.log(signature.toString('base64'));\n```\n\n### signAsync(data, privateKey, \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [sign](#signdata-privatekey-privatekeypassword) but returns the Promise that will be \nresolved with the signature or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey, keyPassword)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\n### verify(data, sign, publicKey)\n\nVerifies the signature for the data and returns `true` if verification succeeded or `false` if it failed.\n\n#### Arguments\n\n* data (Buffer): The signed data.\n* sign (Buffer): The signature.\n* publicKey (Buffer): The public key of the party that signed the data.\n\n#### Returns\n\n* (boolean): Returns `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nvar isVerified = VirgilCrypto.verify(encryptedData, signature, keyPair.publicKey);\nconsole.log('Is signature valid: ' + isVerified);\n```\n\n### verifyAsync(data, sign, publicKey) (Browsers only)\n\nSame as [verify](#verifydata-sign-publickey) but returns the Promise that will be resolved with `true` if verification \nsucceeded or `false` if it failed, or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<boolean\\>): The Promise that will be resolved with `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nVirgilCrypto.verifyAsync(encryptedData, signature, keyPair.publicKey)\n\t.then(function (isVerified) {\n\t\tconsole.log('Is signature valid: ' + isVerified);\n\t});\n```\n\n## Authenticated Encryption\n\nA form of encryption which simultaneously provides confidentiality, integrity, and authenticity assurances on the data.\n\n### signThenEncrypt(data, privateKey, recipientId | recipients, [publicKey])\n\nCombines encryption in a single step with message authentication. Signs the data using the private key and encrypts\nthe signed message using the public key (or public keys depending on the number of arguments passed).\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing three properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n- \\[recipientId\\] (Buffer): Optional. Recipient Id is used to identify the signing key for cases when you later want \nto verify the signature with any of the several possible public keys.\n\n#### Arguments\n\n* data (Buffer): The data to sign and encrypt.\n* privateKey | privateKeyInfo: Either one of the following \n\t- privateKey (Buffer): The raw private key with no password.\n\t- privateKeyInfo ({privateKey: Buffer, password: Buffer, recipientId: Buffer}): A hash with three properties: \n\t`privateKey`, `password` and `recipientId`.\n* recipientId | recipients: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for a single recipient (i.e. when \n\tthe second argument is recipientId)\n\n#### Returns\n\n* (Buffer): Returns encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar password = new Buffer('super_secret');\nvar senderKeyPair = VirgilCrypto.generateKeyPair({\n\tpassword: password \n});\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, password: password }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\nWith private key identifier:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\n### signThenEncryptAsync(data, privateKey, recipientId | recipients, [publicKey]) (Browsers only)\n\nSame as [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey) but returns the Promise\nthat will be resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, senderKeyPair.privateKey, recipientId, recipientKeyPair.publicKey)\n.then(function (encryptedSignedData) {\n\tconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n})\n.catch(function (err) {\n\t// handle error\n\tconsole.log(err);\n});\n\n```\n\n### decryptThenVerify(cipherData, recipientId, privateKey, publicKey)\n\nCombines decryption in a single step with integrity verification. Decrypts the data and verifies the attached signature.\nReturns decrypted data if verification succeeded or throws `VirgilCrypto.VirgilCryptoError` if it failed.\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing two properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n\nThe `publicKey` argument can be a Buffer or an array. If `publicKey` is a Buffer, it is treated as a raw public key. If \n`publicKey` is an array, it is interpreted as an array of objects each of which contains two properties:\n \n- publicKey (Buffer): The public key value.\n- recipientId (Buffer): The identifier used during the signing phase to identify the private key used to calculate the \nsignature. If the cipher data contains an identifier of the private key used to calculate the signature, then the \npublic key with that identifier from `publicKey` array will be used to verify the signature, otherwise all of the \nkeys are tried in sequence. See [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey).\n\n#### Arguments\n\n* cipherData (Buffer): The data to decrypt and verify.\n* recipientId (Buffer): The recipient id used for encryption.\n* privateKey (Buffer): The private key to use for decryption.\n* publicKey | publicKeys: Either one of the following:\n \t- publicKey (Buffer): The sender's public key to use for signature verification.\n\t- publicKeys (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): The list of public keys with identifiers.\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar password = new Buffer('super_secret');\nvar recipientKeyPair = VirgilCrypto.generateKeyPair({ password: password });\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\t{ privateKey: recipientKeyPair.privateKey: password: password }, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith multiple public keys:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPairId = VirgilCrypto.hash(recipientKeyPair.publicKey);\n\nvar anotherKeyPair = VirgilCrypto.generateKeyPair();\nvar anotherKeyPairId = VirgilCrypto.hash(anotherKeyPair.publicKey);\n\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\t\\[ \n\t\t\t\t\t\t{ publicKey: recipientKeyPair.publicKey, recipientId: recipientKeyPairId },\n\t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n\t\t\t\t\t\\]);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientKeyPairId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\t\\[\n    \t\t\t\t\t\t{ publicKey: senderKeyPair.publicKey, recipientId: senderKeyPairId },\n    \t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n    \t\t\t\t\t\\]);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n### decryptThenVerifyAsync(cipherData, recipientId, privateKey, publicKey) (Browsers only)\n\nSame as [decryptThenVerify](#decryptthenverifycipherdata-recipientid-privatekey-publickey) but returns the Promise\nthat will be resolved with decrypted data or rejected with `VirgilCrypto.VirgilCryptoError`.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data or rejected with an error.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, \n\tsenderKeyPair.privateKey, \n\trecipientId, \n\trecipientKeyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptThenVerifyAsync(\n\t\t\tencryptedData, \n\t\t\trecipientId, \n\t\t\trecipientKeyPair.privateKey, \n\t\t\tsenderKeyPair.publicKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n\t})\n\t.catch(function (err) {\n\t\t// Message integrity\\authenticity verification failed\n        console.log(ex);\n\t});\n```\n\n\n## Hashing\n\n### hash(data, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA256\\])\n\nReturns a cryptographic hash of the message.\n\n### Arguments\n\n* data (Buffer): The data to compute the hash for.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA256\\] (string): Optional name of the hash algorithm to use (Default - SHA-256).\n\n### Returns\n\n* (Buffer): Returns the hash.\n\n### Supported hash algorithms\n\n| Algorithm  |\n|------------|\n| SHA1       |\n| SHA224     |\n| SHA256     |\n| SHA384     |\n| SHA512     |\n\ne.g. `VirgilCrypto.HashAlgorithm.SHA1` for the SHA1 hash.\n\n\n### obfuscate(value, salt, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA384\\], \\[iterations = 2048\\])\n\nReturns an obfuscated value derived with PBKDF using the given salt, hash algorithm and number of iterations.\n\n#### Arguments\n\n* value (Buffer): The value to obfuscate.\n* salt (Buffer): The salt for PBKDF.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA384\\] (string): Optional name of the hash algorithm to use (Default - SHA-384).\n* \\[iterations\\] (iterations): Optional number of iterations for PBKDF (Default - 2048).\n\n#### Returns\n\n* (Buffer): Returns the obfuscated value.\n\n\n## Key pair utils\n\n### changePrivateKeyPassword(privateKey, oldPassword, newPassword)\n\nChanges the password used to encrypt the private key. Returns the private key encrypted using the new password.\n\n#### Arguments\n\n* privateKey (Buffer): The private key.\n* oldPassword (Buffer): The old password.\n* newPassword (Buffer): The new password.\n\n#### Returns\n\n* (Buffer): Returns the private key encrypted using the new password.\n\n\n### decryptPrivateKey(privateKey, privateKeyPassword)\n\nDecrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to decrypt.\n* privateKeyPassword (Buffer): The password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the unencrypted private key.\n\n\n### encryptPrivateKey(privateKey, privateKeyPassword)\n\nEncrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to encrypt.\n* privateKeyPassword (Buffer): The password to use for encryption. \n\n#### Returns\n\n* (Buffer): Returns the encrypted private key.\n\n\n### extractPrivateKey(privateKey, \\[privateKeyPassword\\])\n\nReturns the public key computed from the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key from which the public key is computed.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the public key.\n\n\n### privateKeyToDER(privateKey, \\[privateKeyPassword\\])\n\nReturns the private key in DER format.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to convert to DER format.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the private key in DER format.\n\n### publicKeyToDER(publicKey)\n\nReturns the public key in DER format.\n\n#### Arguments\n\n* publicKey (Buffer): The public key to convert to DER format.\n\n#### Returns\n\n* (Buffer): Returns the public key in DER format.\n\n\n## Resources\n\n* [Crypto Library](https://github.com/VirgilSecurity/virgil/blob/master/javascript/crypto-library/readme.md)\n* [SDK](https://github.com/VirgilSecurity/virgil/blob/master/javascript/keys-sdk/readme.md)\n\n## License\nBSD 3-Clause. See [LICENSE](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE) for details.\n\n## Contacts\nEmail: <support@virgilsecurity.com>\n","browser":{"./src/node/api.ts":"./src/browser/api.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":"4.0.0 - 9.9999.9999"},"gitHead":"4ea2a108cec4cc0afe88734794c55b3c6e68133b","scripts":{"test":"npm run test:node && npm run test:browser","build":"node scripts/build.js","version":"npm run build && node scripts/updateReadme.js && git add README.md","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-native-library.js","test:browser":"karma start"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.5.1","description":"JavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto)  for modern browsers and Node.js.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.0","prettier":"^1.4.4","uglify-es":"^3.3.9","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-pluginutils":"^2.0.1","rollup-plugin-ignore":"^1.0.3","rollup-plugin-inject":"^2.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-commonjs":"^9.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.5_1524043789515_0.5122324071670981","host":"s3://npm-registry-packages"}},"3.0.0-alpha.6":{"name":"virgil-crypto","version":"3.0.0-alpha.6","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.6","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"d27d2940c7a1a434cd80fe8594dbe624456fc259","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.6.tgz","fileCount":39,"integrity":"sha512-1W7O2oWVFpNVzWuKsi9Dhdg13pYIpoJJgMbwHhpS5kxo59l/26HTw/1I507EcrnZ6KzMeltq5KXaKzwVR2lrYQ==","signatures":[{"sig":"MEUCIQDZlUokZ/1SanIYrcE/hKVe0RtkiwW+ddsa/zExPmrTPgIgNilPr4DgDOBQaxkRae4H9D7lKW8At4NGT+/g0CBu4HE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6637600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2HB/CRA9TVsSAnZWagAAKuoQAIefbys0bxMRclyw4GcZ\nv8R6nu+kpevSoAkXYQDVDs3yfmkdY/3dN6JrOWjwrUB0HVj7J2FDPclD/d8x\nsNL3SXio92r4zow+LI5THJd60ey11zR1HGwZJ/shhifBzI+sZb9wu1mhvl0l\ndr6pZHL9Aof+jqZV1G6QnWQR2zuaZW+calDQHg0pGkDARxBG1WxoG3sxQ+sZ\n80gnAm6o/4aEEFsg7t4mmv+SbqToNLh3SS2E4+8F3rJQXJg9UxI29l89nsru\ndQQE1v49iAAnG+ZAmtfb3A2n0ixIz2ujASA0pGqFTnIcSQEvoY2y4YtjKhHJ\ndB7+oVXeJOc8AoGhJ8VR7BziPWHRSiBgrgdnwcAQku7HpBSf8mzyZErgK8ao\nD4ztfQwFtdntAl4cofFaROzbsb4qUGHzo9U/85sEuNxUnwxD+IuxFtdBIG07\nJttYZUK6bJuelOqJxwqod6tZXveADWV7zHo+Lx2tJOWF4MkCZU9sPR/BgZzd\n/Y4zOIOg2UtyGa+Ol8FkZ9V//iEyW3nHMwSxWELUZqAtNdRAj6sMVrGDNKCP\nQkpNjwkAsWExOpAv6BJMqs7zv2HSHaimcmWlvLdC/MB/AXR4X6542SbMyyHU\n1iBP7ku7TEzQvRixXYIUpL90I/eK815sLrHDbRuhkJ6iOheBX2AQ3j8+fDdU\nPS2v\r\n=lhWE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-native-library.js"],"module":"dist/virgil-crypto.es.js","readme":"# JavaScript Crypto Library [![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg?branch=v2_0)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n\nJavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto) \nfor modern browsers and Node.js.\n\n- [Install](#install)\n- [Usage](#usage)\n- [Generate Keys](#generate-keys)\n- [Encryption](#encryption)\n- [Decryption](#decryption)\n- [Signatures](#signatures)\n- [Authenticated Encryption](#authenticated-encryption)\n- [Hashing](#hashing)\n- [Key Pair Utils](#key-pair-utils)\n- [Resources](#resources)\n- [License](#license)\n- [Contacts](#contacts)\n  \n## Install\n\n### NPM\n\n```sh\nnpm install virgil-crypto\n```\n\n> **Important!** You will need Node.js version >=4 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n```html\n<script\nsrc=\"https://cdn.virgilsecurity.com/packages/javascript/crypto/3.0.0-alpha.6/virgil-crypto.browser.umd.min.js\"\nintegrity=\"sha256-WNkuyYQsH7duZbkvQwwMW0r3gKHPb5A4eOqa7Uy8moA=\"\ncrossorigin=\"anonymous\"></script>\n```\n\n## Usage\n\nAll API functions accept and return bytes as `Buffer` objects. In browser \n[this module](https://github.com/feross/buffer) is used and is available via `VirgilCrypto.Buffer` property. \nIn Node.js it's native [Buffer](https://nodejs.org/api/buffer.html).\n\nAsync versions of functions are implemented using [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Worker)\nand therefore are only available in the browser. This also means that Chrome and Opera will give an error \n`\"Uncaught SecurityError: Script at '[blob url here]' cannot be accessed from origin 'null'.\"` when you try \nto load VirgilCrypto from `file:///` url. It needs to be on a proper domain. \n\nAsync functions are Promise-based. Promise implementation is provided\nby [core-js](https://github.com/zloirock/core-js#ecmascript-6-promise).\n\n## Generate Keys\n\n### generateKeyPair(\\[options\\])\n\nGenerates a key pair. Provide `options` to specify the type of keys to generate (see below for the list \nof available types) and\\or password to use to encrypt the private key. The keys returned are in PEM format.\n\n\n#### Arguments\n\n* \\[options={}\\] (Object): The options object.\n* \\[options.password\\] (Buffer): Optional password to use to encrypt the private key.\n* \\[options.type\\] (string): Optional type of keys to generate.\n\n\n#### Returns\n\n* (Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>): The new key pair.\n\n\n#### Available Key Pair Types\n\n\n\n| Key Type          | Description                    |\n|-------------------|--------------------------------|\n| Default      | the safest recommended type        |\n| RSA_2048     | RSA 2048 bit (not recommended) |\n| RSA_3072     | RSA 3072 bit                   |\n| RSA_4096     | RSA 4096 bit                   |\n| RSA_8192     | RSA 8192 bit                   |\n| EC_SECP256R1 | 256-bits NIST curve            |\n| EC_SECP384R1 | 384-bits NIST curve            |\n| EC_SECP521R1 | 521-bits NIST curve            |\n| EC_BP256R1   | 256-bits Brainpool curve       |\n| EC_BP384R1   | 384-bits Brainpool curve       |\n| EC_BP512R1   | 512-bits Brainpool curve       |\n| EC_SECP256K1 | 256-bits \"Koblitz\" curve       |\n| FAST_EC_X25519 | Curve25519\t\t\t\t\t|\n| FAST_EC_ED25519 | Ed25519\t\t\t\t\t\t|\n\ne.g. `VirgilCrypto.KeyPairType.EC_SECP384R1` for 384-bits NIST curve.\n\n\n#### Examples\n\nGenerate a key pair of recommended safest type without encrypting private key: \n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair();\n//{\n//   publicKey: ...,  // Buffer with public key\n//   privateKey: ...  // Buffer with private key\n//}\n```\n\nGenerate a key pair with encrypted private key and recommended type:\n\n```javascript\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd') \n});\n```\n\nGenerate Curve25519 key pair with encrypted private key:\n\n```javascript\nvar keyPairCurve25519 = VirgilCrypto.generateKeyPair({ \n\ttype: VirgilCrypto.KeyPairType.FAST_EC_X25519,\n\tpassword: new VirgilCrypto.Buffer('pa$$w0rd')\n});\n```\n\n### generateKeyPairAsync(\\[options\\]) (Browsers only)\n\nSame as [generateKeyPair](#generatekeypairoptions) but returns the Promise that is resolved with generated\nkey pair or rejected with an error.\n\n#### Returns\n\n* (Promise\\<Object.\\<{privateKey: Buffer, publicKey: Buffer}\\>\\>): The Promise that will be resolved with the new key pair.\n\n#### Examples\n\n\n```javascript\nVirgilCrypto.generateKeyPairAsync()\n\t.then(function (keyPair) {\n\t\t//{\n        //   publicKey: ...,  // Buffer with public key material\n        //   privateKey: ...  // Buffer with private key material\n        //}\n\t});\n```\n\n## Encryption\n\n### encrypt(data, recipientId | recipients | password, \\[publicKey\\])\n\n#### Arguments\n\nEncrypts the data with single recipient's public key, multiple recipients' public keys or password depending \non the number and types of arguments passed.\n\n* data (Buffer): The data to encrypt.\n* recipientId|recipients|password: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n\t- password (Buffer): The password to use for encryption.\n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for single recipient (i.e. when \n\tthe second argument is recipientId).\n\n#### Returns\n\n* (Buffer): Returns encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar password = new Buffer('pa$$w0rd');\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing Key\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar recipientId1 = new Buffer('<SOME_RECIPIENT_ID_1>');\nvar recipientId2 = new Buffer('<SOME_RECIPIENT_ID_2>');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientsList);\n\n// encrypted data now can be decrypted by either keyPair1.privateKey \n// or keyPair2.privateKey\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\n\n### encryptAsync(data, recipientId | recipients | password, \\[publicKey\\]) (Browsers only)\n\nSame as [encrypt](#encryptdata-recipientid--recipients--password-publickey) but returns the Promise \nthat is resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted data.\n\n#### Examples\n\nUsing Password\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\n\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing Key\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nvar recipientId = new VirgilCrypto.Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n\nconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n```\n\nUsing multiple keys\n\n```javascript\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\n\nvar recipientId1 = new VirgilCrypto.Buffer('recipient1');\nvar recipientId2 = new VirgilCrypto.Buffer('recipient2');\nvar keyPair1 = VirgilCrypto.generateKeyPair();\nvar keyPair2 = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pairs and random recipient ids here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar recipientsList = [{ \n\trecipientId: recipientId1, \n\tpublicKey: keyPair1.publicKey \n}, {\n\trecipientId: recipientId2,\n\tpublicKey: keyPair2.publicKey\n}];\n\nVirgilCrypto.encryptAsync(plainText, recipientsList)\n\t.then(function (encryptedData) {\n\t\t// encrypted data now can be decrypted by either keyPair1.privateKey \n\t\t// or keyPair2.privateKey\n\t\tconsole.log('Encrypted data: ' + encryptedData.toString('base64'));\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Decryption\n\n### decrypt(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\])\n\nDecrypts the data using password or private key depending on the number of arguments passed in.\n\n#### Arguments\n\n* encryptedData (Buffer): The data to decrypt.\n* recipientId|password: Either one of the following\n\t- recipientId (Buffer): The recipient id used for encryption.\n\t- password (Buffer): The password to use for decryption.\n* \\[privateKey\\] (Buffer): The private key to use for decryption.\n* \\[privateKeyPassword\\] (Buffer): Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar encryptedData = VirgilCrypto.encrypt(plainText, password);\nvar decryptedData = VirgilCrypto.decrypt(encryptedData, password);\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.encrypt(\n\t\t\t\t\tplainText, recipientId, keyPair.publicKey);\n\t\t\t\t\t\nvar decryptedData = VirgilCrypto.decrypt(\n\t\t\t\t\tencryptedData, \n\t\t\t\t\trecipientId, \n\t\t\t\t\tkeyPair.privateKey, \n\t\t\t\t\tprivateKeyPassword);\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n\n### decryptAsync(encryptedData, recipientId | password, \\[privateKey\\], \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [decrypt](#decryptencrypteddata-recipientid--password-privatekey-privatekeypassword) but returns a \nPromise that is resolved with decrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data.\n\n#### Examples\n\nUsing password:\n\n```javascript\nvar password = new VirgilCrypto.Buffer('pa$$w0rd');\nvar plainText = new VirgilCrypto.Buffer('data to be encrypted');\nVirgilCrypto.encryptAsync(plainText, password)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(encryptedData, password);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t \t// handle error\n\t \tconsole.log(err);\n\t});\n```\n\nUsing private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, recipientId, keyPair.privateKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\nUsing private key with password:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\nvar privateKeyPassword = new Buffer('pa$$w0rd');\n\nvar keyPair = VirgilCrypto.generateKeyPair({\n\tpassword: privateKeyPassword\n});\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.encryptAsync(plainText, recipientId, keyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptAsync(\n\t\t\t\tencryptedData, \n\t\t\t\trecipientId, \n\t\t\t\tkeyPair.privateKey, \n\t\t\t\tprivateKeyPassword);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\t\n\t})\n\t.catch(function (err) {\n\t\t// handle error\n\t\tconsole.log(err);\n\t});\n```\n\n## Signatures\n\nCryptographic digital signatures use public key algorithms to provide authenticity and integrity assurances on the data. \nWhen you sign the data with a digital signature, someone else can verify the signature and can prove that the data \noriginated from you and was not altered after you signed it.\n\n### sign(data, privateKey, \\[privateKeyPassword\\])\n\nSigns the data using the private key and returns the signature.\n\n#### Arguments\n\n* data (Buffer): The data to sign\n* privateKey (Buffer): The private key to use for signing.\n* \\[privateKeyPassword\\]: Optional password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey);\n\nconsole.log(signature.toString('base64'));\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nvar signature = VirgilCrypto.sign(encryptedData, keyPair.privateKey, keyPassword);\n\nconsole.log(signature.toString('base64'));\n```\n\n### signAsync(data, privateKey, \\[privateKeyPassword\\]) (Browsers only)\n\nSame as [sign](#signdata-privatekey-privatekeypassword) but returns the Promise that will be \nresolved with the signature or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with the signature.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\nUsing encrypted private key\n\n```javascript\nvar keyPassword = new Buffer('pa$$w0rd');\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar keyPair = VirgilCrypto.generateKeyPair({ \n\tpassword: keyPassword \n});\n\nvar encryptedData = VirgilCrypto.encrypt(plainText, recipientId, keyPair.publicKey);\nVirgilCrypto.signAsync(encryptedData, keyPair.privateKey, keyPassword)\n\t.then(function (signature) {\n\t\tconsole.log(signature.toString('base64'));\n\t});\n```\n\n### verify(data, sign, publicKey)\n\nVerifies the signature for the data and returns `true` if verification succeeded or `false` if it failed.\n\n#### Arguments\n\n* data (Buffer): The signed data.\n* sign (Buffer): The signature.\n* publicKey (Buffer): The public key of the party that signed the data.\n\n#### Returns\n\n* (boolean): Returns `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nvar isVerified = VirgilCrypto.verify(encryptedData, signature, keyPair.publicKey);\nconsole.log('Is signature valid: ' + isVerified);\n```\n\n### verifyAsync(data, sign, publicKey) (Browsers only)\n\nSame as [verify](#verifydata-sign-publickey) but returns the Promise that will be resolved with `true` if verification \nsucceeded or `false` if it failed, or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<boolean\\>): The Promise that will be resolved with `true` if verification succeeded or `false` if it failed.\n\n#### Examples\n\n```javascript\nVirgilCrypto.verifyAsync(encryptedData, signature, keyPair.publicKey)\n\t.then(function (isVerified) {\n\t\tconsole.log('Is signature valid: ' + isVerified);\n\t});\n```\n\n## Authenticated Encryption\n\nA form of encryption which simultaneously provides confidentiality, integrity, and authenticity assurances on the data.\n\n### signThenEncrypt(data, privateKey, recipientId | recipients, [publicKey])\n\nCombines encryption in a single step with message authentication. Signs the data using the private key and encrypts\nthe signed message using the public key (or public keys depending on the number of arguments passed).\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing three properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n- \\[recipientId\\] (Buffer): Optional. Recipient Id is used to identify the signing key for cases when you later want \nto verify the signature with any of the several possible public keys.\n\n#### Arguments\n\n* data (Buffer): The data to sign and encrypt.\n* privateKey | privateKeyInfo: Either one of the following \n\t- privateKey (Buffer): The raw private key with no password.\n\t- privateKeyInfo ({privateKey: Buffer, password: Buffer, recipientId: Buffer}): A hash with three properties: \n\t`privateKey`, `password` and `recipientId`.\n* recipientId | recipients: Either one of the following\n\t- recipientId (Buffer): The identifier of the intended recipient.\n\t- recipients (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): Array of recipient ids with corresponding \n\tpublic keys to use for encryption. \n* \\[publicKey\\] (Buffer): The public key to use for encryption. Used when encrypting for a single recipient (i.e. when \n\tthe second argument is recipientId)\n\n#### Returns\n\n* (Buffer): Returns encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar password = new Buffer('super_secret');\nvar senderKeyPair = VirgilCrypto.generateKeyPair({\n\tpassword: password \n});\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, password: password }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\nWith private key identifier:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\nvar encryptedSignedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText,\n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\n\nconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n```\n\n### signThenEncryptAsync(data, privateKey, recipientId | recipients, [publicKey]) (Browsers only)\n\nSame as [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey) but returns the Promise\nthat will be resolved with encrypted data or rejected with an error.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with encrypted signed data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the key would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, senderKeyPair.privateKey, recipientId, recipientKeyPair.publicKey)\n.then(function (encryptedSignedData) {\n\tconsole.log('Encrypted data: ' + encryptedSignedData.toString('base64'));\n})\n.catch(function (err) {\n\t// handle error\n\tconsole.log(err);\n});\n\n```\n\n### decryptThenVerify(cipherData, recipientId, privateKey, publicKey)\n\nCombines decryption in a single step with integrity verification. Decrypts the data and verifies the attached signature.\nReturns decrypted data if verification succeeded or throws `VirgilCrypto.VirgilCryptoError` if it failed.\n\nThe `privateKey` argument can be a Buffer or an object. If `privateKey` is a Buffer, it is treated as a raw private key \nwith no password. If `privateKey` is an object it is interpreted as a hash containing two properties:\n\n- privateKey (Buffer): The private key value.\n- \\[password\\] (Buffer): Optional password if the private key is encrypted.\n\nThe `publicKey` argument can be a Buffer or an array. If `publicKey` is a Buffer, it is treated as a raw public key. If \n`publicKey` is an array, it is interpreted as an array of objects each of which contains two properties:\n \n- publicKey (Buffer): The public key value.\n- recipientId (Buffer): The identifier used during the signing phase to identify the private key used to calculate the \nsignature. If the cipher data contains an identifier of the private key used to calculate the signature, then the \npublic key with that identifier from `publicKey` array will be used to verify the signature, otherwise all of the \nkeys are tried in sequence. See [signThenEncrypt](#signthenencryptdata-privatekey-recipientid--recipients-publickey).\n\n#### Arguments\n\n* cipherData (Buffer): The data to decrypt and verify.\n* recipientId (Buffer): The recipient id used for encryption.\n* privateKey (Buffer): The private key to use for decryption.\n* publicKey | publicKeys: Either one of the following:\n \t- publicKey (Buffer): The sender's public key to use for signature verification.\n\t- publicKeys (Array.\\<{recipientId: Buffer, publicKey: Buffer}\\>): The list of public keys with identifiers.\n#### Returns\n\n* (Buffer): Returns decrypted data.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith encrypted private key:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar password = new Buffer('super_secret');\nvar recipientKeyPair = VirgilCrypto.generateKeyPair({ password: password });\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\tsenderKeyPair.privateKey, \n\t\t\t\t\trecipientId, \n\t\t\t\t\trecipientKeyPair.publicKey);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientId, \n    \t\t\t\t\t{ privateKey: recipientKeyPair.privateKey: password: password }, \n    \t\t\t\t\tsenderKeyPair.publicKey);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\nWith multiple public keys:\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar senderKeyPairId = VirgilCrypto.hash(senderKeyPair.publicKey);\n\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPairId = VirgilCrypto.hash(recipientKeyPair.publicKey);\n\nvar anotherKeyPair = VirgilCrypto.generateKeyPair();\nvar anotherKeyPairId = VirgilCrypto.hash(anotherKeyPair.publicKey);\n\n\nvar encryptedData = VirgilCrypto.signThenEncrypt(\n\t\t\t\t\tplainText, \n\t\t\t\t\t{ privateKey: senderKeyPair.privateKey, recipientId: senderKeyPairId }, \n\t\t\t\t\t\\[ \n\t\t\t\t\t\t{ publicKey: recipientKeyPair.publicKey, recipientId: recipientKeyPairId },\n\t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n\t\t\t\t\t\\]);\nvar decryptedData = null;\n\ntry {\n\tdecryptedData = VirgilCrypto.decryptThenVerify(\n    \t\t\t\t\tencryptedData, \n    \t\t\t\t\trecipientKeyPairId, \n    \t\t\t\t\trecipientKeyPair.privateKey, \n    \t\t\t\t\t\\[\n    \t\t\t\t\t\t{ publicKey: senderKeyPair.publicKey, recipientId: senderKeyPairId },\n    \t\t\t\t\t\t{ publicKey: anotherKeyPair.publicKey, recipientId: anotherKeyPairId }\n    \t\t\t\t\t\\]);\n} catch (err) {\n\t// Message integrity\\authenticity verification failed\n\tconsole.log(err);\n}\n\nconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n```\n\n### decryptThenVerifyAsync(cipherData, recipientId, privateKey, publicKey) (Browsers only)\n\nSame as [decryptThenVerify](#decryptthenverifycipherdata-recipientid-privatekey-publickey) but returns the Promise\nthat will be resolved with decrypted data or rejected with `VirgilCrypto.VirgilCryptoError`.\n\n#### Returns\n\n* (Promise.\\<Buffer\\>): The Promise that will be resolved with decrypted data or rejected with an error.\n\n#### Examples\n\n```javascript\nvar plainText = new Buffer('data to be encrypted');\nvar recipientId = new Buffer('<SOME_RECIPIENT_ID>');\n\nvar senderKeyPair = VirgilCrypto.generateKeyPair();\nvar recipientKeyPair = VirgilCrypto.generateKeyPair();\n\n// using newly generated key pair and random recipient id here \n// as an example. In a real app, the keys would have been provided \n// externally (e.g. from web service, database, file, etc.)\n\nVirgilCrypto.signThenEncryptAsync(\n\tplainText, \n\tsenderKeyPair.privateKey, \n\trecipientId, \n\trecipientKeyPair.publicKey)\n\t.then(function (encryptedData) {\n\t\treturn VirgilCrypto.decryptThenVerifyAsync(\n\t\t\tencryptedData, \n\t\t\trecipientId, \n\t\t\trecipientKeyPair.privateKey, \n\t\t\tsenderKeyPair.publicKey);\n\t})\n\t.then(function (decryptedData) {\n\t\tconsole.log('Decrypted data: ' + decryptedData.toString('utf8'));\n\t})\n\t.catch(function (err) {\n\t\t// Message integrity\\authenticity verification failed\n        console.log(ex);\n\t});\n```\n\n\n## Hashing\n\n### hash(data, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA256\\])\n\nReturns a cryptographic hash of the message.\n\n### Arguments\n\n* data (Buffer): The data to compute the hash for.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA256\\] (string): Optional name of the hash algorithm to use (Default - SHA-256).\n\n### Returns\n\n* (Buffer): Returns the hash.\n\n### Supported hash algorithms\n\n| Algorithm  |\n|------------|\n| SHA1       |\n| SHA224     |\n| SHA256     |\n| SHA384     |\n| SHA512     |\n\ne.g. `VirgilCrypto.HashAlgorithm.SHA1` for the SHA1 hash.\n\n\n### obfuscate(value, salt, \\[algorithm = VirgilCrypto.HashAlgorithm.SHA384\\], \\[iterations = 2048\\])\n\nReturns an obfuscated value derived with PBKDF using the given salt, hash algorithm and number of iterations.\n\n#### Arguments\n\n* value (Buffer): The value to obfuscate.\n* salt (Buffer): The salt for PBKDF.\n* \\[algorithm=VirgilCrypto.HashAlgorithm.SHA384\\] (string): Optional name of the hash algorithm to use (Default - SHA-384).\n* \\[iterations\\] (iterations): Optional number of iterations for PBKDF (Default - 2048).\n\n#### Returns\n\n* (Buffer): Returns the obfuscated value.\n\n\n## Key pair utils\n\n### changePrivateKeyPassword(privateKey, oldPassword, newPassword)\n\nChanges the password used to encrypt the private key. Returns the private key encrypted using the new password.\n\n#### Arguments\n\n* privateKey (Buffer): The private key.\n* oldPassword (Buffer): The old password.\n* newPassword (Buffer): The new password.\n\n#### Returns\n\n* (Buffer): Returns the private key encrypted using the new password.\n\n\n### decryptPrivateKey(privateKey, privateKeyPassword)\n\nDecrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to decrypt.\n* privateKeyPassword (Buffer): The password used to encrypt the private key.\n\n#### Returns\n\n* (Buffer): Returns the unencrypted private key.\n\n\n### encryptPrivateKey(privateKey, privateKeyPassword)\n\nEncrypts and returns the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to encrypt.\n* privateKeyPassword (Buffer): The password to use for encryption. \n\n#### Returns\n\n* (Buffer): Returns the encrypted private key.\n\n\n### extractPrivateKey(privateKey, \\[privateKeyPassword\\])\n\nReturns the public key computed from the private key.\n\n#### Arguments\n\n* privateKey (Buffer): The private key from which the public key is computed.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the public key.\n\n\n### privateKeyToDER(privateKey, \\[privateKeyPassword\\])\n\nReturns the private key in DER format.\n\n#### Arguments\n\n* privateKey (Buffer): The private key to convert to DER format.\n* \\[privateKeyPassword\\] (Buffer): Optional password used for the private key encryption if applicable.\n\n#### Returns\n\n* (Buffer): Returns the private key in DER format.\n\n### publicKeyToDER(publicKey)\n\nReturns the public key in DER format.\n\n#### Arguments\n\n* publicKey (Buffer): The public key to convert to DER format.\n\n#### Returns\n\n* (Buffer): Returns the public key in DER format.\n\n\n## Resources\n\n* [Crypto Library](https://github.com/VirgilSecurity/virgil/blob/master/javascript/crypto-library/readme.md)\n* [SDK](https://github.com/VirgilSecurity/virgil/blob/master/javascript/keys-sdk/readme.md)\n\n## License\nBSD 3-Clause. See [LICENSE](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE) for details.\n\n## Contacts\nEmail: <support@virgilsecurity.com>\n","browser":{"./src/node/api.ts":"./src/browser/api.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":"4.0.0 - 9.9999.9999"},"gitHead":"1e66ab3aa54a361e72e179c5e15d2f42e0eb1700","scripts":{"test":"npm run test:node && npm run test:browser","build":"node scripts/rollup/build.js","version":"npm run build && node scripts/updateReadme.js && git add README.md","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-native-library.js","test:browser":"karma start"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.5.1","description":"JavaScript wrapper of [Virgil Crypto Library](https://github.com/VirgilSecurity/virgil-crypto)  for modern browsers and Node.js.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.0","prettier":"^1.4.4","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^3.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.6_1524134015139_0.5614116930878847","host":"s3://npm-registry-packages"}},"3.0.0-alpha.7":{"name":"virgil-crypto","version":"3.0.0-alpha.7","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.7","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"5aa6a262fefb2b4583671489e17668ff03ce8222","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.7.tgz","fileCount":39,"integrity":"sha512-jk7EUuHLSVi9VxH3eLNWT9XJodg6Si+u2jIphvVf10oZrS35ZIqjTR/u6Eh/F29ObMeeNx2T6IyFY197478MHA==","signatures":[{"sig":"MEYCIQD6gFPdM3CDaQcpkJgPLrQnxzr0ou2XBhHYwoN79SZGdQIhAOoFEVg7XmG7Os33Ysp/CI6/6iASteG40QaGmJFM6Ub/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6608789,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2hujCRA9TVsSAnZWagAAYbsP/AuKCJBQ3NLGN9UZ9TA+\nWZWUKqlt0thKMc3M6yE+eL0AlNUBR+u/+wH1X5lVhKz9YOHYz40poVDEXX8b\nrGQX96OlJ0lIC0AV5dfxGGpNsfJ/J0IUngKN49AyYyFfevIcGudNAPL3ervP\nsjRdlCQGeYHNIB2dC/te3V+uvx0nmhNWM7GFjg6fXIfZJPTaFCdjOqqtTp96\n+KT/nxVAR1hkfgDJK7cw/7nCnLEo27ZlCltBGjIZIuzwNci/mlXzKS1vix0A\nPsVVD28jarugNEph0OOL3Q9Dv9pBpUNy8Mc5uPa2o7CTo+H4gMhF2rfg52Jn\n0rcKxEhPa1QZziO2SOYtngdB2KLBvuVXr1GVuh0TKoDGMmtugs4WdQyx2Ub1\n4VTruyUDpCUrsdsHgTyxDqDSRkdhJYfZN2jkT/eunR3ldY91Qhh/YamG4iUx\ngG85Mi5trFzzor90UPXpjhcdMCo8Yk1xHTbrgZxBVH2XrBs7XswwMG1Izv2t\ns6nb52TfzB8JYZjEI2sBtIApAVdzQ7nRall324drMLLXLdYclXjxPEvlBTto\nkoaJ3ltFJ6PSuCCpiWSZs8QLXp/ZQw9n+JiQ6e30OmAd//XwzXuMKkpGNSji\n0+AflJFXbk4/UwpYQRcTrgob6ohK/H024exzHLzl/aJahZ1L0Ru5RMLgRp3I\n2D6s\r\n=Z8rp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-native-library.js"],"module":"dist/virgil-crypto.es.js","readme":"# Virgil Security JavaScript Crypto Library \n[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg?branch=v2_0)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) \n[![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n[![GitHub license](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE)\n\n### [Introduction](#introduction) | [Library purposes](#library-purposes) | [Usage examples](#usage-examples) | [Installation](#installation) | [Docs](#docs) | [License](#license) | [Contacts](#support)\n\n## Introduction\nVirgilCrypto is a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and an open-source high-level [cryptographic library](https://github.com/VirgilSecurity/virgil-crypto) that allows you to perform all necessary operations for securely storing and transferring data in your digital solutions. Crypto Library is written in C++ and is suitable for mobile and server platforms.\n\nVirgil Security, Inc., guides software developers into the forthcoming security world in which everything will be encrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of dollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now developers can instead focus on building features that give them a competitive market advantage while end-users can enjoy the privacy and security they increasingly demand.\n\n## Library purposes\n* Asymmetric Key Generation\n* Encryption/Decryption of data\n* Generation/Verification of digital signatures\n\n## Usage examples\n\n#### Generate a key pair\n\nGenerate a Private Key with the default algorithm (EC_X25519):\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst keyPair = crypto.generateKeys();\n```\n\n#### Generate and verify a signature\n\nGenerate signature and sign data with a private key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst signingKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToSign = 'Hello, Bob!';\n\n// generate a signature\nconst signature = crypto.calculateSignature(messageToSign, signingKeypair.privateKey);\n// signature is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(signature.toString('base64'));\n```\n\nVerify a signature with a public key:\n\n```javascript\n// verify a signature\nconst verified = crypto.verifySignature(messageToSign, signature, signingKeypair.publicKey);\n```\n\n#### Encrypt and decrypt data\n\nEncrypt Data on a Public Key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst encryptionKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToEncrypt = 'Hello, Bob!';\n\n// encrypt the message\nconst encryptedData = crypto.encrypt(messageToEncrypt, encryptionKeypair.publicKey);\n// encryptedData is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(encryptedData.toString('base64'));\n```\n\nDecrypt the encrypted data with a Private Key:\n\n```javascript\n// decrypt the encrypted data using a private key\nconst decryptedData = crypto.decrypt(encryptedData, encryptionKeypair.privateKey);\n\n// convert Buffer to string\nconst decryptedMessage = decryptedData.toString('utf8');\n```\n\nNeed more examples? Visit our [developer documentation](https://developer.virgilsecurity.com/docs/how-to#cryptography).\n  \n## Installation\n\n### NPM\n\nThis is a pre-release version, so for now you will need to specify the `@next` tag when installing\n\n```sh\nnpm install virgil-crypto@next\n```\n\n> **Important!** You will need Node.js version >=4 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n\n```html\n<script\nsrc=\"https://cdn.virgilsecurity.com/packages/javascript/crypto/3.0.0-alpha.7/virgil-crypto.browser.umd.min.js\"\nintegrity=\"sha256-WNkuyYQsH7duZbkvQwwMW0r3gKHPb5A4eOqa7Uy8moA=\"\ncrossorigin=\"anonymous\"></script>\n```\n\n## Docs\n- [Crypto Core Library](https://github.com/VirgilSecurity/virgil-crypto)\n- [More usage examples](https://developer.virgilsecurity.com/docs/how-to#cryptography)\n\n## License\nThis library is released under the [3-clause BSD License](LICENSE).\n\n## Support\nOur developer support team is here to help you.\n\nYou can find us on [Twitter](https://twitter.com/VirgilSecurity) or send us email support@VirgilSecurity.com.\n\nAlso, get extra help from our support team on [Slack](https://join.slack.com/t/VirgilSecurity/shared_invite/enQtMjg4MDE4ODM3ODA4LTc2OWQwOTQ3YjNhNTQ0ZjJiZDc2NjkzYjYxNTI0YzhmNTY2ZDliMGJjYWQ5YmZiOGU5ZWEzNmJiMWZhYWVmYTM).\n","browser":{"./src/node/api.ts":"./src/browser/api.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":"4.0.0 - 9.9999.9999"},"gitHead":"23fb1d5c4d2fdca440b7e5391b30b7df339680d5","scripts":{"test":"npm run test:node && npm run test:browser","build":"node scripts/rollup/build.js","version":"npm run build && node scripts/updateReadme.js && git add README.md","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-native-library.js","test:browser":"karma start"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.5.1","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg?branch=v2_0)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.0","prettier":"^1.4.4","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^3.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.7_1524243362919_0.288456757485563","host":"s3://npm-registry-packages"}},"3.0.0-alpha.8":{"name":"virgil-crypto","version":"3.0.0-alpha.8","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.8","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"927920167ea904365751141a39b41513651df584","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.8.tgz","fileCount":38,"integrity":"sha512-h0gbc3VHGAr9PjqomgI5RyKUJLxqkLdM15XSZJKPjLtTwCp/rWJXaNbdadmFDHC1MFUll4CiQ/ZGEI6HVaRr9Q==","signatures":[{"sig":"MEQCIFAv+wDaiRIL65unDr6l4gj/G0ipWF2iuVFEYlUmxs+kAiBcMob5ntK8YgTC8PcAGHBdp3O2T0KJKxyqi/bmXKzWlQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7588049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBatICRA9TVsSAnZWagAA3cwP/3P0yedkFH8xhIXoL77g\nMSuvOEIJhkZSP1DCyTDLNixKlj/RW3BERcNFKIHMsjLX3rdl6u2Ms41uYug1\nx51dRjFOzK1OzPLjnBJOGbGEB4/WM0q2Hyu28yj4KadG7dT5pSpnryZj4+rQ\n8XMnX3u2h/XEkgai/CcbKnOZ7pTe6EoAqsHU5IA1HQ+sfnxMI8h8IIGKh9rn\nS5Jy3sBg+421UEpcZSyr+2CphyB8dqgTY8NhJH1bOrGv8+00nY40p2vjpTHk\nlXiGeUCn8It3WdC/gVR7GAySV3SQhPQx+cQKE6tslZ3ryA8TmXVW5uMqEI29\n/RWd0zqmilldmk8z8vBpFe7FPWFbXliWrY13uE61oCGQqg8/LdJoGvIFFKI4\nBTHq0wBjIJ05Y3CtYHX5ARNAhGu8CJ+n25yy6E6uD6KuD+rAPBuaQxANZxUa\n03Kpn33ozOlA2bFa0d3mRiKz0DC5vqk2AWqk/i6zcmUcuHEQ1wBKLxeFE5xv\nEGbt4Ql0pBbRlyDJR/seyf+fPZcn9iCayL0zw7Sa3xuFTwnqtNzwFAQz2X5B\nufR8MigUDe8nJAVQok6d3aSh7+TkgnL0tvoiFv9937a052T4/jGhY7eUfJCg\nrSgMx1hYNSCwYm9zVoMnLfCDa6JaK498XTkp6C/btm+xnAolsJZKMTW8msaZ\ni3DL\r\n=xEO8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-native-library.js"],"module":"dist/virgil-crypto.es.js","readme":"# Virgil Security JavaScript Crypto Library \n[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) \n[![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n[![GitHub license](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE)\n\n### [Introduction](#introduction) | [Library purposes](#library-purposes) | [Usage examples](#usage-examples) | [Installation](#installation) | [Docs](#docs) | [License](#license) | [Contacts](#support)\n\n## Introduction\nVirgilCrypto is a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and an open-source high-level [cryptographic library](https://github.com/VirgilSecurity/virgil-crypto) that allows you to perform all necessary operations for securely storing and transferring data in your digital solutions. Crypto Library is written in C++ and is suitable for mobile and server platforms.\n\nVirgil Security, Inc., guides software developers into the forthcoming security world in which everything will be encrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of dollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now developers can instead focus on building features that give them a competitive market advantage while end-users can enjoy the privacy and security they increasingly demand.\n\n## Library purposes\n* Asymmetric Key Generation\n* Encryption/Decryption of data\n* Generation/Verification of digital signatures\n\n## Usage examples\n\n#### Generate a key pair\n\nGenerate a Private Key with the default algorithm (EC_X25519):\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst keyPair = crypto.generateKeys();\n```\n\n#### Generate and verify a signature\n\nGenerate signature and sign data with a private key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst signingKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToSign = 'Hello, Bob!';\n\n// generate a signature\nconst signature = crypto.calculateSignature(messageToSign, signingKeypair.privateKey);\n// signature is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(signature.toString('base64'));\n```\n\nVerify a signature with a public key:\n\n```javascript\n// verify a signature\nconst verified = crypto.verifySignature(messageToSign, signature, signingKeypair.publicKey);\n```\n\n#### Encrypt and decrypt data\n\nEncrypt Data on a Public Key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst encryptionKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToEncrypt = 'Hello, Bob!';\n\n// encrypt the message\nconst encryptedData = crypto.encrypt(messageToEncrypt, encryptionKeypair.publicKey);\n// encryptedData is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(encryptedData.toString('base64'));\n```\n\nDecrypt the encrypted data with a Private Key:\n\n```javascript\n// decrypt the encrypted data using a private key\nconst decryptedData = crypto.decrypt(encryptedData, encryptionKeypair.privateKey);\n\n// convert Buffer to string\nconst decryptedMessage = decryptedData.toString('utf8');\n```\n\nNeed more examples? Visit our [developer documentation](https://developer.virgilsecurity.com/docs/how-to#cryptography).\n  \n## Installation\n\n### NPM\n\nThis is a pre-release version, so for now you will need to specify the `@next` tag when installing\n\n```sh\nnpm install virgil-crypto@next\n```\n\n> **Important!** You will need Node.js version >= 4.5.0 < 5 or >= 6 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n\n```html\n<script src=\"https://unpkg.com/virgil-crypto@next/dist/virgil-crypto.browser.umd.min.js\"></script>\n<script>\n\t// here you can use the global variable `VirgilCrypto` as a namespace object,\n\t// containing all of module exports as properties\n\t\n\tvar virgilCrypto = new VirgilCrypto.VirgilCrypto();\n\tvar keyPair = virgilCrypto.generateKeys();\n\tconsole.log(keyPair);\n\t\n\t// note that you cannot declare a variable named `crypto` in\n\t// global scope (i.e. outside of any function) in browsers that \n\t// implement Web Crypto API\n</script>\n```\n\n## Docs\n- [Crypto Core Library](https://github.com/VirgilSecurity/virgil-crypto)\n- [More usage examples](https://developer.virgilsecurity.com/docs/how-to#cryptography)\n\n## License\nThis library is released under the [3-clause BSD License](LICENSE).\n\n## Support\nOur developer support team is here to help you.\n\nYou can find us on [Twitter](https://twitter.com/VirgilSecurity) or send us email support@VirgilSecurity.com.\n\nAlso, get extra help from our support team on [Slack](https://join.slack.com/t/VirgilSecurity/shared_invite/enQtMjg4MDE4ODM3ODA4LTc2OWQwOTQ3YjNhNTQ0ZjJiZDc2NjkzYjYxNTI0YzhmNTY2ZDliMGJjYWQ5YmZiOGU5ZWEzNmJiMWZhYWVmYTM).\n","browser":{"./src/node/api.ts":"./src/browser/api.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"8cdcabf6f46c997fda935f3aefc29b14e9cda9d4","scripts":{"docs":"typedoc src","test":"npm run test:node && npm run test:browser","build":"node scripts/rollup/build.js","version":"npm run build","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-node-addon.js","test:browser":"karma start","update-asmjs":"node scripts/download-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.0.1","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"10.1.0","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tar":"^4.4.2","chai":"^4.1.2","zlib":"^1.0.5","karma":"^2.0.0","mocha":"^5.0.5","tempy":"^0.2.1","yauzl":"^2.9.1","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.1","prettier":"^1.4.4","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","node-fetch":"^2.1.2","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^3.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.8_1527098184072_0.07868064558478727","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.4"},"3.0.0-alpha.9":{"name":"virgil-crypto","version":"3.0.0-alpha.9","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.9","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"65695a311b9f85e5a0693ad9d96cea5657345892","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.9.tgz","fileCount":39,"integrity":"sha512-6sDuvGRQYMm9k8jISU8htwu2gPK3P2HcwRiKbxLQZLer8yct586ss7P3I0P3g87q3Vq9j1D7YaTbdLj8hTeSRA==","signatures":[{"sig":"MEYCIQDoC31wrAAEFy+Jp47RcBX7uF9DBnvjuKqVtH4OVeMHpwIhAKVVB6uEsFbU0uwUOdH3v478Mh+aOaLYYjfFlf4qnOGJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7644778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBrJFCRA9TVsSAnZWagAAv1EP/RVWxNG6HmeOXFtnHtTs\nuBcPo3/afhsVo64/7e0FkWucxFP1RBDNE80s8ii+NE5K+Q39X5NHNzT7KAi6\nLEJnBVivFaBXqnYqmmhVG29vojK8s3Dqw+palSVkQvZbjj1hZoZXKYLte7nI\ngQecmIfEN0+yNx2xcMA9TJ309XWW8j/h7Rk/z/bGQIRslJ/E81dhsBqW0z9U\nML+Xf2wdJehwdTA02nC4AWTBC8vE+UUD6P6CrQBVWIx8csOhvIm1qgOBomzZ\nlGTrZxY+zBiZSd4P7r/wnMkuJ27w1cX9446Pihg2DzAfXnQZ5EimAYei/2iz\n0nlws1RaMQZbTFz680RsMlWWrrOkv7kbgTo++DNuh+3lOodu7CJj1WH557sm\nMu5WryMLQCGP020ENfT7Vgj4059rrpjQmEEYDFlxqGd4cTLrxhVWZC0V11Hc\nhPm/dmffuEDheLS5OrRDzwfcD30fc8CcQiUFDiCWk5KaiNpoBwtaaF4aeL79\ndzJiM9r3tpwUVBZzkYuDpcKP3YW6IHinQg3jrOF0Qs8c9GXyOH7nEXJnz4Jm\nnwS2oxdOHpiT0fNo4VArukpmXeborMaD3o3TGLLTpDSPNE8UZZG0UyHguhXl\nULHAS4/VQ1xdjYVayy9G/fepbtQgPgT78VQ8M8SkEJBrsSvm6+cFXdW/Ucri\nhR2h\r\n=9lND\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-node-addon.js"],"module":"dist/virgil-crypto.es.js","readme":"# Virgil Security JavaScript Crypto Library \n[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) \n[![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n[![GitHub license](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE)\n\n### [Introduction](#introduction) | [Library purposes](#library-purposes) | [Usage examples](#usage-examples) | [Installation](#installation) | [Docs](#docs) | [License](#license) | [Contacts](#support)\n\n## Introduction\nVirgilCrypto is a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and an open-source high-level [cryptographic library](https://github.com/VirgilSecurity/virgil-crypto) that allows you to perform all necessary operations for securely storing and transferring data in your digital solutions. Crypto Library is written in C++ and is suitable for mobile and server platforms.\n\nVirgil Security, Inc., guides software developers into the forthcoming security world in which everything will be encrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of dollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now developers can instead focus on building features that give them a competitive market advantage while end-users can enjoy the privacy and security they increasingly demand.\n\n## Library purposes\n* Asymmetric Key Generation\n* Encryption/Decryption of data\n* Generation/Verification of digital signatures\n\n## Usage examples\n\n#### Generate a key pair\n\nGenerate a Private Key with the default algorithm (EC_X25519):\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst keyPair = crypto.generateKeys();\n```\n\n#### Generate and verify a signature\n\nGenerate signature and sign data with a private key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst signingKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToSign = 'Hello, Bob!';\n\n// generate a signature\nconst signature = crypto.calculateSignature(messageToSign, signingKeypair.privateKey);\n// signature is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(signature.toString('base64'));\n```\n\nVerify a signature with a public key:\n\n```javascript\n// verify a signature\nconst verified = crypto.verifySignature(messageToSign, signature, signingKeypair.publicKey);\n```\n\n#### Encrypt and decrypt data\n\nEncrypt Data on a Public Key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst encryptionKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToEncrypt = 'Hello, Bob!';\n\n// encrypt the message\nconst encryptedData = crypto.encrypt(messageToEncrypt, encryptionKeypair.publicKey);\n// encryptedData is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(encryptedData.toString('base64'));\n```\n\nDecrypt the encrypted data with a Private Key:\n\n```javascript\n// decrypt the encrypted data using a private key\nconst decryptedData = crypto.decrypt(encryptedData, encryptionKeypair.privateKey);\n\n// convert Buffer to string\nconst decryptedMessage = decryptedData.toString('utf8');\n```\n\nNeed more examples? Visit our [developer documentation](https://developer.virgilsecurity.com/docs/how-to#cryptography).\n  \n## Installation\n\n### NPM\n\nThis is a pre-release version, so for now you will need to specify the `@next` tag when installing\n\n```sh\nnpm install virgil-crypto@next\n```\n\n> **Important!** You will need Node.js version >= 4.5.0 < 5 or >= 6 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n\n```html\n<script src=\"https://unpkg.com/virgil-crypto@next/dist/virgil-crypto.browser.umd.min.js\"></script>\n<script>\n\t// here you can use the global variable `VirgilCrypto` as a namespace object,\n\t// containing all of module exports as properties\n\t\n\tvar virgilCrypto = new VirgilCrypto.VirgilCrypto();\n\tvar keyPair = virgilCrypto.generateKeys();\n\tconsole.log(keyPair);\n\t\n\t// note that you cannot declare a variable named `crypto` in\n\t// global scope (i.e. outside of any function) in browsers that \n\t// implement Web Crypto API\n</script>\n```\n\n## Docs\n- [Crypto Core Library](https://github.com/VirgilSecurity/virgil-crypto)\n- [More usage examples](https://developer.virgilsecurity.com/docs/how-to#cryptography)\n\n## License\nThis library is released under the [3-clause BSD License](LICENSE).\n\n## Support\nOur developer support team is here to help you.\n\nYou can find us on [Twitter](https://twitter.com/VirgilSecurity) or send us email support@VirgilSecurity.com.\n\nAlso, get extra help from our support team on [Slack](https://join.slack.com/t/VirgilSecurity/shared_invite/enQtMjg4MDE4ODM3ODA4LTc2OWQwOTQ3YjNhNTQ0ZjJiZDc2NjkzYjYxNTI0YzhmNTY2ZDliMGJjYWQ5YmZiOGU5ZWEzNmJiMWZhYWVmYTM).\n","browser":{"./src/node/api.ts":"./src/browser/api.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"7c9e37aaccbbba6fa9bbd17195fe9a91d6daf534","scripts":{"docs":"typedoc src","test":"npm run test:node && npm run test:browser","build":"node scripts/rollup/build.js","version":"npm run build","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-node-addon.js","test:browser":"karma start","update-asmjs":"node scripts/download-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.6.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tar":"^4.4.2","chai":"^4.1.2","zlib":"^1.0.5","karma":"^2.0.0","mocha":"^5.0.5","tempy":"^0.2.1","yauzl":"^2.9.1","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.1","prettier":"^1.4.4","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","node-fetch":"^2.1.2","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^3.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.9_1527165508502_0.1329868496072324","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.4"},"3.0.0-alpha.10":{"name":"virgil-crypto","version":"3.0.0-alpha.10","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.10","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"26851e0e89bc955ebf00ab4da670e4c2214c13b4","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.10.tgz","fileCount":44,"integrity":"sha512-E93ssDXzhvEq/UaYF5fQRCqHBEa4f6qRKjXVwUIpnohnPzcvvmkntPMOK2Df9eYRcC6NR+4ErZ0/e4bJFqFDlw==","signatures":[{"sig":"MEYCIQC1rN8wW+zjpu4tbhFr0Bv+otCAXnAKG9hTzYqi1He/gwIhAKx1yy650/2aWW02LIyl0UvV0kC6S+nc6xxYSrj/3T1e","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7649470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBrcJCRA9TVsSAnZWagAARJEQAI2KXuVNmMIoWanFOxc6\nRggK9yoMdbqrrS7sBmsjofHEQa5sXX8v0bHUMnTZQScgPcRqB8YwlXZuEgvf\nc5QA413HyiK0BQmiIgIQTup58me9rMsTpWQ29FjybTfEehXIQaUbdbqmpLx+\nbk5Lry9SW+5rhdwGPl4bZFRtXYBAP6XU4llAqeRKiSQkz9oy44Hy/IMYIvL/\nndfZGx3evlpQ+OxfnKEWDoVSkFSE5g2l+/WFbwW+gbV8jt+rKpm/x7G/71aO\nGkQwn8sS/v+glxRd/OVKWmDrIFV1DzwH8LBaxRfyOr6qLTk93gKblSHtmwGN\nn5UTA4FATcUvSb9Kl1pnwJAuNQcGrp9i/oFGLKzx2iFUNV205i6/sG+wApIv\nOyzOYp5YguEQPMemNiLbvsBbM2SMbpuzKa2FvYG1APccCnIQy3UGaQG8bF/f\neoCNwTuCnYd4Yc/GWHmXTCBbZD54QlEGM1LjkiaxBw5FdobjGj86tH7Gupzg\n9lOzwaixnZcDd9kVWGwJ757w94cEsn9uLo2zUPNQbrGjf9+LxQhZ+aY4SJa4\nnvQmGgtS4b5EU9t43cFdJkPpBvozi1kMA0cmvcYPjCTH0UVCXTaG8uJon0h0\nJprHORdic2fY0RTKrbYlHL1C7DdCbTlSNZgB/5BOz8ceILgFhmkXtB+T3Krd\noKUV\r\n=tgoD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-node-addon.js","scripts/helpers/"],"module":"dist/virgil-crypto.es.js","readme":"# Virgil Security JavaScript Crypto Library \n[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) \n[![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n[![GitHub license](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE)\n\n### [Introduction](#introduction) | [Library purposes](#library-purposes) | [Usage examples](#usage-examples) | [Installation](#installation) | [Docs](#docs) | [License](#license) | [Contacts](#support)\n\n## Introduction\nVirgilCrypto is a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and an open-source high-level [cryptographic library](https://github.com/VirgilSecurity/virgil-crypto) that allows you to perform all necessary operations for securely storing and transferring data in your digital solutions. Crypto Library is written in C++ and is suitable for mobile and server platforms.\n\nVirgil Security, Inc., guides software developers into the forthcoming security world in which everything will be encrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of dollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now developers can instead focus on building features that give them a competitive market advantage while end-users can enjoy the privacy and security they increasingly demand.\n\n## Library purposes\n* Asymmetric Key Generation\n* Encryption/Decryption of data\n* Generation/Verification of digital signatures\n\n## Usage examples\n\n#### Generate a key pair\n\nGenerate a Private Key with the default algorithm (EC_X25519):\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst keyPair = crypto.generateKeys();\n```\n\n#### Generate and verify a signature\n\nGenerate signature and sign data with a private key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst signingKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToSign = 'Hello, Bob!';\n\n// generate a signature\nconst signature = crypto.calculateSignature(messageToSign, signingKeypair.privateKey);\n// signature is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(signature.toString('base64'));\n```\n\nVerify a signature with a public key:\n\n```javascript\n// verify a signature\nconst verified = crypto.verifySignature(messageToSign, signature, signingKeypair.publicKey);\n```\n\n#### Encrypt and decrypt data\n\nEncrypt Data on a Public Key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst encryptionKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToEncrypt = 'Hello, Bob!';\n\n// encrypt the message\nconst encryptedData = crypto.encrypt(messageToEncrypt, encryptionKeypair.publicKey);\n// encryptedData is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(encryptedData.toString('base64'));\n```\n\nDecrypt the encrypted data with a Private Key:\n\n```javascript\n// decrypt the encrypted data using a private key\nconst decryptedData = crypto.decrypt(encryptedData, encryptionKeypair.privateKey);\n\n// convert Buffer to string\nconst decryptedMessage = decryptedData.toString('utf8');\n```\n\nNeed more examples? Visit our [developer documentation](https://developer.virgilsecurity.com/docs/how-to#cryptography).\n  \n## Installation\n\n### NPM\n\nThis is a pre-release version, so for now you will need to specify the `@next` tag when installing\n\n```sh\nnpm install virgil-crypto@next\n```\n\n> **Important!** You will need Node.js version >= 4.5.0 < 5 or >= 6 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n\n```html\n<script src=\"https://unpkg.com/virgil-crypto@next/dist/virgil-crypto.browser.umd.min.js\"></script>\n<script>\n\t// here you can use the global variable `VirgilCrypto` as a namespace object,\n\t// containing all of module exports as properties\n\t\n\tvar virgilCrypto = new VirgilCrypto.VirgilCrypto();\n\tvar keyPair = virgilCrypto.generateKeys();\n\tconsole.log(keyPair);\n\t\n\t// note that you cannot declare a variable named `crypto` in\n\t// global scope (i.e. outside of any function) in browsers that \n\t// implement Web Crypto API\n</script>\n```\n\n## Docs\n- [API Reference](http://virgilsecurity.github.io/virgil-crypto-javascript/)\n- [Crypto Core Library](https://github.com/VirgilSecurity/virgil-crypto)\n- [More usage examples](https://developer.virgilsecurity.com/docs/how-to#cryptography)\n\n## License\nThis library is released under the [3-clause BSD License](LICENSE).\n\n## Support\nOur developer support team is here to help you.\n\nYou can find us on [Twitter](https://twitter.com/VirgilSecurity) or send us email support@VirgilSecurity.com.\n\nAlso, get extra help from our support team on [Slack](https://join.slack.com/t/VirgilSecurity/shared_invite/enQtMjg4MDE4ODM3ODA4LTc2OWQwOTQ3YjNhNTQ0ZjJiZDc2NjkzYjYxNTI0YzhmNTY2ZDliMGJjYWQ5YmZiOGU5ZWEzNmJiMWZhYWVmYTM).\n","browser":{"./src/node/api.ts":"./src/browser/api.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"dbd383e1674d355b381668950ca2bea170c98b74","scripts":{"docs":"typedoc src","test":"npm run test:node && npm run test:browser","build":"node scripts/rollup/build.js","version":"npm run build","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-node-addon.js","test:browser":"karma start","update-asmjs":"node scripts/download-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.6.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tar":"^4.4.2","chai":"^4.1.2","zlib":"^1.0.5","karma":"^2.0.0","mocha":"^5.0.5","tempy":"^0.2.1","yauzl":"^2.9.1","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.1","prettier":"^1.4.4","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","node-fetch":"^2.1.2","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^3.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.10_1527166728673_0.8702497446161306","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.4"},"3.0.0-alpha.11":{"name":"virgil-crypto","version":"3.0.0-alpha.11","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.11","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"0efa447336117899ff79d0654bcd69e2a9deb03a","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.11.tgz","fileCount":44,"integrity":"sha512-wcbuvKmb8yU9oGWQnT6ouBUeKCzDUKFdaYzpL4whW0qT4b/j5ZFUhTldPT0aYvNi0b2qUaqzfObQIpSMrrMcZQ==","signatures":[{"sig":"MEYCIQDKoffvYSrWQFKYfzrIsFn3e8p7jXhiiKLCYWUbmCOPqwIhAKGOI9/RLhqXLeNwGgdJc5nZpPmdnE+XBvAtgIWFYOzY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7649450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBsEeCRA9TVsSAnZWagAA2UIQAIrABIDGqqeNwtlRUJJY\n6ojppYsPbnF7qhElyM5rGM6jk9Ha8kiLewk003cKet0Rw+BBWxbGNozSKjFI\nrJGkFlvixCTeG8Udx2HZl3yMHrqZ2LJp+a9UBrWZYqn779R+m8knyjjscZIP\nTAWawwpEC+fvmB+V3zEatple3rqGcmIVwf5kspzQ02NbBTUHo8KWB6slLUPq\nVltJmQ4QVxAWvJhEmXRN2NwjVM60JxvXwhpIWGV0amGiBBamBcyZH1lLjNNG\nY3IWmtaHdDNbHo3XEFScUnR461YfsV3oZtAdsvnkMj+RwGnzw7t1R81wPa2M\n9oOdhg4pkbU1G7p6xh+EwoKcL4jLXsXb0u/XqlO/wBusyXkdTOnHmufjpsOx\n4zEvPENtyWHHDlZMZEm8wTq9EJS+JYxkE/IgY9+SN4FK0QpSrSHrhtYJSe6I\nsL8nq7tLc6NHbahxl//rNWoWpiTk/al+XHtC+ZnDiO1JQKO8o/aaQjsPRnCF\nHwHlVeivjfz12Ca6IitaDTmlmqtWLwuQllITnuvzl+MczGYwfJDa6ktdafUL\nCFu8XTXqSst+qwmFpAaXXwNiHEJAgdc6si8EDabc7vTtc4T46BGdAZW5+3rR\ntKuUl8va8M2qw+cXR98s5smKQYBEaA4eGwqV5tp3ucZOpviQHg4wrWcVMYyY\nFpnr\r\n=einR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-node-addon.js","scripts/helpers/"],"module":"dist/virgil-crypto.es.js","readme":"# Virgil Security JavaScript Crypto Library \n[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) \n[![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n[![GitHub license](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE)\n\n### [Introduction](#introduction) | [Library purposes](#library-purposes) | [Usage examples](#usage-examples) | [Installation](#installation) | [Docs](#docs) | [License](#license) | [Contacts](#support)\n\n## Introduction\nVirgilCrypto is a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and an open-source high-level [cryptographic library](https://github.com/VirgilSecurity/virgil-crypto) that allows you to perform all necessary operations for securely storing and transferring data in your digital solutions. Crypto Library is written in C++ and is suitable for mobile and server platforms.\n\nVirgil Security, Inc., guides software developers into the forthcoming security world in which everything will be encrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of dollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now developers can instead focus on building features that give them a competitive market advantage while end-users can enjoy the privacy and security they increasingly demand.\n\n## Library purposes\n* Asymmetric Key Generation\n* Encryption/Decryption of data\n* Generation/Verification of digital signatures\n\n## Usage examples\n\n#### Generate a key pair\n\nGenerate a Private Key with the default algorithm (EC_X25519):\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst keyPair = crypto.generateKeys();\n```\n\n#### Generate and verify a signature\n\nGenerate signature and sign data with a private key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst signingKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToSign = 'Hello, Bob!';\n\n// generate a signature\nconst signature = crypto.calculateSignature(messageToSign, signingKeypair.privateKey);\n// signature is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(signature.toString('base64'));\n```\n\nVerify a signature with a public key:\n\n```javascript\n// verify a signature\nconst verified = crypto.verifySignature(messageToSign, signature, signingKeypair.publicKey);\n```\n\n#### Encrypt and decrypt data\n\nEncrypt Data on a Public Key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst crypto = new VirgilCrypto();\nconst encryptionKeypair = crypto.generateKeys();\n\n// prepare a message\nconst messageToEncrypt = 'Hello, Bob!';\n\n// encrypt the message\nconst encryptedData = crypto.encrypt(messageToEncrypt, encryptionKeypair.publicKey);\n// encryptedData is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(encryptedData.toString('base64'));\n```\n\nDecrypt the encrypted data with a Private Key:\n\n```javascript\n// decrypt the encrypted data using a private key\nconst decryptedData = crypto.decrypt(encryptedData, encryptionKeypair.privateKey);\n\n// convert Buffer to string\nconst decryptedMessage = decryptedData.toString('utf8');\n```\n\nNeed more examples? Visit our [developer documentation](https://developer.virgilsecurity.com/docs/how-to#cryptography).\n  \n## Installation\n\n### NPM\n\nThis is a pre-release version, so for now you will need to specify the `@next` tag when installing\n\n```sh\nnpm install virgil-crypto@next\n```\n\n> **Important!** You will need Node.js version >= 4.5.0 < 5 or >= 6 to use virgil-crypto.\nIf you have a different version, you can use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n\n```html\n<script src=\"https://unpkg.com/virgil-crypto@next/dist/virgil-crypto.browser.umd.min.js\"></script>\n<script>\n\t// here you can use the global variable `VirgilCrypto` as a namespace object,\n\t// containing all of module exports as properties\n\t\n\tvar virgilCrypto = new VirgilCrypto.VirgilCrypto();\n\tvar keyPair = virgilCrypto.generateKeys();\n\tconsole.log(keyPair);\n\t\n\t// note that you cannot declare a variable named `crypto` in\n\t// global scope (i.e. outside of any function) in browsers that \n\t// implement Web Crypto API\n</script>\n```\n\n## Docs\n- [API Reference](http://virgilsecurity.github.io/virgil-crypto-javascript/)\n- [Crypto Core Library](https://github.com/VirgilSecurity/virgil-crypto)\n- [More usage examples](https://developer.virgilsecurity.com/docs/how-to#cryptography)\n\n## License\nThis library is released under the [3-clause BSD License](LICENSE).\n\n## Support\nOur developer support team is here to help you.\n\nYou can find us on [Twitter](https://twitter.com/VirgilSecurity) or send us email support@VirgilSecurity.com.\n\nAlso, get extra help from our support team on [Slack](https://join.slack.com/t/VirgilSecurity/shared_invite/enQtMjg4MDE4ODM3ODA4LTc2OWQwOTQ3YjNhNTQ0ZjJiZDc2NjkzYjYxNTI0YzhmNTY2ZDliMGJjYWQ5YmZiOGU5ZWEzNmJiMWZhYWVmYTM).\n","browser":{"./src/node/api.ts":"./src/browser/api.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"349febb99937908936aba872bbb9694070533296","scripts":{"docs":"typedoc src","test":"npm run test:node && npm run test:browser","build":"node scripts/rollup/build.js","version":"npm run build","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-node-addon.js","test:browser":"karma start","update-asmjs":"node scripts/download-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.6.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{"tar":"^4.4.2","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.1","prettier":"^1.4.4","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^3.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.11_1527169310153_0.6737776507744591","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.4"},"3.0.0-alpha.12":{"name":"virgil-crypto","version":"3.0.0-alpha.12","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.12","maintainers":[{"name":"virgilsecurity","email":"boo1ean0807@yandex.ru"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"b72c09b92fb9b6f0c345bb26e9f26c8f1efe481e","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.12.tgz","fileCount":44,"integrity":"sha512-ce2QOmO8DWUCgvOGjlPx2MhA/2/9Ke7rBFbYWj2WrB3V6gW3Tgm9b5BExW/yNiY2bEw53WkBDEw+ZC8W1epZAQ==","signatures":[{"sig":"MEQCIA1gd4VNkztEcHr67oNJza4yT2Lj0K02ALsvl1v7kRDzAiBuIfqMLrTpNyqtQFGOyBoay3/mlYm3ze26ggwMTkIheg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7649434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFpnaCRA9TVsSAnZWagAA0hoP+gPSKjcGZUkm7GSoI+pv\nPDymljo88INUORG9tB6g8ZM16GoYQVDKY6/eas3USAEjYMoaRj00PrnNmIGu\nCnuKUob1uqsq+0jbJ2eZycyjCSD5f2vaL1wQN35aQF2CzK18kS8QzDQrCZQ+\ndSXFMK8UwfT+RkYaZle2RlKMT5aNlxZljqeplC4+DDwma6tTOj7E1EN150QR\n1ycclk4SXRKb+5BItV7SU8F2PXSNvW+yORankkwex9VaI8RdH0OpXZpdgsbU\ndeWudaPHXqtXT01FZOINyO9qUnGzZYrT17XVGNVsq9NLbQhGawuUfzlbfm1r\nj8PS90902rs4yvx7b4zQXPOdAGpPCqgyrW6pl/4uxhvE2yu4yGKg1kDaq6VY\nDKgNCEfIJk1S9HG4I29HoKUTBKyHxZ1m6dzhLOOrR1JGdbylHcKDftRHTL7A\nx8GTjHlXozWmZ+ChI8kQSPpx72GzT+Jm0CRelQAs8NwlgPQeUgVb8m2vz9IL\nrMksugVs5pRk0cYk//8hkMcl4LWvi5mxwslX7WyZJgBNCLAL9+QWg33zC+Fw\nH8YWhmpa8ykpvhMeG/9eHaRLety0LIc44+nKdOLrvsRico7Jn7Ppg321NJe1\nbUtpfq9/RM2OlKF8YrOtWoxaUOxUgg1ZF7cXobAnn4Hw7wHiCwLnN09liuD3\ni+ss\r\n=4zgL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-node-addon.js","scripts/helpers/"],"module":"dist/virgil-crypto.es.js","browser":{"./src/node/api.ts":"./src/browser/api.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"c25a295e396f668f573fe4a115ebddcc05bb8382","scripts":{"docs":"typedoc src","test":"npm run test:node && npm run test:browser","build":"node scripts/rollup/build.js","version":"npm run build","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run test","postinstall":"node scripts/download-node-addon.js","test:browser":"karma start","update-asmjs":"node scripts/download-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"virgilsecurity","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.6.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{"tar":"^4.4.2","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.1","prettier":"^1.4.4","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^3.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.12_1528207833633_0.8467014759735669","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.4"},"3.0.0-alpha.13":{"name":"virgil-crypto","version":"3.0.0-alpha.13","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.13","maintainers":[{"name":"sun1x","email":"sergey.nanovsky@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"f0a60df570170fbfbdb8c0c1e1e0494fab89c20b","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.13.tgz","fileCount":61,"integrity":"sha512-+htVKtvlUJOsRpyNhX/4RVsLHzW/ulxiNJPmbhoQuigO9cNNtfiNUuVtcvWruPf3socNe0A6m5755KmoRMmXig==","signatures":[{"sig":"MEYCIQCKKNWwlztein3ZzGXZwvR40eYPk2LOCUs8n9BP0MuxgAIhAMbEJTxTHW6Nh4RboAeUkrgch8rftrA8Ce0I6+C28oSd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23082335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbMlGCCRA9TVsSAnZWagAAltwP+QEHf6Q+envgWAIos37P\neJdLlPkZua4Qa798KQ8Jofuk4R2mjq8Zg8536HaQOLk8mIVrMkTTFTFI82Kl\ngrDHcgW2fRVXQlHJicPkfiGd4o6kgRXEuKgjBwYaqhaLD/ZHGL+pNDvuGJsh\nDi3tfsf7A6cMHwlI/8p35HsQY9VmM2bww0Q33PPuZNuk+qJ2BUVlns18Xrv5\nf2UYOvbhBfSVRhrYHcpkQyAphp705Cbn2c9MENiL3WeDakwAISbf+pDh5QU6\nrFEDSow4i3CJF67HJFWcrzh9Bgk8cAe4QVuhSBrmzEV1Lmn3AvFScsQ0eRp0\nDiC36LF/8LHhhhXGC94Z1+5hrIsEwmXhyowLZGtYiSvtsf73pw1BAvBJv3oy\n/lYZ+ncL+zNulnZvedg+0XTaCAxy2jHS7PtmKyhnpBL66cBuDMd9huobaefO\n8KVhlox8CIETbgxQAfSMcXghF28XAfTGbNNMOIaGuJI9lcjN2/TvpjXwaASN\n6YmbNbQmFJmPuyOrP+s4Y8kVaV1+ybWENAxiBkD0KCDSYCxM3vS323bWN+F9\nPIPc9ERUYxFhjERNj5z8RGhfnqOwIbcL41UQhKjD2cfISdIx84bzKLf0lKNR\ng90uY+ccEtBOhrA48QJg+G8YbtpQJQXgLPnHBcvbUxV/xLo/hHcR1dT5qw9x\n9WAt\r\n=RCaJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-node-addon.js","scripts/helpers/"],"module":"dist/virgil-crypto.es.js","readme":"# Virgil Security JavaScript Crypto Library \n\n[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) \n[![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n[![GitHub license](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE)\n\n### [Introduction](#introduction) | [Library purposes](#library-purposes) | [Usage examples](#usage-examples) | [Installation](#installation) | [Docs](#docs) | [License](#license) | [Contacts](#support)\n\n## Introduction\nVirgilCrypto is a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and an open-source high-level [cryptographic library](https://github.com/VirgilSecurity/virgil-crypto) that allows you to perform all necessary operations for securely storing and transferring data in your digital solutions. Crypto Library is written in C++ and is suitable for mobile and server platforms.\n\nVirgil Security, Inc., guides software developers into the forthcoming security world in which everything will be encrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of dollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now developers can instead focus on building features that give them a competitive market advantage while end-users can enjoy the privacy and security they increasingly demand.\n\n## Library purposes\n* Asymmetric Key Generation\n* Encryption/Decryption of data\n* Generation/Verification of digital signatures\n\n## Usage examples\n\n#### Generate a key pair\n\nGenerate a Private Key with the default algorithm (EC_X25519):\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst virgilCrypto = new VirgilCrypto();\nconst keyPair = virgilCrypto.generateKeys();\n```\n\n#### Generate and verify a signature\n\nGenerate signature and sign data with a private key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst virgilCrypto = new VirgilCrypto();\nconst signingKeypair = virgilCrypto.generateKeys();\n\n// prepare a message\nconst messageToSign = 'Hello, Bob!';\n\n// generate a signature\nconst signature = virgilCrypto.calculateSignature(messageToSign, signingKeypair.privateKey);\n// signature is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(signature.toString('base64'));\n```\n\nVerify a signature with a public key:\n\n```javascript\n// verify a signature\nconst verified = virgilCrypto.verifySignature(messageToSign, signature, signingKeypair.publicKey);\n```\n\n#### Encrypt and decrypt data\n\nEncrypt Data on a Public Key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst virgilCrypto = new VirgilCrypto();\nconst encryptionKeypair = virgilCrypto.generateKeys();\n\n// prepare a message\nconst messageToEncrypt = 'Hello, Bob!';\n\n// encrypt the message\nconst encryptedData = virgilCrypto.encrypt(messageToEncrypt, encryptionKeypair.publicKey);\n// encryptedData is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(encryptedData.toString('base64'));\n```\n\nDecrypt the encrypted data with a Private Key:\n\n```javascript\n// decrypt the encrypted data using a private key\nconst decryptedData = virgilCrypto.decrypt(encryptedData, encryptionKeypair.privateKey);\n\n// convert Buffer to string\nconst decryptedMessage = decryptedData.toString('utf8');\n```\n\nNeed more examples? Visit our [developer documentation](https://developer.virgilsecurity.com/docs/how-to#cryptography).\n  \n## Installation\n\n### NPM\n\nThis is a pre-release version, so for now you will need to specify the `@next` tag when installing\n\n```sh\nnpm install virgil-crypto@next\n```\n\n> **Important!** You will need Node.js version >= 4.5.0 < 5 or >= 6 to use virgil-crypto.\nIf you have a different version, consider upgrading, or use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n\n```html\n<script src=\"https://unpkg.com/virgil-crypto@next/dist/virgil-crypto.browser.umd.min.js\"></script>\n<script>\n\t// here you can use the global variable `VirgilCrypto` as a namespace object,\n\t// containing all of module exports as properties\n\t\n\tvar virgilCrypto = new VirgilCrypto.VirgilCrypto();\n\tvar keyPair = virgilCrypto.generateKeys();\n\tconsole.log(keyPair);\n\t\n\t// note that you cannot declare a variable named `crypto` in\n\t// global scope (i.e. outside of any function) in browsers that \n\t// implement Web Crypto API\n</script>\n```\n\n## Pythia\n\nSupport for [Pythia](https://virgilsecurity.com/wp-content/uploads/2018/05/Pythia-Service-by-Virgil-Security-Whitepaper-May-2018.pdf) algorithms is considered experimental.\n\n### Usage\n\nIn Node.js:\n\n```js\nconst { VirgilPythiaCrypto } = require('virgil-crypto/dist/virgil-crypto-pythia.cjs');\n\nconst virgilPythiaCrypto = new VirgilPythiaCrypto();\n\nconst tweak = Buffer.from('my_tweak');\nconst { blindingSecret, blindedPassword } = virgilPythia.blind('pa$$w0rd');\n\nconst transformationKeyPair = virgilPythia.computeTransformationKeyPair({\n\ttransformationKeyId: Buffer.from('my_transformation_key_id'),\n\tpythiaSecret: Buffer.from('my_pythia_secret'),\n\tpythiaScopeSecret: Buffer.from('my_pythia_scope_secret')\n});\n\nconst { transformedPassword, transformedTweak } = virgilPythia.transform({\n\tblindedPassword,\n\ttweak,\n\ttransformationPrivateKey: transformationKeyPair.privateKey\n});\n\nconst { proofValueC, proofValueU } = virgilPythia.prove({\n\ttransformedPassword,\n\tblindedPassword,\n\ttransformedTweak,\n\ttransformationKeyPair\n});\n\nconst verified = virgilPythia.verify({\n\ttransformedPassword,\n\tblindedPassword,\n\ttweak,\n\ttransformationPublicKey: transformationKeyPair.publicKey,\n\tproofValueC,\n\tproofValueU\n});\n\nconsole.log(verified);\n\nconst deblinded = virgilPythia.deblind({\n\ttransformedPassword,\n\tblindingSecret\n});\n\nconsole.log(deblinded);\n```\n\nFor browser example, see [examples/virgil-pythia.html](./examples/virgil-pythia.html).\n\n## Docs\n- [API Reference](http://virgilsecurity.github.io/virgil-crypto-javascript/)\n- [Crypto Core Library](https://github.com/VirgilSecurity/virgil-crypto)\n- [More usage examples](https://developer.virgilsecurity.com/docs/how-to#cryptography)\n\n## License\nThis library is released under the [3-clause BSD License](LICENSE).\n\n## Support\nOur developer support team is here to help you.\n\nYou can find us on [Twitter](https://twitter.com/VirgilSecurity) or send us email support@VirgilSecurity.com.\n\nAlso, get extra help from our support team on [Slack](https://join.slack.com/t/VirgilSecurity/shared_invite/enQtMjg4MDE4ODM3ODA4LTc2OWQwOTQ3YjNhNTQ0ZjJiZDc2NjkzYjYxNTI0YzhmNTY2ZDliMGJjYWQ5YmZiOGU5ZWEzNmJiMWZhYWVmYTM).\n","browser":{"./src/node/wrapper.ts":"./src/browser/wrapper.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./src/pythia/node/wrapper.ts":"./src/pythia/browser/wrapper.ts","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"7c9c98ecab2c26e33f5c7b82ef9802dbbeb6b733","scripts":{"docs":"typedoc src","test":"npm run test:node && npm run test:browser","build":"node scripts/rollup/build.js","version":"npm run build","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run update:node && npm run update:asmjs && npm run test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.6.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{"tar":"^4.4.2","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.1","prettier":"^1.4.4","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^3.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.13_1530024322152_0.5585347484447332","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.6"},"3.0.0-alpha.14":{"name":"virgil-crypto","version":"3.0.0-alpha.14","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0-alpha.14","maintainers":[{"name":"sun1x","email":"sergey.nanovsky@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"b2ea09c9cf68f08d3a0b71a935764c50e1ae3c41","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0-alpha.14.tgz","fileCount":62,"integrity":"sha512-NnLwaL2xziGWtsydVTwyGx4a0b+/AIFoAjqD9tf624OR6fEauxOHTwbZp2dchYPRPFuB6W8wWrCvSpQ8KU18bg==","signatures":[{"sig":"MEUCIQCeg8nLegr3vS9p2piM2LK5CJV1Lmn+6UzbAxaNk+f0YwIgWV24LyA1Sb3TmnnKxqyMnNXtz2Ma7oiX9VjNz01TvTs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23129342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPircCRA9TVsSAnZWagAAko8P/R3H0U6f5LOVZ4UyfUnQ\nVTTT5ShHTHTXdzhrr0sVt+XSngq2o/Ua3ouT07QCkPth8w794BND9j9JFyZ/\napk+DaPRu2IHKssieKjX5c+W66GuG9on46n0Vt3N71lDphWv1ZB52k/X7hEi\ntp5AGGvZKVrj7Se9YCSO7b/XvTsrIcRuKAXzoN0/dLhrLYHScnZs4Op7igzp\nKWtc2UWeL1OS3wSRUy9ir+n4FYxcaf72a2QoBUMXptjvJkEdbGOFA5QtoI3D\nQ0vk3Mw+hgY2olaTJEwPMJxZ0Av2cU/F2UQC+pzoGQi9vqWdawGmGXEfkEQc\n5/bEHyB3SzP41FKV1WS2+XOctfxLZca2EzWkb3bKB7eq2seoTXjSLeJyCFiV\nQUh3xggwpi/++hrJOaLZIEA+qp+bjPyo/ha+eijAZDPheMYg3mQhtc0V2QgG\nlz4hZGFBQcdu30549AbadHTAicTDi8EX3RdJIdZZPkWdZdF08t3cLPlDa3CV\nmNoRgFmx+J7zGC8O+uxl1k1q+MpC+dYmhd47ClZymjE9JAUfE0cqy9JNABV2\n1WE+PD3qC8J7lziJ5ywf7ltjA2atctvq/2RuzyiZ+J308KMtU6nLJFnwn6Vv\nT3gDpy6xa+/Vv4w3k5l5mHFb6i/N29zqbS3JNR7a6vR5Pne3PgTfx0C+g/ea\ngP1T\r\n=Kl52\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-node-addon.js","scripts/helpers/"],"module":"dist/virgil-crypto.es.js","readme":"# Virgil Security JavaScript Crypto Library \n\n[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript) \n[![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n[![GitHub license](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE)\n\n### [Introduction](#introduction) | [Library purposes](#library-purposes) | [Usage examples](#usage-examples) | [Installation](#installation) | [Docs](#docs) | [License](#license) | [Contacts](#support)\n\n## Introduction\nVirgilCrypto is a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and an open-source high-level [cryptographic library](https://github.com/VirgilSecurity/virgil-crypto) that allows you to perform all necessary operations for securely storing and transferring data in your digital solutions. Crypto Library is written in C++ and is suitable for mobile and server platforms.\n\nVirgil Security, Inc., guides software developers into the forthcoming security world in which everything will be encrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of dollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now developers can instead focus on building features that give them a competitive market advantage while end-users can enjoy the privacy and security they increasingly demand.\n\n## Library purposes\n* Asymmetric Key Generation\n* Encryption/Decryption of data\n* Generation/Verification of digital signatures\n\n## Usage examples\n\n#### Generate a key pair\n\nGenerate a Private Key with the default algorithm (EC_X25519):\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst virgilCrypto = new VirgilCrypto();\nconst keyPair = virgilCrypto.generateKeys();\n```\n\n#### Generate and verify a signature\n\nGenerate signature and sign data with a private key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst virgilCrypto = new VirgilCrypto();\nconst signingKeypair = virgilCrypto.generateKeys();\n\n// prepare a message\nconst messageToSign = 'Hello, Bob!';\n\n// generate a signature\nconst signature = virgilCrypto.calculateSignature(messageToSign, signingKeypair.privateKey);\n// signature is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(signature.toString('base64'));\n```\n\nVerify a signature with a public key:\n\n```javascript\n// verify a signature\nconst verified = virgilCrypto.verifySignature(messageToSign, signature, signingKeypair.publicKey);\n```\n\n#### Encrypt and decrypt data\n\nEncrypt Data on a Public Key:\n\n```javascript\nimport { VirgilCrypto } from 'virgil-crypto';\n\nconst virgilCrypto = new VirgilCrypto();\nconst encryptionKeypair = virgilCrypto.generateKeys();\n\n// prepare a message\nconst messageToEncrypt = 'Hello, Bob!';\n\n// encrypt the message\nconst encryptedData = virgilCrypto.encrypt(messageToEncrypt, encryptionKeypair.publicKey);\n// encryptedData is a NodeJS Buffer (or polyfill if in the browser)\nconsole.log(encryptedData.toString('base64'));\n```\n\nDecrypt the encrypted data with a Private Key:\n\n```javascript\n// decrypt the encrypted data using a private key\nconst decryptedData = virgilCrypto.decrypt(encryptedData, encryptionKeypair.privateKey);\n\n// convert Buffer to string\nconst decryptedMessage = decryptedData.toString('utf8');\n```\n\nNeed more examples? Visit our [developer documentation](https://developer.virgilsecurity.com/docs/how-to#cryptography).\n  \n## Installation\n\n### NPM\n\nThis is a pre-release version, so for now you will need to specify the `@next` tag when installing\n\n```sh\nnpm install virgil-crypto@next\n```\n\n> **Important!** You will need Node.js version >= 4.5.0 < 5 or >= 6 to use virgil-crypto.\nIf you have a different version, consider upgrading, or use [nvm](https://github.com/creationix/nvm) \n(or a similar tool) to install Node.js of supported version alongside your current installation.  \nIf you only intend to use virgil-crypto in a browser environment, you can ignore this warning.\n\n### CDN\n\n```html\n<script src=\"https://unpkg.com/virgil-crypto@next/dist/virgil-crypto.browser.umd.min.js\"></script>\n<script>\n\t// here you can use the global variable `VirgilCrypto` as a namespace object,\n\t// containing all of module exports as properties\n\t\n\tvar virgilCrypto = new VirgilCrypto.VirgilCrypto();\n\tvar keyPair = virgilCrypto.generateKeys();\n\tconsole.log(keyPair);\n\t\n\t// note that you cannot declare a variable named `crypto` in\n\t// global scope (i.e. outside of any function) in browsers that \n\t// implement Web Crypto API\n</script>\n```\n\n## Pythia\n\nSupport for [Pythia](https://virgilsecurity.com/wp-content/uploads/2018/05/Pythia-Service-by-Virgil-Security-Whitepaper-May-2018.pdf) algorithms is considered experimental.\n\n### Usage\n\nIn Node.js:\n\n```js\nconst { VirgilPythiaCrypto } = require('virgil-crypto/dist/virgil-crypto-pythia.cjs');\n\nconst virgilPythiaCrypto = new VirgilPythiaCrypto();\n\nconst tweak = Buffer.from('my_tweak');\nconst { blindingSecret, blindedPassword } = virgilPythia.blind('pa$$w0rd');\n\nconst transformationKeyPair = virgilPythia.computeTransformationKeyPair({\n\ttransformationKeyId: Buffer.from('my_transformation_key_id'),\n\tpythiaSecret: Buffer.from('my_pythia_secret'),\n\tpythiaScopeSecret: Buffer.from('my_pythia_scope_secret')\n});\n\nconst { transformedPassword, transformedTweak } = virgilPythia.transform({\n\tblindedPassword,\n\ttweak,\n\ttransformationPrivateKey: transformationKeyPair.privateKey\n});\n\nconst { proofValueC, proofValueU } = virgilPythia.prove({\n\ttransformedPassword,\n\tblindedPassword,\n\ttransformedTweak,\n\ttransformationKeyPair\n});\n\nconst verified = virgilPythia.verify({\n\ttransformedPassword,\n\tblindedPassword,\n\ttweak,\n\ttransformationPublicKey: transformationKeyPair.publicKey,\n\tproofValueC,\n\tproofValueU\n});\n\nconsole.log(verified);\n\nconst deblinded = virgilPythia.deblind({\n\ttransformedPassword,\n\tblindingSecret\n});\n\nconsole.log(deblinded);\n```\n\nFor browser example, see [examples/virgil-pythia.html](./examples/virgil-pythia.html).\n\n## Docs\n- [API Reference](http://virgilsecurity.github.io/virgil-crypto-javascript/)\n- [Crypto Core Library](https://github.com/VirgilSecurity/virgil-crypto)\n- [More usage examples](https://developer.virgilsecurity.com/docs/how-to#cryptography)\n\n## License\nThis library is released under the [3-clause BSD License](LICENSE).\n\n## Support\nOur developer support team is here to help you.\n\nYou can find us on [Twitter](https://twitter.com/VirgilSecurity) or send us email support@VirgilSecurity.com.\n\nAlso, get extra help from our support team on [Slack](https://join.slack.com/t/VirgilSecurity/shared_invite/enQtMjg4MDE4ODM3ODA4LTc2OWQwOTQ3YjNhNTQ0ZjJiZDc2NjkzYjYxNTI0YzhmNTY2ZDliMGJjYWQ5YmZiOGU5ZWEzNmJiMWZhYWVmYTM).\n","browser":{"./src/node/wrapper.ts":"./src/browser/wrapper.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./src/pythia/node/wrapper.ts":"./src/pythia/browser/wrapper.ts","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"0ccacfe8160e1cdf49aad94d35fe372f4b3769db","scripts":{"docs":"typedoc src","test":"npm run test:node && npm run test:browser","build":"node scripts/rollup/build.js","version":"npm run build","test:node":"mocha --require ts-node/register --require chai/register-assert \"src/tests/**/*.test.ts\"","preversion":"npm run update:node && npm run update:asmjs && npm run test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"5.6.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{"tar":"^4.4.2","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.57.0","tslint":"^5.8.0","ts-node":"^5.0.1","typedoc":"^0.11.1","prettier":"^1.4.4","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^9.4.7","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","@types/mocha":"^5.0.0","builtin-modules":"^2.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^3.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^5.1.1","rollup-plugin-typescript2":"^0.11.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0-alpha.14_1530800860560_0.48397060808549286","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.6"},"3.0.0":{"name":"virgil-crypto","version":"3.0.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.0","maintainers":[{"name":"sun1x","email":"sergey.nanovsky@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"35f1b1cfac07d6eb320342686e5471022bf3c3c0","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.0.tgz","fileCount":61,"integrity":"sha512-KIVYnn1Aac8AnP4N+HJISJ3sUm9vvxLjpnlEbH3jPAoIl495V4qT281X6jxAYei7DRrfcqV/zT74lETGLN1cmQ==","signatures":[{"sig":"MEYCIQCDI1Rlc5sYlAsfeB6tdy/Y5JD/xwmXa90Qg/Z0C0HlNgIhAKgaPSF8LvSg5N0LrsK3QblJ1kmvQ1UFSjeY2wMhiGpg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23175519,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWH0HCRA9TVsSAnZWagAA3d4P/A9F/VuePHwDuNiNRyZH\n74rAHqYzTbbXJmCFLLj7/fG3MB6O8QvkUWiMDDKTTfHh/VA/8xDUVq9hyem2\nfnHhaS4IuY7OiraqaMQRkRxgCFaI2J9jv0Xpl9jD+ISslvKGxF0StxLL0QZu\nLdM9Y0N5t7ER/CYIz5YY9gasfwRRHjoSnSJGxK6yvax4Y67H9B1Pf1Yv6NZJ\nHXxxpkm9S9EQWAd6hwjZOlbHFgqO1YKNfGdTZug93Ed8AYuMQHl5CZlBD0BD\nZzO6JsYkqd72UNawKU9hr+dlnLOhBKXJ0jTnCzwKgIGBBKippbskhANhRGnr\neQ1eXt5oCdRL4KTTawzs/dNOq0mk22jza/UYUEWRFWYB/1ubn4YOFIBguKQg\nxogqIsM1+COdrz/HuKcIkx7t2BOXd00tHaV4COZm0ngqehKT8H/4/6MvEtrn\nz+N9FhAQ+wHjmgy83KGUcSUZnyV3sGbNo+29svhJNU6eWfZyq4KlGbYNkcu9\nL9bcp7FzpMUvzySDmsM3lvaDF8CdXx6QRdeRTN2iYibHfmq98oo6JAobMZx/\ntWhYI9iOLIc0mWOG5JLzi49dt79TV9tKo4AT2D9tx2oiCLmhZjA7vqcKofDL\nB6q+i7wPQN05xEErAbEKgLxCqhu3RbwdMkVGepk4FrQxIiA/iWfZGiho4B5R\nJBpJ\r\n=E5Ts\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","files":["dist","scripts/download-node-addon.js","scripts/helpers/"],"module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"693b02b2ddfd616eae158320befffa5e7df055b2","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.1.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{"tar":"^4.4.2","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.63.4","tslint":"^5.8.0","ts-node":"^7.0.0","typedoc":"^0.11.1","prettier":"^1.4.4","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^10.5.2","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^4.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.0.0","rollup-plugin-typescript2":"^0.16.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.0_1532525831607_0.7073852342538156","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.6"},"3.0.1":{"name":"virgil-crypto","version":"3.0.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.1","maintainers":[{"name":"sun1x","email":"sergey.nanovsky@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"763ebc70277804d01b0f142b2e2e864b79a41296","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.1.tgz","fileCount":61,"integrity":"sha512-GTCdHcUqTNxt+SbijLkkNd2NwC1kk97ZnG5K3cmxn8ts/naC+avTp/EqzGMDV62mv5mx2iSWBjMsm1rwEUZR2Q==","signatures":[{"sig":"MEQCIDAmcHu2/OfoT6diO5vnNISmkLoWdQw3fkSEqA78SZSgAiBPXjAYDJzGXQFX40ifVYXPZz8DmbjJIkZqHQL1aw8XsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23175192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyMdHCRA9TVsSAnZWagAAVXIP/3hS6lJNq3jC6rOYrv4I\n56PM4HPXo6VwV2CU3yYdfYLoB8OwShm/XklFR43pFFyRPkdboaMDsdwSnquT\nH/oZzoHb2xkELvn6s44+4ijDx8oOKoA8hFYBGYR3SlGMkt8oe2hRN4ke3l+N\nlPboL2HLbMmcP9FP2L43npKRtkShblxZE3GOC1UJerd3UoqLzjmniHDGAsTJ\ncXkHU/HriLuMAsRyIo+Bdn5IxbANIXZ1uxcyk4ZpAiNomwcQ+5AkeLpvgDUT\nLqYR+CQJjzdeVMtaEwyY8XfGBlTNqoWXEetjpp9Yd+O3YxYlKE2OIl2PgvRQ\nV7B1fba96Rbu/Ulp2f99/8ir2V49EXLum6ASlgaZVdSjhrGdfghGhmmeTyyx\nIH1jMOgUHplmfk3Ri+qxL8XsIB0nyh4RHNmnEwKiAgaby56VawA6b5yHPe0X\nZNLHJhHWaDRbR1ZT7eRh4p+jAiZtzxIjxG9wv0DWu9XZ7HUR5hRU1jROUuyD\nLjpPPEDeFjTCvLcJznI0V6ZdsEJYBbjNMSvoOXsry8vjWVQ359lJg3jo096x\nt0yYG9B4/11UtTs4nVNuBcXyEMYeSOwBtcMAU6Bp0WBPV2jZhAOjjXMnKfrO\nsUBK4BJK45bcouG5csgVvxsgEltIeAK3ZIFkjnQHb23rIxxHkA+DSLsUrmsL\nVdit\r\n=NJSL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"30e1717d7f5b260c19777bcea1ed9c4b19f29eeb","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.3.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{"tar":"^4.4.2","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.63.4","tslint":"^5.8.0","ts-node":"^7.0.0","typedoc":"^0.11.1","prettier":"^1.4.4","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^10.5.2","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^4.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.0.0","rollup-plugin-typescript2":"^0.16.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.1_1539884870620_0.02016508351794788","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.6"},"3.0.2":{"name":"virgil-crypto","version":"3.0.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.0.2","maintainers":[{"name":"sun1x","email":"sergey.nanovsky@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"161e70772c3dce410c2e1d055112325bca56d5c1","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.0.2.tgz","fileCount":61,"integrity":"sha512-C3HGOSvDyYAIhHHmCRuuRbjVwvtFu64QSwaUgv1M059QrtDWZV358xsQM4IaKoaP6PV53mxGElAOwbEB5yhTrQ==","signatures":[{"sig":"MEUCIHHmPcRqKnOWxpMApATuP2eYS0S7RHdy/RuoXme9aIIrAiEAx3HY4uogzphwwqUwSZpkKCYQcYKfLdX3epXQMQgFPLo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23175261,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyYiJCRA9TVsSAnZWagAABHUP+wXxk6v745lanJRYskTu\nEUgsKUY50qx7VVUxt+RGqcN9BWfk4i5qOjKV0dyOtmoGaeGbciP90YRGZO3y\nmrTlU67g+CDWmmr9hz4UNXT+y7I2Uim8kNThKbNR3QEmimEoKy0xJO60OZFI\nzDJltq/7emOPEIJgbzZndYaZsMnzQAyeCgUL7161OsV4KdY0qnUKJTMUbnbJ\nCFieE8ur/gR1ASB0nRFwHcAEyEDgGTFzDgS8Kf8RIyxhSaOeXr3kIFHMNoOm\ntIADHDrfPri2On7kKyUL9RAsSFJ87cvMX+yHMu5C3jDMeEH1z3qpgnIFue8Q\nhttAacU/8dDVSbhvIT6kbPNREa/qC83G6nYWlBe4WObApEZYYgrl/0CKX0cS\nSofkr/UnJbhjww/95YCXjg3bUjuiFQOsTcus0+3OR5nv7n8h/X6KyJatFBto\nYqexrvydYaVTx7q5/lCZY4I9OwPA7HurBcuiybELEH6QZjAvkTgaNm3jQKjT\nalxYAxBGLE3E00o8ovrqpybOaSEMMsX5RK4nEPseB+nXB1+5A8EL3kD+DwwW\nXedLVnjmMKJA74szvYOhVfYlcPWgHZ/H07DD66cgLHbOf4O7TGW1wQqeJ89j\nSFjrEdjJR7yRVASGcw4Ulri/BquB5iKPCv4l5X3xcqoKvOmveH8zlLqRmMPs\nn37W\r\n=znUd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"be1f280b4e3424f078068b5dcc8e5f98d2b73667","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.3.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{"tar":"^4.4.2","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.1.2","karma":"^2.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.63.4","tslint":"^5.8.0","ts-node":"^7.0.0","typedoc":"^0.11.1","prettier":"^1.4.4","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^2.6.2","@types/chai":"^4.1.2","@types/node":"^10.5.2","karma-mocha":"^1.3.0","lint-staged":"^7.0.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.0.0","rollup-plugin-uglify":"^4.0.0","tslint-config-airbnb":"^5.7.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.0.0","tslint-config-prettier":"^1.1.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.0.0","rollup-plugin-typescript2":"^0.16.1","rollup-plugin-node-globals":"^1.2.0","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.0.2_1539934344683_0.5267173699000804","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.4.6"},"3.1.0":{"name":"virgil-crypto","version":"3.1.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.1.0","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"5030c51ffd14667d6002793c2afc692eddf811df","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.1.0.tgz","fileCount":78,"integrity":"sha512-7ldIfRCcHcmkAyhS1Ym40WbOVOTOqdk9wYvg66MMQW8eSIlcyqcRJIuYBGnvj3QBf+iWWO7PbOPhGahw+4bM4Q==","signatures":[{"sig":"MEQCIGAx7SK7EXkM9yY7taG5UyCF4fDfJAAAIseYeaWiHThKAiArPFXuKBms+M5Ow0TRDmbM6lPnu37WeQM5DJvtFvzYGA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23555807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb1zgUCRA9TVsSAnZWagAAGXsP/iYgLcKgHkCOjJ7n7QgA\n03H6wJ+xxCUJYVkhNIDxHPGPJXDQoAY6EZZQX2uTisQlmRzOlLuFfzIEN+b+\ntqE2mhhYLhTzb8WTm29H2Vlb75aD5P5WG/QjUvmMr/arISpQVw/GZuMkr5nR\nXM5+lGWGev/Y1Ijfxf65a5GBhT7ZVCTOeJkbXRBxAwd75y+n6yngStg0xzbf\nLghmBvnAyPttSE7t9PFNCxvHNb8lEPYqEvq1caHg4LUgSKdM4NRzeIPCNDKp\nUT4hWEEI/f3xNlJ2/NeoedQed0tmEOjgYbH9XsoK/9uEeypfs393GEqot2+8\nrnp7qtTcrU8kX+dtPGVgWCOmoqNE9/sfJmUqNoY4g01QQM1AZ2pcrZX1JWKX\nJsceI553qpoJ2vquipJEWH/h2uLsnd7eXs+j5oDjnY2zxa9U5onJqEKni1ZD\nm7TlTy9tFuFrrb/XXatFvbmGZc2/NA4aSQs0hPTbMQ3LmrTn9SdtuPmek2qP\nDndItZHorfIK2H9lJjjznp6N24iJz6J3k3HhKYMcHogQzWlvu6U11kctsimF\n0IAssLov9vVg3Ui50ISKmGkZDWcbFK85wHdAtPAgxGRBgjBO6U7jP7qj4w8V\nejmVlDRf9mt9t6DvAGSvXmdDhtytNdxDEwtJuJHVzLAKlkhLChmI9bNi21o5\nsiaI\r\n=ip+J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"7d799d362a416f803991dee8d6e52c21bb8e3d09","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.3.0","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto) [![G","directories":{},"_nodeVersion":"8.11.1","dependencies":{"tar":"^4.4.6","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2","readable-stream":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","karma":"^3.0.0","mocha":"^5.0.5","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.66.6","tslint":"^5.8.0","ts-node":"^7.0.1","typedoc":"^0.13.0","prettier":"^1.14.3","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^3.1.3","@types/chai":"^4.1.6","@types/node":"^10.12.0","karma-mocha":"^1.3.0","lint-staged":"^7.3.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.2.0","rollup-plugin-uglify":"^6.0.0","tslint-config-airbnb":"^5.11.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-commonjs":"^9.2.0","tslint-config-prettier":"^1.15.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.1.0","rollup-plugin-typescript2":"^0.17.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^3.4.0","rollup-plugin-node-builtins":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.1.0_1540831251209_0.04274330708268459","host":"s3://npm-registry-packages"},"virgil-crypto-lib-version":"2.6.1"},"3.2.0":{"name":"virgil-crypto","version":"3.2.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.2.0","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"03a8e0a31e203403285e3691b8475df9a0c83a25","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.2.0.tgz","fileCount":79,"integrity":"sha512-n4QZOej96/P9U4fdNSMQoiZy1VWSwYoc5PGE8/pJIdVAFYVPi83PJ0XY4vvpMAvT7M5V0A+fl/USkeULrHa3xA==","signatures":[{"sig":"MEQCIEnS9xPzuGOOnH1i8+iFulRjuQEcncVmvuZMdEAq8H9jAiBHbqVqdLShRO3+8aJM7LeSqp1B+9Q4N8qKvNcz58dbsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23558388,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7F7QCRA9TVsSAnZWagAACLUQAIvgoHLGUD5E81zWZpdm\nGcCwHu+ZIt8k2+s9ajmQbRCXzNwOoi7FgRkSZGZsI22NNK+XSyapeihcmX1S\nky6YzeLGY9/z86el1wb1h+r4sxoYyB9mf/dhw5YNABXUSQgJqrFvHGWWooGx\n5N0BpDNy1GFsbFFvzwFh8oRmur51uUK+44zZXHzqL+vhJKE50nlAEuy0M+Ny\nnWxGGBVCIzSZEqKiUfuKHA9i3ikBnVzssT3vGeMD7ysfoT28YgeTf67IF0/J\ndlXo8GaPHPTACUKaegskIKD5V2eSQbD2/+hAviyZ23G/CXHCaiPa8GQ2AKtL\njXCzM5M1rm9JSpewYN5pmIShSMm3u7kOV/lq0Cz1oLqOINf+gbf4wHFyYucr\ne2XEgoOQ6rcXhIuoiqGCbXk2nIoMamR9R1Q1l+e5aUQ0MqTmwBF0CU/E7kdz\n32n4eSuIVnoi5too87E0jn+PpDM6H4jGeWqg0W+mcYn0YWdTqO45W1e6Vr7m\n1j4V1kjW9OjguOVMF2grh+Cxin9thGDeddRs9mj+GVZlLsJqlxgpmmggZjeO\n4xLdYKsrnGBpjybPg1Cfgrcvv7AZ3UnkSqZDhIgmTE8H/njvon4gGWC1I8OA\nSe/ayraCVqUtN/feovg89CZPEVOFzzva6L+VgJfYkd2wVFnTdCt+VNJTsrz0\n4og3\r\n=JH3v\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"6c7b8d6f8a99f8f5b5b3a7474ad5a61272de7d32","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.4.1","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![Build status](https://ci.appveyor.com/api/projects/status/7f65gm604d8sf6sm/branch/master?svg=true)](htt","directories":{},"_nodeVersion":"10.13.0","dependencies":{"tar":"^4.4.6","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2","readable-stream":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","karma":"^3.0.0","mocha":"^5.0.5","eslint":"^5.9.0","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.66.6","tslint":"^5.11.0","ts-node":"^7.0.1","typedoc":"^0.13.0","prettier":"^1.14.3","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^3.1.3","@types/chai":"^4.1.6","@types/node":"^10.12.0","karma-mocha":"^1.3.0","lint-staged":"^7.3.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.2.0","rollup-plugin-uglify":"^6.0.0","tslint-config-airbnb":"^5.11.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-commonjs":"^9.2.0","tslint-config-prettier":"^1.15.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.1.0","rollup-plugin-typescript2":"^0.17.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^3.4.0","rollup-plugin-node-builtins":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.2.0_1542217423013_0.2422888832336605","host":"s3://npm-registry-packages"}},"3.2.1":{"name":"virgil-crypto","version":"3.2.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.2.1","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"d96135d61eff1a8eafe580a65bf343aaf1fe504d","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.2.1.tgz","fileCount":79,"integrity":"sha512-SEdmN/CvJIk28UUIiu9nKi6TfWXtUJ8EG/UwsPO4YriYjefk4kpnfrX9TioF5bA5/8xXIW8aBqtIGN/ZqTSG3A==","signatures":[{"sig":"MEUCIQDaHuJaF/Qg74q2H0Mb9d2/ujamUVSAH5ufeDPuW2WZkwIgDGKersnuC4TQ8I/S4o9MkvSNuOZ85aVg9gL5+cxLQhA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23558218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSag5CRA9TVsSAnZWagAAj1QP/igxdN31+Fr1fC3b/Wfp\nQkBaN1ciHJ3pzjIgVlkZuL9EvPhEL7AG1pEvQD1ox1lk4N8fQvfhvYAxAICI\nYJ/uk3qfYlbX3YZa+8wcsgQOTT/3b/eMRWYhjodcr5d29jXI5yy5uNXz2fkn\nI2R6hdfrNE9x73boxujOVIy8Hi/sF6jrG028A3ChMPvl5I8xftgC6T0GvgGS\nqIGgaXSoMc3UXpEbqvGnL//TgDrUTKf9cDp3uOFODbmncfBIqYXiUVq7r9XK\nrwm9GJYkXMoisP2lZev/RuuzhmZSCuvcPNS7g3j572/disjkWRUOiWhqMgdQ\nHC0DtwYfITJfiGIIW6qcVyfIWxH9GAVdNYTIFzIhx+5cdQvUD/RBsdNf4dn5\nazn7/mdrl7Lk8bRVCURKIyrBIWA38gRu1wtJJYX6yqTbNVFcbAbm0Iqf4S16\nZXFjPw+T8E8Fse4tvlZt87zDJhylaIIJkGe8BXNN1DJNl1zDcf/EbKTrqGP0\nejoGW56aWowuq/sIMFnP3dUFt9PCySdoweIkexJSnoAB70XuYlWRiMgjKaAT\n8Gs5FImHN1DsUrRFkVHj3vWtHAj3Bj8cR9GalQsf09H0PIzycSXIU7Wa4btt\nwpLNyGEjWTvgBWWnQESQEZMmNg+vV3wKZeMa49iQbn+QO1PYeg/gCb4GfdLK\ndTtn\r\n=B7CI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"698b3a42efd79f82a53a55836fd2d06ea042c1b2","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.4.1","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![Build status](https://ci.appveyor.com/api/projects/status/7f65gm604d8sf6sm/branch/master?svg=true)](htt","directories":{},"_nodeVersion":"10.13.0","dependencies":{"tar":"^4.4.6","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2","readable-stream":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","karma":"^3.0.0","mocha":"^5.0.5","eslint":"^5.9.0","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.66.6","tslint":"^5.11.0","ts-node":"^7.0.1","typedoc":"^0.13.0","prettier":"^1.14.3","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^3.1.3","@types/chai":"^4.1.6","@types/node":"^10.12.0","karma-mocha":"^1.3.0","lint-staged":"^7.3.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.2.0","rollup-plugin-uglify":"^6.0.0","tslint-config-airbnb":"^5.11.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-commonjs":"^9.2.0","tslint-config-prettier":"^1.15.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.1.0","rollup-plugin-typescript2":"^0.17.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.2.1_1548331064893_0.9076942481459289","host":"s3://npm-registry-packages"}},"3.2.2":{"name":"virgil-crypto","version":"3.2.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.2.2","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"1904d28e1be096a84726927f088f217b504ac2da","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.2.2.tgz","fileCount":79,"integrity":"sha512-9M8Ar95M9B/hBwRQwOqj3hur59aXiuMb3GASZulUwxB9Oit25IzIMrdIZ8qYbFP3Neuld7UR2ebq+J299JfSjw==","signatures":[{"sig":"MEYCIQDFhA24tebn8KbS4BxPF+6vspblD9ePBsZhQhxdR2qzuwIhAJ9FDIi9bBOsImHOJvTjSt4V84w815A+ymr34rFGh+YT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23558540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1Z15CRA9TVsSAnZWagAA/IYQAJpZ/uoELcuk6TkMlEkR\nD7SFs0XgxyfTqt4yra5TPoFM7ddtF5tzhHLQPFIP8iZ5Rtm/Qstg6ewvMcDe\nH6qHMwp0s1tCAQq1RfFOGOfLTm/tWp82gPlsKM3ujl2CaVRbXxXx+Arpo8Me\nTOkelauk3t7blWn22wQ6lTJ3OqD4tqsyPAm8DZ6gyb3thzEoL+2L4x8F88L3\n/ntHOaJFk2tnNMF7D4Zh9/WAI+NMPXLw+cYFUnJNN4cpLXNLYk9BuliX6IAK\nmmWHOEdcO2gKGPI8VJl3BhJEAaDsIcnKAJp55FhryX5ZCHB0p4GDJsWc1fGm\nRzp5BKbo8Yx00BiGN+UOG/HEmyZe7fwGE7gciGnlS1EJEsIaOhhcHYZ9c1qC\nX2QIBAR1uBlnMgosgpSGvYuNaclQRDnP89a22wy0XXGZf6CJ2x4NfB5CfQvg\nCUpl6gtF7M/JAKQWOtZh1HQHT+HQxX25dONv8o0+8oLm7YqTJ+C36tdDMOIj\nNgGPd91b4pXaQjTrtYGOnsN94l5TEV1aygCyuhV7ylwyI+plRsTVUC23pWH2\nBUtjXuXlvJLP4l0vXldIsd8Mk0aRUshc7oab+8vhpXf4hv4jKLlQ4aUw1Mlf\nQISVj2GbCmO/IsP7jqeZWUUggEHdemzIpsxAYOebRIL9hm1AbR/nj5/9fLXz\n3Vq4\r\n=903t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"4a91df0f959618b852949fb0669b4bfe7540d830","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.4.1","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![Build status](https://ci.appveyor.com/api/projects/status/7f65gm604d8sf6sm/branch/master?svg=true)](htt","directories":{},"_nodeVersion":"10.13.0","dependencies":{"tar":"^4.4.6","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2","readable-stream":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","karma":"^3.0.0","mocha":"^5.0.5","eslint":"^5.9.0","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.66.6","tslint":"^5.11.0","ts-node":"^7.0.1","typedoc":"^0.13.0","prettier":"^1.14.3","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^3.1.3","@types/chai":"^4.1.6","@types/node":"^10.12.0","karma-mocha":"^1.3.0","lint-staged":"^7.3.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.2.0","rollup-plugin-uglify":"^6.0.0","tslint-config-airbnb":"^5.11.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-commonjs":"^9.2.0","tslint-config-prettier":"^1.15.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.1.0","rollup-plugin-typescript2":"^0.17.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.2.2_1557503352993_0.42039828925315703","host":"s3://npm-registry-packages"}},"3.2.3":{"name":"virgil-crypto","version":"3.2.3","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.2.3","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"61d7c0b988d6fa76be87bed22f2581b60d7c89a3","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.2.3.tgz","fileCount":79,"integrity":"sha512-S+Qo39isymVE2DbKDJNZZu4ENQa/niWNwtA0kDfn6+EoFRDzUL9A1QxwR3pTNoWwzcJqJujR2/hKQZSezANCwA==","signatures":[{"sig":"MEQCIGkoZZGXgDputX7TCuMBOKlC+yMZqkk7eZNqJ3rPeymNAiA0nuhNodxUiAADh9ffK95R1ZBgdnCoh5aWeBVbqh98LQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23578518,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2/AHCRA9TVsSAnZWagAARTsP/iJj+L4hC8qz7m3V4meB\nQtATdBN5yAlZqgwpblNxpVWN7xWofUg1ss/BuJHz+h9AN4tpeS6odqqXbos5\n6F3zBrvuC9Ca2PIWJ59VJ5DUXyOW9ZwPPGswCBSW3kquZ2PKq6wAYDxLT5dz\nqP00NhsiDPF2FLxpQNRAM5dDLWXwdVVwKGt58DFhUxlDnNi77Ht1yQP7/lBc\nSq6QjpBIY9DgCAHtDHM2OZjp5dQoy6wb4XrEtXc4LBSPttw3WfIiVcqjwC0h\nLiRxO1PPVMMyNt4rjOs3dl6Iw4F3PxKxwpiV1uRXxHLs2oSX020Y7zon8Fd7\nE67iNFcCGUY1TltXlhNcRAsBTGEp19+yI34qB4Y7mlCb1uS3fWSo4hFfIUHI\nJ2XMJf3uuuaX2Aqx/5Gnr4CdltmBbhzFbSzutlo+1VoI3VRkalj9FpzgTsna\nZYcTurdin/X4tFOrBPJ5lYdC+zjDnFJv7P8zgGXA4dnKKLjNoKZJunW07LO+\nn4L3/BRDUxyHnOFYZtmPoxP8Dm/gCsYxHZ1/2vI/UC9/RDTUQY7u8shyztn6\n7Cr4YOs23AgiGibjBz8yKKWvW1IExcpaak6jVCsVeLx0e5xjvD2scpXFtOYE\nNE76JVUKQQ1J8CWVwaTiezzbfDP4AE1QvE8gInfSd7EN3YPph1lPZzQpQc+I\npk8Z\r\n=D56Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"1a7c8c39365088b9d7cd765db35809ea9a84543b","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.4.1","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![Build status](https://ci.appveyor.com/api/projects/status/7f65gm604d8sf6sm/branch/master?svg=true)](htt","directories":{},"_nodeVersion":"10.15.3","dependencies":{"tar":"^4.4.6","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2","readable-stream":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","karma":"^3.0.0","mocha":"^5.0.5","eslint":"^5.9.0","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.66.6","tslint":"^5.11.0","ts-node":"^7.0.1","typedoc":"^0.13.0","prettier":"^1.14.3","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^3.1.3","@types/chai":"^4.1.6","@types/node":"^10.12.0","karma-mocha":"^1.3.0","lint-staged":"^7.3.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.2.0","rollup-plugin-uglify":"^6.0.0","tslint-config-airbnb":"^5.11.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-commonjs":"^9.2.0","tslint-config-prettier":"^1.15.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.1.0","rollup-plugin-typescript2":"^0.17.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.2.3_1557917701969_0.11101728067148309","host":"s3://npm-registry-packages"}},"3.2.4":{"name":"virgil-crypto","version":"3.2.4","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.2.4","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"e67465d8a0f0552b009861723e35056aebf9ae2a","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.2.4.tgz","fileCount":79,"integrity":"sha512-ISJ1He0JyqRHElXUGMm4FQUrei8CmemJQxw0kUUUWqp12nNYgCcucdZ4fVqNWaQ50n5pamp9vtzTlLjrpAheyw==","signatures":[{"sig":"MEYCIQDWX2jvCqPCwGBdDjJz3IJsrqqjRCvhEFvKYhejd2tyWgIhAMzQbNHKRCbaR2m92A2gEmVJesuW3aUYCTcUCHVPt3i2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23579006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4speCRA9TVsSAnZWagAAa6EP/3KuRvCayl2kKeXsTWSu\nt2Bk878jCUEa8cpk47VlegWWVxydNIyg+NaODEW9LG3eNpPl/gJ2GXnSHwjH\nOV4pbX6bGM+mkMN0Kr+e7juzIYb4oUmGbpyBunvmE5XGsuPhFPwM1J6s4Pwm\nOkoVHHoMbvlnfZEeQrYSVKyMF0cW2mVIxjsYBqTfU8MJNBhfWvT7IHo6lLUE\n7pfueWq1eGoKfShB1RPibKMFL50apipirm4vJiRyP/Lg3O79VTwjAHmX75dY\nIA0EPBOdAak4hYapOWHaUP8MdhNo6B7zd/CuTkXzemNzYOxKu+TQU5H7Do/3\nv3iFHiq+MwEr31xWw0xjRIfk1VnX4vD5g5wTAGKeOYawJAnu1o6SjrDV0e9P\nAB4Wf/ZgJWqMPtwfrFMwtxpJfctYCVyt8RYkobnwm1MGpQU3MqkfjNp4mLaL\nlPJk8s6hx6EAdimBOXbtWtd1laomrhktTguTqn39hn+3XuhnqT00NPKoKkkk\ncB8k8VJ6DsYrE7ipTkidEs6nAWz9BPhfLhn6Edg0x6WHiXuhUAzdJeL5UqxU\n6vPFxxPwtkDK7/f8ua/RjThetBERJUwzm0P6xUwa/mfvXsnM+HHgtxw2gLhn\nvqCpq0AVZdcIyguXwWyFeThTMZUfeh6tGjiJ/xinsS/IJgvCcAIaBSOb9GkN\nIOky\r\n=tSy5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"0852350f884281d4f7cf28bd15df01c4ca228ae7","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.4.1","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![Build status](https://ci.appveyor.com/api/projects/status/7f65gm604d8sf6sm/branch/master?svg=true)](htt","directories":{},"_nodeVersion":"10.13.0","dependencies":{"tar":"^4.4.6","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2","readable-stream":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","karma":"^3.0.0","mocha":"^5.0.5","eslint":"^5.9.0","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.66.6","tslint":"^5.11.0","ts-node":"^7.0.1","typedoc":"^0.13.0","prettier":"^1.14.3","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^3.1.3","@types/chai":"^4.1.6","@types/node":"^10.12.0","karma-mocha":"^1.3.0","lint-staged":"^7.3.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.2.0","rollup-plugin-uglify":"^6.0.0","tslint-config-airbnb":"^5.11.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-commonjs":"^9.2.0","tslint-config-prettier":"^1.15.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.1.0","rollup-plugin-typescript2":"^0.17.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.2.4_1558366813140_0.1631342352966605","host":"s3://npm-registry-packages"}},"3.2.5":{"name":"virgil-crypto","version":"3.2.5","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.2.5","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"7cd6ee7cccc16b46ebe80753c8fcba03f56be504","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.2.5.tgz","fileCount":81,"integrity":"sha512-ttRl4YtBWIYzVvrCIIR3A62Uh8sHVvVGQwQYZP7OrHt5Zo2KPhq1yYpBwXBdA4n0tJX0N7HH/FJtou8IQkagZQ==","signatures":[{"sig":"MEUCIQDrkMYPxWfYbU5HAh3Hcq0OnpKLy0aNENgp3rtzysghJQIgU88RGPEL4F8UyfqOoqS/dlmWnA/ujDMtDrtBJwWYp/8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23602049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7W0sCRA9TVsSAnZWagAAbAoQAI0ktrBSn5ghoQuf/zoc\nju1Vlt8R35/mKs4Dg/iOM3bCIXvW7xt0QYOJUM6Ve45CnLXrNHWzAxumcWFC\nrPe4CCWmHeZr47NEpwDVDFNIpfe+awQkiBasK55351RXpS07mT8lB25Rb8kP\nqOJXncMlW+8DNS5Y1cN896NiNOqIXNiaOBvmbOXPKB9Cr6r/VbpGYIcJ8LLB\nT9Q/NsfokboZm7CYRQ+ogmwdowQK4n9ds5gC8D8OEr8goDN3L9RVYZlC/ODc\nx6bFArhM/HS0n/ihD8E4H48Emo3ZT77Y7rhVAcnKs3p1+KVj4EGaAnPJImG4\nJtUyGFhc5nNVUGUnOWKiA0ILXPQ8i4ze+uZ8lGZ+LiF6pTL6GDpMQnl/FVy+\nqnaDPDquHJdCtWa+sv0iqlYPX6VxJYdUTqQ6iMn37XDcMChGFdojw2QUQo+T\n5ptaAO7ixRYlRs6IvV4Eu2ZnVjnRJxHYDOKdWzWAPT2SrS6lGj/qGIMyhtA7\nhSNCBzPgFaWYxgCJjWRK1QNQWidnUrweLoDIqrtL0MnO3JWyJ9Dic5ETpPuS\n/So99YojhYG15pJoPVuqDjSwS1LdbGaJUU2qKIG9ASdKQJzyDaTtzPRR5PUr\nTOnlbnK4FiM0319cMLIYc9r4gKs9zUyVY9lPisVzDzY8JWd4w+VK7NGvCi7l\ndenN\r\n=1u6Z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"f9ed084d740e5255d5609ed98cafdf41a680e6f3","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js","test:browser:memory":"cross-env TEST_ASMJS_MEMORY_MGMT=true karma start"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.4.1","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![Build status](https://ci.appveyor.com/api/projects/status/7f65gm604d8sf6sm/branch/master?svg=true)](htt","directories":{},"_nodeVersion":"10.13.0","dependencies":{"tar":"^4.4.6","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2","readable-stream":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","karma":"^3.0.0","mocha":"^5.0.5","eslint":"^5.9.0","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.66.6","tslint":"^5.11.0","ts-node":"^7.0.1","typedoc":"^0.13.0","prettier":"^1.14.3","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^3.1.3","@types/chai":"^4.1.6","@types/node":"^10.12.0","karma-mocha":"^1.3.0","lint-staged":"^7.3.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.2.0","rollup-plugin-uglify":"^6.0.0","tslint-config-airbnb":"^5.11.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-commonjs":"^9.2.0","tslint-config-prettier":"^1.15.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.1.0","rollup-plugin-typescript2":"^0.17.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.2.5_1559063851733_0.27764913986740125","host":"s3://npm-registry-packages"}},"3.2.6":{"name":"virgil-crypto","version":"3.2.6","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@3.2.6","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"1ea5dd0e371cccead5b7c27810ec85b0f5ba61a0","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-3.2.6.tgz","fileCount":81,"integrity":"sha512-Mbyqy+mIXzmoLl2RLeT8W/gktAaGR50CnD7TeFTVwKD+y1N6xYwS3Lm7BnFr1rcQ13Xuya+Ie6ZSW0jJxA+XAg==","signatures":[{"sig":"MEYCIQDautsRWQZu+YZTd4TY49l9DJewtbkFfJ39Tc55dRIZwgIhAI+ZH6KTQocq7hjfs+6qo85hOWH+176xvUbCCV+TqEtT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23602049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+Qu9CRA9TVsSAnZWagAAfsQQAJxyb8TkOkrA/vi+s35D\nYVAzNJquEbl39Ji9NscKDMQLbDyUKKsdAQOwrj7QTkWfIZNQW9hv67Jwci1a\nOsLUPedWiv6J9yXdOlPFBxJuO1kUoaqzqojuQdcm/2dF4F7jTCd2JynMRSc0\nz8f2O4Dxb3p3XJ4iof22Obzi4cO6451acXzEToU+QRTbQ9UvlY8lN51g6NJ2\n21TZZa01XjZ1gP6FIUX4WRzIA3TtzLcB1svE+/2qMOKAv83meU7RrI0e9VAj\nyRfAlLV8kJ6zqKAmone1JmEGuR3ntbZTZr1rJblNvXjOvzBeoWXs0eeU18ZO\nVLWk81qJfVIkcV+Lsmahv5XVYOa5PD2sE3WTbhFjNbE8M5pVWGVbbIIpq30S\nJRxgSuy7qox0DwWNQ7e7Fx2ayVmR/yeBjVNLpbGEb/FdSgndKztjbtS9MeqU\nKLZ0kAMpT+0nb2l92k8o7VRZgdp+ZytUXdpzXdD6cE3xOWYAGIWy0/PqKAR1\nKoLvnhIfcrHujlvq0rf5ZuEUF2jgd8P1VrJQEj3UoCGyZGiNqFbVPgiabx2v\nm2DXf8nY37XwejQNb2G6V8Yh7Aib2uV4P3eHGWdaqiQMa3nMA/x9fXiqoPvZ\nyUBGIq28RFobxlrO4JpCQDLMHBdjL4z1TjuGbtRkCXTdovtuRQ7ITldpbc/e\n2HM7\r\n=BLbq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/virgil-crypto.cjs.js","module":"dist/virgil-crypto.es.js","browser":{"./src/lib/pythia-node.ts":"./src/lib/pythia-browser.ts","./dist/virgil-crypto.es.js":"./dist/virgil-crypto.browser.es.js","./dist/virgil-crypto.cjs.js":"./dist/virgil-crypto.browser.cjs.js","./dist/virgil-crypto-pythia.es.js":"./dist/virgil-crypto-pythia.browser.es.js","./dist/virgil-crypto-pythia.cjs.js":"./dist/virgil-crypto-pythia.browser.cjs.js"},"engines":{"node":">= 4.5.0 < 5 || >= 6"},"gitHead":"6d0398a2246b61228d895d39b86a8c4c89c67d8d","scripts":{"docs":"typedoc src","test":"npm-run-all test:*","build":"npm-run-all clean build:*","clean":"rimraf .rpt2_cache dist","version":"npm run build","test:node":"cross-env TS_NODE_FILES=true mocha --require chai/register-assert --require ts-node/register \"src/tests/**/*.test.ts\"","build:main":"node scripts/rollup/build.js","preversion":"npm-run-all update:* test","postinstall":"npm run update:node","update:node":"node scripts/download-node-addon.js","build:pythia":"cross-env PYTHIA=1 node scripts/rollup/build.js","test:browser":"karma start","update:asmjs":"node scripts/download-asmjs.js && node scripts/download-pythia-asmjs.js","test:browser:memory":"cross-env TEST_ASMJS_MEMORY_MGMT=true karma start"},"typings":"dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git","type":"git"},"_npmVersion":"6.4.1","description":"[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)  [![Build status](https://ci.appveyor.com/api/projects/status/7f65gm604d8sf6sm/branch/master?svg=true)](htt","directories":{},"_nodeVersion":"10.13.0","dependencies":{"tar":"^4.4.6","tempy":"^0.2.1","yauzl":"^2.9.1","node-fetch":"^2.1.2","readable-stream":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","karma":"^3.0.0","mocha":"^5.0.5","eslint":"^5.9.0","mkdirp":"^0.5.1","rimraf":"^2.6.1","rollup":"^0.66.6","tslint":"^5.11.0","ts-node":"^7.0.1","typedoc":"^0.13.0","prettier":"^1.14.3","cross-env":"^5.2.0","buffer-es6":"^4.9.3","karma-chai":"^0.1.0","typescript":"^3.1.3","@types/chai":"^4.1.6","@types/node":"^10.12.0","karma-mocha":"^1.3.0","lint-staged":"^7.3.0","npm-run-all":"^4.1.3","@types/mocha":"^5.0.0","builtin-modules":"^3.0.0","rollup-plugin-inject":"^2.2.0","rollup-plugin-uglify":"^6.0.0","tslint-config-airbnb":"^5.11.0","karma-chrome-launcher":"^2.2.0","rollup-plugin-replace":"^2.1.0","rollup-plugin-commonjs":"^9.2.0","tslint-config-prettier":"^1.15.0","rollup-plugin-sourcemaps":"^0.4.2","karma-rollup-preprocessor":"^6.1.0","rollup-plugin-typescript2":"^0.17.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-resolve":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_3.2.6_1559825340201_0.09724329663440212","host":"s3://npm-registry-packages"}},"4.0.0-alpha.0":{"name":"virgil-crypto","version":"4.0.0-alpha.0","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.0","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"82b4df36c01096935a7df337cb27289a3733913d","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.0.tgz","fileCount":21,"integrity":"sha512-68srKhQOa2g6mjQx6D2yAaXKSYohwNTtWQ+yVWN5o6jowA8VAToXsWWrOEDPqdwyY/fWI1fSh3kWXqDrX2Kq/g==","signatures":[{"sig":"MEUCIQDQRhgNkXJ7b9gmhV3QiSt5Q4E9+TkMC87BJXtznUgVKQIgV0W6OiQFafyYIGx740gqGkra7/WdDqJ2txdZKDKUGOU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5336768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdTYh+CRA9TVsSAnZWagAA79oP+wVMjtYcyifmmxpRQOxw\nGaw20fRdZU3HYe87LRRp9kBoGtGvYWQDBdSfl+Vp0dp472vosws2Wh/Bz56Q\n527KGi4V4cVthngLg1Q59Phh6ATU8LrULTZUt+LQJlPSV3JN86OYejXCHxYs\n4sZlJjXiMlz1afODCEyYAqn/k5tYAQDkZlr/As7WK3OqI3D3YJIbE69Bs8DB\nh67lOS6p9xCxpl3klb08sIRq3Ro7XsSmFodV2JEv6peLBlDDEZEhqieuk/Ax\nhCYNig80R+IzhByv1T34M7EKv2Azghn5t9hUYKWru7UBIO4GVJeVNZ0T8oA+\ninCYq/4ydyqQli3wpcnkd+8RngZVtFG4N/CagogO9iaQ2bMWH2h26pRCCi9+\nEihXZ9n3Zz2HJMv2mckoq9/r/WM/xAYmRTBTxVGbpjgbdXSjh+hFwauFupy/\nRL9gm0GVlKKzWZ9gUq/VV3pGwvPJ61bLhscm6sbT/YNQZaVl8aGqybcOO5bx\ns86ZxZzf6WFVNFrolrLzhjoIy6cx823KPBd5Z65m/TT2jCBnO4JDAANtpcsA\nIUOTric//j7rh5HLOV+yxF/AqpZE3nA6dY1qFNOP0vrVZoEyRtX6E4d55F7L\n+eKmSIJ7NuiBYaa1g0sFAZjVZoA6rTF6Bd+1hytycCrj9qa4ks8Ooa3xfBCy\nhuE3\r\n=0Dlp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./dist/browser.es.js","./dist/node.cjs.js":"./dist/browser.cjs.js"},"gitHead":"ffe3581a4c94644ac673044c7b7bee5572e68377","scripts":{"build":"npm run build:templates && npm run build:umd && npm run build:modules","clean":"rimraf .templates dist","prepare":"npm run clean && npm run build","build:umd":"rollup -c","build:modules":"node modules.js","build:templates":"node templates.js"},"typings":"./index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.1.0","@virgilsecurity/base-crypto":"^0.1.0","@virgilsecurity/core-foundation":"^0.1.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.15","rimraf":"^2.6.3","rollup":"^1.18.0","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.0_1565362301685_0.34173504881072914","host":"s3://npm-registry-packages"}},"4.0.0-alpha.1":{"name":"virgil-crypto","version":"4.0.0-alpha.1","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.1","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"70403f08d7d23ba6c915ead2c46f97b0b9a7a033","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.1.tgz","fileCount":21,"integrity":"sha512-YAtbZxGQ8MNzdDfD9WpuKNjSWo13cJQPScv9jeh9yQUnLiSsAK/O4I7cKQYe17MavmysJ8HFo+Dn3t6vYKcEHg==","signatures":[{"sig":"MEUCIFWcYTTMu11gGBUMOPJtRVBaak+SGuQ1RrjPOB8ArdGCAiEA5QKsrGdQs59C4ek56Y2BPDJOmy/dZhop7QY8uc/waHQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5336876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVW++CRA9TVsSAnZWagAAxgcQAI7f34Y5xwG4/drwQfPm\naewVTYnJg2dYMCix55pif6HQe7wyZr8zpCb+mO6YKhfQvRuowqzwV2e/4YGD\n9aHZJaXtIe3Y65D81IfJy5z14FAaokga2mGtoZKJcyiaa/oKQJgn31lPnWRL\na0NfDqoKhBX2eD8op+ip5OanmZV5anTrMarFPs+1W64gxYarLxMbcXi6Zk7n\nbzMIXAhrdyQUK8SvPvBWWACtNvzaafZ6jBnn6fqAuoagDo0xYjvIlYplTkoG\nmKZ4n0C1rV0qaaFwBYyiMjUER1+B7VIWCisYsTmbqb3uAifBWj0Z3MwykuCg\nXuqPLoV1duDiAtXAO8+wR76TguFn5loXg10PAsgh9iW6Xhitm5li0Q5tEcjX\nNM5OiR8cpMjscm6sellmN3QQlmKCNG6XFFrbxQbMTWeI1P98aqq5qdShUXuC\n+QRfO590w4UNqlwOBrboj59aShBv973E8Cj+rO9d5IcP7K36u1QSWomTloOc\njdcS8tYdDXdp3pZ56nanW8mrTgckgbiDRuPpraKUAGebrYKBQL2DufZu1y8l\nsBPFSHw+nJU3nOHZ7ghELRoMI4cf7H8FLfCcHmzyDaJgefOcgkBaxHwp5F3X\nCo4QI4/1G5SKR/RBlf/FFqdIT9KZoflV/snp3uJXlXcTtX4jkgDrbiYh1m/a\nKCw7\r\n=aDyz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./dist/browser.es.js","./dist/node.cjs.js":"./dist/browser.cjs.js"},"gitHead":"a8ae25b6fef7b0c323393754eab29bbc101851ff","scripts":{"build":"npm run build:templates && npm run build:umd && npm run build:modules","clean":"rimraf .templates dist","prepare":"npm run clean && npm run build","build:umd":"rollup -c","build:modules":"node modules.js","build:templates":"node templates.js"},"typings":"./index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.1.0","@virgilsecurity/base-crypto":"^0.1.0","@virgilsecurity/core-foundation":"^0.1.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.15","rimraf":"^2.6.3","rollup":"^1.18.0","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.1_1565880254269_0.12190542304673313","host":"s3://npm-registry-packages"}},"4.0.0-alpha.2":{"name":"virgil-crypto","version":"4.0.0-alpha.2","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.2","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"073e1ec75d3c5d19ca4204e2c05e98041b5a2ca6","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.2.tgz","fileCount":21,"integrity":"sha512-nrT6tUJJ8jhz0TJvdfXlCKFPsmSejCqryW3nKCTU3nRVWwBeaIKSJewQiPQkSvt2qtRPeVqTNLxQbtHxVNC03Q==","signatures":[{"sig":"MEUCIQD3REwDQYrF04HAoBDO5liRA1KgEnhMbrPCCrdxJDgY2QIgU0piRSO4fLXaqaDYyzSWyl3BjQjenVg/pV+YssLx+KU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5337756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdW86qCRA9TVsSAnZWagAABwUP/jjwe9a1c8SmTuVFhMqd\nBNnLxGHj1kxaSrab1hYRdNzSkXYCIE8ICXbkPAznhp7+Oob6ePeb0fYXzL5O\nhHYm+rxlXVg36KleywUn7TNXJUDviuc96AadcZ134HBlcV9sESU2GES09V18\n8RhIVlGNzNsaluEBvyD2cVK7W+NPxX33xhq1D4NruCtLdoEQOSe5QqeS2wx0\nCBZl+zHiyPYvOhNekgpjcjYDPZhpiNJUjU+sbFPuSeG+p5+S5POb5kBlBEuc\nIeLiBAiXEoGTDzsfrxl+57Tz/sKjNEoZygLXS6yLA7zPPXPx0+8xC12vV+By\nkv9oIR1pZ+RxsLhL78xWwBHJEZbeJNo9oHlHqv2rOjpNZ8BR+aLPVIgPREcA\nVN36ApTfevr6CzyZ7Wg0skYpOtyNN752/zLzHsHrXQ/retyHuXrN8xVWEXok\noj6gCStPCLRyqtp2PwTyr0jTgpGY0LIDdW6NJpwtmRFnxTwjvK76XYhTzm6x\nknfBuC0k/kjPaZMf2IsnIDZRuEr/O+TfnT/IbGDFuD8FajKkcao8gQgmjpbI\nVLXh48PTxnt+rPiWgWNWFRAWZLYnnN1FIF218h7xK4avT7sMMwnhzNTs5paB\nDqJimsoTQoMxnoDXeFgtag3i5JkOCeUOg6lFTXc5ifQUobcUSd79s7cjweCv\nmcbn\r\n=Qk9u\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./dist/browser.es.js","./dist/node.cjs.js":"./dist/browser.cjs.js"},"gitHead":"fd011d3f807afcb97f63404bca6ed95c70337ff5","scripts":{"build":"npm run build:templates && npm run build:umd && npm run build:modules","clean":"rimraf .templates dist","prepare":"npm run clean && npm run build","build:umd":"rollup -c","build:modules":"node modules.js","build:templates":"node templates.js"},"typings":"./index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.3.0","@virgilsecurity/base-crypto":"^0.3.0","@virgilsecurity/core-foundation":"^0.1.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.15","rimraf":"^2.6.3","rollup":"^1.18.0","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.2_1566297769469_0.3948637362038476","host":"s3://npm-registry-packages"}},"4.0.0-alpha.3":{"name":"virgil-crypto","version":"4.0.0-alpha.3","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.3","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"256a3e1a063c26501546707db4997db1392e2609","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.3.tgz","fileCount":21,"integrity":"sha512-fbvsza20q80zfI1jK/wWpo8URP3MSpy1EWLjYIAQ3AoLD0TtSkU6z0tiyk+PNb4GxeFyUHcTKjQdOIOmWUxdAg==","signatures":[{"sig":"MEUCIGHIrR5jmIQ3u+8NvG0rVgaWeVIibYSc2/kgYDsnjX+cAiEAicNJWWFuj1EIfjq4bu8gVe030jEoin8sVElja3CC6ns=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5338304,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXWQACRA9TVsSAnZWagAAKt0P/Ax2usx9TxrbdVxEmm9q\nH38vdyZDleS4IDx/ufucWI6Y/cOroW9REtvwqrZ6oiG38yyMHmpqKXwy8t9C\nQOERKn6U60Bb3tm8WfyDV7Q7OlucTch+qadFrm0NIuGKd6lMuSkQrzMS9oOc\n8EZJDqCKHWNiRF18jyOe2z8pVa08WhPRhZgVDVzRxl2FAnxMS8to48EFOFVp\n849sHi3D89FXKWuJ6uV+80yI9j6TDxlNYEqGEwNwDWD6X3BCB616TPeMn5HM\nvFTyG0i9exBT+PcI9aobUTHlh/DYtRca+KJlGrI6rWtfvDdw4uxrTLuRlX01\nfFry4Zxxo7TccLdJiZaEsuYnsRxHnUC0IT8/AOuIjxbFb7xLcvGx+7zrz5YE\nB22TmMtbIscOBv1Od7IWf2nZAK+l10gIwzSaea7RGS7aRwOb8ccMSR+Xsktr\nII8X05VzXsiYpDVVCbxY91zOf8dUlH2n9rYF0y4hIdEZnWxkXZmogGcB0sSL\nVzudIEw2/tmNOvBs6EOFL3jh/4USOGKKhXK8FhOHMOypZ5q1qYfcJ5ahU7ro\nYRzB761bGiXUpNY9X34tdLa8i7Xp8+scWSA2XIAHb2yujza4hdiU1j27gpF2\nrKeq3cqr2GL0k/ngpxsxFcqTkkvD6FB7pTd5UINzkxXvVsqysrgQS7Rm7xJr\n/l8C\r\n=8U3O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./dist/browser.es.js","./dist/node.cjs.js":"./dist/browser.cjs.js"},"gitHead":"52ffd8d574e61dca6ecd540a043e41c7eca208cb","scripts":{"build":"npm run build:templates && npm run build:umd && npm run build:modules","clean":"rimraf .templates dist","prepare":"npm run clean && npm run build","build:umd":"rollup -c","build:modules":"node modules.js","build:templates":"node templates.js"},"typings":"./index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.0","@virgilsecurity/base-crypto":"^0.4.0","@virgilsecurity/core-foundation":"^0.1.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.15","rimraf":"^2.6.3","rollup":"^1.18.0","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.3_1566401536120_0.6807915820093768","host":"s3://npm-registry-packages"}},"4.0.0-alpha.4":{"name":"virgil-crypto","version":"4.0.0-alpha.4","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.4","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"2ce80ce3020bc1e3329e291e9517f2d822c8fb1a","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.4.tgz","fileCount":21,"integrity":"sha512-6lgSS4ymy2UJnuAJ4sfxEPTY/gnmmV9k+81+WSDNw8VTsBuOCF93R5Jx1nKPMV3X7f4zP9/ljm/5DcNzdozgnQ==","signatures":[{"sig":"MEUCIQDRv4XXBSAL9aMAySE1fe+sNJLERNDCP62KkbEGZWHNagIgFK462367V7rw5dKvZVk3xTgGmBlZve2bRcqJuJZFgfY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5338724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXr8ICRA9TVsSAnZWagAAC9YP/2o0QwPXGy3Vaj3XlOAW\n3sCTZTkzi2r7eEQwMX7nfOZLO/Q6qM9itng+8QIMLNepHWo8haoJkbZ1b3QL\nC8av4hh/RZ4aLuJu5VASu6YmD3jJguLs6mGvxXFXMnRPPi8muVBVYu6oXh6L\naazwz9ppZ373O6Yz4e5RNcmJ6UuWkCN62sgOtGhRPfNKOEzsRVamu8mE+KIt\nUkOkhHfieb+TXZXQgWB2esyZYAiTYIeVvdqpTByfgw/hcEsn3gZFOKf672oU\nN16sX12+axrMPRgRDOSB/TDbyIqSDj+HkbEcUifdlyvkKbqUvbPaX66JZnlH\n2KP14fOxTsP1vQQmrib58SIHJ7YXRPWzIrCNnrNw4XhlknLE33+U63JiNC+b\nlNr1lQ5yGeVEQh2eBM+opv8pod55Dlit7hPC+gdEPwmcmgZ5X/TQ03ltpOip\nHdn1VvhtMATw7cHs6za83+HVZyEeEwpduyhoRa0/UZ0zWhYefSWscI0QfOIm\nVN2kN94l7u8QC6202PUO1EJ6PhBpqGp/SqbIozxBOdR8Q3Pp1WuFIcfw4dY9\nJHEihPS/QNejwwUxxEOeUfUGwZQ0RUaTL8AR93oboGIaU/vuUUkbVHAkmzqM\nnuf7v+8rYvNDeTwEzLynulieV8VgIin0wwpgHsZtUwgAQRP80Px5Bi19go2I\nAD2R\r\n=1Dwj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./dist/browser.es.js","./dist/node.cjs.js":"./dist/browser.cjs.js"},"gitHead":"9f03192ae1a6a2d9564539dcb7529420cc74e103","scripts":{"build":"npm run build:templates && npm run build:umd && npm run build:modules","clean":"rimraf .templates dist","prepare":"npm run clean && npm run build","build:umd":"rollup -c","build:modules":"node modules.js","build:templates":"node templates.js"},"typings":"./index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.1","@virgilsecurity/base-crypto":"^0.4.1","@virgilsecurity/core-foundation":"^0.1.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.15","rimraf":"^2.6.3","rollup":"^1.18.0","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.4_1566490376404_0.17038967206078937","host":"s3://npm-registry-packages"}},"4.0.0-alpha.5":{"name":"virgil-crypto","version":"4.0.0-alpha.5","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.5","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"b9487371e7e740dc9e95755a93b8265452340a7e","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.5.tgz","fileCount":21,"integrity":"sha512-3T6KxalmUOfzEO3HL45+Qhc+UbBGb9box/a0NebPsnHmEhBQ73fxc75joZvhak+E6CFkUfb49Yojxaqu2rfUYw==","signatures":[{"sig":"MEYCIQC0spH5epFRyYXLwMhMFmmLV/EuWflC1PO7od4bAWHX/wIhAOY5hQpkhlcCpHDm34BhgTrYYYpxroS6/DNjJHJ9lxRd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5337748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZTbcCRA9TVsSAnZWagAAeT8P/iyJuWi4K3qZVGulFcDc\nNyeTn3OB1w61d5jAkug0I5BseoiWkytMbb+nea2qWUBoHeFsJ4cfV2OKAuBU\n86hmvLQe/lcg51IW80R6uKeN957eKlQ6+K1dLAp8jE2eTihoKAKC34d05ox7\n2DzQtrnEs4sIhMd8FZqIlP9doX/AALYOAuyANRgAEsfvej6YqOxR0r/wMNB2\nLEAaOJUp8Jn806uYJ3b3Rk5IL9+nYyB8AiIoNFMXbR3A80LAnf9FP0ZfMRdF\nPhsaKDfBgiLYv3xZpI9WDdfU6HydJy8ebe3VK5G4WG9/LLxepeaIkuhvY6ub\nTC/w0Rl0AzC8Qr3EHi8DLKJHx7N82JGC88p49VvUcviqcPl7IkeYBojuuTRx\nItc0pN6WMuTd0+GlaQWdfnyN72NYhPtDh9qu/sT4F28cGVTL0vcsIKci68Ed\nA7Z/nbO6WQLPWpe6ufmh1ff+YOxUGfy03I7xawPpFH1qIXeAuwDnEm3DZhSx\nA+QnuBCvAODrQsUL2RXbB+/KumxPFYXellRx/qAt1lqIFJIQu0vTeyjaEPq0\nCI2eZYiTiynAWVoHh+RPq+wp92k2t++mMSYEqBFZ4vE8N51PtskW/VTjy5wM\nMs3MytrUpTDWu0kiygSKdJfquekzUqfD6ZYEI8WKr1sPQuymgWDlE/9PNPjT\nF8k3\r\n=Vlx+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./dist/browser.es.js","./dist/node.cjs.js":"./dist/browser.cjs.js"},"gitHead":"3557a9edba8feaa1b82d6bd0728b860d1274e6a3","scripts":{"build":"npm run build:templates && npm run build:umd && npm run build:modules","clean":"rimraf .templates dist","prepare":"npm run clean && npm run build","build:umd":"rollup -c","build:modules":"node modules.js","build:templates":"node templates.js"},"typings":"./index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.2","@virgilsecurity/base-crypto":"^0.4.2","@virgilsecurity/core-foundation":"^0.1.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.15","rimraf":"^2.6.3","rollup":"^1.18.0","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.5_1566914267550_0.12081495357947492","host":"s3://npm-registry-packages"}},"4.0.0-alpha.6":{"name":"virgil-crypto","version":"4.0.0-alpha.6","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.6","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"1400535c4905c1b73dedfd96172e99c0c8ad3056","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.6.tgz","fileCount":21,"integrity":"sha512-fnSX26cJS3WNildSIxcczqrBlgo8soH44R/GSwEtpfv1w5dCOFNFOP0SmbImQyNP1zH3SzSNWCT0APY7h7HzBQ==","signatures":[{"sig":"MEUCIDP8eLJHFXNd3/FylTQ4JKu3izpaPNaxTKEp9orNHn4rAiEA5ZIEI1rKOjrafmpP4/TrFT9EIYxeTVDrZiIbo+VSBcs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5337748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZpdvCRA9TVsSAnZWagAA6/QP/3HYtXQqWSlPG+XSlfTx\nAj4HUdw5ub2moUdk22K+2cgS+ESI8z3p1Dt6F+eTGMtIMRFnsikkR0ykMFqp\nuOP3QtT9UThjBwVKZYP6jHop8GxlIx83NyuXilO4HrXbCvA7728eGlSd9aL/\n+WmphXG6DcXj2iOFU64Prc7Qtkk/n5BDPAnfdjPSA4Hvx56g0gSJgtpN3x0u\nZXvAP1VzIcgSmR0rlMwMZ+OcBEudtHvI2mGpEwIur04y6LuSLyFWaWALlRpE\nBmhpHBlbvUzsDi0uTfULpVbdbot+TkG+vo/+JqaWXlhh1VNayfbu/c/KEKqb\n52hd7nSqZCLWu2na7sD8L5HEpU7TMPmbcTAEmdPI+ImDkleL2XDgbTpBe72Y\nnA+BSVxfOm4wiIWvAzAo0jxSs8Qr5kMdk5/6UiIqngxQL/lKu6u1rfaB4iLC\nIKhZal0JZ+haaUDX0G+MHRPB2B9MwTOHy3yRAIlGMTBMt69VlP1TxzCS2zy9\nRCc+rirglCRR4fauxdfTIbsACBhQ0Jyq0/2mlqTRy1DB1s210W9ExjZBPVrj\nKhCOR1OtQhw/d2Wu08bFowG2y/1Jw1jCEyTR6lwhh9x7Nzs/leDqPt+akWW4\n3wo46h+tGDPmpmjsv2JZBcyX2Qe63gBnEv/YChJW7bQJ07M9J23SiJR6dRW7\nAle/\r\n=GbJA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./dist/browser.es.js","./dist/node.cjs.js":"./dist/browser.cjs.js"},"gitHead":"6c2120a7ce2cc57e8ddc9cb1e35025b4d3ac4a3a","scripts":{"build":"npm run build:templates && npm run build:umd && npm run build:modules","clean":"rimraf .templates dist","prepare":"npm run clean && npm run build","build:umd":"rollup -c","build:modules":"node modules.js","build:templates":"node templates.js"},"typings":"./index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.3","@virgilsecurity/base-crypto":"^0.4.3","@virgilsecurity/core-foundation":"^0.1.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.15","rimraf":"^2.6.3","rollup":"^1.18.0","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.6_1567004527013_0.02715722760372663","host":"s3://npm-registry-packages"}},"4.0.0-alpha.7":{"name":"virgil-crypto","version":"4.0.0-alpha.7","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.7","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"082cd696959890bde5e6b48e9399c22b28a9917d","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.7.tgz","fileCount":21,"integrity":"sha512-whTeJMkVpKSnJ5OZJOUZOTyPhbaA/ACLXe3hx6HiNP90RbEC8QKOLPf/MRkJiEsPSLOA4/V5b+80PfQiNDO7bw==","signatures":[{"sig":"MEUCIQCjd5CehxBs+YxiJKAxPBXIDAMbE0p6JDHDy35xJGhlHQIga+c3W4a200fU+vNP7GeCsF3rNkCTzZWkBKkBX5wQsvM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5337748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaS50CRA9TVsSAnZWagAAFg4P/0JFFVgZGanQ2LM2aVZQ\nDHFQIR1TCZf3JyFGje3yiOuVG018DFix7j41hxrV7oiXs4EmE5BuuQDHakGX\nbGkzU/Z/qzdePDQndr8h+v0NwsB2T4rc1dB28FqbuQpXpK02w0j9EFxHF1TG\nDLiPKqiE2s2IpI9n+zon1CQCTNdcgHvjGqXwrd5j4LPXx5Sbu4AxhuaGsvMa\nLYxHJCmoDOfisKfx3LLGux/BoHWQVwdpjQw28uyhFBv3whZS7q9TLXA97aQ+\nomD5UXduCBQGYa9NqIFcNY9c5nT0ik/IeSiuJ5Vv3AMu7Sv1LYsKzzJwkL1i\nPb9Yy2tTigakqYYV6XJzX/S4NFiD5S67liLLX6aaCWVUrDuKZZXyVavMpHJA\n5JXGGbdPRJD6N2i7Lfko4WmHNXy0ByjglkgJktwCRO9AIHIBe7TxKc1DEHUk\nHkhhXBNttFZvdyysxJ/wbWdeWxCD8g9u/2hE3/gS7jcp0gXAPXPKu9uishSp\n9/Eg8Y21jvZaagXqUzTXKmktLd1q4wKk/Z14VRVkvjGuppVvDpjXdZ4k7iLS\npt8WnwTiFZcFFeccvNml/zshgH3oiQGw3PIeq7/sqWKTDIgQXEbiLcXVgu7Q\nE6f1q/OvTIysJXVaWSft+ImQ1txP9AVGJjdw+6gEeJjj0tH9t7+cH6GsZhrA\ndMKd\r\n=4Kbo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./dist/browser.es.js","./dist/node.cjs.js":"./dist/browser.cjs.js"},"gitHead":"42262417cdea5995ebc984c7811e77344a315881","scripts":{"build":"npm run build:templates && npm run build:umd && npm run build:modules","clean":"rimraf .templates dist","prepare":"npm run clean && npm run build","build:umd":"rollup -c","build:modules":"node modules.js","build:templates":"node templates.js"},"typings":"./index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.4","@virgilsecurity/base-crypto":"^0.4.4","@virgilsecurity/core-foundation":"^0.1.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.15","rimraf":"^2.6.3","rollup":"^1.18.0","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.7_1567174252536_0.9747402017171363","host":"s3://npm-registry-packages"}},"4.0.0-alpha.8":{"name":"virgil-crypto","version":"4.0.0-alpha.8","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.8","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"3ef378e5e25a54b1a1dc9b0d6c25e1898025b833","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.8.tgz","fileCount":21,"integrity":"sha512-81pGuJdNpW2rxv79+asJ3inRoUtg5xtA7OrHBQZWyKK4z7XlSvXP/Mvgo2ToeNC+wd7PGHMGT0NqYhU5q/IrBQ==","signatures":[{"sig":"MEQCIFRUx8qF/fyvdZsaj+YQ1AsqO++acleq6rnYA2uHW+z4AiAH4N/+xrKuxNuFRCAae/xL2kZC0yIXYzP6qmBbcdUVYA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5337832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcmZCCRA9TVsSAnZWagAAh+MQAJgCXpH7IEil4GYkwbmD\nvuGC8GFsxMcvAvvrJDO6b9QifEbv1AL9JNFJFGSThEhUBTUiQwnIU89+W3hE\nefZkuoKeG9OXdFZsFfvDzOtI3LnJQuVG+kzJYeDD9um7mzhD0Ksh5YX7G8Cd\n4naYW8THec7u0FRRQI1T7V5oaRqLGOSFt8xCOJn1IoBxJKJJQYfLMiF0kVtv\nxfwlnC7rJHjOxklHNhQbONODcFckDnRt9amfHMrH0dLs6Qbkhnx/6oLUYChS\n2fDsFwihjVm79pTLcbm1zyFSY2JcYeSAU3T3UBwODYBjh+6FE1lzRKx7aVYn\nTcTeRFsmQulpFo1UsrZtMLtqvfYRwqYbEIlcJnmC6OyfBKRRqCyA+gk+bJfz\nI6aFcp/7icxtiOx0XnkQxdDyMHfIojPf6vdwuigEoGzLfRz/AO6qwFLxDRRL\nQomErSV5hZv3ny6J4rx86ldL8PVbLs1uwQZmvzXiFIXVMEh9D26rEe5XX+Ai\no75dT0N/yjnY2/kN4Fzh1S+CIjhtpYUqeo75Zrln82O06kbDjnXUqGiwAo6h\nzEhakzTBp7GZD+p3zy68z6AC58uzgz8mmNGf51RLsoQpm8Mzjl6N7WSNBOVo\nSHFLsgnRyu9Fs/GVWzRg4h5AhVEe8V/v8BF/cD9ovbWHPpDJ90pqOjcyqwVo\nB5+Z\r\n=DcyW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./dist/browser.es.js","./dist/node.cjs.js":"./dist/browser.cjs.js"},"gitHead":"6c0d94b0bb09773b34979c4a6e7f1119f71ab3d5","scripts":{"build":"npm run build:templates && npm run build:umd && npm run build:modules","clean":"rimraf .templates dist","prepare":"npm run clean && npm run build","build:umd":"rollup -c","build:modules":"node modules.js","build:templates":"node templates.js"},"typings":"./index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.4","@virgilsecurity/base-crypto":"^0.4.5","@virgilsecurity/core-foundation":"^0.1.1"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.15","rimraf":"^2.6.3","rollup":"^1.18.0","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.8_1567778369981_0.6599931098323217","host":"s3://npm-registry-packages"}},"4.0.0-alpha.9":{"name":"virgil-crypto","version":"4.0.0-alpha.9","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.9","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"e7edf6ce34989b94e30c016924d11996ac0b9fde","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.9.tgz","fileCount":25,"integrity":"sha512-7nfNy/nUn8Jr+xlVOCotQ7GTSth+d9PC1M6d8FN/BsXuv3wejLGXnXpFqsie6DO/nqL6dy1WRqTX7OCzXXl1pg==","signatures":[{"sig":"MEUCIQC8y36ZibxyYTILWxuaCKRQJInGVN8SO+c+HvaSOt74tAIgLoFjfn7CYnK4WWMr7tvDy3izU9s32GwOnXUyVLlr+Tw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10021710,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdf7/KCRA9TVsSAnZWagAAACsQAJ4Cwn1KEg8pOj1ue9t0\nkJsynqDae5iY/p84dS1n3UD8pleacvEsxgqPHuCqVoeT8ECsi9xgKR0ZgZzh\nCjnxHX2Twl7BGQsl1jko0n87g6JK7Q48gCI/M/XaZbD7dpk1yfJ17FkNwpvJ\nn0H9M3SNc38SpBiAWzuVGF4h5mKJQTlOrlWZouYCF4JIvMpUx2uf+WPnGCoh\n9VdL2/JHqITsWtckpF3Fy+jlbkmasljRD9sm/G2n6FscSSZ0cy8/+hb6aVMR\n2vAInGFcth1SZkmkzl14i0prinvNAYJljZ6hgk2R9gNJqQ4nIZCaZDbKSQoK\nFfnD6CIzjTvVnfLjRo9rNVxb3+vODz5ufg+CKAtOkcPmetLeMY6N1khsD2eJ\ngdEn4CKOxWfO/J9vDSHaxEMeHhC9xghpls8PHl6TYmja7Y1+prbXCMot2Xn1\nKJDhdmSoHv5FCViuNGcsvPe9WyAewtwR+03tDKwOE9xX8yayi+eY6MaY/9KQ\nDquA2DCGFzd8k5K8npyKqjqCJCZ/hMwI7T6XLDwFpw7zYQvK0Ht06NGCqFCX\nShKaRIgReGuU7oOj2Ffs3kWvjGz8BMzKlbAsuRUK5oRWcrycxPoLWfk4lBCt\n3D6gzT7/9szPa3DDwJqXR4yPlaMAPA1dOr4Tq8oWp4KwajbokXwcWv/LCHhL\n7Hns\r\n=4yRe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"gitHead":"1c18086a7181179d6d357009e6f5b5b71d2f11e7","scripts":{"build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.4","@virgilsecurity/base-crypto":"^0.5.0","@virgilsecurity/core-foundation":"^0.2.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^2.6.3","rollup":"^1.21.2","typescript":"^3.6.3","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.24.1","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.9_1568653258172_0.2532207938453477","host":"s3://npm-registry-packages"}},"4.0.0-alpha.10":{"name":"virgil-crypto","version":"4.0.0-alpha.10","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.10","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"48c6a018a0e6666744b06b2904e0963f84dfe4f5","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.10.tgz","fileCount":25,"integrity":"sha512-YMKiHOkyxNPArVcHZjtiyyp5zTaIPXGcFH2AwgLbwlwmj0SbqhaZZi5s21cZmkWd2Ev3WnVEEWkEGXI5vepzbg==","signatures":[{"sig":"MEQCIBGvD8k+7U9paKV0MWDa/7dOCCFdAcBMl1In5e1Mf/eRAiBGoJNPKYJXC+smX3jMVbr8/xkSawEp6aKVCESGyDyHXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10021717,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgOjWCRA9TVsSAnZWagAA8XcP/j4vKugJlB956dl632ao\nXwQ9ZEhDuo2aBRCU5Vl0abwrQ6f7uOiY3TXGR8TkBjx4J7QALaUrdYP98nER\nTWx0zLHvHEKvQ80VqJTfxq3eQEsIJ7wum4gsyT2mka92qMA6cbdXU4SXDNj3\n15WCfwZIf29b1heo42GUvT/DV59/VoIYfleqS5D5ircoSvVF4/4QJdwkwyaW\nUxxf16JJsUQ0H9PLCHRWAvl5hyehR+bhiF+CrYJBiPOVSdZuc7JDabgLJlXn\nl3AkU3xG84oCk/JgQiNJVbnYMfAiBheRIoZGIAI4KMmqv+de8Z6AaG4z2xGu\nHXPjk3zfy1MWL5CLv1hxLUXqkEvU1caOUV4/AN8ImWadYUtpS2Ewkz9f2PCz\nPPSItQnFpntO1QgbObMa2BVodmI30RHUXA41ywBkDpQv0aOQAjajjJBc5Cpc\nNRLyNGCBKeM3CZ7CHqI3NWocQ5XTg3HQ9Iavbc24O3EHV4IsDNgZ5WdlYVHS\nV3vfSODbZ1iLz/HoVyuEsNDETeo0Z/n+1hhgdOFiZEE0gF67J1UjD8d4M6ji\ndKe1XsspTr0rYWe/IEmX4lMZ9dAm3G83j/9N6GJ7+tGMEldArg/X+ug0KYSQ\n+TipCwSPDMu4Y5iQ7dGPoAgfYEbyQtx/VN9gdCNeX/9yE/0+uZLHmPQ66QRy\noUxk\r\n=yZZu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"gitHead":"b2b76ed254ae3f19243d25215435142c9f84e0ed","scripts":{"build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.4","@virgilsecurity/base-crypto":"^0.5.1","@virgilsecurity/core-foundation":"^0.2.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^2.6.3","rollup":"^1.21.2","typescript":"^3.6.3","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.24.1","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.10_1568729302260_0.023928479750009002","host":"s3://npm-registry-packages"}},"4.0.0-alpha.11":{"name":"virgil-crypto","version":"4.0.0-alpha.11","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.11","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"d533cc8a554395233968897b3f22b6740a713606","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.11.tgz","fileCount":25,"integrity":"sha512-rm3Oa5q0bFXbqtU3kH9WVLjhp6daNp1ylg1UJyvQ6r1ZVl9jvU5SrntWgcHcd9Y8Ei24RaPRsXFxt96+jkRE7Q==","signatures":[{"sig":"MEYCIQDUl8DEE33o5kPrGpUj+smTBePkn/OWTp/EWOKXdmeFcQIhAI8/XeOeghUpbWdLj/3c9Y0GWH21sZJE6ixsfdUv4doQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10039163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdg1l2CRA9TVsSAnZWagAATLEQAIJVQeJ29Hgm8gqB0m+i\ngjcOJtj3leMkeDJWpp+BrruSNG0BIh4yHS38pw1DB2k2CGeSGVDevQ846JzY\npJlLKsWl/MGmpxaiw3gaqTRiSeBfaxLVLvhWmz+sfn0KK29HP6ZsgQSSei3C\nq4m2HS88QD4WS3NwgxCNEvvBp4JfCkMlYdfuP+QwJE798D61p9XiDQGyQXYL\nS7bl7J40cdkt85Y2TWoNm9nMkaie8+DUMAs123vmuOfYkyoekU5bc/83YiqJ\nPZqZOvti9DpLNy0Veh8t1DQcbxawrYZbGceH29J7/er3k9ol5DcZjS3O0bMU\nt/8NN2EqScljXy3rpKqLhV1zicQyt/tclglX10IRu+Mr9wOGB213tj5Z+Kgo\nQNPggkbja4e+MObwg9fNie+BRiYYEO8MPGMURKbNvu5sJoZoRXEg9PXfsHCl\nZGhXjX0+5Yui4aTkC6vC2Iiwci821tYYCqdrtzXEUpNDl37Rgqd4K+lYbdCn\nziZaPyXytcY/Vem5kCDUFyj3romnKek9A5b5rh8EdapHlIJA6XKp8SEpEbaN\nrmk7kUr6VUrY0CYQeAqSDkE5cnAzcjNExWPrQXmVRHMFkV/CaX6od4bWWvlo\nYcQkG3twirT6X90HA9ZO39YMaIBtLA3aNtVhCySprpY8Loz1bCyup6F9t4Gz\njxLq\r\n=nj2V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"gitHead":"5c84c483ffcf25aa9c151d36c4fb9a915108ed7d","scripts":{"build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.4","@virgilsecurity/base-crypto":"^0.5.2","@virgilsecurity/core-foundation":"^0.2.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^2.6.3","rollup":"^1.21.2","typescript":"^3.6.3","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.24.1","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.11_1568889206075_0.9109087258672175","host":"s3://npm-registry-packages"}},"4.0.0-alpha.12":{"name":"virgil-crypto","version":"4.0.0-alpha.12","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.12","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"35ce12d1d4c3157bf7d8b3bb181d21b4e0853e3d","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.12.tgz","fileCount":25,"integrity":"sha512-VVEXmPOAWZTAxil92zZWHYjAIuKLyIZOLGf45qmmCLrv31oGy7+W/3chTXoYNjz+5IXOFcoofv1Vz9riNEjIlQ==","signatures":[{"sig":"MEQCIGkCR0pb32tS4yVrtxBHsQBJYj0TboYXiST6F0CBhZFKAiBNSQOnYAUjcgrEBwfFS9n5pCTDHN1QYCMB0inqCuhdPQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10040523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdl3SxCRA9TVsSAnZWagAAnQIP/R75TaDJf8PJv5tza4Kv\nVWuBAnVbQpNflc9TzbIVGQzvxEwH2v4urYPMjjqVxQuJRoFcPl2YR9invyda\neXgxP95WHHq3kWeH0nWsGwcafRETtIPq2gwRkSMZDQCTk/bfUpRA6tSJJJcN\njktJoC3WyyLr5ngKlBMi5VWyEvH9eiXVpskN8faYc2Ub24Mb8a3/BgGEdsUt\nvmU+0KHXnRgD3fQpp0bAIXEno5jkSuzG901Rg0LqmlDE1kit3i5y0P8sazCa\nP+IwQW7ehSdGSsy2Gae2stiOkcFgMw0YoCsSqGAYvUv18qx253vCksUoAtcF\nC7rvfJUQskNqNwWJ/IZiFWDRH//F/krwQAaVokUpvohgVFEqyjXgbUbsaxO8\n+k+3yYH07u4MJlrQWivtfdA3Jf1XODrE/GEpOCjHhZG8BVWYfQDLMMqq95H7\nGOsabDqmTJsYiVccXO/OcOWSUDyg5TN4GXuVyG7DyoPVzasodnX49pkIhld7\nGabpiEjIMOhStSmf/jbsjPSrgeFCCkJdzDXjWGbmt6uRfR2sgXM/f5S2Dxyn\nATxdFdARR7d73Ly0FSGKyRuyOqZjktcZgv4ULXim2xD18MqoUbJ3f4szbwfy\nykpTI9nov2op/rc3zBSA0mcB5DiMTW2RVrLcYAOo/Ogvd//SSqbQpRTABda5\nl3N8\r\n=iQpn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"gitHead":"65d9506d37ad340dab2d3954c5902bddf2e71c2d","scripts":{"build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.5","@virgilsecurity/base-crypto":"^0.6.0","@virgilsecurity/core-foundation":"^0.2.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^2.6.3","rollup":"^1.21.2","typescript":"^3.6.3","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.24.1","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.12_1570206896714_0.3541183510679409","host":"s3://npm-registry-packages"}},"4.0.0-alpha.13":{"name":"virgil-crypto","version":"4.0.0-alpha.13","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.13","maintainers":[{"name":"sun1x","email":"s.nanovskyi@gmail.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"96a22f3d2d6db2ed24cd8172e813eb90d64de0a0","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.13.tgz","fileCount":25,"integrity":"sha512-/YtAhCv9GKil8KCZh1cMNDXvG0oySI+gWgVsw9aG3gFi4y/TXDFXVh0UqWt/D3Ttx/ZG3+K6FggYYUniiiXE0Q==","signatures":[{"sig":"MEUCIQCFlhDMQXMYiurmEkWQfxdkR/Shw2w8IvINx8Ho/1YsVwIgCIX95fu3Yq1ua0KeVqt4vAvlVTRmtnnnoLCumM2H67Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10620225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnLddCRA9TVsSAnZWagAAVcMP/255c9/btus28qe+sefC\nO3gVrLpI3k9K+0eKp4h3ZPCC3qAvxThDGELA4w4be47NWKgr1bmXoFUE8hJX\nEydOxanKwlQEquLwmT0cwJh6RGW5KzaJ47CajgZFwD15zbmbUkuhpEewv/vg\nLadfaHMyLOPDSgeguChEwdNg5/xkXYxyFw95FL21jCp7g2JrAZxqPUYfAmBU\nhTRrTuRO4JSvwXeA1SejjX5OB3782gm6tDV76sRjj2jV6tM1ZoG4zEbqgB7a\nP2vZG1hsJ09b6/mETGGt4xXowW6DZzjHfN4zgZms199bNhNlwy55+9nRgLrs\nDb089UATvx+qI8t9yGmhk6oa47qD6YxT3UyGUSLO2RGg1UQT5qCq3CTVaNsM\nSQNMVAwAzPvD6zBt/0EtslzloWoukgVzpgS4Jg1tGJ451ZbM3GaFVaXvGDuu\ntR4Ib8bQjxc58uPpB77MUJv8oNTP77nHHMCYUXp6pfpNgzd2LR4M+osR7peJ\n6VFKnGxhtrazcyGkiIKWoZnNeNt1AHRuT4pgzDSPG92DvU5a8Fc/uM9QuZbL\nVJvKmuL563wxai/D/n/4OomRHDfSJQ1JmV2g6loxG0bZv+/I6B95bfxEaJ/o\nMUyKqjE+yxnw2QnM27s/IlYlcHn2ttesjqIJxyYgqIaX05UT1B2/5KRHFijR\nplxi\r\n=wKFu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"gitHead":"46cfbc540ac3c9a67733ab3f8d4105a1db944ceb","scripts":{"build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"vadmin","email":"support@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"@virgilsecurity/sdk-crypto":"^0.4.5","@virgilsecurity/base-crypto":"^0.6.1","@virgilsecurity/core-foundation":"^0.3.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^2.6.3","rollup":"^1.21.2","typescript":"^3.6.3","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.1","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.24.1","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.13_1570551645179_0.6114993192095515","host":"s3://npm-registry-packages"}},"4.0.0-alpha.14":{"name":"virgil-crypto","version":"4.0.0-alpha.14","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.14","maintainers":[{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"6a4ea96e53121f70abcf163e6494b453c95f0c59","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.14.tgz","fileCount":48,"integrity":"sha512-I/TYAbPlkiHRPhNf/2o/Drw97wvhXg3u/iLLsaFimo454ujrpuTuaGn5YBlVgr5EB42WRsmjTjv79dEdS86hpg==","signatures":[{"sig":"MEUCIFlM9hKo4OZmiiCn1Gri9k2cNLlleUWaq+LuBH95KcjqAiEApIV4kwfoGB9vSSk5smauUc2g9W0ZCTztRrtA7aA3L0c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10903206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6jguCRA9TVsSAnZWagAAESkP/0bhQ+xVCG8THE9HQ4+H\nkMM+KvoFKpDvlDuH9Rc9nbYuvvYtgwJ5D5Nq6PMvnTz84U2DGZdqpQ93XabS\nBsJomjf4WZgqMIu/qg32WeQLqWuBK/XqLLsLwXRUihFG1em424j5V+QvdfgX\nodCfQqare1Y0Dg0cDzmUAdIruUQtpFavp7oYUvDuMVn8+M1o/SHutuKROzO5\nwUfmOxoXzE0LOTRThsSsHE5FCnEyVT2DlNTKL7teg0C1Pc+SckS+Rl32CVsw\nNOan+yR1UeGKg4mEmMtWeitf8vLz+aj0kZBUlKBGqOSCimySsLNyuR6BqmJq\nxI9B5V/tgHZyZi0CbQP4b+FcFHafJzkvTtqWNvrLIo4b/GEP+lXtVxVJCtw4\nvMDn1953vgxhnQpCJGOCyxJvYv9Fczg1uO/L6HonRMlD0AZwzYu1iYo0UUWh\n9NvvIGs4LkugBJQw7hl82XewssKwFoSKhYfkePsL1k2Wtnd6wfcuv1lvcLNC\nTFWp9qOhR4PvkllJeIkZJpjgTod5xl1YDW2t1hFOCjCUG5Oivzy4zEsAwspA\nbgaB3hg8R7S2aZ5j79blcNEiphu6+tazy6wrAT9amBwEzexprJiulQm2L6Ak\nVhY7gDZOudiooLzeSFfe6yWczcA2OL9H+s0R4GdnIHxFY7VNtMKG1ePrpaOA\nHvJP\r\n=tQOL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"gitHead":"38573cae80ef4c79b62d65c780e530f26d070a36","scripts":{"test":"mocha -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"lerna/3.19.0/node@v12.12.0+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"12.12.0","dependencies":{"@virgilsecurity/data-utils":"^0.1.6","@virgilsecurity/init-utils":"^0.1.0","@virgilsecurity/sdk-crypto":"^0.4.5","@virgilsecurity/crypto-types":"^0.2.0","@virgilsecurity/core-foundation":"^0.3.2"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.2","rimraf":"^3.0.0","rollup":"^1.27.8","ts-node":"^8.5.4","typescript":"^3.7.3","@types/chai":"^4.2.6","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.14_1575630893601_0.8375698523109198","host":"s3://npm-registry-packages"}},"4.0.0-alpha.15":{"name":"virgil-crypto","version":"4.0.0-alpha.15","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.15","maintainers":[{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"969a8705a60b23eb8e180ddcf1a6077088d2cc6d","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.15.tgz","fileCount":47,"integrity":"sha512-8Ndl605lMQGLfGPnlt0azU90q+4iR1XlSP7383RSDCL92bpO9zXlrDuNR3Brrq0/KPcrCAA6WSVaKCNxMu9TXw==","signatures":[{"sig":"MEQCIHp7rnHhRfmHUSYjw9d8G6HrZOIJSwdl7n1s7RnoiFueAiAhUCMUQds6FV1YOYu4oHv7FDR2pRrAbbwBGNz1m2tLow==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10908831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+StKCRA9TVsSAnZWagAAmS0P/jkXGlWdtzjOOTJ+2n/D\nkvrLqOubbyiuLos4pbSOxkzZjD1xclFFrh8mkWmxi7QrMuRXh2Ox5MN7p5UI\nA5gOHtuV5H4kscW8UNZVEeY7xQy3KbycXJHms2wtMmrndSydo/qUhtIK0F0z\nW22WjZh5yOJzTe3eqij03VaB7JEXbQM/JoHoK0YE7Q9JwF4xKi+RKz3DcUs2\n9xRzl1o0RtBqmBGEzXh5ZCPIvtGEcRBHT9Xb7M3Vq/3MvJgoqgPby10rHke1\nb5J088kMhpZ+Pvy8v1iLwanrFq7262I6t3klE6HpIATLyhGEWPlC8O4U2LNM\naynhjRnEZf93SORgth7GEryFEDK1QfNCrVGYE4iWEgFIoNfwrFTgt5mDbBVO\nuUEl9gkIxNZ+aiLBSFucHgPgnCOtsf0l5OyttCCnBs6OryZLRYWih25jSttk\nZW8kUdNl1nCtl2DOhuwIOoAhNwmN3cIeL/DFKTnnySpokMunPoYOASxYKmV1\nk2Z5dRodcbudUOZ7bXL87jJLMTYraDTbL0jd26sn+X+D7JMGJpkT4wC99a3g\nxlQ4JNRkNEGIrdm2cnHWcJ12yNmYqJu6BV5YxMBhLhkO9IvOOeWGs8oreZh7\n9fj/h2mlc3A/idZJULySviWZMWIXZZqNleo+XjRbMEmjTbUzbzJ0ATS2enEM\nySF0\r\n=5lih\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"ERROR: No README data found!","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"_npmVersion":"6.11.3","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"12.12.0","dependencies":{"@virgilsecurity/data-utils":"^0.1.6","@virgilsecurity/init-utils":"^0.2.0","@virgilsecurity/sdk-crypto":"^0.4.5","@virgilsecurity/crypto-types":"^0.2.0","@virgilsecurity/core-foundation":"^0.3.3"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.2","rimraf":"^3.0.0","rollup":"^1.27.8","ts-node":"^8.5.4","typescript":"^3.7.3","@types/chai":"^4.2.6","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.1.0","rollup-plugin-terser":"^5.1.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.15_1576610633883_0.9561084414375103","host":"s3://npm-registry-packages"}},"4.0.0-alpha.16":{"name":"virgil-crypto","version":"4.0.0-alpha.16","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.16","maintainers":[{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"1b7975ef4677a7b105122fc22b3d97aaacbdca99","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.16.tgz","fileCount":46,"integrity":"sha512-NXy0CZ0pwN0Rji4oQ1DXlxztdJJvNhkpbf0b4FHTzzvTuMdtNz/GhCWEIKbPTzTQ3XQNBmasD60yzgutNp3b4Q==","signatures":[{"sig":"MEUCICDv6uybkg8B9H5gZrR3RMSTCNIos+79cn+zDS8rdfZPAiEAwkndK7BYoEiZy+I/yOxJ5zkHpQqUqNKEcjCoeC7lEaQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12785383,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKEtFCRA9TVsSAnZWagAA9RwQAIfY3sqKEpk5E329HFnv\nY23XYRCVAJCIWMiwTqUbnVvKj8OS66zpEWILnuMCBA4dUytoOHFFYD9Hht7Z\n4neasMySAVsHKvqERQcOPDj3M8os7+k/ZGbWqujKJPMWaQn0Hmf/jxgAZW80\nBPgK64fmJrTjJN17F2gdk1lvHy61CLOpUFisjBk/frD0YuVt3yLAA4Wd1L4V\nQucTcwW7BdahQD8Z/LzRiSpwqozkld1soqNBiSG/dRKnEF1mkLJCSgOyNglr\nW7Tmgjj4vlAwP25z4ThCGwNvQ0+4C8WhM7CY8WdCTNUsIpWu6uHKqtarXa1R\nHvL4ecsthaTF2hErX9xGdWcjwyMrrCzrOmcBHF/Vu68UDXvVuXTTXZeBloOS\nUVARdUqGK+5C01O0pRqKrJqkh1w2eMedP4F5hQ3VGlIEAXqDRiPQQ53bh//c\n/bfG7vl4L23xEt1Jb3A3GotM6MKcutVwyRATl+1PMTIy4/lTqW+xmyRKsb9K\n3TkyfjM+fQdowZ+Rke8PMHtWYKjEvpNXhCqAxj6WsUJs1cZOHqj/9Fw+eoEH\n33LpHzH35N22fr+YHQszyFspNdpAYgUMDkncsaZ1eSa4TRTSHrYMvr5p5sDz\nPbQ/RkJ7Lbl7XjZHnGY5TJXVDbWIBM3UKfK4aNTmeH0FhSpgdnVzhSAGB/ic\nZyTQ\r\n=dl86\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"@virgilsecurity/data-utils":"^0.2.0","@virgilsecurity/init-utils":"^0.3.0","@virgilsecurity/sdk-crypto":"^0.5.0","@virgilsecurity/crypto-types":"^0.3.0","@virgilsecurity/core-foundation":"^0.4.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","@rollup/plugin-commonjs":"^11.0.1","rollup-plugin-typescript2":"^0.25.3","@rollup/plugin-node-resolve":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.16_1579699012539_0.52008800862742","host":"s3://npm-registry-packages"}},"4.0.0-alpha.17":{"name":"virgil-crypto","version":"4.0.0-alpha.17","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.17","maintainers":[{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"7cd7db41b02a866efdb6181f26b15d4bd4c6907c","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.17.tgz","fileCount":48,"integrity":"sha512-FzHt3OYO53Jt13ZjT8yZ53S7FGWdNcxV1r4CcM8Iyr2S4VjvJVCDU+A66hnkF2lqNerxDLe5pyIZ0DKcfuB/rg==","signatures":[{"sig":"MEUCIAJtbZYz7pV/o2YpeBodYPPlcwNjMZYXxDSBzGDZUjKsAiEAxy68RyREWSTkh/DtWGXs878PrD0SMe6E5paLu0rXBOs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13978493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKcgoCRA9TVsSAnZWagAAs68P/jIaTIKhGyQFMdSE3rSz\n5xtEqp4W0oiru9KijF450NVyPzZoaC1ZnSlUTDudhH3uqzADWW4vwGbkoe35\nKbZPTFVVzi6Km1tzpguixpf9UWgPy3OLK7HkQbSv9+a999I9nkqhhf4OJrJB\nZmyuDe2JKap7Na1C4n/Vy4KZ3qq/JblLj7D4R16k/W/lCYsYXGFBlQLLTt2M\nFuHHTkSMJWRxXqXnSXIVDJ5gqD9MSDLdkM1kCNlalh2knoefXBTECrvEsBzX\nUpHjp3/wWmNUTQJz2E0EVNXKTkUTYzCdfRejFhrnmf9xinzFbZ+f5YMFfD8E\nXz5lRGVgsSTPaHXR+TLnoV25sfRodIGGox4GKsf/p2taNC13qzXQxifw2I0g\nMSkH6acyvzjBvjoBTIbX03XJvudS1joi4uHQ3Br2QZzFBls0gXWCNc9eTITd\nii+p4dGlwijJ9aTda5QSeX2sLjSE8aHmsBOlBciawKrprRuli+G3Ypr8SxP/\n4tTyxo1EDMkrFxG1xeHeX92hdg+Ov1SH+VDK8AorneOw0CyhXNDCUjFnP+ji\n9QyKf64Rdh5IE4jo1/xNwohnzSAg8BSpFfZQpBYt6m7YXDERQJeRsxt6SKRq\n7OKI3+8Tdcapggc1guDvK031HMht/HuR7UUZViqUtCTxo8ubK0i/HpKaelyv\nTUvN\r\n=hlDt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"@virgilsecurity/data-utils":"^0.2.0","@virgilsecurity/init-utils":"^0.3.0","@virgilsecurity/sdk-crypto":"^0.5.0","@virgilsecurity/crypto-types":"^0.3.0","@virgilsecurity/core-foundation":"^0.4.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","@rollup/plugin-commonjs":"^11.0.1","rollup-plugin-typescript2":"^0.25.3","@rollup/plugin-node-resolve":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.17_1579796519530_0.7865205590306288","host":"s3://npm-registry-packages"}},"4.0.0-alpha.18":{"name":"virgil-crypto","version":"4.0.0-alpha.18","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0-alpha.18","maintainers":[{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"b3742d92a8c5ab25b00a6bb69a8da6277e673c5b","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0-alpha.18.tgz","fileCount":48,"integrity":"sha512-/SWt4CjEPIB0tY7HdyJIsePowo2eAVmNuGki9PcSMKa9p/DR9t+wsi+YVE5m5btc7YzVvDbymbUTXflYR6Mk0Q==","signatures":[{"sig":"MEQCIEG+53A2E0zODkZg8SSlxyrx+IbH7bvAIcFWize7U6CtAiBazsamCuDhgvcYa5fhM+WomwLnMY2Xtf8s3L2j1Jgo3g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14161851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKschCRA9TVsSAnZWagAAhc8P/0LAvpQnorsflgXSD5Ow\n8mG7MSdXrqxEBlIRL/OB9Awy8jTskKeXcJCUWP7LBFueUNu1Jnt/EulYhJE1\nP3eIb/NYSqw6lInkQ30AJlU44HNZySplj92dhoFLO6Ylp6s+Bzz+u5sUDjMs\nXJrWA4QzW/Rv20xK0woRftBNf5y+hZvfP5DJjFx/ONEU6aaOWwwkhXdAjVue\nc89YrxDyfZiA2rUf73pOymDt/MOBf0QLhQHuTd7GFF39G4iAAoIVxLTs0Kzy\n2QVs0bPSAR31BdekfA5KX3bmX2OJetTDaklpo05p/+1uJj5vni8+cYcM94FO\nRN1oVPZkQrYcrW0xf4RJ+DHkanOySQRLO1wwDuogQkvvEG5RlTASL0VPMSen\nIEmwWbayPMsk+PCqfTQun6OWy8Qi4ilVKwbSi+XZce+xzd9ekO3Nf/TSDtoz\nC+uuA3D7uC41u1N/8P/EY2yIQgXlYpWUC7YA301dfnVusllDeB8xghcVhyoh\nfHZ4MeG8hal6tHVT7TCw7cYNyn4LW55btKj2s+CxVcu0Fvfrpz8WOlKgE4Zi\n/qm6hDPR4GVrXu+iJD9+VGRCCamLXWuGs9Pzz4UkPKeWNSsOamldGrKLRci/\nUj366asSnFyTy6d54606wKFjTM1roCks39cenmTvOBkNmylWt91Yn+ngdk7f\nx2Bd\r\n=eXPb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"@virgilsecurity/data-utils":"^0.2.1","@virgilsecurity/init-utils":"^0.3.1","@virgilsecurity/sdk-crypto":"^0.5.0","@virgilsecurity/crypto-types":"^0.3.0","@virgilsecurity/core-foundation":"^0.4.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0-alpha.18_1579861793307_0.22383708480643505","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"virgil-crypto","version":"4.0.0","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.0","maintainers":[{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"vadmin","email":"support@virgilsecurity.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"f18b1f1e60ae241a2c3958b8e65c9024de4453ec","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.0.tgz","fileCount":48,"integrity":"sha512-+wG0HAUgGyN0Pv0ddy80aAnKfIqZj2jnjon7RVTyjB8xUm+V1bhnCoTXqExeAQCeH+GkaZ+7rXKtzAcDSzVovw==","signatures":[{"sig":"MEYCIQDVq3KmfYpJ+uIvYTcqMl3UyCvf7tM58NfRDXuyYCdN7AIhAMdKiPIje32OWbW+mKBYOwiBvFcjcc3iMD08eBv3R7NN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14161841,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSraZCRA9TVsSAnZWagAAa7QP/1jTj7XmAnqL56QPjb8r\n1/CtxJrhCVftqYbAutfaZmC89MrqCSEi/a1gkiYh7rjSDvTrLdRS2U6MpLC5\nqwv0bpO6Perr6p5qBc2IwGc1Ba7+ctqTDcH5LCR/XCKouvRFbfslBSPzLlWc\nAANI5qQE/SlyhHxCPPQjEBV8n6H7oesaonbTxApmc+gZZyJrMV8jjQgpZWPq\n+64vkJ3J0ZN/duS5mKLciWE121i7sxJjI6zyOTEESc92gqwVDb96monDYdEy\nsm3lTWGt7gybhF1UC6fNYsvN1nlm+BmOVrGGLx6uR/2eC6NHuAde9LCSHAMK\n7SYJCf1mIb9+Do6BjmbFiyVny2FNiS37cUxa/u5AQ/Ws+jfPADiEHvrm4K/e\nIL57t7Acy+bdCj96l/jwtIIiRMAg5gBxNA37tCqfuyMtiCfSt+KcZ107JneL\no8jjkjiIHJfT7Oagd4DCy2V/c86gn9RVhYrJS7xqFtQcjyJXOrqBVZ2gnHrR\nWoaCHhR6ax14rtnRJwLJFvPx1P0Be1y3/NbYAsCYpfIxibZx9jaj0CivIqLV\nQy7oQlGKNkxSJiyqDKzBo9zKUAkYG3mNqcKUIvdjQuQYjr+eCvTmTSKj/Kd/\n+y1rk6O8V7EPfjXS+aG7TyjlSJrQrUmgLJnOlyivFR9mse8wYEaS7pP2Zkdm\n1yhA\r\n=F/xo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-javascript/tree/master/packages/crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"@virgilsecurity/data-utils":"^1.0.0","@virgilsecurity/init-utils":"^1.0.0","@virgilsecurity/sdk-crypto":"^1.0.0","@virgilsecurity/crypto-types":"1.0.0","@virgilsecurity/core-foundation":"^1.0.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.0_1581954713421_0.026798061938817508","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"virgil-crypto","version":"4.0.1","author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.1","maintainers":[{"name":"dkosolap","email":"42dkosolap@gmail.com"},{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"099b0743258d788d04514965146350cf5730e2e5","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.1.tgz","fileCount":49,"integrity":"sha512-HonY6Vpv8IY5r9MQ2xph3T2atyEhERE2juCJJoPqZCzLYQ/fPFe145gGo3FyMsixNHRJ+y2/hifHjdo/GOhNLg==","signatures":[{"sig":"MEUCIQCk9XFWJQuXj5LSWUdDVIXc17WuQ+ROIPaSI2tbox3XkwIgBSRyYqI5laRbwXxICpyVx8C6Ag8DfVmLjGjoWe3uhts=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13049703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJealq6CRA9TVsSAnZWagAACOUP/i5OMfptEQAIRoFlNoG8\nA9ev8dNcxbkuKNhp/8FawsdkdF168L224WVJEG828ps783I3VEMVAtx02u6b\nBQyqSk1fObXeevjOdTQNeY4TFSklVrhr83DCotNdCGNxApx2249UsegyvIvZ\nnI53Afor9lZWAP74u6hu/puILNM2hlOoi5z9l7+xggF/6bO9wEipnTAt/sy7\n+WU4zdBiB163VlcCERcjhNPlUIXWn4s+WfQLK3UM70x4FgkB3rejlVO/JDcE\nSea/+J125MvlUmK6e50Nm8OQmaoX1KYY+bw/68JMmjTxrWaJxJU3wmEvedkl\nrieTdSjkHZ7/XlDccXzeCvSocrHiuFCcBGwERAyMc/r++MwbNeYu5p8gKC6l\nN+PImnG4+CIERqCAAdVSW4PZeyipp+jJfVx5aTs6VQ6fxWJSMCs6nohw4KTA\nvoIsnlZ5ohPuqM2uzuGCjHQVS/TmR/q4s1IsgJHgKCXKTphCPNcDwq2oTRfY\nPYRVUT0CrlcgbNUBB36czhaLebw4kximI3D/hghhKxEXGeA98sA0remdDKF1\n+yNGkLrBqjeZ0UW/N1swePqTCDYA9ETLSBcINyyDAmm4bxuNIO5MQ2h8yvVO\nqLcaSt9Dga1C9xP3DuQowBfIC05c2ilaT9NEwDlg0/lZltaVOnZknVKOdVaa\n29De\r\n=TJzG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"@virgilsecurity/data-utils":"^1.0.0","@virgilsecurity/init-utils":"^1.0.0","@virgilsecurity/sdk-crypto":"^1.0.0","@virgilsecurity/crypto-types":"1.0.0","@virgilsecurity/core-foundation":"^1.0.3"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.1_1584028345392_0.8437768823397807","host":"s3://npm-registry-packages"}},"4.0.2":{"name":"virgil-crypto","version":"4.0.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.0.2","maintainers":[{"name":"dkosolap","email":"42dkosolap@gmail.com"},{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"180332bc502866916c808f6a0ed0c92638a43310","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.0.2.tgz","fileCount":49,"integrity":"sha512-wjhj8eBIDblaS/6TJK6LyKfgiqHvJsMcJABd6tc+6IWbw5Oht0dLosIMY+n+wgonPJyjrDqpu/Te76bxqQQ7pA==","signatures":[{"sig":"MEYCIQDKIl0ITA6YXiBgurbXS8iObv4d8N2FODukWcBMJ3K9jQIhAPeC7EpVBAlvuPepLXKd5mxqY3A6U2yd3c437MlhHfrI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13053576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJea78lCRA9TVsSAnZWagAAOg8P/Rd/x1ysKieI/Q5xToAS\nOKtuLGn3gONvJrxutpsDCI5kGA60ajj7IdltuUD6uF5TrV9+rrCD/M7fzdTn\nDvTA+NfIek2x3Sq1sCdjIr0gGw7RbxC80WoQeyEo5eE7yV5hU4nFgJgH2jof\nreXIJjHRNVBZNnxoCRFUH5Bq9qy/Q6ADp7XNb7q2+nG+V7jHZ+mHHXOkHZGI\ngeImeem4/3sXRxoamgxzLZSG2msIpDdALmxFdTixQtKX8eeYWEXir8bmFddP\ntTzpOvyjMYZh5qA9yYb0JgZAzAtTHGLMnThBihKxWbLHFWLxig5S3R9GWG0t\nRsoWGAjIs/TAMND7hig4MWAXigz4jwhwdp3KtNw1gaHsKRgtX/RFS6NZpbkw\n0iCy1rYxtR1WwqWnVsvTUguXXpiBE2xF/+1ic+XD9ijk1jcZofla2nx0ANRo\nXcl9Vb/BzeHJoZxS4Q/pCidj3FLd/L0aN/XGFYCWfSW93F2lOWOV4GTkVWVY\nzUORWLhKQJgHUZogC5Z8oLELI0hekJ3/c4iLbvapWh+eUq3XAHNX1YPc+5zn\nHFetkDu8Lys6oDacmigCXOAf3n33fjQ/QysdGbVPkZGTiv9N+4cc7beG/LsK\nkkff3Dx/pFUWrHNgwcfYK2YJE3CziowEUxYnPvzlyhIK6aQRHPtJxonZmLuJ\n1Ug7\r\n=Okbj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"@virgilsecurity/data-utils":"^1.0.0","@virgilsecurity/init-utils":"^1.0.0","@virgilsecurity/sdk-crypto":"^1.0.0","@virgilsecurity/crypto-types":"1.0.0","@virgilsecurity/core-foundation":"^1.0.3"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.0.2_1584119588749_0.06581402722950469","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"virgil-crypto","version":"4.1.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.1.0","maintainers":[{"name":"dkosolap","email":"42dkosolap@gmail.com"},{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"119620f5085f967f04a60ec54c18a3440981f35e","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.1.0.tgz","fileCount":49,"integrity":"sha512-bg1x8CS9FZUdAdnJbSusY8QhnEjxtO+fsWhmHCbE/1OpAUzs4cKL2AY43rpposBnOMlaG2M5OYVIBJToYpv9Hg==","signatures":[{"sig":"MEYCIQCh9v1dYiLNBec7vmdRES36VqmTqQ3EuiRtqQ0QS3aUngIhAI51bPK031qMVAJhITzXC4FmyiTTOpzEOcWqrOEyQJ0C","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13055150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJee55wCRA9TVsSAnZWagAAZiEP/Rmk2gMsczRAfQPbaqbg\nvgkO0TEeT3NtfcUuxsU4qMH4lu38qZfcCiT4Fo72mMUVMX7GBs3xrTr5CDPX\n035lC9orp1v1ybPlim6+wUTfeggCy7/IgFv/hsTPKHNQ0rUTaHjucFXhBYbk\nl09kfa6dSA9k43ZSqlJ6W2Nkiwr3yRaHea6SJhHi8ER3Om6lhb7RcAPqmnEy\nn21HMKJhU/z1HEMmGBD6VMJjgY8YJ9IqBX5cZ1KOYGr0PWRPHOtlFBmRKQ4M\ng7w31q/kR/nfgjt2WeXNi3h5CwQtOLvAu7CG6EUS+iyWRLcsEJdfRA5Hdxnm\nLXnTvkfW4NEA1qaoY8c0Kt9VsauZgv5eeGytCuJDAwVsPDLFLWamlLgc4hFl\nXHsMZzdJNS3gnvvUH21s4UdndSuFrPl9RK4YCY6enMamoCEjhTLfkNPMMinb\nRNqXQli6TvfjDaryI1kTGCOMhG+6HtD3FPxr33FmuhdM3tZiVf7nzu4I20yv\noUtODFwxHvD0Lv4HKreEbV1B3OSIxp2R87wOHz+5KY95Xmsu507TavIwaO+C\n+pzKlYa89KqG7uhr7HRd+1ZdMEYCBTNQh6OJQgXBl+BoWSMdsWle3SmGW9hB\nUWgLI1lqh49BMFfkN87pDZd1Nx8N75wWLoG/QZ9wOxYezRVPM6SfZm23KZ5O\nYZJA\r\n=dT6W\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"@virgilsecurity/data-utils":"^1.0.0","@virgilsecurity/init-utils":"^1.0.0","@virgilsecurity/sdk-crypto":"^1.0.0","@virgilsecurity/crypto-types":"1.0.0","@virgilsecurity/core-foundation":"^1.1.0"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.1.0_1585159791921_0.6091592990486043","host":"s3://npm-registry-packages"}},"4.1.1":{"name":"virgil-crypto","version":"4.1.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.1.1","maintainers":[{"name":"dkosolap","email":"42dkosolap@gmail.com"},{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"4c905a1bdc004be4bbdb4157262c656e8d774f09","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.1.1.tgz","fileCount":46,"integrity":"sha512-ZLrsnCao8wkNYNcRmLJbb3U5eQK1+X128mpybJ+d3LNguZBC2lXrkKoCs2mftZYcjjsO4Z9bGwt0bSnKfrd7Pw==","signatures":[{"sig":"MEUCIFS1lhVvtUFpwc6XXdd1PUThlsXHKNbZ4gfbB1xVkjiOAiEAp99fX5O06jVf3rTAe83lFvt+h0iylQVkH3SxNWOPc2o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13055721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoaQLCRA9TVsSAnZWagAAHNIQAInraJuAqr0SM/ah8+lB\nkeisxhJGMnm4JsyI87hW398B7kXgQPrPwZhYcRRoeKNvahdPRvKeBPHg5pMe\n+NiOOVuNISnwmN/vOOdHHErRodjvNkQ8l4e93R5VAE7/fXcZluptXXrnRK/p\nhJLaZrCJWvBNtZQ7Hc0NFVujD6/71U8yVL5hyVzcP3RYlhV6+O7U5Abiwrqd\nRoHqyMLZYKPhM8KDBgSuJJUu6DSLjNsvTibyfIdJAFd5UQZy+sf9Nzvlmznf\naEjX0m3hJ8PaffMWv4RIQkiv9n3crW3k0P6rqS/UhDq/8qZQMutMU/RwQFa6\n7qxrAFuaqsQ2F9/ZtJ6zWYsB1DxjFmhAJh7iXN37f27gRo8ODo8DwG9Qz7Cp\ngeV4sO7ojnpEufIBCEoKRHqFUm4H2d6GbJ/b8TEOLdroPSlOI3B1YRpm9xzr\nSAO9MzbVOPfJzuMBEy2DL9E4Xv3rhSgA9uBSaZQfTlPWQAE2cTqZqZXYJHhu\nlPu+fJgYRYZJUkuAdaEmSNu33/oEYwmV4cnDT37JOWmZUsetr6nFNMUhR8UN\nKGK8ivnMMP2GXLye2BSxZ1qRoiZVdpkS/hHKssPdiIkRqQNSIgFZIEciZVhX\ntsigF4Ly2eNFUDy0gC4z3rlYZUQ+oGmR4/d04HlrU+Vp3lLG5FJZggFxEefY\nflkF\r\n=np9c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","readme":"> This README is for virgil-crypto v4. Check the [v3 branch](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/v3) for virgil-crypto v3 docs.\n\n# Virgil Security JavaScript Crypto Library\n[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)\n[![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n[![GitHub license](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE)\n\n### [Introduction](#introduction) | [Library purposes](#library-purposes) | [Getting started](#getting-started) | [Docs](#docs) | [License](#license) | [Contacts](#support)\n\n## Introduction\nVirgilCrypto is a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and an\nopen-source high-level [cryptographic library](https://github.com/VirgilSecurity/virgil-crypto-c) that allows you to\nperform all necessary operations for securely storing and transferring data in your digital solutions. Crypto Library\nis written in C++ and is suitable for mobile and server platforms.\n\nVirgil Security, Inc., guides software developers into the forthcoming security world in which everything will be\nencrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of\ndollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now\ndevelopers can instead focus on building features that give them a competitive market advantage while end-users can\nenjoy the privacy and security they increasingly demand.\n\n## Library purposes\n- Asymmetric Key Generation\n- Encryption/Decryption of data\n- Generation/Verification of digital signatures\n\n## Getting started\nFirst, you need to install the package from npm:\n```sh\nnpm install virgil-crypto\n```\n> If you are not using npm, follow our [UMD guide](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/guides/umd.md) to get started.\n\nSecond, you need to decide which approach to use in your application. We provide 2 options here:\n- WebAssembly. This is our recommended approach. [List of supported browsers](https://caniuse.com/#feat=wasm).\n- asm.js. Use it only in case you need to support old web browsers.\n\nThird, you will need to setup you development environment (skip this step if you are using Node.js):\n- [Webpack](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/guides/webpack.md)\n- [Create React App](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/guides/create-react-app.md)\n- [React Native](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/guides/react-native.md)\n> Not found your environment? Create an issue on GitHub and we will try our best to help you. Make sure to describe your environment as much as possible.\n\nLast, you need to get familiar with [usage examples](guides/usage-examples.md) of the library.\n\n## Docs\n- [API Reference](http://virgilsecurity.github.io/virgil-crypto-javascript/)\n- [Crypto Core Library](https://github.com/VirgilSecurity/virgil-crypto-c)\n- [More usage examples](https://developer.virgilsecurity.com/docs/how-to#cryptography)\n\n## License\nThis library is released under the [3-clause BSD License](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/LICENSE).\n\n## Support\nOur developer support team is here to help you.\n\nYou can find us on [Twitter](https://twitter.com/VirgilSecurity) or send us email support@VirgilSecurity.com.\n\nAlso, get extra help from our support team on [Slack](https://virgilsecurity.com/join-community).\n","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"gitHead":"8ff0797559ef13c45ad58bd8c17e4efa03ce32bc","scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"_npmVersion":"lerna/3.20.2/node@v13.12.0+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"13.12.0","dependencies":{"@virgilsecurity/data-utils":"^1.0.0","@virgilsecurity/init-utils":"^1.0.0","@virgilsecurity/sdk-crypto":"^1.0.0","@virgilsecurity/crypto-types":"1.1.0","@virgilsecurity/core-foundation":"^1.0.3"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.1.1_1587651594680_0.221562941650137","host":"s3://npm-registry-packages"}},"4.1.2":{"name":"virgil-crypto","version":"4.1.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.1.2","maintainers":[{"name":"dkosolap","email":"42dkosolap@gmail.com"},{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"257d0a4208a1c24e5e18d648bda56653b7db1681","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.1.2.tgz","fileCount":46,"integrity":"sha512-y8od0QTPyzHNZDNHqhNfXyjHZp9gIODL692nAVgCZqNU0F37QH5hO++nEtgNKmCrHRuVUn1e8RoC+6SJzkharA==","signatures":[{"sig":"MEUCIQDFgM1XGXRQzi8Kq07tAD/VOpa9KDwgGcqf9cBcrXwNfwIgK9zVN82uj4oKXzdiWaU0/J7D7/yDLRhDbxzfXYI2kuo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13055677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoq1uCRA9TVsSAnZWagAAKB4P/iOXrBPML5A3BTKMfDJl\nsu+IFC2fDA8XV12SbLq3Z94zhHfFCEeeEg2mdfWszFgMG5lSl+YqnP9DC8N8\nBIWPqJDmzavJVEXdAuva4eJeHx5RwKbrhFKyZfo+b7VHg1GXQ2q+DADSqI8y\n0b3ctgcXCfpw1A7qCXhWwgqP/vO0a/Vp5/wtukLLIXVyiK8VQTVsZeiFN0tj\nKrmBKnZV9K7q2azry/2f1BWCDCm/SytE1yCW2lsUdR/7SoRhby/oR5CkGKcl\ntkkNcKJIXiDJh301ph0LL6KrTjidcYXmiR5XvEDeKDdpIU/jB0FTqdaft6B2\n8SGHMQUjESnum8URY3Xc6Qbvo36Vl9dVdCG/mOIsFNpznpXbBMiWhLeDKlv/\nNWv3rXW/+vJ+V06mJ3ODPK/s4KuGvUTB+iMxR8/zqzXFsbf1ZNcmTMuYlSzi\nzJIoe/OfeUehntm59+3fwXqNhyrGn/xwW7UU6WaKJyuZ0GWSN+miVkcs8mZf\nJWC/Ua4KeQKaPTr3fJ2naLl5hzX10qiPkZzrHmHdC+MiWWZBvdYj8lbzHSow\n0S8J0xLDDwjG5Pw3yr7bVfgmoQhemTOq0H7eQbRbhkOSJXz4ORnqZcGtj3m1\npwO1si/6N+kN6sbklz7eZcbCPWFw/VIPt/aEctsntGS5Z2/hmYpv7jGQglYe\nhBPV\r\n=kUzA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"gitHead":"323bf43af966f0ab3adc9f4ae4751573b61c982e","scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"snanovskyi","email":"snanovskyi@icloud.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"_npmVersion":"lerna/3.20.2/node@v13.12.0+x64 (darwin)","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"13.12.0","dependencies":{"@virgilsecurity/data-utils":"^1.0.0","@virgilsecurity/init-utils":"^1.0.0","@virgilsecurity/sdk-crypto":"^1.0.0","@virgilsecurity/crypto-types":"1.1.1","@virgilsecurity/core-foundation":"^1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.1.2_1587719534415_0.7943472991085279","host":"s3://npm-registry-packages"}},"4.2.1":{"name":"virgil-crypto","version":"4.2.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.2.1","maintainers":[{"name":"dkosolap","email":"42dkosolap@gmail.com"},{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"ea0933bb666e64caf151e12ce3aea0ad813420fb","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.2.1.tgz","fileCount":45,"integrity":"sha512-ii5j3Lefgw4XY6Mmci6b13s2pIQqZ4nfR/IC4U8xHFyfoyVx+KvhldSsCoGP6xrpPNYM/M3ZamLZFOXS/sa0tw==","signatures":[{"sig":"MEQCIAIig83bohoU5lgJIuWv8eJZRMQr/rPLogOIc8392FxSAiBpJdwXxoyCH4+kDPYdopFtUsXGN3letmng4Plh/VsKXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14181364,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexUobCRA9TVsSAnZWagAALRoQAKAzssm1PfhA8Ia8PujM\nTEjRgFOfvKPL1bTHjpbl+72HBv8NAQkecijbJw4O9T8qGguQQ3xpvmrgUeqS\nEFQBI6rCRhdS4vr1kqN2eIpw06Z6B66IdqLN13rM8/7YgyrgzJV77yG1+Nr/\nmFXp4CpfcUXZ0v2WE70AgnfycYDWEPg+3hjtspuwuZwfay+UAFs6aTH90f8L\ngETSAM+vHRzi3GTzcsIIhF3o3ITveFSxVlwHumzQfdLMiifUjE39Yb5vJIzt\n0O4E7TqPbrlF7N3kNpqH4+pPk542pRPcqleO3RHimINGT/v7L3LGy6QNmrpc\nIIxYiaj6he/dATdZt4alg7b041lksGiKCZfWm9yIqR7qkixWXIOPNAv69djr\nznj/Up9q8p9iLI6IgkRL9ISYTdEdEZtBXnd1lsRBAFoORXowbwmK5TEUhIXJ\nx11Rs5GTiQAjUmRMWXXR5OEkG01NpaY2nyWTOFsG1lTD5B0mhESBnxZtG2Pw\nXTBBj0Mqcy7agTC+ZiXyjpbyQFyO6+trvrmpGbYdKqEpBaqSlfLRk8h/41qF\n2ueyQAk54Xb96CLX+pTkqt0ogGWqbGs5FDrI03mGeV+zoJ/Y1LlylPal6Fve\nRCd2ibb0AkOsFdC9hmGXnUyn82XvG745b7P0cAZQCVrigKOY4Wam+BFQjQw4\ng7Ee\r\n=Q3w1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"_npmVersion":"6.14.4","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"12.16.3","dependencies":{"@virgilsecurity/data-utils":"^1.0.0","@virgilsecurity/init-utils":"^1.0.0","@virgilsecurity/sdk-crypto":"^1.0.0","@virgilsecurity/crypto-types":"1.1.1","@virgilsecurity/core-foundation":"^1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.2.1_1589987866187_0.5775717497560744","host":"s3://npm-registry-packages"}},"4.2.2":{"name":"virgil-crypto","version":"4.2.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@4.2.2","maintainers":[{"name":"dkosolap","email":"42dkosolap@gmail.com"},{"name":"snanovskyi","email":"snanovskyi@icloud.com"},{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"}],"dist":{"shasum":"70ff428cbbeb8e2197f3ebc774d17647ee41b08a","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-4.2.2.tgz","fileCount":65,"integrity":"sha512-vALo5vTlul0woOG6LcWLI4+P0lW9bPbFauxDDjYCHhRjm0EH2o2prw7QIj7K3fne/uN6uB0P3hWCZKIzP8Q3XA==","signatures":[{"sig":"MEUCIQD88B1NSg21FPP6zHEqS5thOG0/Wt7SnMdrZ//f2gy5yAIgdQQPeiS/u8xdpCZ7zcRhGgHYt6380+hR8tAIIh/ZO6w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14181976,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJex7dsCRA9TVsSAnZWagAAc4wP/iWIkGIpnEUIdcSh5mtV\nacY/2oynCxYS4dN6iQI2oiWaXpKNmXLwtxR0szx0z3I9Qe6ZECq4kZzsCx33\n8babUPk33WLZzzl9Eow8TenT7bZg5rTunt1sgHYMmRAGC27BQDav6/HVNbZx\nkDfi0PvVsQaq3K7SDzlqlZS34Wp8Z7wJv8ltLI7bLXdKs62v1eZ+1/mepgbb\nQhoxKz3ykDhjGmWQvVz562JCu4Qx4Qj08zyqS3btyfpzJM94F8AqInWY9QAu\nEc9Kq/NVpWspqqRTzAay8DGJlwbqeQG0pNQPS1XUlUwcv9DP8ZWQBjudiZ+M\nqWvBv/eZ7olzXlG3TbhED03PVwWDmT4WoV1Zk0H6snAoSyVNogCzxxa1V2p6\nMdvCPAUPQCVCRDmkZ3rveSIozMWmt2llFxurA4MNk21C1O6c60F0I9NH4lYP\nnIjLlpY8be1aYNlwKoSw2Lch221TZ48TTYD0MPCdu2IL9/je4OnMrNAIOa0Q\nSfjv3d94EoMULXxyAmROngFNZeZaujzGfzsEUW54w42HjTKKt6zasP8NS4BM\nWjaAAY1RrTsO+oSEizn80vBX7Pmvh+e/Ec+Hj/vFb23EHe11pjLSswEkh+On\nPSbhDtbftJ0DiRs610IqcAZ60ip0k33W/N0qH90CP1AuPN2hG9pLP0f5FxJm\n1746\r\n=iQaC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"node --max-old-space-size=4096 node_modules/.bin/rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"xlwknx","email":"asmirnov@virgilsecurity.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"_npmVersion":"6.14.4","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"12.16.3","dependencies":{"@virgilsecurity/data-utils":"^1.0.0","@virgilsecurity/init-utils":"^1.0.0","@virgilsecurity/sdk-crypto":"^1.0.0","@virgilsecurity/crypto-types":"1.1.1","@virgilsecurity/core-foundation":"^1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.0.0","rimraf":"^3.0.0","rollup":"^1.29.1","ts-node":"^8.6.2","typescript":"^3.7.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"^1.0.7","rollup-plugin-copy":"^3.2.1","rollup-plugin-terser":"^5.2.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-typescript2":"^0.25.3","rollup-plugin-node-resolve":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_4.2.2_1590146924277_0.5840719333267923","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"virgil-crypto","version":"5.0.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@5.0.0","maintainers":[{"name":"rstp","email":"rstptakeu@vk.com"},{"name":"ddain","email":"ddain@virgilsecurity.com"},{"name":"mbalyaba","email":"mbalyaba@gmail.com"}],"dist":{"shasum":"e12bd4eb064ca87a36bca535cfa6b2d066cfcede","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-5.0.0.tgz","fileCount":51,"integrity":"sha512-BQOyTY0HYbNgYZO0Tx/T7LNkG4hbe3COV9VEyLGpADrhoNk0H1wl3dgLMu8coqrY7cuOlHIuQh1t6865X6qxOA==","signatures":[{"sig":"MEQCIG8pnHKibfrJ/Z4PVXa7RQ5jeuIPvOpxSNTLW3FL41IJAiAgUgfvZj27qUnKx1dfW/OV2xrUUcJaWL3EjaPReOuIIw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":879755},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"rstp","email":"rstptakeu@vk.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"html-webpack-plugin":"5.5.1","@virgilsecurity/data-utils":"^2.0.0","@virgilsecurity/init-utils":"^2.0.0","@virgilsecurity/sdk-crypto":"^2.0.0","@virgilsecurity/crypto-types":"^2.0.0","@virgilsecurity/core-foundation":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","rimraf":"^3.0.0","rollup":"3.21.0","ts-node":"10.9.1","typescript":"5.0.4","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"1.0.7","rollup-plugin-copy":"3.4.0","@rollup/plugin-terser":"0.4.1","@rollup/plugin-commonjs":"24.1.0","@rollup/plugin-typescript":"11.1.0","@rollup/plugin-node-resolve":"15.0.2"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_5.0.0_1683745000492_0.24498851181854597","host":"s3://npm-registry-packages"}},"5.0.1":{"name":"virgil-crypto","version":"5.0.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@5.0.1","maintainers":[{"name":"rstp","email":"rstptakeu@vk.com"},{"name":"ddain","email":"ddain@virgilsecurity.com"},{"name":"mbalyaba","email":"mbalyaba@gmail.com"}],"dist":{"shasum":"09b95e7907a240d146b6ffa406835f68df340f0d","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-5.0.1.tgz","fileCount":51,"integrity":"sha512-qc8C/lYb5X4NBvbaO/rg3saj9FcCpEEmW2qxh4sL8nb7fi0HhAymhVKqExhisr8TcHmNpn73UzvmlFwraWDjcA==","signatures":[{"sig":"MEYCIQCwWBQjnyv4MSpfJQ6btSJ2GS5Xf5F0EoKrxk0deBZU9AIhAOEuwFnGqX8VoprO7VTIqjNXyHQntFWtl9MvFopk/FbI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15463125},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"rstp","email":"rstptakeu@vk.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"html-webpack-plugin":"5.5.1","@virgilsecurity/data-utils":"^2.0.0","@virgilsecurity/init-utils":"^2.0.0","@virgilsecurity/sdk-crypto":"^2.0.0","@virgilsecurity/crypto-types":"^2.0.0","@virgilsecurity/core-foundation":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","rimraf":"^3.0.0","rollup":"3.21.0","ts-node":"10.9.1","typescript":"5.0.4","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"1.0.7","rollup-plugin-copy":"3.4.0","@rollup/plugin-terser":"0.4.1","@rollup/plugin-commonjs":"24.1.0","@rollup/plugin-typescript":"11.1.0","@rollup/plugin-node-resolve":"15.0.2"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_5.0.1_1686084503704_0.8875100060366072","host":"s3://npm-registry-packages"}},"5.0.2":{"name":"virgil-crypto","version":"5.0.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@5.0.2","maintainers":[{"name":"rstp","email":"rstptakeu@vk.com"},{"name":"ddain","email":"ddain@virgilsecurity.com"},{"name":"mbalyaba","email":"mbalyaba@gmail.com"}],"dist":{"shasum":"f53383fa0f69b026507a72a4adb98d15e57f93f5","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-5.0.2.tgz","fileCount":53,"integrity":"sha512-BIsAcsOANJ5SaCSqpVOlANihiuePqG/C2woDbiH1811eC+2/fq4a+ZRc1CKkEnG3HVSSMx6E8sI59UarzplgzA==","signatures":[{"sig":"MEUCIQD0wkkdojJsyyfq08vpW3QvVf69FI8NTLfrZCI9cMcOlgIgciboCU2+RViiZ04E/z5AlmKMcBxzeb4GyQ2p/snjX1g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18684832},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"rstp","email":"rstptakeu@vk.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"html-webpack-plugin":"5.5.1","@virgilsecurity/data-utils":"^2.0.0","@virgilsecurity/init-utils":"^2.0.0","@virgilsecurity/sdk-crypto":"^2.0.0","@virgilsecurity/crypto-types":"^2.0.0","@virgilsecurity/core-foundation":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","rimraf":"^3.0.0","rollup":"3.21.0","ts-node":"10.9.1","typescript":"5.0.4","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"1.0.7","rollup-plugin-copy":"3.4.0","@rollup/plugin-wasm":"^6.1.3","@rollup/plugin-terser":"0.4.1","@rollup/plugin-commonjs":"24.1.0","@rollup/plugin-typescript":"11.1.0","@rollup/plugin-node-resolve":"15.0.2"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_5.0.2_1686229034326_0.9821954493222538","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"virgil-crypto","version":"5.1.0","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@5.1.0","maintainers":[{"name":"rstp","email":"rstptakeu@vk.com"},{"name":"ddain","email":"ddain@virgilsecurity.com"},{"name":"mbalyaba","email":"mbalyaba@gmail.com"}],"homepage":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master#readme","bugs":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/issues"},"dist":{"shasum":"e12b5e03bbd48b303f8e6115c783181e5393ff44","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-5.1.0.tgz","fileCount":65,"integrity":"sha512-m9mYhFbOeaT6jhO35WSYRFNwi7UXBpzrkRXklSvD4TTwo7QmgAP6Z0q0Igbfa6JDBVrolJDABdmeIWxACOCN6g==","signatures":[{"sig":"MEQCIHdofxA16sF0tbHlLS0mfwUPA41mcdPRLgt8aLYJ7xBGAiBxm9lElwcHPHqcuXcKeyVJp7G0OuughSSxkF0LN8bn5w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12147572},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"gitHead":"704193441aedc0d22dc82c1ddd3c688f39daa80c","scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"rstp","email":"rstptakeu@vk.com"},"repository":{"url":"git+https://github.com/VirgilSecurity/virgil-crypto-javascript.git#master","type":"git"},"_npmVersion":"10.2.4","description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"html-webpack-plugin":"5.5.1","@virgilsecurity/data-utils":"^2.0.0","@virgilsecurity/init-utils":"^2.0.0","@virgilsecurity/sdk-crypto":"^2.0.0","@virgilsecurity/crypto-types":"^2.0.0","@virgilsecurity/core-foundation":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","rimraf":"^3.0.0","rollup":"3.21.0","ts-node":"10.9.1","typescript":"5.0.4","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"1.0.7","rollup-plugin-copy":"3.4.0","@rollup/plugin-wasm":"^6.1.3","@rollup/plugin-terser":"0.4.1","@rollup/plugin-commonjs":"24.1.0","@rollup/plugin-typescript":"11.1.0","@rollup/plugin-node-resolve":"15.0.2"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_5.1.0_1703754785448_0.7651585737577249","host":"s3://npm-registry-packages"}},"5.1.1":{"name":"virgil-crypto","version":"5.1.1","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@5.1.1","maintainers":[{"name":"rstp","email":"rstptakeu@vk.com"},{"name":"ddain","email":"ddain@virgilsecurity.com"},{"name":"mbalyaba","email":"mbalyaba@gmail.com"}],"dist":{"shasum":"77ceaa956f9e140088cdca59e0692f158e3c4b74","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-5.1.1.tgz","fileCount":53,"integrity":"sha512-So9evUAH8jIRCI+eD/4jd81RvYNK9eidpdJB6F47RCr649KLJhu32qnMXJpdx5xcBkuVJ45p1RdmUtNWXkL2nQ==","signatures":[{"sig":"MEQCIBfELOrdzNt2hXVJAfNep8IwKOjyHpNCaz6PqYtNqhAhAiAa1href7zm6s753P27IeHqbcPM5PM/H6b1ROSVXGTzbw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12149278},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"rstp","email":"rstptakeu@vk.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"html-webpack-plugin":"5.5.1","@virgilsecurity/data-utils":"^2.0.0","@virgilsecurity/init-utils":"^2.0.0","@virgilsecurity/sdk-crypto":"^2.0.0","@virgilsecurity/crypto-types":"^2.0.0","@virgilsecurity/core-foundation":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","rimraf":"^3.0.0","rollup":"3.21.0","ts-node":"10.9.1","typescript":"5.0.4","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"1.0.7","rollup-plugin-copy":"3.4.0","@rollup/plugin-wasm":"^6.1.3","@rollup/plugin-terser":"0.4.1","@rollup/plugin-commonjs":"24.1.0","@rollup/plugin-typescript":"11.1.0","@rollup/plugin-node-resolve":"15.0.2"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_5.1.1_1707404232162_0.19650706508320015","host":"s3://npm-registry-packages"}},"5.1.2":{"name":"virgil-crypto","version":"5.1.2","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","_id":"virgil-crypto@5.1.2","maintainers":[{"name":"rstp","email":"rstptakeu@vk.com"},{"name":"ddain","email":"ddain@virgilsecurity.com"},{"name":"mbalyaba","email":"mbalyaba@gmail.com"}],"dist":{"shasum":"d6e490a9ba7ea5ff78e91ef677a971cdcebf6d12","tarball":"https://registry.npmjs.org/virgil-crypto/-/virgil-crypto-5.1.2.tgz","fileCount":53,"integrity":"sha512-kaotX3Q3Ls84TSQYGONmDThY7sz8PBK/g3SSGhWZgAD3b5lnP/dOd7zdMS1kK0QMRMkhvj9KLEm6/DKxZ9Kpig==","signatures":[{"sig":"MEQCIACpp61smnCX5IlMQvLUGv5MoK46xMWzu10mPQyDss8FAiAqC+/Y0x55eK6mnzx3/a5ZmgSidiwUmeiRzzdnkLdAPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11671662},"main":"./dist/node.cjs.js","module":"./dist/node.es.js","browser":{"./dist/node.es.js":"./browser.es.js","./dist/node.cjs.js":"./browser.cjs.js"},"scripts":{"test":"mocha -t 0 -r ts-node/register src/**/*.test.ts","build":"rollup -c","clean":"rimraf .rpt2_cache dist","prepare":"npm run clean && npm run build"},"typings":"./dist/types/index.d.ts","_npmUser":{"name":"rstp","email":"rstptakeu@vk.com"},"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","directories":{},"dependencies":{"html-webpack-plugin":"5.5.1","@virgilsecurity/data-utils":"^2.0.0","@virgilsecurity/init-utils":"^2.0.0","@virgilsecurity/sdk-crypto":"^2.0.0","@virgilsecurity/crypto-types":"^2.0.0","@virgilsecurity/core-foundation":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","rimraf":"^3.0.0","rollup":"3.21.0","ts-node":"10.9.2","typescript":"5.4.5","@types/chai":"^4.2.7","@types/node":"^13.1.8","@types/mocha":"^5.2.7","builtin-modules":"^3.1.0","rollup-plugin-re":"1.0.7","rollup-plugin-copy":"3.4.0","@rollup/plugin-wasm":"^6.1.3","@rollup/plugin-terser":"0.4.4","@rollup/plugin-commonjs":"25.0.7","@rollup/plugin-typescript":"11.1.6","@rollup/plugin-node-resolve":"15.2.3"},"_npmOperationalInternal":{"tmp":"tmp/virgil-crypto_5.1.2_1714230071457_0.23779517364192837","host":"s3://npm-registry-packages"}}},"time":{"created":"2015-08-27T19:44:10.356Z","modified":"2026-04-21T01:35:32.546Z","0.1.0":"2015-08-27T19:44:10.356Z","0.2.0":"2015-09-14T15:52:53.546Z","0.2.1":"2015-09-14T15:58:24.172Z","0.2.2":"2015-09-15T20:43:42.206Z","0.2.3":"2015-09-15T21:06:29.805Z","0.2.4":"2015-09-17T20:44:02.775Z","0.2.5":"2015-09-18T20:42:17.150Z","0.2.6":"2015-09-23T14:23:22.615Z","0.2.7":"2015-12-27T18:02:57.648Z","1.1.3":"2016-01-21T20:53:40.977Z","1.1.4":"2016-01-22T12:50:21.186Z","1.1.5":"2016-01-23T09:04:52.721Z","1.1.6":"2016-01-23T17:44:20.233Z","1.1.7":"2016-01-27T18:50:28.281Z","1.2.7":"2016-01-27T22:41:50.159Z","1.2.0":"2016-01-29T08:51:39.210Z","1.2.1":"2016-01-29T22:58:50.344Z","1.2.2":"2016-02-01T16:19:20.393Z","1.2.3":"2016-02-06T16:03:11.813Z","1.2.4":"2016-02-11T20:12:52.213Z","1.2.5":"2016-03-13T15:27:23.880Z","1.3.0":"2016-03-25T08:30:35.389Z","1.3.1":"2016-03-28T13:11:53.557Z","1.3.4":"2016-03-28T15:00:20.336Z","1.3.5":"2016-03-28T15:40:07.424Z","1.4.0":"2016-04-13T15:28:31.490Z","1.5.0":"2016-04-29T10:51:39.260Z","1.5.1":"2016-05-02T22:06:59.355Z","1.5.2":"2016-05-02T22:45:51.237Z","1.5.3":"2016-05-03T04:21:02.759Z","1.5.4":"2016-05-03T05:57:16.234Z","1.5.5":"2016-05-03T06:38:55.453Z","1.5.6":"2016-05-05T20:34:19.967Z","1.5.7":"2016-05-10T15:40:10.360Z","1.5.8":"2016-05-11T19:11:37.488Z","1.5.9":"2016-05-18T14:52:05.515Z","1.6.0":"2016-06-11T12:59:20.951Z","1.6.1":"2016-07-04T14:57:58.112Z","4.0.0-beta.0":"2016-10-18T12:32:59.330Z","2.0.0-beta.0":"2016-10-18T12:41:39.612Z","2.0.0-beta.1":"2016-10-21T14:11:11.296Z","2.0.0-beta.2":"2016-11-01T13:53:53.219Z","2.0.0-beta.3":"2016-11-02T14:13:20.052Z","2.0.0-beta.4":"2016-11-02T15:37:47.892Z","2.0.0":"2017-01-12T14:52:49.896Z","2.0.1":"2017-01-16T17:45:01.552Z","2.0.2":"2017-03-13T12:39:19.603Z","2.1.0":"2017-05-04T13:25:25.663Z","2.1.1":"2017-07-11T17:49:26.118Z","2.1.2":"2017-08-29T16:20:14.392Z","2.1.3":"2018-02-02T13:44:41.438Z","2.2.0":"2018-02-22T16:55:05.119Z","3.0.0-alpha.1":"2018-04-05T18:17:12.977Z","3.0.0-alpha.2":"2018-04-05T18:37:04.866Z","3.0.0-alpha.3":"2018-04-06T12:05:48.325Z","3.0.0-alpha.4":"2018-04-18T07:45:22.599Z","3.0.0-alpha.5":"2018-04-18T09:29:49.671Z","3.0.0-alpha.6":"2018-04-19T10:33:35.413Z","5.0.0-alpha.7":"2018-04-20T10:54:23.675Z","3.0.0-alpha.7":"2018-04-20T16:56:03.112Z","3.0.0-alpha.8":"2018-05-23T17:56:24.185Z","3.0.0-alpha.9":"2018-05-24T12:38:28.719Z","3.0.0-alpha.10":"2018-05-24T12:58:48.853Z","3.0.0-alpha.11":"2018-05-24T13:41:50.265Z","3.0.0-alpha.12":"2018-06-05T14:10:33.873Z","3.0.0-alpha.13":"2018-06-26T14:45:22.467Z","3.0.0-alpha.14":"2018-07-05T14:27:40.827Z","3.0.0":"2018-07-25T13:37:11.802Z","3.0.1":"2018-10-18T17:47:50.886Z","3.0.2":"2018-10-19T07:32:24.979Z","3.1.0":"2018-10-29T16:40:51.587Z","3.2.0":"2018-11-14T17:43:43.437Z","3.2.1":"2019-01-24T11:57:45.258Z","3.2.2":"2019-05-10T15:49:13.259Z","3.2.3":"2019-05-15T10:55:02.397Z","3.2.4":"2019-05-20T15:40:13.602Z","3.2.5":"2019-05-28T17:17:32.026Z","3.2.6":"2019-06-06T12:49:00.494Z","4.0.0-alpha.0":"2019-08-09T14:51:41.888Z","4.0.0-alpha.1":"2019-08-15T14:44:14.442Z","4.0.0-alpha.2":"2019-08-20T10:42:49.819Z","4.0.0-alpha.3":"2019-08-21T15:32:16.308Z","4.0.0-alpha.4":"2019-08-22T16:12:56.615Z","4.0.0-alpha.5":"2019-08-27T13:57:47.716Z","4.0.0-alpha.6":"2019-08-28T15:02:07.222Z","4.0.0-alpha.7":"2019-08-30T14:10:52.809Z","4.0.0-alpha.8":"2019-09-06T13:59:30.174Z","4.0.0-alpha.9":"2019-09-16T17:00:58.483Z","4.0.0-alpha.10":"2019-09-17T14:08:22.432Z","4.0.0-alpha.11":"2019-09-19T10:33:26.364Z","4.0.0-alpha.12":"2019-10-04T16:34:57.069Z","4.0.0-alpha.13":"2019-10-08T16:20:45.336Z","4.0.0-alpha.14":"2019-12-06T11:14:53.825Z","4.0.0-alpha.15":"2019-12-17T19:23:54.216Z","4.0.0-alpha.16":"2020-01-22T13:16:52.947Z","4.0.0-alpha.17":"2020-01-23T16:21:59.863Z","4.0.0-alpha.18":"2020-01-24T10:29:53.501Z","4.0.0":"2020-02-17T15:51:53.650Z","4.0.1":"2020-03-12T15:52:25.710Z","4.0.2":"2020-03-13T17:13:09.010Z","4.1.0":"2020-03-25T18:09:52.137Z","4.1.1":"2020-04-23T14:19:54.956Z","4.1.2":"2020-04-24T09:12:14.635Z","4.2.1":"2020-05-20T15:17:46.496Z","4.2.2":"2020-05-22T11:28:44.461Z","5.0.0":"2023-05-10T18:56:40.703Z","5.0.1":"2023-06-06T20:48:24.002Z","5.0.2":"2023-06-08T12:57:14.538Z","5.1.0":"2023-12-28T09:13:05.715Z","5.1.1":"2024-02-08T14:57:12.415Z","5.1.2":"2024-04-27T15:01:11.692Z"},"author":{"name":"Virgil Security Inc.","email":"support@virgilsecurity.com"},"license":"BSD-3-Clause","keywords":["security","elliptic","elliptic curve","virgil","virgilsecurity","encryption","crypto"],"repository":{"url":"https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/packages/virgil-crypto","type":"git"},"description":"Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.","maintainers":[{"email":"ddain@virgilsecurity.com","name":"ddain"},{"email":"ssiroshtan.us@gmail.com","name":"ssiroshtan"}],"readme":"> This README is for virgil-crypto v4. Check the [v3 branch](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/v3) for virgil-crypto v3 docs.\n\n# Virgil Security JavaScript Crypto Library\n[![Build Status](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript.svg)](https://travis-ci.org/VirgilSecurity/virgil-crypto-javascript)\n[![npm](https://img.shields.io/npm/v/virgil-crypto.svg)](https://www.npmjs.com/package/virgil-crypto)\n[![GitHub license](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](https://github.com/VirgilSecurity/virgil/blob/master/LICENSE)\n\n### [Introduction](#introduction) | [Library purposes](#library-purposes) | [Getting started](#getting-started) | [Docs](#docs) | [License](#license) | [Contacts](#support)\n\n## Introduction\nVirgilCrypto is a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and an\nopen-source high-level [cryptographic library](https://github.com/VirgilSecurity/virgil-crypto-c) that allows you to\nperform all necessary operations for securely storing and transferring data in your digital solutions. Crypto Library\nis written in C++ and is suitable for mobile and server platforms.\n\nVirgil Security, Inc., guides software developers into the forthcoming security world in which everything will be\nencrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of\ndollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now\ndevelopers can instead focus on building features that give them a competitive market advantage while end-users can\nenjoy the privacy and security they increasingly demand.\n\n## Library purposes\n- Asymmetric Key Generation\n- Encryption/Decryption of data\n- Generation/Verification of digital signatures\n\n## Getting started\nFirst, you need to install the package from npm:\n```sh\nnpm install virgil-crypto\n```\n> If you are not using npm, follow our [UMD guide](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/guides/umd.md) to get started.\n\nSecond, you need to decide which approach to use in your application. We provide 2 options here:\n- WebAssembly. This is our recommended approach. [List of supported browsers](https://caniuse.com/#feat=wasm).\n- asm.js. Use it only in case you need to support old web browsers.\n\nThird, you will need to setup you development environment (skip this step if you are using Node.js):\n- [Webpack](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/guides/webpack.md)\n- [Create React App](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/guides/create-react-app.md)\n- [React Native](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/guides/react-native.md)\n> Not found your environment? Create an issue on GitHub and we will try our best to help you. Make sure to describe your environment as much as possible.\n\nLast, you need to get familiar with [usage examples](guides/usage-examples.md) of the library.\n\n## Docs\n- [API Reference](http://virgilsecurity.github.io/virgil-crypto-javascript/)\n- [Crypto Core Library](https://github.com/VirgilSecurity/virgil-crypto-c)\n- [More usage examples](https://developer.virgilsecurity.com/docs/how-to#cryptography)\n\n## License\nThis library is released under the [3-clause BSD License](https://github.com/VirgilSecurity/virgil-crypto-javascript/tree/master/LICENSE).\n\n## Support\nOur developer support team is here to help you.\n\nYou can find us on [Twitter](https://twitter.com/VirgilSecurity) or send us email support@VirgilSecurity.com.\n\nAlso, get extra help from our support team on [Slack](https://virgilsecurity.com/join-community).\n","readmeFilename":"README.md","users":{"ebaranov":true,"virgilsecurity":true}}