From 59b3dae32d97d0c115bf4132cd5ce75ba0ea7459 Mon Sep 17 00:00:00 2001 From: Alice Bowman Date: Wed, 4 Sep 2024 17:43:16 +0200 Subject: [PATCH] Redesign: documentation section --- config.toml | 2 +- content/en/_index.html | 2 +- content/en/docs/_index.html | 68 +- content/en/docs/manuals/_index.html | 18 - content/en/docs/pentest.md | 11 - content/en/docs/presentations/_index.html | 19 - content/en/docs/rosenpass-project/_index.html | 20 + content/en/docs/rosenpass-project/pentest.md | 12 + .../presentations/_index.html | 21 + .../presentations/easterhegg-2023.md | 0 .../presentations/formosa-2023.md | 0 .../presentations/hackmas-2024.md | 0 .../presentations/iav-2023.md | 0 .../presentations/mrmcd-2023.md | 0 .../presentations/rwpqc-2023.md | 0 .../presentations/yrcs-2023.md | 0 .../en/docs/rosenpass-project/whitepaper.md | 12 + content/en/docs/rosenpass-tool/_index.html | 62 + content/en/docs/rosenpass-tool/changelog.md | 1452 +++++++++++++++++ .../docs/{ => rosenpass-tool}/compilation.md | 1 + .../docs/rosenpass-tool/manuals/_index.html | 27 + .../manuals/rosenpass_manual_custom.md | 0 .../docs/{ => rosenpass-tool}/manuals/rp1.md | 0 .../{ => rosenpass-tool}/manuals/rp_manual.md | 0 .../{ => rosenpass-tool}/release_notes.md | 3 +- content/en/docs/rosenpass-tool/source_code.md | 12 + .../en/docs/{ => rosenpass-tool}/start.html | 7 +- content/en/docs/source_code.md | 11 - content/en/docs/whitepaper.md | 11 - layouts/docs/baseof.html | 4 +- layouts/docs/baseof.print.html | 2 +- static/css/rosenpass.css | 61 +- 32 files changed, 1701 insertions(+), 137 deletions(-) delete mode 100644 content/en/docs/manuals/_index.html delete mode 100644 content/en/docs/pentest.md delete mode 100644 content/en/docs/presentations/_index.html create mode 100644 content/en/docs/rosenpass-project/_index.html create mode 100644 content/en/docs/rosenpass-project/pentest.md create mode 100644 content/en/docs/rosenpass-project/presentations/_index.html rename content/en/docs/{ => rosenpass-project}/presentations/easterhegg-2023.md (100%) rename content/en/docs/{ => rosenpass-project}/presentations/formosa-2023.md (100%) rename content/en/docs/{ => rosenpass-project}/presentations/hackmas-2024.md (100%) rename content/en/docs/{ => rosenpass-project}/presentations/iav-2023.md (100%) rename content/en/docs/{ => rosenpass-project}/presentations/mrmcd-2023.md (100%) rename content/en/docs/{ => rosenpass-project}/presentations/rwpqc-2023.md (100%) rename content/en/docs/{ => rosenpass-project}/presentations/yrcs-2023.md (100%) create mode 100644 content/en/docs/rosenpass-project/whitepaper.md create mode 100644 content/en/docs/rosenpass-tool/_index.html create mode 100644 content/en/docs/rosenpass-tool/changelog.md rename content/en/docs/{ => rosenpass-tool}/compilation.md (94%) create mode 100644 content/en/docs/rosenpass-tool/manuals/_index.html rename content/en/docs/{ => rosenpass-tool}/manuals/rosenpass_manual_custom.md (100%) rename content/en/docs/{ => rosenpass-tool}/manuals/rp1.md (100%) rename content/en/docs/{ => rosenpass-tool}/manuals/rp_manual.md (100%) rename content/en/docs/{ => rosenpass-tool}/release_notes.md (97%) create mode 100644 content/en/docs/rosenpass-tool/source_code.md rename content/en/docs/{ => rosenpass-tool}/start.html (97%) delete mode 100644 content/en/docs/source_code.md delete mode 100644 content/en/docs/whitepaper.md diff --git a/config.toml b/config.toml index ccef051c..46ff4340 100644 --- a/config.toml +++ b/config.toml @@ -39,7 +39,7 @@ enableRobotsTXT = true name = "Quick Start" #pre = "" weight = 15 - url = "/docs/start" + url = "/docs/rosenpass-tool/start" [[menu.main]] name = "What is Rosenpass?" weight = 16 diff --git a/content/en/_index.html b/content/en/_index.html index 491dbbbe..04c33220 100644 --- a/content/en/_index.html +++ b/content/en/_index.html @@ -11,7 +11,7 @@ {{< blocks/cover title="Rosenpass" image_anchor="top" height="auto" color="white" >}}

Build post-quantum-secure VPNs with WireGuard!

- + Quick Start }}"> diff --git a/content/en/docs/_index.html b/content/en/docs/_index.html index 5741661b..978ab5dc 100644 --- a/content/en/docs/_index.html +++ b/content/en/docs/_index.html @@ -5,64 +5,24 @@ menu: main: weight: 30 -no_list: true +landing_page: true --- {{< blocks/lead color="primary" class="mb-5" >}} -

Documentation

+

Documentation

{{< /blocks/lead >}} - -

- Welcome to the documentation page for Rosenpass. This guide contains the manual pages, slides from various presentations, -as well as links to both our scientific whitepaper and the github repository for the Rosenpass source code. +{{< blocks/section color="white" class="pb-0 pt-2" >}} +

+ Welcome to the documentation page for Rosenpass! This guide contains everything you need to get started with Rosenpass as a software developer, a scientist, a potential collaborator, or as anyone looking to upgrade their security to be post-quantum secure.

+

The content found here can be broadly split into two categories: software and science. You will find links to installation and compilation guides, versioning information, and command-line manuals, as well as to our whitepaper describing the Rosenpass protocol, presentations looking to communicate the scientific + underpinnings of our project, and the results of a penetration test performed on our software.

-

What is Rosenpass?

-

- Rosenpass is a daemon, that, given a private key and a list of peers, performs a key exchange with each peer. - The resulting shared secrets are given to WireGuard using its PSK feature – WireGuard remains as secure as it was, Rosenpass adds - protection against quantum computers. Rosenpass can also write the shared secrets to files; this can be used to integrate Rosenpass - with tools other than WireGuard. -

- -

Who is Rosenpass for?

-

- Rosenpass is for everyone who wants secure encryption, particularly in a world where "store now, decrypt later" attacks are considered to be a present threat. If your data is being encrypted with methods that are not post-quantum secure, that data may - already be vulnerable to harvest attacks relying on future access to quantum computing. The goal of Rosenpass is to protect - everyone from that future, much as classical encryption methods protect everyone in a pre-quantum world. That said, there is - a skill-floor to using the currently available implementations of Rosenpass. Typically, developers with some experience of - manually configured VPNs will have the easiest time setting up the Rosenpass daemon, particularly those using specific versions - of Linux. Support for further systems is actively being researched, but is not currently imminent. -

-

Quick Start

-

- If you simply want to get Rosenpass up and running quickly, you are best served using the Quick Start Guide. - It contains everything you need to download, configure, and start a WireGuard connection using the Rosenpass key exchange. -

-

Which systems are supported by Rosenpass?

-

- Rosenpass currently provides packages and static binaries for several Linux distributions, as shown here: -

- - - - -

What planned features are on the way?

- - -

Current Version

-

  0.2.2

-

   Release Notes

- +

Quick Start

+

+ If you simply want to get the Rosenpass tool up and running quickly, you are best served using our Quick Start Guide. + It contains everything you need to download, configure, and start a WireGuard connection using the Rosenpass key exchange. +

+{{< /blocks/section >}} - {{< blocks/rss-button href="https://github.com/rosenpass/rosenpass/releases.atom" color="dark" text="Stay up to date with Rosenpass releases by subscribing to the GitHub Release Atom feed!" >}} \ No newline at end of file + \ No newline at end of file diff --git a/content/en/docs/manuals/_index.html b/content/en/docs/manuals/_index.html deleted file mode 100644 index a3095100..00000000 --- a/content/en/docs/manuals/_index.html +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Manuals" -linkTitle: "Manuals" -type: docs -weight: 30 -menu: false -no_list: true ---- - -

This section contains conversions of .1 format manual pages into a html-readable format.

- -
-

Rosenpass Manual (1) (rp) EN

-

Manual page for using Rosenpass to build post-quantum-secure VPNs

- -
-

Rosenpass High-Level Interface (rp) EN

-

Manual page for configuring a high-level interface to Rosenpass.

\ No newline at end of file diff --git a/content/en/docs/pentest.md b/content/en/docs/pentest.md deleted file mode 100644 index d94a832e..00000000 --- a/content/en/docs/pentest.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Penetration Test 2024" -linkTitle: "Penetration Test Report" -weight: 6 -menu: false -type: docs -icon: fa-sharp fa-solid fa-file-pdf -pdf_filename: "../../report_ngir-rosenpass.pdf" ---- - -{{< blocks/pdfembed >}} \ No newline at end of file diff --git a/content/en/docs/presentations/_index.html b/content/en/docs/presentations/_index.html deleted file mode 100644 index 3ec8fbd1..00000000 --- a/content/en/docs/presentations/_index.html +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Conference Presentations" -linkTitle: "Conference Presentations" -type: docs -weight: 20 -menu: false -no_list: false ---- - -{{< blocks/lead color="primary" >}} -

Conference Presentations

-{{< /blocks/lead >}} - -{{< blocks/section color="light" class="pt-5 pb-5">}} -

-In this section you can find the slides of presentations we held. -For some talks, there are also videos recordings available. -

-{{< /blocks/section >}} \ No newline at end of file diff --git a/content/en/docs/rosenpass-project/_index.html b/content/en/docs/rosenpass-project/_index.html new file mode 100644 index 00000000..829a49ce --- /dev/null +++ b/content/en/docs/rosenpass-project/_index.html @@ -0,0 +1,20 @@ +--- +title: "The Rosenpass Project" +linkTitle: "The Rosenpass Project" +type: docs +weight: 20 +menu: false + +blerb: "Rosenpass is a project to produce free/libre, open source, and open science cryptographic tooling to aid the migration of the internet's + infrastructure towards post-quantum secure cryptography, e.g encryption and authentication. Currently, the project consists of the Rosenpass + protocol, itsimplementation in the Rosenpass tool, and a cryptographic analysis of its security using [ProVerif](https://bblanche.gitlabpages.inria.fr/proverif/). We focus our work towards better + integration of academic cryptography, the development of software, and its deployment in industry and infrastructure." +--- + +{{< blocks/lead color="primary" >}} +

The Rosenpass Project

+{{< /blocks/lead >}} + +{{< blocks/section color="light" class="pt-5 pb-0">}} +aasdfasdf +{{< /blocks/section >}} \ No newline at end of file diff --git a/content/en/docs/rosenpass-project/pentest.md b/content/en/docs/rosenpass-project/pentest.md new file mode 100644 index 00000000..f5512e1b --- /dev/null +++ b/content/en/docs/rosenpass-project/pentest.md @@ -0,0 +1,12 @@ +--- +title: "Penetration Test 2024" +linkTitle: "Penetration Test Report" +weight: 6 +menu: false +type: docs +icon: fa-sharp fa-solid fa-file-pdf +pdf_filename: "../../report_ngir-rosenpass.pdf" +blerb: "Radically Open Security's January 2024 report on their penetration test of the Rosenpass tool late in 2023. This document outlines several attacks, tests, and reviews of code and practice relating to the Rosenpass tool, and a summary of the findings." +--- + +{{< blocks/pdfembed >}} \ No newline at end of file diff --git a/content/en/docs/rosenpass-project/presentations/_index.html b/content/en/docs/rosenpass-project/presentations/_index.html new file mode 100644 index 00000000..f0711da0 --- /dev/null +++ b/content/en/docs/rosenpass-project/presentations/_index.html @@ -0,0 +1,21 @@ +--- +title: "Conference Presentations" +linkTitle: "Conference Presentations" +type: docs +weight: 20 +menu: false +no_list: false +presentation_list: true +blerb: "As part of our work, we give numerous talks and presentations aimed at communicating the science behind the Rosenpass tool, project and protocol, as well as cryptography more generally. This section contains the presentation slides for several of these talks and, where available, video recordings of them. Please be aware that some of these talks are not in English, but are clearly marked as such." +--- + +{{< blocks/lead color="primary" >}} +

Conference Presentations

+{{< /blocks/lead >}} + +{{< blocks/section color="light" class="pt-5 pb-0">}} +

+In this section you can find the slides of presentations we held. +For some talks, there are also videos recordings available. +

+{{< /blocks/section >}} \ No newline at end of file diff --git a/content/en/docs/presentations/easterhegg-2023.md b/content/en/docs/rosenpass-project/presentations/easterhegg-2023.md similarity index 100% rename from content/en/docs/presentations/easterhegg-2023.md rename to content/en/docs/rosenpass-project/presentations/easterhegg-2023.md diff --git a/content/en/docs/presentations/formosa-2023.md b/content/en/docs/rosenpass-project/presentations/formosa-2023.md similarity index 100% rename from content/en/docs/presentations/formosa-2023.md rename to content/en/docs/rosenpass-project/presentations/formosa-2023.md diff --git a/content/en/docs/presentations/hackmas-2024.md b/content/en/docs/rosenpass-project/presentations/hackmas-2024.md similarity index 100% rename from content/en/docs/presentations/hackmas-2024.md rename to content/en/docs/rosenpass-project/presentations/hackmas-2024.md diff --git a/content/en/docs/presentations/iav-2023.md b/content/en/docs/rosenpass-project/presentations/iav-2023.md similarity index 100% rename from content/en/docs/presentations/iav-2023.md rename to content/en/docs/rosenpass-project/presentations/iav-2023.md diff --git a/content/en/docs/presentations/mrmcd-2023.md b/content/en/docs/rosenpass-project/presentations/mrmcd-2023.md similarity index 100% rename from content/en/docs/presentations/mrmcd-2023.md rename to content/en/docs/rosenpass-project/presentations/mrmcd-2023.md diff --git a/content/en/docs/presentations/rwpqc-2023.md b/content/en/docs/rosenpass-project/presentations/rwpqc-2023.md similarity index 100% rename from content/en/docs/presentations/rwpqc-2023.md rename to content/en/docs/rosenpass-project/presentations/rwpqc-2023.md diff --git a/content/en/docs/presentations/yrcs-2023.md b/content/en/docs/rosenpass-project/presentations/yrcs-2023.md similarity index 100% rename from content/en/docs/presentations/yrcs-2023.md rename to content/en/docs/rosenpass-project/presentations/yrcs-2023.md diff --git a/content/en/docs/rosenpass-project/whitepaper.md b/content/en/docs/rosenpass-project/whitepaper.md new file mode 100644 index 00000000..4316560f --- /dev/null +++ b/content/en/docs/rosenpass-project/whitepaper.md @@ -0,0 +1,12 @@ +--- +title: "Whitepaper" +linkTitle: "Whitepaper" +weight: 2 +menu: false +type: docs +icon: fa-sharp fa-solid fa-file-pdf +pdf_filename: "../../whitepaper.pdf" +blerb: "This document is a guide for engineers and researchers implementing the protocol. It is a scientific paper discussing the secruity properties of Rosenpass as a work-in-progress." +--- + +{{< blocks/pdfembed >}} \ No newline at end of file diff --git a/content/en/docs/rosenpass-tool/_index.html b/content/en/docs/rosenpass-tool/_index.html new file mode 100644 index 00000000..1a597716 --- /dev/null +++ b/content/en/docs/rosenpass-tool/_index.html @@ -0,0 +1,62 @@ +--- +title: "The Rosenpass Tool" +linkTitle: "The Rosenpass Tool" +type: docs +weight: 20 +menu: false + +blerb: "The Rosenpass tool is a daemon, written in Rust, that implements the Rosenpass protocol to create and exchange hybridised post-quantum and + classically secure keys between two peers. Using a hybrid security model allows us to preserve the reliability of battle-proven classical + cryptography whilst still providing the necessary upgrade to secure against decryption of data by quantum computers (i.e., protect against + “store-now decrypt-later attacks”). + + +The Rosenpass tool works best and most natively with [WireGuard](https://www.wireguard.com/), as it was first envisioned specifically to inject post-quantum secured keys +into WireGuard using its Pre-Shared Key parameter. However, as the Rosenpass tool can export its shared secrets to a file, it can be implemented +in other use cases. We were able to demonstrate its potential for integration with Transport Layer Security (TLS), in [this tutorial](/blog/tlsrosenpass_july) on using +[OpenSSL](https://openssl.org/) with Rosenpass." +--- + + + +{{< blocks/section color="light" class="pt-5 pb-0">}} + +

Which systems are supported by Rosenpass?

+

+ Rosenpass currently provides packages and static binaries for several Linux distributions, as shown below: +

+ +
+
+ +
+
+

0.2.2 Release Notes

+
    +
  • Fixes vulnerability to prevent output shared key (OSK) to be set or written again on a responder receiving the same InitConf message during a handshake.
  • +
  • This release has no impact for majority of users using Rosenpass with Wireguard
  • +
+
+
+ + + +

What planned features are on the way?

+
    +
  • Cunicu integration: Cunicu is a user-space daemon for managing WireGuard connections for small devices. We intend to integrate post-quantum security into that daemon via Rosenpass
  • +
  • Docker and micro-VM implementations: We are currently working on using micro-VMs to reduce the scope of system privileges Rosenpass needs to run
  • +
  • Hacspec integration: Hackspec is a rust-based language designed by Cryspen to enable the use of several formal verification tools that enable high-assurance cryptography
  • +
  • NetBird partnership: We are working with NetBird to produce a commercially-ready VPN service that is post-quantum secure
  • +
  • Golang implementation of Rosenpass: Our initial implementation of Rosenpass is written in Rust, but we are working on an alternative, compatible Golang-built implementation to increase diversity and reach new platforms. + It is called go-rosenpass.
  • +
+{{< /blocks/section >}} diff --git a/content/en/docs/rosenpass-tool/changelog.md b/content/en/docs/rosenpass-tool/changelog.md new file mode 100644 index 00000000..3c012f87 --- /dev/null +++ b/content/en/docs/rosenpass-tool/changelog.md @@ -0,0 +1,1452 @@ +--- +title: "" +linkTitle: "Changelog" +weight: 5 +menu: false +type: docs +draft: true +--- + +
+
• unreleased / untagged
+ +

+ +

+
+
+ +
+
Changelog workflow
+
+ +
+
Drop obsolete RTX_BUFFER_SIZE and usize_max
+
+ +
+
Cleanup, document and add tests
+
+ +
+
Use mio::Token based polling
+
+ +
+
Close API connections after error
+
+ +
+
AddPskBroker endpoint
+
+ +
+
AddListenSocket endpoint
+
+ +
+
API Feature – Add server keys via API
+
+ +
+
SupplyKeypair endpoint
+
+ +
+
Add enable_wg_broker feature using MioBrokerClient
+
+ +
+
Add test case and check fd value
+
+ +
+
Add tests for util file.rs
+
+ +
+
Set CLOEXEC flag on claimed fds and mask them
+
+ +
+
Infrastructure for the Rosenpass API
+
+ +
+
A variety of utilities in preparation for implementing the API
+
+ +
+
Convenience functions and traits to automatically handle ErrorKind::{Interrupt, WouldBlock}
+
+ +
+
Convenience traits to get the ErrorKind of an io error for match clauses
+
+ +
+
Convenience function to just call a function
+
+ +
+
Experimental support for encryption using libcrux
+
+ +
+
Regression CI based on misc/generate_configs.py
+
+ +
+
Improved memfd-secret allocation (#347)
+
+ +
+
Add wireguard-broker interface in AppServer (#303)
+
+ +
+
Merge from dev/broker-architecture, fixes, test
+
+ +
+
Change base64 to base64ct crate (#295)
+
+ +
+
Implement rp tool in Rust (#235)
+
+ +
+
Remove libsodium
+
+ +
+
Use core::hint::black_box in rosenpass_constant_time::xor
+
+ +
+
Migrate away from sodium blake2b towards the rust crypto implementation
+
+ +
+
Use xchacha implementation from rust crypto instead of sodium
+
+ +
+
Use chacha implementation from rust crypto instead of sodium
+
+ +
+
Migrate to memsec
+
+ +
+
Add INITIATOR_TEST and RESPONDER_TEST macros
+
+ +
+
Identity hiding in two stage process
+
+ +
+
Add inital identity hiding code to proverif
+
+ +
+
Add format_rustcode.sh script
+
+ +
+
Add fuzzing for libsodium allocator
+
+ +
+
Move lenses into library
+
+ +
+
Add an internal library for guaranteed results
+
+ +
+
Use the rand crate for random values instead of sodium
+
+ +
+
Move prftree into ciphers crate
+
+ +
+
Wrap sodium_malloc as a custom allocator
+
+ +
+
Use the zeroize crate for zeroization
+
+ +
+
Rosenpass-to for nicely handling destination parameters
+
+ +
+
Add initial set of fuzzing targets
+
+
+
+ +

+ +

+
+
+ +
+
Tests failing on mac
+
+ +
+
Be polite and kill child processes in api integration tests
+
+ +
+
Wrong response size set
+
+ +
+
Remove ineffectual broker integration test
+
+ +
+
Libc & rustix are making problems in CI for unknown reasons
+
+ +
+
PSK broker integration did not work
+
+ +
+
Quiet log level should be warn
+
+ +
+
Print stack trace to errors propagated to main function
+
+ +
+
Flush stdout after printing key update notification
+
+ +
+
Consistently use feature flag `experiment_libcrux`
+
+ +
+
Fix shared_secret length in Kyber encaps fuzz test
+
+ +
+
Update handle_msg.rs fuzz test and handshake.rs bench to use PublicBox
+
+ +
+
Fix duplicate key issue (#329)
+
+ +
+
.ci/gen-workflow-files.nu script
+
+ +
+
Failing tests
+
+ +
+
Fix crate vulnerabilities
+
+ +
+
Grammatical typo in cli.rs
+
+ +
+
Second round of clippy lints
+
+ +
+
Apply clippy lints
+
+ +
+
Make benches work again
+
+ +
+
Migrate away from lazy_static in favor of thread_local
+
+ +
+
Make sure all tests are run during CI runs
+
+ +
+
Fix Rust code in markdown files
+
+ +
+
Add deprecated keygen command
+
+ +
+
Remove OSFONTDIR var from whitepaper build
+
+ +
+
Guaranteed results typo
+
+ +
+
Enabled fuzzing
+
+ +
+
Nix flake failing due to rosenpass-to
+
+ +
+
Setup cargo fmt to check the entire workspace
+
+
+
+ +

+ +

+
+
+ +
+
Get rid of comment and unessary truncation of buffer
+
+ +
+
Use memoffset crate instead of unstable offset_of feature
+
+ +
+
Replace lenses library with the zerocopy crate
+
+
+
+ +

+ +

+
+
+ +
+
Added gitcliff and modified template
+
+ +
+
Add documentation for testing
+
+ +
+
Run prettier over CONTRIBUTING.md
+
+ +
+
Pointed to website documentation in readme
+
+ +
+
Migrated cooking recipe from wiki
+
+ +
+
Fix keygen/gen-keys misspell
+
+ +
+
Add bibliography to the manual page
+
+
+
+ +

+ +

+
+
+ +
+
Apply rustfmt
+
+
+
+ +

+ +

+
+
+ +
+
Add tests for controlflow
+
+ +
+
Cleanup fd.rs tests
+
+ +
+
Modify existing tests to cover load/store for PublicBox as well
+
+
+
+ +

+ +

+
+
+ +
+
Fixed typo on doc-upload
+
+ +
+
Fix(API): Tests failing on mac
+
+ +
+
Fd/time: add tests, docs, cleanups
+
+ +
+
API: Close connections after errors & use mio::Token based polling
+
+ +
+
Utilities to check for unix domain stream sockets
+
+ +
+
Fallback for empty api section in config
+
+ +
+
Infrastructure to use endpoints with fd. passing
+
+ +
+
Specifying a keypair should be opt. at startup
+
+ +
+
Deal with CryptoServer being uninit.
+
+ +
+
Decouple AppServer from CryptoServer::timebase
+
+ +
+
API should have access to AppServer
+
+ +
+
Experimental PSK Broker Support
+
+ +
+
Clippy
+
+ +
+
Feature naming scheme fully applied
+
+ +
+
Gen-key subcommand should show canonical paths
+
+ +
+
Prettier
+
+ +
+
Convert broker interface setup to use mio's UnixStream where possible
+
+ +
+
Make MiobrokerClient import conditional
+
+ +
+
Unify enable_wg_broker and enable_broker_api features
+
+ +
+
Test full workspace with codecov
+
+ +
+
Drop codecov token
+
+ +
+
Switch to codecov action v4 branch
+
+ +
+
Fix typos and add various comments
+
+ +
+
To crate documentation indendation (purely cosmetic)
+
+ +
+
Refactor integration_tests (purely cosmetic)
+
+ +
+
Move CliCommand::run -> CliArgs::run; do not mutate the configuration
+
+ +
+
Reorganize memfd secret policy
+
+ +
+
Clippy fixes on wireguard-broker
+
+ +
+
Warnings & clippy hints
+
+ +
+
Ensure that rustAnalyzer is installed in dev environment
+
+ +
+
Move memcmp test API doc to test memcmp test module
+
+ +
+
Style adjustments – Cargo.toml
+
+ +
+
Remove unnecessary imports
+
+ +
+
Ignore vscode directory
+
+ +
+
Fixup regression test
+
+ +
+
Use my new name
+
+ +
+
Ensure punctuation is consistent in doc comments
+
+ +
+
Simplify some dereferencing incantations in PublicBox
+
+ +
+
Add generate_configs.py script
+
+ +
+
Rollback symbolic models to original state
+
+ +
+
Remove libsodium references in nix flake, ci (#334)
+
+ +
+
Add write permissions in dependent-issues workflow
+
+ +
+
Update codecov configuration file
+
+ +
+
Add codecov configuration file
+
+ +
+
Changes from #160- Invoke the mandoc linter (#296)
+
+ +
+
Add codecov (llvm-cov) coverage (#297)
+
+ +
+
Load WireGuard SK into secret memory (#293)
+
+ +
+
Replace Into<> with From<> trait
+
+ +
+
Remove useless conversion
+
+ +
+
Remove redundant Ok()
+
+ +
+
Remove needless borrow
+
+ +
+
Remove needless borrow
+
+ +
+
Replace if let with is_ok() call
+
+ +
+
Remove needless borrow for nonce array
+
+ +
+
Use copy instead of clone trait
+
+ +
+
Remove redundant mutability
+
+ +
+
Remove redundant cast
+
+ +
+
Suppress clippy warnings for neutral element
+
+ +
+
Apply .ci/gen-workflow-files.nu script
+
+ +
+
Update flake.lock
+
+ +
+
Add dedicated nixpkgs input to flake
+
+ +
+
Add configuration
+
+ +
+
Exclude rosenpass-fuzzing
+
+ +
+
Add secure memcmp_le function
+
+ +
+
Enable cargo bench again
+
+ +
+
Cargo fmt & fix
+
+ +
+
Drop overlay due to upstream fix
+
+ +
+
Drop deprecated std::env::home_dir()
+
+ +
+
Enable aarch64-linux builds again
+
+ +
+
Add link to manual
+
+ +
+
Cargo fmt
+
+ +
+
Add helper to turn typenums into const values
+
+ +
+
Remove references to libsodium from secret-memory
+
+ +
+
Move kems out of rosenpass crate
+
+ +
+
Upgrade dependencies
+
+ +
+
Shorten fuzzing runtime to make sure the CI finishes quickly
+
+ +
+
Move rest of coloring.rs into secret-memory crate
+
+ +
+
Move Public and debug_crypto_array into secret-memory crate
+
+ +
+
Remove lprf.rs (dead code)
+
+ +
+
Move hashing functions into sodium/ciphers crate
+
+ +
+
Use naming scheme without rosenpass- for crates
+
+ +
+
Move xchacha20 implementation out of rosenpass::sodium
+
+ +
+
Move chacha20 implementation out of rosenpass::sodium
+
+ +
+
Move libsodium's helper function into their own namespace
+
+ +
+
Move libsodium's memzero, randombytes fns into rosenpass-sodium
+
+ +
+
Move libsodium's increment into rosenpass-sodium crate
+
+ +
+
Move libsodium's compare into rosenpass-sodium crate
+
+ +
+
Move memcmp into rosenpass-sodium crate
+
+ +
+
Move sodium init integration into rosenpass-sodium crate
+
+ +
+
Move file utils into coloring or the util crate
+
+ +
+
Move functional utils into utils library
+
+ +
+
Move time utils into util crate
+
+ +
+
Move max_usize into util crate
+
+ +
+
Move xor_into, copying and base64 utils into own crates
+
+
+
+ + +
+
• 0.2.1 2023-11-18  -  0b4b127
+

+ +

+
+
+ +
+
Release rosenpass version 0.2.1
+
+
+
+ + +
+
• 0.2.1-rc.3 2023-11-18  -  44264a7
+

+ +

+
+
+ +
+
Release rosenpass version 0.2.1-rc.3
+
+
+
+ + +
+
• rosenpass-v0.2.1-rc.2 2023-11-18  -  9597e48
+

+ +

+
+
+ +
+
Release rosenpass version 0.2.1-rc.2
+
+
+
+ + +
+
• rosenpass-v0.2.1-rc.1 2023-11-18  -  3901e66
+

+ +

+
+
+ +
+
Release rosenpass version 0.2.1-rc.1
+
+
+
+ +

+ +

+
+
+ +
+
Doctest should pass buffers of correct length to handle_msg
+
+ +
+
Restore benchmarks to working order
+
+
+
+ +

+ +

+
+
+ +
+
Remove redundant references
+
+
+
+ +

+ +

+
+
+ +
+
Add unit test for xor_into
+
+ +
+
Clarify the assumptions about the server
+
+
+
+ +

+ +

+
+
+ +
+
Fix wrong comment
+
+ +
+
Ensure 8MiB of stack size for key generation
+
+
+
+ +

+ +

+
+
+ +
+
Update
+
+ +
+
Rustfmt
+
+ +
+
Replace `is_ok()` by `if let`
+
+ +
+
Remove redundant stack increase
+
+ +
+
Move wg exit status check to thread
+
+ +
+
Handle the exit status of wg process
+
+ +
+
Reap spawned wireguard child
+
+ +
+
Default `WireGuard::extra_params` to empty `Vec`
+
+ +
+
Remove `unsafe` from `store_secret`
+
+ +
+
Remove `unsafe` from `store_secret`
+
+ +
+
Move `StaticKEM::keygen` out of `unsafe`
+
+ +
+
Allow false positive with redundancies
+
+ +
+
Fix clippy warnings in `build.rs`
+
+
+
+ + +
+
• 0.2.0 2023-09-05  -  b997238
+

+ +

+
+
+ +
+
Release rosenpass version 0.2.0
+
+
+
+ + +
+
• 0.2.0-rc.1 2023-08-29  -  d915e63
+

+ +

+
+
+ +
+
Restart host discovery on connection loss
+
+ +
+
Upload man pages to website
+
+
+
+ +

+ +

+
+
+ +
+
Revert spell correction zeroized -> zeroed
+
+ +
+
Typos in Rust code, readme and man pages
+
+ +
+
Race condition due to concurrent handshake
+
+ +
+
Git directory detection should not print an error if we are not in a git repo
+
+ +
+
Formatting
+
+ +
+
Show cargo fmt errors
+
+ +
+
Show warnings from git directory detection
+
+ +
+
Reintroduce ability to actually supply wireguard with keys
+
+ +
+
Escape uses of angle brackets and pointy brackets in documentation
+
+ +
+
Restore QC/doc CI job to operation
+
+ +
+
Disable broken CI jobs
+
+ +
+
Host-path discovery
+
+ +
+
Always send messages to a peer using the socket they contacted us with
+
+ +
+
Handle the various possible dual-stack configurations reliably
+
+ +
+
Adjust the rp(1) script to support the new rosenpass(1) command line parameters
+
+
+
+ +

+ +

+
+
+ +
+
Add a manual page for `rp(1)`
+
+
+
+ +

+ +

+
+
+ +
+
Update outdated dependencies
+
+ +
+
Perform a `shellcheck`
+
+ +
+
Update
+
+ +
+
Include a static compiled manual page
+
+ +
+
Defaults to dual-stack
+
+ +
+
Add mirrors
+
+ +
+
Update
+
+ +
+
Upgrade crate dependencies
+
+ +
+
Move slides into their own repo
+
+ +
+
Indicate that the listen parameter can be given multiple times in the help
+
+ +
+
Cleanup unneccesary debug output
+
+
+
+ + +
+
• 0.1.2-rc.4 2023-04-13  -  94d57f2
+

+ +

+
+
+ +
+
Release rosenpass version 0.1.2-rc.4
+
+
+
+ +

+ +

+
+
+ +
+
Reorder RWPQC slides
+
+ +
+
CrossFyre 2023 Submission abstract
+
+ +
+
Add RWPQC 23 slides
+
+ +
+
Add YRCS talk slides
+
+ +
+
Add licensing infos
+
+
+
+ +

+ +

+
+
+ +
+
Rollback adding an article to state, acknowledgement and replay
+
+ +
+
Remove warning about this being a research project
+
+
+
+ +

+ +

+
+
+ +
+
Add rosenpass.1 manual page
+
+
+
+ +

+ +

+
+
+ +
+
Consistently use the term `Key Encapsulation Mechanism`
+
+ +
+
Delete outdated illustrations
+
+
+
+ + +
+
• 0.1.1 2023-02-25  -  97f5d75
+

+ +

+
+
+ +
+
Release rosenpass version 0.1.1
+
+
+
+ + +
+
• 0.1.1-rc.7 2023-02-25  -  aa15872
+

+ +

+
+
+ +
+
Release rosenpass version 0.1.1-rc.7
+
+ +
+
Release rosenpass version 0.1.1-rc.6
+
+
+
+ + +
+
• 0.1.1-rc.5 2023-02-25  -  f4c351c
+

+ +

+
+
+ +
+
Release rosenpass version 0.1.1-rc.5
+
+
+
+ + +
+
• 0.1.1-rc.4 2023-02-25  -  4b4902c
+

+ +

+
+
+ +
+
Release rosenpass version 0.1.1-rc.4
+
+ +
+
Release rosenpass version 0.1.1-rc.3
+
+
+
+ + +
+
• 0.1.1-rc.3 2023-02-24  -  8313a61
+

+ +

+
+
+ +
+
Release rosenpass version 0.1.1-rc.3
+
+
+
+ + +
+
• 0.1.1-rc.2 2023-02-24  -  d50c3fc
+

+ +

+
+
+ +
+
Release rosenpass version 0.1.1-rc.2
+
+
+
+ +

+ +

+
+
+ +
+
Give thanks to NLNet
+
+ +
+
`rp` now detects rosenpass binary in nix builds
+
+
+
+ +

+ +

+
+
+ +
+
Support for absolute paths in rp
+
+
+
+ + +
+
• 0.1.1-rc.1 2023-02-24  -  e34610a
+

+ +

+
+
+ +
+
Release rosenpass version 0.1.1-rc.1
+
+
+
+ +

+ +

+
+
+ +
+
Proofreading of whitepaper
+
+
+
+ + +
diff --git a/content/en/docs/compilation.md b/content/en/docs/rosenpass-tool/compilation.md similarity index 94% rename from content/en/docs/compilation.md rename to content/en/docs/rosenpass-tool/compilation.md index 007afdfc..66936f3b 100644 --- a/content/en/docs/compilation.md +++ b/content/en/docs/rosenpass-tool/compilation.md @@ -4,6 +4,7 @@ linkTitle: "Compilation and Installation" weight: 4 menu: false type: docs +blerb: "A guide on how to compile the Rosenpass tool yourself, including installation via the binary files. This is useful if you want to use the Rosenpass tool on systems we do not currently provide packages for." --- Below is a guide on how to compile Rosenpass yourself, including via the binary files. This can be used to compile Rosenpass for systems not yet fully supported, such as Debian, and provides a more customised experience. diff --git a/content/en/docs/rosenpass-tool/manuals/_index.html b/content/en/docs/rosenpass-tool/manuals/_index.html new file mode 100644 index 00000000..3024222d --- /dev/null +++ b/content/en/docs/rosenpass-tool/manuals/_index.html @@ -0,0 +1,27 @@ +--- +title: "Manuals" +linkTitle: "Manuals" +type: docs +weight: 60 +menu: false +no_list: true +blerb: "The Rosenpass Tool's Command Line Interface guides converted for viewing in a web browser." +--- + +{{< blocks/lead >}} +

Rosenpass Manuals

+{{< /blocks/lead >}} +{{< blocks/section color="light">}} +

+ This section contains conversions of .1 format manual pages into a html-readable format. +

+ +
+

Rosenpass Manual (1) (rp) EN

+

Manual page for using Rosenpass to build post-quantum-secure VPNs

+ +
+

Rosenpass High-Level Interface (rp) EN

+

Manual page for configuring a high-level interface to Rosenpass.

+ +{{< /blocks/section >}} diff --git a/content/en/docs/manuals/rosenpass_manual_custom.md b/content/en/docs/rosenpass-tool/manuals/rosenpass_manual_custom.md similarity index 100% rename from content/en/docs/manuals/rosenpass_manual_custom.md rename to content/en/docs/rosenpass-tool/manuals/rosenpass_manual_custom.md diff --git a/content/en/docs/manuals/rp1.md b/content/en/docs/rosenpass-tool/manuals/rp1.md similarity index 100% rename from content/en/docs/manuals/rp1.md rename to content/en/docs/rosenpass-tool/manuals/rp1.md diff --git a/content/en/docs/manuals/rp_manual.md b/content/en/docs/rosenpass-tool/manuals/rp_manual.md similarity index 100% rename from content/en/docs/manuals/rp_manual.md rename to content/en/docs/rosenpass-tool/manuals/rp_manual.md diff --git a/content/en/docs/release_notes.md b/content/en/docs/rosenpass-tool/release_notes.md similarity index 97% rename from content/en/docs/release_notes.md rename to content/en/docs/rosenpass-tool/release_notes.md index ce67f892..3d9356fd 100644 --- a/content/en/docs/release_notes.md +++ b/content/en/docs/rosenpass-tool/release_notes.md @@ -1,10 +1,11 @@ --- title: "Release Notes" linkTitle: "Release Notes" -weight: 5 +weight: 2 menu: false type: docs rss: "https://github.com/rosenpass/rosenpass/releases.atom" +blerb: "A summary of the major changes and fixes across full Rosenpass tool releases." --- diff --git a/content/en/docs/rosenpass-tool/source_code.md b/content/en/docs/rosenpass-tool/source_code.md new file mode 100644 index 00000000..53b5d4eb --- /dev/null +++ b/content/en/docs/rosenpass-tool/source_code.md @@ -0,0 +1,12 @@ +--- +title: "Source Code" +linkTitle: "Source Code" +weight: 50 +menu: false +type: docs +icon: fab fa-github +manualLink: "https://github.com/rosenpass/rosenpass" +manualLinkTarget: "_blank" +external: true +blerb: "A link to the Rosenpass tool's source code in its GitHub repository. Much of the Rosenpass tool's development is monitored there, and we are responsive to issues, feature requests, and other topics raised directly in the repository." +--- \ No newline at end of file diff --git a/content/en/docs/start.html b/content/en/docs/rosenpass-tool/start.html similarity index 97% rename from content/en/docs/start.html rename to content/en/docs/rosenpass-tool/start.html index 6a585258..12abe67f 100644 --- a/content/en/docs/start.html +++ b/content/en/docs/rosenpass-tool/start.html @@ -2,8 +2,9 @@ title = "Quick Start" linkTitle = "Quick Start" subtitle = "Build post-quantum-secure VPNs with WireGuard!" -weight = 10 +weight = 1 hideLead = true +blerb = "A quick start guide on downloading, configuring, and booting the Rosenpass tool for use with a WireGuard connection." +++ @@ -153,10 +154,6 @@

Just to be sure: Verify the magic!

-

We provide in-depth ressources in our Documentation section.

- - -

If you have further questions, please feel free to get in touch. We maintain a public Rosenpass Matrix chatroom, as well as several inboxes, for public inquiries, development questions, and general interest. Feature requests can also be opened at our GitHub pages

diff --git a/content/en/docs/source_code.md b/content/en/docs/source_code.md deleted file mode 100644 index 080b0263..00000000 --- a/content/en/docs/source_code.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Source Code" -linkTitle: "Source Code" -weight: 1 -menu: false -type: docs -icon: fab fa-github -manualLink: "https://github.com/rosenpass/rosenpass" -manualLinkTarget: "_blank" -external: true ---- \ No newline at end of file diff --git a/content/en/docs/whitepaper.md b/content/en/docs/whitepaper.md deleted file mode 100644 index f63b368c..00000000 --- a/content/en/docs/whitepaper.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Whitepaper" -linkTitle: "Whitepaper" -weight: 2 -menu: false -type: docs -icon: fa-sharp fa-solid fa-file-pdf -pdf_filename: "../../whitepaper.pdf" ---- - -{{< blocks/pdfembed >}} \ No newline at end of file diff --git a/layouts/docs/baseof.html b/layouts/docs/baseof.html index 3627e114..cea615e6 100644 --- a/layouts/docs/baseof.html +++ b/layouts/docs/baseof.html @@ -18,12 +18,12 @@ {{ partial "toc.html" . }} {{ partial "taxonomy_terms_clouds.html" . }} -
+
{{ partial "version-banner.html" . }} {{ block "main" . }}{{ end }}
-
+
{{ partial "footer.html" . }} diff --git a/layouts/docs/baseof.print.html b/layouts/docs/baseof.print.html index 41e0659b..1128ef8a 100644 --- a/layouts/docs/baseof.print.html +++ b/layouts/docs/baseof.print.html @@ -10,7 +10,7 @@
-
+
{{ block "main" . }}{{ end }}
diff --git a/static/css/rosenpass.css b/static/css/rosenpass.css index 91594ae4..17e149a1 100644 --- a/static/css/rosenpass.css +++ b/static/css/rosenpass.css @@ -273,8 +273,63 @@ div.click-to-copy{ border: 2px inset; } -/* Docs */ +/* DOCS */ +.ul-2 { /* Opens the sidebar menu to at least one nested dir level*/ + display: block !important; +} + +/* list production outside of preesentations */ +main.docs-main { + margin-left: auto; + margin-right: auto; +} + +aside.d-none { + display: none !important; +} + +.doc-list-section { + max-width: fit-content; +} + +.doc-list-section div p { + font-size: smaller; +} + +.doc-list-section .doc-list-section-title { + padding: 0; +} + +div.doc-list-section-title p { + font-size: medium; +} + +.doc-list-section div { + padding: 0 1rem 0 1rem; +} + +.doc-list-row { + flex-direction: column; + padding-left: 5vw; + padding-right: 5vw; +} + +@media (min-width: 1400px){ + .doc-list-row { + flex-direction: row; + } + + .doc-list-section:nth-child(odd) { + margin-right: 1rem; + } + + .doc-list-section:nth-child(even) { + margin-left: 1rem; + } +} + +/* Presenation list production */ .presentation-list h3 { margin-left: 1rem; margin-bottom: 0; @@ -290,6 +345,7 @@ div.click-to-copy{ .presentation-card-title { /* max-width: 75%; */ } +/* PDF styling */ .pdf-load-fail{ background-color: #00000040; @@ -832,7 +888,8 @@ font-weight: inherit; } .td-block-padding, -.td-default main section { +.td-default main section, +.td-main div main section { padding-top: 3rem; padding-bottom: 3rem; }