My Project
Functions
Operations for Signing and Verifying with ECCSI Key

These operations are for signing and verifying with ECCSI keys. More...

Functions

int wc_MakeEccsiPair (EccsiKey *key, WC_RNG *rng, enum wc_HashType hashType, const byte *id, word32 idSz, mp_int *ssk, ecc_point *pvt)
 
int wc_ValidateEccsiPair (EccsiKey *key, enum wc_HashType hashType, const byte *id, word32 idSz, const mp_int *ssk, ecc_point *pvt, int *valid)
 
int wc_ValidateEccsiPvt (EccsiKey *key, const ecc_point *pvt, int *valid)
 
int wc_EncodeEccsiPair (const EccsiKey *key, mp_int *ssk, ecc_point *pvt, byte *data, word32 *sz)
 
int wc_EncodeEccsiSsk (const EccsiKey *key, mp_int *ssk, byte *data, word32 *sz)
 
int wc_EncodeEccsiPvt (const EccsiKey *key, ecc_point *pvt, byte *data, word32 *sz, int raw)
 
int wc_DecodeEccsiPair (const EccsiKey *key, const byte *data, word32 sz, mp_int *ssk, ecc_point *pvt)
 
int wc_DecodeEccsiSsk (const EccsiKey *key, const byte *data, word32 sz, mp_int *ssk)
 
int wc_DecodeEccsiPvt (const EccsiKey *key, const byte *data, word32 sz, ecc_point *pvt)
 
int wc_DecodeEccsiPvtFromSig (const EccsiKey *key, const byte *sig, word32 sz, ecc_point *pvt)
 
int wc_HashEccsiId (EccsiKey *key, enum wc_HashType hashType, const byte *id, word32 idSz, ecc_point *pvt, byte *hash, byte *hashSz)
 
int wc_SignEccsiHash (EccsiKey *key, WC_RNG *rng, enum wc_HashType hashType, const byte *msg, word32 msgSz, byte *sig, word32 *sigSz)
 
int wc_VerifyEccsiHash (EccsiKey *key, enum wc_HashType hashType, const byte *msg, word32 msgSz, const byte *sig, word32 sigSz, int *verified)
 

Detailed Description

These operations are for signing and verifying with ECCSI keys.

Make an ECCSI key pair (wc_MakeEccsiPair()) with the signer's ID for use when signing.
Validate the ECCSI key pair (wc_ValidateEccsiPair()) with the signer's ID.
Validate the ECCSI Public Validation Token (PVT) (wc_ValidateEccsiPvt()).
Encode the ECCSI key pair (wc_EncodeEccsiPair()) for transfer to client.
Encode the ECCSI SSK (wc_EncodeEccsiSsk()) for transfer to client.
Encode the ECCSI PVT (wc_EncodeEccsiPvt()) for transfer to verifier.
Decode the ECCSI key pair (wc_DecodeEccsiPair()) on client for signing.
Decode the ECCSI SSK (wc_DecodeEccsiSsk()) on client for signing.
Decode the ECCSI PVT (wc_DecodeEccsiPvt()) on client for signing.
Decode the ECCSI PVT from the signature (wc_DecodeEccsiPvtFromSig()) on client for verifying.
Calculate hash of the ID (wc_HashEccsiId()) for signing/verifying using ID and Public Validation Token (PVT).
Sign (wc_SignEccsiHash()) a message with the hash of the ID and the Secret Signing Key (SSK) and Public Validation Token (PVT).
Verify (wc_VerifyEccsiHash()) a message with the hash of the signer's ID.

Function Documentation

◆ wc_DecodeEccsiPair()

int wc_DecodeEccsiPair ( const EccsiKey *  key,
const byte *  data,
word32  sz,
mp_int *  ssk,
ecc_point *  pvt 
)

◆ wc_DecodeEccsiPvt()

int wc_DecodeEccsiPvt ( const EccsiKey *  key,
const byte *  data,
word32  sz,
ecc_point *  pvt 
)

◆ wc_DecodeEccsiPvtFromSig()

int wc_DecodeEccsiPvtFromSig ( const EccsiKey *  key,
const byte *  sig,
word32  sz,
ecc_point *  pvt 
)

◆ wc_DecodeEccsiSsk()

int wc_DecodeEccsiSsk ( const EccsiKey *  key,
const byte *  data,
word32  sz,
mp_int *  ssk 
)

◆ wc_EncodeEccsiPair()

int wc_EncodeEccsiPair ( const EccsiKey *  key,
mp_int *  ssk,
ecc_point *  pvt,
byte *  data,
word32 *  sz 
)

◆ wc_EncodeEccsiPvt()

int wc_EncodeEccsiPvt ( const EccsiKey *  key,
ecc_point *  pvt,
byte *  data,
word32 *  sz,
int  raw 
)

◆ wc_EncodeEccsiSsk()

int wc_EncodeEccsiSsk ( const EccsiKey *  key,
mp_int *  ssk,
byte *  data,
word32 *  sz 
)

◆ wc_HashEccsiId()

int wc_HashEccsiId ( EccsiKey *  key,
enum wc_HashType  hashType,
const byte *  id,
word32  idSz,
ecc_point *  pvt,
byte *  hash,
byte *  hashSz 
)

◆ wc_MakeEccsiPair()

int wc_MakeEccsiPair ( EccsiKey *  key,
WC_RNG *  rng,
enum wc_HashType  hashType,
const byte *  id,
word32  idSz,
mp_int *  ssk,
ecc_point *  pvt 
)

◆ wc_SignEccsiHash()

int wc_SignEccsiHash ( EccsiKey *  key,
WC_RNG *  rng,
enum wc_HashType  hashType,
const byte *  msg,
word32  msgSz,
byte *  sig,
word32 *  sigSz 
)

◆ wc_ValidateEccsiPair()

int wc_ValidateEccsiPair ( EccsiKey *  key,
enum wc_HashType  hashType,
const byte *  id,
word32  idSz,
const mp_int *  ssk,
ecc_point *  pvt,
int *  valid 
)

◆ wc_ValidateEccsiPvt()

int wc_ValidateEccsiPvt ( EccsiKey *  key,
const ecc_point *  pvt,
int *  valid 
)

◆ wc_VerifyEccsiHash()

int wc_VerifyEccsiHash ( EccsiKey *  key,
enum wc_HashType  hashType,
const byte *  msg,
word32  msgSz,
const byte *  sig,
word32  sigSz,
int *  verified 
)