My Project
Functions
Operations using SAKKE Key

Functions

int wc_GetSakkeAuthSize (SakkeKey *key, word16 *authSz)
 
int wc_MakeSakkePointI (SakkeKey *key, const byte *id, word16 idSz)
 
int wc_GetSakkePointI (SakkeKey *key, byte *data, word32 *sz)
 
int wc_SetSakkePointI (SakkeKey *key, const byte *id, word16 idSz, const byte *data, word32 sz)
 
int wc_GenerateSakkePointITable (SakkeKey *key, byte *table, word32 *len)
 
int wc_SetSakkePointITable (SakkeKey *key, byte *table, word32 len)
 
int wc_ClearSakkePointITable (SakkeKey *key)
 
int wc_MakeSakkeEncapsulatedSSV (SakkeKey *key, enum wc_HashType hashType, byte *ssv, word16 ssvSz, byte *auth, word16 *authSz)
 
int wc_GenerateSakkeSSV (SakkeKey *key, WC_RNG *rng, byte *ssv, word16 *ssvSz)
 
int wc_DeriveSakkeSSV (SakkeKey *key, enum wc_HashType hashType, byte *ssv, word16 ssvSz, const byte *auth, word16 authSz)
 

Detailed Description

These operations transfer a Shared Secret Value (SSV) from one client to another. The SSV may be randomly generated.

Calculate the size of the authentication data (wc_GetSakkeAuthSize()) to determine where the SSV starts in a buffer.
Make the intermediate point I (wc_MakeSakkePointI()) to speed making an encapsulated and deriving SSV.
Get intermediate point I (wc_GetSakkePointI()) for storage.
Set intermediate point I (wc_SetSakkePointI()) from storage.
Generate a pre-computation table for intermediate point I (wc_GenerateSakkePointITable()) to further enhance performance. Store as necessary.
Set the pre-computation table for intermediate point I (wc_SetSakkePointITable()) to further enhance performance.
Clear the pre-computation table for intermediate point I (wc_ClearSakkePointITable()) to remove reference to external table pointer.
Make an encapsulated SSV (wc_MakeSakkeEncapsulatedSSV()) to share with another client. Data in SSV is modified.
Generate a random SSV (wc_GenerateSakkeSSV()) for key exchange.
Derive the SSV, (wc_DeriveSakkeSSV()) on the recipient from the encapsulated SSV.

Function Documentation

◆ wc_ClearSakkePointITable()

int wc_ClearSakkePointITable ( SakkeKey *  key)

◆ wc_DeriveSakkeSSV()

int wc_DeriveSakkeSSV ( SakkeKey *  key,
enum wc_HashType  hashType,
byte *  ssv,
word16  ssvSz,
const byte *  auth,
word16  authSz 
)

◆ wc_GenerateSakkePointITable()

int wc_GenerateSakkePointITable ( SakkeKey *  key,
byte *  table,
word32 *  len 
)

◆ wc_GenerateSakkeSSV()

int wc_GenerateSakkeSSV ( SakkeKey *  key,
WC_RNG *  rng,
byte *  ssv,
word16 *  ssvSz 
)

◆ wc_GetSakkeAuthSize()

int wc_GetSakkeAuthSize ( SakkeKey *  key,
word16 *  authSz 
)

◆ wc_GetSakkePointI()

int wc_GetSakkePointI ( SakkeKey *  key,
byte *  data,
word32 *  sz 
)

◆ wc_MakeSakkeEncapsulatedSSV()

int wc_MakeSakkeEncapsulatedSSV ( SakkeKey *  key,
enum wc_HashType  hashType,
byte *  ssv,
word16  ssvSz,
byte *  auth,
word16 *  authSz 
)

◆ wc_MakeSakkePointI()

int wc_MakeSakkePointI ( SakkeKey *  key,
const byte *  id,
word16  idSz 
)

◆ wc_SetSakkePointI()

int wc_SetSakkePointI ( SakkeKey *  key,
const byte *  id,
word16  idSz,
const byte *  data,
word32  sz 
)

◆ wc_SetSakkePointITable()

int wc_SetSakkePointITable ( SakkeKey *  key,
byte *  table,
word32  len 
)