Files
voprf-vx/src/tests/helpers.rs
T
breakingbread 146c78f23a
Rust CI / cargo fmt (pull_request) Successful in 2s
Rust CI / cargo clippy (pull_request) Successful in 25s
Rust CI / test (1.87.0 / no backend / no frontend) (pull_request) Successful in 1m22s
Rust CI / test (stable / no backend / no frontend) (pull_request) Successful in 1m18s
Rust CI / test (1.87.0 / no backend / --features danger) (pull_request) Successful in 1m22s
Rust CI / test (stable / no backend / --features danger) (pull_request) Successful in 1m18s
Rust CI / test (1.87.0 / no backend / --features serde) (pull_request) Successful in 1m30s
Rust CI / test (stable / no backend / --features serde) (pull_request) Successful in 1m22s
Rust CI / test (1.87.0 / --features ristretto255-ciphersuite / no frontend) (pull_request) Successful in 1m35s
Rust CI / test (stable / --features ristretto255-ciphersuite / no frontend) (pull_request) Successful in 1m27s
Rust CI / test (1.87.0 / --features ristretto255-ciphersuite / --features danger) (pull_request) Successful in 1m35s
Rust CI / test (stable / --features ristretto255-ciphersuite / --features danger) (pull_request) Successful in 1m28s
Rust CI / test (1.87.0 / --features ristretto255-ciphersuite / --features serde) (pull_request) Successful in 1m35s
Rust CI / test (stable / --features ristretto255-ciphersuite / --features serde) (pull_request) Successful in 1m28s
Rust CI / cargo audit (pull_request) Successful in 4s
Rust CI / no-std (thumbv6m-none-eabi / --features ristretto255-ciphersuite) (pull_request) Successful in 14s
Rust CI / no-std (wasm32-unknown-unknown / --features ristretto255-ciphersuite) (pull_request) Successful in 13s
Rust CI / no-std (thumbv6m-none-eabi / no backend) (pull_request) Successful in 13s
Rust CI / no-std (wasm32-unknown-unknown / no backend) (pull_request) Successful in 13s
release: 1.0.0
- Deduplicate serialization with impl_serde_scalar, impl_serde_elem, and impl_serde_scalar_elem macros
- Move finalize_after_unblind to common.rs, shared by OPRF and VOPRF
- Add shared test helpers (test_all_curves macro, prf function)
- Update dependencies to stable releases
2026-07-08 13:34:54 +02:00

26 lines
665 B
Rust

// SPDX-License-Identifier: MIT OR Apache-2.0
// Copyright (c) VexaHub and contributors.
use core::iter;
use digest::Output;
use crate::common::{Dst, Mode, STR_HASH_TO_GROUP, finalize_after_unblind};
use crate::{CipherSuite, Group};
pub(crate) fn prf<CS: CipherSuite>(
input: &[u8],
key: <CS::Group as Group>::Scalar,
mode: Mode,
) -> Output<CS::Hash> {
let dst = Dst::new::<CS, _>(STR_HASH_TO_GROUP, mode);
let point = CS::Group::hash_to_curve::<CS::Hash>(&[input], &dst.as_dst()).unwrap();
let res = point * &key;
finalize_after_unblind::<CS, _, _>(iter::once((input, res)))
.next()
.unwrap()
.unwrap()
}