Implements complete registration + login flow: - Registration: Client/Server exchange PCG seeds (once) - Login: Single-round (pcg_index + masked_input → evaluation) New types: - VoleRegistrationRequest/Response - PCG seed exchange - VoleUserRecord - Server's stored user data - VoleClientCredential - Client's stored credential - VoleLoginRequest/Response - Single-round login messages Key properties: - Single-round online phase after registration - Perfect privacy (server cannot fingerprint users) - ~4KB round-trip (vs ~8KB for Ring-LPR) - Deterministic OPRF output (LWR guaranteed) - Wrong password correctly rejected All 211 tests passing.
51 lines
2.0 KiB
Rust
51 lines
2.0 KiB
Rust
pub mod fast_oprf;
|
|
pub mod hybrid;
|
|
pub mod leap_oprf;
|
|
pub mod ot;
|
|
pub mod ring;
|
|
pub mod ring_lpr;
|
|
#[cfg(test)]
|
|
mod security_proofs;
|
|
pub mod unlinkable_oprf;
|
|
pub mod vole_oprf;
|
|
pub mod voprf;
|
|
|
|
pub use ring::{
|
|
RING_N, RingElement, deterministic_round, hash_from_ring, hash_to_ring, ring_multiply,
|
|
};
|
|
pub use ring_lpr::{
|
|
BlindedInput, ClientState, EvaluatedOutput, OPRF_OUTPUT_LEN, RingLprKey, client_blind,
|
|
client_finalize as ring_lpr_finalize, client_finalize_with_id, prf_evaluate,
|
|
server_evaluate as ring_lpr_evaluate, server_evaluate_with_id,
|
|
};
|
|
|
|
pub use hybrid::{
|
|
BlindedElement, EvaluatedElement, OprfClient, OprfServer, client_finalize, server_evaluate,
|
|
};
|
|
|
|
pub use voprf::{
|
|
CommittedKey, EvaluationProof, KeyCommitment, VerifiableOutput, voprf_evaluate, voprf_verify,
|
|
};
|
|
|
|
pub use unlinkable_oprf::{
|
|
UnlinkableBlindedInput, UnlinkableClientState, UnlinkableOprfOutput, UnlinkablePublicParams,
|
|
UnlinkableServerKey, UnlinkableServerResponse, client_blind_unlinkable,
|
|
client_finalize_unlinkable, evaluate_unlinkable, server_evaluate_unlinkable,
|
|
};
|
|
|
|
pub use leap_oprf::{
|
|
LeapClientCommitment, LeapClientMessage, LeapClientState, LeapOprfOutput, LeapPublicParams,
|
|
LeapServerChallenge, LeapServerKey, LeapServerResponse, client_blind as leap_client_blind,
|
|
client_commit as leap_client_commit, client_finalize as leap_client_finalize, evaluate_leap,
|
|
server_challenge as leap_server_challenge, server_evaluate as leap_server_evaluate,
|
|
};
|
|
|
|
pub use vole_oprf::{
|
|
PcgSeed, VoleClientCredential, VoleClientMessage, VoleClientState, VoleCorrelation,
|
|
VoleLoginRequest, VoleLoginResponse, VoleOprfOutput, VoleRegistrationRequest,
|
|
VoleRegistrationResponse, VoleRingElement, VoleServerKey, VoleServerResponse, VoleUserRecord,
|
|
evaluate_vole_oprf, vole_client_blind, vole_client_finalize, vole_client_finish_registration,
|
|
vole_client_login, vole_client_start_registration, vole_client_verify_login,
|
|
vole_server_evaluate, vole_server_login, vole_server_register, vole_setup,
|
|
};
|