From nobody Sun Sep 10 16:13:58 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RkFK247MZz4s1w5; Sun, 10 Sep 2023 16:13:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RkFK2310zz3Qhg; Sun, 10 Sep 2023 16:13:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694362438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vX0RkZ/wyRMUqxSx3DEnqyOUeTU8/U0B+iEnYsli2Mo=; b=d/b4V+A4IoNfbXtrJ8QYsmOJ+lGpAOjRWupxMEKKQ+NQQqODl9+10DxeAXyhz4/n9+HkOP uUiJ/MdkuXAGvgaM+S4gmpmTsI/geWDP9DeOXtsjLq3NmvcwhLTXDHHiq5Y+5Q8IoGWD6f uq2ppTbrWoifDOYBcetI9F+t79dbVUi8EoRdfUtuT7D89Ma+5Xc0L6G0uMT2m6XtWDpW7y aWg5/BdDLco8QGc8WxF9+NDumv0kW+OxeoJtHwFAHx6gU4Tb2+D/uj0QoVBdH1qgze8mMx N9dqKl6RJBm8fNjQM8vgZ9kMn3/5UopTnfu0/3rzokWOVs+g+aiEV127h+laMw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694362438; a=rsa-sha256; cv=none; b=Tf2Y6O52ayHDL3JhdLO/NGpilLpug6sn4sbNFiHu7/i5shTWaADnN+bwsHYFPhfVx+Z2yl ipGR21261pd4WPPw2DDoWk4GPJhSrB1xKM52H3GAREdKP99aLyMGNOkZqxRmSB7He2R0EJ 8GiuD6Gn777TMGEFDMpL0Uc+kAxPfp8ijscGI2HdOiivn2TU6H+Nu4GfjXRlohX0DGDFJg GP1L887SoQ87xvMGFIBTbSn27TmmpRKl/2tm8EJX8cIbzQIdnBny/6lqLXZXJ+4rgzkFsl EcrrnmifuqJUGpUZPbQl6oOBNp/4sGBVW91cHx9oPK39V8v7vHcc1TfTL3LK4g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694362438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vX0RkZ/wyRMUqxSx3DEnqyOUeTU8/U0B+iEnYsli2Mo=; b=WuWeEXihHp07WYKVesMioztuJGM9+Cqo6bSSIiFdrppVzdMAcwv0OhCOXovaQI7vGQ9MNG YosdboLZcbHrT1GrWZlBuGc9LO7WoBTVhAHb2U5kiYdPDC4bqnnBUAEtZli0Wn3iNYvs+4 3emUFQSjeW0CVhCbCkqC9mWqUuSs/cRppuHfBk1FsXKrmajyB2SX4PUBMNuENVVKa0YVBf /kcTu1TuklED6Lkn/6xEnI9CGIN6tr/cZXdZYYw/mJg+3xfJ6f4KNqCi0v5HVAKjqMBTAh jTvWT+FZY9zSchWhvL8n3WQMmBTg7/lxXsD9VF8FDILWpF2zRueBoZl80TV9Hw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RkFK21xhNz1Csb; Sun, 10 Sep 2023 16:13:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38AGDwIa025589; Sun, 10 Sep 2023 16:13:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38AGDwHO025586; Sun, 10 Sep 2023 16:13:58 GMT (envelope-from git) Date: Sun, 10 Sep 2023 16:13:58 GMT Message-Id: <202309101613.38AGDwHO025586@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Robert Clausecker Subject: git: 55bf3daa4aad - main - net/rosenpass: Wireguard-based post-quantum VPN List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 55bf3daa4aad84241170dd7973ab0dffee0bcd23 Auto-Submitted: auto-generated The branch main has been updated by fuz: URL: https://cgit.FreeBSD.org/ports/commit/?id=55bf3daa4aad84241170dd7973ab0dffee0bcd23 commit 55bf3daa4aad84241170dd7973ab0dffee0bcd23 Author: Robert Clausecker AuthorDate: 2023-02-28 22:30:33 +0000 Commit: Robert Clausecker CommitDate: 2023-09-10 16:13:03 +0000 net/rosenpass: Wireguard-based post-quantum VPN 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 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 --- net/Makefile | 1 + net/rosenpass/Makefile | 37 +++ net/rosenpass/Makefile.crates | 179 ++++++++++ net/rosenpass/distinfo | 361 +++++++++++++++++++++ ...argo-crates_oqs-sys-0.8.0_liboqs_CMakeLists.txt | 29 ++ net/rosenpass/files/patch-rp | 37 +++ net/rosenpass/pkg-descr | 23 ++ 7 files changed, 667 insertions(+) diff --git a/net/Makefile b/net/Makefile index dd5762a1f41c..2e9be1bd842f 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1225,6 +1225,7 @@ SUBDIR += rfbproxy SUBDIR += rinetd SUBDIR += ripe-whois + SUBDIR += rosenpass SUBDIR += rospo SUBDIR += routinator SUBDIR += rp-pppoe diff --git a/net/rosenpass/Makefile b/net/rosenpass/Makefile new file mode 100644 index 000000000000..6519f63ba71e --- /dev/null +++ b/net/rosenpass/Makefile @@ -0,0 +1,37 @@ +PORTNAME= rosenpass +DISTVERSIONPREFIX= v +DISTVERSION= 0.2.0 +CATEGORIES= net net-vpn security + +MAINTAINER= fuz@FreeBSD.org +COMMENT= Wireguard-based post-quantum VPN +WWW= https://rosenpass.eu/ + +LICENSE= MIT APACHE20 +LICENSE_COMB= dual +LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE-APACHE +LICENSE_FILE_MIT= ${WRKSRC}/LICENSE-MIT + +LIB_DEPENDS= libsodium.so:security/libsodium +RUN_DEPENDS= bash:shells/bash \ + wireguard>0:net/wireguard + +USES= cargo llvm:build pkgconfig shebangfix +USE_GITHUB= yes + +PLIST_FILES= bin/rosenpass \ + bin/rp \ + man/man1/rosenpass.1.gz \ + man/man1/rp.1.gz + +pre-configure: + ${REINPLACE_CMD} -e 's,%%BASH%%,${LOCALBASE}/bin/bash,' ${WRKSRC}/rp + +post-install: + ${INSTALL_SCRIPT} ${WRKSRC}/rp ${STAGEDIR}${PREFIX}/bin/ + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/rosenpass +.for man in rp.1 rosenpass.1 + ${INSTALL_MAN} ${WRKSRC}/doc/${man} ${STAGEDIR}${MANPREFIX}/man/man${man:E}/${man} +.endfor + +.include diff --git a/net/rosenpass/Makefile.crates b/net/rosenpass/Makefile.crates new file mode 100644 index 000000000000..77ed6ac3635f --- /dev/null +++ b/net/rosenpass/Makefile.crates @@ -0,0 +1,179 @@ +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 diff --git a/net/rosenpass/distinfo b/net/rosenpass/distinfo new file mode 100644 index 000000000000..dbf9b3b19bcc --- /dev/null +++ b/net/rosenpass/distinfo @@ -0,0 +1,361 @@ +TIMESTAMP = 1694055391 +SHA256 (rust/crates/addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb +SIZE (rust/crates/addr2line-0.21.0.crate) = 40807 +SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe +SIZE (rust/crates/adler-1.0.2.crate) = 12778 +SHA256 (rust/crates/adler32-1.2.0.crate) = aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234 +SIZE (rust/crates/adler32-1.2.0.crate) = 6411 +SHA256 (rust/crates/ahash-0.8.3.crate) = 2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f +SIZE (rust/crates/ahash-0.8.3.crate) = 42416 +SHA256 (rust/crates/aho-corasick-1.0.4.crate) = 6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a +SIZE (rust/crates/aho-corasick-1.0.4.crate) = 171175 +SHA256 (rust/crates/anes-0.1.6.crate) = 4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299 +SIZE (rust/crates/anes-0.1.6.crate) = 23857 +SHA256 (rust/crates/anstream-0.3.2.crate) = 0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163 +SIZE (rust/crates/anstream-0.3.2.crate) = 19504 +SHA256 (rust/crates/anstyle-1.0.1.crate) = 3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd +SIZE (rust/crates/anstyle-1.0.1.crate) = 13977 +SHA256 (rust/crates/anstyle-parse-0.2.1.crate) = 938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333 +SIZE (rust/crates/anstyle-parse-0.2.1.crate) = 24802 +SHA256 (rust/crates/anstyle-query-1.0.0.crate) = 5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b +SIZE (rust/crates/anstyle-query-1.0.0.crate) = 8620 +SHA256 (rust/crates/anstyle-wincon-1.0.2.crate) = c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c +SIZE (rust/crates/anstyle-wincon-1.0.2.crate) = 11712 +SHA256 (rust/crates/anyhow-1.0.75.crate) = a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6 +SIZE (rust/crates/anyhow-1.0.75.crate) = 43901 +SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8 +SIZE (rust/crates/atty-0.2.14.crate) = 5470 +SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa +SIZE (rust/crates/autocfg-1.1.0.crate) = 13272 +SHA256 (rust/crates/backtrace-0.3.69.crate) = 2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837 +SIZE (rust/crates/backtrace-0.3.69.crate) = 77299 +SHA256 (rust/crates/base64-0.21.2.crate) = 604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d +SIZE (rust/crates/base64-0.21.2.crate) = 76389 +SHA256 (rust/crates/bindgen-0.65.1.crate) = cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5 +SIZE (rust/crates/bindgen-0.65.1.crate) = 213479 +SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a +SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 +SHA256 (rust/crates/bitflags-2.4.0.crate) = b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635 +SIZE (rust/crates/bitflags-2.4.0.crate) = 36954 +SHA256 (rust/crates/build-deps-0.1.4.crate) = 64f14468960818ce4f3e3553c32d524446687884f8e7af5d3e252331d8a87e43 +SIZE (rust/crates/build-deps-0.1.4.crate) = 35939 +SHA256 (rust/crates/bumpalo-3.13.0.crate) = a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1 +SIZE (rust/crates/bumpalo-3.13.0.crate) = 82114 +SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610 +SIZE (rust/crates/byteorder-1.4.3.crate) = 22512 +SHA256 (rust/crates/cast-0.3.0.crate) = 37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5 +SIZE (rust/crates/cast-0.3.0.crate) = 11452 +SHA256 (rust/crates/cc-1.0.83.crate) = f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0 +SIZE (rust/crates/cc-1.0.83.crate) = 68343 +SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766 +SIZE (rust/crates/cexpr-0.6.0.crate) = 17966 +SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd +SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 +SHA256 (rust/crates/ciborium-0.2.1.crate) = effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926 +SIZE (rust/crates/ciborium-0.2.1.crate) = 34974 +SHA256 (rust/crates/ciborium-io-0.2.1.crate) = cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656 +SIZE (rust/crates/ciborium-io-0.2.1.crate) = 6679 +SHA256 (rust/crates/ciborium-ll-0.2.1.crate) = defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b +SIZE (rust/crates/ciborium-ll-0.2.1.crate) = 14649 +SHA256 (rust/crates/clang-sys-1.6.1.crate) = c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f +SIZE (rust/crates/clang-sys-1.6.1.crate) = 41346 +SHA256 (rust/crates/clap-3.2.25.crate) = 4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123 +SIZE (rust/crates/clap-3.2.25.crate) = 219403 +SHA256 (rust/crates/clap-4.3.23.crate) = 03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3 +SIZE (rust/crates/clap-4.3.23.crate) = 55026 +SHA256 (rust/crates/clap_builder-4.3.23.crate) = f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98 +SIZE (rust/crates/clap_builder-4.3.23.crate) = 162380 +SHA256 (rust/crates/clap_derive-4.3.12.crate) = 54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050 +SIZE (rust/crates/clap_derive-4.3.12.crate) = 29052 +SHA256 (rust/crates/clap_lex-0.2.4.crate) = 2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5 +SIZE (rust/crates/clap_lex-0.2.4.crate) = 9652 +SHA256 (rust/crates/clap_lex-0.5.0.crate) = 2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b +SIZE (rust/crates/clap_lex-0.5.0.crate) = 11792 +SHA256 (rust/crates/cmake-0.1.50.crate) = a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130 +SIZE (rust/crates/cmake-0.1.50.crate) = 16748 +SHA256 (rust/crates/colorchoice-1.0.0.crate) = acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7 +SIZE (rust/crates/colorchoice-1.0.0.crate) = 6857 +SHA256 (rust/crates/core2-0.4.0.crate) = b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505 +SIZE (rust/crates/core2-0.4.0.crate) = 37075 +SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d +SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661 +SHA256 (rust/crates/criterion-0.4.0.crate) = e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb +SIZE (rust/crates/criterion-0.4.0.crate) = 108978 +SHA256 (rust/crates/criterion-plot-0.5.0.crate) = 6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1 +SIZE (rust/crates/criterion-plot-0.5.0.crate) = 22706 +SHA256 (rust/crates/crossbeam-channel-0.5.8.crate) = a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200 +SIZE (rust/crates/crossbeam-channel-0.5.8.crate) = 90455 +SHA256 (rust/crates/crossbeam-deque-0.8.3.crate) = ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef +SIZE (rust/crates/crossbeam-deque-0.8.3.crate) = 21746 +SHA256 (rust/crates/crossbeam-epoch-0.9.15.crate) = ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7 +SIZE (rust/crates/crossbeam-epoch-0.9.15.crate) = 48553 +SHA256 (rust/crates/crossbeam-utils-0.8.16.crate) = 5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294 +SIZE (rust/crates/crossbeam-utils-0.8.16.crate) = 42508 +SHA256 (rust/crates/dary_heap-0.3.6.crate) = 7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca +SIZE (rust/crates/dary_heap-0.3.6.crate) = 23683 +SHA256 (rust/crates/either-1.9.0.crate) = a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07 +SIZE (rust/crates/either-1.9.0.crate) = 16660 +SHA256 (rust/crates/env_logger-0.10.0.crate) = 85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0 +SIZE (rust/crates/env_logger-0.10.0.crate) = 36574 +SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5 +SIZE (rust/crates/equivalent-1.0.1.crate) = 6615 +SHA256 (rust/crates/errno-0.3.2.crate) = 6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f +SIZE (rust/crates/errno-0.3.2.crate) = 10424 +SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf +SIZE (rust/crates/errno-dragonfly-0.1.2.crate) = 1810 +SHA256 (rust/crates/filetime-0.2.22.crate) = d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0 +SIZE (rust/crates/filetime-0.2.22.crate) = 15029 +SHA256 (rust/crates/flate2-1.0.27.crate) = c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010 +SIZE (rust/crates/flate2-1.0.27.crate) = 73460 +SHA256 (rust/crates/form_urlencoded-1.2.0.crate) = a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652 +SIZE (rust/crates/form_urlencoded-1.2.0.crate) = 8923 +SHA256 (rust/crates/gimli-0.28.0.crate) = 6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0 +SIZE (rust/crates/gimli-0.28.0.crate) = 269277 +SHA256 (rust/crates/glob-0.3.1.crate) = d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b +SIZE (rust/crates/glob-0.3.1.crate) = 18880 +SHA256 (rust/crates/half-1.8.2.crate) = eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7 +SIZE (rust/crates/half-1.8.2.crate) = 41874 +SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888 +SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968 +SHA256 (rust/crates/hashbrown-0.13.2.crate) = 43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e +SIZE (rust/crates/hashbrown-0.13.2.crate) = 105265 +SHA256 (rust/crates/hashbrown-0.14.0.crate) = 2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a +SIZE (rust/crates/hashbrown-0.14.0.crate) = 116103 +SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8 +SIZE (rust/crates/heck-0.4.1.crate) = 11567 +SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33 +SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979 +SHA256 (rust/crates/hermit-abi-0.3.2.crate) = 443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b +SIZE (rust/crates/hermit-abi-0.3.2.crate) = 13783 +SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4 +SIZE (rust/crates/humantime-2.1.0.crate) = 16749 +SHA256 (rust/crates/idna-0.4.0.crate) = 7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c +SIZE (rust/crates/idna-0.4.0.crate) = 271429 +SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99 +SIZE (rust/crates/indexmap-1.9.3.crate) = 54653 +SHA256 (rust/crates/indexmap-2.0.0.crate) = d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d +SIZE (rust/crates/indexmap-2.0.0.crate) = 64038 +SHA256 (rust/crates/is-terminal-0.4.9.crate) = cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b +SIZE (rust/crates/is-terminal-0.4.9.crate) = 8109 +SHA256 (rust/crates/itertools-0.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473 +SIZE (rust/crates/itertools-0.10.5.crate) = 115354 +SHA256 (rust/crates/itoa-1.0.9.crate) = af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38 +SIZE (rust/crates/itoa-1.0.9.crate) = 10492 +SHA256 (rust/crates/js-sys-0.3.64.crate) = c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a +SIZE (rust/crates/js-sys-0.3.64.crate) = 80313 +SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646 +SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443 +SHA256 (rust/crates/lazycell-1.3.0.crate) = 830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55 +SIZE (rust/crates/lazycell-1.3.0.crate) = 12502 +SHA256 (rust/crates/libc-0.2.147.crate) = b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3 +SIZE (rust/crates/libc-0.2.147.crate) = 686772 +SHA256 (rust/crates/libflate-2.0.0.crate) = 9f7d5654ae1795afc7ff76f4365c2c8791b0feb18e8996a96adad8ffd7c3b2bf +SIZE (rust/crates/libflate-2.0.0.crate) = 42505 +SHA256 (rust/crates/libflate_lz77-2.0.0.crate) = be5f52fb8c451576ec6b79d3f4deb327398bc05bbdbd99021a6e77a4c855d524 +SIZE (rust/crates/libflate_lz77-2.0.0.crate) = 5893 +SHA256 (rust/crates/libloading-0.7.4.crate) = b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f +SIZE (rust/crates/libloading-0.7.4.crate) = 27580 +SHA256 (rust/crates/libsodium-sys-stable-1.19.30.crate) = 2cf9c3bd17952580efd8f57e3d01d724cfb18d51fbd9dc00a65e5911f71521ba +SIZE (rust/crates/libsodium-sys-stable-1.19.30.crate) = 1895511 +SHA256 (rust/crates/linux-raw-sys-0.4.5.crate) = 57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503 +SIZE (rust/crates/linux-raw-sys-0.4.5.crate) = 1274380 +SHA256 (rust/crates/log-0.4.20.crate) = b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f +SIZE (rust/crates/log-0.4.20.crate) = 38307 +SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d +SIZE (rust/crates/memchr-2.5.0.crate) = 65812 +SHA256 (rust/crates/memoffset-0.9.0.crate) = 5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c +SIZE (rust/crates/memoffset-0.9.0.crate) = 9033 +SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a +SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841 +SHA256 (rust/crates/minisign-verify-0.2.1.crate) = 933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881 +SIZE (rust/crates/minisign-verify-0.2.1.crate) = 21582 +SHA256 (rust/crates/miniz_oxide-0.7.1.crate) = e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7 +SIZE (rust/crates/miniz_oxide-0.7.1.crate) = 55194 +SHA256 (rust/crates/mio-0.8.8.crate) = 927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2 +SIZE (rust/crates/mio-0.8.8.crate) = 94264 +SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a +SIZE (rust/crates/nom-7.1.3.crate) = 117570 +SHA256 (rust/crates/num-traits-0.2.16.crate) = f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2 +SIZE (rust/crates/num-traits-0.2.16.crate) = 50130 +SHA256 (rust/crates/num_cpus-1.16.0.crate) = 4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43 +SIZE (rust/crates/num_cpus-1.16.0.crate) = 15713 +SHA256 (rust/crates/object-0.32.0.crate) = 77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe +SIZE (rust/crates/object-0.32.0.crate) = 275335 +SHA256 (rust/crates/once_cell-1.18.0.crate) = dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d +SIZE (rust/crates/once_cell-1.18.0.crate) = 32969 +SHA256 (rust/crates/oorandom-11.1.3.crate) = 0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575 +SIZE (rust/crates/oorandom-11.1.3.crate) = 10068 +SHA256 (rust/crates/oqs-sys-0.8.0.crate) = 7fa114149fb6e5362b9cf539de9305a6a3cf1556fbfa93b5053b4f70cf3adfb9 +SIZE (rust/crates/oqs-sys-0.8.0.crate) = 2788646 +SHA256 (rust/crates/os_str_bytes-6.5.1.crate) = 4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac +SIZE (rust/crates/os_str_bytes-6.5.1.crate) = 22778 +SHA256 (rust/crates/paste-1.0.14.crate) = de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c +SIZE (rust/crates/paste-1.0.14.crate) = 18157 +SHA256 (rust/crates/peeking_take_while-0.1.2.crate) = 19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099 +SIZE (rust/crates/peeking_take_while-0.1.2.crate) = 6697 +SHA256 (rust/crates/percent-encoding-2.3.0.crate) = 9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94 +SIZE (rust/crates/percent-encoding-2.3.0.crate) = 10196 +SHA256 (rust/crates/pkg-config-0.3.27.crate) = 26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964 +SIZE (rust/crates/pkg-config-0.3.27.crate) = 18838 +SHA256 (rust/crates/plotters-0.3.5.crate) = d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45 +SIZE (rust/crates/plotters-0.3.5.crate) = 143975 +SHA256 (rust/crates/plotters-backend-0.3.5.crate) = 9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609 +SIZE (rust/crates/plotters-backend-0.3.5.crate) = 13440 +SHA256 (rust/crates/plotters-svg-0.3.5.crate) = 38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab +SIZE (rust/crates/plotters-svg-0.3.5.crate) = 6948 +SHA256 (rust/crates/prettyplease-0.2.12.crate) = 6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62 +SIZE (rust/crates/prettyplease-0.2.12.crate) = 56698 +SHA256 (rust/crates/proc-macro2-1.0.66.crate) = 18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9 +SIZE (rust/crates/proc-macro2-1.0.66.crate) = 43575 +SHA256 (rust/crates/quote-1.0.33.crate) = 5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae +SIZE (rust/crates/quote-1.0.33.crate) = 28090 +SHA256 (rust/crates/rayon-1.7.0.crate) = 1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b +SIZE (rust/crates/rayon-1.7.0.crate) = 169488 +SHA256 (rust/crates/rayon-core-1.11.0.crate) = 4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d +SIZE (rust/crates/rayon-core-1.11.0.crate) = 73118 +SHA256 (rust/crates/redox_syscall-0.3.5.crate) = 567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29 +SIZE (rust/crates/redox_syscall-0.3.5.crate) = 23404 +SHA256 (rust/crates/regex-1.9.3.crate) = 81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a +SIZE (rust/crates/regex-1.9.3.crate) = 252676 +SHA256 (rust/crates/regex-automata-0.3.6.crate) = fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69 +SIZE (rust/crates/regex-automata-0.3.6.crate) = 607174 +SHA256 (rust/crates/regex-syntax-0.7.4.crate) = e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2 +SIZE (rust/crates/regex-syntax-0.7.4.crate) = 343365 +SHA256 (rust/crates/ring-0.16.20.crate) = 3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc +SIZE (rust/crates/ring-0.16.20.crate) = 5082615 +SHA256 (rust/crates/rle-decode-fast-1.0.3.crate) = 3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422 +SIZE (rust/crates/rle-decode-fast-1.0.3.crate) = 62086 +SHA256 (rust/crates/rustc-demangle-0.1.23.crate) = d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76 +SIZE (rust/crates/rustc-demangle-0.1.23.crate) = 28970 +SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2 +SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331 +SHA256 (rust/crates/rustix-0.38.8.crate) = 19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f +SIZE (rust/crates/rustix-0.38.8.crate) = 333258 +SHA256 (rust/crates/rustls-0.21.6.crate) = 1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb +SIZE (rust/crates/rustls-0.21.6.crate) = 282907 +SHA256 (rust/crates/rustls-webpki-0.100.2.crate) = e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab +SIZE (rust/crates/rustls-webpki-0.100.2.crate) = 71561 +SHA256 (rust/crates/rustls-webpki-0.101.4.crate) = 7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d +SIZE (rust/crates/rustls-webpki-0.101.4.crate) = 164324 +SHA256 (rust/crates/ryu-1.0.15.crate) = 1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741 +SIZE (rust/crates/ryu-1.0.15.crate) = 46906 +SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 +SIZE (rust/crates/same-file-1.0.6.crate) = 10183 +SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 +SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619 +SHA256 (rust/crates/sct-0.7.0.crate) = d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4 +SIZE (rust/crates/sct-0.7.0.crate) = 27502 +SHA256 (rust/crates/serde-1.0.185.crate) = be9b6f69f1dfd54c3b568ffa45c310d6973a5e5148fd40cf515acaf38cf5bc31 +SIZE (rust/crates/serde-1.0.185.crate) = 77337 +SHA256 (rust/crates/serde_derive-1.0.185.crate) = dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec +SIZE (rust/crates/serde_derive-1.0.185.crate) = 55569 +SHA256 (rust/crates/serde_json-1.0.105.crate) = 693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360 +SIZE (rust/crates/serde_json-1.0.105.crate) = 146316 +SHA256 (rust/crates/serde_spanned-0.6.3.crate) = 96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186 +SIZE (rust/crates/serde_spanned-0.6.3.crate) = 7737 +SHA256 (rust/crates/shlex-1.1.0.crate) = 43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3 +SIZE (rust/crates/shlex-1.1.0.crate) = 5199 +SHA256 (rust/crates/spin-0.5.2.crate) = 6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d +SIZE (rust/crates/spin-0.5.2.crate) = 12004 +SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f +SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480 +SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623 +SIZE (rust/crates/strsim-0.10.0.crate) = 11355 +SHA256 (rust/crates/syn-2.0.29.crate) = c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a +SIZE (rust/crates/syn-2.0.29.crate) = 241664 +SHA256 (rust/crates/tar-0.4.40.crate) = b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb +SIZE (rust/crates/tar-0.4.40.crate) = 51844 +SHA256 (rust/crates/termcolor-1.2.0.crate) = be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6 +SIZE (rust/crates/termcolor-1.2.0.crate) = 17917 +SHA256 (rust/crates/test_bin-0.4.0.crate) = 8e7a7de15468c6e65dd7db81cf3822c1ec94c71b2a3c1a976ea8e4696c91115c +SIZE (rust/crates/test_bin-0.4.0.crate) = 7591 +SHA256 (rust/crates/textwrap-0.16.0.crate) = 222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d +SIZE (rust/crates/textwrap-0.16.0.crate) = 53722 +SHA256 (rust/crates/thiserror-1.0.47.crate) = 97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f +SIZE (rust/crates/thiserror-1.0.47.crate) = 18811 +SHA256 (rust/crates/thiserror-impl-1.0.47.crate) = 6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b +SIZE (rust/crates/thiserror-impl-1.0.47.crate) = 15080 +SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc +SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490 +SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50 +SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991 +SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20 +SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865 +SHA256 (rust/crates/toml-0.7.6.crate) = c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542 +SIZE (rust/crates/toml-0.7.6.crate) = 49220 +SHA256 (rust/crates/toml_datetime-0.6.3.crate) = 7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b +SIZE (rust/crates/toml_datetime-0.6.3.crate) = 10770 +SHA256 (rust/crates/toml_edit-0.19.14.crate) = f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a +SIZE (rust/crates/toml_edit-0.19.14.crate) = 94875 +SHA256 (rust/crates/unicode-bidi-0.3.13.crate) = 92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460 +SIZE (rust/crates/unicode-bidi-0.3.13.crate) = 44477 +SHA256 (rust/crates/unicode-ident-1.0.11.crate) = 301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c +SIZE (rust/crates/unicode-ident-1.0.11.crate) = 42067 +SHA256 (rust/crates/unicode-normalization-0.1.22.crate) = 5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921 +SIZE (rust/crates/unicode-normalization-0.1.22.crate) = 122604 +SHA256 (rust/crates/untrusted-0.7.1.crate) = a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a +SIZE (rust/crates/untrusted-0.7.1.crate) = 7924 +SHA256 (rust/crates/ureq-2.7.1.crate) = 0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9 +SIZE (rust/crates/ureq-2.7.1.crate) = 111068 +SHA256 (rust/crates/url-2.4.0.crate) = 50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb +SIZE (rust/crates/url-2.4.0.crate) = 75670 +SHA256 (rust/crates/utf8parse-0.2.1.crate) = 711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a +SIZE (rust/crates/utf8parse-0.2.1.crate) = 13435 +SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426 +SIZE (rust/crates/vcpkg-0.2.15.crate) = 228735 +SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f +SIZE (rust/crates/version_check-0.9.4.crate) = 14895 +SHA256 (rust/crates/walkdir-2.3.3.crate) = 36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698 +SIZE (rust/crates/walkdir-2.3.3.crate) = 23125 +SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423 +SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131 +SHA256 (rust/crates/wasm-bindgen-0.2.87.crate) = 7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342 +SIZE (rust/crates/wasm-bindgen-0.2.87.crate) = 175052 +SHA256 (rust/crates/wasm-bindgen-backend-0.2.87.crate) = 5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd +SIZE (rust/crates/wasm-bindgen-backend-0.2.87.crate) = 26821 +SHA256 (rust/crates/wasm-bindgen-macro-0.2.87.crate) = dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d +SIZE (rust/crates/wasm-bindgen-macro-0.2.87.crate) = 13897 +SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.87.crate) = 54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b +SIZE (rust/crates/wasm-bindgen-macro-support-0.2.87.crate) = 20006 +SHA256 (rust/crates/wasm-bindgen-shared-0.2.87.crate) = ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1 +SIZE (rust/crates/wasm-bindgen-shared-0.2.87.crate) = 7248 +SHA256 (rust/crates/web-sys-0.3.64.crate) = 9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b +SIZE (rust/crates/web-sys-0.3.64.crate) = 725584 +SHA256 (rust/crates/webpki-roots-0.23.1.crate) = b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338 +SIZE (rust/crates/webpki-roots-0.23.1.crate) = 245626 +SHA256 (rust/crates/which-4.4.0.crate) = 2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269 +SIZE (rust/crates/which-4.4.0.crate) = 10889 +SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 +SIZE (rust/crates/winapi-0.3.9.crate) = 1200382 +SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6 +SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815 +SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178 +SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164 +SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f +SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998 +SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9 +SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884 +SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c +SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8 +SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492 +SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc +SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483 +SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e +SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891 +SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406 +SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300 +SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e +SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc +SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486 +SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538 +SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412 +SHA256 (rust/crates/winnow-0.5.14.crate) = d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97 +SIZE (rust/crates/winnow-0.5.14.crate) = 144956 +SHA256 (rust/crates/xattr-1.0.1.crate) = f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985 +SIZE (rust/crates/xattr-1.0.1.crate) = 12258 +SHA256 (rust/crates/zip-0.6.6.crate) = 760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261 +SIZE (rust/crates/zip-0.6.6.crate) = 65789 +SHA256 (rosenpass-rosenpass-v0.2.0_GH0.tar.gz) = 11ed1f8d91ce7dbfc905293306c93aebf54d55a342f325b62f0d6bd0634c69d0 +SIZE (rosenpass-rosenpass-v0.2.0_GH0.tar.gz) = 4868563 diff --git a/net/rosenpass/files/patch-cargo-crates_oqs-sys-0.8.0_liboqs_CMakeLists.txt b/net/rosenpass/files/patch-cargo-crates_oqs-sys-0.8.0_liboqs_CMakeLists.txt new file mode 100644 index 000000000000..4ff03e4621c9 --- /dev/null +++ b/net/rosenpass/files/patch-cargo-crates_oqs-sys-0.8.0_liboqs_CMakeLists.txt @@ -0,0 +1,29 @@ +--- cargo-crates/oqs-sys-0.8.0/liboqs/CMakeLists.txt.orig 2023-09-10 06:30:42 UTC ++++ cargo-crates/oqs-sys-0.8.0/liboqs/CMakeLists.txt +@@ -49,7 +49,7 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64" + if(${OQS_DIST_BUILD}) + set(OQS_DIST_X86_64_BUILD ON) + endif() +-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86|i586|i686") ++elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86|i386|i586|i686") + set(ARCH "i586") + set(ARCH_X86 ON) + if(${OQS_DIST_BUILD}) +@@ -61,7 +61,7 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|a + if(${OQS_DIST_BUILD}) + set(OQS_DIST_ARM64_V8_BUILD ON) + endif() +-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "armel|armhf|armv7|arm32v7") ++elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "armel|armhf|armv6|armv7|arm32v7") + set(ARCH "arm32v7") + set(ARCH_ARM32v7 ON) + if(${OQS_DIST_BUILD}) +@@ -86,7 +86,7 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "s390x") + if(${OQS_DIST_BUILD}) + set(OQS_DIST_S390X_BUILD ON) + endif() +-elseif(OQS_PERMIT_UNSUPPORTED_ARCHITECTURE) ++elseif(OQS_PERMIT_UNSUPPORTED_ARCHITECTURE OR TRUE) + message(WARNING "Unknown or unsupported processor: " ${CMAKE_SYSTEM_PROCESSOR}) + message(WARNING "Compilation on an unsupported processor should only be used for testing, as it may result an insecure configuration, for example due to variable-time instructions leaking secret information.") + else() diff --git a/net/rosenpass/files/patch-rp b/net/rosenpass/files/patch-rp new file mode 100644 index 000000000000..2236ebe19b4b --- /dev/null +++ b/net/rosenpass/files/patch-rp @@ -0,0 +1,37 @@ +--- rp.orig 2023-08-29 21:48:48 UTC ++++ rp +@@ -1,4 +1,4 @@ +-#!/usr/bin/env bash ++#!%%BASH%% + + set -e + +@@ -78,7 +78,7 @@ frag_init() { + explain=0 + frag_transaction=() + frag " +- #! /bin/bash ++ #!%%BASH%% + set -e" + } + +@@ -223,7 +223,7 @@ exchange() { + ip link set dev $(enquote "${dev}") up" + ;; + +- freebsd*) ++ freebsd*|FreeBSD*) + frag " + # load the WireGuard kernel module + kldload -n if_wg || fatal 'Cannot load if_wg kernel module'" +@@ -351,10 +351,6 @@ main() { + project_name="rosenpass" + verbose=0 + scriptdir="$(dirname "${script}")" +- gitdir="$(detect_git_dir)" || true +- if [[ -d /nix ]]; then +- nixdir="$(readlink -f result/bin/rp | grep -Pio '^/nix/store/[^/]+(?=/bin/[^/]+)')" || true +- fi + binary="$(find_rosenpass_binary)" + + # Parse command diff --git a/net/rosenpass/pkg-descr b/net/rosenpass/pkg-descr new file mode 100644 index 000000000000..702f00bf235c --- /dev/null +++ b/net/rosenpass/pkg-descr @@ -0,0 +1,23 @@ +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 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.