Exemplo n.º 1
0
 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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
 def _do_test_g2_proto_encode_decode(self, g2: G2Point) -> None:
     g2_proto = ec_group_messages_pb2.Group2Point()
     g2_point_to_proto(g2, g2_proto)
     g2_decoded = g2_point_from_proto(g2_proto)
     self.assertEqual(g2.to_json_list(), g2_decoded.to_json_list())