55bf3daa4a
Rosenpass implements a post-quantum-secure key exchange in the spirit of a Noise protocol. The motivating use case is integrating with the WireGuard VPN: In this mode, the key generated by Rosenpass is supplied to WireGuard as its pre-shared symmetric key (PSK). This results in a WireGuard VPN connection with hybrid post-quantum security. While Rosenpass is designed with WireGuard in mind, it can be used as a stand-alone tool to exchange keys. Using this mode, it can be used to secure other protocols against attacks from quantum computers, given that they offer using a PSK, and that a secure PSK is sufficient for security of the protocol. To use this mode, the rosenpass binary must be used together with the outfile <FILE> parameter. Then, Rosenpass will write a key to the given file every two minutes, and print a message on standard out to notify the user or the calling script that the key has changed. The implementation is written in Rust but uses libsodium and liboqs -- both of which are C libraries. This does not result in pretty code everywhere, but enables some advanced security features such as using libsodium's sodium_malloc. We use a couple of techniques to make sure the code is secure: We use variable colouring (gating use of a secret value through a .secret() method), and the code zeroizes all key material. WWW: https://rosenpass.eu
179 lines
3.7 KiB
Makefile
179 lines
3.7 KiB
Makefile
CARGO_CRATES= addr2line-0.21.0 \
|
|
adler-1.0.2 \
|
|
adler32-1.2.0 \
|
|
ahash-0.8.3 \
|
|
aho-corasick-1.0.4 \
|
|
anes-0.1.6 \
|
|
anstream-0.3.2 \
|
|
anstyle-1.0.1 \
|
|
anstyle-parse-0.2.1 \
|
|
anstyle-query-1.0.0 \
|
|
anstyle-wincon-1.0.2 \
|
|
anyhow-1.0.75 \
|
|
atty-0.2.14 \
|
|
autocfg-1.1.0 \
|
|
backtrace-0.3.69 \
|
|
base64-0.21.2 \
|
|
bindgen-0.65.1 \
|
|
bitflags-1.3.2 \
|
|
bitflags-2.4.0 \
|
|
build-deps-0.1.4 \
|
|
bumpalo-3.13.0 \
|
|
byteorder-1.4.3 \
|
|
cast-0.3.0 \
|
|
cc-1.0.83 \
|
|
cexpr-0.6.0 \
|
|
cfg-if-1.0.0 \
|
|
ciborium-0.2.1 \
|
|
ciborium-io-0.2.1 \
|
|
ciborium-ll-0.2.1 \
|
|
clang-sys-1.6.1 \
|
|
clap-3.2.25 \
|
|
clap-4.3.23 \
|
|
clap_builder-4.3.23 \
|
|
clap_derive-4.3.12 \
|
|
clap_lex-0.2.4 \
|
|
clap_lex-0.5.0 \
|
|
cmake-0.1.50 \
|
|
colorchoice-1.0.0 \
|
|
core2-0.4.0 \
|
|
crc32fast-1.3.2 \
|
|
criterion-0.4.0 \
|
|
criterion-plot-0.5.0 \
|
|
crossbeam-channel-0.5.8 \
|
|
crossbeam-deque-0.8.3 \
|
|
crossbeam-epoch-0.9.15 \
|
|
crossbeam-utils-0.8.16 \
|
|
dary_heap-0.3.6 \
|
|
either-1.9.0 \
|
|
env_logger-0.10.0 \
|
|
equivalent-1.0.1 \
|
|
errno-0.3.2 \
|
|
errno-dragonfly-0.1.2 \
|
|
filetime-0.2.22 \
|
|
flate2-1.0.27 \
|
|
form_urlencoded-1.2.0 \
|
|
gimli-0.28.0 \
|
|
glob-0.3.1 \
|
|
half-1.8.2 \
|
|
hashbrown-0.12.3 \
|
|
hashbrown-0.13.2 \
|
|
hashbrown-0.14.0 \
|
|
heck-0.4.1 \
|
|
hermit-abi-0.1.19 \
|
|
hermit-abi-0.3.2 \
|
|
humantime-2.1.0 \
|
|
idna-0.4.0 \
|
|
indexmap-1.9.3 \
|
|
indexmap-2.0.0 \
|
|
is-terminal-0.4.9 \
|
|
itertools-0.10.5 \
|
|
itoa-1.0.9 \
|
|
js-sys-0.3.64 \
|
|
lazy_static-1.4.0 \
|
|
lazycell-1.3.0 \
|
|
libc-0.2.147 \
|
|
libflate-2.0.0 \
|
|
libflate_lz77-2.0.0 \
|
|
libloading-0.7.4 \
|
|
libsodium-sys-stable-1.19.30 \
|
|
linux-raw-sys-0.4.5 \
|
|
log-0.4.20 \
|
|
memchr-2.5.0 \
|
|
memoffset-0.9.0 \
|
|
minimal-lexical-0.2.1 \
|
|
minisign-verify-0.2.1 \
|
|
miniz_oxide-0.7.1 \
|
|
mio-0.8.8 \
|
|
nom-7.1.3 \
|
|
num-traits-0.2.16 \
|
|
num_cpus-1.16.0 \
|
|
object-0.32.0 \
|
|
once_cell-1.18.0 \
|
|
oorandom-11.1.3 \
|
|
oqs-sys-0.8.0 \
|
|
os_str_bytes-6.5.1 \
|
|
paste-1.0.14 \
|
|
peeking_take_while-0.1.2 \
|
|
percent-encoding-2.3.0 \
|
|
pkg-config-0.3.27 \
|
|
plotters-0.3.5 \
|
|
plotters-backend-0.3.5 \
|
|
plotters-svg-0.3.5 \
|
|
prettyplease-0.2.12 \
|
|
proc-macro2-1.0.66 \
|
|
quote-1.0.33 \
|
|
rayon-1.7.0 \
|
|
rayon-core-1.11.0 \
|
|
redox_syscall-0.3.5 \
|
|
regex-1.9.3 \
|
|
regex-automata-0.3.6 \
|
|
regex-syntax-0.7.4 \
|
|
ring-0.16.20 \
|
|
rle-decode-fast-1.0.3 \
|
|
rustc-demangle-0.1.23 \
|
|
rustc-hash-1.1.0 \
|
|
rustix-0.38.8 \
|
|
rustls-0.21.6 \
|
|
rustls-webpki-0.100.2 \
|
|
rustls-webpki-0.101.4 \
|
|
ryu-1.0.15 \
|
|
same-file-1.0.6 \
|
|
scopeguard-1.2.0 \
|
|
sct-0.7.0 \
|
|
serde-1.0.185 \
|
|
serde_derive-1.0.185 \
|
|
serde_json-1.0.105 \
|
|
serde_spanned-0.6.3 \
|
|
shlex-1.1.0 \
|
|
spin-0.5.2 \
|
|
static_assertions-1.1.0 \
|
|
strsim-0.10.0 \
|
|
syn-2.0.29 \
|
|
tar-0.4.40 \
|
|
termcolor-1.2.0 \
|
|
test_bin-0.4.0 \
|
|
textwrap-0.16.0 \
|
|
thiserror-1.0.47 \
|
|
thiserror-impl-1.0.47 \
|
|
tinytemplate-1.2.1 \
|
|
tinyvec-1.6.0 \
|
|
tinyvec_macros-0.1.1 \
|
|
toml-0.7.6 \
|
|
toml_datetime-0.6.3 \
|
|
toml_edit-0.19.14 \
|
|
unicode-bidi-0.3.13 \
|
|
unicode-ident-1.0.11 \
|
|
unicode-normalization-0.1.22 \
|
|
untrusted-0.7.1 \
|
|
ureq-2.7.1 \
|
|
url-2.4.0 \
|
|
utf8parse-0.2.1 \
|
|
vcpkg-0.2.15 \
|
|
version_check-0.9.4 \
|
|
walkdir-2.3.3 \
|
|
wasi-0.11.0+wasi-snapshot-preview1 \
|
|
wasm-bindgen-0.2.87 \
|
|
wasm-bindgen-backend-0.2.87 \
|
|
wasm-bindgen-macro-0.2.87 \
|
|
wasm-bindgen-macro-support-0.2.87 \
|
|
wasm-bindgen-shared-0.2.87 \
|
|
web-sys-0.3.64 \
|
|
webpki-roots-0.23.1 \
|
|
which-4.4.0 \
|
|
winapi-0.3.9 \
|
|
winapi-i686-pc-windows-gnu-0.4.0 \
|
|
winapi-util-0.1.5 \
|
|
winapi-x86_64-pc-windows-gnu-0.4.0 \
|
|
windows-sys-0.48.0 \
|
|
windows-targets-0.48.5 \
|
|
windows_aarch64_gnullvm-0.48.5 \
|
|
windows_aarch64_msvc-0.48.5 \
|
|
windows_i686_gnu-0.48.5 \
|
|
windows_i686_msvc-0.48.5 \
|
|
windows_x86_64_gnu-0.48.5 \
|
|
windows_x86_64_gnullvm-0.48.5 \
|
|
windows_x86_64_msvc-0.48.5 \
|
|
winnow-0.5.14 \
|
|
xattr-1.0.1 \
|
|
zip-0.6.6
|