[−][src]Function classygroup::create_discriminant
pub fn create_discriminant(seed: &[u8], length: u64) -> Mpz
Create a discriminant from a seed (a byte string) and a bit length (a
u16
). The discriminant is guaranteed to be a negative prime number that
fits in length
bits, except with negligible probability (less than
2^(-100)). It is also guaranteed to equal 7 modulo 8.
This function uses Shake128 as an extensible output function to expand the seed.
Therefore, different seeds will result in completely different discriminants with
overwhelming probability, unless length
is very small. However, this function is
deterministic: if it is called twice with identical seeds and lengths, it
will always return the same discriminant.
This function is guaranteed not to panic for any inputs whatsoever, unless memory allocation fails and the allocator in use panics in that case.