| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Cardano.Crypto.VRF.Class
Description
Abstract Verifiable Random Functions.
Synopsis
- class (Typeable v, Show (VerKeyVRF v), Eq (VerKeyVRF v), NFData (VerKeyVRF v), Show (SignKeyVRF v), NFData (SignKeyVRF v), Show (CertVRF v), Ord (CertVRF v), NFData (CertVRF v), NoThunks (CertVRF v), NoThunks (VerKeyVRF v), NoThunks (SignKeyVRF v), KnownNat (VerKeySizeVRF v), KnownNat (SignKeySizeVRF v), KnownNat (CertSizeVRF v), FixedSizeCodec (CertVRF v), FixedSizeCodec (VerKeyVRF v), FixedSizeCodec (SignKeyVRF v)) ⇒ VRFAlgorithm v where
- data VerKeyVRF v ∷ Type
- data SignKeyVRF v ∷ Type
- data CertVRF v ∷ Type
- type VerKeySizeVRF v ∷ Nat
- type SignKeySizeVRF v ∷ Nat
- type CertSizeVRF v ∷ Nat
- type ContextVRF v ∷ Type
- type Signable v ∷ Type → Constraint
- algorithmNameVRF ∷ proxy v → String
- deriveVerKeyVRF ∷ SignKeyVRF v → VerKeyVRF v
- hashVerKeyVRF ∷ HashAlgorithm h ⇒ VerKeyVRF v → Hash h (VerKeyVRF v)
- evalVRF ∷ (HasCallStack, Signable v a) ⇒ ContextVRF v → a → SignKeyVRF v → (OutputVRF v, CertVRF v)
- verifyVRF ∷ (HasCallStack, Signable v a) ⇒ ContextVRF v → VerKeyVRF v → a → CertVRF v → Maybe (OutputVRF v)
- genKeyVRF ∷ Seed → SignKeyVRF v
- genKeyPairVRF ∷ Seed → (SignKeyVRF v, VerKeyVRF v)
- seedSizeVRF ∷ proxy v → Word
- sizeOutputVRF ∷ proxy v → Word
- rawSerialiseVerKeyVRF ∷ VerKeyVRF v → ByteString
- rawSerialiseSignKeyVRF ∷ SignKeyVRF v → ByteString
- rawSerialiseCertVRF ∷ CertVRF v → ByteString
- rawDeserialiseVerKeyVRF ∷ ByteString → Maybe (VerKeyVRF v)
- rawDeserialiseSignKeyVRF ∷ ByteString → Maybe (SignKeyVRF v)
- rawDeserialiseCertVRF ∷ ByteString → Maybe (CertVRF v)
- sizeVerKeyVRF ∷ ∀ v proxy. FixedSizeCodec (VerKeyVRF v) ⇒ proxy v → Word
- sizeSignKeyVRF ∷ ∀ v proxy. FixedSizeCodec (SignKeyVRF v) ⇒ proxy v → Word
- sizeCertVRF ∷ ∀ v proxy. FixedSizeCodec (CertVRF v) ⇒ proxy v → Word
- newtype OutputVRF v = OutputVRF {}
- getOutputVRFBytes ∷ OutputVRF v → ByteString
- getOutputVRFNatural ∷ OutputVRF v → Natural
- mkTestOutputVRF ∷ ∀ v. VRFAlgorithm v ⇒ Natural → OutputVRF v
- data CertifiedVRF v a = CertifiedVRF {
- certifiedOutput ∷ !(OutputVRF v)
- certifiedProof ∷ !(CertVRF v)
- evalCertified ∷ (VRFAlgorithm v, Signable v a) ⇒ ContextVRF v → a → SignKeyVRF v → CertifiedVRF v a
- verifyCertified ∷ (VRFAlgorithm v, Signable v a) ⇒ ContextVRF v → VerKeyVRF v → a → CertifiedVRF v a → Bool
- encodeVerKeyVRF ∷ VRFAlgorithm v ⇒ VerKeyVRF v → Encoding
- decodeVerKeyVRF ∷ ∀ v s. VRFAlgorithm v ⇒ Decoder s (VerKeyVRF v)
- encodeSignKeyVRF ∷ VRFAlgorithm v ⇒ SignKeyVRF v → Encoding
- decodeSignKeyVRF ∷ ∀ v s. VRFAlgorithm v ⇒ Decoder s (SignKeyVRF v)
- encodeCertVRF ∷ VRFAlgorithm v ⇒ CertVRF v → Encoding
- decodeCertVRF ∷ ∀ v s. VRFAlgorithm v ⇒ Decoder s (CertVRF v)
- encodedVerKeyVRFSizeExpr ∷ ∀ v. VRFAlgorithm v ⇒ Proxy (VerKeyVRF v) → Size
- encodedSignKeyVRFSizeExpr ∷ ∀ v. VRFAlgorithm v ⇒ Proxy (SignKeyVRF v) → Size
- encodedCertVRFSizeExpr ∷ ∀ v. VRFAlgorithm v ⇒ Proxy (CertVRF v) → Size
VRF algorithm class
class (Typeable v, Show (VerKeyVRF v), Eq (VerKeyVRF v), NFData (VerKeyVRF v), Show (SignKeyVRF v), NFData (SignKeyVRF v), Show (CertVRF v), Ord (CertVRF v), NFData (CertVRF v), NoThunks (CertVRF v), NoThunks (VerKeyVRF v), NoThunks (SignKeyVRF v), KnownNat (VerKeySizeVRF v), KnownNat (SignKeySizeVRF v), KnownNat (CertSizeVRF v), FixedSizeCodec (CertVRF v), FixedSizeCodec (VerKeyVRF v), FixedSizeCodec (SignKeyVRF v)) ⇒ VRFAlgorithm v where Source #
Minimal complete definition
algorithmNameVRF, deriveVerKeyVRF, evalVRF, verifyVRF, seedSizeVRF, (genKeyVRF | genKeyPairVRF), sizeOutputVRF
Associated Types
data VerKeyVRF v ∷ Type Source #
data SignKeyVRF v ∷ Type Source #
data CertVRF v ∷ Type Source #
type VerKeySizeVRF v ∷ Nat Source #
type VerKeySizeVRF v = FixedSize (VerKeyVRF v)
type SignKeySizeVRF v ∷ Nat Source #
type SignKeySizeVRF v = FixedSize (SignKeyVRF v)
type CertSizeVRF v ∷ Nat Source #
type CertSizeVRF v = FixedSize (CertVRF v)
type ContextVRF v ∷ Type Source #
Context required to run the VRF algorithm
Unit by default (no context required)
type ContextVRF v = ()
type Signable v ∷ Type → Constraint Source #
Methods
algorithmNameVRF ∷ proxy v → String Source #
deriveVerKeyVRF ∷ SignKeyVRF v → VerKeyVRF v Source #
hashVerKeyVRF ∷ HashAlgorithm h ⇒ VerKeyVRF v → Hash h (VerKeyVRF v) Source #
evalVRF ∷ (HasCallStack, Signable v a) ⇒ ContextVRF v → a → SignKeyVRF v → (OutputVRF v, CertVRF v) Source #
verifyVRF ∷ (HasCallStack, Signable v a) ⇒ ContextVRF v → VerKeyVRF v → a → CertVRF v → Maybe (OutputVRF v) Source #
genKeyVRF ∷ Seed → SignKeyVRF v Source #
genKeyPairVRF ∷ Seed → (SignKeyVRF v, VerKeyVRF v) Source #
seedSizeVRF ∷ proxy v → Word Source #
sizeOutputVRF ∷ proxy v → Word Source #
rawSerialiseVerKeyVRF ∷ VerKeyVRF v → ByteString Source #
Deprecated: Use rawEncodeFixedSized instead
rawSerialiseSignKeyVRF ∷ SignKeyVRF v → ByteString Source #
Deprecated: Use rawEncodeFixedSized instead
rawSerialiseCertVRF ∷ CertVRF v → ByteString Source #
Deprecated: Use rawEncodeFixedSized instead
rawDeserialiseVerKeyVRF ∷ ByteString → Maybe (VerKeyVRF v) Source #
Deprecated: Use rawDecodeFixedSized instead
rawDeserialiseSignKeyVRF ∷ ByteString → Maybe (SignKeyVRF v) Source #
Deprecated: Use rawDecodeFixedSized instead
rawDeserialiseCertVRF ∷ ByteString → Maybe (CertVRF v) Source #
Deprecated: Use rawDecodeFixedSized instead
Instances
sizeVerKeyVRF ∷ ∀ v proxy. FixedSizeCodec (VerKeyVRF v) ⇒ proxy v → Word Source #
Deprecated: Use fixedSize instead
sizeSignKeyVRF ∷ ∀ v proxy. FixedSizeCodec (SignKeyVRF v) ⇒ proxy v → Word Source #
Deprecated: Use fixedSize instead
sizeCertVRF ∷ ∀ v proxy. FixedSizeCodec (CertVRF v) ⇒ proxy v → Word Source #
Deprecated: Use fixedSize instead
VRF output
The output bytes of the VRF.
The output size is a fixed number of bytes and is given by sizeOutputVRF.
Constructors
| OutputVRF | |
Fields | |
Instances
| Show (OutputVRF v) Source # | |
| Typeable v ⇒ FromCBOR (OutputVRF v) Source # | |
| Typeable v ⇒ ToCBOR (OutputVRF v) Source # | |
| NFData (OutputVRF v) Source # | |
Defined in Cardano.Crypto.VRF.Class | |
| Eq (OutputVRF v) Source # | |
| Ord (OutputVRF v) Source # | |
Defined in Cardano.Crypto.VRF.Class | |
| NoThunks (OutputVRF v) Source # | |
getOutputVRFNatural ∷ OutputVRF v → Natural Source #
The output bytes of the VRF interpreted as a big endian natural number.
The range of this number is determined by the size of the VRF output bytes.
It is thus in the range 0 .. 2 ^ (8 * sizeOutputVRF proxy) - 1.
mkTestOutputVRF ∷ ∀ v. VRFAlgorithm v ⇒ Natural → OutputVRF v Source #
For testing purposes, make an OutputVRF from a Natural.
The OutputVRF will be of the appropriate size for the VRFAlgorithm.
CertifiedVRF wrapper
data CertifiedVRF v a Source #
Constructors
| CertifiedVRF | |
Fields
| |
Instances
evalCertified ∷ (VRFAlgorithm v, Signable v a) ⇒ ContextVRF v → a → SignKeyVRF v → CertifiedVRF v a Source #
verifyCertified ∷ (VRFAlgorithm v, Signable v a) ⇒ ContextVRF v → VerKeyVRF v → a → CertifiedVRF v a → Bool Source #
CBOR encoding and decoding
encodeVerKeyVRF ∷ VRFAlgorithm v ⇒ VerKeyVRF v → Encoding Source #
Deprecated: Use encodeFixedSized instead
decodeVerKeyVRF ∷ ∀ v s. VRFAlgorithm v ⇒ Decoder s (VerKeyVRF v) Source #
Deprecated: Use decodeFixedSized instead
encodeSignKeyVRF ∷ VRFAlgorithm v ⇒ SignKeyVRF v → Encoding Source #
Deprecated: Use encodeFixedSized instead
decodeSignKeyVRF ∷ ∀ v s. VRFAlgorithm v ⇒ Decoder s (SignKeyVRF v) Source #
Deprecated: Use decodeFixedSized instead
encodeCertVRF ∷ VRFAlgorithm v ⇒ CertVRF v → Encoding Source #
Deprecated: Use encodeFixedSized instead
decodeCertVRF ∷ ∀ v s. VRFAlgorithm v ⇒ Decoder s (CertVRF v) Source #
Deprecated: Use decodeFixedSized instead
Encoded Size expressions
encodedVerKeyVRFSizeExpr ∷ ∀ v. VRFAlgorithm v ⇒ Proxy (VerKeyVRF v) → Size Source #
encodedSignKeyVRFSizeExpr ∷ ∀ v. VRFAlgorithm v ⇒ Proxy (SignKeyVRF v) → Size Source #
encodedCertVRFSizeExpr ∷ ∀ v. VRFAlgorithm v ⇒ Proxy (CertVRF v) → Size Source #