Trait snarkvm_marlin::fiat_shamir::traits::FiatShamirRng
source · [−]pub trait FiatShamirRng<TargetField: PrimeField, BaseField: PrimeField>: Clone + Debug + RngCore {
type Parameters;
fn sample_params() -> Self::Parameters;
fn new() -> Self;
fn with_parameters(params: &Self::Parameters) -> Self;
fn absorb_nonnative_field_elements(
&mut self,
elements: &[TargetField],
ty: OptimizationType
);
fn absorb_native_field_elements<T: ToConstraintField<BaseField>>(
&mut self,
elements: &[T]
);
fn absorb_bytes(&mut self, elements: &[u8]);
fn squeeze_nonnative_field_elements(
&mut self,
num: usize,
ty: OptimizationType
) -> Result<Vec<TargetField>, FiatShamirError>;
fn squeeze_native_field_elements(
&mut self,
num: usize
) -> Result<SmallVec<[BaseField; 10]>, FiatShamirError>;
fn squeeze_128_bits_nonnative_field_elements(
&mut self,
num: usize
) -> Result<Vec<TargetField>, FiatShamirError>;
}
Expand description
Trait for a Fiat-Shamir RNG.
Associated Types
type Parameters
Required methods
fn sample_params() -> Self::Parameters
fn sample_params() -> Self::Parameters
Samples parameters.
fn with_parameters(params: &Self::Parameters) -> Self
fn with_parameters(params: &Self::Parameters) -> Self
Initializes an RNG with the provided parameters.
fn absorb_nonnative_field_elements(
&mut self,
elements: &[TargetField],
ty: OptimizationType
)
fn absorb_nonnative_field_elements(
&mut self,
elements: &[TargetField],
ty: OptimizationType
)
Takes in field elements.
fn absorb_native_field_elements<T: ToConstraintField<BaseField>>(
&mut self,
elements: &[T]
)
fn absorb_native_field_elements<T: ToConstraintField<BaseField>>(
&mut self,
elements: &[T]
)
Takes in field elements.
fn absorb_bytes(&mut self, elements: &[u8])
fn absorb_bytes(&mut self, elements: &[u8])
Takes in bytes.
fn squeeze_nonnative_field_elements(
&mut self,
num: usize,
ty: OptimizationType
) -> Result<Vec<TargetField>, FiatShamirError>
fn squeeze_nonnative_field_elements(
&mut self,
num: usize,
ty: OptimizationType
) -> Result<Vec<TargetField>, FiatShamirError>
Takes out field elements.
fn squeeze_native_field_elements(
&mut self,
num: usize
) -> Result<SmallVec<[BaseField; 10]>, FiatShamirError>
fn squeeze_native_field_elements(
&mut self,
num: usize
) -> Result<SmallVec<[BaseField; 10]>, FiatShamirError>
Takes in field elements.
fn squeeze_128_bits_nonnative_field_elements(
&mut self,
num: usize
) -> Result<Vec<TargetField>, FiatShamirError>
fn squeeze_128_bits_nonnative_field_elements(
&mut self,
num: usize
) -> Result<Vec<TargetField>, FiatShamirError>
Takes out field elements of 128 bits.