package crypto.proto.BGV; // proto messages for key switch hints and secret keys from SymmBGV import "Lol.proto"; // run this: hprotoc -I ../lol BGV.proto message SecretKey { required crypto.proto.lol.R sk = 1; // ring element required double v = 2; // scaled variance } // internally used in KSHint message RqPolynomial { repeated crypto.proto.lol.RqProduct coeffs = 1; // constant coefficient first, then linear, etc. } // linear or quadratic key switch hint message KSHint { repeated RqPolynomial hint = 1; required crypto.proto.lol.TypeRep gad = 2; // gadget used for key switching } // information for a single ring switch message TunnelHint { required crypto.proto.lol.LinearRq func = 1; // linear function to apply repeated KSHint hint = 2; required uint32 e = 3; // index of greatest common subring of r and s required uint32 r = 4; // input ring index required uint32 s = 5; // output ring index required uint64 p = 6; // plaintext modulus }