├── .github ├── funding.yml └── workflows │ ├── release.yml │ ├── test-slow.yml │ └── test-ts.yml ├── .gitignore ├── .prettierrc.json ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── SECURITY.md ├── audit ├── 2024-09-cure53-audit-nbl4.pdf └── README.md ├── jsr.json ├── package.json ├── src ├── _arx.ts ├── _poly1305.ts ├── _polyval.ts ├── aes.ts ├── chacha.ts ├── ff1.ts ├── index.ts ├── salsa.ts ├── utils.ts └── webcrypto.ts ├── test ├── README.md ├── aes.test.ts ├── arx.test.ts ├── basic.test.ts ├── benchmark │ ├── README.md │ ├── _utils.ts │ ├── compare.ts │ ├── noble.ts │ ├── package-lock.json │ ├── package.json │ └── results │ │ ├── 2025-04-normal.txt │ │ ├── 2025-04-small-big-poly1305.txt │ │ ├── 2025-04-small.txt │ │ └── sizes.txt ├── build │ ├── input.js │ ├── package-lock.json │ └── package.json ├── cmac.test.ts ├── compiled │ └── test │ │ └── vectors ├── crosstest.test.ts ├── errors.test.ts ├── ff1.test.ts ├── import_map.json ├── index.ts ├── polyval.test.ts ├── prng.test.ts ├── siv.test.ts ├── tsconfig.json ├── utils.test.ts ├── utils.ts ├── vectors │ ├── ctrDRBG-1.0 │ │ ├── expectedResults.json │ │ ├── internalProjection.json │ │ ├── prompt.json │ │ ├── registration.json │ │ └── validation.json │ ├── ff1.json │ ├── nist_800_38a.json │ ├── siv.json │ ├── stablelib_chacha20.json │ ├── stablelib_chacha20poly1305.json │ ├── stablelib_poly1305.json │ ├── stablelib_salsa20.json │ ├── stablelib_xchacha20poly1305.json │ ├── tweetnacl_secretbox.json │ └── wycheproof │ │ ├── aes_cbc_pkcs5_test.json │ │ ├── aes_gcm_siv_test.json │ │ ├── aes_gcm_test.json │ │ ├── aes_kwp_test.json │ │ ├── aes_siv_cmac_test.json │ │ ├── aes_wrap_test.json │ │ ├── chacha20_poly1305_test.json │ │ └── xchacha20_poly1305_test.json └── webcrypto.test.ts └── tsconfig.json /.github/funding.yml: -------------------------------------------------------------------------------- 1 | github: paulmillr 2 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/test-slow.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/.github/workflows/test-slow.yml -------------------------------------------------------------------------------- /.github/workflows/test-ts.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/.github/workflows/test-ts.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/.prettierrc.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/SECURITY.md -------------------------------------------------------------------------------- /audit/2024-09-cure53-audit-nbl4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/audit/2024-09-cure53-audit-nbl4.pdf -------------------------------------------------------------------------------- /audit/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/audit/README.md -------------------------------------------------------------------------------- /jsr.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/jsr.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/package.json -------------------------------------------------------------------------------- /src/_arx.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/_arx.ts -------------------------------------------------------------------------------- /src/_poly1305.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/_poly1305.ts -------------------------------------------------------------------------------- /src/_polyval.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/_polyval.ts -------------------------------------------------------------------------------- /src/aes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/aes.ts -------------------------------------------------------------------------------- /src/chacha.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/chacha.ts -------------------------------------------------------------------------------- /src/ff1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/ff1.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/salsa.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/salsa.ts -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/utils.ts -------------------------------------------------------------------------------- /src/webcrypto.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/src/webcrypto.ts -------------------------------------------------------------------------------- /test/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/README.md -------------------------------------------------------------------------------- /test/aes.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/aes.test.ts -------------------------------------------------------------------------------- /test/arx.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/arx.test.ts -------------------------------------------------------------------------------- /test/basic.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/basic.test.ts -------------------------------------------------------------------------------- /test/benchmark/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/README.md -------------------------------------------------------------------------------- /test/benchmark/_utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/_utils.ts -------------------------------------------------------------------------------- /test/benchmark/compare.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/compare.ts -------------------------------------------------------------------------------- /test/benchmark/noble.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/noble.ts -------------------------------------------------------------------------------- /test/benchmark/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/package-lock.json -------------------------------------------------------------------------------- /test/benchmark/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/package.json -------------------------------------------------------------------------------- /test/benchmark/results/2025-04-normal.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/results/2025-04-normal.txt -------------------------------------------------------------------------------- /test/benchmark/results/2025-04-small-big-poly1305.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/results/2025-04-small-big-poly1305.txt -------------------------------------------------------------------------------- /test/benchmark/results/2025-04-small.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/results/2025-04-small.txt -------------------------------------------------------------------------------- /test/benchmark/results/sizes.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/benchmark/results/sizes.txt -------------------------------------------------------------------------------- /test/build/input.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/build/input.js -------------------------------------------------------------------------------- /test/build/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/build/package-lock.json -------------------------------------------------------------------------------- /test/build/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/build/package.json -------------------------------------------------------------------------------- /test/cmac.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/cmac.test.ts -------------------------------------------------------------------------------- /test/compiled/test/vectors: -------------------------------------------------------------------------------- 1 | ../../vectors -------------------------------------------------------------------------------- /test/crosstest.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/crosstest.test.ts -------------------------------------------------------------------------------- /test/errors.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/errors.test.ts -------------------------------------------------------------------------------- /test/ff1.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/ff1.test.ts -------------------------------------------------------------------------------- /test/import_map.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/import_map.json -------------------------------------------------------------------------------- /test/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/index.ts -------------------------------------------------------------------------------- /test/polyval.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/polyval.test.ts -------------------------------------------------------------------------------- /test/prng.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/prng.test.ts -------------------------------------------------------------------------------- /test/siv.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/siv.test.ts -------------------------------------------------------------------------------- /test/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/tsconfig.json -------------------------------------------------------------------------------- /test/utils.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/utils.test.ts -------------------------------------------------------------------------------- /test/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/utils.ts -------------------------------------------------------------------------------- /test/vectors/ctrDRBG-1.0/expectedResults.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/ctrDRBG-1.0/expectedResults.json -------------------------------------------------------------------------------- /test/vectors/ctrDRBG-1.0/internalProjection.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/ctrDRBG-1.0/internalProjection.json -------------------------------------------------------------------------------- /test/vectors/ctrDRBG-1.0/prompt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/ctrDRBG-1.0/prompt.json -------------------------------------------------------------------------------- /test/vectors/ctrDRBG-1.0/registration.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/ctrDRBG-1.0/registration.json -------------------------------------------------------------------------------- /test/vectors/ctrDRBG-1.0/validation.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/ctrDRBG-1.0/validation.json -------------------------------------------------------------------------------- /test/vectors/ff1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/ff1.json -------------------------------------------------------------------------------- /test/vectors/nist_800_38a.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/nist_800_38a.json -------------------------------------------------------------------------------- /test/vectors/siv.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/siv.json -------------------------------------------------------------------------------- /test/vectors/stablelib_chacha20.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/stablelib_chacha20.json -------------------------------------------------------------------------------- /test/vectors/stablelib_chacha20poly1305.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/stablelib_chacha20poly1305.json -------------------------------------------------------------------------------- /test/vectors/stablelib_poly1305.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/stablelib_poly1305.json -------------------------------------------------------------------------------- /test/vectors/stablelib_salsa20.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/stablelib_salsa20.json -------------------------------------------------------------------------------- /test/vectors/stablelib_xchacha20poly1305.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/stablelib_xchacha20poly1305.json -------------------------------------------------------------------------------- /test/vectors/tweetnacl_secretbox.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/tweetnacl_secretbox.json -------------------------------------------------------------------------------- /test/vectors/wycheproof/aes_cbc_pkcs5_test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/wycheproof/aes_cbc_pkcs5_test.json -------------------------------------------------------------------------------- /test/vectors/wycheproof/aes_gcm_siv_test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/wycheproof/aes_gcm_siv_test.json -------------------------------------------------------------------------------- /test/vectors/wycheproof/aes_gcm_test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/wycheproof/aes_gcm_test.json -------------------------------------------------------------------------------- /test/vectors/wycheproof/aes_kwp_test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/wycheproof/aes_kwp_test.json -------------------------------------------------------------------------------- /test/vectors/wycheproof/aes_siv_cmac_test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/wycheproof/aes_siv_cmac_test.json -------------------------------------------------------------------------------- /test/vectors/wycheproof/aes_wrap_test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/wycheproof/aes_wrap_test.json -------------------------------------------------------------------------------- /test/vectors/wycheproof/chacha20_poly1305_test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/wycheproof/chacha20_poly1305_test.json -------------------------------------------------------------------------------- /test/vectors/wycheproof/xchacha20_poly1305_test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/vectors/wycheproof/xchacha20_poly1305_test.json -------------------------------------------------------------------------------- /test/webcrypto.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/test/webcrypto.test.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulmillr/noble-ciphers/HEAD/tsconfig.json --------------------------------------------------------------------------------