[][src]Module vrf::openssl

Module that uses the OpenSSL library to offer Elliptic Curve Verifiable Random Function (VRF) functionality. This module follows the algorithms described in VRF-draft-05 and RFC6979.

In particular, it provides:

  • ECVRF_hash_to_curve as in the ECVRF_hash_to_curve_try_and_increment algorithm from VRF-draft-05
  • ECVRF_nonce_generation as specified in Section 3.2 of RFC6979

Warning: if input data is private, information leaks in the form of timing side channels are possible.

Currently the supported cipher suites are:

  • P256_SHA256_TAI: the aforementioned algorithms with SHA256 and the NIST P-256 curve.
  • K163_SHA256_TAI: the aforementioned algorithms with SHA256 and the NIST K-163 curve.
  • SECP256K1_SHA256_TAI: the aforementioned algorithms with SHA256 and the secp256k1 curve.

Documentation

Features

  • Compute VRF proof
  • Verify VRF proof

Structs

ECVRF

An Elliptic Curve VRF

Enums

CipherSuite

Different cipher suites for different curves/algorithms

Error

Different errors that can be raised when proving/verifying VRFs