Skip to content
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
386 commits
Select commit Hold shift + click to select a range
b6d6e1b
bump tls_codec to 0.4.0-pre.2 (#46)
franziskuskiefer Nov 19, 2023
1992998
bump tls_codec to 0.4.0-pre.2
franziskuskiefer Nov 20, 2023
67e0e44
disable publishing evercrypt provider
franziskuskiefer Nov 20, 2023
ee80ca4
bump tls_codec to 0.4.0-pre.4
franziskuskiefer Nov 21, 2023
3bd14bd
v0.1.2
franziskuskiefer Nov 21, 2023
f4568ce
switch from rand to rand_core
japaric Nov 24, 2023
58aaddf
rm unused serde_json dependency
japaric Nov 24, 2023
6d043ea
rm unused tls_codec dependency
japaric Nov 24, 2023
64b6497
rm RwLock
japaric Nov 24, 2023
a3ea3b1
use core::fmt instead of std::fmt
japaric Nov 24, 2023
116c6bd
switch from rand to rand_core
japaric Nov 24, 2023
41a8b31
disable unused (default) features in dependencies
japaric Nov 24, 2023
50463d5
Merge pull request #47 from japaric/crypto-deps
franziskuskiefer Nov 26, 2023
d3b0d52
Merge branch 'main' into rust-crypto-no-std
franziskuskiefer Nov 26, 2023
545caa6
Merge pull request #48 from japaric/rust-crypto-no-std
franziskuskiefer Nov 26, 2023
70a6797
hpke-rs-crypto: make serde opt-in
japaric Nov 24, 2023
5e3f3c7
rm getrandom dep
japaric Nov 27, 2023
053eb58
rm Hpke's internal RwLock
japaric Nov 27, 2023
bb5755b
use core:: API instead of std:: re-exports
japaric Nov 27, 2023
dcd6545
switch from the std prelude to the core prelude
japaric Nov 27, 2023
3687aeb
add an opt-out "std" Cargo feature
japaric Nov 27, 2023
6e76bd9
rm unused serde_json feature
japaric Nov 27, 2023
db34854
Merge pull request #49 from japaric/opt-in-serde
franziskuskiefer Nov 27, 2023
8c129c7
Merge branch 'main' into rm-getrandom-js
franziskuskiefer Nov 27, 2023
ff99123
use core::{fmt,convert} instead of the std re-export
japaric Nov 24, 2023
6cf4660
put Error impl behind a std feature
japaric Nov 24, 2023
16dba5c
import collections from alloc
japaric Nov 24, 2023
a969932
enable std feature when running benchmarks
japaric Nov 27, 2023
3569324
switch from the core prelude to the std prelude
japaric Nov 27, 2023
4a8cf19
Merge pull request #50 from japaric/crypto-no-std
franziskuskiefer Nov 27, 2023
c859252
Merge pull request #53 from japaric/rm-getrandom-js
franziskuskiefer Nov 27, 2023
2b0b389
switch from x25519-dalek-ng to x25519-dalek
japaric Nov 27, 2023
b3e25d8
hpke-rs-rust-crypto: make deterministic-prng enable the std feature
japaric Nov 28, 2023
891ac04
Merge pull request #55 from japaric/rm-rwlock
franziskuskiefer Nov 29, 2023
7d557a5
Merge pull request #57 from japaric/x25519-dalek-og
franziskuskiefer Nov 29, 2023
ddf79d8
Merge pull request #58 from japaric/no-std-rust-crypto
franziskuskiefer Nov 29, 2023
8043fce
CI: check no-std support
japaric Nov 27, 2023
1b8e6b3
Merge pull request #56 from japaric/ci-no-std-support-check
franziskuskiefer Nov 29, 2023
9840581
Merge pull request #59 from japaric/fix-hpke-rs-rust-crypto-all-features
franziskuskiefer Nov 30, 2023
a681d3d
update to 0.2.0-pre.1 (#61)
franziskuskiefer Nov 30, 2023
37cdde0
v0.2.0
franziskuskiefer Dec 2, 2023
eccab6e
List correct x25519-dalek crate
marlonbaeten Jan 30, 2024
969e8d9
Merge pull request #63 from marlonbaeten/patch-1
franziskuskiefer Jan 31, 2024
a3f4c59
Don't publish test
franziskuskiefer Jul 23, 2024
bdb3aec
bump tls_codec to 0.4.1-pre.1
franziskuskiefer Jul 23, 2024
4c2d4e8
Update macos ci (#69)
franziskuskiefer Sep 4, 2024
da2abd6
Add support for secp256k1 curve (#66)
erskingardner Sep 4, 2024
7554971
Merge branch 'main' into franziskus/drop-tests-from-package
franziskuskiefer Sep 4, 2024
a377495
Merge pull request #67 from cryspen/franziskus/drop-tests-from-package
franziskuskiefer Sep 5, 2024
a266409
move evercrypt_provider to libcrux_provider
wysiwys Apr 10, 2025
668ed6a
update Cargo.toml
wysiwys Apr 10, 2025
e05cfc6
add `.gitignore`
wysiwys Apr 10, 2025
630b921
begin replacing with pure Rust crates
wysiwys Apr 10, 2025
be0eacc
formatting
wysiwys Apr 10, 2025
c3ce579
clarify documentation
wysiwys Apr 10, 2025
61d64ba
update rand dependency, traits, and provider
wysiwys Apr 10, 2025
95979de
documentation
wysiwys Apr 10, 2025
5110663
use provided prng
wysiwys Apr 10, 2025
cdbd308
formatting
wysiwys Apr 10, 2025
5584436
add todo for HpkeExport
wysiwys Apr 10, 2025
33beea2
fixup tests and providers
franziskuskiefer Apr 11, 2025
2050785
wip: add xwing-06; bug in p256
franziskuskiefer Apr 14, 2025
c5c3452
generate pk and sk separately in `kem_key_gen()`
wysiwys Apr 14, 2025
0292a93
documentation
wysiwys Apr 14, 2025
8c92871
support XWingKemDraft06 in `kem_key_gen()`
wysiwys Apr 14, 2025
908f652
add error handling
wysiwys Apr 14, 2025
ea6682f
update benchmarks
wysiwys Apr 14, 2025
dcafcc4
update benchmarks
wysiwys Apr 14, 2025
615a326
more concise way to get rng from `rand` in benchmarks
wysiwys Apr 14, 2025
cef0b9f
remove debugging statements
wysiwys Apr 14, 2025
5dc346e
wrap sha algorithm conversion
wysiwys Apr 14, 2025
a36fbd6
error handling
wysiwys Apr 14, 2025
87c5155
fix lints
wysiwys Apr 14, 2025
db5a6bc
only convert enum types when needed
wysiwys Apr 14, 2025
7b95be1
inline internal `secret_to_public` function
wysiwys Apr 14, 2025
bed0adf
remove `TODO`
wysiwys Apr 14, 2025
9dc2497
feature-gate rand std features
wysiwys Apr 15, 2025
71f780b
feature-gate hpke-rs-crypto std feature in hpke-rs
wysiwys Apr 15, 2025
0984006
remove unused dependency
wysiwys Apr 15, 2025
77013ea
replace documentation link
wysiwys Apr 15, 2025
8dabffc
remove commented line
wysiwys Apr 15, 2025
d7169be
update Cargo.toml
wysiwys Apr 15, 2025
3f95a01
enable custom getrandom backend
wysiwys Apr 15, 2025
ed9de61
support no-std in provider
wysiwys Apr 15, 2025
f997145
no-std rand dependencies (mostly)
wysiwys Apr 15, 2025
af536b6
depend on updated libcrux dependencies in new dev branch
wysiwys Apr 15, 2025
24f7ec3
documentation
wysiwys Apr 15, 2025
8123189
update repo links in `Cargo.toml` files
wysiwys Apr 15, 2025
271a30d
replace references to evercrypt
wysiwys Apr 15, 2025
55157bc
add error handling and tests
wysiwys Apr 15, 2025
31bdf6e
remove executable permission on files
wysiwys Apr 16, 2025
4c52dcd
test that libcrux provider does not support these algorithms
wysiwys Apr 16, 2025
0d88efe
add chacha20poly1305 test
wysiwys Apr 16, 2025
19dbd2d
add std feature to libcrux provider
wysiwys Apr 16, 2025
31f5b20
depend on `main` branch of libcrux
wysiwys Apr 16, 2025
4c87442
[CI] Update code coverage workflow (#74)
wysiwys Apr 16, 2025
a011dec
Merge branch 'main' into wysiwys/hpke-rs-libcrux
wysiwys Apr 16, 2025
7d9776f
fix permissions on `.gitignore`
wysiwys Apr 16, 2025
03365d4
error handling
wysiwys Apr 16, 2025
523a321
update CHANGELOG
wysiwys Apr 16, 2025
9e534d9
clarify text
wysiwys Apr 16, 2025
39f98c5
update version and changelog
wysiwys Apr 16, 2025
f3e4663
minor version
wysiwys Apr 16, 2025
1f8d8e7
more changelog updates
wysiwys Apr 16, 2025
adb2ba3
update version
wysiwys Apr 16, 2025
2657af2
reset changelog for new crate
wysiwys Apr 16, 2025
d4feb69
formatting
wysiwys Apr 16, 2025
919220e
remove unimplemented item
wysiwys Apr 16, 2025
f14e1c2
Merge pull request #72 from cryspen/wysiwys/hpke-rs-libcrux
wysiwys Apr 16, 2025
5bc6592
Merge branch 'main' into wysiwys/fix-rust-crypto-panic
wysiwys Apr 17, 2025
a32a2d8
Merge pull request #73 from cryspen/wysiwys/fix-rust-crypto-panic
wysiwys Apr 17, 2025
a474c4e
updated tls_codec dep
franziskuskiefer Apr 23, 2025
2a59e32
rust crypto: drop unused dependency
franziskuskiefer Apr 23, 2025
48e0528
split kats
franziskuskiefer Apr 23, 2025
74ed85c
keep rand dependency for benchmarks
franziskuskiefer Apr 23, 2025
ea031ea
Merge pull request #75 from cryspen/franziskus/v0.2.1-prep
franziskuskiefer Apr 25, 2025
80151a3
Update Readme.md
franziskuskiefer Apr 25, 2025
42dc11e
expose hpke types from trait
franziskuskiefer Apr 25, 2025
2b77e59
features for crypto providers
franziskuskiefer Apr 25, 2025
2b62f4f
re-export the crypto crates
franziskuskiefer Apr 25, 2025
e095085
put providers' `std` features behind feature gate
wysiwys May 19, 2025
3664814
formatting
wysiwys May 19, 2025
6617df2
update changelog
franziskuskiefer May 19, 2025
7c1cfff
Merge pull request #77 from cryspen/franziskus/more-apis
franziskuskiefer May 20, 2025
a6c501a
update `libcrux-chacha20poly1305` dependency
wysiwys May 26, 2025
b109bde
formatting
wysiwys May 26, 2025
ab9c613
add crates to publish to workspace
wysiwys May 26, 2025
7eca1db
simplify release script
wysiwys May 26, 2025
001e9dc
only allow branch main
wysiwys May 26, 2025
ee2b73d
ignore this crate in workspace
wysiwys May 26, 2025
4253e7a
use released crates
wysiwys May 27, 2025
075e865
release script documentation
wysiwys May 27, 2025
20d268b
Merge pull request #82 from cryspen:wysiwys/release-prep
franziskuskiefer May 28, 2025
6ed6515
treat provider dependencies as optional
wysiwys Jun 4, 2025
9af1f16
Merge pull request #84 from cryspen/wysiwys/release-prep
franziskuskiefer Jun 4, 2025
f168b5c
bump `hpke_rs` version
wysiwys Jun 4, 2025
9d735b9
libcrux: bump to latest pre-release verison
franziskuskiefer Jun 23, 2025
c9ddfd9
Merge pull request #85 from cryspen/wysiwys/more-release-prep
franziskuskiefer Jun 23, 2025
e7d333a
chore: Release
franziskuskiefer Jun 23, 2025
a370201
0.3.0 release
franziskuskiefer Jul 1, 2025
3683f6c
fixup changelog
franziskuskiefer Jul 1, 2025
d4ba4d3
Merge pull request #86 from cryspen/franziskus/0.3.0-release
franziskuskiefer Jul 1, 2025
0f29d52
docs: add more supported KEMs to Readme
cpu Jul 1, 2025
7ed44ee
Merge pull request #87 from cpu/cpu-readme-kem-updates
franziskuskiefer Jul 9, 2025
fed18fa
docs: add example
franziskuskiefer Sep 22, 2025
8aa4845
update ci
franziskuskiefer Sep 22, 2025
d8d6094
add dependabot
franziskuskiefer Sep 22, 2025
322d9a9
Merge pull request #88 from cryspen/franziskus/example
franziskuskiefer Sep 22, 2025
eba4913
Update criterion requirement from 0.5 to 0.7
dependabot[bot] Sep 22, 2025
a55a506
Bump peaceiris/actions-gh-pages from 3 to 4
dependabot[bot] Sep 22, 2025
2feb32e
Bump actions/checkout from 2 to 5
dependabot[bot] Sep 22, 2025
04f4b75
Merge pull request #89 from cryspen/dependabot/cargo/criterion-0.7
franziskuskiefer Sep 23, 2025
d93e7c5
Merge pull request #90 from cryspen/dependabot/github_actions/peaceir…
franziskuskiefer Sep 23, 2025
7065b55
Merge branch 'main' into dependabot/github_actions/actions/checkout-5
franziskuskiefer Sep 23, 2025
e9ce222
Merge pull request #91 from cryspen/dependabot/github_actions/actions…
franziskuskiefer Sep 23, 2025
2285204
Update libcrux-kem requirement from 0.0.3 to 0.0.4
dependabot[bot] Nov 10, 2025
6a14007
Update libcrux-sha3 requirement from 0.0.3 to 0.0.4
dependabot[bot] Nov 10, 2025
eefbf59
Merge pull request #92 from cryspen/dependabot/cargo/libcrux-kem-0.0.4
franziskuskiefer Nov 10, 2025
582b897
Update libcrux-chacha20poly1305 requirement from 0.0.3 to 0.0.4
dependabot[bot] Nov 10, 2025
918ce28
Update libcrux-hkdf requirement from 0.0.3 to 0.0.4
dependabot[bot] Nov 10, 2025
cc10939
Update `libcrux_hkdf::extract/expand` call sites to 0.0.4 API
jschneider-bensch Nov 11, 2025
9b2e873
Merge pull request #93 from cryspen/dependabot/cargo/libcrux-hkdf-0.0.4
franziskuskiefer Nov 11, 2025
9fef354
Merge pull request #94 from cryspen/dependabot/cargo/libcrux-chacha20…
franziskuskiefer Nov 11, 2025
14ec4db
Merge pull request #96 from cryspen/dependabot/cargo/libcrux-sha3-0.0.4
franziskuskiefer Nov 11, 2025
5678d89
Update libcrux-ecdh requirement from 0.0.3 to 0.0.4
dependabot[bot] Nov 11, 2025
4a7d2ab
Merge pull request #95 from cryspen/dependabot/cargo/libcrux-ecdh-0.0.4
franziskuskiefer Nov 11, 2025
ff29f65
Add AES-GCM support to libcrux provider (#98)
wysiwys Nov 17, 2025
85f385f
Bump actions/checkout from 5 to 6 (#99)
dependabot[bot] Nov 24, 2025
e41c046
Update criterion requirement from 0.7 to 0.8 (#100)
dependabot[bot] Dec 1, 2025
42ed743
release: bump to 0.4.0-beta.1
franziskuskiefer Dec 1, 2025
94e04a0
release: bump to 0.4.0-beta.1
franziskuskiefer Dec 1, 2025
dee39e5
release: bump to 0.4.0
franziskuskiefer Dec 1, 2025
76bb02a
use macos-15-intel (#104)
franziskuskiefer Dec 15, 2025
a4b38d3
fix XWing algorithm ID
franziskuskiefer Dec 15, 2025
b1641c6
Change name `XWingDraft06Hpke` -> `XWingDraft06Obsolete` & deprecate it
jschneider-bensch Dec 15, 2025
2fd8459
Merge pull request #103 from cryspen/franziskus/fix-xwing-id
jschneider-bensch Dec 15, 2025
d2b6e61
release 0.5 (#105)
franziskuskiefer Dec 17, 2025
0cdccc6
Update libcrux-sha3 requirement from 0.0.4 to 0.0.5 (#108)
dependabot[bot] Jan 20, 2026
6cf5a15
Update libcrux dependencies (#114)
jschneider-bensch Jan 29, 2026
faf5ed6
Update changelog.md
franziskuskiefer Feb 2, 2026
f99fd7a
chore: Release
franziskuskiefer Feb 2, 2026
02f7d27
Merge pull request #115 from cryspen/franziskus/0.5.1-release-prep
franziskuskiefer Feb 2, 2026
8d60948
chore: Release
franziskuskiefer Feb 2, 2026
ca92739
Merge pull request #116 from cryspen/franziskus/0.5.1-release-prep2
franziskuskiefer Feb 2, 2026
8dfe4ec
bump rand crate versions
franziskuskiefer Feb 9, 2026
f1f3cf8
Merge pull request #122 from cryspen/franziskus/bump-rand
franziskuskiefer Feb 9, 2026
381f394
check context sequence number for overflow
franziskuskiefer Feb 9, 2026
0657043
rc provider: check x25519 0 keys
franziskuskiefer Feb 9, 2026
0de23a3
Apply suggestions from code review
franziskuskiefer Feb 9, 2026
faed51f
Update rust_crypto_provider/src/lib.rs
franziskuskiefer Feb 9, 2026
231f476
Merge pull request #123 from cryspen/franziskus/ctr
franziskuskiefer Feb 9, 2026
9c6557f
Merge pull request #124 from cryspen/franziskus/rc-provider-update
franziskuskiefer Feb 9, 2026
f11b165
switch to subtle::ConstantTimeEq and address supply chain rissk
tob-scott-a Feb 10, 2026
0ecee3d
Merge pull request #126 from tob-scott-a/main
franziskuskiefer Feb 10, 2026
816c090
add support for ML-KEM and X-Wing (#127)
tob-scott-a Feb 11, 2026
0b83fce
Fix misc issues
franziskuskiefer Feb 12, 2026
6901a0e
update changelogs
franziskuskiefer Feb 12, 2026
6494d76
update libcrux dependencies
franziskuskiefer Feb 12, 2026
807950b
update changelog
franziskuskiefer Feb 12, 2026
801cd28
update tests for release mode
franziskuskiefer Feb 12, 2026
7e62db9
Update rust_crypto_provider/Cargo.toml
franziskuskiefer Feb 12, 2026
a57b899
Merge pull request #128 from cryspen/franziskus/subtle-stuff
franziskuskiefer Feb 12, 2026
757bd6a
Merge branch 'main' into franziskus/bump-libcrux
franziskuskiefer Feb 12, 2026
b55c249
Merge pull request #129 from cryspen/franziskus/bump-libcrux
franziskuskiefer Feb 12, 2026
e24bc40
chore: Release (#130)
franziskuskiefer Feb 13, 2026
1ad40f5
chore: Release (#131)
franziskuskiefer Feb 13, 2026
17856c6
Add initial security policy and reporting guidelines (#133)
franziskuskiefer Feb 13, 2026
70e9e47
Update libcrux-sha3 requirement from 0.0.6 to 0.0.7 (#134)
dependabot[bot] Feb 16, 2026
72b430f
A few bugs found by Claude, and their fixes (#136)
karthikbhargavan Mar 6, 2026
1189200
rust-crypto-provider: disable pqc by default (#138)
franziskuskiefer Mar 18, 2026
045ab50
libcrux: fixup hkdf benchmark (#139)
franziskuskiefer Mar 18, 2026
c4c76de
Update comment in Cargo.toml (#140)
jschneider-bensch Mar 18, 2026
d6afa1d
Update libcrux dependencies (#141)
jschneider-bensch Mar 19, 2026
0b1b0c5
chore: update changelogs for 0.6.1 (#142)
franziskuskiefer Mar 20, 2026
fb51c08
chore: Release
franziskuskiefer Mar 20, 2026
848d7dc
chore: Release
franziskuskiefer Mar 20, 2026
d564dab
Bump codecov/codecov-action from 5 to 6
dependabot[bot] Mar 30, 2026
ecdaec8
feat: add gated ml-kem support to libcrux provider
kkohbrok Apr 7, 2026
98995bc
add changelog entry
kkohbrok Apr 7, 2026
3b168d6
Merge pull request #146 from kkohbrok/konrad/libcrux-ml-kem-support
franziskuskiefer Apr 7, 2026
66d8821
test: fix compilation of tests with experimental feature
boxdot Apr 13, 2026
3fd9f5c
Merge pull request #147 from kkohbrok/konrad/p_curves_from_rustcrypto…
kkohbrok Apr 21, 2026
4fb18a0
test experimental features in CI
boxdot Apr 22, 2026
bfe9b83
Merge branch 'main' into dima/fix-experimental-tests
boxdot Apr 22, 2026
8e11953
Merge pull request #149 from boxdot/dima/fix-experimental-tests
franziskuskiefer Apr 23, 2026
b8dd01d
dependabot: group PRs
franziskuskiefer Apr 27, 2026
982885d
Merge pull request #152 from cryspen/franziskus/dependabot-grouped
franziskuskiefer Apr 27, 2026
734d508
Merge pull request #143 from cryspen/dependabot/github_actions/codeco…
franziskuskiefer Apr 27, 2026
21c4aa2
feat: add p384 support (#150)
boxdot May 4, 2026
0f15914
bump libcrux and rand (#154)
franziskuskiefer May 27, 2026
f9aeac6
build(deps): bump the all-cargo group across 1 directory with 2 updates
dependabot[bot] May 27, 2026
a011092
Merge pull request #157 from cryspen/dependabot/cargo/all-cargo-765fc…
franziskuskiefer May 27, 2026
d8575cf
build(deps): bump the all-actions group across 1 directory with 2 upd…
dependabot[bot] Jun 22, 2026
199d502
cryspen -> celabs
franziskuskiefer Jun 24, 2026
2b68a76
Merge pull request #162 from celabshq/franziskus/update-domains
franziskuskiefer Jun 24, 2026
c74dc09
Merge pull request #161 from celabshq/dependabot/github_actions/all-a…
franziskuskiefer Jun 24, 2026
4ca904d
Merge hpke-rs
jschneider-bensch Jul 8, 2026
20e9db3
[libcrux] Integrate hpke-rs in workspace
jschneider-bensch Jul 8, 2026
32af11c
[hpke/CI] Move workflows
jschneider-bensch Jul 8, 2026
00bb7e3
[hpke/CI] Fix gh-pages paths
jschneider-bensch Jul 8, 2026
d3f09b1
[hpke/CI] Disable GH pages and Coverage workflows
jschneider-bensch Jul 8, 2026
a4cafbe
[hpke-rs-rust-crypto] rustfmt `pq_kem.rs`
jschneider-bensch Jul 8, 2026
dcdd7a1
[hpke-rs-crypto] rustfmt `types.rs`
jschneider-bensch Jul 8, 2026
de3c5f8
[libcrux] Depend on `hpke-rs` workspace dependency (v.0.6.1)
jschneider-bensch Jul 8, 2026
16babf4
Update crates/protocols/hpke/rust_crypto_provider/Readme.md
jschneider-bensch Jul 9, 2026
41e9a4b
Update CHANGELOG.md
jschneider-bensch Jul 9, 2026
ca49265
[hpke] Update URLs to point to libcrux repository
jschneider-bensch Jul 9, 2026
8661a8f
[CI] Pin checkout action to most recent version (v7) everywhere
jschneider-bensch Jul 9, 2026
889384a
[hpke/CI] Run workflows only when hpke-rs or its direct workspace dep…
jschneider-bensch Jul 9, 2026
fddda77
[workspace] Simplify feature selection for `libcrux-traits`
jschneider-bensch Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/hpke-benches.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: HPKE - Benchmarks

on:
push:
branches:
- '*'
pull_request:
branches: [ main ]

env:
CARGO_TERM_COLOR: always

defaults:
run:
working-directory: ./crates/protocols/hpke

jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- macos-15-intel
- macos-latest
- ubuntu-latest
- windows-latest

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v7
- name: HPKE Benchmarks
run: cargo bench manual_benches
- name: HPKE Rust Crypto Benchmarks
working-directory: ./crates/protocols/hpke/rust_crypto_provider
run: cargo bench
41 changes: 41 additions & 0 deletions .github/workflows/hpke-coverage.yml.disabled
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: HPKE - test coverage

on: [push]

defaults:
run:
working-directory: ./crates/protocols/hpke

jobs:
check:
name: coverage
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7

- uses: dtolnay/rust-toolchain@nightly
with:
components: rustc, rust-std, cargo, llvm-tools, llvm-tools-preview
- uses: baptiste0928/cargo-install@v3
with:
crate: grcov
- uses: Swatinem/rust-cache@v2
- name: Run profiling tests
run: |
mkdir -p target/debug/coverage
cargo test --no-fail-fast
env:
CARGO_INCREMENTAL: '0'
RUSTFLAGS: '-Cinstrument-coverage -Ccodegen-units=1 -Cllvm-args=--inline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests'
RUSTDOCFLAGS: '-Cinstrument-coverage -Ccodegen-units=1 -Cllvm-args=--inline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests -Z unstable-options --persist-doctests target/debug'

- name: Run grcov
id: coverage
run: grcov . -s . --binary-path ./target/debug/ -t lcov --branch --ignore-not-existing -o ./target/debug/coverage/

- name: Upload to codecov.io
uses: codecov/codecov-action@v7
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: target/debug/coverage/lcov
32 changes: 32 additions & 0 deletions .github/workflows/hpke-gh-pages.yml.disabled
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: HPKE - Deploy Docs

on:
push:
branches:
- main

defaults:
run:
working-directory: ./crates/protocols/hpke

jobs:
rustdoc:
runs-on: ubuntu-latest
steps:
- uses: hecrj/setup-rust-action@master
- uses: actions/checkout@master
- name: Build docs
run: |
cargo doc -F "std,serialization,hazmat,rustcrypto,libcrux" --no-deps
touch ../../../target/doc/hpke_rs/.nojekyll
cat > ../../../target/doc/hpke_rs/index.html <<EOF
<!doctype html>
<html><head>
<meta http-equiv="refresh" content="0; URL='hpke_rs/index.html'" />
</head></html>
EOF
- name: Deploy to Github Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ../../../target/doc/hpke_rs
34 changes: 34 additions & 0 deletions .github/workflows/hpke-ios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: HPKE - iOS

on:
push:
branches:
- '*'
pull_request:
branches: [ main ]

env:
CARGO_TERM_COLOR: always

defaults:
run:
working-directory: ./crates/protocols/hpke

jobs:
build:
runs-on: macos-15-intel

steps:
- uses: actions/checkout@v7
- name: Setup MacOS
run: |
rustup target install aarch64-apple-darwin
rustup target install aarch64-apple-ios
- name: Apple Silicon Build
run: |
cargo build --target aarch64-apple-darwin --tests --verbose
cargo build --release --target aarch64-apple-darwin --tests --verbose
- name: iOS build
run: |
cargo build --target aarch64-apple-ios --tests --verbose
cargo build --release --target aarch64-apple-ios --tests --verbose
136 changes: 136 additions & 0 deletions .github/workflows/hpke-rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
name: HPKE - Build & Test

on:
push:
branches:
- '*'
Comment thread
jschneider-bensch marked this conversation as resolved.
Outdated
pull_request:
branches: [ main ]
Comment thread
jschneider-bensch marked this conversation as resolved.
Outdated

permissions:
contents: read

env:
CARGO_TERM_COLOR: always

defaults:
run:
working-directory: ./crates/protocols/hpke

jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- macos-15-intel
- macos-latest
- ubuntu-latest
- windows-latest

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v6
Comment thread
jschneider-bensch marked this conversation as resolved.
Outdated
with:
persist-credentials: false
- name: Run tests all features
run: cargo test --verbose --no-default-features -F "std,serialization,hazmat,rustcrypto,libcrux,experimental"
# Release
- name: Build Release
run: cargo build --release --verbose
- name: Run tests all features
run: cargo test --release --verbose -F "std,serialization,hazmat,rustcrypto,libcrux"
# Debug
- name: Build Debug
run: cargo build --verbose
- name: Run tests all features
run: cargo test --verbose -F "std,serialization,hazmat,rustcrypto,libcrux"
# RC Provider
- name: Build Debug RC provider all features
working-directory: ./crates/protocols/hpke/rust_crypto_provider
run: cargo build --verbose -F "std"
# Apple Silicon
- if: matrix.os == 'macos-15-intel'
run: |
rustup target install aarch64-apple-darwin
rustup target install aarch64-apple-ios
- name: Build
run: cargo build --verbose
- name: Apple Silicon Build
if: matrix.os == 'macos-15-intel'
run: |
cargo build --target aarch64-apple-darwin --tests --verbose
cargo build --release --target aarch64-apple-darwin --tests --verbose
# ARM64 iOS
- name: iOS aarch64
if: matrix.os == 'macos-15-intel'
run: |
cargo build --target aarch64-apple-ios --tests --verbose
cargo build --release --target aarch64-apple-ios --tests --verbose
cross-build:
runs-on: ubuntu-latest
strategy:
matrix:
include:
# 32-bit Linux
- target: i686-unknown-linux-gnu
rust: stable
deps: sudo apt update && sudo apt install gcc-multilib
# wasm
- target: wasm32-unknown-unknown
rust: stable
# ARM64 Android
- target: aarch64-linux-android
rust: stable
# ARM64 iOS
- target: aarch64-apple-ios
rust: stable
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
with:
toolchain: ${{ matrix.rust }}
target: ${{ matrix.target }}
- run: ${{ matrix.deps }}
- run: cargo build --target ${{ matrix.target }}
- run: cargo build --target ${{ matrix.target }} --release

fuzz:
strategy:
fail-fast: false
matrix:
os:
- macos-15-intel
- ubuntu-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v6
with:
persist-credentials: false
- name: Install latest nightly
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
with:
toolchain: nightly
- name: Install cargo-fuzz
run: cargo install cargo-fuzz
- name: Fuzz Base w/ RustCrypto
run: cargo fuzz run base -- -runs=10000

no-std-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v6
with:
persist-credentials: false
# we use a target that lacks a pre-compiled libstd to check if any dependency is using libstd
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
with:
toolchain: stable
targets: thumbv7em-none-eabihf
- name: build crates in no-std mode
run: cargo check --target thumbv7em-none-eabihf
working-directory: ./crates/protocols/hpke/no-std-support-check
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- [#1505](https://github.com/cryspen/libcrux/pull/1505): Update dependency: `hpke-rs`
Comment thread
jschneider-bensch marked this conversation as resolved.
Outdated
- (libcrux-traits, libcrux-sha3, libcrux-sha2, libcrux-blake2) [#1493](https://github.com/cryspen/libcrux/pull/1493): `finish` methods on digest traits consume the hasher
- (libcrux-secrets) [#1446](https://github.com/cryspen/libcrux/pull/1446): Remove const qualifier of secret types constructors
- (libcrux-secrets) [#1462](https://github.com/cryspen/libcrux/pull/1462): More robust casts instead of transmutes when checking secret independence
Expand Down
18 changes: 14 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ members = [
"crates/algorithms/sha3",
"crates/primitives/aead",
"crates/primitives/digest",
"crates/protocols/hpke",
"crates/protocols/hpke/libcrux_provider",
"crates/protocols/hpke/rust_crypto_provider",
"crates/protocols/hpke/traits",
"crates/sys/platform",
"crates/testing/kats",
"crates/utils/core-models",
Expand Down Expand Up @@ -114,14 +118,20 @@ libcrux-digest = { version = "=0.0.8", path = "crates/primitives/digest" }
libcrux-rsa = { version = "=0.0.7", path = "crates/algorithms/rsa" }
libcrux-sha2 = { version = "=0.0.7", path = "crates/algorithms/sha2" }
libcrux-sha3 = { version = "=0.0.9", path = "crates/algorithms/sha3" }
libcrux-traits = { version = "=0.0.7", path = "traits" }
libcrux-kem = { version = "=0.0.8", path = "libcrux-kem" }
libcrux-ml-dsa = { version = "=0.0.9", path = "libcrux-ml-dsa" }
libcrux-platform = { version = "=0.0.3", path = "crates/sys/platform" }
libcrux-psq = { version = "=0.0.9", path = "libcrux-psq" }

# HPKE
hpke-rs = { version = "=0.6.1", path = "crates/protocols/hpke" }
hpke-rs-crypto = { version = "=0.6.1", path = "crates/protocols/hpke/traits", default-features = false }
hpke-rs-rust-crypto = { version = "=0.6.1", path = "crates/protocols/hpke/rust_crypto_provider", default-features = false }
hpke-rs-libcrux = { version = "=0.6.1", path = "crates/protocols/hpke/libcrux_provider", default-features = false }

# For the crates below it is necessary to set `default-features = true`
# in workspace crates that depend on the default feature set.
libcrux-kem = { version = "=0.0.8", path = "libcrux-kem", default-features = false }
Comment thread
jschneider-bensch marked this conversation as resolved.
libcrux-traits = { version = "=0.0.7", path = "traits", default-features = false }
libcrux-ecdh = { version = "=0.0.7", path = "libcrux-ecdh", default-features = false }
libcrux-curve25519 = { version = "=0.0.7", path = "crates/algorithms/curve25519", default-features = false }
libcrux-ml-kem = { version = "=0.0.9", path = "libcrux-ml-kem", default-features = false }
Expand Down Expand Up @@ -207,12 +217,12 @@ getrandom = { version = "0.4", optional = true }
hax-lib.workspace = true

# External Cryspen code.
hpke-rs = { version = "0.6", features = ["libcrux"] }
hpke-rs = { workspace = true, features = ["libcrux"] }

# Primitives
libcrux-aead.workspace = true
libcrux-digest.workspace = true
libcrux-kem.workspace = true
libcrux-kem = { workspace = true, default-features = true }

# Algorithms
libcrux-aes.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ libcrux-chacha20poly1305 = { path = "../crates/algorithms/chacha20poly1305" }
libcrux-ecdh = { path = "../libcrux-ecdh" }
libcrux-ecdsa = { path = "../crates/algorithms/ecdsa" }
libcrux-ed25519 = { path = "../crates/algorithms/ed25519" }
libcrux-kem = { path = "../libcrux-kem", features = ["tests"] }
libcrux-kem = { path = "../libcrux-kem", features = ["tests"], default-features = true }
libcrux-ml-kem = { path = "../libcrux-ml-kem" }
libcrux-rsa = { path = "../crates/algorithms/rsa" }
libcrux-sha2 = { path = "../crates/algorithms/sha2" }
Expand Down
2 changes: 1 addition & 1 deletion crates/algorithms/aes/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ bench = false # so libtest doesn't eat the arguments to criterion
[dependencies]
libcrux-intrinsics.workspace = true
libcrux-platform.workspace = true
libcrux-traits.workspace = true
libcrux-traits = { workspace = true, default-features = true }
libcrux-secrets.workspace = true

[features]
Expand Down
2 changes: 1 addition & 1 deletion crates/algorithms/aes/fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ version = "0.0.0"
cargo-fuzz = true

[dependencies]
libcrux-traits.workspace = true
libcrux-traits = { workspace = true, default-features = true }
libfuzzer-sys = "0.4"

[dependencies.libcrux-aes]
Expand Down
4 changes: 2 additions & 2 deletions crates/algorithms/blake2/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ default = ["std"]
[dependencies]
libcrux-hacl-rs.workspace = true
libcrux-macros.workspace = true
libcrux-traits.workspace = true
libcrux-traits = { workspace = true, default-features = true }

[dev-dependencies]
criterion = "0.8"
rand = "0.10"
libcrux-traits = { workspace = true, features = ["generic-tests"] }
libcrux-traits = { workspace = true, default-features = true, features = ["generic-tests"] }

[[bench]]
name = "blake2"
Expand Down
2 changes: 1 addition & 1 deletion crates/algorithms/chacha20poly1305/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ libcrux-poly1305 = { version = "=0.0.6", path = "../poly1305/", features = [
] }
libcrux-hacl-rs.workspace = true
libcrux-macros = { version = "=0.0.3", path = "../../utils/macros" }
libcrux-traits.workspace = true
libcrux-traits = { workspace = true, default-features = true }
libcrux-secrets.workspace = true

[dev-dependencies]
Expand Down
Loading
Loading