proxygen
fizz::KeyDerivation Class Referenceabstract

#include <KeyDerivation.h>

Inheritance diagram for fizz::KeyDerivation:
fizz::KeyDerivationImpl< Hash > fizz::MockKeyDerivation

Public Member Functions

virtual ~KeyDerivation ()=default
 
virtual size_t hashLength () const =0
 
virtual folly::ByteRange blankHash () const =0
 
virtual Buf expandLabel (folly::ByteRange secret, folly::StringPiece label, Buf hashValue, uint16_t length)=0
 
virtual std::vector< uint8_tderiveSecret (folly::ByteRange secret, folly::StringPiece label, folly::ByteRange messageHash)=0
 
virtual Buf hkdfExpand (folly::ByteRange secret, Buf info, uint16_t length)=0
 
virtual std::vector< uint8_thkdfExtract (folly::ByteRange salt, folly::ByteRange ikm)=0
 
virtual void hash (const folly::IOBuf &in, folly::MutableByteRange out)=0
 
virtual void hmac (folly::ByteRange key, const folly::IOBuf &in, folly::MutableByteRange out)=0
 

Detailed Description

Interface for common TLS 1.3 key derivation functions.

Definition at line 19 of file KeyDerivation.h.

Constructor & Destructor Documentation

virtual fizz::KeyDerivation::~KeyDerivation ( )
virtualdefault

Member Function Documentation

virtual folly::ByteRange fizz::KeyDerivation::blankHash ( ) const
pure virtual

Returns the hash of a blank input (ie Hash("")).

Implemented in fizz::KeyDerivationImpl< Hash >.

virtual std::vector<uint8_t> fizz::KeyDerivation::deriveSecret ( folly::ByteRange  secret,
folly::StringPiece  label,
folly::ByteRange  messageHash 
)
pure virtual
virtual Buf fizz::KeyDerivation::expandLabel ( folly::ByteRange  secret,
folly::StringPiece  label,
Buf  hashValue,
uint16_t  length 
)
pure virtual
virtual void fizz::KeyDerivation::hash ( const folly::IOBuf in,
folly::MutableByteRange  out 
)
pure virtual
virtual size_t fizz::KeyDerivation::hashLength ( ) const
pure virtual
virtual Buf fizz::KeyDerivation::hkdfExpand ( folly::ByteRange  secret,
Buf  info,
uint16_t  length 
)
pure virtual
virtual std::vector<uint8_t> fizz::KeyDerivation::hkdfExtract ( folly::ByteRange  salt,
folly::ByteRange  ikm 
)
pure virtual
virtual void fizz::KeyDerivation::hmac ( folly::ByteRange  key,
const folly::IOBuf in,
folly::MutableByteRange  out 
)
pure virtual

The documentation for this class was generated from the following file: