lol-0.7.0.0: Lol.proto
package crypto.proto.lol;
// Proto messages for cyclotomic rings and other basic types in Lol
// run this:
// hprotoc Lol.proto
// protoc Lol.proto [-cpp_out=path/to/cpp/parser] [--java_out=path/to/java/parser] [--python_out=path/to/python/parser]
// a linear function from one cyclotomic ring to another, over a
// common subring. 'coeffs' contains the function outputs on the
// relative decoding basis of the domain ring.
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.
// cyclotomic ring over the integers
message R {
required uint32 m = 1;
repeated sint64 xs = 2;
}
// cyclotomic ring modulo a single modulus
message Rq {
required uint32 m = 1;
required uint64 q = 2;
repeated sint64 xs = 3;
}
// Cyclotomic field
message K {
required uint32 m = 1;
repeated double xs = 2;
}
// cyclotomic field modulo a single modulus
message Kq {
required uint32 m = 1;
required uint64 q = 2;
repeated double xs = 3;
}
// cyclotomic ring modulo the product of one or more moduli
message RqProduct {
repeated Rq rqs = 1;
}
// cyclotomic field modulo the product of one or more moduli
message KqProduct {
repeated Kq kqs = 1;
}
// used to serialize GHC.Fingerprint.Fingerprint. Obviously not
// intended to be platform independent.
message TypeRep {
required uint64 a = 1;
required uint64 b = 2;
}