#![cfg_attr(not(test), warn(unused_crate_dependencies))]
use eddsa_babyjubjub::EdDSAPrivateKey;
use world_id_primitives::{
TREE_DEPTH, authenticator::AuthenticatorPublicKeySet, merkle::MerkleInclusionProof,
};
use zeroize::{Zeroize, ZeroizeOnDrop};
pub(crate) mod oprf_query;
pub use oprf_query::{FullOprfOutput, OprfEntrypoint};
pub mod proof;
#[derive(Zeroize, ZeroizeOnDrop)]
pub struct AuthenticatorProofInput {
#[zeroize(skip)]
key_set: AuthenticatorPublicKeySet,
#[zeroize(skip)]
inclusion_proof: MerkleInclusionProof<TREE_DEPTH>,
private_key: EdDSAPrivateKey,
key_index: u64,
}
impl AuthenticatorProofInput {
#[must_use]
pub const fn new(
key_set: AuthenticatorPublicKeySet,
inclusion_proof: MerkleInclusionProof<TREE_DEPTH>,
private_key: EdDSAPrivateKey,
key_index: u64,
) -> Self {
Self {
key_set,
inclusion_proof,
private_key,
key_index,
}
}
}