{"versions":{"0.1.2":{"name":"@noble/ciphers","version":"0.1.2","description":"Auditable & minimal JS implementation of AES SIV, Salsa20 and ChaCha20","scripts":{"bench":"node benchmark/index.js noble","bench:all":"node benchmark/index.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build; npm i; npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,js.map,d.ts.map} webcrypto esm/webcrypto 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@scure/base":"1.1.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"2.8.4","typescript":"5.0.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/crypto":{"types":"./webcrypto/crypto.d.ts","node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"},"./_slow":{"types":"./_slow.d.ts","import":"./esm/_slow.js","default":"./_slow.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"}},"browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"keywords":["cryptography","crypto","noble","cipher","ciphers","aes","gcm","siv","salsa20","chacha20","xsalsa20","xchacha20","poly1305","secretbox","rijndael"],"funding":"https://paulmillr.com/funding/","gitHead":"88bc7f77e18590de3ac9bb4d02f945a13609b7e7","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_id":"@noble/ciphers@0.1.2","_nodeVersion":"20.3.1","_npmVersion":"9.7.2","dist":{"integrity":"sha512-gIw/hMxp90MeE0c4niKkBrpp+MGaGpebTlBxilTk6a3qt7maWwjDT64OXi4Nnqjj/t8lNIO6XncJ6ES5gmek/w==","shasum":"c52d9dfa8a7b34811ba93c5bfd1d887c6d6addb8","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.1.2.tgz","fileCount":94,"unpackedSize":415190,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGLM+/EvDQNxVvJBgwltZC2yvr0ns8tWEV6aaQysncnYAiEA/VPV/N9OOP4uXrveJEjS3BHQ1xFsQj+8SYD35/rj5o8="}],"size":60839},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.1.2_1687995292661_0.85506778765882"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-28T23:34:52.873Z","publish_time":1687995292873,"_source_registry_name":"default","contributors":[]},"0.1.3":{"name":"@noble/ciphers","version":"0.1.3","description":"Auditable & minimal JS implementation of Salsa20, ChaCha, Poly1305 & AES-SIV","scripts":{"bench":"node benchmark/index.js noble","bench:all":"node benchmark/index.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build; npm i; npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,js.map,d.ts.map} webcrypto esm/webcrypto 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@scure/base":"1.1.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"2.8.4","typescript":"5.0.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/crypto":{"types":"./webcrypto/crypto.d.ts","node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"},"./_slow":{"types":"./_slow.d.ts","import":"./esm/_slow.js","default":"./_slow.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"}},"browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"keywords":["cryptography","crypto","noble","cipher","ciphers","aes","gcm","siv","salsa20","chacha20","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael"],"funding":"https://paulmillr.com/funding/","gitHead":"9d8cca6f390aea735e530f08e3d863dfbd671c27","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_id":"@noble/ciphers@0.1.3","_nodeVersion":"20.3.1","_npmVersion":"9.7.2","dist":{"integrity":"sha512-L75KBG/jf6YNxSvV0w0tsC8OIOsLh9sk6mqLUNZ+3/UhDBrAHQAvTTspwMoBlB84ymupIhq+E9QOhr6H1g/xog==","shasum":"13d3e26dd9bfcb28cd5ea7640f2c28e8feb08e46","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.1.3.tgz","fileCount":94,"unpackedSize":419048,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBy0doCcnmPCeld0Bs9MfsyuD4RDg+R8rWM9wcukPFWjAiEAnRDXSZif8hRlOTBk3Dvhexz2T/Ns5J3q5/M/Z+RkrF0="}],"size":61285},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.1.3_1688082973843_0.21054799655518686"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-06-29T23:56:14.109Z","publish_time":1688082974109,"_source_registry_name":"default","contributors":[]},"0.1.4":{"name":"@noble/ciphers","version":"0.1.4","description":"Auditable & minimal JS implementation of Salsa20, ChaCha, Poly1305 & AES-SIV","scripts":{"bench":"node benchmark/index.js noble","bench:all":"node benchmark/index.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build; npm i; npm run build","build:clean":"rm -r *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} webcrypto esm/webcrypto 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@scure/base":"1.1.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"2.8.4","typescript":"5.0.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/crypto":{"types":"./webcrypto/crypto.d.ts","node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"}},"browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"keywords":["cryptography","crypto","noble","cipher","ciphers","aes","gcm","siv","salsa20","chacha20","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.1.4","gitHead":"9be52190cbfcb11e58a70f6884e1ef141b99a4e2","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.4.0","_npmVersion":"9.8.0","dist":{"integrity":"sha512-d3ZR8vGSpy3v/nllS+bD/OMN5UZqusWiQqkyj7AwzTnhXFH72pF5oB4Ach6DQ50g5kXxC28LdaYBEpsyv9KOUQ==","shasum":"96327dca147829ed9eee0d96cfdf7c57915765f0","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.1.4.tgz","fileCount":109,"unpackedSize":440541,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJtkTgxcqTMiPdNFl0Azpe2fjkpr6RSoynTEzTCI7dgwIhAJHNH8qKkeA+p8+5+QHi8j0nmir7m1empLdelyZ+Ei3U"}],"size":66721},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.1.4_1689401285877_0.3914962647808313"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-07-15T06:08:06.143Z","publish_time":1689401286143,"_source_registry_name":"default","contributors":[]},"0.2.0":{"name":"@noble/ciphers","version":"0.2.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha, Poly1305 & AES-SIV","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build; npm i; npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null; rm -r esm/webcrypto 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@scure/base":"1.1.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"2.8.4","typescript":"5.0.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/crypto":{"types":"./webcrypto/crypto.d.ts","node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./simple":{"types":"./simple.d.ts","import":"./esm/simple.js","default":"./simple.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"}},"browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.2.0","gitHead":"2ab7b23fc24ce48b808519db2379b67fb64a3614","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.5.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-6YBxJDAapHSdd3bLDv6x2wRPwq4QFMUaB3HvljNBUTThDd12eSm7/3F+2lnfzx2jvM+S6Nsy0jEt9QbPqSwqRw==","shasum":"a12cda60f3cf1ab5d7c77068c3711d2366649ed7","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.2.0.tgz","fileCount":116,"unpackedSize":458783,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC+Hoy3k1PB1klyAFwByhX7utbpMViE0R2UwoyJIQBcgIgY5rWExU3a4nfyc0UcBMhfrd7m5VMLYp++T752ZpX97s="}],"size":70368},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.2.0_1690821937962_0.5061862136777535"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-07-31T16:45:38.156Z","publish_time":1690821938156,"_source_registry_name":"default","contributors":[]},"0.3.0":{"name":"@noble/ciphers","version":"0.3.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha, Poly1305 & AES-SIV","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build; npm i; npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null; rm -r esm/webcrypto 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@scure/base":"1.1.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"2.8.4","typescript":"5.0.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/crypto":{"types":"./webcrypto/crypto.d.ts","node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"}},"browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.3.0","gitHead":"48f982a65d425e3469992bb95819a28dd946a324","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.5.1","_npmVersion":"9.8.1","dist":{"integrity":"sha512-ldbrnOjmNRwFdXcTM6uXDcxpMIFrbzAWNnpBPp4oTJTFF0XByGD6vf45WrehZGXRQTRVV+Zm8YP+EgEf+e4cWA==","shasum":"6ba3090afdc7a7051393486f6af210e62e0f04ec","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.3.0.tgz","fileCount":109,"unpackedSize":452809,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVVRCe87okLMdLUCALhqWJSFPGFzBmSnqaRSlCLXNQywIgc5Y21W05k5QnkgOCGx84+F7aohKAQF5PFWGhoEkpg1c="}],"size":70268},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.3.0_1693442961584_0.25096887905314524"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-08-31T00:49:21.827Z","publish_time":1693442961827,"_source_registry_name":"default","contributors":[]},"0.4.0":{"name":"@noble/ciphers","version":"0.4.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha & AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build; npm i; npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null; rm -r webcrypto esm/webcrypto 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@scure/base":"1.1.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"2.8.4","typescript":"5.0.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/crypto":{"types":"./webcrypto/crypto.d.ts","node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"}},"browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.4.0","gitHead":"9326efde01cb4c79d8aba0554c5973cab0b26dcd","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.8.1","_npmVersion":"10.2.1","dist":{"integrity":"sha512-xaUaUUDWbHIFSxaQ/pIe+33VG2mfJp6N/KxKLmZr5biWdNznCAmfu24QRhX10BbVAuqOahAoyp0S4M9md6GPDw==","shasum":"e3f69e3ce935683dd8dadb636652a5cb5cd5958c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.4.0.tgz","fileCount":109,"unpackedSize":607103,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeLk6bXuhbdlPozvsoCzkyUxlPMtweTNPqNOc3I8zWGgIhAIT709rvm6FfrDNI8lD/QtkElWYQaVxuuhHU8q/7DIfA"}],"size":92559},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.4.0_1697736243470_0.7181132072713337"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-10-19T17:24:03.690Z","publish_time":1697736243690,"_source_registry_name":"default","contributors":[]},"0.4.1":{"name":"@noble/ciphers","version":"0.4.1","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build; npm i; npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null; rm -r webcrypto esm/webcrypto 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@scure/base":"1.1.3","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.1.1","typescript":"5.3.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/crypto":{"types":"./webcrypto/crypto.d.ts","node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"}},"browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.4.1","gitHead":"1287b8598fc6429421bae1d6f166b083629d2779","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.10.0","_npmVersion":"10.2.5","dist":{"integrity":"sha512-QCOA9cgf3Rc33owG0AYBB9wszz+Ul2kramWN8tXG44Gyciud/tbkEqvxRF/IpqQaBpRBNi9f4jdNxqB2CQCIXg==","shasum":"977fc35f563a4ca315ebbc4cbb1f9b670bd54456","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.4.1.tgz","fileCount":109,"unpackedSize":612663,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDX7RABW/kmy3GjWtOeGfM+7cgFyCFNGhUM9cikCzwggAIgNMsF8KwZ2pBuN5sbhtKeLJEe5iKCfj7vWAFz9R2a6Pk="}],"size":93381},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.4.1_1702336679819_0.44505651109261524"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-12-11T23:17:59.983Z","publish_time":1702336679983,"_source_registry_name":"default","contributors":[]},"0.5.0":{"name":"@noble/ciphers","version":"0.5.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build; npm i; npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","sideEffects":false,"devDependencies":{"@scure/base":"1.1.3","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.1.1","typescript":"5.3.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto":{"types":"./webcrypto.d.ts","import":"./esm/webcrypto.js","default":"./webcrypto.js"}},"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.5.0","gitHead":"c558337e018fbeb591222944f07681582781b19d","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.11.0","_npmVersion":"10.4.0","dist":{"integrity":"sha512-HcXFhIRUgbSxFIGYfII5V4JsFGTyl93SKbSxIcIwj3qL1rhAxTyt/9l8V8XJHdOsrO4vBetPFMT+Lxjcx0i/4w==","shasum":"310c896cdc25c851f4c726ecd57dd7e376564798","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.5.0.tgz","fileCount":102,"unpackedSize":611395,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVHxd76O2VYXcE7uwvfW/0tbq4pOdl5s9aWuAwS8rDuQIhAJg/j1VB88dpEZPH63wEqw6ELWFPrScC0hXxLFkOVYBu"}],"size":93068},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.5.0_1707483277513_0.9749014218832865"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-02-09T12:54:37.675Z","publish_time":1707483277675,"_source_registry_name":"default","contributors":[]},"0.5.1":{"name":"@noble/ciphers","version":"0.5.1","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build; npm i; npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","sideEffects":false,"devDependencies":{"@scure/base":"1.1.3","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.1.1","typescript":"5.3.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto":{"types":"./webcrypto.d.ts","import":"./esm/webcrypto.js","default":"./webcrypto.js"}},"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.5.1","gitHead":"1a951ca6bd3aad0c2e11b05c14157d2b86ad2d8a","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.11.0","_npmVersion":"10.4.0","dist":{"integrity":"sha512-aNE06lbe36ifvMbbWvmmF/8jx6EQPu2HVg70V95T+iGjOuYwPpAccwAQc2HlXO2D0aiQ3zavbMga4jjWnrpiPA==","shasum":"292f388b69c9ed80d49dca1a5cbfd4ff06852111","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.5.1.tgz","fileCount":102,"unpackedSize":611418,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDV2ioKd62LjGuFa4NDTZwCqnfU6fuIMUowxXNL3yJYyAIgeKXl0SmLAOCtuzD7logSeZAV0VK5QVaPV4fqmiXVkGI="}],"size":93052},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.5.1_1707502222373_0.975196263203268"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-02-09T18:10:22.584Z","publish_time":1707502222584,"_source_registry_name":"default","contributors":[]},"0.5.2":{"name":"@noble/ciphers","version":"0.5.2","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build && npm i && npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","sideEffects":false,"devDependencies":{"@paulmillr/jsbt":"0.1.0","@scure/base":"1.1.3","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.1.1","typescript":"5.3.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto":{"types":"./webcrypto.d.ts","import":"./esm/webcrypto.js","default":"./webcrypto.js"}},"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.5.2","gitHead":"3359d966278df56fb0a8a5ef2ec4a317396d6179","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.11.1","_npmVersion":"10.5.0","dist":{"integrity":"sha512-GADtQmZCdgbnNp+daPLc3OY3ibEtGGDV/+CzeM3MFnhiQ7ELQKlsHWYq0YbYUXx4jU3/Y1erAxU6r+hwpewqmQ==","shasum":"879367fd51d59185259eb844d5b9a78f408b4a12","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.5.2.tgz","fileCount":103,"unpackedSize":622478,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAJuqLk+IAclwcFV6yPucDVzW3zC0Ki8M/QaYaJQLeqSAiB9pMojhwJT1vBP28CDCel5aPrC2vEc8FHiJrXEVeqpXQ=="}],"size":94564},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.5.2_1711386132208_0.8747932021535318"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-03-25T17:02:12.371Z","publish_time":1711386132371,"_source_registry_name":"default","contributors":[]},"0.5.3":{"name":"@noble/ciphers","version":"0.5.3","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark && npm install && cd ../../","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build && npm i && npm run build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","sideEffects":false,"devDependencies":{"@paulmillr/jsbt":"0.1.0","@scure/base":"1.1.3","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.1.1","typescript":"5.3.2"},"main":"index.js","exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./salsa":{"types":"./salsa.d.ts","import":"./esm/salsa.js","default":"./salsa.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./utils":{"types":"./utils.d.ts","import":"./esm/utils.js","default":"./utils.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./webcrypto":{"types":"./webcrypto.d.ts","import":"./esm/webcrypto.js","default":"./webcrypto.js"}},"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.5.3","gitHead":"df9fa72cbbd553c7f86082ea3b7c4c493a83bcd7","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.12.2","_npmVersion":"10.7.0","dist":{"integrity":"sha512-B0+6IIHiqEs3BPMT0hcRmHvEj2QHOLu+uwt+tqDDeVd0oyVzh7BPrDcPjRnV1PV/5LaknXJJQvOuRGR0zQJz+w==","shasum":"48b536311587125e0d0c1535f73ec8375cd76b23","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.5.3.tgz","fileCount":103,"unpackedSize":624276,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdKqsrvtxgJDCUKKFllz3Tk964RpypRbU/OTQe2HWPrAIhALF0sak214Hk/dJK+D+jx5NjwuNqe0oQPxP1Cxu7ImHS"}],"size":94941},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.5.3_1715003011882_0.9925035315540254"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-05-06T13:43:32.048Z","publish_time":1715003012048,"_source_registry_name":"default","contributors":[]},"0.6.0":{"name":"@noble/ciphers","version":"0.6.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"npm pack && mv *.tgz benchmark/noble-ciphers.tgz && cd benchmark && npm install && cd ..","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build && npm i && npm run build:release","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.2.1","@scure/base":"1.1.7","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.3.2","typescript":"5.5.2"},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index":{"import":"./esm/index.js","require":"./index.js"},"./salsa":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"sideEffects":false,"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@0.6.0","gitHead":"7e88191cd23ea7e36b97698916bb29cb90c5ee90","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.16.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mIbq/R9QXk5/cTfESb1OKtyFnk7oc1Om/8onA1158K9/OZUQFDEVy55jVTato+xmp3XX6F6Qh0zz0Nc1AxAlRQ==","shasum":"a3d82c72ce71ba43128e7eb71757b5ecb75b1273","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-0.6.0.tgz","fileCount":131,"unpackedSize":704724,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFX3AjEsZs+dqA73XarcPGsv1DfsW5SOFSZnoEJdetUkAiBmOyYYp6zke5hVnWxqfp6aUU5eFiEUz5N6sOlKmAZODw=="}],"size":113356},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_0.6.0_1722898599363_0.6264207172690275"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-08-05T22:56:39.774Z","publish_time":1722898599774,"_source_registry_name":"default","contributors":[]},"1.0.0":{"name":"@noble/ciphers","version":"1.0.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"npm pack && mv *.tgz benchmark/noble-ciphers.tgz && cd benchmark && npm install && cd ..","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build && npm i && npm run build:release","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.2.1","@scure/base":"1.1.7","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.3.2","typescript":"5.5.2"},"engines":{"node":"^14.21.3 || >=16"},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index":{"import":"./esm/index.js","require":"./index.js"},"./salsa":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"sideEffects":false,"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@1.0.0","gitHead":"428b2118e623405e6fbdce1573ae15ff4b931529","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.17.0","_npmVersion":"10.8.3","dist":{"integrity":"sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==","shasum":"34758a1cbfcd4126880f83e6b1cdeb88785b7970","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-1.0.0.tgz","fileCount":131,"unpackedSize":707077,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDtDw0dGpzM7Rgnr876V18AC65j3QnM41vpjcJs5SxRJAiBv+oDoYu34QGe4AVU0RmeysRSEmO5ovxKpMlQbxRmqcA=="}],"size":113899},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_1.0.0_1726183741529_0.5680503069309075"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-09-12T23:29:01.728Z","publish_time":1726183741728,"_source_registry_name":"default","contributors":[]},"1.1.0":{"name":"@noble/ciphers","version":"1.1.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build && npm i && npm run build:release","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.2.1","@scure/base":"1.1.7","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.3.2","typescript":"5.5.2"},"engines":{"node":"^14.21.3 || >=16"},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index":{"import":"./esm/index.js","require":"./index.js"},"./salsa":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"sideEffects":false,"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@1.1.0","gitHead":"4378c6a83dfe068caaaebcd30a695c4e07f3b0e8","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.18.0","_npmVersion":"10.9.1","dist":{"integrity":"sha512-gwcX7IKSuCtlepJVa6sDLMB2EDaoLguFL6HxagKeFIzWGRfFE3mwcHs8mjx4yQY+rV736XGBhfl6Lw80YrTDTw==","shasum":"ebe2d3aa656c1afe6a14bb95af73f3851c162d73","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-1.1.0.tgz","fileCount":131,"unpackedSize":708151,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA6GuOAWPwh9aC0MG8OwDJCiQfcAzCPNaHibQUxBoWWNAiBDpgZ1VQjQSrYO/li7D7A7UeYIgP7LV5KP1KB7cNpLuQ=="}],"size":114667},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_1.1.0_1732349484059_0.46835090835428606"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-23T08:11:24.350Z","publish_time":1732349484350,"_source_registry_name":"default","contributors":[]},"1.1.1":{"name":"@noble/ciphers","version":"1.1.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build && npm i && npm run build:release","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.2.1","@scure/base":"1.1.7","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.3.2","typescript":"5.5.2"},"engines":{"node":"^14.21.3 || >=16"},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index":{"import":"./esm/index.js","require":"./index.js"},"./salsa":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"sideEffects":false,"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@1.1.1","gitHead":"b4e769e6668a890d726f80dfe59135863cf9acec","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.18.1","_npmVersion":"10.9.1","dist":{"integrity":"sha512-2aCM5qHImP1RPm+0UqEyK6B0bP8h1c0cOIzIT+B6HLK2bAvXR3it3/igJ0Ymsa0iaXrYilaCCEPTEWq03otfXg==","shasum":"3a30877b0681c278ad98c3461bda3285f4b78abf","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-1.1.1.tgz","fileCount":131,"unpackedSize":707047,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFC8mSI0lL4GoOSaT67pBwVWu+A3H0xG0UjvLkGF5cTwIhAL4raZAoF29kmgFUYH1L27bzAHmOR3Jmu/brXyi7mROV"}],"size":114414},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_1.1.1_1732654926144_0.343826999477447"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-26T21:02:06.333Z","publish_time":1732654926333,"_source_registry_name":"default","contributors":[]},"1.1.2":{"name":"@noble/ciphers","version":"1.1.2","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build && npm i && npm run build:release","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.2.1","@scure/base":"1.1.7","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.3.2","typescript":"5.5.2"},"engines":{"node":"^14.21.3 || >=16"},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index":{"import":"./esm/index.js","require":"./index.js"},"./salsa":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"sideEffects":false,"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@1.1.2","gitHead":"8e935efce66159bef1ce882be0e2a4476346bf2f","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.18.1","_npmVersion":"10.9.1","dist":{"integrity":"sha512-7eTr/DCRCW+V9QaVGsfujw0mk7UOeRARbEz+fRzESRBfiBR3wsBzxOrYWNvqKTQjUfBFeSxJsVSfl6NJhZuYwg==","shasum":"d9f543a13896004d3dca49f6eb38933da117bb7a","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-1.1.2.tgz","fileCount":131,"unpackedSize":711790,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICgbUdtSJV/Jkr0ruABBfBa9qQdN0L0wo03lm0R/Q3Z4AiEA+RkJ2Pg6nbdsEafPgE7OqlwCJH0zujqMvmMGz1j1r6c="}],"size":115139},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_1.1.2_1732800964259_0.13096959010334608"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-28T13:36:04.478Z","publish_time":1732800964478,"_source_registry_name":"default","contributors":[]},"1.1.3":{"name":"@noble/ciphers","version":"1.1.3","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","bench:all":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build && npm i && npm run build:release","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.2.1","@scure/base":"1.1.7","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","prettier":"3.3.2","typescript":"5.5.2"},"engines":{"node":"^14.21.3 || >=16"},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index":{"import":"./esm/index.js","require":"./index.js"},"./salsa":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"sideEffects":false,"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@1.1.3","gitHead":"341a4ae15e45555f8a50c50a1d4a5df84484916b","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.18.1","_npmVersion":"10.9.1","dist":{"integrity":"sha512-Ygv6WnWJHLLiW4fnNDC1z+i13bud+enXOFRBlpxI+NJliPWx5wdR+oWlTjLuBPTqjUjtHXtjkU6w3kuuH6upZA==","shasum":"eb27085aa7ce94d8c6eaeb64299bab0589920ec1","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-1.1.3.tgz","fileCount":131,"unpackedSize":717811,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFTqPzWWsICZsaj4TyV0tvhi9faH9J985rKqgfp9Z4+6AiAUtQ5552qo5uU9aO8QRvubU831e4eD/gRLS1eKqIQE2A=="}],"size":116134},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ciphers_1.1.3_1732982636901_0.10528216728425255"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-30T16:03:57.160Z","publish_time":1732982637160,"_source_registry_name":"default","contributors":[]},"1.2.0":{"name":"@noble/ciphers","version":"1.2.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/noble.js","bench:compare":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","build:release":"cd build && npm i && npm run build:release","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","test:coverage":"c8 node test/index.js"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.2.1","@scure/base":"1.2.1","fast-check":"3.0.0","micro-bmark":"0.3.1","micro-should":"0.4.0","c8":"10.1.3","prettier":"3.3.2","typescript":"5.5.2"},"engines":{"node":"^14.21.3 || >=16"},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index":{"import":"./esm/index.js","require":"./index.js"},"./salsa":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"sideEffects":false,"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@1.2.0","gitHead":"07a965bd4a63633922c48422ab441978c7f2e74d","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"20.18.1","_npmVersion":"11.0.0","dist":{"integrity":"sha512-YGdEUzYEd+82jeaVbSKKVp1jFZb8LwaNMIIzHFkihGvYdd/KKAr7KaJHdEdSYGredE3ssSravXIa0Jxg28Sv5w==","shasum":"a7858e18eb620f6b2a327a7f0e647b6a78fd0727","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-1.2.0.tgz","fileCount":131,"unpackedSize":729364,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOF6wSrJWWvhrTTDykQh2pMR/Nu2b1/qjx3aG6C45nbgIhAIJB0O51SA04d2ozZXOtjoemXvHlv6BErv4iP6z1WX6G"}],"size":118717},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_1.2.0_1735866312727_0.09083093331405179"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-03T01:05:12.934Z","publish_time":1735866312934,"_source_registry_name":"default","contributors":[]},"1.2.1":{"name":"@noble/ciphers","version":"1.2.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/noble.js","bench:compare":"node benchmark/compare.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build":"npm run build:clean; tsc && tsc -p tsconfig.cjs.json","build:release":"npx jsbt esbuild test/build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --import ./test/esm-register.js test/index.js","test:bun":"bun test/index.js","test:deno":"deno --allow-env --allow-read --import-map=./test/import_map.json test/index.js","test:big":"node --import ./test/esm-register.js test/crosstest.test.js slow"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.3.1","@scure/base":"1.2.1","fast-check":"3.0.0","micro-bmark":"0.4.0","micro-should":"0.5.1","prettier":"3.3.2","typescript":"5.5.2"},"engines":{"node":"^14.21.3 || >=16"},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index":{"import":"./esm/index.js","require":"./index.js"},"./salsa":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"sideEffects":false,"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@1.2.1","gitHead":"63df5811e3eb9f83bf0104a943c0a841853c35ca","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"22.13.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==","shasum":"3812b72c057a28b44ff0ad4aff5ca846e5b9cdc9","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-1.2.1.tgz","fileCount":131,"unpackedSize":732662,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGnprzWzR2In3UKr5q5Gy+LrpDlWDQ5Yj+yenljvYOOxAiEArG6E5pKZhI2+gJBFGrEi22RNLPfWAhTdTZyWVp6EmBQ="}],"size":119450},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_1.2.1_1737192923809_0.1218367615147351"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-18T09:35:24.025Z","publish_time":1737192924025,"_source_registry_name":"default","contributors":[]},"1.3.0":{"name":"@noble/ciphers","version":"1.3.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node benchmark/noble.js","bench:compare":"node benchmark/compare.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build":"npm run build:clean; tsc && tsc -p tsconfig.cjs.json","build:release":"npx jsbt esbuild test/build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --import ./test/esm-register.js test/index.js","test:bun":"bun test/index.js","test:deno":"deno --allow-env --allow-read --import-map=./test/import_map.json test/index.js","test:big":"node --import ./test/esm-register.js test/crosstest.test.js slow"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.3.3","@scure/base":"1.2.5","fast-check":"3.0.0","micro-bmark":"0.4.1","micro-should":"0.5.2","prettier":"3.5.3","typescript":"5.8.3"},"engines":{"node":"^14.21.3 || >=16"},"main":"index.js","exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index":{"import":"./esm/index.js","require":"./index.js"},"./salsa":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"},"./_micro.js":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305.js":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./_polyval.js":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./aes.js":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha.js":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto.js":{"types":"./crypto.d.ts","node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"import":"./esm/crypto.js","default":"./crypto.js"},"./ff1.js":{"import":"./esm/ff1.js","require":"./ff1.js"},"./index.js":{"import":"./esm/index.js","require":"./index.js"},"./salsa.js":{"import":"./esm/salsa.js","require":"./salsa.js"},"./utils.js":{"import":"./esm/utils.js","require":"./utils.js"},"./webcrypto.js":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"sideEffects":false,"browser":{"node:crypto":false,"./crypto":"./crypto.js"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@1.3.0","gitHead":"953f9aabb4dd91f02bb64a8df424dd1912ddd62a","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"22.13.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==","shasum":"f64b8ff886c240e644e5573c097f86e5b43676dc","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-1.3.0.tgz","fileCount":131,"unpackedSize":752840,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD015at2Dtj9ZQilQphW/nOxB9ntgBrbQDHqUO8GuCdIgIhAIlBE0bv/aD94JFRLcGlEY8oCc3e2dHQELZ9rMkNijZ1"}],"size":121164},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_1.3.0_1745514246089_0.4413852669332903"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-04-24T17:04:06.305Z","publish_time":1745514246305,"_source_registry_name":"default","contributors":[]},"2.0.0-beta.1":{"name":"@noble/ciphers","version":"2.0.0-beta.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node test/benchmark/noble.ts","bench:compare":"node test/benchmark/compare.ts","bench:install":"cd test/benchmark; npm install","build":"npm run build:clean; tsc","build:release":"npx jsbt esbuild test/build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js","test:big":"node test/crosstest.test.js slow"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.4.1","@scure/base":"1.2.5","fast-check":"4.1.1","micro-bmark":"0.4.2","micro-should":"0.5.3","prettier":"3.5.3","typescript":"5.8.3"},"engines":{"node":">= 20.19.0"},"type":"module","module":"index.js","main":"index.js","sideEffects":false,"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@2.0.0-beta.1","readmeFilename":"README.md","gitHead":"60391df2f5e41f087a49bb8dc6cf07918d5f3b78","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"24.0.1","_npmVersion":"11.3.0","dist":{"integrity":"sha512-OzbpPLMRn0LPM1UkBnKqt922grdXXb+6ktveY74X4Vxoyu+EKtc+eTPU2y5wWY8IsDb03iAlmXzwx8MpLwOPkw==","shasum":"8d3cb6b8e9bae20a4b4770d181a5b665a70f7d6d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-2.0.0-beta.1.tgz","fileCount":53,"unpackedSize":428022,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCslAya6XdbbUs6kVUKfUN2AjqffVZ2n6KBRIDjxyPZEwIhAKl69lksCT/bIuI1RdOBP3z2xJ6wUABKYETRn1aCCT5l"}],"size":92459},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_2.0.0-beta.1_1748530732420_0.5310689831848721"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-05-29T14:58:52.632Z","publish_time":1748530732632,"_source_registry_name":"default","contributors":[]},"2.0.0-beta.2":{"name":"@noble/ciphers","version":"2.0.0-beta.2","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node test/benchmark/noble.ts","bench:compare":"node test/benchmark/compare.ts","bench:install":"cd test/benchmark; npm install","build":"npm run build:clean; tsc","build:release":"npx jsbt esbuild test/build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js","test:big":"node test/crosstest.test.js slow"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.4.1","@scure/base":"1.2.5","@types/node":"22.15.23","fast-check":"4.1.1","micro-bmark":"0.4.2","micro-should":"0.5.3","prettier":"3.5.3","typescript":"5.8.3"},"engines":{"node":">= 20.19.0"},"type":"module","module":"index.js","main":"index.js","sideEffects":false,"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@2.0.0-beta.2","readmeFilename":"README.md","gitHead":"5ab1933ed096f66535df8f75b13244e1cc110a8c","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"24.1.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-vAHsDhg9a1Z+JxhXAiVOija1uW+Hlx6TRLpO5xrd27kAN3Pkk8aNwmFfot2Y3XXMhOTn2lHk2BpfAEqwJvtxjQ==","shasum":"a7b9ddd598e90b55e8ca4c2c972fbd0d51fd3057","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-2.0.0-beta.2.tgz","fileCount":53,"unpackedSize":455833,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBXi4kbQ5qvbY7jIMr1lw5BM7v/ITyXiksL7T+ERM9w+AiEA2ceX7PBCEDNXmSH6EFI7oXq4GF7jM27ewgefmEu6E0I="}],"size":98239},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_2.0.0-beta.2_1752613726810_0.0958235975368964"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-07-15T21:08:47.084Z","publish_time":1752613727084,"_source_registry_name":"default","deprecated":"beta","contributors":[]},"2.0.0-beta.3":{"name":"@noble/ciphers","version":"2.0.0-beta.3","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","scripts":{"bench":"node test/benchmark/noble.ts","bench:compare":"node test/benchmark/compare.ts","bench:install":"cd test/benchmark; npm install","build":"npm run build:clean; tsc","build:release":"npx --no @paulmillr/jsbt esbuild test/build","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} 2> /dev/null","lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js","test:big":"node test/crosstest.test.js slow"},"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"homepage":"https://paulmillr.com/noble/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"license":"MIT","devDependencies":{"@paulmillr/jsbt":"0.4.1","@scure/base":"1.2.5","@types/node":"22.15.23","fast-check":"4.1.1","micro-bmark":"0.4.2","micro-should":"0.5.3","prettier":"3.5.3","typescript":"5.8.3"},"engines":{"node":">= 20.19.0"},"type":"module","module":"index.js","main":"index.js","sideEffects":false,"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"funding":"https://paulmillr.com/funding/","_id":"@noble/ciphers@2.0.0-beta.3","readmeFilename":"README.md","gitHead":"f79fea86a6bf12ed1a3cc87911c2680068142c5b","types":"./index.d.ts","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-j3d+FvPxiJIyWckk2kL5qfwLmeN+UUmBZmS33HJRWW8CkI88fT1/FBHiSRY78mKV4RBKd3DK0b1pQY/00zjf3Q==","shasum":"87d51c2172eebaa4333475fbf16158dfb5adf7e6","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-2.0.0-beta.3.tgz","fileCount":53,"unpackedSize":458418,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFigsJRDKxUhjMFsC8JcSQCq6j041Pm8ttDvWgU1SQt9AiEAwuOtKoQ4JfyEugfdK+w+2qdDUkWgZsD+FEZqsrxmk/w="}],"size":99148},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_2.0.0-beta.3_1753847180132_0.29859442280544024"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-07-30T03:46:20.339Z","publish_time":1753847180339,"_source_registry_name":"default","deprecated":"beta","contributors":[]},"2.0.0-beta.4":{"name":"@noble/ciphers","version":"2.0.0-beta.4","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","devDependencies":{"@paulmillr/jsbt":"0.4.2","@scure/base":"1.2.5","@types/node":"24.2.1","fast-check":"4.2.0","micro-bmark":"0.4.2","micro-should":"0.5.3","prettier":"3.6.2","typescript":"5.9.2"},"scripts":{"bench":"node test/benchmark/noble.ts","bench:compare":"node test/benchmark/compare.ts","bench:install":"cd test/benchmark; npm install","build":"tsc","build:release":"npx --no @paulmillr/jsbt esbuild test/build","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js","test:big":"node test/crosstest.test.js slow"},"engines":{"node":">= 20.19.0"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"homepage":"https://paulmillr.com/noble/","funding":"https://paulmillr.com/funding/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"license":"MIT","_id":"@noble/ciphers@2.0.0-beta.4","readmeFilename":"README.md","gitHead":"ad7119d1121bb84ade15380e46a0ba2f51575908","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-uHkNCyVnX+uCmGXi6Cce8Tp4VaCSyrCFrjqh+lZopWEFpdztSNrqe3Yve/yuGrVLuBjPVPupragRuj32us5pGg==","shasum":"2a1bc9979edc4737dcff7e4f45f096ba61cd0185","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-2.0.0-beta.4.tgz","fileCount":53,"unpackedSize":457923,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDOsHbPx7b2m3if8KAOHcURnyU9/g9+n2NvF0/TD9HMKQIgb6uebBsrUxear8+NvLjSjEZGxsXqBj6B6ZX49+v+l7k="}],"size":99139},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_2.0.0-beta.4_1755432195067_0.24267056917578644"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-17T12:03:15.267Z","publish_time":1755432195267,"_source_registry_name":"default","deprecated":"beta","contributors":[]},"2.0.0":{"name":"@noble/ciphers","version":"2.0.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","devDependencies":{"@paulmillr/jsbt":"0.4.4","@scure/base":"2.0.0","@types/node":"24.2.1","fast-check":"4.2.0","prettier":"3.6.2","typescript":"5.9.2"},"scripts":{"bench":"node test/benchmark/noble.ts","bench:compare":"cd test/benchmark; npm install; node compare.ts","build":"tsc","build:release":"npx --no @paulmillr/jsbt esbuild test/build","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js","test:big":"node test/crosstest.test.js slow"},"engines":{"node":">= 20.19.0"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"homepage":"https://paulmillr.com/noble/","funding":"https://paulmillr.com/funding/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"license":"MIT","_id":"@noble/ciphers@2.0.0","gitHead":"1fb6315cc40856d9d8723c34aae3f551a0e383fb","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-j/l6jpnpaIBM87cAYPJzi/6TgqmBv9spkqPyCXvRYsu5uxqh6tPJZDnD85yo8VWqzTuTQPgfv7NgT63u7kbwAQ==","shasum":"2d3044c63f1885aa25d02311d8d6a8ffe1f8f536","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-2.0.0.tgz","fileCount":53,"unpackedSize":457752,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCtJL8WmLpcCTw+PLmWQpjPUWJRg9MK+XKBSekQ1NcQNAIhAM8xiU3Ljx2sC69PpRu/L0FZaDCyvPu8WzwRBYHlDmgn"}],"size":99118},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_2.0.0_1756134619717_0.5316724863890083"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-25T15:10:19.949Z","publish_time":1756134619949,"_source_registry_name":"default","contributors":[]},"2.0.1":{"name":"@noble/ciphers","version":"2.0.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","devDependencies":{"@paulmillr/jsbt":"0.4.4","@scure/base":"2.0.0","@types/node":"24.2.1","fast-check":"4.2.0","prettier":"3.6.2","typescript":"5.9.2"},"scripts":{"bench":"node test/benchmark/noble.ts","bench:compare":"cd test/benchmark; npm install; node compare.ts","build":"tsc","build:release":"npx --no @paulmillr/jsbt esbuild test/build","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js","test:big":"node test/crosstest.test.ts slow"},"exports":{".":"./index.js","./_arx.js":"./_arx.js","./_poly1305.js":"./_poly1305.js","./_polyval.js":"./_polyval.js","./aes.js":"./aes.js","./chacha.js":"./chacha.js","./ff1.js":"./ff1.js","./salsa.js":"./salsa.js","./utils.js":"./utils.js","./webcrypto.js":"./webcrypto.js"},"engines":{"node":">= 20.19.0"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"homepage":"https://paulmillr.com/noble/","funding":"https://paulmillr.com/funding/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"license":"MIT","_id":"@noble/ciphers@2.0.1","gitHead":"7630b75e025639f33a58214502f5bd6277f8cf44","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"24.8.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-xHK3XHPUW8DTAobU+G0XT+/w+JLM7/8k1UFdB5xg/zTFPnFCobhftzw8wl4Lw2aq/Rvir5pxfZV5fEazmeCJ2g==","shasum":"fb07d6479d11fd10d7f601b6fb8fb9925b7accf7","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-2.0.1.tgz","fileCount":53,"unpackedSize":458096,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCoOwvKk+i5XNPBoxN4LE86hG4qpCznw/MDnBjrIwUfnwIhAN03KvErYTtxfAdYlfvYApInTpqLZAIoJXxuElPy5hO8"}],"size":99198},"_npmUser":{"name":"anonymous","email":"paul@paulmillr.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_2.0.1_1758556446854_0.8777689453257047"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-09-22T15:54:07.131Z","publish_time":1758556447131,"_source_registry_name":"default","contributors":[]},"2.1.1":{"name":"@noble/ciphers","version":"2.1.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","devDependencies":{"@paulmillr/jsbt":"0.4.5","@scure/base":"2.0.0","@types/node":"24.2.1","fast-check":"4.2.0","prettier":"3.6.2","typescript":"5.9.2"},"scripts":{"bench":"node test/benchmark/noble.ts","bench:compare":"cd test/benchmark; npm install; node compare.ts","build":"tsc","build:release":"npx --no @paulmillr/jsbt esbuild test/build","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js","test:slow":"node test/crosstest.test.ts slow"},"exports":{".":"./index.js","./_arx.js":"./_arx.js","./_poly1305.js":"./_poly1305.js","./_polyval.js":"./_polyval.js","./aes.js":"./aes.js","./chacha.js":"./chacha.js","./ff1.js":"./ff1.js","./salsa.js":"./salsa.js","./utils.js":"./utils.js","./webcrypto.js":"./webcrypto.js"},"engines":{"node":">= 20.19.0"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"homepage":"https://paulmillr.com/noble/","funding":"https://paulmillr.com/funding/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"license":"MIT","gitHead":"785181b0772ba84afbe812025714163e4e48262f","_id":"@noble/ciphers@2.1.1","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"24.11.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw==","shasum":"c8c74fcda8c3d1f88797d0ecda24f9fc8b92b052","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-2.1.1.tgz","fileCount":53,"unpackedSize":490187,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC2d94nva1LO+n0c/N201134hoN4rUj7IIWYH4PlD89dgIhAMv0nlllC67pH9v6IFbYUFhzDYeTzuodL4BFqAdCgQX1"}],"size":107210},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:551738a6-0371-418b-a874-d1107d712582"}},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_2.1.1_1765083820718_0.7658131460379438"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-07T05:03:40.873Z","publish_time":1765083820873,"_source_registry_name":"default","contributors":[]},"2.2.0":{"name":"@noble/ciphers","version":"2.2.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","devDependencies":{"@paulmillr/jsbt":"0.5.0","@scure/base":"2.0.0","@types/node":"25.3.0","fast-check":"4.2.0","prettier":"3.6.2","typescript":"6.0.2"},"scripts":{"bench":"node test/benchmark/noble.ts","bench:compare":"cd test/benchmark; npm install; node compare.ts","build":"tsc","build:release":"npx --no @paulmillr/jsbt esbuild test/build","check":"npm run check:readme && npm run check:treeshake && npm run check:jsdoc","check:readme":"npx --no @paulmillr/jsbt readme package.json","check:treeshake":"npx --no @paulmillr/jsbt treeshake package.json test/build/out-treeshake","check:jsdoc":"npx --no @paulmillr/jsbt tsdoc package.json","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.ts","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:node20":"cd test; npx tsc; node compiled/test/index.js","test:slow":"node test/crosstest.test.ts slow"},"exports":{".":"./index.js","./_arx.js":"./_arx.js","./_poly1305.js":"./_poly1305.js","./_polyval.js":"./_polyval.js","./aes.js":"./aes.js","./chacha.js":"./chacha.js","./ff1.js":"./ff1.js","./salsa.js":"./salsa.js","./utils.js":"./utils.js","./webcrypto.js":"./webcrypto.js"},"engines":{"node":">= 20.19.0"},"keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"homepage":"https://paulmillr.com/noble/","funding":"https://paulmillr.com/funding/","repository":{"type":"git","url":"git+https://github.com/paulmillr/noble-ciphers.git"},"type":"module","main":"index.js","module":"index.js","types":"index.d.ts","sideEffects":false,"author":{"name":"Paul Miller","url":"https://paulmillr.com"},"license":"MIT","gitHead":"b097e6838326491fb084fc838e29decdc050706a","_id":"@noble/ciphers@2.2.0","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"_nodeVersion":"24.11.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-Z6pjIZ/8IJcCGzb2S/0Px5J81yij85xASuk1teLNeg75bfT07MV3a/O2Mtn1I2se43k3lkVEcFaR10N4cgQcZA==","shasum":"84fb45ac9332925d643b80f89ceb0ea2f21dba95","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@noble/ciphers/-/ciphers-2.2.0.tgz","fileCount":53,"unpackedSize":726834,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD0fskury9cmvCL0iLcgh+YRz4SNcaXFv50QFB39kzSoAIhAOBDJQhAa2Me9taFffkGHuVepSjFbA375gnkNzVhE7xR"}],"size":163727},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:551738a6-0371-418b-a874-d1107d712582"}},"directories":{},"maintainers":[{"name":"anonymous","email":"paul@paulmillr.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_2.2.0_1775943290520_0.7603297927507515"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-04-11T21:34:50.735Z","publish_time":1775943290735,"_source_registry_name":"default","contributors":[]}},"dist-tags":{"latest":"2.2.0","beta":"2.0.0-beta.1"},"name":"@noble/ciphers","time":{"created":"2023-06-30T03:05:10.316Z","modified":"2026-04-11T21:35:06.841Z","0.1.2":"2023-06-28T23:34:52.873Z","0.1.3":"2023-06-29T23:56:14.109Z","0.1.4":"2023-07-15T06:08:06.143Z","0.2.0":"2023-07-31T16:45:38.156Z","0.3.0":"2023-08-31T00:49:21.827Z","0.4.0":"2023-10-19T17:24:03.690Z","0.4.1":"2023-12-11T23:17:59.983Z","0.5.0":"2024-02-09T12:54:37.675Z","0.5.1":"2024-02-09T18:10:22.584Z","0.5.2":"2024-03-25T17:02:12.371Z","0.5.3":"2024-05-06T13:43:32.048Z","0.6.0":"2024-08-05T22:56:39.774Z","1.0.0":"2024-09-12T23:29:01.728Z","1.1.0":"2024-11-23T08:11:24.350Z","1.1.1":"2024-11-26T21:02:06.333Z","1.1.2":"2024-11-28T13:36:04.478Z","1.1.3":"2024-11-30T16:03:57.160Z","1.2.0":"2025-01-03T01:05:12.934Z","1.2.1":"2025-01-18T09:35:24.025Z","1.3.0":"2025-04-24T17:04:06.305Z","2.0.0-beta.1":"2025-05-29T14:58:52.632Z","2.0.0-beta.2":"2025-07-15T21:08:47.084Z","2.0.0-beta.3":"2025-07-30T03:46:20.339Z","2.0.0-beta.4":"2025-08-17T12:03:15.267Z","2.0.0":"2025-08-25T15:10:19.949Z","2.0.1":"2025-09-22T15:54:07.131Z","2.1.1":"2025-12-07T05:03:40.873Z","2.2.0":"2026-04-11T21:34:50.735Z"},"readme":"# noble-ciphers\n\nAudited & minimal JS implementation of Salsa20, ChaCha and AES.\n\n- 🔒 [**Audited**](#security) by an independent security firm\n- 🔻 Tree-shakeable: unused code is excluded from your builds\n- 🏎 Fast: hand-optimized for caveats of JS engines\n- 🔍 Reliable: property-based / cross-library / wycheproof tests ensure correctness\n- 💼 AES: ECB, CBC, CTR, CFB, GCM, SIV (nonce misuse-resistant), AESKW, AESKWP\n- 💃 Salsa20, ChaCha, XSalsa20, XChaCha, ChaCha8, ChaCha12, Poly1305\n- 🥈 Two AES implementations: pure JS or friendly WebCrypto wrapper\n- 🪶 11KB (gzipped) for everything, 3KB for ChaCha-only build\n\nUse [awasm-noble](https://github.com/paulmillr/awasm-noble) if you need an even faster (WASM) alternative. Check out [Upgrading](#upgrading) for information about upgrading from previous versions.\nTake a glance at [GitHub Discussions](https://github.com/paulmillr/noble-ciphers/discussions) for questions and support.\n\n### This library belongs to _noble_ cryptography\n\n> **noble cryptography** — high-security, easily auditable set of contained cryptographic libraries and tools.\n\n- Zero or minimal dependencies\n- Highly readable TypeScript / JS code\n- PGP-signed releases and transparent NPM builds\n- All libraries:\n  [ciphers](https://github.com/paulmillr/noble-ciphers),\n  [curves](https://github.com/paulmillr/noble-curves),\n  [hashes](https://github.com/paulmillr/noble-hashes),\n  [post-quantum](https://github.com/paulmillr/noble-post-quantum),\n  5kb [secp256k1](https://github.com/paulmillr/noble-secp256k1) /\n  [ed25519](https://github.com/paulmillr/noble-ed25519)\n- [Check out the homepage](https://paulmillr.com/noble/)\n  for reading resources, documentation, and apps built with noble\n\n## Usage\n\n> `npm install @noble/ciphers`\n\n> `deno add jsr:@noble/ciphers`\n\nWe support all major platforms and runtimes.\nFor React Native, you may need a\n[polyfill for getRandomValues](https://github.com/LinusU/react-native-get-random-values).\nA standalone file\n[noble-ciphers.js](https://github.com/paulmillr/noble-ciphers/releases) is also available.\n\n```ts\n// import * from '@noble/ciphers'; // Error: use sub-imports, to ensure small app size\nimport { gcm, gcmsiv } from '@noble/ciphers/aes.js';\nimport { chacha20poly1305, xchacha20poly1305 } from '@noble/ciphers/chacha.js';\nimport { xsalsa20poly1305 } from '@noble/ciphers/salsa.js';\n\n// Unauthenticated encryption: make sure to use HMAC or similar\nimport { ctr, cfb, cbc, ecb } from '@noble/ciphers/aes.js';\nimport { salsa20, xsalsa20 } from '@noble/ciphers/salsa.js';\nimport { chacha20, xchacha20, chacha8, chacha12 } from '@noble/ciphers/chacha.js';\nimport { aeskw, aeskwp } from '@noble/ciphers/aes.js'; // KW\nimport { bytesToHex, hexToBytes, managedNonce, randomBytes } from '@noble/ciphers/utils.js';\n```\n\n- [Examples](#examples)\n  - [XChaCha20-Poly1305 encryption](#xchacha20-poly1305-encryption)\n  - [AES-256-GCM encryption](#aes-256-gcm-encryption)\n  - [managedNonce: automatic nonce handling](#managednonce-automatic-nonce-handling)\n  - [AES: gcm, siv, ctr, cfb, cbc, ecb, aeskw](#aes-gcm-siv-ctr-cfb-cbc-ecb-aeskw)\n  - [AES: friendly WebCrypto wrapper](#aes-friendly-webcrypto-wrapper)\n  - [Reuse array for input and output](#reuse-array-for-input-and-output)\n  - [Use password for encryption](#use-password-for-encryption)\n- [Internals](#internals)\n  - [Picking a cipher](#picking-a-cipher)\n  - [How to encrypt properly](#how-to-encrypt-properly)\n  - [Nonces](#nonces)\n  - [Encryption limits](#encryption-limits)\n  - [AES block modes](#aes-block-modes)\n  - [Implemented primitives](#implemented-primitives)\n- [Security](#security)\n- [Speed](#speed)\n- [Upgrading](#upgrading)\n- [Contributing & testing](#contributing--testing)\n- [License](#license)\n\n## Examples\n\n> [!NOTE]\n> Use different nonce every time `encrypt()` is done.\n\n#### XChaCha20-Poly1305 encryption\n\n```js\nimport { xchacha20poly1305 } from '@noble/ciphers/chacha.js';\nimport { randomBytes } from '@noble/ciphers/utils.js';\nconst key = randomBytes(32); // random key\n// const key = new Uint8Array([ // existing key\n//   169, 88, 160, 139, 168, 29, 147, 196, 14, 88, 237, 76, 243, 177, 109, 140,\n//   195, 140, 80, 10, 216, 134, 215, 71, 191, 48, 20, 104, 189, 37, 38, 55,\n// ]);\n// import { hexToBytes } from '@noble/ciphers/utils.js'; // hex key\n// const key = hexToBytes('4b7f89bac90a1086fef73f5da2cbe93b2fae9dfbf7678ae1f3e75fd118ddf999');\nconst nonce = randomBytes(24);\nconst chacha = xchacha20poly1305(key, nonce);\nconst data = new TextEncoder().encode('hello noble');\nconst ciphertext = chacha.encrypt(data);\nconst data_ = chacha.decrypt(ciphertext); // new TextDecoder().decode(data_) === data\n```\n\n#### AES-256-GCM encryption\n\n```js\nimport { gcm } from '@noble/ciphers/aes.js';\nimport { randomBytes } from '@noble/ciphers/utils.js';\nconst key = randomBytes(32);\nconst nonce = randomBytes(24);\nconst data = new TextEncoder().encode('hello noble');\nconst aes = gcm(key, nonce);\nconst ciphertext = aes.encrypt(data);\nconst data_ = aes.decrypt(ciphertext); // new TextDecoder().decode(data_) === data\n```\n\n#### managedNonce: automatic nonce handling\n\nWe provide API that manages nonce internally instead of exposing them to library's user.\n\nFor `encrypt`: a `nonceBytes`-length buffer is fetched from CSPRNG and prenended to encrypted ciphertext.\n\nFor `decrypt`: first `nonceBytes` of ciphertext are treated as nonce.\n\n> [!NOTE]\n> AES-GCM & ChaCha (NOT XChaCha) [limit amount of messages](#encryption-limits)\n> encryptable under the same key.\n\n```js\nimport { xchacha20poly1305 } from '@noble/ciphers/chacha.js';\nimport { hexToBytes, managedNonce } from '@noble/ciphers/utils.js';\nconst key = hexToBytes('fa686bfdffd3758f6377abbc23bf3d9bdc1a0dda4a6e7f8dbdd579fa1ff6d7e1');\nconst chacha = managedNonce(xchacha20poly1305)(key); // manages nonces for you\nconst data = new TextEncoder().encode('hello noble');\nconst ciphertext = chacha.encrypt(data);\nconst data_ = chacha.decrypt(ciphertext);\n```\n\n#### AES: gcm, siv, ctr, cfb, cbc, ecb, aeskw\n\n```js\nimport { gcm, gcmsiv, aessiv, ctr, cfb, cbc, ecb } from '@noble/ciphers/aes.js';\nimport { randomBytes } from '@noble/ciphers/utils.js';\nconst plaintext = new Uint8Array(32).fill(16);\nfor (let cipher of [gcm, gcmsiv, aessiv]) {\n  const key = randomBytes(32); // 24 for AES-192, 16 for AES-128\n  const nonce = randomBytes(12);\n  const ciphertext_ = cipher(key, nonce).encrypt(plaintext);\n  const plaintext_ = cipher(key, nonce).decrypt(ciphertext_);\n}\nfor (const cipher of [ctr, cbc, cfb]) {\n  const key = randomBytes(32); // 24 for AES-192, 16 for AES-128\n  const nonce = randomBytes(16);\n  const ciphertext_ = cipher(key, nonce).encrypt(plaintext);\n  const plaintext_ = cipher(key, nonce).decrypt(ciphertext_);\n}\nfor (const cipher of [ecb]) {\n  const key = randomBytes(32); // 24 for AES-192, 16 for AES-128\n  const ciphertext_ = cipher(key).encrypt(plaintext);\n  const plaintext_ = cipher(key).decrypt(ciphertext_);\n}\n\n// AESKW, AESKWP\nimport { aeskw, aeskwp } from '@noble/ciphers/aes.js';\nimport { hexToBytes } from '@noble/ciphers/utils.js';\n\nconst kek = hexToBytes('000102030405060708090A0B0C0D0E0F');\nconst keyData = hexToBytes('00112233445566778899AABBCCDDEEFF');\nconst ciphertext = aeskw(kek).encrypt(keyData);\n```\n\n#### AES: friendly WebCrypto wrapper\n\nNoble implements AES. Sometimes people want to use built-in `crypto.subtle` instead. However, it has terrible API. We simplify access to built-ins.\n\n> [!NOTE]\n> Webcrypto methods are always async.\n\n```js\nimport { gcm, ctr, cbc } from '@noble/ciphers/webcrypto.js';\nimport { randomBytes } from '@noble/ciphers/utils.js';\nconst plaintext = new Uint8Array(32).fill(16);\nconst key = randomBytes(32);\nfor (const cipher of [gcm]) {\n  const nonce = randomBytes(12);\n  const ciphertext_ = await cipher(key, nonce).encrypt(plaintext);\n  const plaintext_ = await cipher(key, nonce).decrypt(ciphertext_);\n}\nfor (const cipher of [ctr, cbc]) {\n  const nonce = randomBytes(16);\n  const ciphertext_ = await cipher(key, nonce).encrypt(plaintext);\n  const plaintext_ = await cipher(key, nonce).decrypt(ciphertext_);\n}\n```\n\n#### Reuse array for input and output\n\nTo avoid additional allocations, Uint8Array can be reused\nbetween encryption and decryption calls.\n\n> [!NOTE]\n> Some ciphers don't support unaligned (`byteOffset % 4 !== 0`) Uint8Array as\n> destination. It can decrease performance, making the optimization pointless.\n\n```js\nimport { chacha20poly1305 } from '@noble/ciphers/chacha.js';\nimport { randomBytes } from '@noble/ciphers/utils.js';\n\nconst key = randomBytes(32);\nconst nonce = randomBytes(12);\nconst chacha = chacha20poly1305(key, nonce);\n\nconst input = new TextEncoder().encode('hello noble'); // length == 12\nconst inputLength = input.length;\nconst tagLength = 16;\n\nconst buf = new Uint8Array(inputLength + tagLength);\nconst start = buf.subarray(0, inputLength);\nstart.set(input); // copy input to buf\n\nchacha.encrypt(start, buf); // encrypt into `buf`\nchacha.decrypt(buf, start); // decrypt into `start`\n```\n\nxsalsa20poly1305 also supports this, but requires 32 additional bytes for encryption / decryption,\ndue to its inner workings.\n\n#### Randomness generation\n\nWe provide userspace CSPRNG (cryptographically secure pseudorandom number generator).\nIt's best to limit their usage to non-production, non-critical cases: for example, test-only usage.\nChaCha-based CSPRNG does not have a specification as per 2025, which makes it less secure.\n\n```js\nimport { randomBytes } from '@noble/ciphers/utils.js';\nimport { rngAesCtrDrbg256 } from '@noble/ciphers/aes.js';\nimport { rngChacha8, rngChacha20 } from '@noble/ciphers/chacha.js';\n\n// 1. Best: WebCrypto\nconst rnd1 = randomBytes(32);\n// 2. AES-CTR DRBG\nconst seed2 = randomBytes(48);\nconst rnd2 = rngAesCtrDrbg256(seed2).randomBytes(1024);\n// 3. ChaCha8 CSPRNG\nconst seed3 = randomBytes(32);\nconst rnd3 = rngChacha8(seed3).randomBytes(1024);\n```\n\n#### Use password for encryption\n\nIt is not safe to convert password into Uint8Array.\nInstead, KDF stretching function like PBKDF2 / Scrypt / Argon2id\nshould be applied to convert password to AES key.\nMake sure to use salt (app-specific secret) in addition to password.\n\n> `npm install @noble/hashes`\n\n```js\nimport { xchacha20poly1305 } from '@noble/ciphers/chacha.js';\nimport { managedNonce } from '@noble/ciphers/utils.js';\nimport { scrypt } from '@noble/hashes/scrypt.js';\n\n// Convert password into 32-byte key using scrypt\nconst PASSWORD = 'correct-horse-battery-staple';\nconst APP_SPECIFIC_SECRET = 'salt-12345678-secret';\nconst SECURITY_LEVEL = 2 ** 20; // requires 1GB of RAM to calculate\n// sync, but scryptAsync is also available\nconst key = scrypt(PASSWORD, APP_SPECIFIC_SECRET, { N: SECURITY_LEVEL, r: 8, p: 1, dkLen: 32 });\n\n// Use random, managed nonce\nconst chacha = managedNonce(xchacha20poly1305)(key);\n\nconst data = new TextEncoder().encode('hello noble');\nconst ciphertext = chacha.encrypt(data);\nconst data_ = chacha.decrypt(ciphertext);\n```\n\n## Internals\n\n### Picking a cipher\n\nWe suggest to use **XChaCha20-Poly1305** because it's very fast and allows random keys.\n**AES-GCM-SIV** is also a good idea, because it provides resistance against nonce reuse.\n**AES-GCM** is a good option when those two are not available.\n\n### How to encrypt properly\n\n- Use unpredictable key with enough entropy\n  - Random key must be using cryptographically secure random number generator (CSPRNG), not `Math.random` etc.\n  - Non-random key generated from KDF is fine\n  - Re-using key is fine, but be aware of rules for cryptographic key wear-out and [encryption limits](#encryption-limits)\n- Use new nonce every time and [don't repeat it](#nonces)\n  - chacha and salsa20 are fine for sequential counters that _never_ repeat: `01, 02...`\n  - xchacha and xsalsa20 can use random nonces instead\n  - AES-GCM should use 12-byte nonces: smaller nonces are security risk\n- Prefer authenticated encryption (AEAD)\n  - Good: chacha20poly1305, GCM, GCM-SIV, ChaCha+HMAC, CTR+HMAC, CBC+HMAC\n  - Bad: chacha20, raw CTR, raw CBC\n  - Flipping bits or ciphertext substitution won't be detected in unauthenticated ciphers\n  - Polynomial MACs are not perfect for every situation:\n    they lack Random Key Robustness: the MAC can be forged, and can't\n    be used in PAKE schemes. See\n    [invisible salamanders attack](https://keymaterial.net/2020/09/07/invisible-salamanders-in-aes-gcm-siv/).\n    To combat salamanders, `hash(key)` can be included in ciphertext,\n    however, this would violate ciphertext indistinguishability:\n    an attacker would know which key was used - so `HKDF(key, i)`\n    could be used instead.\n- Don't re-use keys between different protocols\n  - For example, using ECDH key in AES can be bad\n  - Use hkdf or, at least, a hash function to create sub-key instead\n\n### Nonces\n\nMost ciphers need a key and a nonce (aka initialization vector / IV) to encrypt a data.\nRepeating (key, nonce) pair with different plaintexts would allow an attacker to decrypt it.\n\n    ciphertext_a = encrypt(plaintext_a, key, nonce)\n    ciphertext_b = encrypt(plaintext_b, key, nonce)\n    stream_diff = xor(ciphertext_a, ciphertext_b)    # Break encryption\n\nOne way of not repeating nonces is using counters:\n\n    for i in 0..:\n        ciphertext[i] = encrypt(plaintexts[i], key, i)\n\nAnother is generating random nonce every time:\n\n    for i in 0..:\n        rand_nonces[i] = random()\n        ciphertext[i] = encrypt(plaintexts[i], key, rand_nonces[i])\n\n- Counters are OK, but it's not always possible to store current counter value:\n  e.g. in decentralized, unsyncable systems.\n- Randomness is OK, but there's a catch:\n  ChaCha20 and AES-GCM use 96-bit / 12-byte nonces, which implies higher chance of collision.\n  In the example above, `random()` can collide and produce repeating nonce.\n  Chance is even higher for 64-bit nonces, which GCM allows - don't use them.\n- To safely use random nonces, utilize XSalsa20 or XChaCha:\n  they increased nonce length to 192-bit, minimizing a chance of collision.\n  AES-SIV is also fine. In situations where you can't use eXtended-nonce\n  algorithms, key rotation is advised. hkdf would work great for this case.\n\n### Encryption limits\n\nA \"protected message\" would mean a probability of `2**-50` that a passive attacker\nsuccessfully distinguishes the ciphertext outputs of the AEAD scheme from the outputs\nof a random function.\n\n- Max message size:\n  - AES-GCM: ~68GB, `2**36-256`\n  - Salsa, ChaCha, XSalsa, XChaCha: ~256GB, `2**38-64`\n- Max amount of protected messages, under same key:\n  - AES-GCM: `2**32.5`\n  - Salsa, ChaCha: `2**46`, but only integrity (MAC) is affected, not confidentiality (encryption)\n  - XSalsa, XChaCha: `2**72`\n- Max amount of protected messages, across all keys:\n  - AES-GCM: `2**69/B` where B is max blocks encrypted by a key. Meaning\n    `2**59` for 1KB, `2**49` for 1MB, `2**39` for 1GB\n  - Salsa, ChaCha, XSalsa, XChaCha: `2**100`\n- Max amount of protected messages, under same key, using **random nonce**:\n  - Relevant for 12-byte nonces with `managedNonce`: AES-GCM, ChaCha\n  - `2**23` (8M) messages for `2**-50` chance, `2**32.5` (4B) for `2**-32.5` chance\n\nCheck out [draft-irtf-cfrg-aead-limits](https://datatracker.ietf.org/doc/draft-irtf-cfrg-aead-limits/) for details.\n\n### Implemented primitives\n\n- Salsa20 stream cipher, released in 2005.\n  Salsa's goal was to implement AES replacement that does not rely on S-Boxes,\n  which are hard to implement in a constant-time manner.\n  Salsa20 is usually faster than AES, a big deal on slow, budget mobile phones.\n  - [XSalsa20](https://cr.yp.to/snuffle/xsalsa-20110204.pdf), extended-nonce\n    variant was released in 2008. It switched nonces from 96-bit to 192-bit,\n    and became safe to be picked at random.\n  - Nacl / Libsodium popularized term \"secretbox\", - which is just xsalsa20poly1305.\n    We provide the alias and corresponding seal / open methods.\n    \"crypto_box\" and \"sealedbox\" are available in package [noble-sodium](https://github.com/serenity-kit/noble-sodium).\n  - Check out [PDF](https://cr.yp.to/snuffle/salsafamily-20071225.pdf)\n    and [website](https://cr.yp.to/snuffle.html).\n- ChaCha20 stream cipher, released in 2008. Developed after Salsa20,\n  ChaCha aims to increase diffusion per round.\n  - [XChaCha20](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-xchacha)\n    extended-nonce variant is also provided. Similar to XSalsa, it's safe to use with\n    randomly-generated nonces.\n  - Check out\n    [RFC 8439](https://www.rfc-editor.org/rfc/rfc8439),\n    [PDF](http://cr.yp.to/chacha/chacha-20080128.pdf) and\n    [website](https://cr.yp.to/chacha.html).\n- AES is a variant of Rijndael block cipher, standardized by NIST in 2001.\n  We provide the fastest available pure JS implementation.\n  - We support AES-128, AES-192 and AES-256: the mode is selected dynamically,\n    based on key length (16, 24, 32).\n  - AES-GCM-SIV nonce-misuse-resistant mode is also provided. Our implementation of SIV\n    has the same speed as GCM: there is no performance hit.\n    The mode is described in [RFC 8452](https://www.rfc-editor.org/rfc/rfc8452).\n  - There is a separate AES-SIV mode, described in [RFC 5297](https://www.rfc-editor.org/rfc/rfc5297)\n  - We also have AESKW and AESKWP from\n    [RFC 3394](https://www.rfc-editor.org/rfc/rfc3394) & [RFC 5649](https://www.rfc-editor.org/rfc/rfc5649)\n  - Format-preserving encryption algorithm (FPE-FF1) specified in\n    [NIST SP 800-38G](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38G.pdf).\n  - Check out [AES block modes](#aes-block-modes),\n    [FIPS 197](https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf) and\n    [original proposal](https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf).\n- Polynomial-evaluation MACs are available: Poly1305, AES-GCM's GHash and AES-SIV's Polyval.\n  - Poly1305 ([PDF](https://cr.yp.to/mac/poly1305-20050329.pdf),\n    [website](https://cr.yp.to/mac.html))\n    is a fast and parallel secret-key message-authentication code suitable for\n    a wide variety of applications. It was standardized in\n    [RFC 8439](https://www.rfc-editor.org/rfc/rfc8439) and is now used in TLS 1.3.\n  - Ghash is used in AES-GCM: see NIST SP 800-38G\n  - Polyval is used in AES-GCM-SIV: see [RFC 8452](https://www.rfc-editor.org/rfc/rfc8452)\n\n##### AES block modes\n\nFor non-deterministic (not ECB) schemes, initialization vector (IV) is mixed to block/key;\nand each new round either depends on previous block's key, or on some counter.\n\n- **ECB** (Electronic Codebook): Deterministic encryption; identical plaintext blocks yield identical ciphertexts. Not secure due to pattern leakage. due to pattern leakage.\n  See [AES Penguin](https://words.filippo.io/the-ecb-penguin/)\n- **CBC** (Cipher Block Chaining): Each plaintext block is XORed with the previous block of ciphertext\n  before encryption. Hard to use: requires proper padding and an IV. Unauthenticated: needs MAC.\n- **CTR** (Counter Mode): Turns a block cipher into a stream cipher using a counter and IV (nonce).\n  Efficient and parallelizable. Requires a unique nonce per encryption. Unauthenticated: needs MAC.\n- **GCM** (Galois/Counter Mode): Combines CTR mode with polynomial MAC. Efficient and widely used. Not perfect:\n  a) conservative key wear-out is `2**32` (4B) msgs.\n  b) key wear-out under random nonces is even smaller: `2**23` (8M) messages for `2**-50` chance.\n  c) MAC can be forged: see Poly1305 documentation.\n- **SIV** (Synthetic IV): GCM with nonce-misuse resistance; repeating nonces reveal only the fact plaintexts\n  are identical. Also suffers from GCM issues: key wear-out limits & MAC forging.\n- **XTS**: Designed for disk encryption.\n  Similar to ECB (deterministic), but has `[i][j]` tweak arguments corresponding to\n  sector i and 16-byte block (part of sector) j. Lacks MAC.\n\n## Security\n\nThe library has been audited:\n\n- at version 2.2.0, in Apr 2026, by ourselves (self-audited)\n  - Scope: everything\n  - [Changes since audit](https://github.com/paulmillr/noble-ciphers/compare/2.2.0..main)\n- at version 1.0.0, in Sep 2024, independently, by [cure53](https://cure53.de)\n  - PDFs: [website](https://cure53.de/audit-report_noble-crypto-libs.pdf), [in-repo](./audit/2024-09-cure53-audit-nbl4.pdf)\n  - [Changes since audit](https://github.com/paulmillr/noble-ciphers/compare/1.0.0..main)\n  - Scope: everything\n  - The audit has been funded by [OpenSats](https://opensats.org)\n\nIt is tested against property-based, cross-library and Wycheproof vectors,\nand is being fuzzed in [the separate repo](https://github.com/paulmillr/fuzzing).\n\nIf you see anything unusual: investigate and report.\n\n### Constant-timeness\n\nWe're targetting algorithmic constant time. _JIT-compiler_ and _Garbage Collector_ make \"constant time\"\nextremely hard to achieve [timing attack](https://en.wikipedia.org/wiki/Timing_attack) resistance\nin a scripting language. Which means _any other JS library can't have\nconstant-timeness_. Even statically typed Rust, a language without GC,\n[makes it harder to achieve constant-time](https://www.chosenplaintext.ca/open-source/rust-timing-shield/security)\nfor some cases. If your goal is absolute security, don't use any JS lib — including bindings to native ones.\nUse low-level libraries & languages.\n\nThe library uses T-tables for AES, which\n[leak access timings](https://cr.yp.to/antiforgery/cachetiming-20050414.pdf).\nThis is also done in [OpenSSL](https://github.com/openssl/openssl/blob/2f33265039cdbd0e4589c80970e02e208f3f94d2/crypto/aes/aes_core.c#L706) and\n[Go stdlib](https://cs.opensource.google/go/go/+/refs/tags/go1.22.6:src/crypto/aes/const.go;l=90) for performance reasons.\nThe analysis was mentioned in [hal-04652991](https://hal.science/hal-04652991/document).\n\n### Supply chain security\n\n- **Commits** are signed with PGP keys to prevent forgery. Be sure to verify the commit signatures\n- **Releases** are made transparently through token-less GitHub CI and Trusted Publishing. Be sure to verify the [provenance logs](https://docs.npmjs.com/generating-provenance-statements) for authenticity.\n- **Rare releasing** is practiced to minimize the need for re-audits by end-users.\n- **Dependencies** are minimized and strictly pinned to reduce supply-chain risk.\n  - We use as few dependencies as possible.\n  - Version ranges are locked, and changes are checked with npm-diff.\n- **Dev dependencies** are excluded from end-user installs; they’re only used for development and build steps.\n\nFor this package, there are 0 dependencies; and a few dev dependencies:\n\n- jsbt is used for benchmarking / testing / build tooling and developed by the same author\n- prettier, fast-check and typescript are used for code quality / test generation / ts compilation\n\n### Randomness\n\nWe rely on the built-in\n[`crypto.getRandomValues`](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues),\nwhich is considered a cryptographically secure PRNG.\n\nBrowsers have had weaknesses in the past - and could again - but implementing a userspace CSPRNG is even worse, as there’s no reliable userspace source of high-quality entropy.\n\n### Quantum computers\n\nCryptographically relevant quantum computer, if built, will allow to\nutilize Grover's algorithm to break ciphers in 2^n/2 operations, instead of 2^n.\n\nThis means AES128 should be replaced with AES256. Salsa and ChaCha are already safe.\n\nAustralian ASD prohibits AES128 [after 2030](https://www.cyber.gov.au/resources-business-and-government/essential-cyber-security/ism/cyber-security-guidelines/guidelines-cryptography).\n\n## Speed\n\n```sh\nnpm run bench\n```\n\nBenchmarks measured on Apple M4.\nIf you need truly exemplar performance, switch to [awasm-noble](https://github.com/paulmillr/awasm-noble).\n\n```\n64B\nxsalsa20poly1305 x 735,835 ops/sec @ 1μs/op\nchacha20poly1305 x 581,395 ops/sec @ 1μs/op\nxchacha20poly1305 x 468,384 ops/sec @ 2μs/op\naes-256-gcm x 201,126 ops/sec @ 4μs/op\naes-256-gcm-siv x 162,284 ops/sec @ 6μs/op\n# Unauthenticated encryption\nsalsa20 x 1,655,629 ops/sec @ 604ns/op\nxsalsa20 x 1,400,560 ops/sec @ 714ns/op\nchacha20 x 1,996,007 ops/sec @ 501ns/op\nxchacha20 x 1,404,494 ops/sec @ 712ns/op\nchacha8 x 2,145,922 ops/sec @ 466ns/op\nchacha12 x 2,036,659 ops/sec @ 491ns/op\naes-ecb-256 x 1,019,367 ops/sec @ 981ns/op\naes-cbc-256 x 931,966 ops/sec @ 1μs/op\naes-ctr-256 x 954,198 ops/sec @ 1μs/op\n\n1MB\nxsalsa20poly1305 x 334 ops/sec @ 2ms/op\nchacha20poly1305 x 333 ops/sec @ 2ms/op\nxchacha20poly1305 x 334 ops/sec @ 2ms/op\naes-256-gcm x 94 ops/sec @ 10ms/op\naes-256-gcm-siv x 90 ops/sec @ 11ms/op\n# Unauthenticated encryption\nsalsa20 x 831 ops/sec @ 1ms/op\nxsalsa20 x 830 ops/sec @ 1ms/op\nchacha20 x 804 ops/sec @ 1ms/op\nxchacha20 x 797 ops/sec @ 1ms/op\nchacha8 x 1,495 ops/sec @ 668μs/op\nchacha12 x 1,148 ops/sec @ 871μs/op\naes-ecb-256 x 289 ops/sec @ 3ms/op\naes-cbc-256 x 114 ops/sec @ 8ms/op\naes-ctr-256 x 127 ops/sec @ 7ms/op\n# Wrapper over built-in webcrypto\nwebcrypto ctr-256 x 6,508 ops/sec @ 153μs/op\nwebcrypto cbc-256 x 1,820 ops/sec @ 549μs/op\nwebcrypto gcm-256 x 5,106 ops/sec @ 195μs/op\n```\n\nCompare to other implementations:\n\n```\nxsalsa20poly1305 (encrypt, 1MB)\n├─tweetnacl x 196 mb/sec\n├─awasm-noble_threads x 2,318 mb/sec\n├─awasm-noble_no_threads x 1,196 mb/sec\n└─noble x 305 mb/sec\n\naes-ctr-256 (encrypt, 1MB)\n├─stablelib x 123 mb/sec\n├─aesjs x 42 mb/sec\n├─awasm-noble_thread x 2,105 mb/sec\n├─awasm-noble_no_threads x 272 mb/sec\n├─noble_webcrypto x 5,965 mb/sec\n└─noble x 124 mb/sec\n```\n\n## Upgrading\n\nSupported node.js versions:\n\n- v2: v20.19+ (ESM-only)\n- v1: v14.21+ (ESM & CJS)\n\nChangelog of v2, when upgrading from ciphers v1:\n\n- The package is now ESM-only. ESM can finally be loaded from common.js on node v20.19+\n- `.js` extension must be used for all modules\n    - Old: `@noble/ciphers/aes`\n    - New: `@noble/ciphers/aes.js`\n    - This simplifies working in browsers natively without transpilers\n- webcrypto: move `randomBytes` and `managedNonce` to `utils.js`\n- ghash, poly1305, polyval: only allow Uint8Array as hash inputs, prohibit `string`\n- utils: new abytes; remove ahash, toBytes\n- Remove modules `_assert` (use `utils`), `_micro` and `crypto` (use `webcrypto`)\n- Bump TS compilation target from es2020 to es2022\n- Massively improve error messages, make them more descriptive\n\n## Contributing & testing\n\n- `npm install && npm run build && npm test` will build the code and run tests.\n- `npm run lint` / `npm run format` will run linter / fix linter issues.\n- `npm run bench` will run benchmarks\n- `npm run build:release` will build single file\n\nSee [paulmillr.com/noble](https://paulmillr.com/noble/)\nfor useful resources, articles, documentation and demos\nrelated to the library.\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2023 Paul Miller [(https://paulmillr.com)](https://paulmillr.com)\nCopyright (c) 2016 Thomas Pornin <pornin@bolet.org>\n\nSee LICENSE file.","users":{}}