Showing preview only (7,216K chars total). Download the full file or copy to clipboard to get everything.
Repository: jedisct1/libsodium
Branch: master
Commit: f3b5cbfddd62
Files: 696
Total size: 6.8 MB
Directory structure:
gitextract_xfy4_0kp/
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bugs.md
│ │ └── suggestions.md
│ └── workflows/
│ ├── autocloser.yml
│ ├── ci.yml
│ ├── cifuzz.yml
│ ├── codeql-analysis.yml
│ ├── dotnet-core.yml
│ └── zizmor.yml
├── .gitignore
├── AUTHORS
├── CITATION.cff
├── ChangeLog
├── LICENSE
├── Makefile.am
├── README.markdown
├── THANKS
├── appveyor.yml
├── autogen.sh
├── azure-pipelines.yml
├── build.zig
├── builds/
│ ├── .gitignore
│ ├── Makefile.am
│ └── msvc/
│ ├── build/
│ │ ├── buildall.bat
│ │ └── buildbase.bat
│ ├── properties/
│ │ ├── ARM64.props
│ │ ├── Common.props
│ │ ├── DLL.props
│ │ ├── Debug.props
│ │ ├── DebugDEXE.props
│ │ ├── DebugDLL.props
│ │ ├── DebugLEXE.props
│ │ ├── DebugLIB.props
│ │ ├── DebugLTCG.props
│ │ ├── DebugSEXE.props
│ │ ├── EXE.props
│ │ ├── LIB.props
│ │ ├── LTCG.props
│ │ ├── Link.props
│ │ ├── Messages.props
│ │ ├── Output.props
│ │ ├── Release.props
│ │ ├── ReleaseDEXE.props
│ │ ├── ReleaseDLL.props
│ │ ├── ReleaseLEXE.props
│ │ ├── ReleaseLIB.props
│ │ ├── ReleaseLTCG.props
│ │ ├── ReleaseSEXE.props
│ │ ├── Win32.props
│ │ └── x64.props
│ ├── resource.h
│ ├── resource.rc
│ ├── version.h
│ ├── vs2010/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2012/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2013/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2015/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2017/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2019/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2022/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ └── vs2026/
│ ├── libsodium/
│ │ ├── libsodium.props
│ │ ├── libsodium.vcxproj
│ │ ├── libsodium.vcxproj.filters
│ │ └── libsodium.xml
│ ├── libsodium.import.props
│ ├── libsodium.import.xml
│ └── libsodium.sln
├── ci/
│ └── appveyor/
│ ├── libsodium.sln
│ ├── libsodium.vcxproj
│ ├── libsodium.vcxproj.filters
│ └── msvc-scripts/
│ ├── process.bat
│ ├── rep.vbs
│ └── sodium.props
├── configure.ac
├── dist-build/
│ ├── Makefile.am
│ ├── android-aar.sh
│ ├── android-armv7-a.sh
│ ├── android-armv8-a.sh
│ ├── android-build.sh
│ ├── android-x86.sh
│ ├── android-x86_64.sh
│ ├── apple-xcframework.sh
│ ├── emscripten-symbols.def
│ ├── emscripten.sh
│ ├── generate-emscripten-symbols.sh
│ ├── macos.sh
│ ├── msys2-win32.sh
│ ├── msys2-win64.sh
│ └── wasm32-wasi.sh
├── lgtm.yml
├── libsodium-uninstalled.pc.in
├── libsodium.pc.in
├── m4/
│ ├── ax_add_fortify_source.m4
│ ├── ax_check_catchable_abrt.m4
│ ├── ax_check_catchable_segv.m4
│ ├── ax_check_compile_flag.m4
│ ├── ax_check_define.m4
│ ├── ax_check_gnu_make.m4
│ ├── ax_check_link_flag.m4
│ ├── ax_pthread.m4
│ ├── ax_tls.m4
│ ├── ax_valgrind_check.m4
│ └── ld-output-def.m4
├── packaging/
│ └── dotnet-core/
│ ├── libsodium.pkgproj
│ └── test.cs
├── regen-msvc/
│ ├── libsodium.vcxproj
│ ├── libsodium.vcxproj.filters
│ ├── libsodium.vcxproj.filters.tpl
│ ├── libsodium.vcxproj.tpl
│ ├── regen-msvc.py
│ ├── tl_libsodium.vcxproj.filters.tpl
│ └── tl_libsodium.vcxproj.tpl
├── src/
│ ├── Makefile.am
│ └── libsodium/
│ ├── Makefile.am
│ ├── crypto_aead/
│ │ ├── aegis128l/
│ │ │ ├── aead_aegis128l.c
│ │ │ ├── aegis128l_aesni.c
│ │ │ ├── aegis128l_aesni.h
│ │ │ ├── aegis128l_armcrypto.c
│ │ │ ├── aegis128l_armcrypto.h
│ │ │ ├── aegis128l_common.h
│ │ │ ├── aegis128l_soft.c
│ │ │ ├── aegis128l_soft.h
│ │ │ └── implementations.h
│ │ ├── aegis256/
│ │ │ ├── aead_aegis256.c
│ │ │ ├── aegis256_aesni.c
│ │ │ ├── aegis256_aesni.h
│ │ │ ├── aegis256_armcrypto.c
│ │ │ ├── aegis256_armcrypto.h
│ │ │ ├── aegis256_common.h
│ │ │ ├── aegis256_soft.c
│ │ │ ├── aegis256_soft.h
│ │ │ └── implementations.h
│ │ ├── aes256gcm/
│ │ │ ├── aead_aes256gcm.c
│ │ │ ├── aesni/
│ │ │ │ └── aead_aes256gcm_aesni.c
│ │ │ └── armcrypto/
│ │ │ └── aead_aes256gcm_armcrypto.c
│ │ ├── chacha20poly1305/
│ │ │ └── aead_chacha20poly1305.c
│ │ └── xchacha20poly1305/
│ │ └── aead_xchacha20poly1305.c
│ ├── crypto_auth/
│ │ ├── crypto_auth.c
│ │ ├── hmacsha256/
│ │ │ └── auth_hmacsha256.c
│ │ ├── hmacsha512/
│ │ │ └── auth_hmacsha512.c
│ │ └── hmacsha512256/
│ │ └── auth_hmacsha512256.c
│ ├── crypto_box/
│ │ ├── crypto_box.c
│ │ ├── crypto_box_easy.c
│ │ ├── crypto_box_seal.c
│ │ ├── curve25519xchacha20poly1305/
│ │ │ ├── box_curve25519xchacha20poly1305.c
│ │ │ └── box_seal_curve25519xchacha20poly1305.c
│ │ └── curve25519xsalsa20poly1305/
│ │ └── box_curve25519xsalsa20poly1305.c
│ ├── crypto_core/
│ │ ├── ed25519/
│ │ │ ├── core_ed25519.c
│ │ │ ├── core_h2c.c
│ │ │ ├── core_h2c.h
│ │ │ ├── core_ristretto255.c
│ │ │ └── ref10/
│ │ │ ├── ed25519_ref10.c
│ │ │ ├── fe_25_5/
│ │ │ │ ├── base.h
│ │ │ │ ├── base2.h
│ │ │ │ ├── constants.h
│ │ │ │ └── fe.h
│ │ │ └── fe_51/
│ │ │ ├── base.h
│ │ │ ├── base2.h
│ │ │ ├── constants.h
│ │ │ └── fe.h
│ │ ├── hchacha20/
│ │ │ └── core_hchacha20.c
│ │ ├── hsalsa20/
│ │ │ ├── core_hsalsa20.c
│ │ │ └── ref2/
│ │ │ └── core_hsalsa20_ref2.c
│ │ ├── keccak1600/
│ │ │ ├── armsha3/
│ │ │ │ ├── keccak1600_armsha3.c
│ │ │ │ └── keccak1600_armsha3.h
│ │ │ ├── keccak1600.c
│ │ │ └── ref/
│ │ │ ├── keccak1600_ref.c
│ │ │ └── keccak1600_ref.h
│ │ ├── salsa/
│ │ │ └── ref/
│ │ │ └── core_salsa_ref.c
│ │ └── softaes/
│ │ └── softaes.c
│ ├── crypto_generichash/
│ │ ├── blake2b/
│ │ │ ├── generichash_blake2.c
│ │ │ └── ref/
│ │ │ ├── blake2.h
│ │ │ ├── blake2b-compress-avx2.c
│ │ │ ├── blake2b-compress-avx2.h
│ │ │ ├── blake2b-compress-ref.c
│ │ │ ├── blake2b-compress-sse41.c
│ │ │ ├── blake2b-compress-sse41.h
│ │ │ ├── blake2b-compress-ssse3.c
│ │ │ ├── blake2b-compress-ssse3.h
│ │ │ ├── blake2b-load-avx2.h
│ │ │ ├── blake2b-load-sse2.h
│ │ │ ├── blake2b-load-sse41.h
│ │ │ ├── blake2b-ref.c
│ │ │ └── generichash_blake2b.c
│ │ └── crypto_generichash.c
│ ├── crypto_hash/
│ │ ├── crypto_hash.c
│ │ ├── sha256/
│ │ │ ├── cp/
│ │ │ │ └── hash_sha256_cp.c
│ │ │ └── hash_sha256.c
│ │ ├── sha3/
│ │ │ └── hash_sha3.c
│ │ └── sha512/
│ │ ├── cp/
│ │ │ └── hash_sha512_cp.c
│ │ └── hash_sha512.c
│ ├── crypto_ipcrypt/
│ │ ├── crypto_ipcrypt.c
│ │ ├── implementations.h
│ │ ├── ipcrypt_aesni.c
│ │ ├── ipcrypt_aesni.h
│ │ ├── ipcrypt_armcrypto.c
│ │ ├── ipcrypt_armcrypto.h
│ │ ├── ipcrypt_soft.c
│ │ └── ipcrypt_soft.h
│ ├── crypto_kdf/
│ │ ├── blake2b/
│ │ │ └── kdf_blake2b.c
│ │ ├── crypto_kdf.c
│ │ └── hkdf/
│ │ ├── kdf_hkdf_sha256.c
│ │ └── kdf_hkdf_sha512.c
│ ├── crypto_kem/
│ │ ├── crypto_kem.c
│ │ ├── mlkem768/
│ │ │ ├── kem_mlkem768.c
│ │ │ └── ref/
│ │ │ ├── kem_mlkem768_ref.c
│ │ │ └── kem_mlkem768_ref.h
│ │ └── xwing/
│ │ └── kem_xwing.c
│ ├── crypto_kx/
│ │ └── crypto_kx.c
│ ├── crypto_onetimeauth/
│ │ ├── crypto_onetimeauth.c
│ │ └── poly1305/
│ │ ├── donna/
│ │ │ ├── poly1305_donna.c
│ │ │ ├── poly1305_donna.h
│ │ │ ├── poly1305_donna32.h
│ │ │ └── poly1305_donna64.h
│ │ ├── onetimeauth_poly1305.c
│ │ ├── onetimeauth_poly1305.h
│ │ └── sse2/
│ │ ├── poly1305_sse2.c
│ │ └── poly1305_sse2.h
│ ├── crypto_pwhash/
│ │ ├── argon2/
│ │ │ ├── argon2-core.c
│ │ │ ├── argon2-core.h
│ │ │ ├── argon2-encoding.c
│ │ │ ├── argon2-encoding.h
│ │ │ ├── argon2-fill-block-avx2.c
│ │ │ ├── argon2-fill-block-avx512f.c
│ │ │ ├── argon2-fill-block-neon.c
│ │ │ ├── argon2-fill-block-ref.c
│ │ │ ├── argon2-fill-block-ssse3.c
│ │ │ ├── argon2-fill-block-wasm32.c
│ │ │ ├── argon2.c
│ │ │ ├── argon2.h
│ │ │ ├── blake2b-long.c
│ │ │ ├── blake2b-long.h
│ │ │ ├── blamka-round-avx2.h
│ │ │ ├── blamka-round-avx512f.h
│ │ │ ├── blamka-round-neon.h
│ │ │ ├── blamka-round-ref.h
│ │ │ ├── blamka-round-ssse3.h
│ │ │ ├── blamka-round-wasm32.h
│ │ │ ├── pwhash_argon2i.c
│ │ │ └── pwhash_argon2id.c
│ │ ├── crypto_pwhash.c
│ │ └── scryptsalsa208sha256/
│ │ ├── crypto_scrypt-common.c
│ │ ├── crypto_scrypt.h
│ │ ├── nosse/
│ │ │ └── pwhash_scryptsalsa208sha256_nosse.c
│ │ ├── pbkdf2-sha256.c
│ │ ├── pbkdf2-sha256.h
│ │ ├── pwhash_scryptsalsa208sha256.c
│ │ ├── scrypt_platform.c
│ │ └── sse/
│ │ └── pwhash_scryptsalsa208sha256_sse.c
│ ├── crypto_scalarmult/
│ │ ├── crypto_scalarmult.c
│ │ ├── curve25519/
│ │ │ ├── ref10/
│ │ │ │ ├── x25519_ref10.c
│ │ │ │ └── x25519_ref10.h
│ │ │ ├── sandy2x/
│ │ │ │ ├── consts.S
│ │ │ │ ├── consts_namespace.h
│ │ │ │ ├── curve25519_sandy2x.c
│ │ │ │ ├── curve25519_sandy2x.h
│ │ │ │ ├── fe.h
│ │ │ │ ├── fe51.h
│ │ │ │ ├── fe51_invert.c
│ │ │ │ ├── fe51_mul.S
│ │ │ │ ├── fe51_namespace.h
│ │ │ │ ├── fe51_nsquare.S
│ │ │ │ ├── fe51_pack.S
│ │ │ │ ├── fe_frombytes_sandy2x.c
│ │ │ │ ├── ladder.S
│ │ │ │ ├── ladder.h
│ │ │ │ ├── ladder_namespace.h
│ │ │ │ └── sandy2x.S
│ │ │ ├── scalarmult_curve25519.c
│ │ │ └── scalarmult_curve25519.h
│ │ ├── ed25519/
│ │ │ └── ref10/
│ │ │ └── scalarmult_ed25519_ref10.c
│ │ └── ristretto255/
│ │ └── ref10/
│ │ └── scalarmult_ristretto255_ref10.c
│ ├── crypto_secretbox/
│ │ ├── crypto_secretbox.c
│ │ ├── crypto_secretbox_easy.c
│ │ ├── xchacha20poly1305/
│ │ │ └── secretbox_xchacha20poly1305.c
│ │ └── xsalsa20poly1305/
│ │ └── secretbox_xsalsa20poly1305.c
│ ├── crypto_secretstream/
│ │ └── xchacha20poly1305/
│ │ └── secretstream_xchacha20poly1305.c
│ ├── crypto_shorthash/
│ │ ├── crypto_shorthash.c
│ │ └── siphash24/
│ │ ├── ref/
│ │ │ ├── shorthash_siphash24_ref.c
│ │ │ ├── shorthash_siphash_ref.h
│ │ │ └── shorthash_siphashx24_ref.c
│ │ ├── shorthash_siphash24.c
│ │ └── shorthash_siphashx24.c
│ ├── crypto_sign/
│ │ ├── crypto_sign.c
│ │ └── ed25519/
│ │ ├── ref10/
│ │ │ ├── keypair.c
│ │ │ ├── open.c
│ │ │ ├── sign.c
│ │ │ └── sign_ed25519_ref10.h
│ │ └── sign_ed25519.c
│ ├── crypto_stream/
│ │ ├── chacha20/
│ │ │ ├── dolbeau/
│ │ │ │ ├── chacha20_dolbeau-avx2.c
│ │ │ │ ├── chacha20_dolbeau-avx2.h
│ │ │ │ ├── chacha20_dolbeau-ssse3.c
│ │ │ │ ├── chacha20_dolbeau-ssse3.h
│ │ │ │ ├── u0.h
│ │ │ │ ├── u1.h
│ │ │ │ ├── u4.h
│ │ │ │ └── u8.h
│ │ │ ├── ref/
│ │ │ │ ├── chacha20_ref.c
│ │ │ │ └── chacha20_ref.h
│ │ │ ├── stream_chacha20.c
│ │ │ └── stream_chacha20.h
│ │ ├── crypto_stream.c
│ │ ├── salsa20/
│ │ │ ├── ref/
│ │ │ │ ├── salsa20_ref.c
│ │ │ │ └── salsa20_ref.h
│ │ │ ├── stream_salsa20.c
│ │ │ ├── stream_salsa20.h
│ │ │ ├── xmm6/
│ │ │ │ ├── salsa20_xmm6-asm.S
│ │ │ │ ├── salsa20_xmm6-asm_namespace.h
│ │ │ │ ├── salsa20_xmm6.c
│ │ │ │ └── salsa20_xmm6.h
│ │ │ └── xmm6int/
│ │ │ ├── salsa20_xmm6int-avx2.c
│ │ │ ├── salsa20_xmm6int-avx2.h
│ │ │ ├── salsa20_xmm6int-sse2.c
│ │ │ ├── salsa20_xmm6int-sse2.h
│ │ │ ├── u0.h
│ │ │ ├── u1.h
│ │ │ ├── u4.h
│ │ │ └── u8.h
│ │ ├── salsa2012/
│ │ │ ├── ref/
│ │ │ │ └── stream_salsa2012_ref.c
│ │ │ └── stream_salsa2012.c
│ │ ├── salsa208/
│ │ │ ├── ref/
│ │ │ │ └── stream_salsa208_ref.c
│ │ │ └── stream_salsa208.c
│ │ ├── xchacha20/
│ │ │ └── stream_xchacha20.c
│ │ └── xsalsa20/
│ │ └── stream_xsalsa20.c
│ ├── crypto_verify/
│ │ └── verify.c
│ ├── crypto_xof/
│ │ ├── shake128/
│ │ │ ├── ref/
│ │ │ │ ├── shake128_ref.c
│ │ │ │ └── shake128_ref.h
│ │ │ └── xof_shake128.c
│ │ ├── shake256/
│ │ │ ├── ref/
│ │ │ │ ├── shake256_ref.c
│ │ │ │ └── shake256_ref.h
│ │ │ └── xof_shake256.c
│ │ ├── turboshake128/
│ │ │ ├── ref/
│ │ │ │ ├── turboshake128_ref.c
│ │ │ │ └── turboshake128_ref.h
│ │ │ └── xof_turboshake128.c
│ │ └── turboshake256/
│ │ ├── ref/
│ │ │ ├── turboshake256_ref.c
│ │ │ └── turboshake256_ref.h
│ │ └── xof_turboshake256.c
│ ├── include/
│ │ ├── Makefile.am
│ │ ├── sodium/
│ │ │ ├── core.h
│ │ │ ├── crypto_aead_aegis128l.h
│ │ │ ├── crypto_aead_aegis256.h
│ │ │ ├── crypto_aead_aes256gcm.h
│ │ │ ├── crypto_aead_chacha20poly1305.h
│ │ │ ├── crypto_aead_xchacha20poly1305.h
│ │ │ ├── crypto_auth.h
│ │ │ ├── crypto_auth_hmacsha256.h
│ │ │ ├── crypto_auth_hmacsha512.h
│ │ │ ├── crypto_auth_hmacsha512256.h
│ │ │ ├── crypto_box.h
│ │ │ ├── crypto_box_curve25519xchacha20poly1305.h
│ │ │ ├── crypto_box_curve25519xsalsa20poly1305.h
│ │ │ ├── crypto_core_ed25519.h
│ │ │ ├── crypto_core_hchacha20.h
│ │ │ ├── crypto_core_hsalsa20.h
│ │ │ ├── crypto_core_keccak1600.h
│ │ │ ├── crypto_core_ristretto255.h
│ │ │ ├── crypto_core_salsa20.h
│ │ │ ├── crypto_core_salsa2012.h
│ │ │ ├── crypto_core_salsa208.h
│ │ │ ├── crypto_generichash.h
│ │ │ ├── crypto_generichash_blake2b.h
│ │ │ ├── crypto_hash.h
│ │ │ ├── crypto_hash_sha256.h
│ │ │ ├── crypto_hash_sha3.h
│ │ │ ├── crypto_hash_sha512.h
│ │ │ ├── crypto_ipcrypt.h
│ │ │ ├── crypto_kdf.h
│ │ │ ├── crypto_kdf_blake2b.h
│ │ │ ├── crypto_kdf_hkdf_sha256.h
│ │ │ ├── crypto_kdf_hkdf_sha512.h
│ │ │ ├── crypto_kem.h
│ │ │ ├── crypto_kem_mlkem768.h
│ │ │ ├── crypto_kem_xwing.h
│ │ │ ├── crypto_kx.h
│ │ │ ├── crypto_onetimeauth.h
│ │ │ ├── crypto_onetimeauth_poly1305.h
│ │ │ ├── crypto_pwhash.h
│ │ │ ├── crypto_pwhash_argon2i.h
│ │ │ ├── crypto_pwhash_argon2id.h
│ │ │ ├── crypto_pwhash_scryptsalsa208sha256.h
│ │ │ ├── crypto_scalarmult.h
│ │ │ ├── crypto_scalarmult_curve25519.h
│ │ │ ├── crypto_scalarmult_ed25519.h
│ │ │ ├── crypto_scalarmult_ristretto255.h
│ │ │ ├── crypto_secretbox.h
│ │ │ ├── crypto_secretbox_xchacha20poly1305.h
│ │ │ ├── crypto_secretbox_xsalsa20poly1305.h
│ │ │ ├── crypto_secretstream_xchacha20poly1305.h
│ │ │ ├── crypto_shorthash.h
│ │ │ ├── crypto_shorthash_siphash24.h
│ │ │ ├── crypto_sign.h
│ │ │ ├── crypto_sign_ed25519.h
│ │ │ ├── crypto_stream.h
│ │ │ ├── crypto_stream_chacha20.h
│ │ │ ├── crypto_stream_salsa20.h
│ │ │ ├── crypto_stream_salsa2012.h
│ │ │ ├── crypto_stream_salsa208.h
│ │ │ ├── crypto_stream_xchacha20.h
│ │ │ ├── crypto_stream_xsalsa20.h
│ │ │ ├── crypto_verify_16.h
│ │ │ ├── crypto_verify_32.h
│ │ │ ├── crypto_verify_64.h
│ │ │ ├── crypto_xof_shake128.h
│ │ │ ├── crypto_xof_shake256.h
│ │ │ ├── crypto_xof_turboshake128.h
│ │ │ ├── crypto_xof_turboshake256.h
│ │ │ ├── export.h
│ │ │ ├── private/
│ │ │ │ ├── asm_cet.h
│ │ │ │ ├── chacha20_ietf_ext.h
│ │ │ │ ├── common.h
│ │ │ │ ├── ed25519_ref10.h
│ │ │ │ ├── ed25519_ref10_fe_25_5.h
│ │ │ │ ├── ed25519_ref10_fe_51.h
│ │ │ │ ├── implementations.h
│ │ │ │ ├── mutex.h
│ │ │ │ ├── quirks.h
│ │ │ │ ├── softaes.h
│ │ │ │ └── sse2_64_32.h
│ │ │ ├── randombytes.h
│ │ │ ├── randombytes_internal_random.h
│ │ │ ├── randombytes_sysrandom.h
│ │ │ ├── runtime.h
│ │ │ ├── utils.h
│ │ │ └── version.h.in
│ │ └── sodium.h
│ ├── randombytes/
│ │ ├── internal/
│ │ │ └── randombytes_internal_random.c
│ │ ├── randombytes.c
│ │ └── sysrandom/
│ │ └── randombytes_sysrandom.c
│ └── sodium/
│ ├── codecs.c
│ ├── core.c
│ ├── runtime.c
│ ├── utils.c
│ └── version.c
└── test/
├── Makefile.am
├── check-version-consistency.sh
├── constcheck.sh
├── default/
│ ├── Makefile.am
│ ├── aead_aegis128l.c
│ ├── aead_aegis128l.exp
│ ├── aead_aegis256.c
│ ├── aead_aegis256.exp
│ ├── aead_aes256gcm.c
│ ├── aead_aes256gcm.exp
│ ├── aead_aes256gcm2.c
│ ├── aead_aes256gcm2.exp
│ ├── aead_chacha20poly1305.c
│ ├── aead_chacha20poly1305.exp
│ ├── aead_chacha20poly13052.c
│ ├── aead_chacha20poly13052.exp
│ ├── aead_xchacha20poly1305.c
│ ├── aead_xchacha20poly1305.exp
│ ├── auth.c
│ ├── auth.exp
│ ├── auth2.c
│ ├── auth2.exp
│ ├── auth3.c
│ ├── auth3.exp
│ ├── auth5.c
│ ├── auth5.exp
│ ├── auth6.c
│ ├── auth6.exp
│ ├── auth7.c
│ ├── auth7.exp
│ ├── box.c
│ ├── box.exp
│ ├── box2.c
│ ├── box2.exp
│ ├── box7.c
│ ├── box7.exp
│ ├── box8.c
│ ├── box8.exp
│ ├── box_easy.c
│ ├── box_easy.exp
│ ├── box_easy2.c
│ ├── box_easy2.exp
│ ├── box_seal.c
│ ├── box_seal.exp
│ ├── box_seed.c
│ ├── box_seed.exp
│ ├── chacha20.c
│ ├── chacha20.exp
│ ├── cmptest.h
│ ├── codecs.c
│ ├── codecs.exp
│ ├── codecs2.c
│ ├── codecs2.exp
│ ├── codecs3.c
│ ├── codecs3.exp
│ ├── core1.c
│ ├── core1.exp
│ ├── core2.c
│ ├── core2.exp
│ ├── core3.c
│ ├── core3.exp
│ ├── core4.c
│ ├── core4.exp
│ ├── core5.c
│ ├── core5.exp
│ ├── core6.c
│ ├── core6.exp
│ ├── core_ed25519.c
│ ├── core_ed25519.exp
│ ├── core_ed25519_h2c.c
│ ├── core_ed25519_h2c.exp
│ ├── core_keccak1600.c
│ ├── core_keccak1600.exp
│ ├── core_ristretto255.c
│ ├── core_ristretto255.exp
│ ├── core_ristretto255_h2c.c
│ ├── core_ristretto255_h2c.exp
│ ├── ed25519_convert.c
│ ├── ed25519_convert.exp
│ ├── generichash.c
│ ├── generichash.exp
│ ├── generichash2.c
│ ├── generichash2.exp
│ ├── generichash3.c
│ ├── generichash3.exp
│ ├── hash.c
│ ├── hash.exp
│ ├── hash3.c
│ ├── hash3.exp
│ ├── hash_sha3256.c
│ ├── hash_sha3256.exp
│ ├── hash_sha3512.c
│ ├── hash_sha3512.exp
│ ├── index.html.tpl
│ ├── ipcrypt.c
│ ├── ipcrypt.exp
│ ├── kdf.c
│ ├── kdf.exp
│ ├── kdf_hkdf.c
│ ├── kdf_hkdf.exp
│ ├── kdf_hkdf2.c
│ ├── kdf_hkdf2.exp
│ ├── kdf_hkdf3.c
│ ├── kdf_hkdf3.exp
│ ├── kdf_hkdf4.c
│ ├── kdf_hkdf4.exp
│ ├── kem.c
│ ├── kem.exp
│ ├── kem_mlkem768.c
│ ├── kem_mlkem768.exp
│ ├── kem_xwing.c
│ ├── kem_xwing.exp
│ ├── keygen.c
│ ├── keygen.exp
│ ├── kx.c
│ ├── kx.exp
│ ├── metamorphic.c
│ ├── metamorphic.exp
│ ├── misuse.c
│ ├── misuse.exp
│ ├── onetimeauth.c
│ ├── onetimeauth.exp
│ ├── onetimeauth2.c
│ ├── onetimeauth2.exp
│ ├── onetimeauth7.c
│ ├── onetimeauth7.exp
│ ├── pre.js.inc
│ ├── pwhash_argon2i.c
│ ├── pwhash_argon2i.exp
│ ├── pwhash_argon2id.c
│ ├── pwhash_argon2id.exp
│ ├── pwhash_argon2id2.c
│ ├── pwhash_argon2id2.exp
│ ├── pwhash_scrypt.c
│ ├── pwhash_scrypt.exp
│ ├── pwhash_scrypt_ll.c
│ ├── pwhash_scrypt_ll.exp
│ ├── randombytes.c
│ ├── randombytes.exp
│ ├── run.sh
│ ├── scalarmult.c
│ ├── scalarmult.exp
│ ├── scalarmult2.c
│ ├── scalarmult2.exp
│ ├── scalarmult5.c
│ ├── scalarmult5.exp
│ ├── scalarmult6.c
│ ├── scalarmult6.exp
│ ├── scalarmult7.c
│ ├── scalarmult7.exp
│ ├── scalarmult8.c
│ ├── scalarmult8.exp
│ ├── scalarmult_ed25519.c
│ ├── scalarmult_ed25519.exp
│ ├── scalarmult_ristretto255.c
│ ├── scalarmult_ristretto255.exp
│ ├── secretbox.c
│ ├── secretbox.exp
│ ├── secretbox2.c
│ ├── secretbox2.exp
│ ├── secretbox7.c
│ ├── secretbox7.exp
│ ├── secretbox8.c
│ ├── secretbox8.exp
│ ├── secretbox_easy.c
│ ├── secretbox_easy.exp
│ ├── secretbox_easy2.c
│ ├── secretbox_easy2.exp
│ ├── secretstream_xchacha20poly1305.c
│ ├── secretstream_xchacha20poly1305.exp
│ ├── shorthash.c
│ ├── shorthash.exp
│ ├── sign.c
│ ├── sign.exp
│ ├── sign2.c
│ ├── sign2.exp
│ ├── siphashx24.c
│ ├── siphashx24.exp
│ ├── sodium_core.c
│ ├── sodium_core.exp
│ ├── sodium_utils.c
│ ├── sodium_utils.exp
│ ├── sodium_utils2.c
│ ├── sodium_utils2.exp
│ ├── sodium_utils3.c
│ ├── sodium_utils3.exp
│ ├── sodium_utils4.c
│ ├── sodium_utils4.exp
│ ├── sodium_version.c
│ ├── sodium_version.exp
│ ├── stream.c
│ ├── stream.exp
│ ├── stream2.c
│ ├── stream2.exp
│ ├── stream3.c
│ ├── stream3.exp
│ ├── stream4.c
│ ├── stream4.exp
│ ├── stream5.c
│ ├── stream5.exp
│ ├── stream6.c
│ ├── stream6.exp
│ ├── verify1.c
│ ├── verify1.exp
│ ├── wasi-test-wrapper.sh
│ ├── wintest.bat
│ ├── xchacha20.c
│ ├── xchacha20.exp
│ ├── xof2.c
│ ├── xof2.exp
│ ├── xof_shake128.c
│ ├── xof_shake128.exp
│ ├── xof_shake256.c
│ ├── xof_shake256.exp
│ ├── xof_turboshake128.c
│ ├── xof_turboshake128.exp
│ ├── xof_turboshake256.c
│ └── xof_turboshake256.exp
├── quirks/
│ └── quirks.h
├── rename-globals.sh
└── symbols/
└── all-symbols.txt
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
open_collective: libsodium
================================================
FILE: .github/ISSUE_TEMPLATE/bugs.md
================================================
---
name: "\U0001F41E Bug report"
about: Report a bug in libsodium
title: ""
labels: ""
assignees: ""
---
Thanks for taking the time to report a bug!
This tracker is for confirmed, reproducible bugs. If you're looking for help with installation, configuration, usage, or issues with third-party packages, the [Discussions](https://github.com/jedisct1/libsodium/discussions) section is a better place to start.
### Before you file
- Try reproducing the issue with the current `libsodium-stable` package, installed as documented at https://doc.libsodium.org/installation
- If the bug isn't obvious, please describe all the steps needed to reproduce it on a fresh install of macOS, Windows, OpenBSD, or Ubuntu Linux
### Not sure if it's a bug?
No worries! Feel free to [start a discussion](https://github.com/jedisct1/libsodium/discussions) first and we can figure it out together.
---
### How do we replicate the issue?
(Describe the steps to reproduce the bug)
### Expected behavior
(What did you expect to happen?)
### Actual behavior
(What actually happened?)
================================================
FILE: .github/ISSUE_TEMPLATE/suggestions.md
================================================
---
name: "🙋🏽 Planned changes"
about: Track planned changes (maintainers only)
title: ""
labels: ""
assignees: ""
---
Hey there! Got an idea for libsodium?
This template is for tracking work that's already been planned. For new feature suggestions, here's the best path forward:
1. Check the [roadmap](https://doc.libsodium.org/roadmap) to see if it's already on our radar
2. Start an "Ideas" thread in [Discussions](https://github.com/jedisct1/libsodium/discussions)
From there, we can chat about it and decide together if it should become a planned change. This helps keep the issue tracker focused on active work.
---
- [ ] Initially raised as discussion #...
================================================
FILE: .github/workflows/autocloser.yml
================================================
name: Autocloser
on: [issues]
permissions:
issues: write
jobs:
autoclose:
runs-on: ubuntu-latest
steps:
- name: Autoclose issues that did not follow issue template
uses: roots/issue-closer@fec85f2a845cd6cf33eda6e6a4c93026e71f86d1 # v1.2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-close-message: "This issue was automatically closed because it did not follow the issue template. We use the issue tracker exclusively for bug reports and feature additions that have been previously discussed. However, this issue appears to be a support request. Please use the discussion forums for support requests."
issue-pattern: ".*(do we replicate the issue|Expected behavior|raised as discussion|# Impact).*"
================================================
FILE: .github/workflows/ci.yml
================================================
name: CI
on:
push:
branches: [master, stable, next]
pull_request:
branches: [master, stable, next]
workflow_dispatch:
permissions:
contents: read
jobs:
tcc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: |
sudo apt-get install -y build-essential libtool autoconf automake tcc
- name: Autogen
run: ./autogen.sh -s
- name: Compilation with tcc
run: |
env CC=tcc CFLAGS='-w' CPPFLAGS="-DDEV_MODE=1" ./configure --prefix=/tmp --disable-dependency-tracking --disable-shared || cat config.log
make -j $(nproc) && make check && make install
env CC=tcc CPPFLAGS='-I/tmp/include' LDFLAGS='-L/tmp/lib' LD_LIBRARY_PATH='/tmp/lib' ./test/constcheck.sh
make uninstall
make distclean
zig:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install Zig
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2
with:
version: master
- name: Autogen
run: ./autogen.sh -s
- name: Compilation with zig
run: |
zig build
zig build -Dtarget=x86_64-linux
zig build -Dtarget=aarch64-linux
zig build -Dtarget=x86-windows
zig build -Dtarget=x86_64-windows
zig build -Dtarget=aarch64-windows
zig build -Dtarget=x86_64-macos
zig build -Dtarget=aarch64-macos
zig build -Dtarget=x86_64-freebsd
zig build -Dtarget=aarch64-freebsd
zig build -Dtarget=wasm32-wasi
zig build -Doptimize=ReleaseFast
rm -fr zig-cache zig-out
regular:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake
- name: Autogen
run: ./autogen.sh -s
- name: C99 compat check
run: |
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc) CFLAGS='-g0' > /dev/null && cp src/libsodium/.libs/libsodium.so lib.so && make clean > /dev/null && make CFLAGS='-g0' CPPFLAGS='-DDEV_MODE=1 -DSODIUM_C99\(X\)=' > /dev/null && cp src/libsodium/.libs/libsodium.so lib-oldc.so && cmp lib.so lib-oldc.so && echo No binary changes && make clean > /dev/null
make distcheck
make distclean > /dev/null
- name: Regular compilation
run: |
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --enable-minimal
make -j $(nproc)
make check
( echo '#include <sodium.h>' ; echo 'int main(void) { return sodium_init(); }' ) > /tmp/main.c && gcc -DDEV_MODE=1 -Isrc/libsodium/include -Isrc/libsodium/include/sodium $(find src -name '*.c' -o -name '*.S') /tmp/main.c
make distclean > /dev/null
check-globals:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake
- name: Autogen
run: ./autogen.sh -s
- name: Check globals
run: |
if [ -x test/rename-globals.sh ]; then test/rename-globals.sh; fi
other-comp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake clang
- name: Autogen
run: ./autogen.sh -s
- name: Compilation with g++
run: |
env CC=g++ CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc) check
make clean > /dev/null
- name: Compilation with clang
run: |
env CC=clang CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc) check
make clean > /dev/null
other-arch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake gcc-powerpc-linux-gnu
- name: Autogen
run: ./autogen.sh -s
- name: Big-Endian PowerPC compilation
run: |
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --host=powerpc-linux-gnu
make -j $(nproc)
make clean > /dev/null
wasi:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Install Zig
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2
with:
version: master
- name: Install Wasmer
uses: wasmerio/setup-wasmer@24b15c95293d23f89c68bd40dac76338f773e924 # v3.1
- name: Build for wasi-core
run: zig build -Dtarget=wasm32-wasi -Doptimize=ReleaseSafe
- name: Run tests with Wasmer
run: |
cd zig-out/bin
failed=0
for wasm in *.wasm; do
name="${wasm%.wasm}"
echo "[$name]"
if ! wasmer run "$wasm" --volume=./:. 2>&1; then
echo "*** [$name] FAILED" >&2
failed=1
fi
done
exit $failed
aarch64-gcc:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake
- name: Autogen
run: ./autogen.sh -s
- name: Compilation with GCC on aarch64
run: |
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc)
make check
make distclean > /dev/null
aarch64-gcc-crypto:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake
- name: Autogen
run: ./autogen.sh -s
- name: Compilation with GCC on aarch64 with NEON and ARM Crypto extensions
run: |
env CFLAGS="-march=armv8-a+crypto" CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc)
make check
make distclean > /dev/null
aarch64-gcc-sha3:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake
- name: Autogen
run: ./autogen.sh -s
- name: Compilation with GCC on aarch64 with NEON, ARM Crypto, and SHA3 extensions
run: |
env CFLAGS="-march=armv8-a+crypto+sha3" CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc)
make check
make distclean > /dev/null
android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Update packages list
run: sudo apt-get update
- name: Install base dependencies
run: sudo apt-get install -y libtool autoconf automake unzip
- name: Autogen
run: ./autogen.sh -s
- name: Install Android NDK
run: |
mkdir /tmp/android && cd /tmp/android
curl -o ndk.zip -L https://dl.google.com/android/repository/android-ndk-r29-linux.zip
unzip ndk.zip && rm -f *.zip && mv android-ndk* ndk
- name: Android compilation
run: |
env ANDROID_NDK_HOME=/tmp/android/ndk ./dist-build/android-aar.sh
================================================
FILE: .github/workflows/cifuzz.yml
================================================
name: CIFuzz
on:
push:
branches: [stable, next]
pull_request:
branches: [stable, next]
permissions:
contents: read
jobs:
Fuzzing:
runs-on: ubuntu-latest
steps:
- name: Build Fuzzers
id: build
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@745471a8a36fb54f1306e6157e105a3628e40318 # master 2026-03-08
with:
oss-fuzz-project-name: "libsodium"
dry-run: false
language: c++
- name: Run Fuzzers
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@745471a8a36fb54f1306e6157e105a3628e40318 # master 2026-03-08
with:
oss-fuzz-project-name: "libsodium"
fuzz-seconds: 300
dry-run: false
language: c++
- name: Upload Crash
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
if: failure() && steps.build.outcome == 'success'
with:
name: artifacts
path: ./out/artifacts
================================================
FILE: .github/workflows/codeql-analysis.yml
================================================
name: "CodeQL scan"
on:
push:
branches: [ "master stable next" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "master stable next" ]
schedule:
- cron: '0 17 * * 2'
permissions:
contents: read
jobs:
analyze:
name: Analyze
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'c-cpp' ]
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 2
persist-credentials: false
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@dd677812177e0c29f9c970a6c58d8607ae1bfefd # v4
with:
languages: ${{ matrix.language }}
- run: |
echo "Run, Build Application using script"
./autogen.sh -s
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc) check
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@dd677812177e0c29f9c970a6c58d8607ae1bfefd # v4
with:
category: "/language:${{matrix.language}}"
================================================
FILE: .github/workflows/dotnet-core.yml
================================================
name: .NET Package
on:
push:
branches:
- stable
- next
permissions:
contents: read
jobs:
build-windows-msvc:
runs-on: windows-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: buildbase.bat
run: buildbase.bat ..\vs2022\libsodium.sln 17
working-directory: builds/msvc/build/
shell: cmd
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-win-x64
path: bin/x64/Release/v143/dynamic/libsodium.dll
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-win-x86
path: bin/Win32/Release/v143/dynamic/libsodium.dll
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-win-arm64
path: bin/ARM64/Release/v143/dynamic/libsodium.dll
build-others:
runs-on: ubuntu-latest
steps:
- name: Install Zig
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2
with:
version: master
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Build Android AAR
run: sh ./dist-build/android-aar.sh
- name: Extract android AAR file
run: |
mkdir -p extracted-aar
unzip libsodium-*.aar -d extracted-aar
- name: Upload Android arm64
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-android-arm64
path: extracted-aar/prefab/modules/sodium/libs/android.arm64-v8a/libsodium.so
- name: Upload Android arm
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-android-arm
path: extracted-aar/prefab/modules/sodium/libs/android.armeabi-v7a/libsodium.so
- name: Upload Android x64
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-android-x64
path: extracted-aar/prefab/modules/sodium/libs/android.x86_64/libsodium.so
- name: Upload Android x86
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-android-x86
path: extracted-aar/prefab/modules/sodium/libs/android.x86/libsodium.so
- name: build-linux-x64
run: |
rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-gnu.2.17
- name: tests
run: cd zig-out/bin && ./run.sh
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-linux-x64
path: zig-out/lib/libsodium.so
- name: Set up arm and aarch64 emulation environment
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -y build-essential qemu-system binfmt-support qemu-user-static qemu-system-arm gcc-arm-linux-gnueabihf libc6-armhf-cross gcc-aarch64-linux-gnu libc6-arm64-cross
sudo dpkg --add-architecture armhf
sudo update-binfmts --enable qemu-arm
sudo update-binfmts --display
sudo ln -s /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.* /lib
sudo dpkg --add-architecture arm64
sudo update-binfmts --enable qemu-aarch64
sudo update-binfmts --display
sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.* /lib
- name: build-linux-arm
run: |
rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-gnueabihf.2.23
- name: tests
run: |
cd zig-out/bin && env LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib ./run.sh
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-linux-arm
path: zig-out/lib/libsodium.so
- name: build-linux-arm64
run: |
rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-gnu.2.23
- name: tests
run: |
cd zig-out/bin && env LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib ./run.sh
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-linux-arm64
path: zig-out/lib/libsodium.so
- name: build-linux-musl-x64
run: |
rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-musl
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-linux-musl-x64
path: zig-out/lib/libsodium.so
- name: build-linux-musl-arm
run: |
rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-musleabihf
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-linux-musl-arm
path: zig-out/lib/libsodium.so
- name: build-linux-musl-arm64
run: |
rm -fr zig-out .zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-musl
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-linux-musl-arm64
path: zig-out/lib/libsodium.so
build-apple:
runs-on: macos-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: configure
run: ./configure
- name: build-xcframework
run: env LIBSODIUM_FULL_BUILD=1 LIBSODIUM_SKIP_SIMULATORS=1 dist-build/apple-xcframework.sh
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-macos
path: libsodium-apple/macos/lib/libsodium.dylib
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-ios
path: libsodium-apple/ios/lib/libsodium.a
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-tvos
path: libsodium-apple/tvos/lib/libsodium.a
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build-maccatalyst
path: libsodium-apple/catalyst/lib/libsodium.a
pack:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
attestations: write
needs:
- build-windows-msvc
- build-apple
- build-others
container:
image: mcr.microsoft.com/dotnet/sdk:8.0
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-win-x64
path: .libsodium-pack/runtimes/win-x64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-win-x86
path: .libsodium-pack/runtimes/win-x86/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-win-arm64
path: .libsodium-pack/runtimes/win-arm64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-linux-x64
path: .libsodium-pack/runtimes/linux-x64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-linux-arm64
path: .libsodium-pack/runtimes/linux-arm64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-linux-arm
path: .libsodium-pack/runtimes/linux-arm/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-linux-musl-x64
path: .libsodium-pack/runtimes/linux-musl-x64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-linux-musl-arm
path: .libsodium-pack/runtimes/linux-musl-arm/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-linux-musl-arm64
path: .libsodium-pack/runtimes/linux-musl-arm64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-macos
path: .libsodium-pack/runtimes/osx-x64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-macos
path: .libsodium-pack/runtimes/osx-arm64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-ios
path: .libsodium-pack/runtimes/ios-arm64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-tvos
path: .libsodium-pack/runtimes/tvos-arm64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-maccatalyst
path: .libsodium-pack/runtimes/maccatalyst-x64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-maccatalyst
path: .libsodium-pack/runtimes/maccatalyst-arm64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-android-arm64
path: .libsodium-pack/runtimes/android-arm64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-android-arm
path: .libsodium-pack/runtimes/android-arm/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-android-x64
path: .libsodium-pack/runtimes/android-x64/native/
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: build-android-x86
path: .libsodium-pack/runtimes/android-x86/native/
- name: Copy files
run: cp AUTHORS ChangeLog LICENSE packaging/dotnet-core/libsodium.pkgproj .libsodium-pack/
- name: Create NuGet package
run: dotnet pack -c Release .libsodium-pack/libsodium.pkgproj
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: nuget-package
path: .libsodium-pack/bin/Release/*.nupkg
- name: Attest Build Provenance
uses: actions/attest-build-provenance@43d14bc2b83dec42d39ecae14e916627a18bb661 # v3
with:
subject-path: .libsodium-pack/bin/Release/*.nupkg
build-test-binaries:
runs-on: ubuntu-latest
needs:
- pack
container:
image: mcr.microsoft.com/dotnet/sdk:8.0
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: nuget-package
path: .libsodium-pack/
- name: dotnet new
run: dotnet new console -n Tests -o .libsodium-test/
- name: dotnet add package libsodium
run: dotnet add .libsodium-test/Tests.csproj package libsodium -s $PWD/.libsodium-pack
- name: Copy files
run: cp -f packaging/dotnet-core/test.cs .libsodium-test/Program.cs
- name: dotnet publish linux-x64
run: dotnet publish -c Release -r linux-x64 --self-contained true -p:PublishTrimmed=true
working-directory: .libsodium-test/
- name: dotnet publish linux-arm
run: dotnet publish -c Release -r linux-arm --self-contained true -p:PublishTrimmed=true
working-directory: .libsodium-test/
- name: dotnet publish linux-arm64
run: dotnet publish -c Release -r linux-arm64 --self-contained true -p:PublishTrimmed=true
working-directory: .libsodium-test/
- name: Move Build Output
run: |
mkdir .libsodium-builds
mv .libsodium-test/bin/Release/net8.0/linux-arm/publish .libsodium-builds/linux-arm
mv .libsodium-test/bin/Release/net8.0/linux-arm64/publish .libsodium-builds/linux-arm64
mv .libsodium-test/bin/Release/net8.0/linux-x64/publish .libsodium-builds/linux-x64
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: test-builds
path: .libsodium-builds/*
include-hidden-files: true
run-test-binaries-os-versions:
runs-on: ubuntu-latest
needs:
- build-test-binaries
strategy:
matrix:
arch: [ 'centos:8', 'debian:11' ]
container:
image: ${{ matrix.arch }}
env:
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1
steps:
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: test-builds
path: .libsodium-builds/
- name: Run x64 tests
run: |
chmod +x .libsodium-builds/linux-x64/Tests
.libsodium-builds/linux-x64/Tests
run-test-binaries-cross-plat:
runs-on: ubuntu-22.04
needs:
- build-test-binaries
env:
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1
strategy:
matrix:
include:
- arch: x64
libs: /usr/lib
- arch: arm
libs: /usr/arm-linux-gnueabihf/lib
- arch: arm64
libs: /usr/aarch64-linux-gnu/lib
arch: [x64, arm, arm64]
steps:
- name: Set up build environment
run: |
export DEBIAN_FRONTEND=noninteractive
# On virtualization systems such as the one used by WSL2, the ARM crypto extensions
# don't work as expected. As a result, installing on Ubuntu fails during integrity
# checks. As a workaround, the following command disables hardware acceleration for
# gcrypt, which the apt-get command relies on.
sudo mkdir -p /etc/gcrypt && echo all | sudo tee /etc/gcrypt/hwf.deny
sudo apt-get update && sudo apt-get install -y qemu-system binfmt-support qemu-user-static qemu-system-arm gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu libc6-armhf-cross libc6-arm64-cross
sudo dpkg --add-architecture armhf
sudo dpkg --add-architecture arm64
sudo update-binfmts --enable qemu-aarch64
sudo update-binfmts --enable qemu-arm
sudo update-binfmts --display
sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.* /lib
sudo ln -s /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.* /lib
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: test-builds
path: .libsodium-builds/
- name: Run ${{ matrix.arch }}
run: |
chmod +x .libsodium-builds/linux-${{ matrix.arch }}/Tests
env LD_LIBRARY_PATH=${{ matrix.libs }} .libsodium-builds/linux-${{ matrix.arch }}/Tests
================================================
FILE: .github/workflows/zizmor.yml
================================================
name: Zizmor
on:
push:
branches: [master, stable, next]
paths:
- '.github/workflows/**'
pull_request:
branches: [master, stable, next]
paths:
- '.github/workflows/**'
workflow_dispatch:
permissions:
contents: read
jobs:
zizmor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Install zizmor
run: pipx install zizmor
- name: Run zizmor
run: zizmor --min-severity medium .github/workflows/
================================================
FILE: .gitignore
================================================
!build
.deps
.dirstamp
.done
.DS_Store
.libs
.swival
.zig-cache
*.bc
*.done
*.dSYM
*.final
*.gcda
*.gcno
*.i
*.la
*.lo
*.log
*.mem
*.nexe
*.o
*.plist
*.scan
*.sdf
*.status
*.tar.*
*.vs/
*.wasm
*.wast
*~
/bin/
/obj/
aclocal.m4
android-toolchain
android-toolchain-*
autom4te.cache
build
Build
compile
confdefs.h
config.*
configure
configure.lineno
coverage.info
depcomp
INSTALL
install-sh
libsodium-*.tar.bz2
libsodium-*.tar.gz
libsodium-*.vcproj
libsodium-*.vcproj.filters
libsodium-*.vcxproj
libsodium-*.vcxproj.filters
libsodium-android-*
libsodium-ios
libsodium-js
libsodium-js-*
libsodium-nativeclient
libsodium-nativeclient-*
libsodium-osx
libsodium-uninstalled.pc
libsodium-wasm32-wasi
libsodium-win32
libsodium-win64
libsodium.pc
libtool
ltmain.sh
m4/argz.m4
m4/libtool.m4
m4/lt~obsolete.m4
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
Makefile
Makefile.in
man/*.html
man/Makefile.in
missing
src/libsodium/*.def
src/libsodium/include/sodium/private/quirks.h.old
src/libsodium/include/sodium/version.h
stamp-*
test-driver
test/default/*.asm.js
test/default/*.res
test/default/*.trs
test/default/aead_aegis128l
test/default/aead_aegis256
test/default/aead_aes256gcm
test/default/aead_aes256gcm2
test/default/aead_chacha20poly1305
test/default/aead_chacha20poly13052
test/default/aead_xchacha20poly1305
test/default/auth
test/default/auth2
test/default/auth3
test/default/auth5
test/default/auth6
test/default/auth7
test/default/box
test/default/box_easy
test/default/box_easy2
test/default/box_seal
test/default/box_seed
test/default/box2
test/default/box7
test/default/box8
test/default/browser
test/default/chacha20
test/default/codecs
test/default/codecs2
test/default/codecs3
test/default/core_ed25519
test/default/core_ed25519_h2c
test/default/core_keccak1600
test/default/core_ristretto255
test/default/core_ristretto255_h2c
test/default/core1
test/default/core2
test/default/core3
test/default/core4
test/default/core5
test/default/core6
test/default/ed25519_convert
test/default/generichash
test/default/generichash2
test/default/generichash3
test/default/hash
test/default/hash3
test/default/hash_sha3256
test/default/hash_sha3512
test/default/ipcrypt
test/default/kdf
test/default/kdf_hkdf
test/default/kdf_hkdf2
test/default/kdf_hkdf3
test/default/kdf_hkdf4
test/default/keygen
test/default/kem
test/default/kem_mlkem768
test/default/kem_xwing
test/default/kx
test/default/metamorphic
test/default/misuse
test/default/onetimeauth
test/default/onetimeauth2
test/default/onetimeauth7
test/default/pwhash_argon2i
test/default/pwhash_argon2id
test/default/pwhash_argon2id2
test/default/pwhash_scrypt
test/default/pwhash_scrypt_ll
test/default/randombytes
test/default/scalarmult
test/default/scalarmult_ed25519
test/default/scalarmult_ristretto255
test/default/scalarmult2
test/default/scalarmult5
test/default/scalarmult6
test/default/scalarmult7
test/default/scalarmult8
test/default/secretbox
test/default/secretbox_easy
test/default/secretbox_easy2
test/default/secretbox2
test/default/secretbox7
test/default/secretbox8
test/default/secretstream_xchacha20poly1305
test/default/shorthash
test/default/sign
test/default/sign2
test/default/siphashx24
test/default/sodium_core
test/default/sodium_utils
test/default/sodium_utils2
test/default/sodium_utils3
test/default/sodium_utils4
test/default/sodium_version
test/default/stream
test/default/stream2
test/default/stream3
test/default/stream4
test/default/stream5
test/default/stream6
test/default/verify1
test/default/xchacha20
test/default/xof_shake128
test/default/xof_shake256
test/default/xof_turboshake128
test/default/xof_turboshake256
test/default/xof2
test/js.done
test/symbols/all-host-symbols.txt
test/symbols/internal-host-symbols.txt
test/symbols/internal-symbols.txt
testing
Vagrantfile
zig-cache
zig-out
================================================
FILE: AUTHORS
================================================
Designers
=========
aegis Hongjun Wu
Bart Preneel
argon2 Alex Biryukov
Daniel Dinu
Dmitry Khovratovich
blake2 Jean-Philippe Aumasson
Christian Winnerlein
Samuel Neves
Zooko Wilcox-O'Hearn
chacha20 Daniel J. Bernstein
chacha20poly1305 Adam Langley
Yoav Nir
curve25519 Daniel J. Bernstein
curve25519xsalsa20poly1305 Daniel J. Bernstein
ed25519 Daniel J. Bernstein
Bo-Yin Yang
Niels Duif
Peter Schwabe
Tanja Lange
poly1305 Daniel J. Bernstein
ristretto Mike Hamburg
Henry de Valence
Jack Grigg
George Tankersley
Filippo Valsorda
Isis Lovecruft
salsa20 Daniel J. Bernstein
scrypt Colin Percival
siphash Jean-Philippe Aumasson
Daniel J. Bernstein
Implementors
============
crypto_aead/aegis128l Frank Denis
crypto_aead/aegis256
crypto_aead/aes256gcm/aesni Frank Denis
crypto_aead/chacha20poly1305 Frank Denis
crypto_aead/xchacha20poly1305 Frank Denis
Jason A. Donenfeld
crypto_auth/hmacsha256 Colin Percival
crypto_auth/hmacsha512
crypto_auth/hmacsha512256
crypto_box/curve25519xsalsa20poly1305 Daniel J. Bernstein
crypto_box/curve25519xchacha20poly1305 Frank Denis
crypto_core/ed25519 Daniel J. Bernstein
Adam Langley
Frank Denis
crypto_core/hchacha20 Frank Denis
crypto_core/hsalsa20 Daniel J. Bernstein
crypto_core/salsa
crypto_generichash/blake2b Jean-Philippe Aumasson
Christian Winnerlein
Samuel Neves
Zooko Wilcox-O'Hearn
crypto_hash/sha256 Colin Percival
crypto_hash/sha512
crypto_hash/sha512256
crypto_kdf Frank Denis
crypto_kx Frank Denis
crypto_onetimeauth/poly1305/donna Andrew "floodyberry" Moon
crypto_onetimeauth/poly1305/sse2
crypto_pwhash/argon2 Samuel Neves
Dmitry Khovratovich
Jean-Philippe Aumasson
Daniel Dinu
Thomas Pornin
crypto_pwhash/scryptsalsa208sha256 Colin Percival
Alexander Peslyak
crypto_scalarmult/curve25519/ref10 Daniel J. Bernstein
crypto_scalarmult/curve25519/sandy2x Tung Chou
crypto_scalarmult/ed25519 Frank Denis
crypto_scalarmult/ristretto255 Frank Denis
crypto_secretbox/xsalsa20poly1305 Daniel J. Bernstein
crypto_secretbox/xchacha20poly1305 Frank Denis
crypto_secretstream/xchacha20poly1305 Frank Denis
crypto_shorthash/siphash24 Jean-Philippe Aumasson
Daniel J. Bernstein
crypto_sign/ed25519 Peter Schwabe
Daniel J. Bernstein
Niels Duif
Tanja Lange
Bo-Yin Yang
crypto_stream/chacha20/ref Daniel J. Bernstein
crypto_stream/chacha20/dolbeau Romain Dolbeau
Daniel J. Bernstein
crypto_stream/salsa20/ref Daniel J. Bernstein
crypto_stream/salsa20/xmm6
crypto_stream/salsa20/xmm6int Romain Dolbeau
Daniel J. Bernstein
crypto_stream/salsa2012/ref Daniel J. Bernstein
crypto_stream/salsa2008/ref
crypto_stream/xchacha20 Frank Denis
crypto_verify Frank Denis
sodium/codecs.c Frank Denis
Thomas Pornin
Christian Winnerlein
sodium/core.c Frank Denis
sodium/runtime.h
sodium/utils.c
================================================
FILE: CITATION.cff
================================================
cff-version: 1.2.0
title: libsodium
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Frank
family-names: Denis
orcid: 'https://orcid.org/0009-0008-4417-1713'
repository-code: 'https://github.com/jedisct1/libsodium'
url: 'https://libsodium.org'
abstract: 'A modern, portable, easy-to-use cryptographic library.'
keywords:
- cryptography
- library
- nacl
license: ISC
================================================
FILE: ChangeLog
================================================
* Version 1.0.21-stable
- Performance: NEON optimizations for Argon2 on ARM platforms.
- Performance: SHA3 (Keccak1600) now leverages ARM SHA3 instructions when
available on ARM platforms.
- Performance: WebAssembly SIMD implementations of Argon2 have been added.
- Emscripten: LTO is now disabled. With Emscripten 4, LTO produced
WebAssembly modules with functions that ran significantly slower than
without it.
- Emscripten: a new option allows compilation with SIMD support.
- JavaScript sumo builds now allow up to 80 MiB memory usage, so that
`crypto_pwhash` with the interactive settings can be used in pure
JavaScript, not just WebAssembly.
- XOF state alignment has been relaxed.
- `crypto_core_keccak1600_state` has been added.
- Export missing `crypto_ipcrypt_nd_keygen()` helper function.
- apple-xcframework: headers are now in a Clibsodium subdirectory
to prevent module.modulemap collisions with other xcframeworks.
- Fixed compilation with GCC on aarch64 and gcc 4.x.
- On aarch64, aes256-gcm is now enabled even when not using clang.
- Added compatibility with Visual Studio 2026 when toolsets do not
define PlatformToolsetVersion.
- Libsodium can be directly used as a dependency in a Zig project.
* Version 1.0.21
This point release includes all the changes from 1.0.20-stable, which
include a security fix for the `crypto_core_ed25519_is_valid_point()`
function, as well as two new sets of functions:
- The new `crypto_ipcrypt_*` functions implement mechanisms for securely
encrypting and anonymizing IP addresses as specified in https://ipcrypt-std.github.io
- The `sodium_bin2ip` and `sodium_ip2bin` helper functions have been added
to complement the `crypto_ipcrypt_*` functions and easily convert addresses
between bytes and strings.
- XOF: the `crypto_xof_shake*` and `crypto_xof_turboshake*` functions
are standard extendable output functions. From input of any length, they can
derive output of any length with the same properties as hash functions. These
primitives are required by many post-quantum mechanisms, but can also be used
for a wide range of applications, including key derivation, session encryption
and more.
* Version 1.0.20-stable
- XCFramework: cross-compilation is now forced on Apple Silicon to
avoid Rosetta-related build issues
- The Fil-C compiler is supported out of the box
- The CompCert compiler is supported out of the box
- MSVC 2026 (Visual Studio 2026) is now supported
- Zig builds now support FreeBSD targets
- Performance of AES256-GCM and AEGIS on ARM has been improved
with some compilers
- Android binaries have been added to the NuGet package
- Windows ARM binaries have been added to the NuGet package
- The Android build script has been improved. The base SDK is
now 27c, and the default platform is 21, supporting 16 KB page sizes.
- The library can now be compiled with Zig 0.15 and Zig 0.16
- Zig builds now generate position-independent static libraries by
default on targets that support PIC
- arm64e builds have been added to the XCFramework packages
- XCFramework packages are now full builds instead of minimal
builds
- MSVC builds have been enabled for ARM64
- iOS 32-bit (armv7/armv7s) support has been removed from the
XCFramework build script
- Security: optblockers have been introduced in critical code paths
to prevent compilers from introducing unwanted side channels via
conditional jumps. This was observed on RISC-V targets with specific
compilers and options.
- Security: `crypto_core_ed25519_is_valid_point()` now properly
rejects small-order points that are not in the main subgroup
- `((nonnull))` attributes have been relaxed on some `crypto_stream*`
functions to allow NULL output buffers when the output length is zero
- A cross-compilation issue with old clang versions has been
fixed
- JavaScript: support for Cloudflare Workers has been added
- JavaScript: WASM_BIGINT is forcibly disabled to retain
compatibility with older runtimes
- A compilation issue with old toolchains on Solaris has been
fixed
- `crypto_aead_aes256gcm_is_available` is exported to JavaScript
- libsodium is now compatible with Emscripten 4.x
- Security: memory fences have been added after MAC verification in
AEAD to prevent speculative access to plaintext before authentication
is complete
- Assembly files now include .gnu.property notes for proper IBT and
Shadow Stack support when building with CET instrumentation
* Version 1.0.20
This point release includes all the changes from 1.0.19-stable,
mainly addressing compilation issues and improvements to the .NET
packages.
* Version 1.0.19-stable
- Building with `zig build` now requires Zig 0.12.
- When using the traditional build system, -O3 is used instead of -Ofast.
- Improved detection of the compiler flags required on aarch64.
- Improved compatibility with custom build systems on aarch64.
- apple-xcframework: VisionOS packages are not built if Xcode doesn't
include that SDK.
- `crypto_kdf_hkdf_sha512_statebytes()` was added.
- When using Visual Studio, runtime CPU feature detection is now enabled
on Windows/aarch64.
- There were issues with C++ guards affecting usage of libsodium
using Swift on Windows. This has been fixed.
- Emscripten: `crypto_aead_aegis*()` functions are now exported in
JavaScript builds
- Emscripten: unsupported `--memory-init-file` option has been removed.
- apple-xcframework: the minimal deployment target can be set to iOS 11+.
- .NET packages now include precompiled libraries for Windows/arm64,
iOS, TvOS and Catalyst.
- .NET precompiled libraries now work on any CPUs, using only runtime
feature detection.
- SYSV assembly should not be used when targeting Windows (reported by
@meiyese, thanks!)
- Compatibility issues with LLVM 18 and AVX512 have been addressed.
- GitHub attestation build provenance is now added to NuGet packages.
- JavaScript tests can now use Bun as an alternative to Node.
* Version 1.0.19
This release includes all the changes from 1.0.18-stable, as well as two
additions:
- New AEADs: AEGIS-128L and AEGIS-256 are now available in the
`crypto_aead_aegis128l_*()` and `crypto_aead_aegis256_*()` namespaces.
AEGIS is a family of authenticated ciphers for high-performance applications,
leveraging hardware AES acceleration on `x86_64` and `aarch64`. In addition
to performance, AEGIS ciphers have unique properties making them easier and
safer to use than AES-GCM. They can also be used as high-performance MACs.
- The HKDF key derivation mechanism, required by many standard protocols, is
now available in the `crypto_kdf_hkdf_*()` namespace. It is implemented for
the SHA-256 and SHA-512 hash functions.
- The `osx.sh` build script was renamed to `macos.sh`.
- Support for android-mips was removed.
* Version 1.0.18-stable
- Visual Studio: support for Windows/ARM64 builds has been added.
- Visual Studio: AVX512 implementations are enabled on supported CPUs.
- Visual Studio: an MSVC 2022 solution was added.
- Apple XCFramework: support for VisionOS was added.
- Apple XCFramework: support for Catalyst was added.
- Apple XCFramework: building the simulators is now optional.
- iOS: bitcode is not generated any more, as it was deprecated by Apple.
- watchOS: support for arm64 was added.
- The Zig toolchain can now be used as a modern build system to replace
autoconf/automake/libtool/make/ccache and the compiler. This enables faster
compilation times, easier cross compilation, and static libraries optimized
for any CPU.
- The Zig toolchain is now the recommended way to compile `libsodium`
to WebAssembly/WASI(X).
- libsodium can now be added as a dependency to Zig projects.
- Memory fences were added to remove some gadgets that could be used
alongside speculative loads.
- The AES-GCM implementation was completely rewritten. It is now faster,
and also available on aarch64, including Windows/ARM64.
- Compatibility with CET instrumentation / IBT / Shadow Stack was added.
- Emscripten: the `crypto_pwhash_*()` functions have been removed from Sumo
builds, as they reserve a substantial amount of JavaScript memory, even when
not used.
- Benchmarks now use `CLOCK_MONOTONIC` if possible.
- WebAssembly: tests can now run using Bun, WasmEdge, Wazero, wasm3 and
wasmer-js. Support for WAVM and Lucet have been removed, as these projects
have reached EOL.
- .NET: the minimum supported macOS version is now 10.15; this matches
Microsoft guidelines.
- .NET: all the packages are now built using Zig, on all platforms. This
allows us to easily match Microsoft's requirements, including supported glibc
versions. However, on x86_64, targets are expected to support at least the
AVX instruction set.
- .NET: packages for ARM64 are now available.
- C23 `memset_explicit()` is now used, when available.
- Compilation now uses `-Ofast` or `-O3` instead of `-O2` by default.
- Portability improvements to help compile libsodium to modern game consoles.
- JavaScript: a default `unhandledRejection` handler is not set any more.
- Slightly faster 25519 operations.
- OpenBSD: leverage `MAP_CONCEAL`.
* Version 1.0.18
- Enterprise versions of Visual Studio are now supported.
- Visual Studio 2019 is now supported.
- 32-bit binaries for Visual Studio 2010 are now provided.
- A test designed to trigger an OOM condition didn't work on Linux systems
with memory overcommit turned on. It has been removed in order to fix
Ansible builds.
- Emscripten: `print` and `printErr` functions are overridden to send
errors to the console, if there is one.
- Emscripten: `UTF8ToString()` is now exported since `Pointer_stringify()`
has been deprecated.
- Libsodium version detection has been fixed in the CMake recipe.
- Generic hashing got a 10% speedup on AVX2.
- New target: WebAssembly/WASI (compile with `dist-builds/wasm32-wasi.sh`).
- New functions to map a hash to an edwards25519 point or get a random point:
`core_ed25519_from_hash()` and `core_ed25519_random()`.
- `crypto_core_ed25519_scalar_mul()` has been implemented for
`scalar*scalar (mod L)` multiplication.
- Support for the Ristretto group has been implemented for interoperability
with wasm-crypto.
- Improvements have been made to the test suite.
- Portability improvements have been made.
- `getentropy()` is now used on systems providing this system call.
- `randombytes_salsa20` has been renamed to `randombytes_internal`.
- Support for NativeClient has been removed.
- Most `((nonnull))` attributes have been relaxed to allow 0-length inputs
to be `NULL`.
- The `-ftree-vectorize` and `-ftree-slp-vectorize` compiler switches are
now used, if available, for optimized builds.
* Version 1.0.17-stable
- AVX512 detection has been improved.
- A compilation option was added to enable retpoline support.
- `-ftls-model=global-dynamic` is now set, if available.
- Portability and documentation improvements.
* Version 1.0.17
- Bug fix: `sodium_pad()` didn't properly support block sizes >= 256 bytes.
- JS/WebAssembly: some old iOS versions can't instantiate the WebAssembly
module; fall back to JavaScript on these.
- JS/WebAssembly: compatibility with newer Emscripten versions.
- Bug fix: `crypto_pwhash_scryptsalsa208sha256_str_verify()` and
`crypto_pwhash_scryptsalsa208sha256_str_needs_rehash()` didn't return
`EINVAL` on input strings with a short length, unlike their high-level
counterpart.
- Added a workaround for Visual Studio 2010 bug causing CPU features
not to be detected.
- Portability improvements.
- Test vectors from Project Wycheproof have been added.
- New low-level APIs for arithmetic mod the order of the prime order group:
`crypto_core_ed25519_scalar_random()`, `crypto_core_ed25519_scalar_reduce()`,
`crypto_core_ed25519_scalar_invert()`, `crypto_core_ed25519_scalar_negate()`,
`crypto_core_ed25519_scalar_complement()`, `crypto_core_ed25519_scalar_add()`
and `crypto_core_ed25519_scalar_sub()`.
- New low-level APIs for scalar multiplication without clamping:
`crypto_scalarmult_ed25519_base_noclamp()` and
`crypto_scalarmult_ed25519_noclamp()`. These new APIs are especially useful
for blinding.
- `sodium_sub()` has been implemented.
- Support for WatchOS has been added.
- getrandom(2) is now used on FreeBSD 12+.
- The `nonnull` attribute has been added to all relevant prototypes.
- More reliable AVX512 detection.
- JavaScript/WebAssembly builds now use dynamic memory growth.
* Version 1.0.16
- Signatures computations and verifications are now way faster on
64-bit platforms with compilers supporting 128-bit arithmetic (gcc,
clang, icc). This includes the WebAssembly target.
- New low-level APIs for computations over edwards25519:
`crypto_scalarmult_ed25519()`, `crypto_scalarmult_ed25519_base()`,
`crypto_core_ed25519_is_valid_point()`, `crypto_core_ed25519_add()`,
`crypto_core_ed25519_sub()` and `crypto_core_ed25519_from_uniform()`
(elligator representative to point).
- `crypto_sign_open()`, `crypto_sign_verify_detached()` and
`crypto_sign_edwards25519sha512batch_open()` now reject public keys in
non-canonical form in addition to low-order points.
- The library can be built with `ED25519_NONDETERMINISTIC` defined in
order to use synthetic nonces for EdDSA. This is disabled by default.
- WebAssembly: `crypto_pwhash_*()` functions are now included in
non-sumo builds.
- `sodium_stackzero()` was added to wipe content off the stack.
- Android: support new SDKs where unified headers have become the
default.
- The Salsa20-based PRNG example is now thread-safe on platforms with
support for thread-local storage, optionally mixes bits from RDRAND.
- CMAKE: static library detection on Unix systems has been improved
(thanks to @BurningEnlightenment, @nibua-r, @mellery451)
- Argon2 and scrypt are slightly faster on Linux.
* Version 1.0.15
- The default password hashing algorithm is now Argon2id. The
`pwhash_str_verify()` function can still verify Argon2i hashes
without any changes, and `pwhash()` can still compute Argon2i hashes
as well.
- The aes128ctr primitive was removed. It was slow, non-standard, not
authenticated, and didn't seem to be used by any opensource project.
- Argon2id required at least 3 passes like Argon2i, despite a minimum
of `1` as defined by the `OPSLIMIT_MIN` constant. This has been fixed.
- The secretstream construction was slightly changed to be consistent
with forthcoming variants.
- The JavaScript and WebAssembly versions have been merged, and the
module now returns a `.ready` promise that will resolve after the
WebAssembly code is loaded and compiled.
- Note that due to these incompatible changes, the library version
major was bumped up.
* Version 1.0.14
- iOS binaries should now be compatible with WatchOS and TVOS.
- WebAssembly is now officially supported. Special thanks to
@facekapow and @pepyakin who helped to make it happen.
- Internal consistency checks failing and primitives used with
dangerous/out-of-bounds/invalid parameters used to call abort(3).
Now, a custom handler *that doesn't return* can be set with the
`set_sodium_misuse()` function. It still aborts by default or if the
handler ever returns. This is not a replacement for non-fatal,
expected runtime errors. This handler will be only called in
unexpected situations due to potential bugs in the library or in
language bindings.
- `*_MESSAGEBYTES_MAX` macros (and the corresponding
`_messagebytes_max()` symbols) have been added to represent the
maximum message size that can be safely handled by a primitive.
Language bindings are encouraged to check user inputs against these
maximum lengths.
- The test suite has been extended to cover more edge cases.
- crypto_sign_ed25519_pk_to_curve25519() now rejects points that are
not on the curve, or not in the main subgroup.
- Further changes have been made to ensure that smart compilers will
not optimize out code that we don't want to be optimized.
- Visual Studio solutions are now included in distribution tarballs.
- The `sodium_runtime_has_*` symbols for CPU features detection are
now defined as weak symbols, i.e. they can be replaced with an
application-defined implementation. This can be useful to disable
AVX* when temperature/power consumption is a concern.
- `crypto_kx_*()` now aborts if called with no non-NULL pointers to
store keys to.
- SSE2 implementations of `crypto_verify_*()` have been added.
- Passwords can be hashed using a specific algorithm with the new
`crypto_pwhash_str_alg()` function.
- Due to popular demand, base64 encoding (`sodium_bin2base64()`) and
decoding (`sodium_base642bin()`) have been implemented.
- A new `crypto_secretstream_*()` API was added to safely encrypt files
and multi-part messages.
- The `sodium_pad()` and `sodium_unpad()` helper functions have been
added in order to add & remove padding.
- An AVX512 optimized implementation of Argon2 has been added (written
by Ondrej Mosnáček, thanks!)
- The `crypto_pwhash_str_needs_rehash()` function was added to check if
a password hash string matches the given parameters, or if it needs an
update.
- The library can now be compiled with recent versions of
emscripten/binaryen that don't allow multiple variables declarations
using a single `var` statement.
* Version 1.0.13
- JavaScript: the sumo builds now include all symbols. They were
previously limited to symbols defined in minimal builds.
- The public `crypto_pwhash_argon2i_MEMLIMIT_MAX` constant was
incorrectly defined on 32-bit platforms. This has been fixed.
- Version 1.0.12 didn't compile on OpenBSD/i386 using the base gcc
compiler. This has been fixed.
- The Android compilation scripts have been updated for NDK r14b.
- armv7s-optimized code was re-added to iOS builds.
- An AVX2 optimized implementation of the Argon2 round function was
added.
- The Argon2id variant of Argon2 has been implemented. The
high-level `crypto_pwhash_str_verify()` function automatically detects
the algorithm and can verify both Argon2i and Argon2id hashed passwords.
The default algorithm for newly hashed passwords remains Argon2i in
this version to avoid breaking compatibility with verifiers running
libsodium <= 1.0.12.
- A `crypto_box_curve25519xchacha20poly1305_seal*()` function set was
implemented.
- scrypt was removed from minimal builds.
- libsodium is now available on NuGet.
* Version 1.0.12
- Ed25519ph was implemented, adding a multi-part signature API
(`crypto_sign_init()`, `crypto_sign_update()`, `crypto_sign_final_*()`).
- New constants and related accessors have been added for Scrypt and
Argon2.
- XChaCha20 has been implemented. Like XSalsa20, this construction
extends the ChaCha20 cipher to accept a 192-bit nonce. This makes it safe
to use ChaCha20 with random nonces.
- `crypto_secretbox`, `crypto_box` and `crypto_aead` now offer
variants leveraging XChaCha20.
- SHA-2 is about 20% faster, which also gives a speed boost to
signature and signature verification.
- AVX2 implementations of Salsa20 and ChaCha20 have been added. They
are twice as fast as the SSE2 implementations. The speed gain is
even more significant on Windows, that previously didn't use
vectorized implementations.
- New high-level API: `crypto_kdf`, to easily derive one or more
subkeys from a master key.
- Siphash with a 128-bit output has been implemented, and is
available as `crypto_shorthash_siphashx_*`.
- New `*_keygen()` helpers functions have been added to create secret
keys for all constructions. This improves code clarity and can prevent keys
from being partially initialized.
- A new `randombytes_buf_deterministic()` function was added to
deterministically fill a memory region with pseudorandom data. This
function can especially be useful to write reproducible tests.
- A preliminary `crypto_kx_*()` API was added to compute shared session
keys.
- AVX2 detection is more reliable.
- The pthreads library is not required any more when using MingW.
- `contrib/Findsodium.cmake` was added as an example to include
libsodium in a project using cmake.
- Compatibility with gcc 2.x has been restored.
- Minimal builds can be checked using `sodium_library_minimal()`.
- The `--enable-opt` compilation switch has become compatible with more
platforms.
- Android builds are now using clang on platforms where it is
available.
* Version 1.0.11
- `sodium_init()` is now thread-safe, and can be safely called multiple
times.
- Android binaries now properly support 64-bit Android, targeting
platform 24, but without breaking compatibility with platforms 16 and
21.
- Better support for old gcc versions.
- On FreeBSD, core dumps are disabled on regions allocated with
sodium allocation functions.
- AVX2 detection was fixed, resulting in faster Blake2b hashing on
platforms where it was not properly detected.
- The Sandy2x Curve25519 implementation was not as fast as expected
on some platforms. This has been fixed.
- The NativeClient target was improved. Most notably, it now supports
optimized implementations, and uses pepper_49 by default.
- The library can be compiled with recent Emscripten versions.
Changes have been made to produce smaller code, and the default heap
size was reduced in the standard version.
- The code can now be compiled on SLES11 service pack 4.
- Decryption functions can now accept a NULL pointer for the output.
This checks the MAC without writing the decrypted message.
- crypto_generichash_final() now returns -1 if called twice.
- Support for Visual Studio 2008 was improved.
* Version 1.0.10
- This release only fixes a compilation issue reported with some older
gcc versions. There are no functional changes over the previous release.
* Version 1.0.9
- The JavaScript target now includes a `--sumo` option to include all
the symbols of the original C library.
- A detached API was added to the ChaCha20-Poly1305 and AES256-GCM
implementations.
- The Argon2i password hashing function was added, and is accessible
directly and through a new, high-level `crypto_pwhash` API. The scrypt
function remains available as well.
- A speed-record AVX2 implementation of BLAKE2b was added (thanks to
Samuel Neves).
- The library can now be compiled using C++Builder (thanks to @jcolli44)
- Countermeasures for Ed25519 signatures malleability have been added
to match the irtf-cfrg-eddsa draft (note that malleability is irrelevant to
the standard definition of signature security). Signatures with a small-order
`R` point are now also rejected.
- Some implementations are now slightly faster when using the Clang
compiler.
- The HChaCha20 core function was implemented (`crypto_core_hchacha20()`).
- No-op stubs were added for all AES256-GCM public functions even when
compiled on non-Intel platforms.
- `crypt_generichash_blake2b_statebytes()` was added.
- New macros were added for the IETF variant of the ChaCha20-Poly1305
construction.
- The library can now be compiled on Minix.
- HEASLR is now enabled on MinGW builds.
* Version 1.0.8
- Handle the case where the CPU supports AVX, but we are running
on an hypervisor with AVX disabled/not supported.
- Faster (2x) scalarmult_base() when using the ref10 implementation.
* Version 1.0.7
- More functions whose return value should be checked have been
tagged with `__attribute__ ((warn_unused_result))`: `crypto_box_easy()`,
`crypto_box_detached()`, `crypto_box_beforenm()`, `crypto_box()`, and
`crypto_scalarmult()`.
- Sandy2x, the fastest Curve25519 implementation ever, has been
merged in, and is automatically used on CPUs supporting the AVX
instructions set.
- An SSE2 optimized implementation of Poly1305 was added, and is
twice as fast as the portable one.
- An SSSE3 optimized implementation of ChaCha20 was added, and is
twice as fast as the portable one.
- Faster `sodium_increment()` for common nonce sizes.
- New helper functions have been added: `sodium_is_zero()` and
`sodium_add()`.
- `sodium_runtime_has_aesni()` now properly detects the CPU flag when
compiled using Visual Studio.
* Version 1.0.6
- Optimized implementations of Blake2 have been added for modern
Intel platforms. `crypto_generichash()` is now faster than MD5 and SHA1
implementations while being far more secure.
- Functions for which the return value should be checked have been
tagged with `__attribute__ ((warn_unused_result))`. This will
intentionally break code compiled with `-Werror` that didn't bother
checking critical return values.
- The `crypto_sign_edwards25519sha512batch_*()` functions have been
tagged as deprecated.
- Undocumented symbols that were exported, but were only useful for
internal purposes have been removed or made private:
`sodium_runtime_get_cpu_features()`, the implementation-specific
`crypto_onetimeauth_poly1305_donna()` symbols,
`crypto_onetimeauth_poly1305_set_implementation()`,
`crypto_onetimeauth_poly1305_implementation_name()` and
`crypto_onetimeauth_pick_best_implementation()`.
- `sodium_compare()` now works as documented, and compares numbers
in little-endian format instead of behaving like `memcmp()`.
- The previous changes should not break actual applications, but to be
safe, the library version major was incremented.
- `sodium_runtime_has_ssse3()` and `sodium_runtime_has_sse41()` have
been added.
- The library can now be compiled with the CompCert compiler.
* Version 1.0.5
- Compilation issues on some platforms were fixed: missing alignment
directives were added (required at least on RHEL-6/i386), a workaround
for a VRP bug on gcc/armv7 was added, and the library can now be compiled
with the SunPro compiler.
- JavaScript target: io.js is not supported any more. Use Node.js.
* Version 1.0.4
- Support for AES256-GCM has been added. This requires
a CPU with the aesni and pclmul extensions, and is accessible via the
crypto_aead_aes256gcm_*() functions.
- The JavaScript target doesn't use eval() any more, so that the
library can be used in Chrome packaged applications.
- QNX and CloudABI are now supported.
- Support for NaCl has finally been added.
- ChaCha20 with an extended (96 bit) nonce and a 32-bit counter has
been implemented as crypto_stream_chacha20_ietf(),
crypto_stream_chacha20_ietf_xor() and crypto_stream_chacha20_ietf_xor_ic().
An IETF-compatible version of ChaCha20Poly1305 is available as
crypto_aead_chacha20poly1305_ietf_npubbytes(),
crypto_aead_chacha20poly1305_ietf_encrypt() and
crypto_aead_chacha20poly1305_ietf_decrypt().
- The sodium_increment() helper function has been added, to increment
an arbitrary large number (such as a nonce).
- The sodium_compare() helper function has been added, to compare
arbitrary large numbers (such as nonces, in order to prevent replay
attacks).
* Version 1.0.3
- In addition to sodium_bin2hex(), sodium_hex2bin() is now a
constant-time function.
- crypto_stream_xsalsa20_ic() has been added.
- crypto_generichash_statebytes(), crypto_auth_*_statebytes() and
crypto_hash_*_statebytes() have been added in order to retrieve the
size of structures keeping states from foreign languages.
- The JavaScript target doesn't require /dev/urandom or an external
randombytes() implementation any more. Other minor Emscripten-related
improvements have been made in order to support libsodium.js.
- Custom randombytes implementations do not need to provide their own
implementation of randombytes_uniform() any more. randombytes_stir()
and randombytes_close() can also be NULL pointers if they are not
required.
- On Linux, getrandom(2) is being used instead of directly accessing
/dev/urandom, if the kernel supports this system call.
- crypto_box_seal() and crypto_box_seal_open() have been added.
- Visual Studio 2015 is now supported.
* Version 1.0.2
- The _easy and _detached APIs now support precalculated keys;
crypto_box_easy_afternm(), crypto_box_open_easy_afternm(),
crypto_box_detached_afternm() and crypto_box_open_detached_afternm()
have been added as an alternative to the NaCl interface.
- Memory allocation functions can now be used on operating systems with
no memory protection.
- crypto_sign_open() and crypto_sign_edwards25519sha512batch_open()
now accept a NULL pointer instead of a pointer to the message size, if
storing this information is not required.
- The close-on-exec flag is now set on the descriptor returned when
opening /dev/urandom.
- A libsodium-uninstalled.pc file to use pkg-config even when
libsodium is not installed, has been added.
- The iOS target now includes armv7s and arm64 optimized code, as well
as i386 and x86_64 code for the iOS simulator.
- sodium_free() can now be called on regions with PROT_NONE protection.
- The JavaScript tests can run on Ubuntu, where the node binary was
renamed nodejs. io.js can also be used instead of Node.
* Version 1.0.1
- DLL_EXPORT was renamed SODIUM_DLL_EXPORT in order to avoid
collisions with similar macros defined by other libraries.
- sodium_bin2hex() is now constant-time.
- crypto_secretbox_detached() now supports overlapping input and output
regions.
- NaCl's donna_c64 implementation of curve25519 was reading an extra byte
past the end of the buffer containing the base point. This has been
fixed.
* Version 1.0.0
- The API and ABI are now stable. New features will be added, but
backward-compatibility is guaranteed through all the 1.x.y releases.
- crypto_sign() properly works with overlapping regions again. Thanks
to @pysiak for reporting this regression introduced in version 0.6.1.
- The test suite has been extended.
* Version 0.7.1 (1.0 RC2)
- This is the second release candidate of Sodium 1.0. Minor
compilation, readability and portability changes have been made and the
test suite was improved, but the API is the same as the previous release
candidate.
* Version 0.7.0 (1.0 RC1)
- Allocating memory to store sensitive data can now be done using
sodium_malloc() and sodium_allocarray(). These functions add guard
pages around the protected data to make it less likely to be
accessible in a heartbleed-like scenario. In addition, the protection
for memory regions allocated that way can be changed using
sodium_mprotect_noaccess(), sodium_mprotect_readonly() and
sodium_mprotect_readwrite().
- ed25519 keys can be converted to curve25519 keys with
crypto_sign_ed25519_pk_to_curve25519() and
crypto_sign_ed25519_sk_to_curve25519(). This allows using the same
keys for signature and encryption.
- The seed and the public key can be extracted from an ed25519 key
using crypto_sign_ed25519_sk_to_seed() and crypto_sign_ed25519_sk_to_pk().
- aes256 was removed. A timing-attack resistant implementation might
be added later, but not before version 1.0 is tagged.
- The crypto_pwhash_scryptxsalsa208sha256_* compatibility layer was
removed. Use crypto_pwhash_scryptsalsa208sha256_*.
- The compatibility layer for implementation-specific functions was
removed.
- Compilation issues with Mingw64 on MSYS (not MSYS2) were fixed.
- crypto_pwhash_scryptsalsa208sha256_STRPREFIX was added: it contains
the prefix produced by crypto_pwhash_scryptsalsa208sha256_str()
* Version 0.6.1
- Important bug fix: when crypto_sign_open() was given a signed
message too short to even contain a signature, it was putting an
unlimited amount of zeros into the target buffer instead of
immediately returning -1. The bug was introduced in version 0.5.0.
- New API: crypto_sign_detached() and crypto_sign_verify_detached()
to produce and verify ed25519 signatures without having to duplicate
the message.
- New ./configure switch: --enable-minimal, to create a smaller
library, with only the functions required for the high-level API.
Mainly useful for the JavaScript target and embedded systems.
- All the symbols are now exported by the Emscripten build script.
- The pkg-config .pc file is now always installed even if the
pkg-config tool is not available during the installation.
* Version 0.6.0
- The ChaCha20 stream cipher has been added, as crypto_stream_chacha20_*
- The ChaCha20Poly1305 AEAD construction has been implemented, as
crypto_aead_chacha20poly1305_*
- The _easy API does not require any heap allocations any more and
does not have any overhead over the NaCl API. With the password
hashing function being an obvious exception, the library doesn't
allocate and will not allocate heap memory ever.
- crypto_box and crypto_secretbox have a new _detached API to store
the authentication tag and the encrypted message separately.
- crypto_pwhash_scryptxsalsa208sha256*() functions have been renamed
crypto_pwhash_scryptsalsa208sha256*().
- The low-level crypto_pwhash_scryptsalsa208sha256_ll() function
allows setting individual parameters of the scrypt function.
- New macros and functions for recommended crypto_pwhash_* parameters
have been added.
- Similarly to crypto_sign_seed_keypair(), crypto_box_seed_keypair()
has been introduced to deterministically generate a key pair from a seed.
- crypto_onetimeauth() now provides a streaming interface.
- crypto_stream_chacha20_xor_ic() and crypto_stream_salsa20_xor_ic()
have been added to use a non-zero initial block counter.
- On Windows, CryptGenRandom() was replaced by RtlGenRandom(), which
doesn't require the Crypt API.
- The high bit in curve25519 is masked instead of processing the key as
a 256-bit value.
- The curve25519 ref implementation was replaced by the latest ref10
implementation from Supercop.
- sodium_mlock() now prevents memory from being included in coredumps
on Linux 3.4+
* Version 0.5.0
- sodium_mlock()/sodium_munlock() have been introduced to lock pages
in memory before storing sensitive data, and to zero them before
unlocking them.
- High-level wrappers for crypto_box and crypto_secretbox
(crypto_box_easy and crypto_secretbox_easy) can be used to avoid
dealing with the specific memory layout regular functions depend on.
- crypto_pwhash_scryptsalsa208sha256* functions have been added
to derive a key from a password, and for password storage.
- Salsa20 and ed25519 implementations now support overlapping
inputs/keys/outputs (changes imported from supercop-20140505).
- New build scripts for Visual Studio, Emscripten, different Android
architectures and msys2 are available.
- The poly1305-53 implementation has been replaced with Floodyberry's
poly1305-donna32 and poly1305-donna64 implementations.
- sodium_hex2bin() has been added to complement sodium_bin2hex().
- On OpenBSD and Bitrig, arc4random() is used instead of reading
/dev/urandom.
- crypto_auth_hmac_sha512() has been implemented.
- sha256 and sha512 now have a streaming interface.
- hmacsha256, hmacsha512 and hmacsha512256 now support keys of
arbitrary length, and have a streaming interface.
- crypto_verify_64() has been implemented.
- first-class Visual Studio build system, thanks to @evoskuil
- CPU features are now detected at runtime.
* Version 0.4.5
- Restore compatibility with OSX <= 10.6
* Version 0.4.4
- Visual Studio is officially supported (VC 2010 & VC 2013)
- mingw64 is now supported
- big-endian architectures are now supported as well
- The donna_c64 implementation of curve25519_donna_c64 now handles
non-canonical points like the ref implementation
- Missing scalarmult_curve25519 and stream_salsa20 constants are now exported
- A crypto_onetimeauth_poly1305_ref() wrapper has been added
* Version 0.4.3
- crypto_sign_seedbytes() and crypto_sign_SEEDBYTES were added.
- crypto_onetimeauth_poly1305_implementation_name() was added.
- poly1305-ref has been replaced by a faster implementation,
Floodyberry's poly1305-donna-unrolled.
- Stackmarkings have been added to assembly code, for Hardened Gentoo.
- pkg-config can now be used in order to retrieve compilations flags for
using libsodium.
- crypto_stream_aes256estream_*() can now deal with unaligned input
on platforms that require word alignment.
- portability improvements.
* Version 0.4.2
- All NaCl constants are now also exposed as functions.
- The Android and iOS cross-compilation script have been improved.
- libsodium can now be cross-compiled to Windows from Linux.
- libsodium can now be compiled with emscripten.
- New convenience function (prototyped in utils.h): sodium_bin2hex().
* Version 0.4.1
- sodium_version_*() functions were not exported in version 0.4. They
are now visible as intended.
- sodium_init() now calls randombytes_stir().
- optimized assembly version of salsa20 is now used on amd64.
- further cleanups and enhanced compatibility with non-C99 compilers.
* Version 0.4
- Most constants and operations are now available as actual functions
instead of macros, making it easier to use from other languages.
- New operation: crypto_generichash, featuring a variable key size, a
variable output size, and a streaming API. Currently implemented using
Blake2b.
- The package can be compiled in a separate directory.
- aes128ctr functions are exported.
- Optimized versions of curve25519 (curve25519_donna_c64), poly1305
(poly1305_53) and ed25519 (ed25519_ref10) are available. Optionally calling
sodium_init() once before using the library makes it pick the fastest
implementation.
- New convenience function: sodium_memzero() in order to securely
wipe a memory area.
- A whole bunch of cleanups and portability enhancements.
- On Windows, a .REF file is generated along with the shared library,
for use with Visual Studio. The installation path for these has become
$prefix/bin as expected by MingW.
* Version 0.3
- The crypto_shorthash operation has been added, implemented using
SipHash-2-4.
* Version 0.2
- crypto_sign_seed_keypair() has been added
* Version 0.1
- Initial release.
================================================
FILE: LICENSE
================================================
/*
* ISC License
*
* Copyright (c) 2013-2026
* Frank Denis <j at pureftpd dot org>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
================================================
FILE: Makefile.am
================================================
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \
autogen.sh \
build.zig \
ChangeLog \
CITATION.cff \
LICENSE \
README.markdown \
THANKS
SUBDIRS = \
builds \
dist-build \
src \
test
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = @PACKAGE_NAME@.pc
DISTCLEANFILES = $(pkgconfig_DATA)
================================================
FILE: README.markdown
================================================
[](https://github.com/jedisct1/libsodium/actions)
[](https://scan.coverity.com/projects/2397)
[](https://jedisct1.visualstudio.com/Libsodium/_build/latest?definitionId=3&branchName=stable)
[](https://github.com/jedisct1/libsodium/actions)
# 
Sodium is an easy-to-use software library that provides a wide range of cryptographic operations including encryption, decryption, digital signatures, and secure password hashing.
It is a portable, cross-compilable, installable, and packageable fork of [NaCl](http://nacl.cr.yp.to/). While maintaining API compatibility, libsodium extends functionality to improve usability and simplify the development of secure applications.
---
## Key Features
- **Encryption & Decryption:** Securely encrypt and decrypt data with modern algorithms.
- **Digital Signatures:** Create and verify signatures to ensure data authenticity.
- **Cross-Platform Compatibility:** Supported on Windows (MinGW and Visual Studio, x86, x64 and arm64), iOS, Android, JavaScript, and WebAssembly.
- **User-Friendly API:** Designed to provide all core cryptographic operations while remaining easy to integrate into your projects.
---
## Documentation
- [Installation](https://doc.libsodium.org/installation)
- [Quickstart](https://doc.libsodium.org/quickstart)
- [Full Documentation](https://doc.libsodium.org)
- [Releases](https://download.libsodium.org/libsodium/releases/)
- [Integrity Checking](https://doc.libsodium.org/installation#integrity-checking)
---
## Versioning
libsodium uses a two-tier release system:
- **Point releases** (e.g., 1.0.19, 1.0.20, 1.0.21) are tagged when new features are added or significant changes are made.
- **Stable releases** are frequent maintainance updates between point releases. They fix minor issues while remaining fully compatible with their parent point release. No new features, no breaking changes.
If your application depends on a specific point release, stable updates are safe to apply. Security fixes go to the `stable` branch immediately, with a new point release tagged shortly after.
---
## Contributors
### Code Contributors
This project thrives thanks to the valuable contributions from our community. View all the [contributors](https://github.com/jedisct1/libsodium/graphs/contributors):
<a href="https://github.com/jedisct1/libsodium/graphs/contributors">
<img src="https://opencollective.com/libsodium/contributors.svg?width=890&button=false" alt="Contributors">
</a>
### Financial Contributors
Your financial support helps us sustain and further develop libsodium.
- [Become a Financial Contributor](https://opencollective.com/libsodium/contribute)
#### Individuals
<a href="https://opencollective.com/libsodium">
<img src="https://opencollective.com/libsodium/individuals.svg?width=890" alt="Individual Contributors">
</a>
#### Organizations
Support libsodium with your organization and gain visibility through your logo and website link.
- [Support with Your Organization](https://opencollective.com/libsodium/contribute)
<a href="https://opencollective.com/libsodium/organization/0/website">
<img src="https://opencollective.com/libsodium/organization/0/avatar.svg" alt="Organization Contributor">
</a>
---
## License
This project is distributed under the [ISC license](https://en.wikipedia.org/wiki/ISC_license).
================================================
FILE: THANKS
================================================
Special thanks to people, companies and organizations having written
libsodium bindings for their favorite programming languages:
@ada23
@alethia7
@artemisc
@buu700
@carblue
@Chewhern
@didactic-drunk
@dnaq
@ektrah
@freevryheid
@graxrabble
@gryor
@harleqin
@Jack-Edwards
@joshjdevl
@jprjr
@jrmarino
@jshahbazi
@k0001
@lvh
@muquit
@neheb
@rj-calvin
@tom25519
Adam Caudill (@adamcaudill)
Alexander Ilin (@AlexIljin)
Alexander Morris (@alexpmorris)
Amit Murthy (@amitmurthy)
Andrew Bennett (@potatosalad)
Andrew Lambert (@charonn0)
Brad Barden (@IAMB)
Bruce Mitchener (@waywardmonkeys)
Bruno Oliveira (@abstractj)
Caolan McMahon (@caolan)
Chris Rebert (@cvrebert)
Christian Hermann (@bitbeans)
Christian Wiese (@morfoh)
Colm MacCárthaigh (@colmmacc)
David Parrish (@dmp1ce)
Donald Stufft (@dstufft)
Douglas Campos (@qmx)
Drew Crawford (@drewcrawford)
Emil Bay (@emilbayes)
Eric Dong (@quantum1423)
Eric Voskuil (@evoskuil)
Farid Hajji (@fhajji)
Felix Brandtner (@Skycoder42)
Frank Siebenlist (@franks42)
Gabriel Handford (@gabriel)
Geo Carncross (@geocar)
Gurpreet Paul (@gurpreet-)
Henrik Gassmann (BurningEnlightenment)
Jachym Holecek (@freza)
Jack Wink (@jackwink)
Jaco Malan (@JacoMalan1)
James Ruan (@jamesruan)
Jan de Muijnck-Hughes (@jfdm)
Jason McCampbell (@jasonmccampbell)
Jeroen Habraken (@VeXocide)
Jeroen Ooms (@jeroen)
Jesper Louis Andersen (@jlouis)
Joe Eli McIlvain (@jemc)
Jonathan Stowe (@jonathanstowe)
Joseph Abrahamson (@tel)
Julien Kauffmann (@ereOn)
Kenneth Ballenegger (@kballenegger)
Loic Maury (@loicmaury)
Mathias Lang (@Geod24)
Michael Gorlick (@mgorlick)
Michael Gregorowicz (@mgregoro)
Michał Zieliński (@zielmicha)
Omar Ayub (@electricFeel)
Paul Kehrer (@reaperhulk)
Pedro Paixao (@paixaop)
Pierre Yager (@zedalaye)
Project ArteMisc (@artemisc)
Rich FitzJohn (@richfitz)
Ruben De Visscher (@rubendv)
Rudolf Von Krugstein (@rudolfvonkrugstein)
Samuel Lucas (@samuel-lucas6)
Samuel Neves (@sneves)
Scott Arciszewski (@paragonie-scott)
Soatok Dreamseeker (@soatok)
Stanislav Ovsiannikov (@naphaso)
Stefan Marsiske (@stef)
Stephan Touset (@stouset)
Stephen Chavez (@redragonx)
Steve Gibson (@sggrc)
Thomas S Hatch (@thatch45)
Tony Arcieri (@bascule)
Tony Garnock-Jones (@tonyg)
Ugljesa Jovanovic (@ionspin)
Y. T. Chung (@zonyitoo)
BetterCallSodium
BundleFeed
Bytecurry Software
Cryptotronix
Facebook
FSF France
Haskell Cryptography Group
Holochain
Holepunch
MaidSafe
Object Guild
Paragonie Initiative Enterprises
Python Cryptographic Authority
r-lib
rOpenSci
RubyCrypto
SaltStack
Serokell
Space Wizards
Terl
Vlang
(this list may not be complete, if you don't see your name, please
submit a pull request!)
Also thanks to:
- Coverity, Inc. to provide static analysis.
- FSF France for providing access to their compilation servers.
- Private Internet Access for having sponsored a complete security audit.
================================================
FILE: appveyor.yml
================================================
version: 1.0.23.{build}
os: Visual Studio 2022
environment:
matrix:
- platform: Win32
configuration: Debug
- platform: Win32
configuration: Release
- platform: x64
configuration: Debug
- platform: x64
configuration: Release
matrix:
fast_finish: false
init: msbuild /version
build:
parallel: true
project: ci/appveyor/libsodium.vcxproj
verbosity: normal
================================================
FILE: autogen.sh
================================================
#! /bin/sh
args=$(getopt bfos "$@")
if [ $? -ne 0 ]; then
echo "Usage: autogen.sh [-b] [-f] [-o] [-s] [--]"
echo
echo "> -b: do not update the system detection scripts"
echo "> -f: force the recreation of all autoconf scripts"
echo "> -o: overwrite/downgrade system detection scripts"
echo "> -s: setup an environment for developers"
exit 2
fi
force=false
update_config=true
overwrite_config=false
dev_setup=false
eval set -- "$args"
while [ $# -ne 0 ]; do
case $1 in
-b)
update_config=false
;;
-f)
force=true
;;
-o)
overwrite_config=true
;;
-s)
dev_setup=true
;;
--)
shift
break
;;
esac
shift
done
if [ -s configure ]; then
if [ "$force" != true ]; then
echo "autoconf scripts already exist." >&2
exit 0
fi
elif [ "$dev_setup" != true ]; then
echo "If you are looking to install a stable version of libsodium,"
echo "please do not run arbitrary, undocumented commands."
echo
echo "Installation instructions are available at https://libsodium.org"
exit 0
fi
if glibtoolize --version >/dev/null 2>&1; then
LIBTOOLIZE='glibtoolize'
else
LIBTOOLIZE='libtoolize'
fi
command -v command >/dev/null 2>&1 || {
echo "command is required, but wasn't found on this system"
exit 1
}
command -v $LIBTOOLIZE >/dev/null 2>&1 || {
echo "libtool is required, but wasn't found on this system"
exit 1
}
command -v autoconf >/dev/null 2>&1 || {
echo "autoconf is required, but wasn't found on this system"
exit 1
}
command -v automake >/dev/null 2>&1 || {
echo "automake is required, but wasn't found on this system"
exit 1
}
if [ "$overwrite_config" = false ]; then
if [ -f build-aux/config.guess ]; then
mv build-aux/config.guess build-aux/config.guess.stable
fi
if [ -f build-aux/config.sub ]; then
mv build-aux/config.sub build-aux/config.sub.stable
fi
else
rm -fr build-aux
fi
$LIBTOOLIZE --copy --install &&
aclocal &&
automake --add-missing --copy --force-missing --include-deps &&
autoconf && echo Done.
if [ "$overwrite_config" = false ]; then
if [ -f build-aux/config.guess.stable ]; then
mv build-aux/config.guess.stable build-aux/config.guess
fi
if [ -f build-aux/config.sub.stable ]; then
mv build-aux/config.sub.stable build-aux/config.sub
fi
fi
[ "$update_config" = true ] &&
command -v curl >/dev/null 2>&1 && {
echo "Downloading config.guess and config.sub..."
curl -sSL --fail -o config.guess \
'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' &&
chmod +x config.guess &&
chmod +x build-aux/config.guess
curl -sSL --fail -o config.sub \
'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD' &&
chmod +x build-aux/config.sub &&
mv -f config.sub build-aux/config.sub
echo "Done."
}
rm -f config.guess config.sub
================================================
FILE: azure-pipelines.yml
================================================
trigger:
- stable
- next
pr: none
jobs:
- job: "windows"
pool:
vmImage: "windows-latest"
steps:
- powershell: |
cd builds\msvc\build
& .\buildbase.bat ..\vs2026\libsodium.sln 18
displayName: Compile it all
- powershell: |
mkdir bin\include\sodium
Copy-Item "src\libsodium\include\sodium\*.h" -Destination "bin\include\sodium" -Recurse
Copy-Item "src\libsodium\include\*.h" -Destination "bin\include\"
displayName: Copy header files
- task: PublishBuildArtifacts@1
condition: not(canceled())
inputs:
pathToPublish: bin
artifactName: libsodium
- job: "windows_2022"
pool:
vmImage: "windows-2022"
steps:
- powershell: |
cd builds\msvc\build
& .\buildbase.bat ..\vs2022\libsodium.sln 17
displayName: Compile it all
- powershell: |
mkdir bin\include\sodium
Copy-Item "src\libsodium\include\sodium\*.h" -Destination "bin\include\sodium" -Recurse
Copy-Item "src\libsodium\include\*.h" -Destination "bin\include\"
displayName: Copy header files
- task: PublishBuildArtifacts@1
condition: not(canceled())
inputs:
pathToPublish: bin
artifactName: libsodium
- job: "windows_2019"
pool:
vmImage: "windows-2022"
steps:
- powershell: |
choco install visualstudio2019buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --quiet --wait" -y
displayName: Install VS2019 Build Tools
- powershell: |
cd builds\msvc\build
& .\buildbase.bat ..\vs2019\libsodium.sln 16
displayName: Compile it all
- powershell: |
mkdir bin\include\sodium
Copy-Item "src\libsodium\include\sodium\*.h" -Destination "bin\include\sodium" -Recurse
Copy-Item "src\libsodium\include\*.h" -Destination "bin\include\"
displayName: Copy header files
- task: PublishBuildArtifacts@1
condition: not(canceled())
inputs:
pathToPublish: bin
artifactName: libsodium
- job: mingw64
pool:
vmImage: "windows-2022"
steps:
- powershell: |
(New-Object Net.WebClient).DownloadFile("https://github.com/msys2/msys2-installer/releases/download/2025-12-13/msys2-base-x86_64-20251213.sfx.exe", "sfx.exe")
.\sfx.exe -y -o\
del sfx.exe
displayName: Install MSYS2
- script: |
set PATH=%CD:~0,2%\msys64\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
%CD:~0,2%\msys64\usr\bin\bash -lc
%CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm -Sydd filesystem"
%CD:~0,2%\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'
%CD:~0,2%\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'
displayName: Update MSYS2
- script: |
set PATH=%CD:~0,2%\msys64\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
%CD:~0,2%\msys64\usr\bin\pacman --noconfirm --needed -S base-devel mingw-w64-x86_64-toolchain
%CD:~0,2%\msys64\usr\bin\pacman --noconfirm -Scc
%CD:~0,2%\msys64\usr\bin\sed -i "s|#CacheDir.*|CacheDir=/c/Users/%USERNAME%/AppData/Local/Temp|g" /etc/pacman.conf
displayName: Install Toolchain
- script: |
set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;%CD:~0,2%\msys64\usr\bin;%CD:~0,2%\msys64\bin
set MSYS2_ROOT=%CD:~0,2%\msys64
set MSYSTEM=MINGW64
set CHERE_INVOKING=yes
%MSYS2_ROOT%\cmd\msystem MINGW64
%CD:~0,2%\msys64\usr\bin\bash -lc dist-build/msys2-win64.sh
env:
CHERE_INVOKING: yes
MSYS2_ARCH: x86_64
displayName: Compile libsodium
- task: PublishBuildArtifacts@1
condition: not(canceled())
inputs:
pathToPublish: libsodium-win64
artifactName: libsodium-win64
- job: mingw32
pool:
vmImage: "windows-2022"
steps:
- powershell: |
(New-Object Net.WebClient).DownloadFile("https://github.com/msys2/msys2-installer/releases/download/2025-12-13/msys2-base-x86_64-20251213.sfx.exe", "sfx.exe")
.\sfx.exe -y -o\
del sfx.exe
displayName: Install MSYS2
- script: |
set PATH=%CD:~0,2%\msys64\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
%CD:~0,2%\msys64\usr\bin\bash -lc
%CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm -Sydd filesystem"
%CD:~0,2%\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'
%CD:~0,2%\msys64\usr\bin\bash -lc 'pacman --noconfirm -Syuu'
displayName: Update MSYS2
- script: |
set PATH=%CD:~0,2%\msys64\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
%CD:~0,2%\msys64\usr\bin\pacman --noconfirm --needed -S base-devel mingw-w64-i686-toolchain
%CD:~0,2%\msys64\usr\bin\pacman --noconfirm -Scc
%CD:~0,2%\msys64\usr\bin\sed -i "s|#CacheDir.*|CacheDir=/c/Users/%USERNAME%/AppData/Local/Temp|g" /etc/pacman.conf
displayName: Install Toolchain
- script: |
set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;%CD:~0,2%\msys64\usr\bin;%CD:~0,2%\msys64\bin
set MSYS2_ROOT=%CD:~0,2%\msys64
set MSYSTEM=MINGW32
set CHERE_INVOKING=yes
%MSYS2_ROOT%\cmd\msystem MINGW32
%CD:~0,2%\msys64\usr\bin\bash -lc dist-build/msys2-win32.sh
env:
CHERE_INVOKING: yes
MSYS2_ARCH: x86_64
displayName: Compile libsodium
- task: PublishBuildArtifacts@1
condition: not(canceled())
inputs:
pathToPublish: libsodium-win32
artifactName: libsodium-win32
================================================
FILE: build.zig
================================================
const std = @import("std");
const fmt = std.fmt;
const heap = std.heap;
const mem = std.mem;
const Compile = std.Build.Step.Compile;
const Target = std.Target;
// Zig 0.16+ uses std.Io.Dir, 0.15 uses std.fs
const is_zig_16 = @hasDecl(std, "Io") and @hasDecl(std.Io, "Dir");
const Dir = if (is_zig_16) std.Io.Dir else std.fs.Dir;
const Io = if (is_zig_16) std.Io else void;
fn initLibConfig(b: *std.Build, target: std.Build.ResolvedTarget, lib: *Compile) void {
lib.root_module.link_libc = true;
lib.lto = null;
lib.root_module.addIncludePath(b.path("src/libsodium/include/sodium"));
lib.root_module.addCMacro("_GNU_SOURCE", "1");
lib.root_module.addCMacro("CONFIGURED", "1");
lib.root_module.addCMacro("DEV_MODE", "1");
lib.root_module.addCMacro("HAVE_ATOMIC_OPS", "1");
lib.root_module.addCMacro("HAVE_C11_MEMORY_FENCES", "1");
lib.root_module.addCMacro("HAVE_CET_H", "1");
lib.root_module.addCMacro("HAVE_GCC_MEMORY_FENCES", "1");
lib.root_module.addCMacro("HAVE_INLINE_ASM", "1");
lib.root_module.addCMacro("HAVE_INTTYPES_H", "1");
lib.root_module.addCMacro("HAVE_STDINT_H", "1");
lib.root_module.addCMacro("HAVE_TI_MODE", "1");
const endian = target.result.cpu.arch.endian();
switch (endian) {
.big => lib.root_module.addCMacro("NATIVE_BIG_ENDIAN", "1"),
.little => lib.root_module.addCMacro("NATIVE_LITTLE_ENDIAN", "1"),
}
switch (target.result.os.tag) {
.linux => {
lib.root_module.addCMacro("ASM_HIDE_SYMBOL", ".hidden");
lib.root_module.addCMacro("TLS", "_Thread_local");
lib.root_module.addCMacro("HAVE_CATCHABLE_ABRT", "1");
lib.root_module.addCMacro("HAVE_CATCHABLE_SEGV", "1");
lib.root_module.addCMacro("HAVE_CLOCK_GETTIME", "1");
lib.root_module.addCMacro("HAVE_GETPID", "1");
lib.root_module.addCMacro("HAVE_MADVISE", "1");
lib.root_module.addCMacro("HAVE_MLOCK", "1");
lib.root_module.addCMacro("HAVE_MMAP", "1");
lib.root_module.addCMacro("HAVE_MPROTECT", "1");
lib.root_module.addCMacro("HAVE_NANOSLEEP", "1");
lib.root_module.addCMacro("HAVE_POSIX_MEMALIGN", "1");
lib.root_module.addCMacro("HAVE_PTHREAD_PRIO_INHERIT", "1");
lib.root_module.addCMacro("HAVE_PTHREAD", "1");
lib.root_module.addCMacro("HAVE_RAISE", "1");
lib.root_module.addCMacro("HAVE_SYSCONF", "1");
lib.root_module.addCMacro("HAVE_SYS_AUXV_H", "1");
lib.root_module.addCMacro("HAVE_SYS_MMAN_H", "1");
lib.root_module.addCMacro("HAVE_SYS_PARAM_H", "1");
lib.root_module.addCMacro("HAVE_SYS_RANDOM_H", "1");
lib.root_module.addCMacro("HAVE_WEAK_SYMBOLS", "1");
},
.windows => {
lib.root_module.addCMacro("HAVE_RAISE", "1");
lib.root_module.addCMacro("HAVE_SYS_PARAM_H", "1");
if (lib.isStaticLibrary()) {
lib.root_module.addCMacro("SODIUM_STATIC", "1");
}
},
.macos => {
lib.root_module.addCMacro("ASM_HIDE_SYMBOL", ".private_extern");
lib.root_module.addCMacro("TLS", "_Thread_local");
lib.root_module.addCMacro("HAVE_ARC4RANDOM", "1");
lib.root_module.addCMacro("HAVE_ARC4RANDOM_BUF", "1");
lib.root_module.addCMacro("HAVE_CATCHABLE_ABRT", "1");
lib.root_module.addCMacro("HAVE_CATCHABLE_SEGV", "1");
lib.root_module.addCMacro("HAVE_CLOCK_GETTIME", "1");
lib.root_module.addCMacro("HAVE_GETENTROPY", "1");
lib.root_module.addCMacro("HAVE_GETPID", "1");
lib.root_module.addCMacro("HAVE_MADVISE", "1");
lib.root_module.addCMacro("HAVE_MEMSET_S", "1");
lib.root_module.addCMacro("HAVE_MLOCK", "1");
lib.root_module.addCMacro("HAVE_MMAP", "1");
lib.root_module.addCMacro("HAVE_MPROTECT", "1");
lib.root_module.addCMacro("HAVE_NANOSLEEP", "1");
lib.root_module.addCMacro("HAVE_POSIX_MEMALIGN", "1");
lib.root_module.addCMacro("HAVE_PTHREAD", "1");
lib.root_module.addCMacro("HAVE_PTHREAD_PRIO_INHERIT", "1");
lib.root_module.addCMacro("HAVE_RAISE", "1");
lib.root_module.addCMacro("HAVE_SYSCONF", "1");
lib.root_module.addCMacro("HAVE_SYS_MMAN_H", "1");
lib.root_module.addCMacro("HAVE_SYS_PARAM_H", "1");
lib.root_module.addCMacro("HAVE_SYS_RANDOM_H", "1");
lib.root_module.addCMacro("HAVE_WEAK_SYMBOLS", "1");
},
.wasi => {
lib.root_module.addCMacro("HAVE_ARC4RANDOM", "1");
lib.root_module.addCMacro("HAVE_ARC4RANDOM_BUF", "1");
lib.root_module.addCMacro("HAVE_CLOCK_GETTIME", "1");
lib.root_module.addCMacro("HAVE_GETENTROPY", "1");
lib.root_module.addCMacro("HAVE_NANOSLEEP", "1");
lib.root_module.addCMacro("HAVE_POSIX_MEMALIGN", "1");
lib.root_module.addCMacro("HAVE_SYS_AUXV_H", "1");
lib.root_module.addCMacro("HAVE_SYS_PARAM_H", "1");
lib.root_module.addCMacro("HAVE_SYS_RANDOM_H", "1");
},
.freebsd => {
lib.root_module.addCMacro("ASM_HIDE_SYMBOL", ".hidden");
lib.root_module.addCMacro("TLS", "_Thread_local");
lib.root_module.addCMacro("HAVE_ARC4RANDOM", "1");
lib.root_module.addCMacro("HAVE_ARC4RANDOM_BUF", "1");
lib.root_module.addCMacro("HAVE_CATCHABLE_ABRT", "1");
lib.root_module.addCMacro("HAVE_CATCHABLE_SEGV", "1");
lib.root_module.addCMacro("HAVE_CLOCK_GETTIME", "1");
lib.root_module.addCMacro("HAVE_GETPID", "1");
lib.root_module.addCMacro("HAVE_MADVISE", "1");
lib.root_module.addCMacro("HAVE_MLOCK", "1");
lib.root_module.addCMacro("HAVE_MMAP", "1");
lib.root_module.addCMacro("HAVE_MPROTECT", "1");
lib.root_module.addCMacro("HAVE_NANOSLEEP", "1");
lib.root_module.addCMacro("HAVE_POSIX_MEMALIGN", "1");
lib.root_module.addCMacro("HAVE_PTHREAD_PRIO_INHERIT", "1");
lib.root_module.addCMacro("HAVE_PTHREAD", "1");
lib.root_module.addCMacro("HAVE_RAISE", "1");
lib.root_module.addCMacro("HAVE_SYSCONF", "1");
lib.root_module.addCMacro("HAVE_SYS_MMAN_H", "1");
lib.root_module.addCMacro("HAVE_SYS_PARAM_H", "1");
lib.root_module.addCMacro("HAVE_SYS_RANDOM_H", "1");
lib.root_module.addCMacro("HAVE_WEAK_SYMBOLS", "1");
},
else => {},
}
switch (target.result.cpu.arch) {
.x86_64 => {
switch (target.result.os.tag) {
.windows => {},
else => {
lib.root_module.addCMacro("HAVE_AMD64_ASM", "1");
lib.root_module.addCMacro("HAVE_AVX_ASM", "1");
},
}
lib.root_module.addCMacro("HAVE_CPUID", "1");
lib.root_module.addCMacro("HAVE_MMINTRIN_H", "1");
lib.root_module.addCMacro("HAVE_EMMINTRIN_H", "1");
lib.root_module.addCMacro("HAVE_PMMINTRIN_H", "1");
lib.root_module.addCMacro("HAVE_TMMINTRIN_H", "1");
lib.root_module.addCMacro("HAVE_SMMINTRIN_H", "1");
lib.root_module.addCMacro("HAVE_AVXINTRIN_H", "1");
lib.root_module.addCMacro("HAVE_AVX2INTRIN_H", "1");
lib.root_module.addCMacro("HAVE_AVX512FINTRIN_H", "1");
lib.root_module.addCMacro("HAVE_WMMINTRIN_H", "1");
lib.root_module.addCMacro("HAVE_RDRAND", "1");
},
.aarch64, .aarch64_be => {
lib.root_module.addCMacro("HAVE_ARMCRYPTO", "1");
},
.wasm32, .wasm64 => {
lib.root_module.addCMacro("__wasm__", "1");
},
else => {},
}
switch (target.result.os.tag) {
.wasi => {
lib.root_module.addCMacro("__wasi__", "1");
},
else => {},
}
}
pub fn build(b: *std.Build) !void {
const io: Io = if (is_zig_16) b.graph.io else {};
const root_path = b.pathFromRoot(".");
const cwd = try if (is_zig_16) Dir.cwd().openDir(io, root_path, .{}) else std.fs.cwd().openDir(root_path, .{});
const src_path = "src/libsodium";
const src_dir = if (is_zig_16)
try cwd.openDir(io, src_path, .{ .iterate = true })
else if (@hasField(Dir.OpenOptions, "follow_symlinks"))
try cwd.openDir(src_path, .{ .iterate = true, .follow_symlinks = false })
else
try cwd.openDir(src_path, .{ .iterate = true, .no_follow = true });
var target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const enable_benchmarks = b.option(bool, "enable_benchmarks", "Whether tests should be benchmarks.") orelse false;
const benchmarks_iterations = b.option(u32, "iterations", "Number of iterations for benchmarks.") orelse 200;
var build_static = b.option(bool, "static", "Build libsodium as a static library.") orelse true;
var build_shared = b.option(bool, "shared", "Build libsodium as a shared library.") orelse true;
const build_tests = b.option(bool, "test", "Build the tests (implies -Dstatic=true)") orelse true;
if (target.result.cpu.arch.isWasm()) {
build_shared = false;
}
if (build_tests) {
build_static = true;
}
switch (target.result.cpu.arch) {
.aarch64, .aarch64_be => {
// ARM CPUs supported by Windows are assumed to have NEON support
if (target.result.isMinGW()) {
target.query.cpu_features_add.addFeature(@intFromEnum(Target.aarch64.Feature.neon));
}
},
else => {},
}
const static_lib = b.addLibrary(.{
.name = if (target.result.isMinGW()) "libsodium-static" else "sodium",
.linkage = .static,
.root_module = b.createModule(.{
.target = target,
.optimize = optimize,
}),
});
static_lib.pie = true;
const shared_lib = b.addLibrary(.{
.name = if (target.result.isMinGW()) "libsodium" else "sodium",
.linkage = .dynamic,
.root_module = b.createModule(.{
.target = target,
.optimize = optimize,
.strip = optimize != .Debug and !target.result.isMinGW(),
}),
});
// work out which libraries we are building
var libs: std.ArrayListUnmanaged(*Compile) = .empty;
defer libs.deinit(heap.page_allocator);
if (build_static) {
try libs.append(heap.page_allocator, static_lib);
}
if (build_shared) {
try libs.append(heap.page_allocator, shared_lib);
}
const prebuilt_version_file_path = "builds/msvc/version.h";
const version_file_path = "include/sodium/version.h";
if (is_zig_16) {
try Dir.copyFile(cwd, prebuilt_version_file_path, src_dir, version_file_path, io, .{});
} else {
try cwd.copyFile(prebuilt_version_file_path, src_dir, version_file_path, .{});
}
for (libs.items) |lib| {
b.installArtifact(lib);
lib.installHeader(b.path(src_path ++ "/include/sodium.h"), "sodium.h");
lib.installHeadersDirectory(b.path(src_path ++ "/include/sodium"), "sodium", .{});
initLibConfig(b, target, lib);
const flags = &.{
"-fvisibility=hidden",
"-fno-strict-aliasing",
"-fno-strict-overflow",
"-fwrapv",
"-flax-vector-conversions",
"-Werror=vla",
};
const allocator = heap.page_allocator;
var walker = try src_dir.walk(allocator);
while (if (is_zig_16) try walker.next(io) else try walker.next()) |entry| {
const name = entry.basename;
if (mem.endsWith(u8, name, ".c")) {
const full_path = try fmt.allocPrint(allocator, "{s}/{s}", .{ src_path, entry.path });
lib.root_module.addCSourceFiles(.{
.files = &.{full_path},
.flags = flags,
});
} else if (mem.endsWith(u8, name, ".S")) {
const full_path = try fmt.allocPrint(allocator, "{s}/{s}", .{ src_path, entry.path });
lib.root_module.addAssemblyFile(b.path(full_path));
}
}
}
const test_path = "test/default";
const out_bin_path = "zig-out/bin";
const test_dir = if (is_zig_16)
try cwd.openDir(io, test_path, .{ .iterate = true })
else if (@hasField(Dir.OpenOptions, "follow_symlinks"))
try cwd.openDir(test_path, .{ .iterate = true, .follow_symlinks = false })
else
try cwd.openDir(test_path, .{ .iterate = true, .no_follow = true });
if (is_zig_16) {
cwd.createDirPath(io, out_bin_path) catch {};
} else {
cwd.makePath(out_bin_path) catch {};
}
const out_bin_dir = if (is_zig_16)
try cwd.openDir(io, out_bin_path, .{})
else
try cwd.openDir(out_bin_path, .{});
if (is_zig_16) {
try Dir.copyFile(test_dir, "run.sh", out_bin_dir, "run.sh", io, .{});
} else {
try test_dir.copyFile("run.sh", out_bin_dir, "run.sh", .{});
}
const allocator = heap.page_allocator;
var walker = try test_dir.walk(allocator);
const test_step = b.step("test", "Run all libsodium tests");
if (build_tests) {
while (if (is_zig_16) try walker.next(io) else try walker.next()) |entry| {
const name = entry.basename;
if (mem.endsWith(u8, name, ".exp")) {
if (is_zig_16) {
try Dir.copyFile(test_dir, name, out_bin_dir, name, io, .{});
} else {
try test_dir.copyFile(name, out_bin_dir, name, .{});
}
continue;
}
if (!mem.endsWith(u8, name, ".c")) {
continue;
}
const exe_name = name[0 .. name.len - 2];
var exe = b.addExecutable(.{
.name = exe_name,
.root_module = b.createModule(.{
.target = target,
.optimize = optimize,
.strip = true,
.link_libc = true,
}),
});
exe.root_module.linkLibrary(static_lib);
exe.root_module.addIncludePath(b.path("src/libsodium/include"));
exe.root_module.addIncludePath(b.path("test/quirks"));
const full_path = try fmt.allocPrint(allocator, "{s}/{s}", .{ test_path, entry.path });
exe.root_module.addCSourceFiles(.{ .files = &.{full_path} });
if (enable_benchmarks) {
exe.root_module.addCMacro("BENCHMARKS", "1");
var buf: [16]u8 = undefined;
const n = std.fmt.bufPrint(&buf, "{d}", .{benchmarks_iterations}) catch unreachable;
exe.root_module.addCMacro("ITERATIONS", n);
}
b.installArtifact(exe);
// Add a run step for this test
const run_test = b.addRunArtifact(exe);
run_test.setCwd(b.path(test_path));
test_step.dependOn(&run_test.step);
}
}
}
================================================
FILE: builds/.gitignore
================================================
*.opensdf
*.suo
*.sdf
*.vcxproj.user
*.aps
*.log
!build
================================================
FILE: builds/Makefile.am
================================================
EXTRA_DIST = \
msvc/build/buildall.bat \
msvc/build/buildbase.bat \
msvc/properties/ARM64.props \
msvc/properties/Common.props \
msvc/properties/Debug.props \
msvc/properties/DebugDEXE.props \
msvc/properties/DebugDLL.props \
msvc/properties/DebugLEXE.props \
msvc/properties/DebugLIB.props \
msvc/properties/DebugLTCG.props \
msvc/properties/DebugSEXE.props \
msvc/properties/DLL.props \
msvc/properties/EXE.props \
msvc/properties/LIB.props \
msvc/properties/Link.props \
msvc/properties/LTCG.props \
msvc/properties/Messages.props \
msvc/properties/Output.props \
msvc/properties/Release.props \
msvc/properties/ReleaseDEXE.props \
msvc/properties/ReleaseDLL.props \
msvc/properties/ReleaseLEXE.props \
msvc/properties/ReleaseLIB.props \
msvc/properties/ReleaseLTCG.props \
msvc/properties/ReleaseSEXE.props \
msvc/properties/ARM64.props \
msvc/properties/Win32.props \
msvc/properties/x64.props \
msvc/resource.h \
msvc/resource.rc \
msvc/version.h \
msvc/vs2010/libsodium/libsodium.props \
msvc/vs2010/libsodium/libsodium.vcxproj \
msvc/vs2010/libsodium/libsodium.vcxproj.filters \
msvc/vs2010/libsodium/libsodium.xml \
msvc/vs2010/libsodium.import.props \
msvc/vs2010/libsodium.import.xml \
msvc/vs2010/libsodium.sln \
msvc/vs2012/libsodium/libsodium.props \
msvc/vs2012/libsodium/libsodium.vcxproj \
msvc/vs2012/libsodium/libsodium.vcxproj.filters \
msvc/vs2012/libsodium/libsodium.xml \
msvc/vs2012/libsodium.import.props \
msvc/vs2012/libsodium.import.xml \
msvc/vs2012/libsodium.sln \
msvc/vs2013/libsodium/libsodium.props \
msvc/vs2013/libsodium/libsodium.vcxproj \
msvc/vs2013/libsodium/libsodium.vcxproj.filters \
msvc/vs2013/libsodium/libsodium.xml \
msvc/vs2013/libsodium.import.props \
msvc/vs2013/libsodium.import.xml \
msvc/vs2013/libsodium.sln \
msvc/vs2015/libsodium/libsodium.props \
msvc/vs2015/libsodium/libsodium.vcxproj \
msvc/vs2015/libsodium/libsodium.vcxproj.filters \
msvc/vs2015/libsodium/libsodium.xml \
msvc/vs2015/libsodium.import.props \
msvc/vs2015/libsodium.import.xml \
msvc/vs2015/libsodium.sln \
msvc/vs2017/libsodium/libsodium.props \
msvc/vs2017/libsodium/libsodium.vcxproj \
msvc/vs2017/libsodium/libsodium.vcxproj.filters \
msvc/vs2017/libsodium/libsodium.xml \
msvc/vs2017/libsodium.import.props \
msvc/vs2017/libsodium.import.xml \
msvc/vs2017/libsodium.sln \
msvc/vs2019/libsodium/libsodium.props \
msvc/vs2019/libsodium/libsodium.vcxproj \
msvc/vs2019/libsodium/libsodium.vcxproj.filters \
msvc/vs2019/libsodium/libsodium.xml \
msvc/vs2019/libsodium.import.props \
msvc/vs2019/libsodium.import.xml \
msvc/vs2019/libsodium.sln \
msvc/vs2022/libsodium/libsodium.props \
msvc/vs2022/libsodium/libsodium.vcxproj \
msvc/vs2022/libsodium/libsodium.vcxproj.filters \
msvc/vs2022/libsodium/libsodium.xml \
msvc/vs2022/libsodium.import.props \
msvc/vs2022/libsodium.import.xml \
msvc/vs2022/libsodium.sln \
msvc/vs2026/libsodium/libsodium.props \
msvc/vs2026/libsodium/libsodium.vcxproj \
msvc/vs2026/libsodium/libsodium.vcxproj.filters \
msvc/vs2026/libsodium/libsodium.xml \
msvc/vs2026/libsodium.import.props \
msvc/vs2026/libsodium.import.xml \
msvc/vs2026/libsodium.sln
================================================
FILE: builds/msvc/build/buildall.bat
================================================
@ECHO OFF
CALL buildbase.bat ..\vs2026\libsodium.sln 18
ECHO.
CALL buildbase.bat ..\vs2022\libsodium.sln 17
ECHO.
CALL buildbase.bat ..\vs2019\libsodium.sln 16
ECHO.
CALL buildbase.bat ..\vs2017\libsodium.sln 15
ECHO.
CALL buildbase.bat ..\vs2015\libsodium.sln 14
ECHO.
CALL buildbase.bat ..\vs2013\libsodium.sln 12
ECHO.
CALL buildbase.bat ..\vs2012\libsodium.sln 11
ECHO.
CALL buildbase.bat ..\vs2010\libsodium.sln 10
ECHO.
PAUSE
================================================
FILE: builds/msvc/build/buildbase.bat
================================================
@ECHO OFF
REM Usage: [buildbase.bat ..\vs2026\mysolution.sln 18]
SETLOCAL enabledelayedexpansion
SET solution=%1
SET version=%2
SET log=build_%version%.log
SET tools=Microsoft Visual Studio %version%.0\VC\vcvarsall.bat
IF %version% == 18 (
SET tools=Microsoft Visual Studio\2026\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
SET environment="%programfiles%\!tools!"
IF NOT EXIST !environment! (
SET environment="%programfiles(x86)%\!tools!"
IF NOT EXIST !environment! (
SET tools=Microsoft Visual Studio\2026\Community\VC\Auxiliary\Build\vcvarsall.bat
)
)
)
IF %version% == 17 (
SET tools=Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
SET environment="%programfiles%\!tools!"
IF NOT EXIST !environment! (
SET environment="%programfiles(x86)%\!tools!"
IF NOT EXIST !environment! (
SET tools=Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat
)
)
)
IF %version% == 16 (
SET tools=Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
SET environment="%programfiles%\!tools!"
IF NOT EXIST !environment! (
SET environment="%programfiles(x86)%\!tools!"
IF NOT EXIST !environment! (
SET tools=Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat
)
)
)
IF %version% == 15 (
SET tools=Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
SET environment="%programfiles%\!tools!"
IF NOT EXIST !environment! (
SET environment="%programfiles(x86)%\!tools!"
IF NOT EXIST !environment! (
SET tools=Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat
)
)
)
SET environment="%programfiles%\!tools!"
IF NOT EXIST !environment! SET environment="%programfiles(x86)%\!tools!"
ECHO Environment: !environment!
IF NOT EXIST !environment! GOTO no_tools
ECHO Building: %solution%
CALL !environment! x86 > nul 2>&1
ECHO Platform=x86
ECHO Configuration=DynDebug
msbuild /m /v:n /p:Configuration=DynDebug /p:Platform=Win32 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=DynRelease
msbuild /m /v:n /p:Configuration=DynRelease /p:Platform=Win32 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=LtcgDebug
msbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=Win32 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=LtcgRelease
msbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=Win32 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=StaticDebug
msbuild /m /v:n /p:Configuration=StaticDebug /p:Platform=Win32 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=StaticRelease
msbuild /m /v:n /p:Configuration=StaticRelease /p:Platform=Win32 %solution% >> %log%
IF errorlevel 1 GOTO error
ENDLOCAL & SET solution=%solution% & SET version=%version% & SET log=%log% & SET tools=%tools% & SET environment=%environment%
SETLOCAL enabledelayedexpansion
CALL !environment! x86_amd64 > nul 2>&1
ECHO Platform=x64
ECHO Configuration=DynDebug
msbuild /m /v:n /p:Configuration=DynDebug /p:Platform=x64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=DynRelease
msbuild /m /v:n /p:Configuration=DynRelease /p:Platform=x64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=LtcgDebug
msbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=x64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=LtcgRelease
msbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=x64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=StaticDebug
msbuild /m /v:n /p:Configuration=StaticDebug /p:Platform=x64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=StaticRelease
msbuild /m /v:n /p:Configuration=StaticRelease /p:Platform=x64 %solution% >> %log%
IF errorlevel 1 GOTO error
@REM Build ARM64 packages only for Visual studio 2019 and later
IF %version% GEQ 16 (
ENDLOCAL & SET solution=%solution% & SET version=%version% & SET log=%log% & SET tools=%tools% & SET environment=%environment%
SETLOCAL enabledelayedexpansion
CALL !environment! ARM64 > nul 2>&1
ECHO Platform=ARM64
ECHO Configuration=DynDebug
msbuild /m /v:n /p:Configuration=DynDebug /p:Platform=ARM64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=DynRelease
msbuild /m /v:n /p:Configuration=DynRelease /p:Platform=ARM64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=LtcgDebug
msbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=ARM64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=LtcgRelease
msbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=ARM64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=StaticDebug
msbuild /m /v:n /p:Configuration=StaticDebug /p:Platform=ARM64 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=StaticRelease
msbuild /m /v:n /p:Configuration=StaticRelease /p:Platform=ARM64 %solution% >> %log%
IF errorlevel 1 GOTO error
)
ECHO Complete: %solution%
GOTO end
:error
ECHO *** ERROR, build terminated early, see: %log%
ECHO.
ECHO === Last errors from %log% ===
findstr /i /c:"error " /c:"error:" /c:"fatal error" %log%
ECHO.
GOTO end
:no_tools
ECHO *** ERROR, build tools not found: !tools!
:end
================================================
FILE: builds/msvc/properties/ARM64.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>ARM64 Settings</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WIN32;WIN64;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>ARM64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<TargetMachine>MachineARM64</TargetMachine>
</Link>
<Lib>
<AdditionalOptions>/MACHINE:ARM64 %(AdditionalOptions)</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/Common.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Common Settings</_PropertySheetDisplayName>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(Platform).props" />
</ImportGroup>
<PropertyGroup>
<!-- VS 2026 toolsets may not define PlatformToolsetVersion. Derive it from PlatformToolset when needed. -->
<_SodiumToolsetVersion Condition="'$(PlatformToolsetVersion)' != ''">$(PlatformToolsetVersion)</_SodiumToolsetVersion>
<_SodiumToolsetVersion Condition="'$(PlatformToolsetVersion)' == '' and $(PlatformToolset.StartsWith('v'))">$(PlatformToolset.Substring(1))</_SodiumToolsetVersion>
<_SodiumToolsetVersion Condition="'$(_SodiumToolsetVersion)' == ''">0</_SodiumToolsetVersion>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(_SodiumToolsetVersion) >= 143">
<ClCompile>
<AdditionalOptions>/UndefIntOverflow- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/DLL.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Dynamic Library</_PropertySheetDisplayName>
<DefaultLinkage>dynamic</DefaultLinkage>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>_DLL;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/Debug.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="Common.props" />
</ImportGroup>
<PropertyGroup>
<_PropertySheetDisplayName>Debug Settings</_PropertySheetDisplayName>
<DebugOrRelease>Debug</DebugOrRelease>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<FunctionLevelLinking>true</FunctionLevelLinking>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/DebugDEXE.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Console Debug Dynamic</_PropertySheetDisplayName>
<DefaultLinkage>dynamic</DefaultLinkage>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Debug.props" />
<Import Project="EXE.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<LinkIncremental>true</LinkIncremental>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/DebugDLL.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Dynamic Debug Library</_PropertySheetDisplayName>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Debug.props" />
<Import Project="DLL.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<LinkIncremental>true</LinkIncremental>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/DebugLEXE.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Console Debug Link Time Code Generation</_PropertySheetDisplayName>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Debug.props" />
<Import Project="Link.props" />
<Import Project="EXE.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/DebugLIB.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Static Debug Library</_PropertySheetDisplayName>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Debug.props" />
<Import Project="LIB.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<LinkIncremental>true</LinkIncremental>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/DebugLTCG.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Static Debug Link Time Code Generation Library</_PropertySheetDisplayName>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Debug.props" />
<Import Project="LTCG.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/DebugSEXE.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Console Debug Static</_PropertySheetDisplayName>
<DefaultLinkage>static</DefaultLinkage>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Debug.props" />
<Import Project="EXE.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<LinkIncremental>true</LinkIncremental>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/EXE.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Console Application</_PropertySheetDisplayName>
<IsExe>true</IsExe>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/LIB.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Static Library</_PropertySheetDisplayName>
<DefaultLinkage>static</DefaultLinkage>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/LTCG.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Link Time Code Generation Library</_PropertySheetDisplayName>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="LIB.props" />
<Import Project="Link.props" />
</ImportGroup>
</Project>
================================================
FILE: builds/msvc/properties/Link.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Link Time Code Generation Settings</_PropertySheetDisplayName>
<DefaultLinkage>ltcg</DefaultLinkage>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<WholeProgramOptimization>true</WholeProgramOptimization>
</ClCompile>
<Link>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
</Link>
<Lib>
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
</Lib>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/Messages.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Build Messages</_PropertySheetDisplayName>
</PropertyGroup>
<Target Name="ConfigInfo" BeforeTargets="PrepareForBuild">
<Message Text="ConfigurationType : $(ConfigurationType)" Importance="high"/>
<Message Text="Configuration : $(Configuration)" Importance="high"/>
<Message Text="PlatformToolset : $(PlatformToolset)" Importance="high"/>
<Message Text="TargetPath : $(TargetPath)" Importance="high"/>
</Target>
</Project>
================================================
FILE: builds/msvc/properties/Output.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Output Settings</_PropertySheetDisplayName>
<!-- BuildRoot, RepoRoot, SourceRoot, DebugOrRelease and DefaultLinkage are custom props and should therefore not be referenced from *.import.props or nuget target files. -->
<BuildRoot>$(ProjectDir)..\..\</BuildRoot>
<RepoRoot>$(ProjectDir)..\..\..\..\</RepoRoot>
<SourceRoot>$(ProjectDir)..\..\..\..\..\</SourceRoot>
<OutDir>$(ProjectDir)..\..\..\..\bin\$(PlatformName)\$(DebugOrRelease)\$(PlatformToolset)\$(DefaultLinkage)\</OutDir>
<IntDir>$(ProjectDir)..\..\..\..\obj\$(TargetName)\$(PlatformName)\$(DebugOrRelease)\$(PlatformToolset)\$(DefaultLinkage)\</IntDir>
<TargetDir>$(OutDir)</TargetDir>
<TargetName>$(TargetName)</TargetName>
<TargetPath>$(TargetDir)$(TargetName)$(TargetExt)</TargetPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
</Link>
<BuildLog>
<Path>$(OutDir)$(TargetName).log</Path>
</BuildLog>
</ItemDefinitionGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Messages.props" />
</ImportGroup>
</Project>
================================================
FILE: builds/msvc/properties/Release.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="Common.props" />
</ImportGroup>
<PropertyGroup>
<_PropertySheetDisplayName>Release Settings</_PropertySheetDisplayName>
<DebugOrRelease>Release</DebugOrRelease>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalOptions>/Oy- %(AdditionalOptions)</AdditionalOptions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<MinimalRebuild>false</MinimalRebuild>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<!--<GenerateDebugInformation>true</GenerateDebugInformation>-->
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Processor)' == 'x86'">
<ClCompile>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/ReleaseDEXE.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Console Release Dynamic</_PropertySheetDisplayName>
<DefaultLinkage>dynamic</DefaultLinkage>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Release.props" />
<Import Project="EXE.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/ReleaseDLL.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Dynamic Release Library</_PropertySheetDisplayName>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Release.props" />
<Import Project="DLL.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/ReleaseLEXE.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Console Release Link Time Code Generation</_PropertySheetDisplayName>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Release.props" />
<Import Project="Link.props" />
<Import Project="EXE.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/ReleaseLIB.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Static Release Library</_PropertySheetDisplayName>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Release.props" />
<Import Project="LIB.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/ReleaseLTCG.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Static Release Link Time Code Generation Library</_PropertySheetDisplayName>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Release.props" />
<Import Project="LTCG.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/ReleaseSEXE.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>Console Release Static</_PropertySheetDisplayName>
<DefaultLinkage>static</DefaultLinkage>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="Release.props" />
<Import Project="EXE.props" />
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/Win32.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>x86 Settings</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>WIN32;_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>Win32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Lib>
<AdditionalOptions>/MACHINE:X86 %(AdditionalOptions)</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/properties/x64.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>x64 Settings</_PropertySheetDisplayName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<!-- Note that Win64 defines may cause WIN32 to become defined when using windows headers,
but _WIN32 implies Windows 32 bit or above. If the standard headers are not included
these are sometimes required even for 64 bit builds and should never cause harm there.-->
<PreprocessorDefinitions>WIN32;_WIN32;WIN64;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>x64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<Lib>
<AdditionalOptions>/MACHINE:X64 %(AdditionalOptions)</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/resource.h
================================================
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by Resource.rc
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
================================================
FILE: builds/msvc/resource.rc
================================================
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#include "windows.h"
//specify the version numbers for the dll's
#define LIBSODIUM_VERSION_STRING "1.0.23.0"
#define LIBSODIUM_VERSION_BIN 1,0,23,0
//specify the product name for the dlls based on the platform we are compiling for
#if defined(x64)
#define LIBSODIUM_PRODUCT_NAME "libsodium (x64)"
#elif defined(Win32)
#define LIBSODIUM_PRODUCT_NAME "libsodium (x86)"
#elif defined(ARM64)
#define LIBSODIUM_PRODUCT_NAME "libsodium (arm64)"
#else
#define LIBSODIUM_PRODUCT_NAME "libsodium"
#endif
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION LIBSODIUM_VERSION_BIN
PRODUCTVERSION LIBSODIUM_VERSION_BIN
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x7L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "The Sodium crypto library (libsodium)"
VALUE "FileVersion", LIBSODIUM_VERSION_STRING
VALUE "InternalName", "libsodium"
VALUE "LegalCopyright", "Copyright (c) 2013-2024 The libsodium authors."
VALUE "OriginalFilename", "libsodium.dll"
VALUE "ProductName", LIBSODIUM_PRODUCT_NAME
VALUE "ProductVersion", LIBSODIUM_VERSION_STRING
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////
================================================
FILE: builds/msvc/version.h
================================================
#ifndef sodium_version_H
#define sodium_version_H
#include "export.h"
#define SODIUM_VERSION_STRING "1.0.23"
#define SODIUM_LIBRARY_VERSION_MAJOR 30
#define SODIUM_LIBRARY_VERSION_MINOR 0
#ifdef __cplusplus
extern "C" {
#endif
SODIUM_EXPORT
const char *sodium_version_string(void);
SODIUM_EXPORT
int sodium_library_version_major(void);
SODIUM_EXPORT
int sodium_library_version_minor(void);
SODIUM_EXPORT
int sodium_library_minimal(void);
#ifdef __cplusplus
}
#endif
#endif
================================================
FILE: builds/msvc/vs2010/libsodium/libsodium.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<_PropertySheetDisplayName>Libsodium Common Settings</_PropertySheetDisplayName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>
<!-- User Interface -->
<ItemGroup Label="BuildOptionsExtension">
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(ProjectName).xml" />
</ItemGroup>
<!-- Configuration -->
<ItemDefinitionGroup>
<PreBuildEvent>
<Command>copy "$(BuildRoot)version.h" "$(RepoRoot)src\libsodium\include\sodium\"</Command>
</PreBuildEvent>
<ClCompile>
<AdditionalIncludeDirectories>$(RepoRoot)src\libsodium\include;$(RepoRoot)src\libsodium\include\sodium\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<EnablePREfast>false</EnablePREfast>
<PreprocessorDefinitions>inline=__inline;NATIVE_LITTLE_ENDIAN;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(ConfigurationType)' == 'StaticLibrary'">SODIUM_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(ConfigurationType)' == 'DynamicLibrary'">SODIUM_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Option-amd64asm)' == 'true'">HAVE_AMD64_ASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<!-- Messages -->
<Target Name="CustomInfo" BeforeTargets="PrepareForBuild">
<Message Text="Will copy $(BuildRoot)version.h -> $(RepoRoot)src\libsodium\include\sodium\version.h" Importance="high"/>
</Target>
<Target Name="OptionInfo" BeforeTargets="PrepareForBuild">
<Message Text="Option-amd64asm : $(Option-amd64asm)" Importance="high"/>
</Target>
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>advapi32.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>
================================================
FILE: builds/msvc/vs2010/libsodium/libsodium.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{A185B162-6CB6-4502-B03F-B56F7699A8D9}</ProjectGuid>
<ProjectName>libsodium</ProjectName>
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="DebugDLL|Win32">
<Configuration>DebugDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugDLL|x64">
<Configuration>DebugDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|Win32">
<Configuration>ReleaseDLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseDLL|x64">
<Configuration>ReleaseDLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|Win32">
<Configuration>DebugLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLIB|x64">
<Configuration>DebugLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|Win32">
<Configuration>ReleaseLIB</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLIB|x64">
<Configuration>ReleaseLIB</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|Win32">
<Configuration>DebugLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLTCG|x64">
<Configuration>DebugLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|Win32">
<Configuration>ReleaseLTCG</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="ReleaseLTCG|x64">
<Configuration>ReleaseLTCG</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType Condition="$(Configuration.IndexOf('DLL')) == -1">StaticLibrary</ConfigurationType>
<ConfigurationType Condition="$(Configuration.IndexOf('DLL')) != -1">DynamicLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets">
<Import Project="$(ProjectDir)..\..\properties\$(Configuration).props" />
<Import Project="$(ProjectDir)..\..\properties\Output.props" />
<Import Project="$(ProjectDir)$(ProjectName).props" />
</ImportGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\crypto_generichash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ssse3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-avx2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-sse41.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\generichash_blake2b.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kx\crypto_kx.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\crypto_sign.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\ed25519\sign_ed25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\ed25519\ref10\sign.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\ed25519\ref10\keypair.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\ed25519\ref10\open.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretbox\crypto_secretbox.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretbox\crypto_secretbox_easy.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretbox\xsalsa20poly1305\secretbox_xsalsa20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretbox\xchacha20poly1305\secretbox_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\crypto_pwhash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\blake2b-long.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-wasm32.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-core.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-avx512f.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-ssse3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\pwhash_argon2i.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-neon.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\pwhash_argon2id.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-avx2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-encoding.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\scrypt_platform.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\crypto_scrypt-common.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pwhash_scryptsalsa208sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\shake128\xof_shake128.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\shake128\ref\shake128_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\shake256\xof_shake256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\shake256\ref\shake256_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\turboshake256\xof_turboshake256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\turboshake256\ref\turboshake256_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\turboshake128\xof_turboshake128.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\turboshake128\ref\turboshake128_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\crypto_kdf.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphashx24_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphash24_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\crypto_scalarmult.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\ristretto255\ref10\scalarmult_ristretto255_ref10.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\ed25519\ref10\scalarmult_ed25519_ref10.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\scalarmult_curve25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\curve25519_sandy2x.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe_frombytes_sandy2x.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_invert.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\ref10\x25519_ref10.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_onetimeauth\crypto_onetimeauth.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\onetimeauth_poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\sse2\poly1305_sse2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\randombytes\randombytes.c" />
<ClCompile Include="..\..\..\..\src\libsodium\randombytes\sysrandom\randombytes_sysrandom.c" />
<ClCompile Include="..\..\..\..\src\libsodium\randombytes\internal\randombytes_internal_random.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\crypto_box_easy.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\crypto_box_seal.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\crypto_box.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\curve25519xsalsa20poly1305\box_curve25519xsalsa20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_curve25519xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_seal_curve25519xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\sodium\codecs.c" />
<ClCompile Include="..\..\..\..\src\libsodium\sodium\runtime.c" />
<ClCompile Include="..\..\..\..\src\libsodium\sodium\core.c" />
<ClCompile Include="..\..\..\..\src\libsodium\sodium\utils.c" />
<ClCompile Include="..\..\..\..\src\libsodium\sodium\version.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_ipcrypt\ipcrypt_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_ipcrypt\crypto_ipcrypt.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_ipcrypt\ipcrypt_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_ipcrypt\ipcrypt_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\crypto_stream.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\xchacha20\stream_xchacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\stream_chacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\ref\chacha20_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-avx2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-ssse3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\stream_salsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\ref\salsa20_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa2012\stream_salsa2012.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa2012\ref\stream_salsa2012_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa208\stream_salsa208.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa208\ref\stream_salsa208_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\xsalsa20\stream_xsalsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\crypto_hash.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\hash_sha512.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha512\cp\hash_sha512_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha3\hash_sha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\hash_sha256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_hash\sha256\cp\hash_sha256_cp.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\xchacha20poly1305\aead_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aead_aegis128l.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aead_aegis256.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aead_aes256gcm.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\aesni\aead_aes256gcm_aesni.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\aes256gcm\armcrypto\aead_aes256gcm_armcrypto.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_aead\chacha20poly1305\aead_chacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kem\crypto_kem.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kem\xwing\kem_xwing.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kem\mlkem768\kem_mlkem768.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kem\mlkem768\ref\kem_mlkem768_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretstream\xchacha20poly1305\secretstream_xchacha20poly1305.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\keccak1600\keccak1600.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\keccak1600\ref\keccak1600_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\keccak1600\armsha3\keccak1600_armsha3.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\salsa\ref\core_salsa_ref.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hchacha20\core_hchacha20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\core_hsalsa20.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\hsalsa20\ref2\core_hsalsa20_ref2.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\softaes\softaes.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ed25519.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_ristretto255.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_h2c.c" />
<ClCompile Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\ed25519_ref10.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-load-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-load-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ssse3.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-load-sse41.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-sse41.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_sign\ed25519\ref10\sign_ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_salsa2012.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\utils.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\export.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash_siphash24.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_xof_shake128.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_onetimeauth_poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kem_mlkem768.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_ristretto255.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kx.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ristretto255.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_xchacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa208.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_auth_hmacsha512256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_xof_turboshake128.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aegis128l.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_chacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_sysrandom.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_xof_turboshake256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\runtime.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_salsa208.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_aead_aes256gcm.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_salsa2012.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretbox_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kem.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_keccak1600.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_16.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_chacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_stream_xsalsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_hsalsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_curve25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_xof_shake256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_shorthash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2id.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretstream_xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_scryptsalsa208sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_hash_sha3.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kem_xwing.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_onetimeauth.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_verify_64.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box_curve25519xchacha20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_core_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_kdf_hkdf_sha512.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_pwhash_argon2i.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\randombytes_internal_random.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretbox_xsalsa20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_secretbox.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_scalarmult_ed25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_ipcrypt.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_box_curve25519xsalsa20poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\softaes.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\asm_cet.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\mutex.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\chacha20_ietf_ext.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-neon.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-wasm32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-ssse3.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-encoding.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\blake2b-long.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\blamka-round-avx512f.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-core.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\crypto_scrypt.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_xof\shake128\ref\shake128_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_xof\shake256\ref\shake256_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_xof\turboshake256\ref\turboshake256_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_xof\turboshake128\ref\turboshake128_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphash_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\scalarmult_curve25519.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\consts_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\ladder_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\ladder.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\curve25519_sandy2x.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\ref10\x25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\onetimeauth_poly1305.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna64.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna32.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\sse2\poly1305_sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_ipcrypt\ipcrypt_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_ipcrypt\ipcrypt_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_ipcrypt\ipcrypt_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_ipcrypt\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\stream_chacha20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\ref\chacha20_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u4.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-ssse3.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u0.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u1.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\stream_salsa20.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\ref\salsa20_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u4.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u0.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u1.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\aegis128l_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis128l\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_aesni.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_common.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\implementations.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_armcrypto.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_aead\aegis256\aegis256_soft.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_kem\mlkem768\ref\kem_mlkem768_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\keccak1600\ref\keccak1600_ref.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\keccak1600\armsha3\keccak1600_armsha3.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\core_h2c.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\base.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\fe.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\base2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_51\base.h" />
<ClInclude Include="..\..\resource.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\resource.rc">
</ResourceCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="..\..\..\..\packaging\nuget\package.bat">
<Filter>packaging</Filter>
</None>
<None Include="..\..\..\..\packaging\nuget\package.gsl">
<Filter>packaging</Filter>
</None>
<None Include="..\..\..\..\packaging\nuget\package.nuspec">
<Filter>packaging</Filter>
</None>
<None Include="..\..\..\..\packaging\nuget\package.targets">
<Filter>packaging</Filter>
</None>
<None Include="..\..\..\..\packaging\nuget\package.config">
<Filter>packaging</Filter>
</None>
<Xml Include="..\..\..\..\packaging\nuget\package.xml">
<Filter>packaging</Filter>
</Xml>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\resource.rc" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\crypto_generichash.c">
<Filter>crypto_generichash</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\generichash_blake2.c">
<Filter>crypto_generichash\blake2b</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ref.c">
<Filter>crypto_generichash\blake2b\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-ssse3.c">
<Filter>crypto_generichash\blake2b\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-avx2.c">
<Filter>crypto_generichash\blake2b\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-compress-sse41.c">
<Filter>crypto_generichash\blake2b\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\generichash_blake2b.c">
<Filter>crypto_generichash\blake2b\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_generichash\blake2b\ref\blake2b-ref.c">
<Filter>crypto_generichash\blake2b\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kx\crypto_kx.c">
<Filter>crypto_kx</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\crypto_sign.c">
<Filter>crypto_sign</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\ed25519\sign_ed25519.c">
<Filter>crypto_sign\ed25519</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\ed25519\ref10\sign.c">
<Filter>crypto_sign\ed25519\ref10</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\ed25519\ref10\keypair.c">
<Filter>crypto_sign\ed25519\ref10</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_sign\ed25519\ref10\open.c">
<Filter>crypto_sign\ed25519\ref10</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretbox\crypto_secretbox.c">
<Filter>crypto_secretbox</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretbox\crypto_secretbox_easy.c">
<Filter>crypto_secretbox</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretbox\xsalsa20poly1305\secretbox_xsalsa20poly1305.c">
<Filter>crypto_secretbox\xsalsa20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_secretbox\xchacha20poly1305\secretbox_xchacha20poly1305.c">
<Filter>crypto_secretbox\xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\crypto_pwhash.c">
<Filter>crypto_pwhash</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\blake2b-long.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-wasm32.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-core.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-avx512f.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-ref.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-ssse3.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\pwhash_argon2i.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-neon.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\pwhash_argon2id.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-fill-block-avx2.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\argon2\argon2-encoding.c">
<Filter>crypto_pwhash\argon2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\scrypt_platform.c">
<Filter>crypto_pwhash\scryptsalsa208sha256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\crypto_scrypt-common.c">
<Filter>crypto_pwhash\scryptsalsa208sha256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pwhash_scryptsalsa208sha256.c">
<Filter>crypto_pwhash\scryptsalsa208sha256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\pbkdf2-sha256.c">
<Filter>crypto_pwhash\scryptsalsa208sha256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.c">
<Filter>crypto_pwhash\scryptsalsa208sha256\nosse</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_pwhash\scryptsalsa208sha256\sse\pwhash_scryptsalsa208sha256_sse.c">
<Filter>crypto_pwhash\scryptsalsa208sha256\sse</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\shake128\xof_shake128.c">
<Filter>crypto_xof\shake128</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\shake128\ref\shake128_ref.c">
<Filter>crypto_xof\shake128\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\shake256\xof_shake256.c">
<Filter>crypto_xof\shake256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\shake256\ref\shake256_ref.c">
<Filter>crypto_xof\shake256\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\turboshake256\xof_turboshake256.c">
<Filter>crypto_xof\turboshake256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\turboshake256\ref\turboshake256_ref.c">
<Filter>crypto_xof\turboshake256\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\turboshake128\xof_turboshake128.c">
<Filter>crypto_xof\turboshake128</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_xof\turboshake128\ref\turboshake128_ref.c">
<Filter>crypto_xof\turboshake128\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_verify\verify.c">
<Filter>crypto_verify</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\crypto_auth.c">
<Filter>crypto_auth</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512\auth_hmacsha512.c">
<Filter>crypto_auth\hmacsha512</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha512256\auth_hmacsha512256.c">
<Filter>crypto_auth\hmacsha512256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_auth\hmacsha256\auth_hmacsha256.c">
<Filter>crypto_auth\hmacsha256</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\crypto_kdf.c">
<Filter>crypto_kdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\blake2b\kdf_blake2b.c">
<Filter>crypto_kdf\blake2b</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha256.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_kdf\hkdf\kdf_hkdf_sha512.c">
<Filter>crypto_kdf\hkdf</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\crypto_shorthash.c">
<Filter>crypto_shorthash</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphash24.c">
<Filter>crypto_shorthash\siphash24</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\shorthash_siphashx24.c">
<Filter>crypto_shorthash\siphash24</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphashx24_ref.c">
<Filter>crypto_shorthash\siphash24\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_shorthash\siphash24\ref\shorthash_siphash24_ref.c">
<Filter>crypto_shorthash\siphash24\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\crypto_scalarmult.c">
<Filter>crypto_scalarmult</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\ristretto255\ref10\scalarmult_ristretto255_ref10.c">
<Filter>crypto_scalarmult\ristretto255\ref10</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\ed25519\ref10\scalarmult_ed25519_ref10.c">
<Filter>crypto_scalarmult\ed25519\ref10</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\scalarmult_curve25519.c">
<Filter>crypto_scalarmult\curve25519</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\curve25519_sandy2x.c">
<Filter>crypto_scalarmult\curve25519\sandy2x</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe_frombytes_sandy2x.c">
<Filter>crypto_scalarmult\curve25519\sandy2x</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_invert.c">
<Filter>crypto_scalarmult\curve25519\sandy2x</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_scalarmult\curve25519\ref10\x25519_ref10.c">
<Filter>crypto_scalarmult\curve25519\ref10</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_onetimeauth\crypto_onetimeauth.c">
<Filter>crypto_onetimeauth</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\onetimeauth_poly1305.c">
<Filter>crypto_onetimeauth\poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\donna\poly1305_donna.c">
<Filter>crypto_onetimeauth\poly1305\donna</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_onetimeauth\poly1305\sse2\poly1305_sse2.c">
<Filter>crypto_onetimeauth\poly1305\sse2</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\randombytes\randombytes.c">
<Filter>randombytes</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\randombytes\sysrandom\randombytes_sysrandom.c">
<Filter>randombytes\sysrandom</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\randombytes\internal\randombytes_internal_random.c">
<Filter>randombytes\internal</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\crypto_box_easy.c">
<Filter>crypto_box</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\crypto_box_seal.c">
<Filter>crypto_box</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\crypto_box.c">
<Filter>crypto_box</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\curve25519xsalsa20poly1305\box_curve25519xsalsa20poly1305.c">
<Filter>crypto_box\curve25519xsalsa20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_curve25519xchacha20poly1305.c">
<Filter>crypto_box\curve25519xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_seal_curve25519xchacha20poly1305.c">
<Filter>crypto_box\curve25519xchacha20poly1305</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\sodium\codecs.c">
<Filter>sodium</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\sodium\runtime.c">
<Filter>sodium</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\sodium\core.c">
<Filter>sodium</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\sodium\utils.c">
<Filter>sodium</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\sodium\version.c">
<Filter>sodium</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_ipcrypt\ipcrypt_armcrypto.c">
<Filter>crypto_ipcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_ipcrypt\crypto_ipcrypt.c">
<Filter>crypto_ipcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_ipcrypt\ipcrypt_soft.c">
<Filter>crypto_ipcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_ipcrypt\ipcrypt_aesni.c">
<Filter>crypto_ipcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\crypto_stream.c">
<Filter>crypto_stream</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\xchacha20\stream_xchacha20.c">
<Filter>crypto_stream\xchacha20</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\stream_chacha20.c">
<Filter>crypto_stream\chacha20</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\ref\chacha20_ref.c">
<Filter>crypto_stream\chacha20\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-avx2.c">
<Filter>crypto_stream\chacha20\dolbeau</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\chacha20\dolbeau\chacha20_dolbeau-ssse3.c">
<Filter>crypto_stream\chacha20\dolbeau</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\stream_salsa20.c">
<Filter>crypto_stream\salsa20</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\ref\salsa20_ref.c">
<Filter>crypto_stream\salsa20\ref</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.c">
<Filter>crypto_stream\salsa20\xmm6int</Filter>
</ClCompile>
<ClCompile Inc
gitextract_xfy4_0kp/
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bugs.md
│ │ └── suggestions.md
│ └── workflows/
│ ├── autocloser.yml
│ ├── ci.yml
│ ├── cifuzz.yml
│ ├── codeql-analysis.yml
│ ├── dotnet-core.yml
│ └── zizmor.yml
├── .gitignore
├── AUTHORS
├── CITATION.cff
├── ChangeLog
├── LICENSE
├── Makefile.am
├── README.markdown
├── THANKS
├── appveyor.yml
├── autogen.sh
├── azure-pipelines.yml
├── build.zig
├── builds/
│ ├── .gitignore
│ ├── Makefile.am
│ └── msvc/
│ ├── build/
│ │ ├── buildall.bat
│ │ └── buildbase.bat
│ ├── properties/
│ │ ├── ARM64.props
│ │ ├── Common.props
│ │ ├── DLL.props
│ │ ├── Debug.props
│ │ ├── DebugDEXE.props
│ │ ├── DebugDLL.props
│ │ ├── DebugLEXE.props
│ │ ├── DebugLIB.props
│ │ ├── DebugLTCG.props
│ │ ├── DebugSEXE.props
│ │ ├── EXE.props
│ │ ├── LIB.props
│ │ ├── LTCG.props
│ │ ├── Link.props
│ │ ├── Messages.props
│ │ ├── Output.props
│ │ ├── Release.props
│ │ ├── ReleaseDEXE.props
│ │ ├── ReleaseDLL.props
│ │ ├── ReleaseLEXE.props
│ │ ├── ReleaseLIB.props
│ │ ├── ReleaseLTCG.props
│ │ ├── ReleaseSEXE.props
│ │ ├── Win32.props
│ │ └── x64.props
│ ├── resource.h
│ ├── resource.rc
│ ├── version.h
│ ├── vs2010/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2012/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2013/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2015/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2017/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2019/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ ├── vs2022/
│ │ ├── libsodium/
│ │ │ ├── libsodium.props
│ │ │ ├── libsodium.vcxproj
│ │ │ ├── libsodium.vcxproj.filters
│ │ │ └── libsodium.xml
│ │ ├── libsodium.import.props
│ │ ├── libsodium.import.xml
│ │ └── libsodium.sln
│ └── vs2026/
│ ├── libsodium/
│ │ ├── libsodium.props
│ │ ├── libsodium.vcxproj
│ │ ├── libsodium.vcxproj.filters
│ │ └── libsodium.xml
│ ├── libsodium.import.props
│ ├── libsodium.import.xml
│ └── libsodium.sln
├── ci/
│ └── appveyor/
│ ├── libsodium.sln
│ ├── libsodium.vcxproj
│ ├── libsodium.vcxproj.filters
│ └── msvc-scripts/
│ ├── process.bat
│ ├── rep.vbs
│ └── sodium.props
├── configure.ac
├── dist-build/
│ ├── Makefile.am
│ ├── android-aar.sh
│ ├── android-armv7-a.sh
│ ├── android-armv8-a.sh
│ ├── android-build.sh
│ ├── android-x86.sh
│ ├── android-x86_64.sh
│ ├── apple-xcframework.sh
│ ├── emscripten-symbols.def
│ ├── emscripten.sh
│ ├── generate-emscripten-symbols.sh
│ ├── macos.sh
│ ├── msys2-win32.sh
│ ├── msys2-win64.sh
│ └── wasm32-wasi.sh
├── lgtm.yml
├── libsodium-uninstalled.pc.in
├── libsodium.pc.in
├── m4/
│ ├── ax_add_fortify_source.m4
│ ├── ax_check_catchable_abrt.m4
│ ├── ax_check_catchable_segv.m4
│ ├── ax_check_compile_flag.m4
│ ├── ax_check_define.m4
│ ├── ax_check_gnu_make.m4
│ ├── ax_check_link_flag.m4
│ ├── ax_pthread.m4
│ ├── ax_tls.m4
│ ├── ax_valgrind_check.m4
│ └── ld-output-def.m4
├── packaging/
│ └── dotnet-core/
│ ├── libsodium.pkgproj
│ └── test.cs
├── regen-msvc/
│ ├── libsodium.vcxproj
│ ├── libsodium.vcxproj.filters
│ ├── libsodium.vcxproj.filters.tpl
│ ├── libsodium.vcxproj.tpl
│ ├── regen-msvc.py
│ ├── tl_libsodium.vcxproj.filters.tpl
│ └── tl_libsodium.vcxproj.tpl
├── src/
│ ├── Makefile.am
│ └── libsodium/
│ ├── Makefile.am
│ ├── crypto_aead/
│ │ ├── aegis128l/
│ │ │ ├── aead_aegis128l.c
│ │ │ ├── aegis128l_aesni.c
│ │ │ ├── aegis128l_aesni.h
│ │ │ ├── aegis128l_armcrypto.c
│ │ │ ├── aegis128l_armcrypto.h
│ │ │ ├── aegis128l_common.h
│ │ │ ├── aegis128l_soft.c
│ │ │ ├── aegis128l_soft.h
│ │ │ └── implementations.h
│ │ ├── aegis256/
│ │ │ ├── aead_aegis256.c
│ │ │ ├── aegis256_aesni.c
│ │ │ ├── aegis256_aesni.h
│ │ │ ├── aegis256_armcrypto.c
│ │ │ ├── aegis256_armcrypto.h
│ │ │ ├── aegis256_common.h
│ │ │ ├── aegis256_soft.c
│ │ │ ├── aegis256_soft.h
│ │ │ └── implementations.h
│ │ ├── aes256gcm/
│ │ │ ├── aead_aes256gcm.c
│ │ │ ├── aesni/
│ │ │ │ └── aead_aes256gcm_aesni.c
│ │ │ └── armcrypto/
│ │ │ └── aead_aes256gcm_armcrypto.c
│ │ ├── chacha20poly1305/
│ │ │ └── aead_chacha20poly1305.c
│ │ └── xchacha20poly1305/
│ │ └── aead_xchacha20poly1305.c
│ ├── crypto_auth/
│ │ ├── crypto_auth.c
│ │ ├── hmacsha256/
│ │ │ └── auth_hmacsha256.c
│ │ ├── hmacsha512/
│ │ │ └── auth_hmacsha512.c
│ │ └── hmacsha512256/
│ │ └── auth_hmacsha512256.c
│ ├── crypto_box/
│ │ ├── crypto_box.c
│ │ ├── crypto_box_easy.c
│ │ ├── crypto_box_seal.c
│ │ ├── curve25519xchacha20poly1305/
│ │ │ ├── box_curve25519xchacha20poly1305.c
│ │ │ └── box_seal_curve25519xchacha20poly1305.c
│ │ └── curve25519xsalsa20poly1305/
│ │ └── box_curve25519xsalsa20poly1305.c
│ ├── crypto_core/
│ │ ├── ed25519/
│ │ │ ├── core_ed25519.c
│ │ │ ├── core_h2c.c
│ │ │ ├── core_h2c.h
│ │ │ ├── core_ristretto255.c
│ │ │ └── ref10/
│ │ │ ├── ed25519_ref10.c
│ │ │ ├── fe_25_5/
│ │ │ │ ├── base.h
│ │ │ │ ├── base2.h
│ │ │ │ ├── constants.h
│ │ │ │ └── fe.h
│ │ │ └── fe_51/
│ │ │ ├── base.h
│ │ │ ├── base2.h
│ │ │ ├── constants.h
│ │ │ └── fe.h
│ │ ├── hchacha20/
│ │ │ └── core_hchacha20.c
│ │ ├── hsalsa20/
│ │ │ ├── core_hsalsa20.c
│ │ │ └── ref2/
│ │ │ └── core_hsalsa20_ref2.c
│ │ ├── keccak1600/
│ │ │ ├── armsha3/
│ │ │ │ ├── keccak1600_armsha3.c
│ │ │ │ └── keccak1600_armsha3.h
│ │ │ ├── keccak1600.c
│ │ │ └── ref/
│ │ │ ├── keccak1600_ref.c
│ │ │ └── keccak1600_ref.h
│ │ ├── salsa/
│ │ │ └── ref/
│ │ │ └── core_salsa_ref.c
│ │ └── softaes/
│ │ └── softaes.c
│ ├── crypto_generichash/
│ │ ├── blake2b/
│ │ │ ├── generichash_blake2.c
│ │ │ └── ref/
│ │ │ ├── blake2.h
│ │ │ ├── blake2b-compress-avx2.c
│ │ │ ├── blake2b-compress-avx2.h
│ │ │ ├── blake2b-compress-ref.c
│ │ │ ├── blake2b-compress-sse41.c
│ │ │ ├── blake2b-compress-sse41.h
│ │ │ ├── blake2b-compress-ssse3.c
│ │ │ ├── blake2b-compress-ssse3.h
│ │ │ ├── blake2b-load-avx2.h
│ │ │ ├── blake2b-load-sse2.h
│ │ │ ├── blake2b-load-sse41.h
│ │ │ ├── blake2b-ref.c
│ │ │ └── generichash_blake2b.c
│ │ └── crypto_generichash.c
│ ├── crypto_hash/
│ │ ├── crypto_hash.c
│ │ ├── sha256/
│ │ │ ├── cp/
│ │ │ │ └── hash_sha256_cp.c
│ │ │ └── hash_sha256.c
│ │ ├── sha3/
│ │ │ └── hash_sha3.c
│ │ └── sha512/
│ │ ├── cp/
│ │ │ └── hash_sha512_cp.c
│ │ └── hash_sha512.c
│ ├── crypto_ipcrypt/
│ │ ├── crypto_ipcrypt.c
│ │ ├── implementations.h
│ │ ├── ipcrypt_aesni.c
│ │ ├── ipcrypt_aesni.h
│ │ ├── ipcrypt_armcrypto.c
│ │ ├── ipcrypt_armcrypto.h
│ │ ├── ipcrypt_soft.c
│ │ └── ipcrypt_soft.h
│ ├── crypto_kdf/
│ │ ├── blake2b/
│ │ │ └── kdf_blake2b.c
│ │ ├── crypto_kdf.c
│ │ └── hkdf/
│ │ ├── kdf_hkdf_sha256.c
│ │ └── kdf_hkdf_sha512.c
│ ├── crypto_kem/
│ │ ├── crypto_kem.c
│ │ ├── mlkem768/
│ │ │ ├── kem_mlkem768.c
│ │ │ └── ref/
│ │ │ ├── kem_mlkem768_ref.c
│ │ │ └── kem_mlkem768_ref.h
│ │ └── xwing/
│ │ └── kem_xwing.c
│ ├── crypto_kx/
│ │ └── crypto_kx.c
│ ├── crypto_onetimeauth/
│ │ ├── crypto_onetimeauth.c
│ │ └── poly1305/
│ │ ├── donna/
│ │ │ ├── poly1305_donna.c
│ │ │ ├── poly1305_donna.h
│ │ │ ├── poly1305_donna32.h
│ │ │ └── poly1305_donna64.h
│ │ ├── onetimeauth_poly1305.c
│ │ ├── onetimeauth_poly1305.h
│ │ └── sse2/
│ │ ├── poly1305_sse2.c
│ │ └── poly1305_sse2.h
│ ├── crypto_pwhash/
│ │ ├── argon2/
│ │ │ ├── argon2-core.c
│ │ │ ├── argon2-core.h
│ │ │ ├── argon2-encoding.c
│ │ │ ├── argon2-encoding.h
│ │ │ ├── argon2-fill-block-avx2.c
│ │ │ ├── argon2-fill-block-avx512f.c
│ │ │ ├── argon2-fill-block-neon.c
│ │ │ ├── argon2-fill-block-ref.c
│ │ │ ├── argon2-fill-block-ssse3.c
│ │ │ ├── argon2-fill-block-wasm32.c
│ │ │ ├── argon2.c
│ │ │ ├── argon2.h
│ │ │ ├── blake2b-long.c
│ │ │ ├── blake2b-long.h
│ │ │ ├── blamka-round-avx2.h
│ │ │ ├── blamka-round-avx512f.h
│ │ │ ├── blamka-round-neon.h
│ │ │ ├── blamka-round-ref.h
│ │ │ ├── blamka-round-ssse3.h
│ │ │ ├── blamka-round-wasm32.h
│ │ │ ├── pwhash_argon2i.c
│ │ │ └── pwhash_argon2id.c
│ │ ├── crypto_pwhash.c
│ │ └── scryptsalsa208sha256/
│ │ ├── crypto_scrypt-common.c
│ │ ├── crypto_scrypt.h
│ │ ├── nosse/
│ │ │ └── pwhash_scryptsalsa208sha256_nosse.c
│ │ ├── pbkdf2-sha256.c
│ │ ├── pbkdf2-sha256.h
│ │ ├── pwhash_scryptsalsa208sha256.c
│ │ ├── scrypt_platform.c
│ │ └── sse/
│ │ └── pwhash_scryptsalsa208sha256_sse.c
│ ├── crypto_scalarmult/
│ │ ├── crypto_scalarmult.c
│ │ ├── curve25519/
│ │ │ ├── ref10/
│ │ │ │ ├── x25519_ref10.c
│ │ │ │ └── x25519_ref10.h
│ │ │ ├── sandy2x/
│ │ │ │ ├── consts.S
│ │ │ │ ├── consts_namespace.h
│ │ │ │ ├── curve25519_sandy2x.c
│ │ │ │ ├── curve25519_sandy2x.h
│ │ │ │ ├── fe.h
│ │ │ │ ├── fe51.h
│ │ │ │ ├── fe51_invert.c
│ │ │ │ ├── fe51_mul.S
│ │ │ │ ├── fe51_namespace.h
│ │ │ │ ├── fe51_nsquare.S
│ │ │ │ ├── fe51_pack.S
│ │ │ │ ├── fe_frombytes_sandy2x.c
│ │ │ │ ├── ladder.S
│ │ │ │ ├── ladder.h
│ │ │ │ ├── ladder_namespace.h
│ │ │ │ └── sandy2x.S
│ │ │ ├── scalarmult_curve25519.c
│ │ │ └── scalarmult_curve25519.h
│ │ ├── ed25519/
│ │ │ └── ref10/
│ │ │ └── scalarmult_ed25519_ref10.c
│ │ └── ristretto255/
│ │ └── ref10/
│ │ └── scalarmult_ristretto255_ref10.c
│ ├── crypto_secretbox/
│ │ ├── crypto_secretbox.c
│ │ ├── crypto_secretbox_easy.c
│ │ ├── xchacha20poly1305/
│ │ │ └── secretbox_xchacha20poly1305.c
│ │ └── xsalsa20poly1305/
│ │ └── secretbox_xsalsa20poly1305.c
│ ├── crypto_secretstream/
│ │ └── xchacha20poly1305/
│ │ └── secretstream_xchacha20poly1305.c
│ ├── crypto_shorthash/
│ │ ├── crypto_shorthash.c
│ │ └── siphash24/
│ │ ├── ref/
│ │ │ ├── shorthash_siphash24_ref.c
│ │ │ ├── shorthash_siphash_ref.h
│ │ │ └── shorthash_siphashx24_ref.c
│ │ ├── shorthash_siphash24.c
│ │ └── shorthash_siphashx24.c
│ ├── crypto_sign/
│ │ ├── crypto_sign.c
│ │ └── ed25519/
│ │ ├── ref10/
│ │ │ ├── keypair.c
│ │ │ ├── open.c
│ │ │ ├── sign.c
│ │ │ └── sign_ed25519_ref10.h
│ │ └── sign_ed25519.c
│ ├── crypto_stream/
│ │ ├── chacha20/
│ │ │ ├── dolbeau/
│ │ │ │ ├── chacha20_dolbeau-avx2.c
│ │ │ │ ├── chacha20_dolbeau-avx2.h
│ │ │ │ ├── chacha20_dolbeau-ssse3.c
│ │ │ │ ├── chacha20_dolbeau-ssse3.h
│ │ │ │ ├── u0.h
│ │ │ │ ├── u1.h
│ │ │ │ ├── u4.h
│ │ │ │ └── u8.h
│ │ │ ├── ref/
│ │ │ │ ├── chacha20_ref.c
│ │ │ │ └── chacha20_ref.h
│ │ │ ├── stream_chacha20.c
│ │ │ └── stream_chacha20.h
│ │ ├── crypto_stream.c
│ │ ├── salsa20/
│ │ │ ├── ref/
│ │ │ │ ├── salsa20_ref.c
│ │ │ │ └── salsa20_ref.h
│ │ │ ├── stream_salsa20.c
│ │ │ ├── stream_salsa20.h
│ │ │ ├── xmm6/
│ │ │ │ ├── salsa20_xmm6-asm.S
│ │ │ │ ├── salsa20_xmm6-asm_namespace.h
│ │ │ │ ├── salsa20_xmm6.c
│ │ │ │ └── salsa20_xmm6.h
│ │ │ └── xmm6int/
│ │ │ ├── salsa20_xmm6int-avx2.c
│ │ │ ├── salsa20_xmm6int-avx2.h
│ │ │ ├── salsa20_xmm6int-sse2.c
│ │ │ ├── salsa20_xmm6int-sse2.h
│ │ │ ├── u0.h
│ │ │ ├── u1.h
│ │ │ ├── u4.h
│ │ │ └── u8.h
│ │ ├── salsa2012/
│ │ │ ├── ref/
│ │ │ │ └── stream_salsa2012_ref.c
│ │ │ └── stream_salsa2012.c
│ │ ├── salsa208/
│ │ │ ├── ref/
│ │ │ │ └── stream_salsa208_ref.c
│ │ │ └── stream_salsa208.c
│ │ ├── xchacha20/
│ │ │ └── stream_xchacha20.c
│ │ └── xsalsa20/
│ │ └── stream_xsalsa20.c
│ ├── crypto_verify/
│ │ └── verify.c
│ ├── crypto_xof/
│ │ ├── shake128/
│ │ │ ├── ref/
│ │ │ │ ├── shake128_ref.c
│ │ │ │ └── shake128_ref.h
│ │ │ └── xof_shake128.c
│ │ ├── shake256/
│ │ │ ├── ref/
│ │ │ │ ├── shake256_ref.c
│ │ │ │ └── shake256_ref.h
│ │ │ └── xof_shake256.c
│ │ ├── turboshake128/
│ │ │ ├── ref/
│ │ │ │ ├── turboshake128_ref.c
│ │ │ │ └── turboshake128_ref.h
│ │ │ └── xof_turboshake128.c
│ │ └── turboshake256/
│ │ ├── ref/
│ │ │ ├── turboshake256_ref.c
│ │ │ └── turboshake256_ref.h
│ │ └── xof_turboshake256.c
│ ├── include/
│ │ ├── Makefile.am
│ │ ├── sodium/
│ │ │ ├── core.h
│ │ │ ├── crypto_aead_aegis128l.h
│ │ │ ├── crypto_aead_aegis256.h
│ │ │ ├── crypto_aead_aes256gcm.h
│ │ │ ├── crypto_aead_chacha20poly1305.h
│ │ │ ├── crypto_aead_xchacha20poly1305.h
│ │ │ ├── crypto_auth.h
│ │ │ ├── crypto_auth_hmacsha256.h
│ │ │ ├── crypto_auth_hmacsha512.h
│ │ │ ├── crypto_auth_hmacsha512256.h
│ │ │ ├── crypto_box.h
│ │ │ ├── crypto_box_curve25519xchacha20poly1305.h
│ │ │ ├── crypto_box_curve25519xsalsa20poly1305.h
│ │ │ ├── crypto_core_ed25519.h
│ │ │ ├── crypto_core_hchacha20.h
│ │ │ ├── crypto_core_hsalsa20.h
│ │ │ ├── crypto_core_keccak1600.h
│ │ │ ├── crypto_core_ristretto255.h
│ │ │ ├── crypto_core_salsa20.h
│ │ │ ├── crypto_core_salsa2012.h
│ │ │ ├── crypto_core_salsa208.h
│ │ │ ├── crypto_generichash.h
│ │ │ ├── crypto_generichash_blake2b.h
│ │ │ ├── crypto_hash.h
│ │ │ ├── crypto_hash_sha256.h
│ │ │ ├── crypto_hash_sha3.h
│ │ │ ├── crypto_hash_sha512.h
│ │ │ ├── crypto_ipcrypt.h
│ │ │ ├── crypto_kdf.h
│ │ │ ├── crypto_kdf_blake2b.h
│ │ │ ├── crypto_kdf_hkdf_sha256.h
│ │ │ ├── crypto_kdf_hkdf_sha512.h
│ │ │ ├── crypto_kem.h
│ │ │ ├── crypto_kem_mlkem768.h
│ │ │ ├── crypto_kem_xwing.h
│ │ │ ├── crypto_kx.h
│ │ │ ├── crypto_onetimeauth.h
│ │ │ ├── crypto_onetimeauth_poly1305.h
│ │ │ ├── crypto_pwhash.h
│ │ │ ├── crypto_pwhash_argon2i.h
│ │ │ ├── crypto_pwhash_argon2id.h
│ │ │ ├── crypto_pwhash_scryptsalsa208sha256.h
│ │ │ ├── crypto_scalarmult.h
│ │ │ ├── crypto_scalarmult_curve25519.h
│ │ │ ├── crypto_scalarmult_ed25519.h
│ │ │ ├── crypto_scalarmult_ristretto255.h
│ │ │ ├── crypto_secretbox.h
│ │ │ ├── crypto_secretbox_xchacha20poly1305.h
│ │ │ ├── crypto_secretbox_xsalsa20poly1305.h
│ │ │ ├── crypto_secretstream_xchacha20poly1305.h
│ │ │ ├── crypto_shorthash.h
│ │ │ ├── crypto_shorthash_siphash24.h
│ │ │ ├── crypto_sign.h
│ │ │ ├── crypto_sign_ed25519.h
│ │ │ ├── crypto_stream.h
│ │ │ ├── crypto_stream_chacha20.h
│ │ │ ├── crypto_stream_salsa20.h
│ │ │ ├── crypto_stream_salsa2012.h
│ │ │ ├── crypto_stream_salsa208.h
│ │ │ ├── crypto_stream_xchacha20.h
│ │ │ ├── crypto_stream_xsalsa20.h
│ │ │ ├── crypto_verify_16.h
│ │ │ ├── crypto_verify_32.h
│ │ │ ├── crypto_verify_64.h
│ │ │ ├── crypto_xof_shake128.h
│ │ │ ├── crypto_xof_shake256.h
│ │ │ ├── crypto_xof_turboshake128.h
│ │ │ ├── crypto_xof_turboshake256.h
│ │ │ ├── export.h
│ │ │ ├── private/
│ │ │ │ ├── asm_cet.h
│ │ │ │ ├── chacha20_ietf_ext.h
│ │ │ │ ├── common.h
│ │ │ │ ├── ed25519_ref10.h
│ │ │ │ ├── ed25519_ref10_fe_25_5.h
│ │ │ │ ├── ed25519_ref10_fe_51.h
│ │ │ │ ├── implementations.h
│ │ │ │ ├── mutex.h
│ │ │ │ ├── quirks.h
│ │ │ │ ├── softaes.h
│ │ │ │ └── sse2_64_32.h
│ │ │ ├── randombytes.h
│ │ │ ├── randombytes_internal_random.h
│ │ │ ├── randombytes_sysrandom.h
│ │ │ ├── runtime.h
│ │ │ ├── utils.h
│ │ │ └── version.h.in
│ │ └── sodium.h
│ ├── randombytes/
│ │ ├── internal/
│ │ │ └── randombytes_internal_random.c
│ │ ├── randombytes.c
│ │ └── sysrandom/
│ │ └── randombytes_sysrandom.c
│ └── sodium/
│ ├── codecs.c
│ ├── core.c
│ ├── runtime.c
│ ├── utils.c
│ └── version.c
└── test/
├── Makefile.am
├── check-version-consistency.sh
├── constcheck.sh
├── default/
│ ├── Makefile.am
│ ├── aead_aegis128l.c
│ ├── aead_aegis128l.exp
│ ├── aead_aegis256.c
│ ├── aead_aegis256.exp
│ ├── aead_aes256gcm.c
│ ├── aead_aes256gcm.exp
│ ├── aead_aes256gcm2.c
│ ├── aead_aes256gcm2.exp
│ ├── aead_chacha20poly1305.c
│ ├── aead_chacha20poly1305.exp
│ ├── aead_chacha20poly13052.c
│ ├── aead_chacha20poly13052.exp
│ ├── aead_xchacha20poly1305.c
│ ├── aead_xchacha20poly1305.exp
│ ├── auth.c
│ ├── auth.exp
│ ├── auth2.c
│ ├── auth2.exp
│ ├── auth3.c
│ ├── auth3.exp
│ ├── auth5.c
│ ├── auth5.exp
│ ├── auth6.c
│ ├── auth6.exp
│ ├── auth7.c
│ ├── auth7.exp
│ ├── box.c
│ ├── box.exp
│ ├── box2.c
│ ├── box2.exp
│ ├── box7.c
│ ├── box7.exp
│ ├── box8.c
│ ├── box8.exp
│ ├── box_easy.c
│ ├── box_easy.exp
│ ├── box_easy2.c
│ ├── box_easy2.exp
│ ├── box_seal.c
│ ├── box_seal.exp
│ ├── box_seed.c
│ ├── box_seed.exp
│ ├── chacha20.c
│ ├── chacha20.exp
│ ├── cmptest.h
│ ├── codecs.c
│ ├── codecs.exp
│ ├── codecs2.c
│ ├── codecs2.exp
│ ├── codecs3.c
│ ├── codecs3.exp
│ ├── core1.c
│ ├── core1.exp
│ ├── core2.c
│ ├── core2.exp
│ ├── core3.c
│ ├── core3.exp
│ ├── core4.c
│ ├── core4.exp
│ ├── core5.c
│ ├── core5.exp
│ ├── core6.c
│ ├── core6.exp
│ ├── core_ed25519.c
│ ├── core_ed25519.exp
│ ├── core_ed25519_h2c.c
│ ├── core_ed25519_h2c.exp
│ ├── core_keccak1600.c
│ ├── core_keccak1600.exp
│ ├── core_ristretto255.c
│ ├── core_ristretto255.exp
│ ├── core_ristretto255_h2c.c
│ ├── core_ristretto255_h2c.exp
│ ├── ed25519_convert.c
│ ├── ed25519_convert.exp
│ ├── generichash.c
│ ├── generichash.exp
│ ├── generichash2.c
│ ├── generichash2.exp
│ ├── generichash3.c
│ ├── generichash3.exp
│ ├── hash.c
│ ├── hash.exp
│ ├── hash3.c
│ ├── hash3.exp
│ ├── hash_sha3256.c
│ ├── hash_sha3256.exp
│ ├── hash_sha3512.c
│ ├── hash_sha3512.exp
│ ├── index.html.tpl
│ ├── ipcrypt.c
│ ├── ipcrypt.exp
│ ├── kdf.c
│ ├── kdf.exp
│ ├── kdf_hkdf.c
│ ├── kdf_hkdf.exp
│ ├── kdf_hkdf2.c
│ ├── kdf_hkdf2.exp
│ ├── kdf_hkdf3.c
│ ├── kdf_hkdf3.exp
│ ├── kdf_hkdf4.c
│ ├── kdf_hkdf4.exp
│ ├── kem.c
│ ├── kem.exp
│ ├── kem_mlkem768.c
│ ├── kem_mlkem768.exp
│ ├── kem_xwing.c
│ ├── kem_xwing.exp
│ ├── keygen.c
│ ├── keygen.exp
│ ├── kx.c
│ ├── kx.exp
│ ├── metamorphic.c
│ ├── metamorphic.exp
│ ├── misuse.c
│ ├── misuse.exp
│ ├── onetimeauth.c
│ ├── onetimeauth.exp
│ ├── onetimeauth2.c
│ ├── onetimeauth2.exp
│ ├── onetimeauth7.c
│ ├── onetimeauth7.exp
│ ├── pre.js.inc
│ ├── pwhash_argon2i.c
│ ├── pwhash_argon2i.exp
│ ├── pwhash_argon2id.c
│ ├── pwhash_argon2id.exp
│ ├── pwhash_argon2id2.c
│ ├── pwhash_argon2id2.exp
│ ├── pwhash_scrypt.c
│ ├── pwhash_scrypt.exp
│ ├── pwhash_scrypt_ll.c
│ ├── pwhash_scrypt_ll.exp
│ ├── randombytes.c
│ ├── randombytes.exp
│ ├── run.sh
│ ├── scalarmult.c
│ ├── scalarmult.exp
│ ├── scalarmult2.c
│ ├── scalarmult2.exp
│ ├── scalarmult5.c
│ ├── scalarmult5.exp
│ ├── scalarmult6.c
│ ├── scalarmult6.exp
│ ├── scalarmult7.c
│ ├── scalarmult7.exp
│ ├── scalarmult8.c
│ ├── scalarmult8.exp
│ ├── scalarmult_ed25519.c
│ ├── scalarmult_ed25519.exp
│ ├── scalarmult_ristretto255.c
│ ├── scalarmult_ristretto255.exp
│ ├── secretbox.c
│ ├── secretbox.exp
│ ├── secretbox2.c
│ ├── secretbox2.exp
│ ├── secretbox7.c
│ ├── secretbox7.exp
│ ├── secretbox8.c
│ ├── secretbox8.exp
│ ├── secretbox_easy.c
│ ├── secretbox_easy.exp
│ ├── secretbox_easy2.c
│ ├── secretbox_easy2.exp
│ ├── secretstream_xchacha20poly1305.c
│ ├── secretstream_xchacha20poly1305.exp
│ ├── shorthash.c
│ ├── shorthash.exp
│ ├── sign.c
│ ├── sign.exp
│ ├── sign2.c
│ ├── sign2.exp
│ ├── siphashx24.c
│ ├── siphashx24.exp
│ ├── sodium_core.c
│ ├── sodium_core.exp
│ ├── sodium_utils.c
│ ├── sodium_utils.exp
│ ├── sodium_utils2.c
│ ├── sodium_utils2.exp
│ ├── sodium_utils3.c
│ ├── sodium_utils3.exp
│ ├── sodium_utils4.c
│ ├── sodium_utils4.exp
│ ├── sodium_version.c
│ ├── sodium_version.exp
│ ├── stream.c
│ ├── stream.exp
│ ├── stream2.c
│ ├── stream2.exp
│ ├── stream3.c
│ ├── stream3.exp
│ ├── stream4.c
│ ├── stream4.exp
│ ├── stream5.c
│ ├── stream5.exp
│ ├── stream6.c
│ ├── stream6.exp
│ ├── verify1.c
│ ├── verify1.exp
│ ├── wasi-test-wrapper.sh
│ ├── wintest.bat
│ ├── xchacha20.c
│ ├── xchacha20.exp
│ ├── xof2.c
│ ├── xof2.exp
│ ├── xof_shake128.c
│ ├── xof_shake128.exp
│ ├── xof_shake256.c
│ ├── xof_shake256.exp
│ ├── xof_turboshake128.c
│ ├── xof_turboshake128.exp
│ ├── xof_turboshake256.c
│ └── xof_turboshake256.exp
├── quirks/
│ └── quirks.h
├── rename-globals.sh
└── symbols/
└── all-symbols.txt
SYMBOL INDEX (1790 symbols across 325 files)
FILE: packaging/dotnet-core/test.cs
class Program (line 4) | internal static class Program
method Main (line 6) | internal static int Main()
method crypto_aead_aes256gcm_is_available (line 23) | [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)]
method randombytes_buf (line 26) | [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)]
method sodium_init (line 29) | [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)]
method sodium_library_version_major (line 32) | [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)]
method sodium_library_minimal (line 35) | [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)]
method sodium_library_version_minor (line 38) | [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)]
method sodium_version_string (line 41) | [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)]
FILE: regen-msvc/regen-msvc.py
function get_project_configurations (line 80) | def get_project_configurations(vs_version):
function apply_template (line 113) | def apply_template(tplfile, outfile, sbox):
FILE: src/libsodium/crypto_aead/aegis128l/aead_aegis128l.c
function crypto_aead_aegis128l_keybytes (line 24) | size_t
function crypto_aead_aegis128l_nsecbytes (line 30) | size_t
function crypto_aead_aegis128l_npubbytes (line 36) | size_t
function crypto_aead_aegis128l_abytes (line 42) | size_t
function crypto_aead_aegis128l_messagebytes_max (line 48) | size_t
function crypto_aead_aegis128l_keygen (line 54) | void
function crypto_aead_aegis128l_encrypt (line 60) | int
function crypto_aead_aegis128l_decrypt (line 80) | int
function crypto_aead_aegis128l_encrypt_detached (line 103) | int
function crypto_aead_aegis128l_decrypt_detached (line 124) | int
function _crypto_aead_aegis128l_pick_best_implementation (line 142) | int
FILE: src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.c
type __m128i (line 32) | typedef __m128i aes_block_t;
function aegis128l_update (line 40) | static inline void
type aegis128l_implementation (line 61) | struct aegis128l_implementation
FILE: src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.h
type aegis128l_implementation (line 6) | struct aegis128l_implementation
FILE: src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c
type uint8x16_t (line 37) | typedef uint8x16_t aes_block_t;
function aegis128l_update (line 45) | static inline void
type aegis128l_implementation (line 63) | struct aegis128l_implementation
FILE: src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.h
type aegis128l_implementation (line 6) | struct aegis128l_implementation
FILE: src/libsodium/crypto_aead/aegis128l/aegis128l_common.h
function aegis128l_init (line 3) | static inline void
function aegis128l_mac (line 35) | static inline int
function aegis128l_absorb (line 69) | static inline void
function aegis128l_absorb2 (line 79) | static inline void
function aegis128l_enc (line 92) | static inline void
function aegis128l_dec (line 112) | static inline void
function aegis128l_declast (line 131) | static inline void
function encrypt_detached (line 161) | static int
function decrypt_detached (line 196) | static int
FILE: src/libsodium/crypto_aead/aegis128l/aegis128l_soft.c
type SoftAesBlock (line 25) | typedef SoftAesBlock aes_block_t;
function aegis128l_update (line 33) | static inline void
type aegis128l_implementation (line 54) | struct aegis128l_implementation
FILE: src/libsodium/crypto_aead/aegis128l/aegis128l_soft.h
type aegis128l_implementation (line 6) | struct aegis128l_implementation
FILE: src/libsodium/crypto_aead/aegis128l/implementations.h
type aegis128l_implementation (line 9) | typedef struct aegis128l_implementation {
FILE: src/libsodium/crypto_aead/aegis256/aead_aegis256.c
function crypto_aead_aegis256_keybytes (line 24) | size_t
function crypto_aead_aegis256_nsecbytes (line 30) | size_t
function crypto_aead_aegis256_npubbytes (line 36) | size_t
function crypto_aead_aegis256_abytes (line 42) | size_t
function crypto_aead_aegis256_messagebytes_max (line 48) | size_t
function crypto_aead_aegis256_keygen (line 54) | void
function crypto_aead_aegis256_encrypt (line 60) | int
function crypto_aead_aegis256_decrypt (line 80) | int
function crypto_aead_aegis256_encrypt_detached (line 103) | int
function crypto_aead_aegis256_decrypt_detached (line 124) | int
function _crypto_aead_aegis256_pick_best_implementation (line 141) | int
FILE: src/libsodium/crypto_aead/aegis256/aegis256_aesni.c
type __m128i (line 32) | typedef __m128i aes_block_t;
function aegis256_update (line 40) | static inline void
type aegis256_implementation (line 56) | struct aegis256_implementation
FILE: src/libsodium/crypto_aead/aegis256/aegis256_aesni.h
type aegis256_implementation (line 6) | struct aegis256_implementation
FILE: src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c
type uint8x16_t (line 37) | typedef uint8x16_t aes_block_t;
function aegis256_update (line 45) | static inline void
type aegis256_implementation (line 61) | struct aegis256_implementation
FILE: src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.h
type aegis256_implementation (line 6) | struct aegis256_implementation
FILE: src/libsodium/crypto_aead/aegis256/aegis256_common.h
function aegis256_init (line 3) | static inline void
function aegis256_mac (line 37) | static inline int
function aegis256_absorb (line 69) | static inline void
function aegis256_absorb2 (line 78) | static inline void
function aegis256_enc (line 89) | static inline void
function aegis256_dec (line 105) | static inline void
function aegis256_declast (line 120) | static inline void
function encrypt_detached (line 144) | static int
function decrypt_detached (line 179) | static int
FILE: src/libsodium/crypto_aead/aegis256/aegis256_soft.c
type SoftAesBlock (line 25) | typedef SoftAesBlock aes_block_t;
function aegis256_update (line 33) | static inline void
type aegis256_implementation (line 49) | struct aegis256_implementation
FILE: src/libsodium/crypto_aead/aegis256/aegis256_soft.h
type aegis256_implementation (line 6) | struct aegis256_implementation
FILE: src/libsodium/crypto_aead/aegis256/implementations.h
type aegis256_implementation (line 9) | typedef struct aegis256_implementation {
FILE: src/libsodium/crypto_aead/aes256gcm/aead_aes256gcm.c
function crypto_aead_aes256gcm_keybytes (line 8) | size_t
function crypto_aead_aes256gcm_nsecbytes (line 14) | size_t
function crypto_aead_aes256gcm_npubbytes (line 20) | size_t
function crypto_aead_aes256gcm_abytes (line 26) | size_t
function crypto_aead_aes256gcm_statebytes (line 32) | size_t
function crypto_aead_aes256gcm_messagebytes_max (line 38) | size_t
function crypto_aead_aes256gcm_keygen (line 44) | void
function crypto_aead_aes256gcm_encrypt_detached (line 57) | int
function crypto_aead_aes256gcm_encrypt (line 68) | int
function crypto_aead_aes256gcm_decrypt_detached (line 78) | int
function crypto_aead_aes256gcm_decrypt (line 89) | int
function crypto_aead_aes256gcm_beforenm (line 99) | int
function crypto_aead_aes256gcm_encrypt_detached_afternm (line 106) | int
function crypto_aead_aes256gcm_encrypt_afternm (line 118) | int
function crypto_aead_aes256gcm_decrypt_detached_afternm (line 129) | int
function crypto_aead_aes256gcm_decrypt_afternm (line 140) | int
function crypto_aead_aes256gcm_is_available (line 151) | int
FILE: src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c
type __m128i (line 39) | typedef __m128i BlockVec;
type I256 (line 73) | typedef struct I256 {
type BlockVec (line 79) | typedef BlockVec Precomp;
type GHash (line 81) | typedef struct GHash {
type State (line 85) | typedef struct State {
function expand256 (line 90) | static void __vectorcall expand256(const unsigned char key[KEYBYTES], Bl...
function encrypt (line 131) | static inline void
function encrypt_xor_block (line 148) | static inline void __vectorcall encrypt_xor_block(const State *st, unsig...
function encrypt_xor_wide (line 166) | static inline void __vectorcall encrypt_xor_wide(const State *st,
function I256 (line 193) | static inline I256 __vectorcall clsq128(const BlockVec x)
function I256 (line 208) | static inline I256 __vectorcall clmul128(const BlockVec x, const BlockVe...
function BlockVec (line 237) | static inline BlockVec __vectorcall gcm_reduce(const I256 x)
function precomp (line 253) | static inline void __vectorcall precomp(Precomp hx[PC_COUNT], const size...
function precomp_for_block_count (line 266) | static void __vectorcall precomp_for_block_count(Precomp hx[...
function gh_init (line 293) | static inline void
function I256 (line 299) | static inline I256 __vectorcall gh_update0(const GHash *const sth, const...
function gh_update (line 306) | static inline void __vectorcall gh_update(I256 *const u, const unsigned ...
function gh_ad_blocks (line 316) | static inline void
function BlockVec (line 366) | static inline BlockVec __vectorcall incr_counters(BlockVec rev_counters[...
function required_blocks (line 382) | static inline size_t
function aes_gcm_encrypt_generic (line 399) | static void
function aes_gcm_decrypt_generic (line 577) | static void
function crypto_aead_aes256gcm_beforenm (line 719) | int
function crypto_aead_aes256gcm_encrypt_detached_afternm (line 736) | int
function crypto_aead_aes256gcm_encrypt (line 778) | int
function crypto_aead_aes256gcm_encrypt_detached (line 796) | int
function crypto_aead_aes256gcm_encrypt_afternm (line 818) | int
function crypto_aead_aes256gcm_verify_mac (line 833) | static int
function crypto_aead_aes256gcm_decrypt_detached_afternm (line 897) | int
function crypto_aead_aes256gcm_decrypt_afternm (line 942) | int
function crypto_aead_aes256gcm_decrypt_detached (line 965) | int
function crypto_aead_aes256gcm_decrypt (line 988) | int
function crypto_aead_aes256gcm_is_available (line 1010) | int
FILE: src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
type uint64x2_t (line 44) | typedef uint64x2_t BlockVec;
function uint64x2_t (line 72) | static __forceinline uint64x2_t
function uint64x2_t (line 80) | static __forceinline uint64x2_t
function BlockVec (line 129) | static inline BlockVec
type I256 (line 151) | typedef struct I256 {
type BlockVec (line 157) | typedef BlockVec Precomp;
type GHash (line 159) | typedef struct GHash {
type State (line 163) | typedef struct State {
function expand256 (line 168) | static void __vectorcall expand256(const unsigned char key[KEYBYTES], Bl...
function encrypt (line 209) | static inline void
function encrypt_xor_block (line 227) | static inline void __vectorcall encrypt_xor_block(const State *st, unsig...
function encrypt_xor_wide (line 245) | static inline void __vectorcall encrypt_xor_wide(const State *st,
function I256 (line 272) | static inline I256 __vectorcall clsq128(const BlockVec x)
function I256 (line 287) | static inline I256 __vectorcall clmul128(const BlockVec x, const BlockVe...
function BlockVec (line 316) | static inline BlockVec __vectorcall gcm_reduce(const I256 x)
function precomp (line 332) | static inline void __vectorcall precomp(Precomp hx[PC_COUNT], const size...
function precomp_for_block_count (line 345) | static void __vectorcall precomp_for_block_count(Precomp hx[...
function gh_init (line 372) | static inline void
function I256 (line 378) | static inline I256 __vectorcall gh_update0(const GHash *const sth, const...
function gh_update (line 385) | static inline void __vectorcall gh_update(I256 *const u, const unsigned ...
function gh_ad_blocks (line 395) | static inline void
function BlockVec (line 445) | static inline BlockVec __vectorcall incr_counters(BlockVec rev_counters[...
function required_blocks (line 461) | static inline size_t
function aes_gcm_encrypt_generic (line 478) | static void
function aes_gcm_decrypt_generic (line 647) | static void
function crypto_aead_aes256gcm_beforenm (line 789) | int
function crypto_aead_aes256gcm_encrypt_detached_afternm (line 806) | int
function crypto_aead_aes256gcm_encrypt (line 848) | int
function crypto_aead_aes256gcm_encrypt_detached (line 866) | int
function crypto_aead_aes256gcm_encrypt_afternm (line 888) | int
function crypto_aead_aes256gcm_verify_mac (line 903) | static int
function crypto_aead_aes256gcm_decrypt_detached_afternm (line 967) | int
function crypto_aead_aes256gcm_decrypt_afternm (line 1012) | int
function crypto_aead_aes256gcm_decrypt_detached (line 1035) | int
function crypto_aead_aes256gcm_decrypt (line 1058) | int
function crypto_aead_aes256gcm_is_available (line 1080) | int
FILE: src/libsodium/crypto_aead/chacha20poly1305/aead_chacha20poly1305.c
function crypto_aead_chacha20poly1305_encrypt_detached (line 20) | int
function crypto_aead_chacha20poly1305_encrypt (line 60) | int
function crypto_aead_chacha20poly1305_ietf_encrypt_detached (line 91) | int
function crypto_aead_chacha20poly1305_ietf_encrypt (line 135) | int
function crypto_aead_chacha20poly1305_decrypt_detached (line 166) | int
function crypto_aead_chacha20poly1305_decrypt (line 217) | int
function crypto_aead_chacha20poly1305_ietf_decrypt_detached (line 247) | int
function crypto_aead_chacha20poly1305_ietf_decrypt (line 302) | int
function crypto_aead_chacha20poly1305_ietf_keybytes (line 332) | size_t
function crypto_aead_chacha20poly1305_ietf_npubbytes (line 338) | size_t
function crypto_aead_chacha20poly1305_ietf_nsecbytes (line 344) | size_t
function crypto_aead_chacha20poly1305_ietf_abytes (line 350) | size_t
function crypto_aead_chacha20poly1305_ietf_messagebytes_max (line 356) | size_t
function crypto_aead_chacha20poly1305_ietf_keygen (line 362) | void
function crypto_aead_chacha20poly1305_keybytes (line 368) | size_t
function crypto_aead_chacha20poly1305_npubbytes (line 374) | size_t
function crypto_aead_chacha20poly1305_nsecbytes (line 380) | size_t
function crypto_aead_chacha20poly1305_abytes (line 386) | size_t
function crypto_aead_chacha20poly1305_messagebytes_max (line 392) | size_t
function crypto_aead_chacha20poly1305_keygen (line 398) | void
FILE: src/libsodium/crypto_aead/xchacha20poly1305/aead_xchacha20poly1305.c
function _encrypt_detached (line 22) | static int
function _decrypt_detached (line 66) | static int
function crypto_aead_xchacha20poly1305_ietf_encrypt_detached (line 121) | int
function crypto_aead_xchacha20poly1305_ietf_encrypt (line 147) | int
function crypto_aead_xchacha20poly1305_ietf_decrypt_detached (line 175) | int
function crypto_aead_xchacha20poly1305_ietf_decrypt (line 199) | int
function crypto_aead_xchacha20poly1305_ietf_keybytes (line 229) | size_t
function crypto_aead_xchacha20poly1305_ietf_npubbytes (line 235) | size_t
function crypto_aead_xchacha20poly1305_ietf_nsecbytes (line 241) | size_t
function crypto_aead_xchacha20poly1305_ietf_abytes (line 247) | size_t
function crypto_aead_xchacha20poly1305_ietf_messagebytes_max (line 253) | size_t
function crypto_aead_xchacha20poly1305_ietf_keygen (line 259) | void
FILE: src/libsodium/crypto_auth/crypto_auth.c
function crypto_auth_bytes (line 5) | size_t
function crypto_auth_keybytes (line 11) | size_t
function crypto_auth (line 23) | int
function crypto_auth_verify (line 30) | int
function crypto_auth_keygen (line 37) | void
FILE: src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256.c
function crypto_auth_hmacsha256_bytes (line 13) | size_t
function crypto_auth_hmacsha256_keybytes (line 19) | size_t
function crypto_auth_hmacsha256_statebytes (line 25) | size_t
function crypto_auth_hmacsha256_keygen (line 31) | void
function crypto_auth_hmacsha256_init (line 37) | int
function crypto_auth_hmacsha256_update (line 76) | int
function crypto_auth_hmacsha256_final (line 85) | int
function crypto_auth_hmacsha256 (line 100) | int
function crypto_auth_hmacsha256_verify (line 113) | int
FILE: src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.c
function crypto_auth_hmacsha512_bytes (line 13) | size_t
function crypto_auth_hmacsha512_keybytes (line 19) | size_t
function crypto_auth_hmacsha512_statebytes (line 25) | size_t
function crypto_auth_hmacsha512_keygen (line 31) | void
function crypto_auth_hmacsha512_init (line 37) | int
function crypto_auth_hmacsha512_update (line 76) | int
function crypto_auth_hmacsha512_final (line 85) | int
function crypto_auth_hmacsha512 (line 100) | int
function crypto_auth_hmacsha512_verify (line 113) | int
FILE: src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.c
function crypto_auth_hmacsha512256_bytes (line 13) | size_t
function crypto_auth_hmacsha512256_keybytes (line 19) | size_t
function crypto_auth_hmacsha512256_statebytes (line 25) | size_t
function crypto_auth_hmacsha512256_keygen (line 31) | void
function crypto_auth_hmacsha512256_init (line 38) | int
function crypto_auth_hmacsha512256_update (line 46) | int
function crypto_auth_hmacsha512256_final (line 55) | int
function crypto_auth_hmacsha512256 (line 67) | int
function crypto_auth_hmacsha512256_verify (line 81) | int
FILE: src/libsodium/crypto_box/crypto_box.c
function crypto_box_seedbytes (line 4) | size_t
function crypto_box_publickeybytes (line 10) | size_t
function crypto_box_secretkeybytes (line 16) | size_t
function crypto_box_beforenmbytes (line 22) | size_t
function crypto_box_noncebytes (line 28) | size_t
function crypto_box_zerobytes (line 34) | size_t
function crypto_box_boxzerobytes (line 40) | size_t
function crypto_box_macbytes (line 46) | size_t
function crypto_box_messagebytes_max (line 52) | size_t
function crypto_box_seed_keypair (line 64) | int
function crypto_box_keypair (line 71) | int
function crypto_box_beforenm (line 77) | int
function crypto_box_afternm (line 84) | int
function crypto_box_open_afternm (line 92) | int
function crypto_box (line 100) | int
function crypto_box_open (line 108) | int
FILE: src/libsodium/crypto_box/crypto_box_easy.c
function crypto_box_detached_afternm (line 12) | int
function crypto_box_detached (line 20) | int
function crypto_box_easy_afternm (line 39) | int
function crypto_box_easy (line 51) | int
function crypto_box_open_detached_afternm (line 63) | int
function crypto_box_open_detached (line 73) | int
function crypto_box_open_easy_afternm (line 91) | int
function crypto_box_open_easy (line 104) | int
FILE: src/libsodium/crypto_box/crypto_box_seal.c
function _crypto_box_seal_nonce (line 9) | static int
function crypto_box_seal (line 23) | int
function crypto_box_seal_open (line 44) | int
function crypto_box_sealbytes (line 62) | size_t
FILE: src/libsodium/crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c
function crypto_box_curve25519xchacha20poly1305_seed_keypair (line 17) | int
function crypto_box_curve25519xchacha20poly1305_keypair (line 31) | int
function crypto_box_curve25519xchacha20poly1305_beforenm (line 40) | int
function crypto_box_curve25519xchacha20poly1305_detached_afternm (line 57) | int
function crypto_box_curve25519xchacha20poly1305_detached (line 65) | int
function crypto_box_curve25519xchacha20poly1305_easy_afternm (line 86) | int
function crypto_box_curve25519xchacha20poly1305_easy (line 100) | int
function crypto_box_curve25519xchacha20poly1305_open_detached_afternm (line 113) | int
function crypto_box_curve25519xchacha20poly1305_open_detached (line 122) | int
function crypto_box_curve25519xchacha20poly1305_open_easy_afternm (line 141) | int
function crypto_box_curve25519xchacha20poly1305_open_easy (line 154) | int
function crypto_box_curve25519xchacha20poly1305_seedbytes (line 167) | size_t
function crypto_box_curve25519xchacha20poly1305_publickeybytes (line 173) | size_t
function crypto_box_curve25519xchacha20poly1305_secretkeybytes (line 179) | size_t
function crypto_box_curve25519xchacha20poly1305_beforenmbytes (line 185) | size_t
function crypto_box_curve25519xchacha20poly1305_noncebytes (line 191) | size_t
function crypto_box_curve25519xchacha20poly1305_macbytes (line 197) | size_t
function crypto_box_curve25519xchacha20poly1305_messagebytes_max (line 203) | size_t
FILE: src/libsodium/crypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.c
function _crypto_box_curve25519xchacha20poly1305_seal_nonce (line 9) | static int
function crypto_box_curve25519xchacha20poly1305_seal (line 28) | int
function crypto_box_curve25519xchacha20poly1305_seal_open (line 51) | int
function crypto_box_curve25519xchacha20poly1305_sealbytes (line 73) | size_t
FILE: src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c
function crypto_box_curve25519xsalsa20poly1305_seed_keypair (line 11) | int
function crypto_box_curve25519xsalsa20poly1305_keypair (line 25) | int
function crypto_box_curve25519xsalsa20poly1305_beforenm (line 34) | int
function crypto_box_curve25519xsalsa20poly1305_afternm (line 51) | int
function crypto_box_curve25519xsalsa20poly1305_open_afternm (line 61) | int
function crypto_box_curve25519xsalsa20poly1305 (line 71) | int
function crypto_box_curve25519xsalsa20poly1305_open (line 90) | int
function crypto_box_curve25519xsalsa20poly1305_seedbytes (line 107) | size_t
function crypto_box_curve25519xsalsa20poly1305_publickeybytes (line 113) | size_t
function crypto_box_curve25519xsalsa20poly1305_secretkeybytes (line 119) | size_t
function crypto_box_curve25519xsalsa20poly1305_beforenmbytes (line 125) | size_t
function crypto_box_curve25519xsalsa20poly1305_noncebytes (line 131) | size_t
function crypto_box_curve25519xsalsa20poly1305_zerobytes (line 137) | size_t
function crypto_box_curve25519xsalsa20poly1305_boxzerobytes (line 143) | size_t
function crypto_box_curve25519xsalsa20poly1305_macbytes (line 149) | size_t
function crypto_box_curve25519xsalsa20poly1305_messagebytes_max (line 155) | size_t
FILE: src/libsodium/crypto_core/ed25519/core_ed25519.c
function crypto_core_ed25519_is_valid_point (line 13) | int
function crypto_core_ed25519_add (line 28) | int
function crypto_core_ed25519_sub (line 44) | int
function _string_to_points (line 62) | static int
function crypto_core_ed25519_from_string_nu (line 91) | int
function crypto_core_ed25519_from_string (line 100) | int
function crypto_core_ed25519_random (line 115) | void
function crypto_core_ed25519_scalar_random (line 124) | void
function crypto_core_ed25519_scalar_invert (line 134) | int
function crypto_core_ed25519_scalar_negate (line 149) | void
function crypto_core_ed25519_scalar_complement (line 167) | void
function crypto_core_ed25519_scalar_add (line 187) | void
function crypto_core_ed25519_scalar_sub (line 202) | void
function crypto_core_ed25519_scalar_mul (line 212) | void
function crypto_core_ed25519_scalar_reduce (line 219) | void
function crypto_core_ed25519_scalar_is_canonical (line 231) | int
function crypto_core_ed25519_scalar_from_string (line 239) | int
function crypto_core_ed25519_bytes (line 263) | size_t
function crypto_core_ed25519_nonreducedscalarbytes (line 269) | size_t
function crypto_core_ed25519_uniformbytes (line 275) | size_t
function crypto_core_ed25519_hashbytes (line 281) | size_t
function crypto_core_ed25519_scalarbytes (line 287) | size_t
FILE: src/libsodium/crypto_core/ed25519/core_h2c.c
function core_h2c_string_to_hash_sha256 (line 13) | static int
function core_h2c_string_to_hash_sha512 (line 69) | static int
function core_h2c_string_to_hash (line 119) | int
FILE: src/libsodium/crypto_core/ed25519/core_ristretto255.c
function crypto_core_ristretto255_is_valid_point (line 15) | int
function crypto_core_ristretto255_add (line 26) | int
function crypto_core_ristretto255_sub (line 42) | int
function crypto_core_ristretto255_from_hash (line 58) | int
function _string_to_element (line 66) | static int
function crypto_core_ristretto255_from_string (line 83) | int
function crypto_core_ristretto255_random (line 92) | void
function crypto_core_ristretto255_scalar_random (line 101) | void
function crypto_core_ristretto255_scalar_invert (line 107) | int
function crypto_core_ristretto255_scalar_negate (line 114) | void
function crypto_core_ristretto255_scalar_complement (line 121) | void
function crypto_core_ristretto255_scalar_add (line 128) | void
function crypto_core_ristretto255_scalar_sub (line 135) | void
function crypto_core_ristretto255_scalar_mul (line 142) | void
function crypto_core_ristretto255_scalar_reduce (line 149) | void
function crypto_core_ristretto255_scalar_is_canonical (line 156) | int
function crypto_core_ristretto255_scalar_from_string (line 162) | int
function crypto_core_ristretto255_bytes (line 172) | size_t
function crypto_core_ristretto255_nonreducedscalarbytes (line 178) | size_t
function crypto_core_ristretto255_hashbytes (line 184) | size_t
function crypto_core_ristretto255_scalarbytes (line 190) | size_t
FILE: src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c
function load_3 (line 11) | static inline uint64_t
function load_4 (line 23) | static inline uint64_t
function fe25519_sqmul (line 53) | static inline void
function fe25519_invert (line 67) | void
function fe25519_pow22523 (line 123) | static void
function fe25519_cneg (line 174) | static inline void
function fe25519_abs (line 183) | static inline void
function fe25519_unchecked_sqrt (line 189) | static void
function fe25519_sqrt (line 206) | static int
function fe25519_notsquare (line 220) | static int
function ge25519_add_cached (line 262) | static void
function slide_vartime (line 280) | static void
function ge25519_frombytes (line 325) | int
function ge25519_frombytes_negate_vartime (line 363) | int
function ge25519_add_precomp (line 412) | static void
function ge25519_sub_precomp (line 433) | static void
function ge25519_p1p1_to_p2 (line 454) | void
function ge25519_p1p1_to_p3 (line 466) | void
function ge25519_p2_to_p3 (line 478) | void
function ge25519_p2_0 (line 487) | static void
function ge25519_p2_dbl (line 499) | static void
function ge25519_p3_0 (line 515) | static void
function ge25519_cached_0 (line 524) | static void
function ge25519_p3_to_cached (line 537) | static void
function ge25519_p3_to_precomp (line 546) | static void
function ge25519_p3_to_p2 (line 567) | static void
function ge25519_p3_tobytes (line 575) | void
function ge25519_p3_dbl (line 593) | static void
function ge25519_precomp_0 (line 601) | static void
function equal (line 609) | static unsigned char
function negative (line 631) | static unsigned char
function ge25519_cmov (line 647) | static void
function ge25519_cmov_cached (line 655) | static void
function ge25519_cmov8 (line 664) | static void
function ge25519_cmov8_base (line 686) | static void
function ge25519_cmov8_cached (line 699) | static void
function ge25519_sub_cached (line 726) | static void
function ge25519_tobytes (line 745) | void
function ge25519_double_scalarmult_vartime (line 769) | void
function ge25519_scalarmult (line 865) | void
function ge25519_scalarmult_base (line 958) | void
function ge25519_p3p3_dbl (line 1010) | static void
function ge25519_p3_neg (line 1020) | static void
function ge25519_p3_add (line 1030) | void
function ge25519_p3_sub (line 1042) | void
function ge25519_p3_dbladd (line 1052) | static void
function ge25519_mul_l (line 1069) | static void
function ge25519_is_on_curve (line 1117) | int
function ge25519_is_on_main_subgroup (line 1142) | int
function ge25519_is_canonical (line 1155) | int
function ge25519_has_small_order (line 1172) | int
function sc25519_mul (line 1201) | void
function sc25519_muladd (line 1674) | void
function sc25519_sq (line 2160) | static inline void
function sc25519_sqmul (line 2177) | static inline void
function sc25519_invert (line 2188) | void
function sc25519_reduce (line 2249) | void
function sc25519_is_canonical (line 2573) | int
function ge25519_mont_to_ed (line 2596) | static void
function ge25519_xmont_to_ymont (line 2622) | static int
function ge25519_clear_cofactor (line 2638) | void
function ge25519_elligator2 (line 2652) | static void
function ge25519_from_uniform (line 2689) | void
function fe25519_reduce64 (line 2715) | static void
function ge25519_from_hash (line 2738) | void
function ristretto255_sqrt_ratio_m1 (line 2765) | static int
function ristretto255_is_canonical (line 2801) | static int
function ristretto255_frombytes (line 2820) | int
function ristretto255_p3_tobytes (line 2870) | void
function ristretto255_elligator (line 2928) | static void
function ristretto255_from_hash (line 2979) | void
FILE: src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h
function fe25519_frombytes (line 7) | void
function fe25519_reduce (line 101) | static void
function fe25519_tobytes (line 184) | void
FILE: src/libsodium/crypto_core/ed25519/ref10/fe_51/fe.h
function fe25519_frombytes (line 7) | void
function fe25519_reduce (line 26) | static void
function fe25519_tobytes (line 103) | void
FILE: src/libsodium/crypto_core/hchacha20/core_hchacha20.c
function crypto_core_hchacha20 (line 16) | int
function crypto_core_hchacha20_outputbytes (line 71) | size_t
function crypto_core_hchacha20_inputbytes (line 77) | size_t
function crypto_core_hchacha20_keybytes (line 83) | size_t
function crypto_core_hchacha20_constbytes (line 89) | size_t
FILE: src/libsodium/crypto_core/hsalsa20/core_hsalsa20.c
function crypto_core_hsalsa20_outputbytes (line 3) | size_t
function crypto_core_hsalsa20_inputbytes (line 8) | size_t
function crypto_core_hsalsa20_keybytes (line 13) | size_t
function crypto_core_hsalsa20_constbytes (line 18) | size_t
FILE: src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c
function crypto_core_hsalsa20 (line 16) | int
FILE: src/libsodium/crypto_core/keccak1600/armsha3/keccak1600_armsha3.c
function keccakf_24_rounds (line 93) | static void
function keccakf_12_rounds (line 156) | static void
function keccak1600_armsha3_permute_24 (line 213) | void
function keccak1600_armsha3_permute_12 (line 230) | void
function keccak1600_armsha3_init (line 247) | void
function keccak1600_armsha3_xor_bytes (line 253) | void
function keccak1600_armsha3_extract_bytes (line 264) | void
FILE: src/libsodium/crypto_core/keccak1600/keccak1600.c
function crypto_core_keccak1600_statebytes (line 19) | size_t
function crypto_core_keccak1600_init (line 25) | void
function crypto_core_keccak1600_xor_bytes (line 31) | void
function crypto_core_keccak1600_extract_bytes (line 39) | void
function crypto_core_keccak1600_permute_24 (line 47) | void
function crypto_core_keccak1600_permute_12 (line 53) | void
FILE: src/libsodium/crypto_core/keccak1600/ref/keccak1600_ref.c
function keccakf_24_rounds (line 326) | static void
function keccakf_12_rounds (line 364) | static void
function keccak1600_ref_permute_24 (line 390) | void
function keccak1600_ref_permute_12 (line 407) | void
function keccak1600_ref_init (line 424) | void
function keccak1600_ref_xor_bytes (line 430) | void
function keccak1600_ref_extract_bytes (line 441) | void
FILE: src/libsodium/crypto_core/salsa/ref/core_salsa_ref.c
function crypto_core_salsa (line 10) | static void
function crypto_core_salsa20 (line 97) | int
function crypto_core_salsa20_outputbytes (line 105) | size_t
function crypto_core_salsa20_inputbytes (line 111) | size_t
function crypto_core_salsa20_keybytes (line 117) | size_t
function crypto_core_salsa20_constbytes (line 123) | size_t
function crypto_core_salsa2012 (line 131) | int
function crypto_core_salsa2012_outputbytes (line 139) | size_t
function crypto_core_salsa2012_inputbytes (line 145) | size_t
function crypto_core_salsa2012_keybytes (line 151) | size_t
function crypto_core_salsa2012_constbytes (line 157) | size_t
function crypto_core_salsa208 (line 163) | int
function crypto_core_salsa208_outputbytes (line 171) | size_t
function crypto_core_salsa208_inputbytes (line 177) | size_t
function crypto_core_salsa208_keybytes (line 183) | size_t
function crypto_core_salsa208_constbytes (line 189) | size_t
FILE: src/libsodium/crypto_core/softaes/softaes.c
function sub_word (line 36) | static inline uint32_t
function rot_word (line 43) | static inline uint32_t
function softaes_expand_key128 (line 49) | void
function softaes_expand_key256 (line 80) | void
function xtime (line 121) | static inline uint8_t
function gf_mul_09 (line 127) | static inline uint8_t
function gf_mul_0b (line 133) | static inline uint8_t
function gf_mul_0d (line 139) | static inline uint8_t
function gf_mul_0e (line 145) | static inline uint8_t
function inv_mix_column (line 151) | static uint32_t
function SoftAesBlock (line 167) | SoftAesBlock
function softaes_invert_key_schedule128 (line 178) | void
function softaes_invert_key_schedule256 (line 188) | void
function SoftAesBlock (line 339) | SoftAesBlock
function SoftAesBlock (line 416) | SoftAesBlock
function SoftAesBlock (line 454) | SoftAesBlock
function SoftAesBlock (line 484) | SoftAesBlock
function SoftAesBlock (line 557) | static SoftAesBlock
function SoftAesBlock (line 608) | SoftAesBlock
function SoftAesBlock (line 667) | SoftAesBlock
function SoftAesBlock (line 705) | SoftAesBlock
function SoftAesBlock (line 802) | SoftAesBlock
FILE: src/libsodium/crypto_generichash/blake2b/generichash_blake2.c
function crypto_generichash_blake2b_bytes_min (line 4) | size_t
function crypto_generichash_blake2b_bytes_max (line 9) | size_t
function crypto_generichash_blake2b_bytes (line 14) | size_t
function crypto_generichash_blake2b_keybytes_min (line 19) | size_t
function crypto_generichash_blake2b_keybytes_max (line 24) | size_t
function crypto_generichash_blake2b_keybytes (line 29) | size_t
function crypto_generichash_blake2b_saltbytes (line 34) | size_t
function crypto_generichash_blake2b_personalbytes (line 39) | size_t
function crypto_generichash_blake2b_statebytes (line 44) | size_t
function crypto_generichash_blake2b_keygen (line 51) | void
FILE: src/libsodium/crypto_generichash/blake2b/ref/blake2.h
type blake2b_constant (line 27) | enum blake2b_constant {
type blake2b_param (line 43) | typedef struct blake2b_param_ {
type blake2b_state (line 57) | typedef struct blake2b_state {
FILE: src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.c
function blake2b_compress_avx2 (line 36) | int
FILE: src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.h
function LOADU64 (line 19) | static inline uint64_t
FILE: src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.c
function blake2b_compress_ref (line 30) | int
FILE: src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.c
function blake2b_compress_sse41 (line 34) | int
FILE: src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.c
function blake2b_compress_ssse3 (line 29) | int
FILE: src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c
function blake2b_set_lastnode (line 37) | static inline int
function blake2b_is_lastblock (line 45) | static inline int
function blake2b_set_lastblock (line 51) | static inline int
function blake2b_increment_counter (line 61) | static inline int
function blake2b_param_set_salt (line 77) | static inline int
function blake2b_param_set_personal (line 84) | static inline int
function blake2b_init0 (line 92) | static inline int
function blake2b_init_param (line 108) | int
function blake2b_init (line 125) | int
function blake2b_init_salt_personal (line 147) | int
function blake2b_init_key (line 178) | int
function blake2b_init_key_salt_personal (line 215) | int
function blake2b_update (line 262) | int
function blake2b_final (line 291) | int
function blake2b (line 334) | int
function blake2b_salt_personal (line 371) | int
function blake2b_pick_best_implementation (line 410) | int
FILE: src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.c
function crypto_generichash_blake2b (line 11) | int
function crypto_generichash_blake2b_salt_personal (line 27) | int
function crypto_generichash_blake2b_init (line 45) | int
function crypto_generichash_blake2b_init_salt_personal (line 68) | int
function crypto_generichash_blake2b_update (line 94) | int
function crypto_generichash_blake2b_final (line 103) | int
function _crypto_generichash_blake2b_pick_best_implementation (line 112) | int
FILE: src/libsodium/crypto_generichash/crypto_generichash.c
function crypto_generichash_bytes_min (line 5) | size_t
function crypto_generichash_bytes_max (line 11) | size_t
function crypto_generichash_bytes (line 17) | size_t
function crypto_generichash_keybytes_min (line 23) | size_t
function crypto_generichash_keybytes_max (line 29) | size_t
function crypto_generichash_keybytes (line 35) | size_t
function crypto_generichash_statebytes (line 47) | size_t
function crypto_generichash (line 53) | int
function crypto_generichash_init (line 61) | int
function crypto_generichash_update (line 70) | int
function crypto_generichash_final (line 79) | int
function crypto_generichash_keygen (line 87) | void
FILE: src/libsodium/crypto_hash/crypto_hash.c
function crypto_hash_bytes (line 4) | size_t
function crypto_hash (line 10) | int
FILE: src/libsodium/crypto_hash/sha256/cp/hash_sha256_cp.c
function be32enc_vect (line 45) | static void
function SHA256_Transform (line 71) | static void
function be32dec_vect (line 207) | static void
function SHA256_Transform (line 254) | static void
function SHA256_Pad (line 312) | static void
function crypto_hash_sha256_init (line 335) | int
function crypto_hash_sha256_update (line 349) | int
function crypto_hash_sha256_final (line 391) | int
function crypto_hash_sha256 (line 404) | int
FILE: src/libsodium/crypto_hash/sha256/hash_sha256.c
function crypto_hash_sha256_bytes (line 3) | size_t
function crypto_hash_sha256_statebytes (line 9) | size_t
FILE: src/libsodium/crypto_hash/sha3/hash_sha3.c
type sha3_phase (line 13) | typedef enum { SHA3_PHASE_ABSORBING = 0, SHA3_PHASE_FINALIZED = 1 } sha3...
type sha3_state_internal (line 15) | typedef struct sha3_state_internal_ {
function sha3_init (line 23) | static int
function sha3_update (line 35) | static int
function sha3_final (line 58) | static int
function crypto_hash_sha3256_bytes (line 87) | size_t
function crypto_hash_sha3256_statebytes (line 93) | size_t
function crypto_hash_sha3256_init (line 99) | int
function crypto_hash_sha3256_update (line 107) | int
function crypto_hash_sha3256_final (line 114) | int
function crypto_hash_sha3256 (line 120) | int
function crypto_hash_sha3512_bytes (line 132) | size_t
function crypto_hash_sha3512_statebytes (line 138) | size_t
function crypto_hash_sha3512_init (line 144) | int
function crypto_hash_sha3512_update (line 152) | int
function crypto_hash_sha3512_final (line 159) | int
function crypto_hash_sha3512 (line 165) | int
FILE: src/libsodium/crypto_hash/sha512/cp/hash_sha512_cp.c
function be64enc_vect (line 40) | static void
function be64dec_vect (line 50) | static void
function SHA512_Transform (line 113) | static void
function SHA512_Pad (line 172) | static void
function crypto_hash_sha512_init (line 195) | int
function crypto_hash_sha512_update (line 210) | int
function crypto_hash_sha512_final (line 260) | int
function crypto_hash_sha512 (line 273) | int
FILE: src/libsodium/crypto_hash/sha512/hash_sha512.c
function crypto_hash_sha512_bytes (line 3) | size_t
function crypto_hash_sha512_statebytes (line 9) | size_t
FILE: src/libsodium/crypto_ipcrypt/crypto_ipcrypt.c
function crypto_ipcrypt_bytes (line 23) | size_t
function crypto_ipcrypt_keybytes (line 29) | size_t
function crypto_ipcrypt_nd_keybytes (line 35) | size_t
function crypto_ipcrypt_nd_tweakbytes (line 41) | size_t
function crypto_ipcrypt_nd_inputbytes (line 47) | size_t
function crypto_ipcrypt_nd_outputbytes (line 53) | size_t
function crypto_ipcrypt_ndx_keybytes (line 59) | size_t
function crypto_ipcrypt_ndx_tweakbytes (line 65) | size_t
function crypto_ipcrypt_ndx_inputbytes (line 71) | size_t
function crypto_ipcrypt_ndx_outputbytes (line 77) | size_t
function crypto_ipcrypt_pfx_keybytes (line 83) | size_t
function crypto_ipcrypt_pfx_bytes (line 89) | size_t
function crypto_ipcrypt_keygen (line 95) | void
function crypto_ipcrypt_nd_keygen (line 101) | void
function crypto_ipcrypt_ndx_keygen (line 107) | void
function crypto_ipcrypt_pfx_keygen (line 113) | void
function crypto_ipcrypt_encrypt (line 119) | void
function crypto_ipcrypt_decrypt (line 127) | void
function crypto_ipcrypt_nd_encrypt (line 135) | void
function crypto_ipcrypt_nd_decrypt (line 144) | void
function crypto_ipcrypt_ndx_encrypt (line 152) | void
function crypto_ipcrypt_ndx_decrypt (line 161) | void
function crypto_ipcrypt_pfx_encrypt (line 169) | void
function crypto_ipcrypt_pfx_decrypt (line 177) | void
function _crypto_ipcrypt_pick_best_implementation (line 185) | int
FILE: src/libsodium/crypto_ipcrypt/implementations.h
type ipcrypt_implementation (line 9) | typedef struct ipcrypt_implementation {
FILE: src/libsodium/crypto_ipcrypt/ipcrypt_aesni.c
type __m128i (line 25) | typedef __m128i BlockVec;
type BlockVec (line 41) | typedef BlockVec KeySchedule[1 + ROUNDS];
function expand_key (line 43) | static void
function aes_encrypt (line 70) | static void
function aes_decrypt (line 84) | static void
function BlockVec (line 103) | static BlockVec
function aes_encrypt_with_tweak (line 111) | static void
function aes_decrypt_with_tweak (line 127) | static void
function BlockVec (line 149) | static BlockVec
function aes_xex_encrypt (line 163) | static void
function aes_xex_decrypt (line 179) | static void
function encrypt (line 200) | static void
function decrypt (line 210) | static void
function nd_encrypt (line 220) | static void
function nd_decrypt (line 231) | static void
function ndx_encrypt (line 241) | static void
function ndx_decrypt (line 272) | static void
function is_ipv4_mapped (line 302) | static int
function pfx_get_bit (line 310) | static uint8_t
function pfx_set_bit (line 316) | static void
function pfx_shift_left (line 329) | static void
function pfx_pad_prefix (line 340) | static void
function pfx_encrypt (line 353) | static void
function pfx_decrypt (line 426) | static void
type ipcrypt_implementation (line 501) | struct ipcrypt_implementation
FILE: src/libsodium/crypto_ipcrypt/ipcrypt_aesni.h
type ipcrypt_implementation (line 6) | struct ipcrypt_implementation
FILE: src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c
type uint64x2_t (line 32) | typedef uint64x2_t BlockVec;
type BlockVec (line 56) | typedef BlockVec KeySchedule[1 + ROUNDS];
function BlockVec (line 58) | static BlockVec
function expand_key (line 70) | static void
function aes_encrypt (line 97) | static void
function aes_decrypt (line 112) | static void
function BlockVec (line 132) | static BlockVec
function aes_encrypt_with_tweak (line 138) | static void
function aes_decrypt_with_tweak (line 155) | static void
function BlockVec (line 178) | static BlockVec
function aes_xex_encrypt (line 193) | static void
function aes_xex_decrypt (line 210) | static void
function encrypt (line 232) | static void
function decrypt (line 242) | static void
function nd_encrypt (line 252) | static void
function nd_decrypt (line 263) | static void
function ndx_encrypt (line 273) | static void
function ndx_decrypt (line 304) | static void
function is_ipv4_mapped (line 334) | static int
function pfx_get_bit (line 342) | static uint8_t
function pfx_set_bit (line 348) | static void
function pfx_shift_left (line 361) | static void
function pfx_pad_prefix (line 373) | static void
function pfx_encrypt (line 386) | static void
function pfx_decrypt (line 461) | static void
type ipcrypt_implementation (line 538) | struct ipcrypt_implementation
FILE: src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.h
type ipcrypt_implementation (line 6) | struct ipcrypt_implementation
FILE: src/libsodium/crypto_ipcrypt/ipcrypt_soft.c
type SoftAesBlock (line 15) | typedef SoftAesBlock aes_block_t;
type aes_block_t (line 27) | typedef aes_block_t KeySchedule[1 + ROUNDS];
function expand_key (line 29) | static void
function aes_encrypt (line 35) | static void
function aes_decrypt (line 49) | static void
function aes_block_t (line 70) | static aes_block_t
function aes_encrypt_with_tweak (line 83) | static void
function aes_decrypt_with_tweak (line 99) | static void
function aes_block_t (line 123) | static aes_block_t
function aes_xex_encrypt (line 137) | static void
function aes_xex_decrypt (line 153) | static void
function encrypt (line 176) | static void
function decrypt (line 186) | static void
function nd_encrypt (line 196) | static void
function nd_decrypt (line 207) | static void
function ndx_encrypt (line 217) | static void
function ndx_decrypt (line 248) | static void
function is_ipv4_mapped (line 278) | static int
function pfx_get_bit (line 286) | static uint8_t
function pfx_set_bit (line 292) | static void
function pfx_shift_left (line 305) | static void
function pfx_pad_prefix (line 316) | static void
function pfx_encrypt (line 329) | static void
function pfx_decrypt (line 402) | static void
type ipcrypt_implementation (line 477) | struct ipcrypt_implementation
FILE: src/libsodium/crypto_ipcrypt/ipcrypt_soft.h
type ipcrypt_implementation (line 6) | struct ipcrypt_implementation
FILE: src/libsodium/crypto_kdf/blake2b/kdf_blake2b.c
function crypto_kdf_blake2b_bytes_min (line 7) | size_t
function crypto_kdf_blake2b_bytes_max (line 13) | size_t
function crypto_kdf_blake2b_contextbytes (line 19) | size_t
function crypto_kdf_blake2b_keybytes (line 25) | size_t
function crypto_kdf_blake2b_derive_from_key (line 31) | int crypto_kdf_blake2b_derive_from_key(unsigned char *subkey, size_t sub...
FILE: src/libsodium/crypto_kdf/crypto_kdf.c
function crypto_kdf_bytes_min (line 11) | size_t
function crypto_kdf_bytes_max (line 17) | size_t
function crypto_kdf_contextbytes (line 23) | size_t
function crypto_kdf_keybytes (line 29) | size_t
function crypto_kdf_derive_from_key (line 35) | int
function crypto_kdf_keygen (line 45) | void
FILE: src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha256.c
function crypto_kdf_hkdf_sha256_extract_init (line 10) | int
function crypto_kdf_hkdf_sha256_extract_update (line 17) | int
function crypto_kdf_hkdf_sha256_extract_final (line 24) | int
function crypto_kdf_hkdf_sha256_extract (line 34) | int
function crypto_kdf_hkdf_sha256_keygen (line 48) | void
function crypto_kdf_hkdf_sha256_expand (line 54) | int
function crypto_kdf_hkdf_sha256_keybytes (line 102) | size_t
function crypto_kdf_hkdf_sha256_bytes_min (line 108) | size_t
function crypto_kdf_hkdf_sha256_bytes_max (line 114) | size_t
function crypto_kdf_hkdf_sha256_statebytes (line 120) | size_t crypto_kdf_hkdf_sha256_statebytes(void)
FILE: src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha512.c
function crypto_kdf_hkdf_sha512_extract_init (line 10) | int
function crypto_kdf_hkdf_sha512_extract_update (line 17) | int
function crypto_kdf_hkdf_sha512_extract_final (line 24) | int
function crypto_kdf_hkdf_sha512_extract (line 34) | int
function crypto_kdf_hkdf_sha512_keygen (line 48) | void
function crypto_kdf_hkdf_sha512_expand (line 54) | int
function crypto_kdf_hkdf_sha512_keybytes (line 102) | size_t
function crypto_kdf_hkdf_sha512_bytes_min (line 108) | size_t
function crypto_kdf_hkdf_sha512_bytes_max (line 114) | size_t
function crypto_kdf_hkdf_sha512_statebytes (line 120) | size_t crypto_kdf_hkdf_sha512_statebytes(void)
FILE: src/libsodium/crypto_kem/crypto_kem.c
function crypto_kem_publickeybytes (line 3) | size_t
function crypto_kem_secretkeybytes (line 9) | size_t
function crypto_kem_ciphertextbytes (line 15) | size_t
function crypto_kem_sharedsecretbytes (line 21) | size_t
function crypto_kem_seedbytes (line 27) | size_t
function crypto_kem_seed_keypair (line 39) | int
function crypto_kem_keypair (line 46) | int
function crypto_kem_enc (line 52) | int
function crypto_kem_dec (line 58) | int
FILE: src/libsodium/crypto_kem/mlkem768/kem_mlkem768.c
function crypto_kem_mlkem768_publickeybytes (line 4) | size_t
function crypto_kem_mlkem768_secretkeybytes (line 10) | size_t
function crypto_kem_mlkem768_ciphertextbytes (line 16) | size_t
function crypto_kem_mlkem768_sharedsecretbytes (line 22) | size_t
function crypto_kem_mlkem768_seedbytes (line 28) | size_t
function crypto_kem_mlkem768_seed_keypair (line 34) | int
function crypto_kem_mlkem768_keypair (line 40) | int
function crypto_kem_mlkem768_enc (line 46) | int
function crypto_kem_mlkem768_enc_deterministic (line 52) | int
function crypto_kem_mlkem768_dec (line 59) | int
FILE: src/libsodium/crypto_kem/mlkem768/ref/kem_mlkem768_ref.c
type poly (line 27) | typedef struct poly {
type polyvec (line 31) | typedef struct polyvec {
function montgomery_reduce (line 46) | static int16_t
function barrett_reduce (line 57) | static int16_t
function csubq (line 68) | static int16_t
function poly_ntt (line 77) | static void
function poly_invntt (line 96) | static void
function poly_basemul (line 119) | static void
function poly_tomont (line 149) | static void
function poly_reduce (line 160) | static void
function poly_add (line 170) | static void
function poly_sub (line 180) | static void
function poly_csubq (line 190) | static void
function poly_cbd_eta2 (line 200) | static void
function poly_getnoise_eta2 (line 222) | static void
function poly_frombytes (line 241) | static void
function poly_tobytes (line 252) | static void
function poly_frommsg (line 267) | static void
function poly_tomsg (line 281) | static void
function poly_compress_du (line 299) | static void
function poly_decompress_du (line 321) | static void
function poly_compress_dv (line 340) | static void
function poly_decompress_dv (line 361) | static void
function polyvec_ntt (line 372) | static void
function polyvec_invntt (line 382) | static void
function polyvec_basemul_acc (line 392) | static void
function polyvec_reduce (line 407) | static void
function polyvec_csubq (line 417) | static void
function polyvec_add (line 427) | static void
function polyvec_tobytes (line 437) | static void
function polyvec_frombytes (line 447) | static void
function polyvec_is_canonical (line 457) | static int
function polyvec_compress (line 472) | static void
function polyvec_decompress (line 482) | static void
function rej_uniform (line 492) | static unsigned int
function gen_matrix (line 519) | static void
function indcpa_keypair (line 557) | static void
function indcpa_enc (line 602) | static void
function indcpa_dec (line 659) | static void
function cmov (line 686) | static void
function mlkem768_ref_seed_keypair (line 703) | int
function mlkem768_ref_keypair (line 721) | int
function mlkem768_ref_enc_deterministic (line 730) | int
function mlkem768_ref_enc (line 757) | int
function mlkem768_ref_dec (line 766) | int
FILE: src/libsodium/crypto_kem/xwing/kem_xwing.c
function expand_decaps_key (line 15) | static void
function combiner (line 37) | static void
function crypto_kem_xwing_publickeybytes (line 55) | size_t
function crypto_kem_xwing_secretkeybytes (line 61) | size_t
function crypto_kem_xwing_ciphertextbytes (line 67) | size_t
function crypto_kem_xwing_sharedsecretbytes (line 73) | size_t
function crypto_kem_xwing_seedbytes (line 79) | size_t
function crypto_kem_xwing_seed_keypair (line 85) | int
function crypto_kem_xwing_keypair (line 106) | int
function crypto_kem_xwing_enc_deterministic (line 119) | int
function crypto_kem_xwing_enc (line 156) | int
function crypto_kem_xwing_dec (line 171) | int
FILE: src/libsodium/crypto_kx/crypto_kx.c
function crypto_kx_seed_keypair (line 12) | int
function crypto_kx_keypair (line 22) | int
function crypto_kx_client_session_keys (line 33) | int
function crypto_kx_server_session_keys (line 74) | int
function crypto_kx_publickeybytes (line 115) | size_t
function crypto_kx_secretkeybytes (line 121) | size_t
function crypto_kx_seedbytes (line 127) | size_t
function crypto_kx_sessionkeybytes (line 133) | size_t
FILE: src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c
function crypto_onetimeauth_statebytes (line 5) | size_t
function crypto_onetimeauth_bytes (line 11) | size_t
function crypto_onetimeauth_keybytes (line 17) | size_t
function crypto_onetimeauth (line 23) | int
function crypto_onetimeauth_verify (line 30) | int
function crypto_onetimeauth_init (line 37) | int
function crypto_onetimeauth_update (line 45) | int
function crypto_onetimeauth_final (line 54) | int
function crypto_onetimeauth_keygen (line 68) | void crypto_onetimeauth_keygen(unsigned char k[crypto_onetimeauth_KEYBYT...
FILE: src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c
function poly1305_update (line 14) | static void
function crypto_onetimeauth_poly1305_donna (line 58) | static int
function crypto_onetimeauth_poly1305_donna_init (line 72) | static int
function crypto_onetimeauth_poly1305_donna_update (line 83) | static int
function crypto_onetimeauth_poly1305_donna_final (line 93) | static int
function crypto_onetimeauth_poly1305_donna_verify (line 102) | static int
type crypto_onetimeauth_poly1305_implementation (line 115) | struct crypto_onetimeauth_poly1305_implementation
FILE: src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h
type crypto_onetimeauth_poly1305_implementation (line 9) | struct crypto_onetimeauth_poly1305_implementation
FILE: src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h
type poly1305_state_internal_t (line 19) | typedef struct poly1305_state_internal_t {
function poly1305_init (line 28) | static void
function poly1305_blocks (line 55) | static void
function POLY1305_NOINLINE (line 139) | static POLY1305_NOINLINE void
FILE: src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h
type poly1305_state_internal_t (line 25) | typedef struct poly1305_state_internal_t {
function poly1305_init (line 34) | static void
function poly1305_blocks (line 61) | static void
function POLY1305_NOINLINE (line 135) | static POLY1305_NOINLINE void
FILE: src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c
function crypto_onetimeauth_poly1305 (line 17) | int
function crypto_onetimeauth_poly1305_verify (line 24) | int
function crypto_onetimeauth_poly1305_init (line 33) | int
function crypto_onetimeauth_poly1305_update (line 40) | int
function crypto_onetimeauth_poly1305_final (line 48) | int
function crypto_onetimeauth_poly1305_bytes (line 55) | size_t
function crypto_onetimeauth_poly1305_keybytes (line 61) | size_t
function crypto_onetimeauth_poly1305_statebytes (line 67) | size_t
function crypto_onetimeauth_poly1305_keygen (line 73) | void
function _crypto_onetimeauth_poly1305_pick_best_implementation (line 80) | int
FILE: src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h
type crypto_onetimeauth_poly1305_implementation (line 7) | typedef struct crypto_onetimeauth_poly1305_implementation {
FILE: src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c
type __m128i (line 22) | typedef __m128i xmmi;
type poly1305_state_flags_t (line 34) | enum poly1305_state_flags_t {
type poly1305_state_internal_t (line 42) | typedef struct poly1305_state_internal_t {
function xmmi (line 62) | static xmmi
function poly1305_block_copy31 (line 74) | static inline void
function POLY1305_NOINLINE (line 104) | static POLY1305_NOINLINE void
function POLY1305_NOINLINE (line 199) | static POLY1305_NOINLINE void
function poly1305_update (line 762) | static void
function POLY1305_NOINLINE (line 806) | static POLY1305_NOINLINE void
function poly1305_finish (line 873) | static void
function crypto_onetimeauth_poly1305_sse2_init (line 879) | static int
function crypto_onetimeauth_poly1305_sse2_update (line 890) | static int
function crypto_onetimeauth_poly1305_sse2_final (line 900) | static int
function crypto_onetimeauth_poly1305_sse2 (line 909) | static int
function crypto_onetimeauth_poly1305_sse2_verify (line 929) | static int
type crypto_onetimeauth_poly1305_implementation (line 942) | struct crypto_onetimeauth_poly1305_implementation
FILE: src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h
type crypto_onetimeauth_poly1305_implementation (line 9) | struct crypto_onetimeauth_poly1305_implementation
FILE: src/libsodium/crypto_pwhash/argon2/argon2-core.c
function load_block (line 55) | static void
function store_block (line 64) | static void
function allocate_memory (line 81) | static int
function free_memory (line 145) | static void
function argon2_free_instance (line 160) | static void
function argon2_finalize (line 170) | void
function argon2_fill_memory_blocks (line 204) | void
function argon2_validate_inputs (line 226) | int
function argon2_fill_first_blocks (line 351) | static void
function argon2_initial_hash (line 375) | static void
function argon2_initialize (line 459) | int
function argon2_pick_best_implementation (line 500) | static int
function _crypto_pwhash_argon2_pick_best_implementation (line 539) | int
FILE: src/libsodium/crypto_pwhash/argon2/argon2-core.h
type argon2_ctx_constants (line 25) | enum argon2_ctx_constants {
type block (line 54) | typedef struct block_ {
type block_region (line 58) | typedef struct block_region_ {
function init_block_value (line 67) | static inline void
function copy_block (line 74) | static inline void
function xor_block (line 81) | static inline void
type argon2_instance_t (line 96) | typedef struct Argon2_instance_t {
type argon2_position_t (line 114) | typedef struct Argon2_position_t {
type argon2_thread_data (line 122) | typedef struct Argon2_thread_data {
function index_alpha (line 140) | static uint32_t index_alpha(const argon2_instance_t *instance,
FILE: src/libsodium/crypto_pwhash/argon2/argon2-encoding.c
function argon2_decode_string (line 93) | int
function u32_to_string (line 213) | static void
function argon2_encode_string (line 240) | int
FILE: src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx2.c
function fill_block (line 42) | static void
function fill_block_with_xor (line 69) | static void
function generate_addresses (line 99) | static void
function argon2_fill_segment_avx2 (line 142) | void
FILE: src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx512f.c
function fill_block (line 46) | static void
function fill_block_with_xor (line 75) | static void
function generate_addresses (line 107) | static void
function argon2_fill_segment_avx512f (line 150) | void
FILE: src/libsodium/crypto_pwhash/argon2/argon2-fill-block-neon.c
function fill_block (line 30) | static void
function fill_block_with_xor (line 59) | static void
function generate_addresses (line 91) | static void
function argon2_fill_segment_neon (line 132) | void
FILE: src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c
function fill_block (line 23) | static void
function fill_block_with_xor (line 61) | static void
function generate_addresses (line 111) | static void
function argon2_fill_segment_ref (line 143) | void
FILE: src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c
function fill_block (line 39) | static void
function fill_block_with_xor (line 68) | static void
function generate_addresses (line 100) | static void
function argon2_fill_segment_ssse3 (line 143) | void
FILE: src/libsodium/crypto_pwhash/argon2/argon2-fill-block-wasm32.c
function fill_block (line 30) | static void
function fill_block_with_xor (line 59) | static void
function generate_addresses (line 91) | static void
function argon2_fill_segment_wasm32 (line 130) | void
FILE: src/libsodium/crypto_pwhash/argon2/argon2.c
function argon2_ctx (line 27) | int
function argon2_hash (line 86) | int
function argon2i_hash_encoded (line 168) | int
function argon2i_hash_raw (line 179) | int
function argon2id_hash_encoded (line 189) | int
function argon2id_hash_raw (line 200) | int
function argon2_verify (line 210) | int
function argon2i_verify (line 281) | int
function argon2id_verify (line 287) | int
FILE: src/libsodium/crypto_pwhash/argon2/argon2.h
type argon2_error_codes (line 76) | typedef enum Argon2_ErrorCodes {
type argon2_context (line 164) | typedef struct Argon2_Context {
type argon2_type (line 189) | typedef enum Argon2_type { Argon2_i = 1, Argon2_id = 2 } argon2_type;
FILE: src/libsodium/crypto_pwhash/argon2/blake2b-long.c
function blake2b_long (line 12) | int
FILE: src/libsodium/crypto_pwhash/argon2/blamka-round-avx512f.h
function __m512i (line 9) | static inline __m512i
FILE: src/libsodium/crypto_pwhash/argon2/blamka-round-neon.h
function uint64x2_t (line 8) | static inline uint64x2_t
function uint64x2_t (line 18) | static inline uint64x2_t
function uint64x2_t (line 24) | static inline uint64x2_t
function uint64x2_t (line 35) | static inline uint64x2_t
function uint64x2_t (line 46) | static inline uint64x2_t
FILE: src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h
function fBlaMka (line 7) | static inline uint64_t
FILE: src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h
function __m128i (line 28) | static inline __m128i
FILE: src/libsodium/crypto_pwhash/argon2/blamka-round-wasm32.h
function v128_t (line 7) | static inline v128_t
function v128_t (line 14) | static inline v128_t
function v128_t (line 20) | static inline v128_t
function v128_t (line 26) | static inline v128_t
function v128_t (line 32) | static inline v128_t
function v128_t (line 80) | static inline v128_t
FILE: src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c
function crypto_pwhash_argon2i_alg_argon2i13 (line 21) | int
function crypto_pwhash_argon2i_bytes_min (line 27) | size_t
function crypto_pwhash_argon2i_bytes_max (line 34) | size_t
function crypto_pwhash_argon2i_passwd_min (line 41) | size_t
function crypto_pwhash_argon2i_passwd_max (line 48) | size_t
function crypto_pwhash_argon2i_saltbytes (line 55) | size_t
function crypto_pwhash_argon2i_strbytes (line 63) | size_t
function crypto_pwhash_argon2i_opslimit_min (line 75) | unsigned long long
function crypto_pwhash_argon2i_opslimit_max (line 82) | unsigned long long
function crypto_pwhash_argon2i_memlimit_min (line 89) | size_t
function crypto_pwhash_argon2i_memlimit_max (line 96) | size_t
function crypto_pwhash_argon2i_opslimit_interactive (line 103) | unsigned long long
function crypto_pwhash_argon2i_memlimit_interactive (line 109) | size_t
function crypto_pwhash_argon2i_opslimit_moderate (line 115) | unsigned long long
function crypto_pwhash_argon2i_memlimit_moderate (line 121) | size_t
function crypto_pwhash_argon2i_opslimit_sensitive (line 127) | unsigned long long
function crypto_pwhash_argon2i_memlimit_sensitive (line 133) | size_t
function crypto_pwhash_argon2i (line 139) | int
function crypto_pwhash_argon2i_str (line 185) | int
function crypto_pwhash_argon2i_str_verify (line 216) | int
function _needs_rehash (line 244) | static int
function crypto_pwhash_argon2i_str_needs_rehash (line 282) | int
function crypto_pwhash_argon2id_str_needs_rehash (line 289) | int
FILE: src/libsodium/crypto_pwhash/argon2/pwhash_argon2id.c
function crypto_pwhash_argon2id_alg_argon2id13 (line 17) | int
function crypto_pwhash_argon2id_bytes_min (line 23) | size_t
function crypto_pwhash_argon2id_bytes_max (line 30) | size_t
function crypto_pwhash_argon2id_passwd_min (line 37) | size_t
function crypto_pwhash_argon2id_passwd_max (line 44) | size_t
function crypto_pwhash_argon2id_saltbytes (line 51) | size_t
function crypto_pwhash_argon2id_strbytes (line 59) | size_t
function crypto_pwhash_argon2id_opslimit_min (line 71) | unsigned long long
function crypto_pwhash_argon2id_opslimit_max (line 78) | unsigned long long
function crypto_pwhash_argon2id_memlimit_min (line 85) | size_t
function crypto_pwhash_argon2id_memlimit_max (line 92) | size_t
function crypto_pwhash_argon2id_opslimit_interactive (line 99) | unsigned long long
function crypto_pwhash_argon2id_memlimit_interactive (line 105) | size_t
function crypto_pwhash_argon2id_opslimit_moderate (line 111) | unsigned long long
function crypto_pwhash_argon2id_memlimit_moderate (line 117) | size_t
function crypto_pwhash_argon2id_opslimit_sensitive (line 123) | unsigned long long
function crypto_pwhash_argon2id_memlimit_sensitive (line 129) | size_t
function crypto_pwhash_argon2id (line 135) | int
function crypto_pwhash_argon2id_str (line 181) | int
function crypto_pwhash_argon2id_str_verify (line 212) | int
FILE: src/libsodium/crypto_pwhash/crypto_pwhash.c
function crypto_pwhash_alg_argon2i13 (line 8) | int
function crypto_pwhash_alg_argon2id13 (line 14) | int
function crypto_pwhash_alg_default (line 20) | int
function crypto_pwhash_bytes_min (line 26) | size_t
function crypto_pwhash_bytes_max (line 32) | size_t
function crypto_pwhash_passwd_min (line 38) | size_t
function crypto_pwhash_passwd_max (line 44) | size_t
function crypto_pwhash_saltbytes (line 50) | size_t
function crypto_pwhash_strbytes (line 56) | size_t
function crypto_pwhash_opslimit_min (line 68) | unsigned long long
function crypto_pwhash_opslimit_max (line 74) | unsigned long long
function crypto_pwhash_memlimit_min (line 80) | size_t
function crypto_pwhash_memlimit_max (line 86) | size_t
function crypto_pwhash_opslimit_interactive (line 92) | unsigned long long
function crypto_pwhash_memlimit_interactive (line 98) | size_t
function crypto_pwhash_opslimit_moderate (line 104) | unsigned long long
function crypto_pwhash_memlimit_moderate (line 110) | size_t
function crypto_pwhash_opslimit_sensitive (line 116) | unsigned long long
function crypto_pwhash_memlimit_sensitive (line 122) | size_t
function crypto_pwhash (line 128) | int
function crypto_pwhash_str (line 147) | int
function crypto_pwhash_str_alg (line 156) | int
function crypto_pwhash_str_verify (line 174) | int
function crypto_pwhash_str_needs_rehash (line 192) | int
FILE: src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c
function decode64_one (line 74) | static int
function crypto_pwhash_scryptsalsa208sha256_ll (line 243) | int
FILE: src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h
type escrypt_region_t (line 48) | typedef struct {
type escrypt_region_t (line 53) | typedef escrypt_region_t escrypt_local_t;
FILE: src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c
function blkcpy (line 41) | static inline void
function blkxor (line 47) | static inline void
function salsa20_8 (line 61) | static void
function blockmix_salsa8 (line 125) | static void
function integerify (line 157) | static inline uint64_t
function smix (line 173) | static void
function escrypt_kdf_nosse (line 234) | int
FILE: src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c
function escrypt_PBKDF2_SHA256 (line 46) | void
FILE: src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c
function pickparams (line 18) | static int
function sodium_strnlen (line 55) | static size_t
function crypto_pwhash_scryptsalsa208sha256_bytes_min (line 67) | size_t
function crypto_pwhash_scryptsalsa208sha256_bytes_max (line 73) | size_t
function crypto_pwhash_scryptsalsa208sha256_passwd_min (line 79) | size_t
function crypto_pwhash_scryptsalsa208sha256_passwd_max (line 85) | size_t
function crypto_pwhash_scryptsalsa208sha256_saltbytes (line 91) | size_t
function crypto_pwhash_scryptsalsa208sha256_strbytes (line 97) | size_t
function crypto_pwhash_scryptsalsa208sha256_opslimit_min (line 109) | unsigned long long
function crypto_pwhash_scryptsalsa208sha256_opslimit_max (line 115) | unsigned long long
function crypto_pwhash_scryptsalsa208sha256_memlimit_min (line 121) | size_t
function crypto_pwhash_scryptsalsa208sha256_memlimit_max (line 127) | size_t
function crypto_pwhash_scryptsalsa208sha256_opslimit_interactive (line 133) | unsigned long long
function crypto_pwhash_scryptsalsa208sha256_memlimit_interactive (line 139) | size_t
function crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive (line 145) | unsigned long long
function crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive (line 151) | size_t
function crypto_pwhash_scryptsalsa208sha256 (line 157) | int
function crypto_pwhash_scryptsalsa208sha256_str (line 190) | int
function crypto_pwhash_scryptsalsa208sha256_str_verify (line 244) | int
function crypto_pwhash_scryptsalsa208sha256_str_needs_rehash (line 274) | int
FILE: src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c
function init_region (line 76) | static inline void
function escrypt_free_region (line 83) | int
function escrypt_init_local (line 100) | int
function escrypt_free_local (line 108) | int
FILE: src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c
function blockmix_salsa8 (line 108) | static inline void
function SALSA20_8_XOR (line 172) | XOR4(Bin1)
function smix (line 231) | static void
function escrypt_kdf_sse (line 309) | int
FILE: src/libsodium/crypto_scalarmult/crypto_scalarmult.c
function crypto_scalarmult_base (line 10) | int
function crypto_scalarmult (line 16) | int
function crypto_scalarmult_bytes (line 23) | size_t
function crypto_scalarmult_scalarbytes (line 29) | size_t
FILE: src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c
function has_small_order (line 16) | static int
function crypto_scalarmult_curve25519_ref10 (line 72) | static int
function edwards_to_montgomery (line 139) | static void
function crypto_scalarmult_curve25519_ref10_base (line 151) | static int
type crypto_scalarmult_curve25519_implementation (line 173) | struct crypto_scalarmult_curve25519_implementation
FILE: src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h
type crypto_scalarmult_curve25519_implementation (line 7) | struct crypto_scalarmult_curve25519_implementation
FILE: src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c
function crypto_scalarmult_curve25519_sandy2x (line 23) | static int
type crypto_scalarmult_curve25519_implementation (line 65) | struct crypto_scalarmult_curve25519_implementation
FILE: src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h
type crypto_scalarmult_curve25519_implementation (line 6) | struct crypto_scalarmult_curve25519_implementation
FILE: src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h
type fe51 (line 20) | typedef struct
FILE: src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c
function fe51_invert (line 12) | void
FILE: src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c
function load_3 (line 9) | static uint64_t
function load_4 (line 19) | static uint64_t
function fe_frombytes (line 30) | void
FILE: src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c
function crypto_scalarmult_curve25519 (line 14) | int
function crypto_scalarmult_curve25519_base (line 30) | int
function crypto_scalarmult_curve25519_bytes (line 37) | size_t
function crypto_scalarmult_curve25519_scalarbytes (line 43) | size_t
function _crypto_scalarmult_curve25519_pick_best_implementation (line 49) | int
FILE: src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h
type crypto_scalarmult_curve25519_implementation (line 5) | typedef struct crypto_scalarmult_curve25519_implementation {
FILE: src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c
function _crypto_scalarmult_ed25519_is_inf (line 8) | static int
function _crypto_scalarmult_ed25519_clamp (line 23) | static inline void
function _crypto_scalarmult_ed25519 (line 30) | static int
function crypto_scalarmult_ed25519 (line 59) | int
function crypto_scalarmult_ed25519_noclamp (line 66) | int
function _crypto_scalarmult_ed25519_base (line 73) | static int
function crypto_scalarmult_ed25519_base (line 97) | int
function crypto_scalarmult_ed25519_base_noclamp (line 104) | int
function crypto_scalarmult_ed25519_bytes (line 111) | size_t
function crypto_scalarmult_ed25519_scalarbytes (line 117) | size_t
FILE: src/libsodium/crypto_scalarmult/ristretto255/ref10/scalarmult_ristretto255_ref10.c
function crypto_scalarmult_ristretto255 (line 9) | int
function crypto_scalarmult_ristretto255_base (line 33) | int
function crypto_scalarmult_ristretto255_bytes (line 53) | size_t
function crypto_scalarmult_ristretto255_scalarbytes (line 59) | size_t
FILE: src/libsodium/crypto_secretbox/crypto_secretbox.c
function crypto_secretbox_keybytes (line 5) | size_t
function crypto_secretbox_noncebytes (line 11) | size_t
function crypto_secretbox_zerobytes (line 17) | size_t
function crypto_secretbox_boxzerobytes (line 23) | size_t
function crypto_secretbox_macbytes (line 29) | size_t
function crypto_secretbox_messagebytes_max (line 35) | size_t
function crypto_secretbox (line 47) | int
function crypto_secretbox_open (line 55) | int
function crypto_secretbox_keygen (line 63) | void
FILE: src/libsodium/crypto_secretbox/crypto_secretbox_easy.c
function crypto_secretbox_detached (line 16) | int
function crypto_secretbox_easy (line 76) | int
function crypto_secretbox_open_detached (line 88) | int
function crypto_secretbox_open_easy (line 149) | int
FILE: src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c
function crypto_secretbox_xchacha20poly1305_detached (line 18) | int
function crypto_secretbox_xchacha20poly1305_easy (line 82) | int
function crypto_secretbox_xchacha20poly1305_open_detached (line 96) | int
function crypto_secretbox_xchacha20poly1305_open_easy (line 157) | int
function crypto_secretbox_xchacha20poly1305_keybytes (line 172) | size_t
function crypto_secretbox_xchacha20poly1305_noncebytes (line 178) | size_t
function crypto_secretbox_xchacha20poly1305_macbytes (line 184) | size_t
function crypto_secretbox_xchacha20poly1305_messagebytes_max (line 190) | size_t
FILE: src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c
function crypto_secretbox_xsalsa20poly1305 (line 7) | int
function crypto_secretbox_xsalsa20poly1305_open (line 26) | int
function crypto_secretbox_xsalsa20poly1305_keybytes (line 51) | size_t
function crypto_secretbox_xsalsa20poly1305_noncebytes (line 57) | size_t
function crypto_secretbox_xsalsa20poly1305_zerobytes (line 63) | size_t
function crypto_secretbox_xsalsa20poly1305_boxzerobytes (line 69) | size_t
function crypto_secretbox_xsalsa20poly1305_macbytes (line 75) | size_t
function crypto_secretbox_xsalsa20poly1305_messagebytes_max (line 81) | size_t
function crypto_secretbox_xsalsa20poly1305_keygen (line 87) | void
FILE: src/libsodium/crypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.c
function _crypto_secretstream_xchacha20poly1305_counter_reset (line 26) | static inline void
function crypto_secretstream_xchacha20poly1305_keygen (line 35) | void
function crypto_secretstream_xchacha20poly1305_init_push (line 42) | int
function crypto_secretstream_xchacha20poly1305_init_pull (line 67) | int
function crypto_secretstream_xchacha20poly1305_rekey (line 82) | void
function crypto_secretstream_xchacha20poly1305_push (line 110) | int
function crypto_secretstream_xchacha20poly1305_pull (line 179) | int
function crypto_secretstream_xchacha20poly1305_statebytes (line 264) | size_t
function crypto_secretstream_xchacha20poly1305_abytes (line 270) | size_t
function crypto_secretstream_xchacha20poly1305_headerbytes (line 276) | size_t
function crypto_secretstream_xchacha20poly1305_keybytes (line 282) | size_t
function crypto_secretstream_xchacha20poly1305_messagebytes_max (line 288) | size_t
function crypto_secretstream_xchacha20poly1305_tag_message (line 294) | unsigned char
function crypto_secretstream_xchacha20poly1305_tag_push (line 300) | unsigned char
function crypto_secretstream_xchacha20poly1305_tag_rekey (line 306) | unsigned char
function crypto_secretstream_xchacha20poly1305_tag_final (line 312) | unsigned char
FILE: src/libsodium/crypto_shorthash/crypto_shorthash.c
function crypto_shorthash_bytes (line 5) | size_t
function crypto_shorthash_keybytes (line 11) | size_t
function crypto_shorthash (line 23) | int
function crypto_shorthash_keygen (line 30) | void
FILE: src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c
function crypto_shorthash_siphash24 (line 5) | int
FILE: src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c
function crypto_shorthash_siphashx24 (line 5) | int
FILE: src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24.c
function crypto_shorthash_siphash24_bytes (line 3) | size_t
function crypto_shorthash_siphash24_keybytes (line 8) | size_t
FILE: src/libsodium/crypto_shorthash/siphash24/shorthash_siphashx24.c
function crypto_shorthash_siphashx24_bytes (line 3) | size_t
function crypto_shorthash_siphashx24_keybytes (line 8) | size_t
FILE: src/libsodium/crypto_sign/crypto_sign.c
function crypto_sign_statebytes (line 4) | size_t
function crypto_sign_bytes (line 10) | size_t
function crypto_sign_seedbytes (line 16) | size_t
function crypto_sign_publickeybytes (line 22) | size_t
function crypto_sign_secretkeybytes (line 28) | size_t
function crypto_sign_messagebytes_max (line 34) | size_t
function crypto_sign_seed_keypair (line 46) | int
function crypto_sign_keypair (line 53) | int
function crypto_sign (line 59) | int
function crypto_sign_open (line 67) | int
function crypto_sign_detached (line 75) | int
function crypto_sign_verify_detached (line 83) | int
function crypto_sign_init (line 90) | int
function crypto_sign_update (line 96) | int
function crypto_sign_final_create (line 103) | int
function crypto_sign_final_verify (line 110) | int
FILE: src/libsodium/crypto_sign/ed25519/ref10/keypair.c
function crypto_sign_ed25519_seed_keypair (line 12) | int
function crypto_sign_ed25519_keypair (line 32) | int
function crypto_sign_ed25519_pk_to_curve25519 (line 45) | int
function crypto_sign_ed25519_sk_to_curve25519 (line 70) | int
FILE: src/libsodium/crypto_sign/ed25519/ref10/open.c
function _crypto_sign_ed25519_verify_detached (line 14) | int
function crypto_sign_ed25519_verify_detached (line 65) | int
function crypto_sign_ed25519_open (line 74) | int
FILE: src/libsodium/crypto_sign/ed25519/ref10/sign.c
function _crypto_sign_ed25519_ref10_hinit (line 11) | void
function _crypto_sign_ed25519_clamp (line 27) | static inline void
function _crypto_sign_ed25519_synthetic_r_hv (line 37) | static void
function _crypto_sign_ed25519_detached (line 49) | int
function crypto_sign_ed25519_detached (line 96) | int
function crypto_sign_ed25519 (line 104) | int
FILE: src/libsodium/crypto_sign/ed25519/sign_ed25519.c
function crypto_sign_ed25519ph_statebytes (line 8) | size_t
function crypto_sign_ed25519_bytes (line 14) | size_t
function crypto_sign_ed25519_seedbytes (line 20) | size_t
function crypto_sign_ed25519_publickeybytes (line 26) | size_t
function crypto_sign_ed25519_secretkeybytes (line 32) | size_t
function crypto_sign_ed25519_messagebytes_max (line 38) | size_t
function crypto_sign_ed25519_sk_to_seed (line 44) | int
function crypto_sign_ed25519_sk_to_pk (line 52) | int
function crypto_sign_ed25519ph_init (line 60) | int
function crypto_sign_ed25519ph_update (line 67) | int
function crypto_sign_ed25519ph_final_create (line 74) | int
function crypto_sign_ed25519ph_final_verify (line 87) | int
FILE: src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c
type chacha_ctx (line 31) | typedef struct chacha_ctx {
function chacha_keysetup (line 35) | static void
function chacha_ivsetup (line 52) | static void
function chacha_ietf_ivsetup (line 61) | static void
function chacha20_encrypt_bytes (line 70) | static void
function stream_ref (line 85) | static int
function stream_ietf_ext_ref (line 104) | static int
function stream_ref_xor_ic (line 123) | static int
function stream_ietf_ext_ref_xor_ic (line 148) | static int
type crypto_stream_chacha20_implementation (line 168) | struct crypto_stream_chacha20_implementation
FILE: src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.h
type crypto_stream_chacha20_implementation (line 7) | struct crypto_stream_chacha20_implementation
FILE: src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c
type chacha_ctx (line 28) | typedef struct chacha_ctx {
function chacha_keysetup (line 32) | static void
function chacha_ivsetup (line 49) | static void
function chacha_ietf_ivsetup (line 58) | static void
function chacha20_encrypt_bytes (line 67) | static void
function stream_ref (line 81) | static int
function stream_ietf_ext_ref (line 100) | static int
function stream_ref_xor_ic (line 119) | static int
function stream_ietf_ext_ref_xor_ic (line 144) | static int
type crypto_stream_chacha20_implementation (line 164) | struct crypto_stream_chacha20_implementation
FILE: src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.h
type crypto_stream_chacha20_implementation (line 7) | struct crypto_stream_chacha20_implementation
FILE: src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c
type chacha_ctx (line 20) | struct chacha_ctx {
type chacha_ctx (line 24) | typedef struct chacha_ctx chacha_ctx;
function chacha_keysetup (line 45) | static void
function chacha_ivsetup (line 62) | static void
function chacha_ietf_ivsetup (line 71) | static void
function chacha20_encrypt_bytes (line 80) | static void
function stream_ref (line 223) | static int
function stream_ietf_ext_ref (line 242) | static int
function stream_ref_xor_ic (line 261) | static int
function stream_ietf_ext_ref_xor_ic (line 286) | static int
type crypto_stream_chacha20_implementation (line 306) | struct crypto_stream_chacha20_implementation
FILE: src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.h
type crypto_stream_chacha20_implementation (line 7) | struct crypto_stream_chacha20_implementation
FILE: src/libsodium/crypto_stream/chacha20/stream_chacha20.c
function crypto_stream_chacha20_keybytes (line 22) | size_t
function crypto_stream_chacha20_noncebytes (line 27) | size_t
function crypto_stream_chacha20_messagebytes_max (line 32) | size_t
function crypto_stream_chacha20_ietf_keybytes (line 38) | size_t
function crypto_stream_chacha20_ietf_noncebytes (line 43) | size_t
function crypto_stream_chacha20_ietf_messagebytes_max (line 48) | size_t
function crypto_stream_chacha20 (line 54) | int
function crypto_stream_chacha20_xor_ic (line 64) | int
function crypto_stream_chacha20_xor (line 76) | int
function crypto_stream_chacha20_ietf_ext (line 87) | int
function crypto_stream_chacha20_ietf_ext_xor_ic (line 97) | int
function crypto_stream_chacha20_ietf_ext_xor (line 109) | static int
function crypto_stream_chacha20_ietf (line 120) | int
function crypto_stream_chacha20_ietf_xor_ic (line 130) | int
function crypto_stream_chacha20_ietf_xor (line 143) | int
function crypto_stream_chacha20_ietf_keygen (line 154) | void
function crypto_stream_chacha20_keygen (line 160) | void
function _crypto_stream_chacha20_pick_best_implementation (line 166) | int
FILE: src/libsodium/crypto_stream/chacha20/stream_chacha20.h
type crypto_stream_chacha20_implementation (line 7) | typedef struct crypto_stream_chacha20_implementation {
FILE: src/libsodium/crypto_stream/crypto_stream.c
function crypto_stream_keybytes (line 5) | size_t
function crypto_stream_noncebytes (line 11) | size_t
function crypto_stream_messagebytes_max (line 17) | size_t
function crypto_stream (line 29) | int
function crypto_stream_xor (line 37) | int
function crypto_stream_keygen (line 45) | void
FILE: src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.c
function stream_ref (line 18) | static int
function stream_ref_xor_ic (line 63) | static int
type crypto_stream_salsa20_implementation (line 114) | struct crypto_stream_salsa20_implementation
FILE: src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.h
type crypto_stream_salsa20_implementation (line 7) | struct crypto_stream_salsa20_implementation
FILE: src/libsodium/crypto_stream/salsa20/stream_salsa20.c
function crypto_stream_salsa20_keybytes (line 29) | size_t
function crypto_stream_salsa20_noncebytes (line 35) | size_t
function crypto_stream_salsa20_messagebytes_max (line 41) | size_t
function crypto_stream_salsa20 (line 47) | int
function crypto_stream_salsa20_xor_ic (line 54) | int
function crypto_stream_salsa20_xor (line 63) | int
function crypto_stream_salsa20_keygen (line 71) | void
function _crypto_stream_salsa20_pick_best_implementation (line 77) | int
FILE: src/libsodium/crypto_stream/salsa20/stream_salsa20.h
type crypto_stream_salsa20_implementation (line 9) | typedef struct crypto_stream_salsa20_implementation {
FILE: src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.c
type crypto_stream_salsa20_implementation (line 25) | struct crypto_stream_salsa20_implementation
FILE: src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.h
type crypto_stream_salsa20_implementation (line 8) | struct crypto_stream_salsa20_implementation
FILE: src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.c
type salsa_ctx (line 30) | typedef struct salsa_ctx {
function salsa_keysetup (line 38) | static void
function salsa_ivsetup (line 55) | static void
function salsa20_encrypt_bytes (line 64) | static void
function stream_avx2 (line 80) | static int
function stream_avx2_xor_ic (line 99) | static int
type crypto_stream_salsa20_implementation (line 124) | struct crypto_stream_salsa20_implementation
FILE: src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.h
type crypto_stream_salsa20_implementation (line 7) | struct crypto_stream_salsa20_implementation
FILE: src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.c
type salsa_ctx (line 25) | typedef struct salsa_ctx {
function salsa_keysetup (line 33) | static void
function salsa_ivsetup (line 50) | static void
function salsa20_encrypt_bytes (line 59) | static void
function stream_sse2 (line 74) | static int
function stream_sse2_xor_ic (line 93) | static int
type crypto_stream_salsa20_implementation (line 118) | struct crypto_stream_salsa20_implementation
FILE: src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.h
type crypto_stream_salsa20_implementation (line 7) | struct crypto_stream_salsa20_implementation
FILE: src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012_ref.c
function crypto_stream_salsa2012 (line 13) | int
function crypto_stream_salsa2012_xor (line 58) | int
FILE: src/libsodium/crypto_stream/salsa2012/stream_salsa2012.c
function crypto_stream_salsa2012_keybytes (line 4) | size_t
function crypto_stream_salsa2012_noncebytes (line 10) | size_t
function crypto_stream_salsa2012_messagebytes_max (line 16) | size_t
function crypto_stream_salsa2012_keygen (line 22) | void
FILE: src/libsodium/crypto_stream/salsa208/ref/stream_salsa208_ref.c
function crypto_stream_salsa208 (line 15) | int
function crypto_stream_salsa208_xor (line 60) | int
FILE: src/libsodium/crypto_stream/salsa208/stream_salsa208.c
function crypto_stream_salsa208_keybytes (line 6) | size_t
function crypto_stream_salsa208_noncebytes (line 12) | size_t
function crypto_stream_salsa208_messagebytes_max (line 18) | size_t
function crypto_stream_salsa208_keygen (line 24) | void
FILE: src/libsodium/crypto_stream/xchacha20/stream_xchacha20.c
function crypto_stream_xchacha20_keybytes (line 10) | size_t
function crypto_stream_xchacha20_noncebytes (line 16) | size_t
function crypto_stream_xchacha20_messagebytes_max (line 22) | size_t
function crypto_stream_xchacha20 (line 28) | int
function crypto_stream_xchacha20_xor_ic (line 44) | int
function crypto_stream_xchacha20_xor (line 56) | int
function crypto_stream_xchacha20_keygen (line 64) | void
FILE: src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.c
function crypto_stream_xsalsa20 (line 7) | int
function crypto_stream_xsalsa20_xor_ic (line 21) | int
function crypto_stream_xsalsa20_xor (line 36) | int
function crypto_stream_xsalsa20_keybytes (line 44) | size_t
function crypto_stream_xsalsa20_noncebytes (line 50) | size_t
function crypto_stream_xsalsa20_messagebytes_max (line 56) | size_t
function crypto_stream_xsalsa20_keygen (line 62) | void
FILE: src/libsodium/crypto_verify/verify.c
function crypto_verify_16_bytes (line 10) | size_t
function crypto_verify_32_bytes (line 16) | size_t
function crypto_verify_64_bytes (line 22) | size_t
function crypto_verify_n (line 32) | static inline int
function crypto_verify_n (line 63) | static inline int
function crypto_verify_16 (line 88) | int
function crypto_verify_32 (line 94) | int
function crypto_verify_64 (line 100) | int
FILE: src/libsodium/crypto_xof/shake128/ref/shake128_ref.c
function shake128_ref_init_with_domain (line 9) | int
function shake128_ref_init (line 20) | int
function shake128_ref_update (line 26) | int
function shake128_finalize (line 57) | static void
function shake128_ref_squeeze (line 87) | int
function shake128_ref (line 115) | int
FILE: src/libsodium/crypto_xof/shake128/ref/shake128_ref.h
type shake128_phase (line 11) | typedef enum { SHAKE128_PHASE_ABSORBING = 0, SHAKE128_PHASE_SQUEEZING = ...
type shake128_state_internal (line 13) | typedef struct shake128_state_internal_ {
FILE: src/libsodium/crypto_xof/shake128/xof_shake128.c
function crypto_xof_shake128_blockbytes (line 5) | size_t
function crypto_xof_shake128_statebytes (line 11) | size_t
function crypto_xof_shake128_domain_standard (line 17) | unsigned char
function crypto_xof_shake128 (line 23) | int
function crypto_xof_shake128_init (line 32) | int
function crypto_xof_shake128_init_with_domain (line 42) | int
function crypto_xof_shake128_update (line 52) | int
function crypto_xof_shake128_squeeze (line 62) | int
FILE: src/libsodium/crypto_xof/shake256/ref/shake256_ref.c
function shake256_ref_init_with_domain (line 9) | int
function shake256_ref_init (line 20) | int
function shake256_ref_update (line 26) | int
function shake256_finalize (line 57) | static void
function shake256_ref_squeeze (line 87) | int
function shake256_ref (line 115) | int
FILE: src/libsodium/crypto_xof/shake256/ref/shake256_ref.h
type shake256_phase (line 11) | typedef enum { SHAKE256_PHASE_ABSORBING = 0, SHAKE256_PHASE_SQUEEZING = ...
type shake256_state_internal (line 13) | typedef struct shake256_state_internal_ {
FILE: src/libsodium/crypto_xof/shake256/xof_shake256.c
function crypto_xof_shake256_blockbytes (line 5) | size_t
function crypto_xof_shake256_statebytes (line 11) | size_t
function crypto_xof_shake256_domain_standard (line 17) | unsigned char
function crypto_xof_shake256 (line 23) | int
function crypto_xof_shake256_init (line 32) | int
function crypto_xof_shake256_init_with_domain (line 42) | int
function crypto_xof_shake256_update (line 52) | int
function crypto_xof_shake256_squeeze (line 62) | int
FILE: src/libsodium/crypto_xof/turboshake128/ref/turboshake128_ref.c
function turboshake128_ref_init_with_domain (line 9) | int
function turboshake128_ref_init (line 20) | int
function turboshake128_ref_update (line 26) | int
function turboshake128_finalize (line 57) | static void
function turboshake128_ref_squeeze (line 87) | int
function turboshake128_ref (line 115) | int
FILE: src/libsodium/crypto_xof/turboshake128/ref/turboshake128_ref.h
type turboshake128_phase (line 11) | typedef enum {
type turboshake128_state_internal (line 16) | typedef struct turboshake128_state_internal_ {
FILE: src/libsodium/crypto_xof/turboshake128/xof_turboshake128.c
function crypto_xof_turboshake128_blockbytes (line 5) | size_t
function crypto_xof_turboshake128_statebytes (line 11) | size_t
function crypto_xof_turboshake128_domain_standard (line 17) | unsigned char
function crypto_xof_turboshake128 (line 23) | int
function crypto_xof_turboshake128_init (line 32) | int
function crypto_xof_turboshake128_init_with_domain (line 42) | int
function crypto_xof_turboshake128_update (line 53) | int
function crypto_xof_turboshake128_squeeze (line 63) | int
FILE: src/libsodium/crypto_xof/turboshake256/ref/turboshake256_ref.c
function turboshake256_ref_init_with_domain (line 9) | int
function turboshake256_ref_init (line 20) | int
function turboshake256_ref_update (line 26) | int
function turboshake256_finalize (line 57) | static void
function turboshake256_ref_squeeze (line 87) | int
function turboshake256_ref (line 115) | int
FILE: src/libsodium/crypto_xof/turboshake256/ref/turboshake256_ref.h
type turboshake256_phase (line 11) | typedef enum {
type turboshake256_state_internal (line 16) | typedef struct turboshake256_state_internal_ {
FILE: src/libsodium/crypto_xof/turboshake256/xof_turboshake256.c
function crypto_xof_turboshake256_blockbytes (line 5) | size_t
function crypto_xof_turboshake256_statebytes (line 11) | size_t
function crypto_xof_turboshake256_domain_standard (line 17) | unsigned char
function crypto_xof_turboshake256 (line 23) | int
function crypto_xof_turboshake256_init (line 32) | int
function crypto_xof_turboshake256_init_with_domain (line 42) | int
function crypto_xof_turboshake256_update (line 53) | int
function crypto_xof_turboshake256_squeeze (line 63) | int
FILE: src/libsodium/include/sodium/crypto_aead_aes256gcm.h
type CRYPTO_ALIGN (line 59) | struct CRYPTO_ALIGN
FILE: src/libsodium/include/sodium/crypto_auth_hmacsha256.h
type crypto_auth_hmacsha256_state (line 38) | typedef struct crypto_auth_hmacsha256_state {
FILE: src/libsodium/include/sodium/crypto_auth_hmacsha512.h
type crypto_auth_hmacsha512_state (line 38) | typedef struct crypto_auth_hmacsha512_state {
FILE: src/libsodium/include/sodium/crypto_auth_hmacsha512256.h
type crypto_auth_hmacsha512_state (line 38) | typedef crypto_auth_hmacsha512_state crypto_auth_hmacsha512256_state;
FILE: src/libsodium/include/sodium/crypto_core_keccak1600.h
type CRYPTO_ALIGN (line 23) | struct CRYPTO_ALIGN
FILE: src/libsodium/include/sodium/crypto_generichash.h
type crypto_generichash_blake2b_state (line 48) | typedef crypto_generichash_blake2b_state crypto_generichash_state;
FILE: src/libsodium/include/sodium/crypto_generichash_blake2b.h
type CRYPTO_ALIGN (line 25) | struct CRYPTO_ALIGN
FILE: src/libsodium/include/sodium/crypto_hash_sha256.h
type crypto_hash_sha256_state (line 24) | typedef struct crypto_hash_sha256_state {
FILE: src/libsodium/include/sodium/crypto_hash_sha3.h
type CRYPTO_ALIGN (line 16) | struct CRYPTO_ALIGN
type CRYPTO_ALIGN (line 46) | struct CRYPTO_ALIGN
FILE: src/libsodium/include/sodium/crypto_hash_sha512.h
type crypto_hash_sha512_state (line 24) | typedef struct crypto_hash_sha512_state {
FILE: src/libsodium/include/sodium/crypto_kdf_hkdf_sha256.h
type crypto_kdf_hkdf_sha256_state (line 48) | typedef struct crypto_kdf_hkdf_sha256_state {
FILE: src/libsodium/include/sodium/crypto_kdf_hkdf_sha512.h
type crypto_kdf_hkdf_sha512_state (line 49) | typedef struct crypto_kdf_hkdf_sha512_state {
FILE: src/libsodium/include/sodium/crypto_onetimeauth.h
type crypto_onetimeauth_poly1305_state (line 16) | typedef crypto_onetimeauth_poly1305_state crypto_onetimeauth_state;
FILE: src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h
type CRYPTO_ALIGN (line 19) | struct CRYPTO_ALIGN
FILE: src/libsodium/include/sodium/crypto_secretstream_xchacha20poly1305.h
type crypto_secretstream_xchacha20poly1305_state (line 56) | typedef struct crypto_secretstream_xchacha20poly1305_state {
FILE: src/libsodium/include/sodium/crypto_sign.h
type crypto_sign_ed25519ph_state (line 23) | typedef crypto_sign_ed25519ph_state crypto_sign_state;
FILE: src/libsodium/include/sodium/crypto_sign_ed25519.h
type crypto_sign_ed25519ph_state (line 15) | typedef struct crypto_sign_ed25519ph_state {
FILE: src/libsodium/include/sodium/crypto_xof_shake128.h
type CRYPTO_ALIGN (line 27) | struct CRYPTO_ALIGN
FILE: src/libsodium/include/sodium/crypto_xof_shake256.h
type CRYPTO_ALIGN (line 23) | struct CRYPTO_ALIGN
FILE: src/libsodium/include/sodium/crypto_xof_turboshake128.h
type CRYPTO_ALIGN (line 23) | struct CRYPTO_ALIGN
FILE: src/libsodium/include/sodium/crypto_xof_turboshake256.h
type CRYPTO_ALIGN (line 23) | struct CRYPTO_ALIGN
FILE: src/libsodium/include/sodium/private/common.h
type uint128_t (line 29) | typedef unsigned __int128 uint128_t;
type uint128_t (line 31) | typedef unsigned uint128_t __attribute__((mode(TI)));
function rotl32 (line 45) | static inline uint32_t
function rotl64 (line 52) | static inline uint64_t
function rotr32 (line 59) | static inline uint32_t
function rotr64 (line 66) | static inline uint64_t
function load64_le (line 75) | static inline uint64_t
function store64_le (line 96) | static inline void
function load32_le (line 114) | static inline uint32_t
function store32_le (line 131) | static inline void
function load64_be (line 147) | static inline uint64_t
function store64_be (line 168) | static inline void
function load32_be (line 186) | static inline uint32_t
function store32_be (line 203) | static inline void
function xor_buf (line 217) | static inline void
FILE: src/libsodium/include/sodium/private/ed25519_ref10.h
type ge25519_p2 (line 44) | typedef struct {
type ge25519_p3 (line 50) | typedef struct {
type ge25519_p1p1 (line 57) | typedef struct {
type ge25519_precomp (line 64) | typedef struct {
type ge25519_cached (line 70) | typedef struct {
FILE: src/libsodium/include/sodium/private/ed25519_ref10_fe_25_5.h
function fe25519_0 (line 11) | static inline void
function fe25519_1 (line 21) | static inline void
function fe25519_add (line 41) | static inline void
function fe25519_sub (line 79) | static void
function fe25519_neg (line 115) | static inline void
function fe25519_cmov (line 148) | static void
function fe25519_cswap (line 204) | static void
function fe25519_copy (line 287) | static inline void
function fe25519_isnegative (line 301) | static inline int
function fe25519_iszero (line 319) | static inline int
function fe25519_mul (line 361) | static void
function fe25519_sq (line 631) | static void
function fe25519_sq2 (line 803) | static void
function fe25519_mul32 (line 975) | static inline void
FILE: src/libsodium/include/sodium/private/ed25519_ref10_fe_51.h
function fe25519_0 (line 11) | static inline void
function fe25519_1 (line 21) | static inline void
function fe25519_add (line 33) | static inline void
function fe25519_sub (line 53) | static void
function fe25519_neg (line 93) | static inline void
function fe25519_cmov (line 109) | static void
function fe25519_cswap (line 178) | static void
function fe25519_copy (line 231) | static inline void
function fe25519_isnegative (line 242) | static inline int
function fe25519_iszero (line 257) | static inline int
function fe25519_mul (line 272) | static void
function fe25519_sq (line 340) | static void
function fe25519_sq2 (line 406) | static void
function fe25519_mul32 (line 473) | static inline void
FILE: src/libsodium/include/sodium/private/softaes.h
type SoftAesBlock (line 8) | typedef struct SoftAesBlock {
function SoftAesBlock (line 25) | static inline SoftAesBlock
function SoftAesBlock (line 33) | static inline SoftAesBlock
function softaes_block_store (line 41) | static inline void
function SoftAesBlock (line 50) | static inline SoftAesBlock
function SoftAesBlock (line 57) | static inline SoftAesBlock
FILE: src/libsodium/include/sodium/private/sse2_64_32.h
function __m128i (line 19) | static inline __m128i
function __m128i (line 30) | static inline __m128i
function __m128i (line 39) | static inline __m128i
FILE: src/libsodium/include/sodium/randombytes.h
type randombytes_implementation (line 19) | typedef struct randombytes_implementation {
FILE: src/libsodium/randombytes/internal/randombytes_internal_random.c
type InternalRandomGlobal (line 120) | typedef struct InternalRandomGlobal_ {
type InternalRandom (line 131) | typedef struct InternalRandom_ {
function sodium_hrtime (line 155) | static uint64_t
function sodium_hrtime (line 168) | static uint64_t
function randombytes_internal_random_init (line 186) | static void
function randombytes_getentropy (line 195) | static int
function _randombytes_getentropy (line 206) | static int
function randombytes_getentropy (line 222) | static int
function _randombytes_linux_getrandom (line 245) | static int
function randombytes_linux_getrandom (line 258) | static int
function randombytes_block_on_dev_random (line 283) | static int
function randombytes_internal_random_random_dev_open (line 310) | static int
function safe_read (line 349) | static ssize_t
function randombytes_internal_random_init (line 375) | static void
function randombytes_internal_random_stir (line 427) | static void
function randombytes_internal_random_stir_if_needed (line 481) | static void
function randombytes_internal_random_close (line 502) | static int
function randombytes_internal_random_close (line 516) | static int
function randombytes_internal_random_xorhwrand (line 553) | static void
function randombytes_internal_random_xorkey (line 574) | static inline void
function randombytes_internal_random_buf (line 589) | static void
function randombytes_internal_random (line 621) | static uint32_t
type randombytes_implementation (line 657) | struct randombytes_implementation
FILE: src/libsodium/randombytes/randombytes.c
function javascript_random (line 44) | static uint32_t
function javascript_stir (line 52) | static void
function javascript_buf (line 111) | static void
function randombytes_init_if_needed (line 130) | static void
function randombytes_set_implementation (line 148) | int
function randombytes_random (line 162) | uint32_t
function randombytes_stir (line 169) | void
function randombytes_uniform (line 178) | uint32_t
function randombytes_buf (line 201) | void
function randombytes_buf_deterministic (line 210) | void
function randombytes_seedbytes (line 229) | size_t
function randombytes_close (line 235) | int
function randombytes (line 244) | void
FILE: src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c
function randombytes_sysrandom (line 90) | static uint32_t
function randombytes_sysrandom_stir (line 96) | static void
function randombytes_sysrandom_buf (line 101) | static void
function randombytes_sysrandom_close (line 107) | static int
type SysRandom (line 115) | typedef struct SysRandom_ {
function safe_read (line 128) | static ssize_t
function randombytes_block_on_dev_random (line 153) | static int
function randombytes_sysrandom_random_dev_open (line 179) | static int
function _randombytes_linux_getrandom (line 228) | static int
function randombytes_linux_getrandom (line 241) | static int
function randombytes_sysrandom_init (line 263) | static void
function randombytes_sysrandom_init (line 290) | static void
function randombytes_sysrandom_stir (line 296) | static void
function randombytes_sysrandom_stir_if_needed (line 305) | static void
function randombytes_sysrandom_close (line 313) | static int
function randombytes_sysrandom_buf (line 339) | static void
function randombytes_sysrandom (line 373) | static uint32_t
type randombytes_implementation (line 391) | struct randombytes_implementation
FILE: src/libsodium/sodium/codecs.c
function sodium_hex2bin (line 42) | int
function b64_byte_to_char (line 118) | static int
function b64_char_to_byte (line 127) | static unsigned int
function b64_byte_to_urlsafe_char (line 139) | static int
function b64_urlsafe_char_to_byte (line 148) | static unsigned int
function sodium_base64_check_variant (line 164) | static void
function sodium_base64_encoded_len (line 172) | size_t
function _sodium_base642bin_skip_padding (line 243) | static int
function sodium_base642bin (line 268) | int
function ip_hex_digit (line 338) | static int
function parse_ipv4 (line 350) | static int
function parse_ipv6 (line 383) | static int
function sodium_ip2bin (line 476) | int
function ip_write_num (line 517) | static void
FILE: src/libsodium/sodium/core.c
function sodium_init (line 27) | int
function _sodium_crit_init (line 63) | static int
function sodium_crit_enter (line 84) | int
function sodium_crit_leave (line 97) | int
function sodium_crit_enter (line 116) | int
function sodium_crit_leave (line 128) | int
function sodium_crit_enter (line 146) | int
function sodium_crit_leave (line 165) | int
function sodium_crit_enter (line 175) | int
function sodium_crit_leave (line 181) | int
function sodium_misuse (line 191) | void
function sodium_set_misuse_handler (line 208) | int
function BOOL (line 222) | BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserv...
FILE: src/libsodium/sodium/runtime.c
type CPUFeatures (line 21) | typedef struct CPUFeatures_ {
function _sodium_runtime_arm_cpu_features (line 60) | static int
function _cpuid (line 153) | static void
function _sodium_runtime_get_cpu_features (line 318) | int
function sodium_runtime_has_neon (line 330) | int
function sodium_runtime_has_armcrypto (line 336) | int
function sodium_runtime_has_sse2 (line 342) | int
function sodium_runtime_has_sse3 (line 348) | int
function sodium_runtime_has_ssse3 (line 354) | int
function sodium_runtime_has_sse41 (line 360) | int
function sodium_runtime_has_avx (line 366) | int
function sodium_runtime_has_avx2 (line 372) | int
function sodium_runtime_has_avx512f (line 378) | int
function sodium_runtime_has_pclmul (line 384) | int
function sodium_runtime_has_aesni (line 390) | int
function sodium_runtime_has_rdrand (line 396) | int
FILE: src/libsodium/sodium/utils.c
function _sodium_dummy_symbol_to_prevent_memzero_lto (line 115) | __attribute__((weak)) void
function sodium_memzero (line 125) | void
function sodium_stackzero (line 159) | void
function _sodium_dummy_symbol_to_prevent_memcmp_lto (line 175) | __attribute__((weak)) void
function sodium_memcmp (line 186) | int
function _sodium_dummy_symbol_to_prevent_compare_lto (line 215) | __attribute__((weak)) void
function sodium_compare (line 226) | int
function sodium_is_zero (line 257) | int
function sodium_increment (line 269) | void
function sodium_add (line 316) | void
function sodium_sub (line 365) | void
function _sodium_alloc_init (line 407) | int
function sodium_mlock (line 432) | int
function sodium_munlock (line 448) | int
function _mprotect_noaccess (line 465) | static int
function _mprotect_readonly (line 479) | static int
function _mprotect_readwrite (line 493) | static int
function _out_of_bounds (line 510) | __attribute__((noreturn)) static void
function _page_round (line 526) | static inline size_t
function _free_aligned (line 557) | static void
function sodium_free (line 663) | void
function sodium_free (line 669) | void
function _sodium_mprotect (line 702) | static int
function _sodium_mprotect (line 711) | static int
function sodium_mprotect_noaccess (line 726) | int
function sodium_mprotect_readonly (line 732) | int
function sodium_mprotect_readwrite (line 738) | int
function sodium_pad (line 744) | int
function sodium_unpad (line 785) | int
FILE: src/libsodium/sodium/version.c
function sodium_library_version_major (line 10) | int
function sodium_library_version_minor (line 16) | int
function sodium_library_minimal (line 22) | int
FILE: test/default/aead_aegis128l.c
function tv (line 500) | static int
function main (line 630) | int
FILE: test/default/aead_aegis256.c
function tv (line 581) | static int
function main (line 711) | int
FILE: test/default/aead_aes256gcm.c
function tv (line 3079) | static int
function tv2 (line 3270) | static int
function main (line 3312) | int
FILE: test/default/aead_aes256gcm2.c
function tv (line 182) | static int
function main (line 267) | int
FILE: test/default/aead_chacha20poly1305.c
function tv (line 5) | static int
function tv_ietf (line 180) | static int
function main (line 365) | int
FILE: test/default/aead_chacha20poly13052.c
function tv (line 947) | static int
function main (line 1039) | int
FILE: test/default/aead_xchacha20poly1305.c
function tv (line 5) | static int
function main (line 197) | int
FILE: test/default/auth.c
function main (line 19) | int
FILE: test/default/auth2.c
function main (line 22) | int
FILE: test/default/auth3.c
function main (line 25) | int
FILE: test/default/auth5.c
function main (line 9) | int
FILE: test/default/auth6.c
function main (line 11) | int
FILE: test/default/auth7.c
function main (line 9) | int
FILE: test/default/box.c
function main (line 48) | int
FILE: test/default/box2.c
function main (line 48) | int
FILE: test/default/box7.c
function main (line 11) | int
FILE: test/default/box8.c
function main (line 11) | int
FILE: test/default/box_easy.c
function main (line 38) | int
FILE: test/default/box_easy2.c
function main (line 11) | int
FILE: test/default/box_seal.c
function tv1 (line 5) | static
function tv2 (line 44) | static
function tv3 (line 74) | static
function tv4 (line 114) | static
function tv3 (line 145) | static
function tv4 (line 151) | static
function main (line 156) | int
FILE: test/default/box_seed.c
function main (line 11) | int
FILE: test/default/chacha20.c
function tv (line 5) | static
function tv_ietf (line 80) | static
function main (line 168) | int
FILE: test/default/cmptest.h
function mempool_free (line 75) | static void mempool_free(void *pnt)
function mempool_free_all (line 98) | static int mempool_free_all(void)
function now (line 119) | static unsigned long long now(void)
function main (line 140) | int main(void)
function main (line 175) | int main(void)
function main (line 221) | int main(void)
FILE: test/default/codecs.c
function main (line 4) | int
FILE: test/default/codecs2.c
function main (line 5) | int
FILE: test/default/codecs3.c
function main (line 4) | int
FILE: test/default/core1.c
function main (line 18) | int
FILE: test/default/core2.c
function main (line 20) | int
FILE: test/default/core3.c
function main (line 17) | int
FILE: test/default/core4.c
function main (line 18) | int
FILE: test/default/core5.c
function main (line 20) | int
FILE: test/default/core6.c
function print (line 20) | static void
function main (line 34) | int
FILE: test/default/core_ed25519.c
function add_P (line 41) | static void
function add_l64 (line 54) | static void
function main (line 68) | int
FILE: test/default/core_ed25519_h2c.c
type TestData (line 4) | typedef struct TestData_ {
function test_scalar_from_string (line 68) | static void
function test_from_string (line 162) | static void
function main (line 264) | int
FILE: test/default/core_keccak1600.c
function print_hex (line 5) | static void
function compare_states (line 16) | static int
function main (line 40) | int
FILE: test/default/core_ristretto255.c
function tv1 (line 4) | static void
function tv2 (line 63) | static void
function tv3 (line 110) | static void
function tv4 (line 210) | static void
function main (line 249) | int
FILE: test/default/core_ristretto255_h2c.c
type TestData (line 8) | typedef struct TestData_ {
function test_scalar_from_string (line 35) | static void
function test_from_string (line 129) | static void
function main (line 204) | int
FILE: test/default/ed25519_convert.c
function main (line 11) | int
FILE: test/default/generichash.c
function tv (line 1294) | static int
function main (line 1335) | int
FILE: test/default/generichash2.c
function main (line 5) | int
FILE: test/default/generichash3.c
function main (line 5) | int
FILE: test/default/hash.c
function main (line 12) | int
FILE: test/default/hash3.c
function main (line 8) | int
FILE: test/default/hash_sha3256.c
function main (line 5) | int
FILE: test/default/hash_sha3512.c
function main (line 5) | int
FILE: test/default/ipcrypt.c
function check_expected (line 7) | static int
function flip_bit_msb (line 24) | static void
function prefix_equal_msb (line 38) | static int
function main (line 57) | int
FILE: test/default/kdf.c
function tv_kdf (line 5) | static void
function main (line 65) | int
FILE: test/default/kdf_hkdf.c
function tv_kdf_hkdf (line 5) | static void
function main (line 95) | int
FILE: test/default/kdf_hkdf2.c
function tv_kdf_hkdf_incremental (line 5) | static void
function main (line 129) | int
FILE: test/default/kdf_hkdf3.c
function main (line 5) | int
FILE: test/default/kdf_hkdf4.c
function main (line 4) | int
FILE: test/default/kem.c
function tv_kem (line 4) | static void
function main (line 64) | int
FILE: test/default/kem_mlkem768.c
function test_kat_vector (line 126) | static int
function tv_kem_mlkem768 (line 182) | static void
function tv_kem_mlkem768_kat (line 276) | static void
function tv_wycheproof_decapsulation (line 294) | static void
function tv_wycheproof_modulus_overflow (line 331) | static void
function main (line 356) | int
FILE: test/default/kem_xwing.c
function test_kat_vector (line 40) | static int
function tv_kem_xwing (line 99) | static void
function tv_kem_xwing_kat (line 185) | static void
function main (line 210) | int
FILE: test/default/keygen.c
type KeygenTV (line 5) | typedef struct KeygenTV_ {
function tv_keygen (line 10) | static void
function main (line 61) | int
FILE: test/default/kx.c
function tv_kx (line 11) | static void
function main (line 143) | int
FILE: test/default/metamorphic.c
function mm_generichash (line 8) | static void
function mm_onetimeauth (line 56) | static void
function mm_hmacsha256 (line 96) | static void
function mm_hmacsha512 (line 136) | static void
function main (line 176) | int
FILE: test/default/misuse.c
function sigabrt_handler_15 (line 11) | static void
function sigabrt_handler_14 (line 19) | static void
function sigabrt_handler_13 (line 30) | static void
function sigabrt_handler_12 (line 42) | static void
function sigabrt_handler_11 (line 56) | static void
function sigabrt_handler_10 (line 67) | static void
function sigabrt_handler_9 (line 78) | static void
function sigabrt_handler_8 (line 88) | static void
function sigabrt_handler_7 (line 98) | static void
function sigabrt_handler_6 (line 108) | static void
function sigabrt_handler_5 (line 117) | static void
function sigabrt_handler_4 (line 128) | static void
function sigabrt_handler_3 (line 139) | static void
function sigabrt_handler_2 (line 150) | static void
function sigabrt_handler_1 (line 163) | static void
function main (line 173) | int
function main (line 182) | int
FILE: test/default/onetimeauth.c
function main (line 27) | int
FILE: test/default/onetimeauth2.c
function main (line 28) | int
FILE: test/default/onetimeauth7.c
function main (line 9) | int
FILE: test/default/pwhash_argon2i.c
function tv (line 9) | static void
function tv2 (line 106) | static void
function tv3 (line 188) | static void
function str_tests (line 230) | static void
function main (line 412) | int
FILE: test/default/pwhash_argon2id.c
function tv (line 9) | static void
function tv2 (line 106) | static void
function tv3 (line 184) | static void
function str_tests (line 226) | static void
function main (line 410) | int
FILE: test/default/pwhash_argon2id2.c
function main (line 4) | int
FILE: test/default/pwhash_scrypt.c
function tv (line 9) | static void
function tv2 (line 116) | static void
function tv3 (line 165) | static void
function str_tests (line 295) | static void
function main (line 363) | int
FILE: test/default/pwhash_scrypt_ll.c
function tv (line 23) | static void
function main (line 51) | int
FILE: test/default/randombytes.c
function compat_tests (line 8) | static int
function randombytes_tests (line 29) | static int
function randombytes_uniform_impl (line 122) | static uint32_t
function impl_tests (line 128) | static int
function main (line 149) | int
FILE: test/default/scalarmult.c
function main (line 25) | int
FILE: test/default/scalarmult2.c
function main (line 11) | int
FILE: test/default/scalarmult5.c
function main (line 17) | int
FILE: test/default/scalarmult6.c
function main (line 17) | int
FILE: test/default/scalarmult7.c
function main (line 21) | int
FILE: test/default/scalarmult8.c
type TestData (line 5) | typedef struct TestData_ {
function main (line 537) | int
FILE: test/default/scalarmult_ed25519.c
function main (line 26) | int
FILE: test/default/scalarmult_ristretto255.c
function main (line 6) | int
FILE: test/default/secretbox.c
function main (line 36) | int
FILE: test/default/secretbox2.c
function main (line 36) | int
FILE: test/default/secretbox7.c
function main (line 11) | int
FILE: test/default/secretbox8.c
function main (line 11) | int
FILE: test/default/secretbox_easy.c
function main (line 30) | int
FILE: test/default/secretbox_easy2.c
function main (line 5) | int
FILE: test/default/secretstream_xchacha20poly1305.c
function main (line 5) | int
FILE: test/default/shorthash.c
function main (line 7) | int
FILE: test/default/sign.c
type TestData (line 10) | typedef struct TestData_ {
function add_l (line 1049) | static void add_l(unsigned char * const S)
function main (line 1060) | int main(void)
FILE: test/default/sign2.c
type TestData (line 5) | typedef struct TestData_ {
function main (line 99) | int
FILE: test/default/siphashx24.c
function main (line 7) | int
FILE: test/default/sodium_core.c
function misuse_handler (line 5) | static void
function main (line 12) | int
FILE: test/default/sodium_utils.c
function main (line 4) | int
FILE: test/default/sodium_utils2.c
function segv_handler (line 24) | __attribute__((noreturn)) static void
function main (line 48) | int
FILE: test/default/sodium_utils3.c
function segv_handler (line 23) | __attribute__((noreturn)) static void
function main (line 47) | int
FILE: test/default/sodium_utils4.c
function main (line 8) | int
FILE: test/default/sodium_version.c
function main (line 5) | int
FILE: test/default/stream.c
function main (line 20) | int
FILE: test/default/stream2.c
function main (line 19) | int
FILE: test/default/stream3.c
function main (line 18) | int
FILE: test/default/stream4.c
function main (line 35) | int
FILE: test/default/stream5.c
function main (line 16) | int
FILE: test/default/stream6.c
function main (line 4) | int
FILE: test/default/verify1.c
function main (line 5) | int
FILE: test/default/xchacha20.c
type HChaCha20TV (line 5) | typedef struct HChaCha20TV_ {
function tv_hchacha20 (line 17) | static void
type XChaCha20TV (line 83) | typedef struct XChaCha20TV_ {
function tv_stream_xchacha20 (line 89) | static void
type XChaCha20Poly1305TV (line 192) | typedef struct XChaCha20Poly1305TV_ {
function tv_secretbox_xchacha20poly1305 (line 199) | static void
function tv_box_xchacha20poly1305 (line 299) | static void
function main (line 419) | int
FILE: test/default/xof2.c
function main (line 5) | int
FILE: test/default/xof_shake128.c
type testvector (line 5) | typedef struct {
function shake128_manual_with_domain (line 12) | static void
function main (line 72) | int
FILE: test/default/xof_shake256.c
type testvector (line 5) | typedef struct {
function shake256_manual_with_domain (line 12) | static void
function main (line 72) | int
FILE: test/default/xof_turboshake128.c
type testvector (line 5) | typedef struct {
function turboshake128_manual_with_domain (line 12) | static void
function main (line 72) | int
FILE: test/default/xof_turboshake256.c
type testvector (line 5) | typedef struct {
function turboshake256_manual_with_domain (line 12) | static void
function main (line 72) | int
FILE: test/quirks/quirks.h
function strcmp (line 10) | static int
function srandom (line 23) | static void
function random (line 29) | static long
Condensed preview — 696 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,882K chars).
[
{
"path": ".github/FUNDING.yml",
"chars": 27,
"preview": "open_collective: libsodium\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bugs.md",
"chars": 1074,
"preview": "---\nname: \"\\U0001F41E Bug report\"\nabout: Report a bug in libsodium\ntitle: \"\"\nlabels: \"\"\nassignees: \"\"\n---\n\nThanks for ta"
},
{
"path": ".github/ISSUE_TEMPLATE/suggestions.md",
"chars": 669,
"preview": "---\nname: \"🙋🏽 Planned changes\"\nabout: Track planned changes (maintainers only)\ntitle: \"\"\nlabels: \"\"\nassignees: \"\"\n---\n\nH"
},
{
"path": ".github/workflows/autocloser.yml",
"chars": 759,
"preview": "name: Autocloser\non: [issues]\n\npermissions:\n issues: write\n\njobs:\n autoclose:\n runs-on: ubuntu-latest\n steps:\n "
},
{
"path": ".github/workflows/ci.yml",
"chars": 9269,
"preview": "name: CI\n\non:\n push:\n branches: [master, stable, next]\n pull_request:\n branches: [master, stable, next]\n\n workf"
},
{
"path": ".github/workflows/cifuzz.yml",
"chars": 994,
"preview": "name: CIFuzz\n\non:\n push:\n branches: [stable, next]\n pull_request:\n branches: [stable, next]\n\npermissions:\n cont"
},
{
"path": ".github/workflows/codeql-analysis.yml",
"chars": 1413,
"preview": "name: \"CodeQL scan\"\n\non:\n push:\n branches: [ \"master stable next\" ]\n pull_request:\n # The branches below must be"
},
{
"path": ".github/workflows/dotnet-core.yml",
"chars": 16017,
"preview": "name: .NET Package\n\non:\n push:\n branches:\n - stable\n - next\n\npermissions:\n contents: read\n\njobs:\n build-"
},
{
"path": ".github/workflows/zizmor.yml",
"chars": 586,
"preview": "name: Zizmor\n\non:\n push:\n branches: [master, stable, next]\n paths:\n - '.github/workflows/**'\n pull_request:"
},
{
"path": ".gitignore",
"chars": 3784,
"preview": "!build\n.deps\n.dirstamp\n.done\n.DS_Store\n.libs\n.swival\n.zig-cache\n*.bc\n*.done\n*.dSYM\n*.final\n*.gcda\n*.gcno\n*.i\n*.la\n*.lo\n*"
},
{
"path": "AUTHORS",
"chars": 5020,
"preview": "\nDesigners\n=========\n\naegis Hongjun Wu\n Bart Pren"
},
{
"path": "CITATION.cff",
"chars": 464,
"preview": "cff-version: 1.2.0\ntitle: libsodium\nmessage: >-\n If you use this software, please cite it using the\n metadata from thi"
},
{
"path": "ChangeLog",
"chars": 37530,
"preview": "* Version 1.0.21-stable\n - Performance: NEON optimizations for Argon2 on ARM platforms.\n - Performance: SHA3 (Keccak1600"
},
{
"path": "LICENSE",
"chars": 823,
"preview": "/*\n * ISC License\n *\n * Copyright (c) 2013-2026\n * Frank Denis <j at pureftpd dot org>\n *\n * Permission to use, copy, mo"
},
{
"path": "Makefile.am",
"chars": 292,
"preview": "ACLOCAL_AMFLAGS = -I m4\n\nEXTRA_DIST = \\\n\tautogen.sh \\\n\tbuild.zig \\\n\tChangeLog \\\n\tCITATION.cff \\\n\tLICENSE \\\n\tREADME.markd"
},
{
"path": "README.markdown",
"chars": 3763,
"preview": "[](https://github.com/jedisct1/libsodium/actio"
},
{
"path": "THANKS",
"chars": 2833,
"preview": "Special thanks to people, companies and organizations having written\nlibsodium bindings for their favorite programming l"
},
{
"path": "appveyor.yml",
"chars": 408,
"preview": "version: 1.0.23.{build}\n\nos: Visual Studio 2022\n\nenvironment:\n matrix:\n - platform: Win32\n configuration: Debug"
},
{
"path": "autogen.sh",
"chars": 2894,
"preview": "#! /bin/sh\n\nargs=$(getopt bfos \"$@\")\nif [ $? -ne 0 ]; then\n echo \"Usage: autogen.sh [-b] [-f] [-o] [-s] [--]\"\n echo\n "
},
{
"path": "azure-pipelines.yml",
"chars": 5889,
"preview": "trigger:\n - stable\n - next\n\npr: none\n\njobs:\n - job: \"windows\"\n pool:\n vmImage: \"windows-latest\"\n steps:\n "
},
{
"path": "build.zig",
"chars": 15359,
"preview": "const std = @import(\"std\");\nconst fmt = std.fmt;\nconst heap = std.heap;\nconst mem = std.mem;\nconst Compile = std.Build.S"
},
{
"path": "builds/.gitignore",
"chars": 55,
"preview": "*.opensdf\n*.suo\n*.sdf\n*.vcxproj.user\n*.aps\n*.log\n!build"
},
{
"path": "builds/Makefile.am",
"chars": 3200,
"preview": "EXTRA_DIST = \\\n\tmsvc/build/buildall.bat \\\n\tmsvc/build/buildbase.bat \\\n\tmsvc/properties/ARM64.props \\\n\tmsvc/properties/Co"
},
{
"path": "builds/msvc/build/buildall.bat",
"chars": 434,
"preview": "@ECHO OFF\n\nCALL buildbase.bat ..\\vs2026\\libsodium.sln 18\nECHO.\nCALL buildbase.bat ..\\vs2022\\libsodium.sln 17\nECHO.\nCALL "
},
{
"path": "builds/msvc/build/buildbase.bat",
"chars": 5294,
"preview": "@ECHO OFF\nREM Usage: [buildbase.bat ..\\vs2026\\mysolution.sln 18]\n\nSETLOCAL enabledelayedexpansion\n\nSET solution=%1\nSET v"
},
{
"path": "builds/msvc/properties/ARM64.props",
"chars": 760,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/Common.props",
"chars": 1450,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/DLL.props",
"chars": 520,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/Debug.props",
"chars": 1038,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/DebugDEXE.props",
"chars": 631,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/DebugDLL.props",
"chars": 584,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/DebugLEXE.props",
"chars": 587,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/DebugLIB.props",
"chars": 656,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/DebugLTCG.props",
"chars": 627,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/DebugSEXE.props",
"chars": 622,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/EXE.props",
"chars": 528,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/LIB.props",
"chars": 508,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/LTCG.props",
"chars": 405,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/Link.props",
"chars": 653,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/Messages.props",
"chars": 641,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/Output.props",
"chars": 1324,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/Release.props",
"chars": 1578,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/ReleaseDEXE.props",
"chars": 580,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/ReleaseDLL.props",
"chars": 539,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/ReleaseLEXE.props",
"chars": 586,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/ReleaseLIB.props",
"chars": 533,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/ReleaseLTCG.props",
"chars": 560,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/ReleaseSEXE.props",
"chars": 575,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/Win32.props",
"chars": 745,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/properties/x64.props",
"chars": 1044,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/resource.h",
"chars": 387,
"preview": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by Resource.rc\n\n// Next default values for"
},
{
"path": "builds/msvc/resource.rc",
"chars": 1949,
"preview": "// Microsoft Visual C++ generated resource script.\r\n//\r\n#include \"resource.h\"\r\n#include \"windows.h\"\r\n\r\n//specify the ver"
},
{
"path": "builds/msvc/version.h",
"chars": 509,
"preview": "\n#ifndef sodium_version_H\n#define sodium_version_H\n\n#include \"export.h\"\n\n#define SODIUM_VERSION_STRING \"1.0.23\"\n\n#define"
},
{
"path": "builds/msvc/vs2010/libsodium/libsodium.props",
"chars": 2232,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2010/libsodium/libsodium.vcxproj",
"chars": 33368,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters",
"chars": 65795,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "builds/msvc/vs2010/libsodium/libsodium.xml",
"chars": 783,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2010/libsodium.import.props",
"chars": 3044,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2010/libsodium.import.xml",
"chars": 985,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2010/libsodium.sln",
"chars": 3003,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 11.00\r\n# Visual C++ Express 2010\r\nProject(\"{8BC9CEB8-8B4A-11D0-"
},
{
"path": "builds/msvc/vs2012/libsodium/libsodium.props",
"chars": 2232,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2012/libsodium/libsodium.vcxproj",
"chars": 33368,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters",
"chars": 65795,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "builds/msvc/vs2012/libsodium/libsodium.xml",
"chars": 783,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2012/libsodium.import.props",
"chars": 3044,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2012/libsodium.import.xml",
"chars": 985,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2012/libsodium.sln",
"chars": 3026,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Express 2012 for Windows Desktop\r\nProjec"
},
{
"path": "builds/msvc/vs2013/libsodium/libsodium.props",
"chars": 2232,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2013/libsodium/libsodium.vcxproj",
"chars": 33368,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters",
"chars": 65795,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "builds/msvc/vs2013/libsodium/libsodium.xml",
"chars": 783,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2013/libsodium.import.props",
"chars": 3044,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2013/libsodium.import.xml",
"chars": 985,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2013/libsodium.sln",
"chars": 3077,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 2013\r\nVisualStudioVersion = 12.0.31101.0"
},
{
"path": "builds/msvc/vs2015/libsodium/libsodium.props",
"chars": 2232,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2015/libsodium/libsodium.vcxproj",
"chars": 33368,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters",
"chars": 65795,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "builds/msvc/vs2015/libsodium/libsodium.xml",
"chars": 783,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2015/libsodium.import.props",
"chars": 3044,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2015/libsodium.import.xml",
"chars": 985,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2015/libsodium.sln",
"chars": 3075,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 14\r\nVisualStudioVersion = 14.0.23107.0\r\n"
},
{
"path": "builds/msvc/vs2017/libsodium/libsodium.props",
"chars": 2232,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2017/libsodium/libsodium.vcxproj",
"chars": 33368,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters",
"chars": 65795,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "builds/msvc/vs2017/libsodium/libsodium.xml",
"chars": 783,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2017/libsodium.import.props",
"chars": 3044,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2017/libsodium.import.xml",
"chars": 985,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2017/libsodium.sln",
"chars": 3075,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nVisualStudioVersion = 15.0.26228.4\r\n"
},
{
"path": "builds/msvc/vs2019/libsodium/libsodium.props",
"chars": 2232,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2019/libsodium/libsodium.vcxproj",
"chars": 34362,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters",
"chars": 65795,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "builds/msvc/vs2019/libsodium/libsodium.xml",
"chars": 783,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2019/libsodium.import.props",
"chars": 3044,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2019/libsodium.import.xml",
"chars": 985,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2019/libsodium.sln",
"chars": 3075,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nVisualStudioVersion = 15.0.26228.4\r\n"
},
{
"path": "builds/msvc/vs2022/libsodium/libsodium.props",
"chars": 2232,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2022/libsodium/libsodium.vcxproj",
"chars": 34362,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "builds/msvc/vs2022/libsodium/libsodium.vcxproj.filters",
"chars": 65795,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "builds/msvc/vs2022/libsodium/libsodium.xml",
"chars": 783,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2022/libsodium.import.props",
"chars": 3044,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2022/libsodium.import.xml",
"chars": 985,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2022/libsodium.sln",
"chars": 4353,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nVisualStudioVersion = 15.0.26228.4\r\n"
},
{
"path": "builds/msvc/vs2026/libsodium/libsodium.props",
"chars": 2232,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2026/libsodium/libsodium.vcxproj",
"chars": 34362,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "builds/msvc/vs2026/libsodium/libsodium.vcxproj.filters",
"chars": 65795,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "builds/msvc/vs2026/libsodium/libsodium.xml",
"chars": 783,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2026/libsodium.import.props",
"chars": 3044,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "builds/msvc/vs2026/libsodium.import.xml",
"chars": 985,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ProjectSchemaDefinitions xmlns=\"clr-namespace:Microsoft.Build.Framework.XamlType"
},
{
"path": "builds/msvc/vs2026/libsodium.sln",
"chars": 4353,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nVisualStudioVersion = 15.0.26228.4\r\n"
},
{
"path": "ci/appveyor/libsodium.sln",
"chars": 2117,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 14\r\nVisualStudioVersion = 14.0.23107.0\r\n"
},
{
"path": "ci/appveyor/libsodium.vcxproj",
"chars": 46352,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "ci/appveyor/libsodium.vcxproj.filters",
"chars": 45413,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "ci/appveyor/msvc-scripts/process.bat",
"chars": 433,
"preview": "cscript msvc-scripts/rep.vbs //Nologo s/@VERSION@/1.0.23/ < ..\\..\\src\\libsodium\\include\\sodium\\version.h.in > tmp\ncscrip"
},
{
"path": "ci/appveyor/msvc-scripts/rep.vbs",
"chars": 294,
"preview": "Dim pat, patparts, rxp, inp\npat = WScript.Arguments(0)\npatparts = Split(pat, \"/\")\nSet rxp = new RegExp\nrxp.Global = True"
},
{
"path": "ci/appveyor/msvc-scripts/sodium.props",
"chars": 1342,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\"\n xmlns=\"http://schemas.microsoft.com/developer/msbu"
},
{
"path": "configure.ac",
"chars": 33435,
"preview": "AC_PREREQ([2.69])\nAC_INIT([libsodium],[1.0.23],[https://github.com/jedisct1/libsodium/issues],[libsodium],[https://libso"
},
{
"path": "dist-build/Makefile.am",
"chars": 242,
"preview": "\nEXTRA_DIST = \\\n\tandroid-build.sh \\\n\tandroid-aar.sh \\\n\tandroid-armv7-a.sh \\\n\tandroid-armv8-a.sh \\\n\tandroid-x86.sh \\\n\tand"
},
{
"path": "dist-build/android-aar.sh",
"chars": 5802,
"preview": "#! /bin/sh\n\n# Create an AAR with libsodium in all combinations of static | shared | minimal | full.\n#\n# To simplify link"
},
{
"path": "dist-build/android-armv7-a.sh",
"chars": 255,
"preview": "#!/bin/sh\nexport TARGET_ARCH=armv7-a\nexport CFLAGS=\"-Os -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -marm -march=${TARGET"
},
{
"path": "dist-build/android-armv8-a.sh",
"chars": 212,
"preview": "#!/bin/sh\nexport TARGET_ARCH=armv8-a+crypto\nexport CFLAGS=\"-Os -march=${TARGET_ARCH}\"\nexport LDFLAGS=\"-Wl,-z,max-page-si"
},
{
"path": "dist-build/android-build.sh",
"chars": 3024,
"preview": "#! /bin/sh\n\nif [ -z \"$NDK_PLATFORM\" ]; then\n echo \"No NDK_PLATFORM specified, set to value such as \\\"android-{Min_SDK_V"
},
{
"path": "dist-build/android-x86.sh",
"chars": 197,
"preview": "#!/bin/sh\nexport TARGET_ARCH=i686\nexport CFLAGS=\"-Os -march=${TARGET_ARCH}\"\nexport LDFLAGS=\"-Wl,-z,max-page-size=16384\"\n"
},
{
"path": "dist-build/android-x86_64.sh",
"chars": 206,
"preview": "#!/bin/sh\nexport TARGET_ARCH=westmere\nexport CFLAGS=\"-Os -march=${TARGET_ARCH}\"\nexport LDFLAGS=\"-Wl,-z,max-page-size=163"
},
{
"path": "dist-build/apple-xcframework.sh",
"chars": 25090,
"preview": "#! /bin/sh\n\nexport PREFIX=\"$(pwd)/libsodium-apple\"\nexport MACOS_ARM64_PREFIX=\"${PREFIX}/tmp/macos-arm64\"\nexport MACOS_AR"
},
{
"path": "dist-build/emscripten-symbols.def",
"chars": 27846,
"preview": "_crypto_aead_aegis128l_abytes 1 1\n_crypto_aead_aegis128l_decrypt 1 1\n_crypto_aead_aegis128l_decrypt_detached 1 1\n_crypto"
},
{
"path": "dist-build/emscripten.sh",
"chars": 44419,
"preview": "#! /bin/sh\n\nexport MAKE_FLAGS='-j4'\nexport EXPORTED_FUNCTIONS_STANDARD='[\"_malloc\",\"_free\",\"_crypto_aead_aegis128l_abyte"
},
{
"path": "dist-build/generate-emscripten-symbols.sh",
"chars": 1393,
"preview": "#! /bin/sh\n\nset -e\n\nLIBSODIUM=${LIBSODIUM:-/tmp/sodium/lib/libsodium.30.dylib}\n\nsymbols() {\n {\n SUMO=\"$1\"\n while "
},
{
"path": "dist-build/macos.sh",
"chars": 736,
"preview": "#! /bin/sh\n\nexport PREFIX=\"$(pwd)/libsodium-osx\"\nexport MACOS_VERSION_MIN=${MACOS_VERSION_MIN-\"10.10\"}\n\nif [ -z \"$LIBSOD"
},
{
"path": "dist-build/msys2-win32.sh",
"chars": 411,
"preview": "#! /bin/sh\n\nexport CFLAGS=\"-O3 -fomit-frame-pointer -m32 -march=pentium3 -mtune=westmere\"\nexport PREFIX=\"$(pwd)/libsodiu"
},
{
"path": "dist-build/msys2-win64.sh",
"chars": 401,
"preview": "#! /bin/sh\n\nexport CFLAGS=\"-O3 -fomit-frame-pointer -m64 -mtune=westmere\"\nexport PREFIX=\"$(pwd)/libsodium-win64\"\n\nif (x8"
},
{
"path": "dist-build/wasm32-wasi.sh",
"chars": 1087,
"preview": "#! /bin/sh\n\nexport PATH=\"/opt/zig/bin:/opt/zig:/opt/homebrew/bin:$PATH\"\n\nexport PREFIX=\"$(pwd)/libsodium-wasm32-wasi\"\n\nm"
},
{
"path": "lgtm.yml",
"chars": 100,
"preview": "extraction:\n cpp:\n configure:\n command:\n - ./autogen.sh -s\n - ./configure\n"
},
{
"path": "libsodium-uninstalled.pc.in",
"chars": 311,
"preview": "Name: @PACKAGE_NAME@\nVersion: @PACKAGE_VERSION@\nDescription: A modern and easy-to-use crypto library\n\nLibs: -L${pcfiledi"
},
{
"path": "libsodium.pc.in",
"chars": 275,
"preview": "prefix=@prefix@\nexec_prefix=@exec_prefix@\nlibdir=@libdir@\nincludedir=@includedir@\n\nName: @PACKAGE_NAME@\nVersion: @PACKAG"
},
{
"path": "m4/ax_add_fortify_source.m4",
"chars": 3788,
"preview": "# ===========================================================================\n# https://www.gnu.org/software/autoconf-a"
},
{
"path": "m4/ax_check_catchable_abrt.m4",
"chars": 1269,
"preview": "# SYNOPSIS\n#\n# AX_CHECK_CATCHABLE_ABRT\n#\n# DESCRIPTION\n#\n# Check whether SIGABRT can be caught using signal handlers."
},
{
"path": "m4/ax_check_catchable_segv.m4",
"chars": 1587,
"preview": "# SYNOPSIS\n#\n# AX_CHECK_CATCHABLE_SEGV\n#\n# DESCRIPTION\n#\n# Check whether segmentation violations can be caught using "
},
{
"path": "m4/ax_check_compile_flag.m4",
"chars": 2200,
"preview": "# ===========================================================================\n# https://www.gnu.org/software/autoconf-a"
},
{
"path": "m4/ax_check_define.m4",
"chars": 2267,
"preview": "# ===========================================================================\n# https://www.gnu.org/software/autocon"
},
{
"path": "m4/ax_check_gnu_make.m4",
"chars": 4055,
"preview": "# ===========================================================================\n# https://www.gnu.org/software/autoconf"
},
{
"path": "m4/ax_check_link_flag.m4",
"chars": 3265,
"preview": "# ===========================================================================\n# https://www.gnu.org/software/autoconf"
},
{
"path": "m4/ax_pthread.m4",
"chars": 22556,
"preview": "# ===========================================================================\n# https://www.gnu.org/software/auto"
},
{
"path": "m4/ax_tls.m4",
"chars": 2984,
"preview": "# ===========================================================================\n# https://www.gnu.org/software/au"
},
{
"path": "m4/ax_valgrind_check.m4",
"chars": 9034,
"preview": "# ===========================================================================\n# https://www.gnu.org/software/autoconf"
},
{
"path": "m4/ld-output-def.m4",
"chars": 1054,
"preview": "# ld-output-def.m4 serial 2\ndnl Copyright (C) 2008-2013 Free Software Foundation, Inc.\ndnl This file is free software; t"
},
{
"path": "packaging/dotnet-core/libsodium.pkgproj",
"chars": 3296,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>netstandard2.0</TargetFramework>\n <NoBuild>"
},
{
"path": "packaging/dotnet-core/test.cs",
"chars": 1924,
"preview": "using System;\r\nusing System.Runtime.InteropServices;\r\n\r\ninternal static class Program\r\n{\r\n internal static int Main()"
},
{
"path": "regen-msvc/libsodium.vcxproj",
"chars": 18017,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.micros"
},
{
"path": "regen-msvc/libsodium.vcxproj.filters",
"chars": 905,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "regen-msvc/libsodium.vcxproj.filters.tpl",
"chars": 1049,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "regen-msvc/libsodium.vcxproj.tpl",
"chars": 1510,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "regen-msvc/regen-msvc.py",
"chars": 7308,
"preview": "#! /usr/bin/env python3\n\nimport glob\nimport os\nimport uuid\n\ndirs = set()\n\ntlv1 = \"\"\nfor file in glob.iglob(\"src/libsodiu"
},
{
"path": "regen-msvc/tl_libsodium.vcxproj.filters.tpl",
"chars": 921,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "regen-msvc/tl_libsodium.vcxproj.tpl",
"chars": 18354,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\"\r\n xmlns=\"http://schemas.mic"
},
{
"path": "src/Makefile.am",
"chars": 24,
"preview": "\nSUBDIRS = \\\n\tlibsodium\n"
},
{
"path": "src/libsodium/Makefile.am",
"chars": 13782,
"preview": "lib_LTLIBRARIES = \\\n\tlibsodium.la\n\nlibsodium_la_SOURCES = \\\n\tcrypto_aead/aegis128l/aead_aegis128l.c \\\n\tcrypto_aead/aegis"
},
{
"path": "src/libsodium/crypto_aead/aegis128l/aead_aegis128l.c",
"chars": 4971,
"preview": "\n#include <errno.h>\n#include <stdlib.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis128l.h\"\n#include \"private/common.h"
},
{
"path": "src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.c",
"chars": 2177,
"preview": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#i"
},
{
"path": "src/libsodium/crypto_aead/aegis128l/aegis128l_aesni.h",
"chars": 161,
"preview": "#ifndef aegis128l_aesni_H\n#define aegis128l_aesni_H\n\n#include \"implementations.h\"\n\nextern struct aegis128l_implementatio"
},
{
"path": "src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.c",
"chars": 1977,
"preview": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#i"
},
{
"path": "src/libsodium/crypto_aead/aegis128l/aegis128l_armcrypto.h",
"chars": 173,
"preview": "#ifndef aegis128l_armcrypto_H\n#define aegis128l_armcrypto_H\n\n#include \"implementations.h\"\n\nextern struct aegis128l_imple"
},
{
"path": "src/libsodium/crypto_aead/aegis128l/aegis128l_common.h",
"chars": 8110,
"preview": "#define RATE 32\n\nstatic inline void\naegis128l_init(const uint8_t *key, const uint8_t *nonce, aes_block_t *const state)\n{"
},
{
"path": "src/libsodium/crypto_aead/aegis128l/aegis128l_soft.c",
"chars": 1831,
"preview": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#i"
},
{
"path": "src/libsodium/crypto_aead/aegis128l/aegis128l_soft.h",
"chars": 159,
"preview": "#ifndef aegis128l_soft_H\n#define aegis128l_soft_H\n\n#include \"implementations.h\"\n\nextern struct aegis128l_implementation "
},
{
"path": "src/libsodium/crypto_aead/aegis128l/implementations.h",
"chars": 664,
"preview": "#ifndef aegis128l_implementations_H\n#define aegis128l_implementations_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#inclu"
},
{
"path": "src/libsodium/crypto_aead/aegis256/aead_aegis256.c",
"chars": 4917,
"preview": "\n#include <errno.h>\n#include <stdlib.h>\n\n#include \"core.h\"\n#include \"crypto_aead_aegis256.h\"\n#include \"private/common.h\""
},
{
"path": "src/libsodium/crypto_aead/aegis256/aegis256_aesni.c",
"chars": 1983,
"preview": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#i"
},
{
"path": "src/libsodium/crypto_aead/aegis256/aegis256_aesni.h",
"chars": 157,
"preview": "#ifndef aegis256_aesni_H\n#define aegis256_aesni_H\n\n#include \"implementations.h\"\n\nextern struct aegis256_implementation a"
},
{
"path": "src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.c",
"chars": 2047,
"preview": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#i"
},
{
"path": "src/libsodium/crypto_aead/aegis256/aegis256_armcrypto.h",
"chars": 169,
"preview": "#ifndef aegis256_armcrypto_H\n#define aegis256_armcrypto_H\n\n#include \"implementations.h\"\n\nextern struct aegis256_implemen"
},
{
"path": "src/libsodium/crypto_aead/aegis256/aegis256_common.h",
"chars": 7253,
"preview": "#define RATE 16\n\nstatic inline void\naegis256_init(const uint8_t *key, const uint8_t *nonce, aes_block_t *const state)\n{\n"
},
{
"path": "src/libsodium/crypto_aead/aegis256/aegis256_soft.c",
"chars": 1636,
"preview": "#include <errno.h>\n#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#i"
},
{
"path": "src/libsodium/crypto_aead/aegis256/aegis256_soft.h",
"chars": 155,
"preview": "#ifndef aegis256_soft_H\n#define aegis256_soft_H\n\n#include \"implementations.h\"\n\nextern struct aegis256_implementation aeg"
},
{
"path": "src/libsodium/crypto_aead/aegis256/implementations.h",
"chars": 659,
"preview": "#ifndef aegis256_implementations_H\n#define aegis256_implementations_H\n\n#include <stddef.h>\n#include <stdint.h>\n\n#include"
},
{
"path": "src/libsodium/crypto_aead/aes256gcm/aead_aes256gcm.c",
"chars": 5029,
"preview": "#include <errno.h>\n#include <stdlib.h>\n\n#include \"crypto_aead_aes256gcm.h\"\n#include \"private/common.h\"\n#include \"randomb"
},
{
"path": "src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c",
"chars": 34793,
"preview": "#include <errno.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#i"
},
{
"path": "src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c",
"chars": 37378,
"preview": "#include <errno.h>\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#i"
},
{
"path": "src/libsodium/crypto_aead/chacha20poly1305/aead_chacha20poly1305.c",
"chars": 14334,
"preview": "\n#include <stdint.h>\n#include <stdlib.h>\n#include <limits.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aea"
},
{
"path": "src/libsodium/crypto_aead/xchacha20poly1305/aead_xchacha20poly1305.c",
"chars": 9446,
"preview": "\n#include <stdint.h>\n#include <stdlib.h>\n#include <limits.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_aea"
},
{
"path": "src/libsodium/crypto_auth/crypto_auth.c",
"chars": 775,
"preview": "\n#include \"crypto_auth.h\"\n#include \"randombytes.h\"\n\nsize_t\ncrypto_auth_bytes(void)\n{\n return crypto_auth_BYTES;\n}\n\nsi"
},
{
"path": "src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256.c",
"chars": 3081,
"preview": "\n#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_auth_hmacsha256.h\"\n#inc"
},
{
"path": "src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.c",
"chars": 3087,
"preview": "\n#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_auth_hmacsha512.h\"\n#inc"
},
{
"path": "src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.c",
"chars": 2523,
"preview": "\n#include <stddef.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"crypto_auth_hmacsha512.h\"\n#include \"crypto_auth_"
},
{
"path": "src/libsodium/crypto_box/crypto_box.c",
"chars": 2383,
"preview": "\n#include \"crypto_box.h\"\n\nsize_t\ncrypto_box_seedbytes(void)\n{\n return crypto_box_SEEDBYTES;\n}\n\nsize_t\ncrypto_box_publ"
},
{
"path": "src/libsodium/crypto_box/crypto_box_easy.c",
"chars": 3718,
"preview": "\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n\n#include \"core.h\"\n#include \"crypto_box.h\"\n#include \"crypto"
},
{
"path": "src/libsodium/crypto_box/crypto_box_seal.c",
"chars": 1895,
"preview": "\n#include <string.h>\n\n#include \"crypto_box.h\"\n#include \"crypto_generichash.h\"\n#include \"private/common.h\"\n#include \"util"
},
{
"path": "src/libsodium/crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c",
"chars": 6597,
"preview": "\n#include <limits.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core.h\"\n#include \"crypto_box"
},
{
"path": "src/libsodium/crypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.c",
"chars": 2974,
"preview": "\n#include <string.h>\n\n#include \"crypto_box_curve25519xchacha20poly1305.h\"\n#include \"crypto_generichash.h\"\n#include \"priv"
},
{
"path": "src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c",
"chars": 4617,
"preview": "#include <string.h>\n\n#include \"crypto_box_curve25519xsalsa20poly1305.h\"\n#include \"crypto_core_hsalsa20.h\"\n#include \"cryp"
},
{
"path": "src/libsodium/crypto_core/ed25519/core_ed25519.c",
"chars": 8372,
"preview": "#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"core_h2c.h\"\n#include \"crypto_core_ed25519.h\"\n#inc"
},
{
"path": "src/libsodium/crypto_core/ed25519/core_h2c.c",
"chars": 4882,
"preview": "#include <assert.h>\n#include <errno.h>\n#include <stdlib.h>\n\n#include \"core_h2c.h\"\n#include \"crypto_hash_sha256.h\"\n#inclu"
},
{
"path": "src/libsodium/crypto_core/ed25519/core_h2c.h",
"chars": 377,
"preview": "#ifndef core_h2c_H\n#define core_h2c_H\n\n#include \"private/quirks.h\"\n\n#define CORE_H2C_SHA256 1\n#define CORE_H2C_SHA512 2\n"
},
{
"path": "src/libsodium/crypto_core/ed25519/core_ristretto255.c",
"chars": 4845,
"preview": "\n#include <assert.h>\n#include <stdint.h>\n#include <string.h>\n\n#include \"core_h2c.h\"\n#include \"crypto_core_ed25519.h\"\n#in"
},
{
"path": "src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c",
"chars": 82125,
"preview": "#include <stddef.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"crypto_verify_32.h\"\n#include "
},
{
"path": "src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base.h",
"chars": 85502,
"preview": "{ /* 0/31 */\n {\n { 25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 204760"
},
{
"path": "src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base2.h",
"chars": 2579,
"preview": "{\n { 25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605 },\n { -1254571"
},
{
"path": "src/libsodium/crypto_core/ed25519/ref10/fe_25_5/constants.h",
"chars": 1618,
"preview": "/* sqrt(-1) */\nstatic const fe25519 fe25519_sqrtm1 = {\n -32595792, -7943725, 9377950, 3500415, 12389472, -272473, -"
},
{
"path": "src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h",
"chars": 5816,
"preview": "#include \"private/quirks.h\"\n\n/*\n Ignores top bit of s.\n */\n\nvoid\nfe25519_frombytes(fe25519 h, const unsigned char *s)\n{\n"
},
{
"path": "src/libsodium/crypto_core/ed25519/ref10/fe_51/base.h",
"chars": 75894,
"preview": "{ /* 0/31 */\n {\n { 1288382639258501, 245678601348599, 269427782077623, 1462984067271730, 137412439391563 },\n { 62"
},
{
"path": "src/libsodium/crypto_core/ed25519/ref10/fe_51/base2.h",
"chars": 2280,
"preview": "{\n { 1288382639258501, 245678601348599, 269427782077623, 1462984067271730, 137412439391563 },\n { 62697248952638, 20468"
}
]
// ... and 496 more files (download for full content)
About this extraction
This page contains the full source code of the jedisct1/libsodium GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 696 files (6.8 MB), approximately 1.8M tokens, and a symbol index with 1790 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.