MCPcopy Create free account
hub / github.com/docknetwork/crypto / enc_setup

Function enc_setup

saver/src/encryption.rs:888–909  ·  view source on GitHub ↗
(
        chunk_bit_size: u8,
        rng: &mut R,
    )

Source from the content-addressed store, hash-verified

886 type Fr = <Bls12_381 as Pairing>::ScalarField;
887
888 pub fn enc_setup<R: RngCore>(
889 chunk_bit_size: u8,
890 rng: &mut R,
891 ) -> (
892 EncryptionGens<Bls12_381>,
893 Vec<<Bls12_381 as Pairing>::G1Affine>,
894 SecretKey<<Bls12_381 as Pairing>::ScalarField>,
895 EncryptionKey<Bls12_381>,
896 DecryptionKey<Bls12_381>,
897 ) {
898 let n = chunks_count::<Fr>(chunk_bit_size) as usize;
899 let gens = EncryptionGens::<Bls12_381>::new_using_rng(rng);
900 let g_i = (0..n)
901 .map(|_| <Bls12_381 as Pairing>::G1Affine::rand(rng))
902 .collect::<Vec<_>>();
903 let delta = Fr::rand(rng);
904 let gamma = Fr::rand(rng);
905 let g_delta = gens.G.mul_bigint(delta.into_bigint()).into_affine();
906 let g_gamma = gens.G.mul_bigint(gamma.into_bigint()).into_affine();
907 let (sk, ek, dk) = keygen(rng, chunk_bit_size, &gens, &g_i, &g_delta, &g_gamma).unwrap();
908 (gens, g_i, sk, ek, dk)
909 }
910
911 pub fn gen_messages<R: RngCore>(
912 rng: &mut R,

Callers 2

checkFunction · 0.85
checkFunction · 0.85

Calls 3

randFunction · 0.85
mapMethod · 0.80
keygenFunction · 0.70

Tested by

no test coverage detected