100 Commits
Author SHA1 Message Date
Karolin VarnerandGitHub 7cc7c0033c Remove atomic-polyfill from dependency graph (#832) 2026-06-13 12:24:47 +02:00
Karolin VarnerandGitHub 16e1c62c39 Add assertions to PublicBox randomize test (#835) 2026-06-13 12:23:30 +02:00
Karolin VarnerandIlka Schulz 8c2b60f898 fix: Security updates 2026-05-14 19:44:58 +02:00
Karolin VarnerandGitHub 433ff09c43 chore(deps): bump actions/checkout from 4 to 5 (#700) 2025-09-20 11:31:50 +02:00
Karolin VarnerandGitHub 0c48cfb91f feat: add preliminary miri support (#699) 2025-09-05 16:22:16 +02:00
Karolin Varner 3f0c71d74b chore: Regenerate cargo vet exemptions 2025-09-05 16:22:02 +02:00
Karolin VarnerandGitHub aa42ba070b Apply Steffens review Fixes (#698) 2025-09-05 16:21:45 +02:00
Karolin Varner 8bf9ca203e feat(whitepaper): Update scientific illustrations to account for Steffen Vogel's reviews 2025-09-05 16:14:13 +02:00
Karolin Varner 8b98d4caca fix(whitepaper): Typos 2025-09-05 16:12:11 +02:00
Karolin Varner 9d5996e71c fix(whitepaper): Cookie feature is implemented but experimental 2025-09-05 16:12:11 +02:00
Karolin Varner f59b63a4d3 fix(whitepaper): pidi naming typo in load_biscuit() 2025-09-05 16:12:11 +02:00
Karolin Varner e3a88d9a5e fix(whitepaper): Harmonize naming of package size sums in Fig 2 (Message Types)
Graphics to be updated later
2025-09-05 16:12:11 +02:00
Karolin Varner 3c6a3a3735 fix: Upgrade stacker
Potentially fixes issues with flaky tests using stacker.
2025-09-05 16:12:11 +02:00
Karolin Varner f38949615f feat(whitepaper): Move protocol code figure higher in white paper 2025-09-05 16:12:11 +02:00
Karolin Varner f431301d1e feat(whitepaper): Info about timers used
Text recovered from PR #145: https://github.com/rosenpass/rosenpass/pull/145
2025-09-05 16:12:11 +02:00
Karolin Varner 771cacb8c8 feat(whitepaper): More info about initiator/responder roles
Text recovered from PR #145: https://github.com/rosenpass/rosenpass/pull/145
2025-09-05 16:12:11 +02:00
Karolin Varner 6383231a6a fix(whitepaper): biscuit_ct destructuring is destructuring a concatenation 2025-09-05 16:12:11 +02:00
Karolin Varner 4daca9ed56 chore(whitepaper): Biscuit and pidi cipher texts now called pidi_ct/biscuit_ct 2025-09-05 16:12:11 +02:00
Karolin Varner 75ff1e8292 chore(whitepaper): Nomenclature improvements 2025-09-05 16:12:11 +02:00
Karolin Varner 484af1654a feat(whitepaper): Precise references to KEM versions 2025-09-05 16:12:11 +02:00
Karolin Varner 9c82424dee fix(whitepaper): Relax requirements on biscuit key life times
…and harmonize with the implementation
2025-09-05 16:12:11 +02:00
Karolin Varner 823e5aca56 fix(whitepaper): Incorrect ordering of auth and biscuit in RespHello
Graphic fix to come later
2025-09-05 16:12:11 +02:00
Karolin Varner 22bf2e3990 fix(proverif): Incorrect parameter ordering in encaps_/decaps_and_mix 2025-09-05 16:12:11 +02:00
Karolin Varner f39a43a821 fix(proverif): Remove broken protocol analysis code
The identity hiding and DOS protection models where never actually
functional. Here we just remove them so the CI and manual runs of
analysis.sh stop giving spurious errors.
2025-09-05 16:12:11 +02:00
Karolin Varner bc6fa0d672 fix(whitepaper): Incorrect parameter ordering in encaps_/decaps_and_mix
Update of the figures in the white paper to come later.
2025-09-05 16:12:10 +02:00
Karolin Varner db797ff11e fix(whitepaper): Specify our incorrect (but likely secure) variant of HMAC 2025-09-05 16:12:10 +02:00
Karolin Varner 7790d82b51 fix(whitepaper): Inconsistency between implementation and whitepaper about blake2s/blake2b usage 2025-09-05 16:12:10 +02:00
Karolin Varner b52c607efc fix(whitepaper): Inconsistency between implementation and whitepaper about PROTOCOL label 2025-09-05 16:12:10 +02:00
Karolin Varner d2a85a0d6b fix(whitepaper): Inconsistency between implementation and whitepaper about labels for txki/txkr
Fix of Fig. 5 follows later.
2025-09-05 16:12:10 +02:00
Karolin Varner 221c583508 fix(whitepaper): Incorrect biscuit_no comparison in load_biscuit() 2025-09-05 16:12:10 +02:00
Karolin Varner 14c48cf069 fix(whitepaper): Incorrect name used
Fig. 5: Rosenpass Message Handling Code; in IHR5: `decaps_and_mix<SKEM>(sskr, spkr, ct1)` -> `decaps_and_mix<SKEM>(sskr, spkr, sctr)`

Actual update to the figure will be done later
2025-09-05 16:12:10 +02:00
Karolin Varner 6e43a21e74 feat(whitepaper): Brief section about endianness 2025-09-05 16:12:10 +02:00
Karolin Varner 6bfc29ef93 feat(whitepaper): Brief section about protocol roles 2025-09-05 16:12:10 +02:00
Karolin Varner 39341c0ef8 chore(whitepaper): Added an explaining paragraph to section 'Live Session State' 2025-09-05 16:12:10 +02:00
Karolin Varner 9ee86e01ec feat(whitepaper): Comprehensive reference about packages, labels, and symmetric keys used in protocol 2025-09-05 16:12:10 +02:00
Karolin Varner 3721996f2d chore(whitepaper): Stub for steffen vogel changelog entry 2025-09-05 16:12:10 +02:00
Karolin Varner 49ccb1ea95 fix: Spurious debug output in nix flake 2025-09-05 16:01:15 +02:00
Karolin VarnerandGitHub baa534f2e2 Add integration tests (#672) 2025-09-03 15:52:39 +02:00
Karolin Varner 6e62cd7c36 chore(ci): Remove spurious debug output 2025-09-03 15:52:01 +02:00
Karolin VarnerandDavid Niehues b88d3961ea chore(integration-test): Nix fmt 2025-09-01 10:58:28 +02:00
Karolin VarnerandDavid Niehues 82135cce5c fix(integration-test): Incorrect peer IP in connection BA 2025-09-01 10:58:28 +02:00
Karolin VarnerandDavid Niehues 879a25ec46 fix(integration-test): Use /32 again for allowed ips 2025-09-01 10:58:28 +02:00
Karolin VarnerandDavid Niehues 098aff91ab fix(integration-test): Don't erase endpoint & allowed ips when setting PSK 2025-09-01 10:58:28 +02:00
Karolin VarnerandDavid Niehues d5162d7b9a fix(integration-test): Use deterministic WG keys 2025-09-01 10:58:28 +02:00
Karolin VarnerandDavid Niehues 15f2153b1b fix(integration-test): Use consistent network sizes 2025-09-01 10:58:28 +02:00
Karolin VarnerandDavid Niehues ad1235c4f8 chore: Dump network config in integration tests 2025-09-01 10:58:28 +02:00
Karolin VarnerandDavid Niehues 9e6a9a7a4a fix: Absurdly long timeout for i686 integration tests 2025-09-01 10:58:28 +02:00
Karolin VarnerandDavid Niehues c8a724a8d0 chore: Show PSKs exchanged in integration test 2025-09-01 10:58:27 +02:00
Karolin VarnerandDavid Niehues dffd0b33fe fix: Spurious comment in integration tests 2025-09-01 10:58:27 +02:00
Karolin VarnerandDavid Niehues ba1c6a177e fix: Spurious input in nix flake 2025-09-01 10:58:27 +02:00
Karolin VarnerandDavid Niehues 6577d1731c fix: In integration test in main flake: Move rosenpassOld into flake imports 2025-09-01 10:58:27 +02:00
Karolin VarnerandDavid Niehues 18b6dae902 fix: Integration tests never actually used current version of code 2025-09-01 10:58:27 +02:00
Karolin Varner b5ef5842d9 fix(docker): Builder runtime image not matching buildtime image 2025-08-29 18:23:17 +02:00
Karolin VarnerandGitHub c3e8297fa0 feat: Derandomize the rosenpass protocol by adding testvectors (#604) 2025-08-28 15:08:51 +02:00
Karolin VarnerandGitHub 5c909b4ab9 chore(deps): bump actions/checkout from 4 to 5 (#693) 2025-08-12 15:44:06 +02:00
Karolin VarnerandGitHub 916a9ebb71 chore(deps): bump libfuzzer-sys from 0.4.9 to 0.4.10 (#691) 2025-08-09 16:13:41 +02:00
Karolin VarnerandGitHub 2e17779447 chore(deps): bump anyhow from 1.0.96 to 1.0.98 (#690) 2025-08-08 17:30:36 +02:00
Karolin Varner 76a8a39560 fix: Benchmarks should run on ubicloud runners 2025-08-07 20:00:05 +02:00
Karolin VarnerandGitHub de72e4a2a1 Use serde for JSON-encoding benchmark data (#667) 2025-08-07 16:40:16 +02:00
Karolin VarnerandGitHub f0467ea28b chore(deps): bump actions/download-artifact from 4 to 5 (#686) 2025-08-07 16:04:46 +02:00
Karolin VarnerandGitHub 1a8713a26f chore(deps): bump log from 0.4.26 to 0.4.27 (#681) 2025-08-07 16:04:01 +02:00
Karolin VarnerandGitHub 4f2519fb9c fix: Compiling rp should be disabled on mac (#688) 2025-08-07 16:02:40 +02:00
Karolin Varner 72e6542958 fix: Compiling rp should be disabled on mac 2025-08-07 12:45:02 +02:00
Karolin VarnerandGitHub 15ae4b4ae5 Fix signal handling in rp and rosenpass (#685) 2025-08-06 15:59:49 +02:00
Karolin Varner b5107c77d8 chore(rp): Docs fix 2025-08-04 08:44:15 +02:00
Karolin Varner 335584b187 fix: clippy fix (remove warnings) 2025-08-04 08:44:15 +02:00
Karolin Varner 3c0e167347 fix(rosenpass): Integrate signal handlers with mio
With this commit, rosenpass uses a signal handler based on the signal-hook-mio crate.

Even though, in this commit, no rosenpass-rp code is touched, this also
fixes the signal handling in rosenpass-rp. The way rosenpass is
integrated in rp is a bit of a hack – it just directly embeds
rosenpass in the same process (though on a dedicated thread). For this
reason, rp now just inherits rosenpass' signal handlers. The
rosenpass event_loop() will terminate. The main loop of `rp` just spends
most of the time waiting for rosenpass itself to finish, and exits when
it finishes.

Unfortunately, this means we are not using signalfd(2)[^0]; the
signal-hook-mio crate appears to use a pipe-based mechanism to deliver
events to mio instead.

This may not be such a bad thing, as signalfd has some severe drawbacks
with respect to subprocesses and masked signals[^1].

Fixes: #358 (https://github.com/rosenpass/rosenpass/issues/385)
Fixes: #522 (https://github.com/rosenpass/rosenpass/issues/522)
Fixes: #678 (https://github.com/rosenpass/rosenpass/pull/678)

[^0]: https://unixism.net/2021/02/making-signals-less-painful-under-linux/
[^1]: https://ldpreload.com/blog/signalfd-is-useless?reposted-on-request
2025-08-04 08:44:15 +02:00
Karolin Varner 6f6fdef542 chore(rp): Rename crate rp -> rosenpass-rp 2025-08-04 08:44:15 +02:00
Karolin Varner c839126e29 chore(rp): Move remaining sync io in exchange() into spawn_blocking 2025-08-04 08:44:15 +02:00
Karolin Varner a1698f36a6 fix(rp): Start the proper rosenpass server on a dedicated thread
We should not block the tokio executor indefinetly.
2025-08-04 08:44:15 +02:00
Karolin Varner 2d6550da0f chore(rp): Simplify peer configuration code 2025-08-04 08:44:15 +02:00
Karolin Varner bae336d633 fix(rp): Make sure that the WG SK is erased ASAP 2025-08-04 08:44:15 +02:00
Karolin Varner 6c929f7ddc chore(rp): Simplify error handling in exchange() 2025-08-04 08:44:15 +02:00
Karolin Varner 41eb620751 chore(rp): Simplify code to setup Rosenpass AppServer 2025-08-04 08:44:15 +02:00
Karolin Varner 8561aaf137 chore(rp): Move functionality to set wg sk and port into function 2025-08-04 08:44:15 +02:00
Karolin Varner f0ee7a33c9 chore(rp): Make sure genetlink is cleaned up 2025-08-04 08:44:15 +02:00
Karolin Varner 1d4a70f863 fix(rp): Use async commands to set up ip addr
We don't want to block the tokio runtime.
2025-08-04 08:44:15 +02:00
Karolin Varner f4e8e4314b chore: Use RAII for erasing the WireGuard device in rp
This, for now, disables correct handling of program termination,
but not because the RAII does not work. Instead, we need to implement
a proper signal handling concept.

We also removed some teardown handlers which are not covered by RAII,
like removing the routes we set up. The reason for this is, that this
is going to be taken care of by removing the wireguard device anyway.
2025-08-04 08:44:15 +02:00
Karolin Varner 1b9be7519b chore: Unnecessary string clone in rp 2025-08-04 08:44:15 +02:00
Karolin Varner c689f8e78a feat(rp): Enable logging 2025-08-04 08:44:15 +02:00
Karolin Varner edcbf290fc chore: Use default error handler in rp main() 2025-08-04 08:44:15 +02:00
Karolin Varner 31a5dbe420 feat: Janitor, utilities for cleaning up with tokio 2025-08-04 08:44:15 +02:00
Karolin Varner a85f9b8e63 chore: Better error handling in link_create_and_up in rp 2025-08-03 15:15:14 +02:00
Karolin Varner 21ea526435 chore: Restructure imports in rosenpass_rp::exchange 2025-08-03 15:15:14 +02:00
Karolin Varner 35e956e340 fix: Simplify structure of rp::exchange
Before this commit, there was a submodule rp::exchange::netlink
and there where platform checks, printing error messages on systems
other than freebsd and linux.

Neither is really necessary. If the application won't compile on other
systems it won't work, and if it happens to work then why give users a
spurious error message.
2025-08-03 15:15:14 +02:00
Karolin Varner 3371d7f00f chore: Clippy fixes for rp crate 2025-08-03 15:15:14 +02:00
Karolin VarnerandGitHub 3f2a9bb96b chore(deps): bump tokio from 1.44.2 to 1.46.1 (#679) 2025-07-31 12:22:35 +02:00
Karolin VarnerandGitHub 75702dfc03 chore(deps): bump clap_mangen from 0.2.24 to 0.2.27 (#657) 2025-07-30 16:13:12 +02:00
Karolin VarnerandGitHub 0d944afbd8 Add another checkout step for the supply-chain action in case of a dependabot PR (#677) 2025-07-29 17:18:03 +02:00
Karolin VarnerandDavid Niehues 8d81be56f3 fix: Re-trigger CI when cargo vet exemptions are regenerated for Dependabot PRs
Co-authored-by: David Niehues <niehues@utilacy.com>
2025-07-29 17:16:11 +02:00
Karolin VarnerandGitHub 16b3914c46 Make the CI restart once cargo-vet exemptions for dependabot have been pushed (new iteration (#674) 2025-07-29 15:52:31 +02:00
Karolin VarnerandGitHub 53e6553c8b fix(rosenpass): Fix the error message if the secret key is invalid (#669) 2025-07-29 14:15:22 +02:00
Karolin VarnerandGitHub 3e03e47935 fix: Regression caused by benchmarks (#670) 2025-07-09 19:20:15 +02:00
Karolin Varner 7003671cde fix: Regression caused by benchmarks
CI keeps failing for external pull requests as GH's permission
model was not fully accounted for
2025-07-09 10:08:05 +02:00
Karolin VarnerandGitHub 91fc50c1e1 Specify WireGuard OSK as a protocol extension & allow for custom OSK domain separators (#664) 2025-07-07 12:05:19 +02:00
Karolin Varner b1a7d94295 feat: Support for custom osk (output key) domain separators in Rosenpass app
This allows for custom protocol extensions with custom domain
separators to be used without modifying the Rosenpass source code
2025-06-25 19:48:29 +02:00
Karolin Varner 48b7bb2f14 feat(whitepaper): Introduce protocol extensions & specify WG integration as one 2025-06-25 19:48:29 +02:00
Karolin Varner 77e3682820 chore: Whitespace issues in the whitepaper 2025-06-25 19:48:29 +02:00
Karolin Varner 8bad02bcda feat: Disallow unknown fields in rosenpass and rp configuration 2025-06-25 19:48:29 +02:00
Karolin Varner 864407f90b chore: Fix module documentation for app_server 2025-06-25 19:38:51 +02:00