libdecaf
Classes | Typedefs | Enumerations | Functions
decaf Namespace Reference

Namespace for all libdecaf C++ objects. More...

Classes

class  Block
 A reference to a block of data, which (when accessed through this base class) is const. More...
 
class  Buffer
 A reference to a writable block of data. More...
 
class  CryptoException
 An exception for when crypto (ie point decode) has failed. More...
 
struct  Ed448Goldilocks
 Ed448-Goldilocks/Decaf instantiation of group. More...
 
struct  EdDSA
 A public key for crypto over some Group. More...
 
struct  EdDSA< Ed448Goldilocks >
 A public key for crypto over Ed448-Goldilocks. More...
 
struct  EdDSA< Ristretto >
 A public key for crypto over Ristretto. More...
 
class  FixedArrayBuffer
 A fixed-size stack-allocated buffer (for DECAF_NOEXCEPT semantics) More...
 
class  FixedBlock
 A fixed-size block. More...
 
class  FixedBuffer
 A fixed-size block. More...
 
class  KeccakHash
 Hash function derived from Keccak FUTURE: throw ProtocolException when hash is misused by calling update() after output(). More...
 
class  LengthException
 An exception for when crypto (ie point decode) has failed. More...
 
struct  NOINIT
 Passed to constructors to avoid (conservative) initialization. More...
 
struct  Ristretto
 Curve25519/Decaf instantiation of group. More...
 
class  Rng
 Prototype of a random number generator. More...
 
class  SanitizingAllocator
 An allocator which zeros its memory on free. More...
 
class  Serializable
 Base class of objects which support serialization. More...
 
class  SHA3
 Fixed-output-length SHA3. More...
 
class  SHA512
 SHA512 wrapper function. More...
 
class  SHAKE
 Variable-output-length SHAKE. More...
 
class  SpongeRng
 Sponge-based random-number generator. More...
 

Typedefs

typedef Ristretto IsoEd25519
 Alternative name for Ristretto, for backwards compatibility.
 
typedef std::vector< unsigned char, SanitizingAllocator< unsigned char, 0 > > SecureBuffer
 A variant of std::vector which securely zerozes its state when destructed. More...
 

Enumerations

enum  Prehashed { PURE, PREHASHED }
 How signatures handle hashing. More...
 

Functions

template<class T , class U , class V , class W >
bool memeq (const std::vector< T, U > &a, const std::vector< V, W > &b)
 Constant-time compare two buffers.
 
template<template< typename Group > class Run>
void run_for_all_curves ()
 Given a template with a "run" function, run it for all curves.
 

Detailed Description

Namespace for all libdecaf C++ objects.

Namespace for all C++ decaf objects.

Typedef Documentation

◆ SecureBuffer

typedef std::vector<unsigned char, SanitizingAllocator<unsigned char, 0> > decaf::SecureBuffer

A variant of std::vector which securely zerozes its state when destructed.

Enumeration Type Documentation

◆ Prehashed

How signatures handle hashing.

Enumerator
PURE 

Sign the message itself.

This can't be done in one pass.

PREHASHED 

Sign the hash of the message.