Skip to content

Operations using SAKKE Key

More...

Functions

Name
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.

Functions Documentation

function wc_GetSakkeAuthSize

int wc_GetSakkeAuthSize(
    SakkeKey * key,
    word16 * authSz
)

function wc_MakeSakkePointI

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

function wc_GetSakkePointI

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

function wc_SetSakkePointI

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

function wc_GenerateSakkePointITable

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

function wc_SetSakkePointITable

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

function wc_ClearSakkePointITable

int wc_ClearSakkePointITable(
    SakkeKey * key
)

function wc_MakeSakkeEncapsulatedSSV

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

function wc_GenerateSakkeSSV

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

function wc_DeriveSakkeSSV

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

Updated on 2024-03-19 at 01:20:40 +0000