7个版本 (重大更改)

0.9.0 2024年4月13日
0.8.0 2024年4月10日
0.7.0 2023年10月4日
0.6.0 2023年10月4日
0.3.0 2023年1月18日

#481 in 密码学

Download history 23/week @ 2024-04-22 4/week @ 2024-05-06 15/week @ 2024-05-20 14/week @ 2024-06-03 8/week @ 2024-06-10 4/week @ 2024-06-17 9/week @ 2024-06-24 46/week @ 2024-07-01 14/week @ 2024-07-15 39/week @ 2024-07-29 6/week @ 2024-08-05

每月 59 次下载
4crates(2 个直接)中使用

MIT/Apache

125KB
2.5K SLoC

Website shields.io crates.io codecov Build docs License: MIT License: Apache 2.0 Slack Linux macOS Windows iOS Android

一种后量子信号协议,使开发超安全客户端到服务器和P2P应用变得容易

白皮书

Citadel协议的白皮书可以在以下仓库中找到:这里。注意:自2022年7月以来,该白皮书尚未更新。尽管该协议与白皮书中的内容非常相似,但它已有所演变。白皮书将在不久的将来与源代码同步。

文档

有关构建应用的示例,请查看文档

构建说明

编译库需要OpenSSL和Clang。查看.github中的CI文件,以获取在裸机上的代码编译示例。或者,您可以使用以下命令设置环境:

cargo make install

测试说明

当在citadel_sdk中运行单元测试时,您必须使用Makefile。Makefile包含用于与cargo test接口的特殊标志和环境变量。首先,安装cargo make

cargo install --force cargo-make

要使用有限的设置在本地运行测试,请运行

cargo make test-local

要运行需要设置SQL和/或redis服务器的综合测试集(请检查Makefile.toml中的描述以帮助设置环境变量),请运行

cargo make test

WASM(开发仅WIP)

目标三元组wasm32-wasi是支持WIP。以下命令用于编译到wasm

# Allows execution of `cargo wasi test --package citadel_pqcrypto`
cargo install cargo-wasi
# install wasmtime
curl https://wasmtime.dev/install.sh -sSf | bash
# get the include/build files
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sysroot-12.0.tar.gz
tar -xvzf wasi-sysroot-12.0.tar.gz
rm wasi-sysroot-12.0.tar.gz
# Set environment variables
export WASI_SDK_DIR="$(pwd)/wasi-sysroot"
export WASMTIME_HOME="$(pwd)/.wasmtime"
export PATH="$WASMTIME_HOME/bin:$PATH"
export RUSTFLAGS="--cfg tokio_unstable"
# If on Mac M1, make sure to use the clang/ar provided by homebrew. Make sure to replace <LATEST_VERSION>
export PATH="/opt/homebrew/Cellar/llvm/<LATEST_VERSION>/bin/:$PATH"
export AR="/opt/homebrew/Cellar/llvm/<LATEST_VERSION>/bin/llvm-ar"
export CC="/opt/homebrew/Cellar/llvm/<LATEST_VERSION>/bin/clang"

此外,当检查/编译时,应启用功能wasm

免责声明

本项目尚未经过第三方审计。虽然一些底层加密原语来自已验证的Open Quantum Safe (OQS) 项目和/或PQClean项目,但Kyber库尚未接受审计(尽管已知答案测试通过)。

因此,如果您选择使用此库并接受其使用风险,我们建议您使用混合加密,通过使用TLS或QUIC作为底层协议,以确保协议的安全性至少与椭圆曲线密码学相当。

作者

托马斯·布劳恩 - 创始人

贡献

欢迎贡献!在过去5年中,我一直独自开发,需要更多人帮助使生态系统繁荣。

依赖项

~6–25MB
~442K SLoC