def verification_key_to_proto( vk: IVerificationKey) -> snark_messages_pb2.VerificationKey: assert isinstance(vk, Groth16.VerificationKey) vk_obj = snark_messages_pb2.VerificationKey() groth16_key = vk_obj.groth16_verification_key # pylint: disable=no-member g1_point_to_proto(vk.alpha, groth16_key.alpha_g1) g2_point_to_proto(vk.beta, groth16_key.beta_g2) g2_point_to_proto(vk.delta, groth16_key.delta_g2) groth16_key.abc_g1 = json.dumps([abc.to_json_list() for abc in vk.abc]) return vk_obj
def extended_proof_to_proto( ext_proof: ExtendedProof) -> snark_messages_pb2.ExtendedProof: proof = ext_proof.proof assert isinstance(proof, Groth16.Proof) extproof_proto = snark_messages_pb2.ExtendedProof() proof_proto = extproof_proto.groth16_extended_proof \ # pylint: disable=no-member g1_point_to_proto(proof.a, proof_proto.a) g2_point_to_proto(proof.b, proof_proto.b) g1_point_to_proto(proof.c, proof_proto.c) proof_proto.inputs = json.dumps(ext_proof.inputs) return extproof_proto
def _do_test_g1_proto_encode_decode(self, g1: G1Point) -> None: g1_proto = ec_group_messages_pb2.Group1Point() g1_point_to_proto(g1, g1_proto) g1_decoded = g1_point_from_proto(g1_proto) self.assertEqual(g1.to_json_list(), g1_decoded.to_json_list())
def extended_proof_to_proto( ext_proof: ExtendedProof) -> snark_messages_pb2.ExtendedProof: proof = ext_proof.proof assert isinstance(proof, PGHR13.Proof) extproof_proto = snark_messages_pb2.ExtendedProof() proof_proto = extproof_proto.pghr13_extended_proof \ # pylint: disable=no-member g1_point_to_proto(proof.a, proof_proto.a) g1_point_to_proto(proof.a_p, proof_proto.a_p) g2_point_to_proto(proof.b, proof_proto.b) g1_point_to_proto(proof.b_p, proof_proto.b_p) g1_point_to_proto(proof.c, proof_proto.c) g1_point_to_proto(proof.c_p, proof_proto.c_p) g1_point_to_proto(proof.h, proof_proto.h) g1_point_to_proto(proof.k, proof_proto.k) proof_proto.inputs = json.dumps(ext_proof.inputs) return extproof_proto