1187 Commits

Author SHA1 Message Date
David Niehues
2fc2e073ef chore(tests): Configure explicit endpoints on all wireguard interfaces for the integration tests 2025-09-01 10:58:28 +02:00
David Niehues
8f01790d04 chore(tests): Change order of pings in integration test so that initiator always pings first. 2025-09-01 10:58:28 +02:00
Karolin Varner
ad1235c4f8 chore: Dump network config in integration tests 2025-09-01 10:58:28 +02:00
David Niehues
c08c99968f chore(CI): disable 32 bit integration tests 2025-09-01 10:58:28 +02:00
David Niehues
3498a6e12c chore(tests): Make the services in the integration tests only start once they are needed 2025-09-01 10:58:28 +02:00
David Niehues
ed4ec9d7dd longer timeout for ping in integration tests 2025-09-01 10:58:28 +02:00
David Niehues
e1c19a083f more state dumping for debugging 2025-09-01 10:58:28 +02:00
David Niehues
32a4051281 extra ci step for debugging 2025-09-01 10:58:28 +02:00
Karolin Varner
9e6a9a7a4a fix: Absurdly long timeout for i686 integration tests 2025-09-01 10:58:28 +02:00
Karolin Varner
c8a724a8d0 chore: Show PSKs exchanged in integration test 2025-09-01 10:58:27 +02:00
Karolin Varner
dffd0b33fe fix: Spurious comment in integration tests 2025-09-01 10:58:27 +02:00
Karolin Varner
ba1c6a177e fix: Spurious input in nix flake 2025-09-01 10:58:27 +02:00
Karolin Varner
6577d1731c fix: In integration test in main flake: Move rosenpassOld into flake imports 2025-09-01 10:58:27 +02:00
Karolin Varner
18b6dae902 fix: Integration tests never actually used current version of code 2025-09-01 10:58:27 +02:00
David Niehues
651d59cc8c chore(test): Add configFileVersion attribute to the rosenpass nix package and print config file versions of used packages in integration tests 2025-09-01 10:58:27 +02:00
David Niehues
3e4e67b1e3 chore(tests): Add integration tests to checks in main flake.nix 2025-09-01 10:58:27 +02:00
David Niehues
e3fe9bdb95 chore(tests): Move generation of integration test checks into an own module 2025-09-01 10:58:27 +02:00
David Niehues
66c71c7990 chore(rosenpass): Generate new keys for rosenpass everytime the integration tests are run. 2025-09-01 10:58:27 +02:00
David Niehues
7f9cc510a1 chore(rosenpass): Generate new keys for wireguard everytime the integration tests are run. 2025-09-01 10:58:27 +02:00
David Niehues
9d37c63da7 chore(ci): Add integration tests to the CI 2025-09-01 10:58:27 +02:00
David Niehues
dddadb67b8 chore(rosenpass): Add integration tests for basic connectivity, backwards compatability and multi-peer connectivity 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 Varner
c3e8297fa0 feat: Derandomize the rosenpass protocol by adding testvectors (#604) 2025-08-28 15:08:51 +02:00
Amin Faez
223fbd551f feat: Derandomize the rosenpass protocol by adding testvectors
- Introduced a new module `test_vector_sets.rs` containing test vector definitions for deterministic protocol testing.
- Added a new test file `test_vector_crypto_server.rs` to validate the protocol implementation using captured internal randomness.
- Added serialization and deserialization of `Secret`, `Public`, and `PublicBox` types in `serialization.rs`.
- Added necessary dependencies in `Cargo.toml` for test vectors: assert_tv, serde and base64
- Updated audit records in `audits.toml` and `imports.lock` for new dependencies.
2025-08-28 11:41:58 +02:00
Karolin Varner
5c909b4ab9 chore(deps): bump actions/checkout from 4 to 5 (#693) 2025-08-12 15:44:06 +02:00
dependabot[bot]
6b7f620566 chore(deps): bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 07:50:01 +00:00
Karolin Varner
916a9ebb71 chore(deps): bump libfuzzer-sys from 0.4.9 to 0.4.10 (#691) 2025-08-09 16:13:41 +02:00
Rosenpass CI Bot
3e33e8ffa1 Regenerate cargo vet exemptions 2025-08-08 23:13:50 +00:00
dependabot[bot]
5b8760cb46 chore(deps): bump libfuzzer-sys from 0.4.9 to 0.4.10
Bumps [libfuzzer-sys](https://github.com/rust-fuzz/libfuzzer) from 0.4.9 to 0.4.10.
- [Changelog](https://github.com/rust-fuzz/libfuzzer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-fuzz/libfuzzer/compare/0.4.9...0.4.10)

---
updated-dependencies:
- dependency-name: libfuzzer-sys
  dependency-version: 0.4.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-08 23:13:08 +00:00
Karolin Varner
2e17779447 chore(deps): bump anyhow from 1.0.96 to 1.0.98 (#690) 2025-08-08 17:30:36 +02:00
Rosenpass CI Bot
75763bf27d Regenerate cargo vet exemptions 2025-08-07 23:45:10 +00:00
dependabot[bot]
83ad7652bc chore(deps): bump anyhow from 1.0.96 to 1.0.98
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.96 to 1.0.98.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.96...1.0.98)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-version: 1.0.98
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 23:44:29 +00:00
Karolin Varner
76a8a39560 fix: Benchmarks should run on ubicloud runners 2025-08-07 20:00:05 +02:00
Karolin Varner
de72e4a2a1 Use serde for JSON-encoding benchmark data (#667) 2025-08-07 16:40:16 +02:00
Karolin Varner
f0467ea28b chore(deps): bump actions/download-artifact from 4 to 5 (#686) 2025-08-07 16:04:46 +02:00
dependabot[bot]
15a4dfa03b chore(deps): bump actions/download-artifact from 4 to 5
Dependabot couldn't find the original pull request head commit, cd15f7d879f6ecb6179eb8f559b55553968eccfe.
2025-08-07 16:04:29 +02:00
Karolin Varner
1a8713a26f chore(deps): bump log from 0.4.26 to 0.4.27 (#681) 2025-08-07 16:04:01 +02:00
Rosenpass CI Bot
2694f4a86b Regenerate cargo vet exemptions 2025-08-07 16:03:32 +02:00
dependabot[bot]
b905c0aa06 chore(deps): bump log from 0.4.26 to 0.4.27
Bumps [log](https://github.com/rust-lang/log) from 0.4.26 to 0.4.27.
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/compare/0.4.26...0.4.27)

---
updated-dependencies:
- dependency-name: log
  dependency-version: 0.4.27
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 16:03:32 +02:00
Karolin Varner
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
Jan Winkelmann (keks)
1e6e17e094 bump version of serde_json in supply chain exception 2025-08-06 17:58:38 +02:00
Jan Winkelmann (keks)
8e7fd174e8 nix fmt 2025-08-06 17:58:38 +02:00
Jan Winkelmann (keks)
7908359eab Use serde for JSON-encoding benchmark data 2025-08-06 17:58:38 +02:00
Karolin Varner
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