initial commit
Some checks failed
CI / lint (push) Successful in 1m37s
CI / test-python (push) Successful in 1m49s
CI / test-zig (push) Successful in 1m39s
CI / test-wasm (push) Successful in 1m54s
CI / test (push) Successful in 14m44s
CI / miri (push) Successful in 14m18s
CI / build (push) Successful in 1m9s
CI / fuzz-regression (push) Successful in 9m9s
CI / publish (push) Failing after 1m10s
CI / publish-python (push) Failing after 1m46s
CI / publish-wasm (push) Has been cancelled
Some checks failed
CI / lint (push) Successful in 1m37s
CI / test-python (push) Successful in 1m49s
CI / test-zig (push) Successful in 1m39s
CI / test-wasm (push) Successful in 1m54s
CI / test (push) Successful in 14m44s
CI / miri (push) Successful in 14m18s
CI / build (push) Successful in 1m9s
CI / fuzz-regression (push) Successful in 9m9s
CI / publish (push) Failing after 1m10s
CI / publish-python (push) Failing after 1m46s
CI / publish-wasm (push) Has been cancelled
Signed-off-by: Kamal Tufekcic <kamal@lo.sh>
This commit is contained in:
commit
1d99048c95
165830 changed files with 79062 additions and 0 deletions
72
Cargo.toml
Normal file
72
Cargo.toml
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
[workspace]
|
||||
resolver = "3"
|
||||
members = [
|
||||
"soliton",
|
||||
"soliton_capi",
|
||||
"soliton_py",
|
||||
"soliton_wasm",
|
||||
"soliton_cli",
|
||||
]
|
||||
|
||||
default-members = [
|
||||
"soliton",
|
||||
"soliton_capi",
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
license = "AGPL-3.0-only"
|
||||
repository = "https://git.lo.sh/lo/libsoliton"
|
||||
homepage = "https://lo.sh"
|
||||
authors = ["LO Contributors"]
|
||||
description = "Cryptographic library for the LO protocol"
|
||||
categories = ["cryptography"]
|
||||
keywords = ["post-quantum", "hybrid-encryption", "x-wing", "ed25519", "double-ratchet"]
|
||||
|
||||
[workspace.dependencies]
|
||||
libsoliton = { path = "soliton", version = "0.1.0" }
|
||||
zeroize = { version = "=1.8.2", features = ["derive"] }
|
||||
thiserror = "=2.0.18"
|
||||
subtle = "=2.6.1"
|
||||
# ChaCha20-Poly1305 key is a flat 256-bit value (no expanded key schedule like
|
||||
# AES). The cipher is constructed per-operation from a 32-byte key reference
|
||||
# and does not store persistent key material — zeroization of the key is
|
||||
# handled by the caller (Zeroizing<[u8; 32]> wrappers in ratchet/storage).
|
||||
#
|
||||
# chacha20poly1305 enables chacha20/zeroize but not poly1305/zeroize.
|
||||
# The poly1305 entry below activates zeroization of the Poly1305 universal
|
||||
# hash state (the r,s key and accumulator) after each AEAD operation.
|
||||
chacha20poly1305 = { version = "=0.10.1", default-features = false, features = ["alloc"] }
|
||||
poly1305 = { version = "=0.8.0", features = ["zeroize"] }
|
||||
|
||||
# All panics must abort — libsoliton_capi exposes extern "C" functions,
|
||||
# and unwinding across FFI boundaries is UB. panic=abort converts all
|
||||
# panics (including keygen/sign assert_eq! guards) into well-defined
|
||||
# process aborts.
|
||||
#
|
||||
# NOTE: Cargo overrides panic=abort to panic=unwind for the test profile
|
||||
# (required by the standard test harness for #[should_panic]). CAPI code
|
||||
# under test can therefore unwind across FFI boundaries — this is
|
||||
# technically UB but only affects test builds, not production.
|
||||
[profile.release]
|
||||
panic = "abort"
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
overflow-checks = true
|
||||
|
||||
[profile.dev]
|
||||
panic = "abort"
|
||||
overflow-checks = true
|
||||
|
||||
# Bench profile inherits release optimizations. debug-assertions = true is
|
||||
# required because dev-dependencies activate the `test-utils` feature
|
||||
# (needed for integration tests), and `test-utils` has a compile_error guard
|
||||
# that fires under `all(feature = "test-utils", not(debug_assertions))`. The
|
||||
# bench target does not use any test-utils APIs — the flag only disarms the
|
||||
# compile_error. The crypto benchmarks are dominated by KEM / AEAD operations
|
||||
# for which the overhead of debug assertions is negligible.
|
||||
[profile.bench]
|
||||
inherits = "release"
|
||||
debug-assertions = true
|
||||
Loading…
Add table
Add a link
Reference in a new issue