// Proto messages for cyclotomic rings and other basic types in Lol // run this: // hprotoc -p Crypto.Proto Lol.proto // coeffs contains the function output corresponding to the decoding basis in R message LinearRq { required uint32 e = 1; required uint32 r = 2; repeated RqProduct coeffs = 3; } // For each of the following, the "xs" array is with respect to the // decoding basis. message R { required uint32 m = 1; repeated sint64 xs = 2; } // only holds a single modulus. This type was used to serialize cyclotomic ring // elements in the RLWE/RLWR challenges. message Rq1 { required uint32 m = 1; required uint64 q = 2; repeated sint64 xs = 3; } // only holds a single modulus. This type was used to serialize cyclotomic ring // elements in the RLWE challenges. message Kq1 { required uint32 m = 1; required uint64 q = 2; repeated double xs = 3; } // cyclotomic ring mod the product of one or more moduli message RqProduct { repeated Rq1 rqlist = 1; } // cyclotomic ring mod the product of one or more moduli message KqProduct { repeated Kq1 kqlist = 1; } // used to serialize GHC.Fingerprint.Fingerprint. Obviously not intended to be // platform independent. message TypeRep { required uint64 a = 1; required uint64 b = 2; }