Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 9 additions & 3 deletions .github/workflows/benches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,15 @@ name: Benches on demand
on: workflow_dispatch

jobs:
bench-classic:
uses: Cosmian/reusable_workflows/.github/workflows/cargo-bench.yml@develop
bench-MLKEM512-Curve25519:
uses: Cosmian/reusable_workflows/.github/workflows/cargo-bench.yml@fix/remove-default-features-in-benches
with:
toolchain: stable
features: test-utils
features: test-utils,mlkem-512,curve25519
force: true
bench-MLKEM512-P256:
uses: Cosmian/reusable_workflows/.github/workflows/cargo-bench.yml@fix/remove-default-features-in-benches
with:
toolchain: stable
features: test-utils,mlkem-512,p-256
force: true
8 changes: 5 additions & 3 deletions src/abe_policy/access_structure.rs
Original file line number Diff line number Diff line change
Expand Up @@ -309,10 +309,12 @@ impl AccessStructure {
}
}

/// Combines all attributes IDs from the given dimensions using at most one attribute for each
/// dimensions. Returns the disjunction of the associated hybridization and activation status.
/// Combines all attributes IDs from the given dimensions using at most one
/// attribute for each dimensions. Returns the disjunction of the associated
/// hybridization and activation status.
///
/// As an example, if dimensions D1::A1 and D2::(A2,B2) are given, the following combinations will be created:
/// As an example, if dimensions D1::A1 and D2::(A2,B2) are given, the following
/// combinations will be created:
/// - D1::A1
/// - D1::A1 && D2::A2
/// - D1::A1 && D2::B2
Expand Down
3 changes: 2 additions & 1 deletion src/core/primitives.rs
Original file line number Diff line number Diff line change
Expand Up @@ -380,11 +380,12 @@ fn h_decaps(
let mut encs = encs.iter().collect::<Vec<_>>();
shuffle(&mut encs, rng);

// Loop order matters: this ordering is faster.
for mut revision in usk.secrets.revisions() {
// Shuffle secrets to counter timing attacks attempting to determine
// whether successive encapsulations target the same user right.
shuffle(&mut revision, rng);

// Loop order matters: this ordering is faster.
for (E, F) in &encs {
for (_, secret) in &revision {
if let RightSecretKey::Hybridized { sk, dk } = secret {
Expand Down
Loading