cardano-crypto-praos/cbits/vrf10_batchcompat/verify.c
int
crypto_vrf_ietfdraft10_verify_batchcompat(unsigned char output[crypto_vrf_ietfdraft10_OUTPUTBYTES],
                              const unsigned char pk[crypto_vrf_ietfdraft10_PUBLICKEYBYTES],
                              const unsigned char proof[crypto_vrf_ietfdraft10_PROOFBYTES_BATCHCOMPAT],
                              const unsigned char *msg, const unsigned long long msglen)
{
    ge25519_p3 Y;
    if ((vrf_validate_key(&Y, pk) == 0) && (vrf_verify_batchcompat(&Y, proof, msg, msglen) == 0)) {
        return crypto_vrf_ietfdraft10_proof_to_hash_batchcompat(output, proof);
    } else {
        return -1;
    }
}
/* Verify a batch compatible VRF proof (for a given a public key and message) and validate the
 * public key. If verification succeeds, store the VRF output hash in output[].
 *
 * For a given public key and message, there are many possible proofs but only
 * one possible output hash.
 *
 * Returns 0 if verification succeeds (and stores output hash in output[]),
 * nonzero on failure.
 */
Verify a batch compatible VRF proof (for a given a public key and message) and validate the
public key. If verification succeeds, store the VRF output hash in output[].

For a given public key and message, there are many possible proofs but only
one possible output hash.

Returns 0 if verification succeeds (and stores output hash in output[]),
nonzero on failure.
Verify a batch compatible VRF proof ( for a given a public key and message ) and validate the public key . If verification succeeds store the VRF output hash in output [] . For a given public key and message there are many possible proofs but only one possible output hash . Returns 0 if verification succeeds ( and stores output hash in output [] ) nonzero on failure .
int
crypto_vrf_ietfdraft10_verify_batchcompat(unsigned char output[crypto_vrf_ietfdraft10_OUTPUTBYTES],
                              const unsigned char pk[crypto_vrf_ietfdraft10_PUBLICKEYBYTES],
                              const unsigned char proof[crypto_vrf_ietfdraft10_PROOFBYTES_BATCHCOMPAT],
                              const unsigned char *msg, const unsigned long long msglen)
{
    ge25519_p3 Y;
    if ((vrf_validate_key(&Y, pk) == 0) && (vrf_verify_batchcompat(&Y, proof, msg, msglen) == 0)) {
        return crypto_vrf_ietfdraft10_proof_to_hash_batchcompat(output, proof);
    } else {
        return -1;
    }
}
int crypto_vrf_ietfdraft10_verify_batchcompat ( unsigned char output [ crypto_vrf_ietfdraft10_OUTPUTBYTES ] , const unsigned char pk [ crypto_vrf_ietfdraft10_PUBLICKEYBYTES ] , const unsigned char proof [ crypto_vrf_ietfdraft10_PROOFBYTES_BATCHCOMPAT ] , const unsigned char * msg , const unsigned long long msglen ) { ge25519_p3 Y ; if ( ( vrf_validate_key ( & Y , pk ) == 0 ) && ( vrf_verify_batchcompat ( & Y , proof , msg , msglen ) == 0 ) ) { return crypto_vrf_ietfdraft10_proof_to_hash_batchcompat ( output , proof ) ; } else { return -1 ; } }
Verify a batch compatible VRF proof (for a given a public key and message) and validate the
 public key.
Verify a batch compatible VRF proof ( for a given a public key and message ) and validate the public key .