{"_id":"@noble/ciphers","_rev":"37-34ba240623cd2ae1c10a2d1f0632efb4","name":"@noble/ciphers","dist-tags":{"latest":"2.4.0"},"versions":{"0.1.2":{"name":"@noble/ciphers","version":"0.1.2","keywords":["cryptography","crypto","noble","cipher","ciphers","aes","gcm","siv","salsa20","chacha20","xsalsa20","xchacha20","poly1305","secretbox","rijndael"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.1.2","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"c52d9dfa8a7b34811ba93c5bfd1d887c6d6addb8","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.1.2.tgz","fileCount":94,"integrity":"sha512-gIw/hMxp90MeE0c4niKkBrpp+MGaGpebTlBxilTk6a3qt7maWwjDT64OXi4Nnqjj/t8lNIO6XncJ6ES5gmek/w==","signatures":[{"sig":"MEUCIGLM+/EvDQNxVvJBgwltZC2yvr0ns8tWEV6aaQysncnYAiEA/VPV/N9OOP4uXrveJEjS3BHQ1xFsQj+8SYD35/rj5o8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"unpackedSize":415190},"main":"index.js","types":"./index.d.ts","browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./_slow":{"types":"./_slow.d.ts","import":"./esm/_slow.js","default":"./_slow.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"},"./webcrypto/crypto":{"node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"types":"./webcrypto/crypto.d.ts","import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"88bc7f77e18590de3ac9bb4d02f945a13609b7e7","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/index.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/index.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,js.map,d.ts.map} webcrypto esm/webcrypto 2> /dev/null","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build; npm i; npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"9.7.2","description":"Auditable & minimal JS implementation of AES SIV, Salsa20 and ChaCha20","directories":{},"_nodeVersion":"20.3.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.4","fast-check":"3.0.0","typescript":"5.0.2","@scure/base":"1.1.1","micro-bmark":"0.3.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.1.2_1687995292661_0.85506778765882","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@noble/ciphers","version":"0.1.3","keywords":["cryptography","crypto","noble","cipher","ciphers","aes","gcm","siv","salsa20","chacha20","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.1.3","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"13d3e26dd9bfcb28cd5ea7640f2c28e8feb08e46","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.1.3.tgz","fileCount":94,"integrity":"sha512-L75KBG/jf6YNxSvV0w0tsC8OIOsLh9sk6mqLUNZ+3/UhDBrAHQAvTTspwMoBlB84ymupIhq+E9QOhr6H1g/xog==","signatures":[{"sig":"MEUCIBy0doCcnmPCeld0Bs9MfsyuD4RDg+R8rWM9wcukPFWjAiEAnRDXSZif8hRlOTBk3Dvhexz2T/Ns5J3q5/M/Z+RkrF0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v0.2"}},"unpackedSize":419048},"main":"index.js","types":"./index.d.ts","browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./_slow":{"types":"./_slow.d.ts","import":"./esm/_slow.js","default":"./_slow.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"},"./webcrypto/crypto":{"node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"types":"./webcrypto/crypto.d.ts","import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"9d8cca6f390aea735e530f08e3d863dfbd671c27","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/index.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/index.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,js.map,d.ts.map} webcrypto esm/webcrypto 2> /dev/null","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build; npm i; npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"9.7.2","description":"Auditable & minimal JS implementation of Salsa20, ChaCha, Poly1305 & AES-SIV","directories":{},"_nodeVersion":"20.3.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.4","fast-check":"3.0.0","typescript":"5.0.2","@scure/base":"1.1.1","micro-bmark":"0.3.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.1.3_1688082973843_0.21054799655518686","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@noble/ciphers","version":"0.1.4","keywords":["cryptography","crypto","noble","cipher","ciphers","aes","gcm","siv","salsa20","chacha20","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.1.4","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"96327dca147829ed9eee0d96cfdf7c57915765f0","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.1.4.tgz","fileCount":109,"integrity":"sha512-d3ZR8vGSpy3v/nllS+bD/OMN5UZqusWiQqkyj7AwzTnhXFH72pF5oB4Ach6DQ50g5kXxC28LdaYBEpsyv9KOUQ==","signatures":[{"sig":"MEYCIQCJtkTgxcqTMiPdNFl0Azpe2fjkpr6RSoynTEzTCI7dgwIhAJHNH8qKkeA+p8+5+QHi8j0nmir7m1empLdelyZ+Ei3U","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":440541},"main":"index.js","types":"./index.d.ts","browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"},"./webcrypto/crypto":{"node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"types":"./webcrypto/crypto.d.ts","import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"9be52190cbfcb11e58a70f6884e1ef141b99a4e2","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/index.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/index.js","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","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build; npm i; npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"9.8.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha, Poly1305 & AES-SIV","directories":{},"_nodeVersion":"20.4.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.4","fast-check":"3.0.0","typescript":"5.0.2","@scure/base":"1.1.1","micro-bmark":"0.3.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.1.4_1689401285877_0.3914962647808313","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@noble/ciphers","version":"0.2.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.2.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"a12cda60f3cf1ab5d7c77068c3711d2366649ed7","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.2.0.tgz","fileCount":116,"integrity":"sha512-6YBxJDAapHSdd3bLDv6x2wRPwq4QFMUaB3HvljNBUTThDd12eSm7/3F+2lnfzx2jvM+S6Nsy0jEt9QbPqSwqRw==","signatures":[{"sig":"MEUCIQCC+Hoy3k1PB1klyAFwByhX7utbpMViE0R2UwoyJIQBcgIgY5rWExU3a4nfyc0UcBMhfrd7m5VMLYp++T752ZpX97s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":458783},"main":"index.js","types":"./index.d.ts","browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./simple":{"types":"./simple.d.ts","import":"./esm/simple.js","default":"./simple.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"},"./webcrypto/crypto":{"node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"types":"./webcrypto/crypto.d.ts","import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"2ab7b23fc24ce48b808519db2379b67fb64a3614","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","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","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build; npm i; npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"9.8.1","description":"Auditable & minimal JS implementation of Salsa20, ChaCha, Poly1305 & AES-SIV","directories":{},"_nodeVersion":"20.5.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.4","fast-check":"3.0.0","typescript":"5.0.2","@scure/base":"1.1.1","micro-bmark":"0.3.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.2.0_1690821937962_0.5061862136777535","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@noble/ciphers","version":"0.3.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.3.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"6ba3090afdc7a7051393486f6af210e62e0f04ec","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.3.0.tgz","fileCount":109,"integrity":"sha512-ldbrnOjmNRwFdXcTM6uXDcxpMIFrbzAWNnpBPp4oTJTFF0XByGD6vf45WrehZGXRQTRVV+Zm8YP+EgEf+e4cWA==","signatures":[{"sig":"MEUCIQCVVRCe87okLMdLUCALhqWJSFPGFzBmSnqaRSlCLXNQywIgc5Y21W05k5QnkgOCGx84+F7aohKAQF5PFWGhoEkpg1c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":452809},"main":"index.js","types":"./index.d.ts","browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./webcrypto/aes":{"types":"./webcrypto/aes.d.ts","import":"./esm/webcrypto/aes.js","default":"./webcrypto/aes.js"},"./webcrypto/ff1":{"types":"./webcrypto/ff1.d.ts","import":"./esm/webcrypto/ff1.js","default":"./webcrypto/ff1.js"},"./webcrypto/siv":{"types":"./webcrypto/siv.d.ts","import":"./esm/webcrypto/siv.js","default":"./webcrypto/siv.js"},"./webcrypto/utils":{"types":"./webcrypto/utils.d.ts","import":"./esm/webcrypto/utils.js","default":"./webcrypto/utils.js"},"./webcrypto/crypto":{"node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"types":"./webcrypto/crypto.d.ts","import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"48f982a65d425e3469992bb95819a28dd946a324","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","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","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build; npm i; npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"9.8.1","description":"Auditable & minimal JS implementation of Salsa20, ChaCha, Poly1305 & AES-SIV","directories":{},"_nodeVersion":"20.5.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.4","fast-check":"3.0.0","typescript":"5.0.2","@scure/base":"1.1.1","micro-bmark":"0.3.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.3.0_1693442961584_0.25096887905314524","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@noble/ciphers","version":"0.4.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.4.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"e3f69e3ce935683dd8dadb636652a5cb5cd5958c","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.4.0.tgz","fileCount":109,"integrity":"sha512-xaUaUUDWbHIFSxaQ/pIe+33VG2mfJp6N/KxKLmZr5biWdNznCAmfu24QRhX10BbVAuqOahAoyp0S4M9md6GPDw==","signatures":[{"sig":"MEYCIQDeLk6bXuhbdlPozvsoCzkyUxlPMtweTNPqNOc3I8zWGgIhAIT709rvm6FfrDNI8lD/QtkElWYQaVxuuhHU8q/7DIfA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":607103},"main":"index.js","types":"./index.d.ts","browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.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"},"./webcrypto/crypto":{"node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"types":"./webcrypto/crypto.d.ts","import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"9326efde01cb4c79d8aba0554c5973cab0b26dcd","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","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","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build; npm i; npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.2.1","description":"Auditable & minimal JS implementation of Salsa20, ChaCha & AES","directories":{},"_nodeVersion":"20.8.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.4","fast-check":"3.0.0","typescript":"5.0.2","@scure/base":"1.1.1","micro-bmark":"0.3.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.4.0_1697736243470_0.7181132072713337","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"@noble/ciphers","version":"0.4.1","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.4.1","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"977fc35f563a4ca315ebbc4cbb1f9b670bd54456","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.4.1.tgz","fileCount":109,"integrity":"sha512-QCOA9cgf3Rc33owG0AYBB9wszz+Ul2kramWN8tXG44Gyciud/tbkEqvxRF/IpqQaBpRBNi9f4jdNxqB2CQCIXg==","signatures":[{"sig":"MEUCIQDX7RABW/kmy3GjWtOeGfM+7cgFyCFNGhUM9cikCzwggAIgNMsF8KwZ2pBuN5sbhtKeLJEe5iKCfj7vWAFz9R2a6Pk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":612663},"main":"index.js","types":"./index.d.ts","browser":{"node:crypto":false,"./webcrypto/crypto":"./webcrypto/crypto.js"},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.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"},"./webcrypto/crypto":{"node":{"import":"./esm/webcrypto/cryptoNode.js","default":"./webcrypto/cryptoNode.js"},"types":"./webcrypto/crypto.d.ts","import":"./esm/webcrypto/crypto.js","default":"./webcrypto/crypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"1287b8598fc6429421bae1d6f166b083629d2779","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","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","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build; npm i; npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.2.5","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"_nodeVersion":"20.10.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.1.1","fast-check":"3.0.0","typescript":"5.3.2","@scure/base":"1.1.3","micro-bmark":"0.3.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.4.1_1702336679819_0.44505651109261524","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@noble/ciphers","version":"0.5.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.5.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"310c896cdc25c851f4c726ecd57dd7e376564798","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.5.0.tgz","fileCount":102,"integrity":"sha512-HcXFhIRUgbSxFIGYfII5V4JsFGTyl93SKbSxIcIwj3qL1rhAxTyt/9l8V8XJHdOsrO4vBetPFMT+Lxjcx0i/4w==","signatures":[{"sig":"MEYCIQDVHxd76O2VYXcE7uwvfW/0tbq4pOdl5s9aWuAwS8rDuQIhAJg/j1VB88dpEZPH63wEqw6ELWFPrScC0hXxLFkOVYBu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":611395},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./webcrypto":{"types":"./webcrypto.d.ts","import":"./esm/webcrypto.js","default":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"c558337e018fbeb591222944f07681582781b19d","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build; npm i; npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.4.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.1.1","fast-check":"3.0.0","typescript":"5.3.2","@scure/base":"1.1.3","micro-bmark":"0.3.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.5.0_1707483277513_0.9749014218832865","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@noble/ciphers","version":"0.5.1","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.5.1","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"292f388b69c9ed80d49dca1a5cbfd4ff06852111","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.5.1.tgz","fileCount":102,"integrity":"sha512-aNE06lbe36ifvMbbWvmmF/8jx6EQPu2HVg70V95T+iGjOuYwPpAccwAQc2HlXO2D0aiQ3zavbMga4jjWnrpiPA==","signatures":[{"sig":"MEUCIQDV2ioKd62LjGuFa4NDTZwCqnfU6fuIMUowxXNL3yJYyAIgeKXl0SmLAOCtuzD7logSeZAV0VK5QVaPV4fqmiXVkGI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":611418},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./webcrypto":{"types":"./webcrypto.d.ts","import":"./esm/webcrypto.js","default":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"1a951ca6bd3aad0c2e11b05c14157d2b86ad2d8a","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build; npm i; npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.4.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.1.1","fast-check":"3.0.0","typescript":"5.3.2","@scure/base":"1.1.3","micro-bmark":"0.3.1","micro-should":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.5.1_1707502222373_0.975196263203268","host":"s3://npm-registry-packages"}},"0.5.2":{"name":"@noble/ciphers","version":"0.5.2","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.5.2","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"879367fd51d59185259eb844d5b9a78f408b4a12","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.5.2.tgz","fileCount":103,"integrity":"sha512-GADtQmZCdgbnNp+daPLc3OY3ibEtGGDV/+CzeM3MFnhiQ7ELQKlsHWYq0YbYUXx4jU3/Y1erAxU6r+hwpewqmQ==","signatures":[{"sig":"MEQCIAJuqLk+IAclwcFV6yPucDVzW3zC0Ki8M/QaYaJQLeqSAiB9pMojhwJT1vBP28CDCel5aPrC2vEc8FHiJrXEVeqpXQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":622478},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./webcrypto":{"types":"./webcrypto.d.ts","import":"./esm/webcrypto.js","default":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"3359d966278df56fb0a8a5ef2ec4a317396d6179","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build && npm i && npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.5.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.1.1","fast-check":"3.0.0","typescript":"5.3.2","@scure/base":"1.1.3","micro-bmark":"0.3.1","micro-should":"0.4.0","@paulmillr/jsbt":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.5.2_1711386132208_0.8747932021535318","host":"s3://npm-registry-packages"}},"0.5.3":{"name":"@noble/ciphers","version":"0.5.3","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.5.3","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"48b536311587125e0d0c1535f73ec8375cd76b23","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.5.3.tgz","fileCount":103,"integrity":"sha512-B0+6IIHiqEs3BPMT0hcRmHvEj2QHOLu+uwt+tqDDeVd0oyVzh7BPrDcPjRnV1PV/5LaknXJJQvOuRGR0zQJz+w==","signatures":[{"sig":"MEYCIQDdKqsrvtxgJDCUKKFllz3Tk964RpypRbU/OTQe2HWPrAIhALF0sak214Hk/dJK+D+jx5NjwuNqe0oQPxP1Cxu7ImHS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":624276},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"exports":{".":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.js"},"./aes":{"types":"./aes.d.ts","import":"./esm/aes.js","default":"./aes.js"},"./ff1":{"types":"./ff1.d.ts","import":"./esm/ff1.js","default":"./ff1.js"},"./index":{"types":"./index.d.ts","import":"./esm/index.js","default":"./index.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"},"./_micro":{"types":"./_micro.d.ts","import":"./esm/_micro.js","default":"./_micro.js"},"./chacha":{"types":"./chacha.d.ts","import":"./esm/chacha.js","default":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"types":"./_polyval.d.ts","import":"./esm/_polyval.js","default":"./_polyval.js"},"./_poly1305":{"types":"./_poly1305.d.ts","import":"./esm/_poly1305.js","default":"./_poly1305.js"},"./webcrypto":{"types":"./webcrypto.d.ts","import":"./esm/webcrypto.js","default":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"df9fa72cbbd553c7f86082ea3b7c4c493a83bcd7","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"cd benchmark && npm install && cd ../../","build:release":"cd build && npm i && npm run build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.7.0","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.1.1","fast-check":"3.0.0","typescript":"5.3.2","@scure/base":"1.1.3","micro-bmark":"0.3.1","micro-should":"0.4.0","@paulmillr/jsbt":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.5.3_1715003011882_0.9925035315540254","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@noble/ciphers","version":"0.6.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@0.6.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"a3d82c72ce71ba43128e7eb71757b5ecb75b1273","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.6.0.tgz","fileCount":131,"integrity":"sha512-mIbq/R9QXk5/cTfESb1OKtyFnk7oc1Om/8onA1158K9/OZUQFDEVy55jVTato+xmp3XX6F6Qh0zz0Nc1AxAlRQ==","signatures":[{"sig":"MEQCIFX3AjEsZs+dqA73XarcPGsv1DfsW5SOFSZnoEJdetUkAiBmOyYYp6zke5hVnWxqfp6aUU5eFiEUz5N6sOlKmAZODw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":704724},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.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"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"7e88191cd23ea7e36b97698916bb29cb90c5ee90","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"npm pack && mv *.tgz benchmark/noble-ciphers.tgz && cd benchmark && npm install && cd ..","build:release":"cd build && npm i && npm run build:release"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.8.2","description":"Auditable & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","fast-check":"3.0.0","typescript":"5.5.2","@scure/base":"1.1.7","micro-bmark":"0.3.1","micro-should":"0.4.0","@paulmillr/jsbt":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_0.6.0_1722898599363_0.6264207172690275","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@noble/ciphers","version":"1.0.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@1.0.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"34758a1cbfcd4126880f83e6b1cdeb88785b7970","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz","fileCount":131,"integrity":"sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==","signatures":[{"sig":"MEQCIDtDw0dGpzM7Rgnr876V18AC65j3QnM41vpjcJs5SxRJAiBv+oDoYu34QGe4AVU0RmeysRSEmO5ovxKpMlQbxRmqcA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":707077},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"engines":{"node":"^14.21.3 || >=16"},"exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.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"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"428b2118e623405e6fbdce1573ae15ff4b931529","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"npm pack && mv *.tgz benchmark/noble-ciphers.tgz && cd benchmark && npm install && cd ..","build:release":"cd build && npm i && npm run build:release"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.8.3","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","fast-check":"3.0.0","typescript":"5.5.2","@scure/base":"1.1.7","micro-bmark":"0.3.1","micro-should":"0.4.0","@paulmillr/jsbt":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_1.0.0_1726183741529_0.5680503069309075","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@noble/ciphers","version":"1.1.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@1.1.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"ebe2d3aa656c1afe6a14bb95af73f3851c162d73","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.1.0.tgz","fileCount":131,"integrity":"sha512-gwcX7IKSuCtlepJVa6sDLMB2EDaoLguFL6HxagKeFIzWGRfFE3mwcHs8mjx4yQY+rV736XGBhfl6Lw80YrTDTw==","signatures":[{"sig":"MEQCIA6GuOAWPwh9aC0MG8OwDJCiQfcAzCPNaHibQUxBoWWNAiBDpgZ1VQjQSrYO/li7D7A7UeYIgP7LV5KP1KB7cNpLuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":708151},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"engines":{"node":"^14.21.3 || >=16"},"exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.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"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"4378c6a83dfe068caaaebcd30a695c4e07f3b0e8","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"cd benchmark; npm install; npm install .. --install-links","build:release":"cd build && npm i && npm run build:release"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.9.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","fast-check":"3.0.0","typescript":"5.5.2","@scure/base":"1.1.7","micro-bmark":"0.3.1","micro-should":"0.4.0","@paulmillr/jsbt":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_1.1.0_1732349484059_0.46835090835428606","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@noble/ciphers","version":"1.1.1","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@1.1.1","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"3a30877b0681c278ad98c3461bda3285f4b78abf","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.1.1.tgz","fileCount":131,"integrity":"sha512-2aCM5qHImP1RPm+0UqEyK6B0bP8h1c0cOIzIT+B6HLK2bAvXR3it3/igJ0Ymsa0iaXrYilaCCEPTEWq03otfXg==","signatures":[{"sig":"MEYCIQDFC8mSI0lL4GoOSaT67pBwVWu+A3H0xG0UjvLkGF5cTwIhAL4raZAoF29kmgFUYH1L27bzAHmOR3Jmu/brXyi7mROV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":707047},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"engines":{"node":"^14.21.3 || >=16"},"exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.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"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"b4e769e6668a890d726f80dfe59135863cf9acec","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"cd benchmark; npm install; npm install .. --install-links","build:release":"cd build && npm i && npm run build:release"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.9.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","fast-check":"3.0.0","typescript":"5.5.2","@scure/base":"1.1.7","micro-bmark":"0.3.1","micro-should":"0.4.0","@paulmillr/jsbt":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_1.1.1_1732654926144_0.343826999477447","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@noble/ciphers","version":"1.1.2","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@1.1.2","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"d9f543a13896004d3dca49f6eb38933da117bb7a","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.1.2.tgz","fileCount":131,"integrity":"sha512-7eTr/DCRCW+V9QaVGsfujw0mk7UOeRARbEz+fRzESRBfiBR3wsBzxOrYWNvqKTQjUfBFeSxJsVSfl6NJhZuYwg==","signatures":[{"sig":"MEUCICgbUdtSJV/Jkr0ruABBfBa9qQdN0L0wo03lm0R/Q3Z4AiEA+RkJ2Pg6nbdsEafPgE7OqlwCJH0zujqMvmMGz1j1r6c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":711790},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"engines":{"node":"^14.21.3 || >=16"},"exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.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"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"8e935efce66159bef1ce882be0e2a4476346bf2f","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"cd benchmark; npm install; npm install .. --install-links","build:release":"cd build && npm i && npm run build:release"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.9.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","fast-check":"3.0.0","typescript":"5.5.2","@scure/base":"1.1.7","micro-bmark":"0.3.1","micro-should":"0.4.0","@paulmillr/jsbt":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_1.1.2_1732800964259_0.13096959010334608","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"@noble/ciphers","version":"1.1.3","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@1.1.3","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"eb27085aa7ce94d8c6eaeb64299bab0589920ec1","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.1.3.tgz","fileCount":131,"integrity":"sha512-Ygv6WnWJHLLiW4fnNDC1z+i13bud+enXOFRBlpxI+NJliPWx5wdR+oWlTjLuBPTqjUjtHXtjkU6w3kuuH6upZA==","signatures":[{"sig":"MEQCIFTqPzWWsICZsaj4TyV0tvhi9faH9J985rKqgfp9Z4+6AiAUtQ5552qo5uU9aO8QRvubU831e4eD/gRLS1eKqIQE2A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":717811},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"engines":{"node":"^14.21.3 || >=16"},"exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.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"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"341a4ae15e45555f8a50c50a1d4a5df84484916b","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/aead.js noble && node benchmark/ciphers.js noble","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","bench:all":"node benchmark/{aead,ciphers,poly}.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:install":"cd benchmark; npm install; npm install .. --install-links","build:release":"cd build && npm i && npm run build:release"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.9.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","fast-check":"3.0.0","typescript":"5.5.2","@scure/base":"1.1.7","micro-bmark":"0.3.1","micro-should":"0.4.0","@paulmillr/jsbt":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_1.1.3_1732982636901_0.10528216728425255","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@noble/ciphers","version":"1.2.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@1.2.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"a7858e18eb620f6b2a327a7f0e647b6a78fd0727","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.0.tgz","fileCount":131,"integrity":"sha512-YGdEUzYEd+82jeaVbSKKVp1jFZb8LwaNMIIzHFkihGvYdd/KKAr7KaJHdEdSYGredE3ssSravXIa0Jxg28Sv5w==","signatures":[{"sig":"MEYCIQCOF6wSrJWWvhrTTDykQh2pMR/Nu2b1/qjx3aG6C45nbgIhAIJB0O51SA04d2ozZXOtjoemXvHlv6BErv4iP6z1WX6G","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":729364},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"engines":{"node":"^14.21.3 || >=16"},"exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.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"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"07a965bd4a63633922c48422ab441978c7f2e74d","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node test/index.js","bench":"node benchmark/noble.js","build":"npm run build:clean; tsc && tsc -p tsconfig.esm.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:compare":"node benchmark/{aead,ciphers,poly}.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build:release":"cd build && npm i && npm run build:release","test:coverage":"c8 node test/index.js"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"11.0.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.3","prettier":"3.3.2","fast-check":"3.0.0","typescript":"5.5.2","@scure/base":"1.2.1","micro-bmark":"0.3.1","micro-should":"0.4.0","@paulmillr/jsbt":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_1.2.0_1735866312727_0.09083093331405179","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@noble/ciphers","version":"1.2.1","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@1.2.1","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"3812b72c057a28b44ff0ad4aff5ca846e5b9cdc9","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz","fileCount":131,"integrity":"sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==","signatures":[{"sig":"MEUCIGnprzWzR2In3UKr5q5Gy+LrpDlWDQ5Yj+yenljvYOOxAiEArG6E5pKZhI2+gJBFGrEi22RNLPfWAhTdTZyWVp6EmBQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":732662},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"engines":{"node":"^14.21.3 || >=16"},"exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.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"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"63df5811e3eb9f83bf0104a943c0a841853c35ca","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --import ./test/esm-register.js test/index.js","bench":"node benchmark/noble.js","build":"npm run build:clean; tsc && tsc -p tsconfig.cjs.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:big":"node --import ./test/esm-register.js test/crosstest.test.js slow","test:bun":"bun test/index.js","test:deno":"deno --allow-env --allow-read --import-map=./test/import_map.json test/index.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:compare":"node benchmark/compare.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build:release":"npx jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.9.2","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","fast-check":"3.0.0","typescript":"5.5.2","@scure/base":"1.2.1","micro-bmark":"0.4.0","micro-should":"0.5.1","@paulmillr/jsbt":"0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_1.2.1_1737192923809_0.1218367615147351","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@noble/ciphers","version":"1.3.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@1.3.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"f64b8ff886c240e644e5573c097f86e5b43676dc","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz","fileCount":131,"integrity":"sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==","signatures":[{"sig":"MEYCIQD015at2Dtj9ZQilQphW/nOxB9ntgBrbQDHqUO8GuCdIgIhAIlBE0bv/aD94JFRLcGlEY8oCc3e2dHQELZ9rMkNijZ1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":752840},"main":"index.js","types":"./index.d.ts","browser":{"./crypto":"./crypto.js","node:crypto":false},"engines":{"node":"^14.21.3 || >=16"},"exports":{".":{"import":"./esm/index.js","require":"./index.js"},"./aes":{"import":"./esm/aes.js","require":"./aes.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"},"./_micro":{"import":"./esm/_micro.js","require":"./_micro.js"},"./aes.js":{"import":"./esm/aes.js","require":"./aes.js"},"./chacha":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./ff1.js":{"import":"./esm/ff1.js","require":"./ff1.js"},"./_polyval":{"import":"./esm/_polyval.js","require":"./_polyval.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"},"./_micro.js":{"import":"./esm/_micro.js","require":"./_micro.js"},"./_poly1305":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./chacha.js":{"import":"./esm/chacha.js","require":"./chacha.js"},"./crypto.js":{"node":{"import":"./esm/cryptoNode.js","default":"./cryptoNode.js"},"types":"./crypto.d.ts","import":"./esm/crypto.js","default":"./crypto.js"},"./webcrypto":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"},"./_polyval.js":{"import":"./esm/_polyval.js","require":"./_polyval.js"},"./_poly1305.js":{"import":"./esm/_poly1305.js","require":"./_poly1305.js"},"./webcrypto.js":{"import":"./esm/webcrypto.js","require":"./webcrypto.js"}},"funding":"https://paulmillr.com/funding/","gitHead":"953f9aabb4dd91f02bb64a8df424dd1912ddd62a","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --import ./test/esm-register.js test/index.js","bench":"node benchmark/noble.js","build":"npm run build:clean; tsc && tsc -p tsconfig.cjs.json","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:big":"node --import ./test/esm-register.js test/crosstest.test.js slow","test:bun":"bun test/index.js","test:deno":"deno --allow-env --allow-read --import-map=./test/import_map.json test/index.js","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null","bench:compare":"node benchmark/compare.js","bench:install":"cd benchmark; npm install; npm install .. --install-links","build:release":"npx jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"10.9.2","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","fast-check":"3.0.0","typescript":"5.8.3","@scure/base":"1.2.5","micro-bmark":"0.4.1","micro-should":"0.5.2","@paulmillr/jsbt":"0.3.3"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_1.3.0_1745514246089_0.4413852669332903","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.1":{"name":"@noble/ciphers","version":"2.0.0-beta.1","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@2.0.0-beta.1","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"8d3cb6b8e9bae20a4b4770d181a5b665a70f7d6d","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.0.0-beta.1.tgz","fileCount":53,"integrity":"sha512-OzbpPLMRn0LPM1UkBnKqt922grdXXb+6ktveY74X4Vxoyu+EKtc+eTPU2y5wWY8IsDb03iAlmXzwx8MpLwOPkw==","signatures":[{"sig":"MEYCIQCslAya6XdbbUs6kVUKfUN2AjqffVZ2n6KBRIDjxyPZEwIhAKl69lksCT/bIuI1RdOBP3z2xJ6wUABKYETRn1aCCT5l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":428022},"main":"index.js","type":"module","types":"./index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"funding":"https://paulmillr.com/funding/","gitHead":"60391df2f5e41f087a49bb8dc6cf07918d5f3b78","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","bench":"node test/benchmark/noble.ts","build":"npm run build:clean; tsc","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:big":"node test/crosstest.test.js slow","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} 2> /dev/null","test:node20":"cd test; npx tsc; node compiled/test/index.js","bench:compare":"node test/benchmark/compare.ts","bench:install":"cd test/benchmark; npm install","build:release":"npx jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"deprecated":"beta","repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"11.3.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"24.0.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"prettier":"3.5.3","fast-check":"4.1.1","typescript":"5.8.3","@scure/base":"1.2.5","micro-bmark":"0.4.2","micro-should":"0.5.3","@paulmillr/jsbt":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_2.0.0-beta.1_1748530732420_0.5310689831848721","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.2":{"name":"@noble/ciphers","version":"2.0.0-beta.2","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@2.0.0-beta.2","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"a7b9ddd598e90b55e8ca4c2c972fbd0d51fd3057","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.0.0-beta.2.tgz","fileCount":53,"integrity":"sha512-vAHsDhg9a1Z+JxhXAiVOija1uW+Hlx6TRLpO5xrd27kAN3Pkk8aNwmFfot2Y3XXMhOTn2lHk2BpfAEqwJvtxjQ==","signatures":[{"sig":"MEUCIBXi4kbQ5qvbY7jIMr1lw5BM7v/ITyXiksL7T+ERM9w+AiEA2ceX7PBCEDNXmSH6EFI7oXq4GF7jM27ewgefmEu6E0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":455833},"main":"index.js","type":"module","types":"./index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"funding":"https://paulmillr.com/funding/","gitHead":"5ab1933ed096f66535df8f75b13244e1cc110a8c","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","bench":"node test/benchmark/noble.ts","build":"npm run build:clean; tsc","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:big":"node test/crosstest.test.js slow","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} 2> /dev/null","test:node20":"cd test; npx tsc; node compiled/test/index.js","bench:compare":"node test/benchmark/compare.ts","bench:install":"cd test/benchmark; npm install","build:release":"npx jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"deprecated":"beta","repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"11.3.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"24.1.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"prettier":"3.5.3","fast-check":"4.1.1","typescript":"5.8.3","@scure/base":"1.2.5","@types/node":"22.15.23","micro-bmark":"0.4.2","micro-should":"0.5.3","@paulmillr/jsbt":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_2.0.0-beta.2_1752613726810_0.0958235975368964","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.3":{"name":"@noble/ciphers","version":"2.0.0-beta.3","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@2.0.0-beta.3","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"87d51c2172eebaa4333475fbf16158dfb5adf7e6","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.0.0-beta.3.tgz","fileCount":53,"integrity":"sha512-j3d+FvPxiJIyWckk2kL5qfwLmeN+UUmBZmS33HJRWW8CkI88fT1/FBHiSRY78mKV4RBKd3DK0b1pQY/00zjf3Q==","signatures":[{"sig":"MEUCIFigsJRDKxUhjMFsC8JcSQCq6j041Pm8ttDvWgU1SQt9AiEAwuOtKoQ4JfyEugfdK+w+2qdDUkWgZsD+FEZqsrxmk/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458418},"main":"index.js","type":"module","types":"./index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"funding":"https://paulmillr.com/funding/","gitHead":"f79fea86a6bf12ed1a3cc87911c2680068142c5b","scripts":{"lint":"prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test":"node --experimental-strip-types --no-warnings test/index.ts","bench":"node test/benchmark/noble.ts","build":"npm run build:clean; tsc","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:big":"node test/crosstest.test.js slow","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","build:clean":"rm *.{js,d.ts,js.map,d.ts.map} 2> /dev/null","test:node20":"cd test; npx tsc; node compiled/test/index.js","bench:compare":"node test/benchmark/compare.ts","bench:install":"cd test/benchmark; npm install","build:release":"npx --no @paulmillr/jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"deprecated":"beta","repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"11.4.2","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"prettier":"3.5.3","fast-check":"4.1.1","typescript":"5.8.3","@scure/base":"1.2.5","@types/node":"22.15.23","micro-bmark":"0.4.2","micro-should":"0.5.3","@paulmillr/jsbt":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_2.0.0-beta.3_1753847180132_0.29859442280544024","host":"s3://npm-registry-packages-npm-production"}},"2.0.0-beta.4":{"name":"@noble/ciphers","version":"2.0.0-beta.4","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@2.0.0-beta.4","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"2a1bc9979edc4737dcff7e4f45f096ba61cd0185","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.0.0-beta.4.tgz","fileCount":53,"integrity":"sha512-uHkNCyVnX+uCmGXi6Cce8Tp4VaCSyrCFrjqh+lZopWEFpdztSNrqe3Yve/yuGrVLuBjPVPupragRuj32us5pGg==","signatures":[{"sig":"MEUCIQDOsHbPx7b2m3if8KAOHcURnyU9/g9+n2NvF0/TD9HMKQIgb6uebBsrUxear8+NvLjSjEZGxsXqBj6B6ZX49+v+l7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":457923},"main":"index.js","type":"module","types":"index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"funding":"https://paulmillr.com/funding/","gitHead":"ad7119d1121bb84ade15380e46a0ba2f51575908","scripts":{"test":"node --experimental-strip-types --no-warnings test/index.ts","bench":"node test/benchmark/noble.ts","build":"tsc","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:big":"node test/crosstest.test.js slow","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","test:node20":"cd test; npx tsc; node compiled/test/index.js","bench:compare":"node test/benchmark/compare.ts","bench:install":"cd test/benchmark; npm install","build:release":"npx --no @paulmillr/jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"deprecated":"beta","repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"11.4.2","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"24.4.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"prettier":"3.6.2","fast-check":"4.2.0","typescript":"5.9.2","@scure/base":"1.2.5","@types/node":"24.2.1","micro-bmark":"0.4.2","micro-should":"0.5.3","@paulmillr/jsbt":"0.4.2"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_2.0.0-beta.4_1755432195067_0.24267056917578644","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@noble/ciphers","version":"2.0.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@2.0.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"2d3044c63f1885aa25d02311d8d6a8ffe1f8f536","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.0.0.tgz","fileCount":53,"integrity":"sha512-j/l6jpnpaIBM87cAYPJzi/6TgqmBv9spkqPyCXvRYsu5uxqh6tPJZDnD85yo8VWqzTuTQPgfv7NgT63u7kbwAQ==","signatures":[{"sig":"MEYCIQCtJL8WmLpcCTw+PLmWQpjPUWJRg9MK+XKBSekQ1NcQNAIhAM8xiU3Ljx2sC69PpRu/L0FZaDCyvPu8WzwRBYHlDmgn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":457752},"main":"index.js","type":"module","types":"index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"funding":"https://paulmillr.com/funding/","gitHead":"1fb6315cc40856d9d8723c34aae3f551a0e383fb","scripts":{"test":"node --experimental-strip-types --no-warnings test/index.ts","bench":"node test/benchmark/noble.ts","build":"tsc","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:big":"node test/crosstest.test.js slow","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","test:node20":"cd test; npx tsc; node compiled/test/index.js","bench:compare":"cd test/benchmark; npm install; node compare.ts","build:release":"npx --no @paulmillr/jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"11.5.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"24.6.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.6.2","fast-check":"4.2.0","typescript":"5.9.2","@scure/base":"2.0.0","@types/node":"24.2.1","@paulmillr/jsbt":"0.4.4"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_2.0.0_1756134619717_0.5316724863890083","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@noble/ciphers","version":"2.0.1","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@2.0.1","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"fb07d6479d11fd10d7f601b6fb8fb9925b7accf7","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.0.1.tgz","fileCount":53,"integrity":"sha512-xHK3XHPUW8DTAobU+G0XT+/w+JLM7/8k1UFdB5xg/zTFPnFCobhftzw8wl4Lw2aq/Rvir5pxfZV5fEazmeCJ2g==","signatures":[{"sig":"MEYCIQCoOwvKk+i5XNPBoxN4LE86hG4qpCznw/MDnBjrIwUfnwIhAN03KvErYTtxfAdYlfvYApInTpqLZAIoJXxuElPy5hO8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458096},"main":"index.js","type":"module","types":"index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"exports":{".":"./index.js","./aes.js":"./aes.js","./ff1.js":"./ff1.js","./_arx.js":"./_arx.js","./salsa.js":"./salsa.js","./utils.js":"./utils.js","./chacha.js":"./chacha.js","./_polyval.js":"./_polyval.js","./_poly1305.js":"./_poly1305.js","./webcrypto.js":"./webcrypto.js"},"funding":"https://paulmillr.com/funding/","gitHead":"7630b75e025639f33a58214502f5bd6277f8cf44","scripts":{"test":"node --experimental-strip-types --no-warnings test/index.ts","bench":"node test/benchmark/noble.ts","build":"tsc","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:big":"node test/crosstest.test.ts slow","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","test:node20":"cd test; npx tsc; node compiled/test/index.js","bench:compare":"cd test/benchmark; npm install; node compare.ts","build:release":"npx --no @paulmillr/jsbt esbuild test/build"},"_npmUser":{"name":"paulmillr","email":"paul@paulmillr.com"},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"11.6.0","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.6.2","fast-check":"4.2.0","typescript":"5.9.2","@scure/base":"2.0.0","@types/node":"24.2.1","@paulmillr/jsbt":"0.4.4"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_2.0.1_1758556446854_0.8777689453257047","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@noble/ciphers","version":"2.1.1","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@2.1.1","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"c8c74fcda8c3d1f88797d0ecda24f9fc8b92b052","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.1.1.tgz","fileCount":53,"integrity":"sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw==","signatures":[{"sig":"MEYCIQC2d94nva1LO+n0c/N201134hoN4rUj7IIWYH4PlD89dgIhAMv0nlllC67pH9v6IFbYUFhzDYeTzuodL4BFqAdCgQX1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":490187},"main":"index.js","type":"module","types":"index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"exports":{".":"./index.js","./aes.js":"./aes.js","./ff1.js":"./ff1.js","./_arx.js":"./_arx.js","./salsa.js":"./salsa.js","./utils.js":"./utils.js","./chacha.js":"./chacha.js","./_polyval.js":"./_polyval.js","./_poly1305.js":"./_poly1305.js","./webcrypto.js":"./webcrypto.js"},"funding":"https://paulmillr.com/funding/","gitHead":"785181b0772ba84afbe812025714163e4e48262f","scripts":{"test":"node --experimental-strip-types --no-warnings test/index.ts","bench":"node test/benchmark/noble.ts","build":"tsc","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:slow":"node test/crosstest.test.ts slow","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","test:node20":"cd test; npx tsc; node compiled/test/index.js","bench:compare":"cd test/benchmark; npm install; node compare.ts","build:release":"npx --no @paulmillr/jsbt esbuild test/build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:551738a6-0371-418b-a874-d1107d712582"}},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"11.6.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.6.2","fast-check":"4.2.0","typescript":"5.9.2","@scure/base":"2.0.0","@types/node":"24.2.1","@paulmillr/jsbt":"0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_2.1.1_1765083820718_0.7658131460379438","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@noble/ciphers","version":"2.2.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@2.2.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"84fb45ac9332925d643b80f89ceb0ea2f21dba95","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.2.0.tgz","fileCount":53,"integrity":"sha512-Z6pjIZ/8IJcCGzb2S/0Px5J81yij85xASuk1teLNeg75bfT07MV3a/O2Mtn1I2se43k3lkVEcFaR10N4cgQcZA==","signatures":[{"sig":"MEYCIQD0fskury9cmvCL0iLcgh+YRz4SNcaXFv50QFB39kzSoAIhAOBDJQhAa2Me9taFffkGHuVepSjFbA375gnkNzVhE7xR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":726834},"main":"index.js","type":"module","types":"index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"exports":{".":"./index.js","./aes.js":"./aes.js","./ff1.js":"./ff1.js","./_arx.js":"./_arx.js","./salsa.js":"./salsa.js","./utils.js":"./utils.js","./chacha.js":"./chacha.js","./_polyval.js":"./_polyval.js","./_poly1305.js":"./_poly1305.js","./webcrypto.js":"./webcrypto.js"},"funding":"https://paulmillr.com/funding/","gitHead":"b097e6838326491fb084fc838e29decdc050706a","scripts":{"test":"node test/index.ts","bench":"node test/benchmark/noble.ts","build":"tsc","check":"npm run check:readme && npm run check:treeshake && npm run check:jsdoc","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:bun":"bun test/index.ts","test:deno":"deno --allow-env --allow-read test/index.ts","test:slow":"node test/crosstest.test.ts slow","build:clean":"rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null","check:jsdoc":"npx --no @paulmillr/jsbt tsdoc package.json","test:node20":"cd test; npx tsc; node compiled/test/index.js","check:readme":"npx --no @paulmillr/jsbt readme package.json","bench:compare":"cd test/benchmark; npm install; node compare.ts","build:release":"npx --no @paulmillr/jsbt esbuild test/build","check:treeshake":"npx --no @paulmillr/jsbt treeshake package.json test/build/out-treeshake"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:551738a6-0371-418b-a874-d1107d712582"}},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"11.6.1","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.6.2","fast-check":"4.2.0","typescript":"6.0.2","@scure/base":"2.0.0","@types/node":"25.3.0","@paulmillr/jsbt":"0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_2.2.0_1775943290520_0.7603297927507515","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@noble/ciphers","version":"2.3.0","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","_id":"@noble/ciphers@2.3.0","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"homepage":"https://paulmillr.com/noble/","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"3bcea439b4c90f1cd32c8f7d647d1aebedc4d4d9","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.3.0.tgz","fileCount":33,"integrity":"sha512-Clu/xdfgVTf9o7ngLOURaxePwR0j8sjclKEtVij10/jGulwFsPWCvvRgG/XjUVf8Nei+jLG6uwyXzUTGY1DQrw==","signatures":[{"sig":"MEUCIQC2aSiTQQ0VkzlHVmtyK8yR+68u9NO9Wjpj8wehdMm6bwIgag9HUEJvZ0jasA4GOp1Y7gY2KCB9PmFtIMC23BGiePQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":543416},"main":"index.js","type":"module","types":"index.d.ts","module":"index.js","engines":{"node":">= 20.19.0"},"exports":{".":"./index.js","./aes.js":"./aes.js","./ff1.js":"./ff1.js","./_arx.js":"./_arx.js","./salsa.js":"./salsa.js","./utils.js":"./utils.js","./chacha.js":"./chacha.js","./_polyval.js":"./_polyval.js","./_poly1305.js":"./_poly1305.js","./webcrypto.js":"./webcrypto.js"},"funding":"https://paulmillr.com/funding/","gitHead":"c9b7ed1017ffd342fbca186c108ae04053d7857b","scripts":{"test":"node test/index.ts","build":"tsc","check":"jsbt-check","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:bun":"bun test/index.ts","benchmark":"node benchmark/ciphers.ts","test:slow":"node test/crosstest.test.ts slow","build:clean":"rm *.{js,d.ts} 2> /dev/null","benchmark:size":"npx bismar@0.1.3 -s","benchmark:thirdparty":"cd benchmark/thirdparty; npm ci; node index.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"paulmillr","email":"paul@paulmillr.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:88549e3c-cba8-492e-98be-9c8804dd48fc"}},"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"12.0.2","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"3.6.2","fast-check":"4.2.0","typescript":"6.0.2","@scure/base":"2.3.0","@types/node":"25.3.0","@paulmillr/jsbt":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ciphers_2.3.0_1786167793203_0.4010448535940281","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"_id":"@noble/ciphers@2.4.0","bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"dist":{"shasum":"04cf9e0f1cd3d521e8e5ca92dc0c02238180f676","tarball":"https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.4.0.tgz","integrity":"sha512-AnjFn0Jv92laAkvMrghlFZq4qQCIN/4DxFV/eooqtC2YTjB7kBeLMS2T9KJX4Dn+ZVXLOwK0lSgqDtx9gvxtiw==","fileCount":33,"unpackedSize":548134,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@noble%2fciphers@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDSwoxlSZjSxGOpOK4G30UXiNL46Af8t1cOfCCtMILeSQIhAKGocK06N2tPrIgCdzcrk82MJHsvzQAdQ7QlZjyJQ7hA"}]},"main":"index.js","name":"@noble/ciphers","type":"module","types":"index.d.ts","author":{"url":"https://paulmillr.com","name":"Paul Miller"},"module":"index.js","engines":{"node":">= 20.19.0"},"exports":{".":"./index.js","./aes.js":"./aes.js","./ff1.js":"./ff1.js","./_arx.js":"./_arx.js","./salsa.js":"./salsa.js","./utils.js":"./utils.js","./chacha.js":"./chacha.js","./_polyval.js":"./_polyval.js","./_poly1305.js":"./_poly1305.js","./webcrypto.js":"./webcrypto.js"},"funding":"https://paulmillr.com/funding/","gitHead":"d9e8a6a599e7ed729d9be03854c46a3c73bd9a79","license":"MIT","scripts":{"test":"node test/index.ts","build":"tsc","check":"jsbt-check","format":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'","test:bun":"bun test/index.ts","benchmark":"node benchmark/ciphers.ts","test:slow":"node test/crosstest.test.ts slow","build:clean":"rm *.{js,d.ts} 2> /dev/null","benchmark:size":"bismar -bsm","benchmark:thirdparty":"cd benchmark/thirdparty; npm ci; node index.ts"},"version":"2.4.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:88549e3c-cba8-492e-98be-9c8804dd48fc"},"approver":{"name":"paulmillr","email":"paul@paulmillr.com"}},"homepage":"https://paulmillr.com/noble/","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"_npmVersion":"12.0.2","description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","directories":{},"maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"sideEffects":false,"_nodeVersion":"24.19.0","devDependencies":{"bismar":"0.1.8","prettier":"3.9.6","fast-check":"4.2.0","typescript":"6.0.3","@scure/base":"2.3.0","@types/node":"26.3.0","@paulmillr/jsbt":"0.7.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ciphers_2.4.0_1787836044639_0.35825748539538216"},"_hasShrinkwrap":false}},"time":{"created":"2023-06-28T23:23:34.368Z","modified":"2026-08-27T13:07:25.091Z","0.1.0":"2023-06-28T23:23:34.629Z","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","2.3.0":"2026-08-08T05:43:13.289Z","2.4.0":"2026-08-27T13:07:24.802Z"},"bugs":{"url":"https://github.com/paulmillr/noble-ciphers/issues"},"author":{"url":"https://paulmillr.com","name":"Paul Miller"},"license":"MIT","homepage":"https://paulmillr.com/noble/","keywords":["salsa20","chacha","aes","cryptography","crypto","noble","cipher","ciphers","xsalsa20","xchacha20","poly1305","xsalsa20poly1305","chacha20poly1305","xchacha20poly1305","secretbox","rijndael","siv","ff1"],"repository":{"url":"git+https://github.com/paulmillr/noble-ciphers.git","type":"git"},"description":"Audited & minimal JS implementation of Salsa20, ChaCha and AES","maintainers":[{"name":"paulmillr","email":"paul@paulmillr.com"}],"readme":"# noble-ciphers\n\nAudited & minimal JS implementation of Salsa20, ChaCha and AES.\n\n- 🔒 [**Audited**](#security) by an independent security firm\n- 🪶 Minimal: 3KB (gzipped) ChaCha, unused code is excluded from your builds\n- 🏎 Fast: hand-optimized for caveats of JS engines\n- 🔍 Reliable: cross-library / wycheproof tests ensure correctness\n- 💼 AES: ECB, CBC, CTR, CFB, GCM, GCM-SIV & AES-SIV, AESKW, AESKWP, FF1\n- 💃 Salsa20, ChaCha, XSalsa20, XChaCha, ChaCha8, ChaCha12, Poly1305, rngChaCha8\n- 🥈 Wrapper with identical API over native WebCrypto\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- WASM version: [awasm-noble](https://github.com/paulmillr/awasm-noble)\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```js\n// import * from '@noble/ciphers'; // Error: use sub-imports, to ensure small app size\nimport { xchacha20poly1305 } from '@noble/ciphers/chacha.js';\nimport { randomBytes } from '@noble/ciphers/utils.js';\nconst key = randomBytes(32);\nconst nonce = randomBytes(24);\nconst data = new TextEncoder().encode('hello noble');\nconst ciphertext = xchacha20poly1305(key, nonce).encrypt(data);\n```\n\n- [chacha: chacha20poly1305, xchacha20poly1305](#chacha-chacha20poly1305-xchacha20poly1305)\n- [salsa: xsalsa20poly1305, secretbox](#salsa-xsalsa20poly1305-secretbox)\n- [aes: gcm, gcmsiv, aessiv, ctr, cbc, cfb, ecb, aeskw](#aes-gcm-gcmsiv-aessiv-ctr-cbc-cfb-ecb-aeskw)\n- [ff1: format-preserving encryption](#ff1-format-preserving-encryption)\n- [webcrypto: friendly wrapper](#webcrypto-friendly-wrapper)\n- [utils](#utils)\n- [managedNonce: automatic nonce handling](#managednonce-automatic-nonce-handling)\n- [Reuse array for input and output](#reuse-array-for-input-and-output)\n- [Randomness generation](#randomness-generation)\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  [Encryption limits](#encryption-limits)\n- [Security](#security) | [Speed](#speed) | [Upgrading](#upgrading) | [Contributing & testing](#contributing--testing) | [License](#license)\n\n### Implementations\n\n- `cipher(key, nonce).encrypt(data)` and `.decrypt(ciphertext)`: receive & return `Uint8Array`\n- AEADs (gcm, gcmsiv, aessiv, chacha20poly1305, xchacha20poly1305, xsalsa20poly1305)\n  authenticate data: ciphertext includes a 16-byte tag, `decrypt` throws on tampering\n- Unauthenticated ciphers (ctr, cbc, cfb, ecb, salsa20, chacha20 & others)\n  must be combined with HMAC or similar\n- Use a new [nonce](#how-to-encrypt-properly) every time `encrypt()` is done\n\n#### chacha: chacha20poly1305, xchacha20poly1305\n\n```js\nimport { chacha20poly1305, xchacha20poly1305 } from '@noble/ciphers/chacha.js';\nimport { randomBytes } from '@noble/ciphers/utils.js';\nconst key = randomBytes(32);\nconst nonce = randomBytes(24); // 12 bytes for chacha20poly1305\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// Unauthenticated stream ciphers\nimport { chacha20, xchacha20, chacha8, chacha12 } from '@noble/ciphers/chacha.js';\nconst stream = chacha20(key, randomBytes(12), data);\n```\n\n#### salsa: xsalsa20poly1305, secretbox\n\n```js\nimport { xsalsa20poly1305, secretbox } from '@noble/ciphers/salsa.js';\nimport { randomBytes } from '@noble/ciphers/utils.js';\nconst key = randomBytes(32);\nconst nonce = randomBytes(24);\nconst data = new TextEncoder().encode('hello noble');\nconst ciphertext = xsalsa20poly1305(key, nonce).encrypt(data);\n\n// NaCl / libsodium compatibility\nconst box = secretbox(key, nonce);\nconst sealed = box.seal(data);\nconst data_ = box.open(sealed);\n\n// Unauthenticated stream ciphers\nimport { salsa20, xsalsa20 } from '@noble/ciphers/salsa.js';\nconst stream = salsa20(key, randomBytes(8), data);\n```\n\nxsalsa20poly1305 is also known as NaCl / libsodium \"secretbox\".\n\"crypto_box\" and \"sealedbox\" are available in package\n[noble-sodium](https://github.com/serenity-kit/noble-sodium).\n\n#### aes: gcm, gcmsiv, aessiv, ctr, cbc, cfb, 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 key = randomBytes(32); // 24 for AES-192, 16 for AES-128\nconst nonce = randomBytes(12);\nconst data = new TextEncoder().encode('hello noble');\nconst aes = gcm(key, nonce);\nconst ciphertext = aes.encrypt(data);\nconst data_ = aes.decrypt(ciphertext);\n\n// Other modes share the same API\nconst plaintext = new Uint8Array(32).fill(16);\n// gcm, gcmsiv, aessiv use 12-byte nonces; ctr, cbc, cfb use 16-byte\nconst modes = [[gcm, 12], [gcmsiv, 12], [aessiv, 12], [ctr, 16], [cbc, 16], [cfb, 16]];\nfor (const [cipher, nonceLength] of modes) {\n  const nonce_ = randomBytes(nonceLength);\n  const ciphertext_ = cipher(key, nonce_).encrypt(plaintext);\n  const plaintext_ = cipher(key, nonce_).decrypt(ciphertext_);\n}\nconst ecbCiphertext = ecb(key).encrypt(plaintext); // ecb has no nonce\n\n// AESKW, AESKWP\nimport { aeskw, aeskwp } from '@noble/ciphers/aes.js';\nimport { hexToBytes } from '@noble/ciphers/utils.js';\nconst kek = hexToBytes('000102030405060708090A0B0C0D0E0F');\nconst keyData = hexToBytes('00112233445566778899AABBCCDDEEFF');\nconst wrapped = aeskw(kek).encrypt(keyData);\n```\n\nAES-128, AES-192 and AES-256 are selected dynamically, based on key length (16, 24, 32).\n\n#### ff1: format-preserving encryption\n\n```js\nimport { FF1, BinaryFF1 } from '@noble/ciphers/ff1.js';\nimport { randomBytes } from '@noble/ciphers/utils.js';\nconst key = randomBytes(32);\nconst radix = 10; // every digit is in 0..9\nconst ff1 = FF1(radix, key);\nconst encrypted = ff1.encrypt([9, 4, 1, 0]);\nconst digits = ff1.decrypt(encrypted);\nconst bff1 = BinaryFF1(key);\nconst encrypted2 = bff1.encrypt(Uint8Array.from([5, 6, 7]));\n```\n\n#### webcrypto: friendly wrapper\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, nonceLength] of [[gcm, 12], [ctr, 16], [cbc, 16]]) {\n  const nonce = randomBytes(nonceLength);\n  const ciphertext_ = await cipher(key, nonce).encrypt(plaintext);\n  const plaintext_ = await cipher(key, nonce).decrypt(ciphertext_);\n}\n```\n\nA thin wrapper over built-in `crypto.subtle`, mirroring the noble-ciphers API.\nWebcrypto methods are always async.\n\n#### utils\n\n```js\nimport { bytesToHex as toHex, hexToBytes, randomBytes } from '@noble/ciphers/utils.js';\nconsole.log(toHex(randomBytes(32)));\n```\n\n- `bytesToHex`, `hexToBytes` convert between `Uint8Array` and hex string\n- `randomBytes(len)` produces cryptographically secure random bytes\n- `managedNonce` is described below\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 prepended 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#### 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, which makes it less secure.\nThe AES factories implement the no-derivation-function CTR_DRBG construction for AES-128 and\nAES-256 only; derivation-function mode and an AES-192 factory are not provided.\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  N: SECURITY_LEVEL,\n  r: 8,\n  p: 1,\n  dkLen: 32,\n  maxmem: 2 ** 30 + 4096,\n});\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### Specs\n\n- Salsa20 & XSalsa20: [website](https://cr.yp.to/snuffle.html), [XSalsa PDF](https://cr.yp.to/snuffle/xsalsa-20110204.pdf)\n- ChaCha20 & XChaCha20: [RFC 8439](https://www.rfc-editor.org/rfc/rfc8439), [website](https://cr.yp.to/chacha.html), [XChaCha draft](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-xchacha)\n- AES: [FIPS 197](https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf)\n- AES-GCM: [NIST SP 800-38D](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf)\n- AES-GCM-SIV: [RFC 8452](https://www.rfc-editor.org/rfc/rfc8452)\n- AES-SIV: [RFC 5297](https://www.rfc-editor.org/rfc/rfc5297)\n- AESKW: [RFC 3394](https://www.rfc-editor.org/rfc/rfc3394)\n- AESKWP: [RFC 5649](https://www.rfc-editor.org/rfc/rfc5649)\n- FF1: [NIST SP 800-38G](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38G.pdf)\n- Poly1305: [RFC 8439](https://www.rfc-editor.org/rfc/rfc8439), [website](https://cr.yp.to/mac.html)\n- GHash: [NIST SP 800-38D](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf)\n- Polyval: [RFC 8452](https://www.rfc-editor.org/rfc/rfc8452)\n\n## Internals\n\n### Picking a cipher\n\nWe suggest to use **XChaCha20-Poly1305** because it's very fast and allows random nonces.\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\n  - Nonce (aka initialization vector / IV) must never repeat for the same key:\n    an attacker can XOR two ciphertexts encrypted under a repeating (key, nonce) pair\n    and break encryption\n  - chacha and salsa20 are fine for sequential counters that _never_ repeat: `01, 02...`\n    But it's not always possible to store the current counter value:\n    e.g. in decentralized, unsyncable systems\n  - Random nonces are risky for 96-bit / 12-byte nonces of ChaCha20 and AES-GCM:\n    chance of collision is too high. It's even higher for 64-bit nonces,\n    which GCM allows - don't use them\n  - To safely use random nonces, utilize XSalsa20, XChaCha or AES-SIV:\n    192-bit nonces minimize the chance of collision.\n    When eXtended-nonce algorithms are not available, rotate keys often:\n    hkdf would work great for this case\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### 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## Security\n\nThe library has been audited:\n\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\nWe've started regular AI-assisted self-audits in Apr 2026.\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 targeting 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 benchmark\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```\n# 64B\nxsalsa20poly1305 1470 ns\nchacha20poly1305 1742 ns\nxchacha20poly1305 2306 ns\naes-gcm-256 4605 ns\naes-gcm-siv-256 5846 ns\naes-siv-256 6772 ns\n## Unauthenticated encryption\nchacha20 468 ns\naes-cbc-256 1019 ns\naes-ctr-256 953 ns\n## Random number generator\nrngChacha8 479 ns\n\n# 1MB\nxsalsa20poly1305 x 341 mib/sec\nchacha20poly1305 x 336 mib/sec\nxchacha20poly1305 x 340 mib/sec\naes-gcm-256 x 94.8 mib/sec\naes-gcm-siv-256 x 91.4 mib/sec\naes-siv-256 x 78.7 mib/sec\n## Unauthenticated encryption\nchacha20 x 808 mib/sec\naes-cbc-256 x 117 mib/sec\naes-ctr-256 x 130 mib/sec\n## Random number generator\nrngChacha8 x 1.49 gib/sec\n## Wrapper over built-in webcrypto\nwebcrypto ctr-256 x 6.91 gib/sec\nwebcrypto cbc-256 x 1.87 gib/sec\nwebcrypto gcm-256 x 5.67 gib/sec\n```\n\nCompare to other implementations:\n\n```\n# type=Basic, algorithm=aes-ctr\nnode             7,181 mib/sec\nnoble-webcrypto  6,834 mib/sec · ≈\nnoble            131 mib/sec · -55x\nstablelib        128 mib/sec · -56x\naesjs            55.3 mib/sec · -130x\n\n# type=AEAD, algorithm=AES-GCM\nnoble-webcrypto  5,979 mib/sec\nnode             5,056 mib/sec · -1.2x\nnoble            93.5 mib/sec · -64x\nstablelib        47.1 mib/sec · -127x\n\n# type=AEAD, algorithm=xsalsa20poly1305\nnoble            338 mib/sec\ntweetnacl        211 mib/sec · -1.6x\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.\nSlow, multi-hour large-input tests are available separately: `npm run test:slow`.\n\nSee [paulmillr.com/noble](https://paulmillr.com/noble/) for useful resources, articles,\ndocumentation and demos related 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.\n","readmeFilename":"README.md"}