My Project
Functions
Algorithms - SHA 128/224/256/384/512

Functions

int wc_ShaHash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Sha224Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Sha256Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Sha384Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Sha512Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Sha3_224Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Sha3_256Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Sha3_384Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Sha3_512Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Shake128Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_Shake256Hash (const byte *data, word32 len, byte *hash)
 Convenience function, handles all the hashing and places the result into hash. More...
 
int wc_InitSha (wc_Sha *)
 This function initializes SHA. This is automatically called by wc_ShaHash. More...
 
int wc_ShaUpdate (wc_Sha *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_ShaFinal (wc_Sha *sha, byte *hash)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha struct. More...
 
void wc_ShaFree (wc_Sha *)
 Used to clean up memory used by an initialized Sha struct. Note: this is only supported if you have WOLFSSL_TI_HASH defined. More...
 
int wc_ShaGetHash (wc_Sha *sha, byte *hash)
 Gets hash data. Result is placed into hash. Does not reset state of sha struct. More...
 
int wc_InitSha256 (wc_Sha256 *)
 This function initializes SHA256. This is automatically called by wc_Sha256Hash. More...
 
int wc_Sha256Update (wc_Sha256 *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Sha256Final (wc_Sha256 *sha256, byte *hash)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha256 struct. More...
 
void wc_Sha256Free (wc_Sha256 *)
 Resets the Sha256 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. More...
 
int wc_Sha256GetHash (wc_Sha256 *sha256, byte *hash)
 Gets hash data. Result is placed into hash. Does not reset state of sha256 struct. More...
 
int wc_InitSha224 (wc_Sha224 *)
 Used to initialize a Sha224 struct. More...
 
int wc_Sha224Update (wc_Sha224 *sha224, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Sha224Final (wc_Sha224 *sha224, byte *hash)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha224 struct. More...
 
int wc_InitSha3_224 (wc_Sha3 *sha3, void *heap, int devId)
 This function initializes SHA3-224. This is automatically called by wc_Sha3_224Hash. More...
 
int wc_Sha3_224_Update (wc_Sha3 *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Sha3_224_Final (wc_Sha3 *sha3, byte *hash)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct. More...
 
void wc_Sha3_224_Free (wc_Sha3 *)
 Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. More...
 
int wc_Sha3_224_GetHash (wc_Sha3 *sha3, byte *hash)
 Gets hash data. Result is placed into hash. Does not reset state of sha3 struct. More...
 
int wc_Sha3_224_Copy (wc_Sha3 *sha3, wc_Sha3 *dst)
 Copy the state of the hash. More...
 
int wc_InitSha3_256 (wc_Sha3 *sha3, void *heap, int devId)
 This function initializes SHA3-256. This is automatically called by wc_Sha3_256Hash. More...
 
int wc_Sha3_256_Update (wc_Sha3 *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Sha3_256_Final (wc_Sha3 *sha3, byte *hash)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct. More...
 
void wc_Sha3_256_Free (wc_Sha3 *)
 Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. More...
 
int wc_Sha3_256_GetHash (wc_Sha3 *sha3, byte *hash)
 Gets hash data. Result is placed into hash. Does not reset state of sha3 struct. More...
 
int wc_Sha3_256_Copy (wc_Sha3 *sha3, wc_Sha3 *dst)
 Copy the state of the hash. More...
 
int wc_InitSha3_384 (wc_Sha3 *sha3, void *heap, int devId)
 This function initializes SHA3-384. This is automatically called by wc_Sha3_384Hash. More...
 
int wc_Sha3_384_Update (wc_Sha3 *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Sha3_384_Final (wc_Sha3 *sha3, byte *hash)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct. More...
 
void wc_Sha3_384_Free (wc_Sha3 *)
 Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. More...
 
int wc_Sha3_384_GetHash (wc_Sha3 *sha3, byte *hash)
 Gets hash data. Result is placed into hash. Does not reset state of sha3 struct. More...
 
int wc_Sha3_384_Copy (wc_Sha3 *sha3, wc_Sha3 *dst)
 Copy the state of the hash. More...
 
int wc_InitSha3_512 (wc_Sha3 *sha3, void *heap, int devId)
 This function initializes SHA3-512. This is automatically called by wc_Sha3_512Hash. More...
 
int wc_Sha3_512_Update (wc_Sha3 *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Sha3_512_Final (wc_Sha3 *sha3, byte *hash)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct. More...
 
void wc_Sha3_512_Free (wc_Sha3 *)
 Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. More...
 
int wc_Sha3_512_GetHash (wc_Sha3 *sha3, byte *hash)
 Gets hash data. Result is placed into hash. Does not reset state of sha3 struct. More...
 
int wc_Sha3_512_Copy (wc_Sha3 *sha3, wc_Sha3 *dst)
 Copy the state of the hash. More...
 
int wc_InitShake128 (wc_Shake *shake, void *heap, int devId)
 This function initializes SHAKE-128. This is automatically called by wc_Shake128Hash. More...
 
int wc_Shake128_Update (wc_Shake *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Shake128_Final (wc_Shake *shake, byte *hash)
 Finalizes hashing of data. Result is placed into hash. Resets state of shake struct. More...
 
int wc_Shake128_Absorb (wc_Shake *sha, const byte *data, word32 len)
 Called to absorb the provided byte array of length len. Cannot be called incrementally. More...
 
int wc_Shake128_SqueezeBlocks (wc_Shake *shake, byte *out, word32 blockCnt)
 Squeeze out more blocks of data. Result is placed into out. Can be called inrementally. More...
 
void wc_Shake128_Free (wc_Shake *)
 Resets the wc_Shake structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. More...
 
int wc_Shake128_GetHash (wc_Shake *shake, byte *hash)
 Gets hash data. Result is placed into hash. Does not reset state of shake struct. More...
 
int wc_Shake128_Copy (wc_Shake *shake, wc_Shake *dst)
 Copy the state of the hash. More...
 
int wc_InitShake256 (wc_Shake *shake, void *heap, int devId)
 This function initializes SHAKE-256. This is automatically called by wc_Shake256Hash. More...
 
int wc_Shake256_Update (wc_Shake *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Shake256_Final (wc_Shake *shake, byte *hash)
 Finalizes hashing of data. Result is placed into hash. Resets state of shake struct. More...
 
int wc_Shake256_Absorb (wc_Shake *sha, const byte *data, word32 len)
 Called to absorb the provided byte array of length len. Cannot be called incrementally. More...
 
int wc_Shake256_SqueezeBlocks (wc_Shake *shake, byte *out, word32 blockCnt)
 Squeeze out more blocks of data. Result is placed into out. Can be called incrementally. More...
 
void wc_Shake256_Free (wc_Shake *)
 Resets the wc_Shake structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. More...
 
int wc_Shake256_GetHash (wc_Shake *shake, byte *hash)
 Gets hash data. Result is placed into hash. Does not reset state of shake struct. More...
 
int wc_Shake256_Copy (wc_Shake *shake, wc_Shake *dst)
 Copy the state of the hash. More...
 
int wc_InitSha512 (wc_Sha512 *)
 This function initializes SHA512. This is automatically called by wc_Sha512Hash. More...
 
int wc_Sha512Update (wc_Sha512 *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Sha512Final (wc_Sha512 *sha512, byte *hash)
 Finalizes hashing of data. Result is placed into hash. More...
 
int wc_InitSha384 (wc_Sha384 *)
 This function initializes SHA384. This is automatically called by wc_Sha384Hash. More...
 
int wc_Sha384Update (wc_Sha384 *sha, const byte *data, word32 len)
 Can be called to continually hash the provided byte array of length len. More...
 
int wc_Sha384Final (wc_Sha384 *sha384, byte *hash)
 Finalizes hashing of data. Result is placed into hash. More...
 

Detailed Description

Function Documentation

◆ wc_InitSha()

int wc_InitSha ( wc_Sha *  )

This function initializes SHA. This is automatically called by wc_ShaHash.

Returns
0 Returned upon successfully initializing
Parameters
shapointer to the sha structure to use for encryption

Example

Sha sha[1];
if ((ret = wc_InitSha(sha)) != 0) {
WOLFSSL_MSG("wc_InitSha failed");
}
else {
wc_ShaUpdate(sha, data, len);
wc_ShaFinal(sha, hash);
}
int wc_InitSha(wc_Sha *)
This function initializes SHA. This is automatically called by wc_ShaHash.
int wc_ShaFinal(wc_Sha *sha, byte *hash)
Finalizes hashing of data. Result is placed into hash. Resets state of sha struct.
int wc_ShaUpdate(wc_Sha *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
See also
wc_ShaHash
wc_ShaUpdate
wc_ShaFinal

◆ wc_InitSha224()

int wc_InitSha224 ( wc_Sha224 *  )

Used to initialize a Sha224 struct.

Returns
0 Success
1 Error returned because sha224 is null.
Parameters
sha224Pointer to a Sha224 struct to initialize.

Example

Sha224 sha224;
if(wc_InitSha224(&sha224) != 0)
{
// Handle error
}
int wc_InitSha224(wc_Sha224 *)
Used to initialize a Sha224 struct.
See also
wc_Sha224Hash
wc_Sha224Update
wc_Sha224Final

◆ wc_InitSha256()

int wc_InitSha256 ( wc_Sha256 *  )

This function initializes SHA256. This is automatically called by wc_Sha256Hash.

Returns
0 Returned upon successfully initializing
Parameters
sha256pointer to the sha256 structure to use for encryption

Example

Sha256 sha256[1];
if ((ret = wc_InitSha256(sha256)) != 0) {
WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
wc_Sha256Update(sha256, data, len);
wc_Sha256Final(sha256, hash);
}
int wc_Sha256Update(wc_Sha256 *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
int wc_InitSha256(wc_Sha256 *)
This function initializes SHA256. This is automatically called by wc_Sha256Hash.
int wc_Sha256Final(wc_Sha256 *sha256, byte *hash)
Finalizes hashing of data. Result is placed into hash. Resets state of sha256 struct.
See also
wc_Sha256Hash
wc_Sha256Update
wc_Sha256Final

◆ wc_InitSha384()

int wc_InitSha384 ( wc_Sha384 *  )

This function initializes SHA384. This is automatically called by wc_Sha384Hash.

Returns
0 Returned upon successfully initializing
Parameters
sha384pointer to the sha384 structure to use for encryption

Example

Sha384 sha384[1];
if ((ret = wc_InitSha384(sha384)) != 0) {
WOLFSSL_MSG("wc_InitSha384 failed");
}
else {
wc_Sha384Update(sha384, data, len);
wc_Sha384Final(sha384, hash);
}
int wc_InitSha384(wc_Sha384 *)
This function initializes SHA384. This is automatically called by wc_Sha384Hash.
int wc_Sha384Update(wc_Sha384 *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
int wc_Sha384Final(wc_Sha384 *sha384, byte *hash)
Finalizes hashing of data. Result is placed into hash.
See also
wc_Sha384Hash
wc_Sha384Update
wc_Sha384Final

◆ wc_InitSha3_224()

int wc_InitSha3_224 ( wc_Sha3 *  sha3,
void *  heap,
int  devId 
)

This function initializes SHA3-224. This is automatically called by wc_Sha3_224Hash.

Returns
0 Returned upon successfully initializing
Parameters
sha3pointer to the sha3 structure to use for encryption

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
wc_Sha3_224_Update(sha3, data, len);
wc_Sha3_224_Final(sha3, hash);
}
int wc_Sha3_224_Update(wc_Sha3 *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
int wc_Sha3_224_Final(wc_Sha3 *sha3, byte *hash)
Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct.
int wc_InitSha3_224(wc_Sha3 *sha3, void *heap, int devId)
This function initializes SHA3-224. This is automatically called by wc_Sha3_224Hash.
See also
wc_Sha3_224Hash
wc_Sha3_224_Update
wc_Sha3_224_Final

◆ wc_InitSha3_256()

int wc_InitSha3_256 ( wc_Sha3 *  sha3,
void *  heap,
int  devId 
)

This function initializes SHA3-256. This is automatically called by wc_Sha3_256Hash.

Returns
0 Returned upon successfully initializing
Parameters
sha3pointer to the sha3 structure to use for encryption

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
wc_Sha3_256_Update(sha3, data, len);
wc_Sha3_256_Final(sha3, hash);
}
int wc_InitSha3_256(wc_Sha3 *sha3, void *heap, int devId)
This function initializes SHA3-256. This is automatically called by wc_Sha3_256Hash.
int wc_Sha3_256_Update(wc_Sha3 *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
int wc_Sha3_256_Final(wc_Sha3 *sha3, byte *hash)
Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct.
See also
wc_Sha3_256Hash
wc_Sha3_256_Update
wc_Sha3_256_Final

◆ wc_InitSha3_384()

int wc_InitSha3_384 ( wc_Sha3 *  sha3,
void *  heap,
int  devId 
)

This function initializes SHA3-384. This is automatically called by wc_Sha3_384Hash.

Returns
0 Returned upon successfully initializing
Parameters
sha3pointer to the sha3 structure to use for encryption

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
wc_Sha3_384_Update(sha3, data, len);
wc_Sha3_384_Final(sha3, hash);
}
int wc_InitSha3_384(wc_Sha3 *sha3, void *heap, int devId)
This function initializes SHA3-384. This is automatically called by wc_Sha3_384Hash.
int wc_Sha3_384_Final(wc_Sha3 *sha3, byte *hash)
Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct.
int wc_Sha3_384_Update(wc_Sha3 *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
See also
wc_Sha3_384Hash
wc_Sha3_384_Update
wc_Sha3_384_Final

◆ wc_InitSha3_512()

int wc_InitSha3_512 ( wc_Sha3 *  sha3,
void *  heap,
int  devId 
)

This function initializes SHA3-512. This is automatically called by wc_Sha3_512Hash.

Returns
0 Returned upon successfully initializing
Parameters
sha3pointer to the sha3 structure to use for encryption

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
wc_Sha3_512_Update(sha3, data, len);
wc_Sha3_512_Final(sha3, hash);
}
int wc_Sha3_512_Final(wc_Sha3 *sha3, byte *hash)
Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct.
int wc_Sha3_512_Update(wc_Sha3 *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
int wc_InitSha3_512(wc_Sha3 *sha3, void *heap, int devId)
This function initializes SHA3-512. This is automatically called by wc_Sha3_512Hash.
See also
wc_Sha3_512Hash
wc_Sha3_512_Update
wc_Sha3_512_Final

◆ wc_InitSha512()

int wc_InitSha512 ( wc_Sha512 *  )

This function initializes SHA512. This is automatically called by wc_Sha512Hash.

Returns
0 Returned upon successfully initializing
Parameters
sha512pointer to the sha512 structure to use for encryption

Example

Sha512 sha512[1];
if ((ret = wc_InitSha512(sha512)) != 0) {
WOLFSSL_MSG("wc_InitSha512 failed");
}
else {
wc_Sha512Update(sha512, data, len);
wc_Sha512Final(sha512, hash);
}
int wc_Sha512Update(wc_Sha512 *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
int wc_InitSha512(wc_Sha512 *)
This function initializes SHA512. This is automatically called by wc_Sha512Hash.
int wc_Sha512Final(wc_Sha512 *sha512, byte *hash)
Finalizes hashing of data. Result is placed into hash.
See also
wc_Sha512Hash
wc_Sha512Update
wc_Sha512Final

◆ wc_InitShake128()

int wc_InitShake128 ( wc_Shake *  shake,
void *  heap,
int  devId 
)

This function initializes SHAKE-128. This is automatically called by wc_Shake128Hash.

Returns
0 Returned upon successfully initializing
Parameters
shakepointer to the shake structure to use for encryption

Example

wc_Shake shake[1];
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
wc_Shake128_Update(shake, data, len);
wc_Shake128_Final(shake, hash);
}
int wc_InitShake128(wc_Shake *shake, void *heap, int devId)
This function initializes SHAKE-128. This is automatically called by wc_Shake128Hash.
int wc_Shake128_Final(wc_Shake *shake, byte *hash)
Finalizes hashing of data. Result is placed into hash. Resets state of shake struct.
int wc_Shake128_Update(wc_Shake *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
See also
wc_Shake128Hash
wc_Shake128_Update
wc_Shake128_Final

◆ wc_InitShake256()

int wc_InitShake256 ( wc_Shake *  shake,
void *  heap,
int  devId 
)

This function initializes SHAKE-256. This is automatically called by wc_Shake256Hash.

Returns
0 Returned upon successfully initializing
Parameters
shakepointer to the shake structure to use for encryption

Example

wc_Shake shake[1];
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
wc_Shake256_Update(shake, data, len);
wc_Shake256_Final(shake, hash);
}
int wc_InitShake256(wc_Shake *shake, void *heap, int devId)
This function initializes SHAKE-256. This is automatically called by wc_Shake256Hash.
int wc_Shake256_Update(wc_Shake *sha, const byte *data, word32 len)
Can be called to continually hash the provided byte array of length len.
int wc_Shake256_Final(wc_Shake *shake, byte *hash)
Finalizes hashing of data. Result is placed into hash. Resets state of shake struct.
See also
wc_Shake256Hash
wc_Shake256_Update
wc_Shake256_Final

◆ wc_Sha224Final()

int wc_Sha224Final ( wc_Sha224 *  sha224,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash. Resets state of sha224 struct.

Returns
0 Success
<0 Error
Parameters
sha224pointer to the sha224 structure to use for encryption
hashByte array to hold hash value.

Example

Sha224 sha224;
byte data[] = { /* Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha224(&sha224)) != 0) {
WOLFSSL_MSG("wc_InitSha224 failed");
}
else {
wc_Sha224Update(&sha224, data, len);
wc_Sha224Final(&sha224, hash);
}
See also
wc_InitSha224
wc_Sha224Hash
wc_Sha224Update

◆ wc_Sha224Hash()

int wc_Sha224Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Success
<0 Error
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_InitSha224
wc_Sha224Update
wc_Sha224Final

◆ wc_Sha224Update()

int wc_Sha224Update ( wc_Sha224 *  sha224,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Success
1 Error returned if function fails.
BAD_FUNC_ARG Error returned if sha224 or data is null.
Parameters
sha224Pointer to the Sha224 structure to use for encryption.
dataData to be hashed.
lenLength of data to be hashed.

Example

Sha224 sha224;
byte data[] = { /* Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha224(&sha224)) != 0) {
WOLFSSL_MSG("wc_InitSha224 failed");
}
else {
wc_Sha224Update(&sha224, data, len);
wc_Sha224Final(&sha224, hash);
}
See also
wc_InitSha224
wc_Sha224Final
wc_Sha224Hash

◆ wc_Sha256Final()

int wc_Sha256Final ( wc_Sha256 *  sha256,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash. Resets state of sha256 struct.

Returns
0 Returned upon successfully finalizing.
Parameters
sha256pointer to the sha256 structure to use for encryption
hashByte array to hold hash value.

Example

Sha256 sha256[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha256(sha256)) != 0) {
WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
wc_Sha256Update(sha256, data, len);
wc_Sha256Final(sha256, hash);
}
See also
wc_Sha256Hash
wc_Sha256GetHash
wc_InitSha256

◆ wc_Sha256Free()

void wc_Sha256Free ( wc_Sha256 *  )

Resets the Sha256 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.

Returns
none No returns.
Parameters
sha256Pointer to the sha256 structure to be freed.

Example

Sha256 sha256;
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha256(&sha256)) != 0) {
WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
wc_Sha256Update(&sha256, data, len);
wc_Sha256Final(&sha256, hash);
wc_Sha256Free(&sha256);
}
void wc_Sha256Free(wc_Sha256 *)
Resets the Sha256 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.
See also
wc_InitSha256
wc_Sha256Update
wc_Sha256Final

◆ wc_Sha256GetHash()

int wc_Sha256GetHash ( wc_Sha256 *  sha256,
byte *  hash 
)

Gets hash data. Result is placed into hash. Does not reset state of sha256 struct.

Returns
0 Returned upon successfully finalizing.
Parameters
sha256pointer to the sha256 structure to use for encryption
hashByte array to hold hash value.

Example

Sha256 sha256[1];
if ((ret = wc_InitSha256(sha256)) != 0) {
WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
wc_Sha256Update(sha256, data, len);
wc_Sha256GetHash(sha256, hash);
}
int wc_Sha256GetHash(wc_Sha256 *sha256, byte *hash)
Gets hash data. Result is placed into hash. Does not reset state of sha256 struct.
See also
wc_Sha256Hash
wc_Sha256Final
wc_InitSha256

◆ wc_Sha256Hash()

int wc_Sha256Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully …
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_Sha256Hash
wc_Sha256Final
wc_InitSha256

◆ wc_Sha256Update()

int wc_Sha256Update ( wc_Sha256 *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
sha256pointer to the sha256 structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

Sha256 sha256[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha256(sha256)) != 0) {
WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
wc_Sha256Update(sha256, data, len);
wc_Sha256Final(sha256, hash);
}
See also
wc_Sha256Hash
wc_Sha256Final
wc_InitSha256

◆ wc_Sha384Final()

int wc_Sha384Final ( wc_Sha384 *  sha384,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash.

Returns
0 Returned upon successfully finalizing.
Parameters
sha384pointer to the sha384 structure to use for encryption
hashByte array to hold hash value.

Example

Sha384 sha384[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha384(sha384)) != 0) {
WOLFSSL_MSG("wc_InitSha384 failed");
}
else {
wc_Sha384Update(sha384, data, len);
wc_Sha384Final(sha384, hash);
}
See also
wc_Sha384Hash
wc_Sha384Final
wc_InitSha384

◆ wc_Sha384Hash()

int wc_Sha384Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully hashing the data
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_Sha384Hash
wc_Sha384Final
wc_InitSha384

◆ wc_Sha384Update()

int wc_Sha384Update ( wc_Sha384 *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
sha384pointer to the sha384 structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

Sha384 sha384[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha384(sha384)) != 0) {
WOLFSSL_MSG("wc_InitSha384 failed");
}
else {
wc_Sha384Update(sha384, data, len);
wc_Sha384Final(sha384, hash);
}
See also
wc_Sha384Hash
wc_Sha384Final
wc_InitSha384

◆ wc_Sha3_224_Copy()

int wc_Sha3_224_Copy ( wc_Sha3 *  sha3,
wc_Sha3 *  dst 
)

Copy the state of the hash.

Returns
0 Returned upon successful copying.
Parameters
sha3pointer to the sha3 structure to copy
dstpointer to the sha3 structure to copy into

Example

wc_Sha3 sha3[1];
wc_Sha3 sha3_dup[1];
if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
wc_Sha3_224_Update(sha3, data, len);
wc_Sha3_224_Copy(sha3, sha3_dup);
}
int wc_Sha3_224_Copy(wc_Sha3 *sha3, wc_Sha3 *dst)
Copy the state of the hash.
See also
wc_Sha3_224Hash
wc_Sha3_224_Final
wc_InitSha3_224
wc_Sha3_224_GetHash

◆ wc_Sha3_224_Final()

int wc_Sha3_224_Final ( wc_Sha3 *  sha3,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct.

Returns
0 Returned upon successfully finalizing.
Parameters
sha3pointer to the sha3 structure to use for encryption
hashByte array to hold hash value.

Example

wc_Sha3 sha3[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
wc_Sha3_224_Update(sha3, data, len);
wc_Sha3_224_Final(sha3, hash);
}
See also
wc_Sha3_224Hash
wc_Sha3_224_GetHash
wc_InitSha3_224

◆ wc_Sha3_224_Free()

void wc_Sha3_224_Free ( wc_Sha3 *  )

Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.

Returns
none No returns.
Parameters
sha3Pointer to the sha3 structure to be freed.

Example

wc_Sha3 sha3;
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_224(&sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
wc_Sha3_224_Update(&sha3, data, len);
wc_Sha3_224_Final(&sha3, hash);
}
void wc_Sha3_224_Free(wc_Sha3 *)
Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.
See also
wc_InitSha3_224
wc_Sha3_224_Update
wc_Sha3_224_Final

◆ wc_Sha3_224_GetHash()

int wc_Sha3_224_GetHash ( wc_Sha3 *  sha3,
byte *  hash 
)

Gets hash data. Result is placed into hash. Does not reset state of sha3 struct.

Returns
0 Returned upon successful copying of the hash.
Parameters
sha3pointer to the sha3 structure to use for encryption
hashByte array to hold hash value.

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
wc_Sha3_224_Update(sha3, data, len);
wc_Sha3_224_GetHash(sha3, hash);
}
int wc_Sha3_224_GetHash(wc_Sha3 *sha3, byte *hash)
Gets hash data. Result is placed into hash. Does not reset state of sha3 struct.
See also
wc_Sha3_224Hash
wc_Sha3_224_Final
wc_InitSha3_224
wc_Sha3_224_Copy

◆ wc_Sha3_224_Update()

int wc_Sha3_224_Update ( wc_Sha3 *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
sha3pointer to the sha3 structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

wc_Sha3 sha3[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_224(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_224 failed");
}
else {
wc_Sha3_224_Update(sha3, data, len);
wc_Sha3_224_Final(sha3, hash);
}
See also
wc_Sha3_224Hash
wc_Sha3_224_Final
wc_InitSha3_224

◆ wc_Sha3_224Hash()

int wc_Sha3_224Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully hashing the data
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_InitSha3_224
wc_Sha3_224_Update
wc_Sha3_224_Final

◆ wc_Sha3_256_Copy()

int wc_Sha3_256_Copy ( wc_Sha3 *  sha3,
wc_Sha3 *  dst 
)

Copy the state of the hash.

Returns
0 Returned upon successful copying.
Parameters
sha3pointer to the sha3 structure to copy
dstpointer to the sha3 structure to copy into

Example

wc_Sha3 sha3[1];
wc_Sha3 sha3_dup[1];
if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
wc_Sha3_256_Update(sha3, data, len);
wc_Sha3_256_Copy(sha3, sha3_dup);
}
int wc_Sha3_256_Copy(wc_Sha3 *sha3, wc_Sha3 *dst)
Copy the state of the hash.
See also
wc_Sha3_256Hash
wc_Sha3_256_Final
wc_InitSha3_256
wc_Sha3_256_GetHash

◆ wc_Sha3_256_Final()

int wc_Sha3_256_Final ( wc_Sha3 *  sha3,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct.

Returns
0 Returned upon successfully finalizing.
Parameters
sha3pointer to the sha3 structure to use for encryption
hashByte array to hold hash value.

Example

wc_Sha3 sha3[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
wc_Sha3_256_Update(sha3, data, len);
wc_Sha3_256_Final(sha3, hash);
}
See also
wc_Sha3_256Hash
wc_Sha3_256_GetHash
wc_InitSha3_256

◆ wc_Sha3_256_Free()

void wc_Sha3_256_Free ( wc_Sha3 *  )

Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.

Returns
none No returns.
Parameters
sha3Pointer to the sha3 structure to be freed.

Example

wc_Sha3 sha3;
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_256(&sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
wc_Sha3_256_Update(&sha3, data, len);
wc_Sha3_256_Final(&sha3, hash);
}
void wc_Sha3_256_Free(wc_Sha3 *)
Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.
See also
wc_InitSha3_256
wc_Sha3_256_Update
wc_Sha3_256_Final

◆ wc_Sha3_256_GetHash()

int wc_Sha3_256_GetHash ( wc_Sha3 *  sha3,
byte *  hash 
)

Gets hash data. Result is placed into hash. Does not reset state of sha3 struct.

Returns
0 Returned upon successful copying of the hash.
Parameters
sha3pointer to the sha3 structure to use for encryption
hashByte array to hold hash value.

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
wc_Sha3_256_Update(sha3, data, len);
wc_Sha3_256_GetHash(sha3, hash);
}
int wc_Sha3_256_GetHash(wc_Sha3 *sha3, byte *hash)
Gets hash data. Result is placed into hash. Does not reset state of sha3 struct.
See also
wc_Sha3_256Hash
wc_Sha3_256_Final
wc_InitSha3_256
wc_Sha3_256_Copy

◆ wc_Sha3_256_Update()

int wc_Sha3_256_Update ( wc_Sha3 *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
sha3pointer to the sha3 structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

wc_Sha3 sha3[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_256(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_256 failed");
}
else {
wc_Sha3_256_Update(sha3, data, len);
wc_Sha3_256_Final(sha3, hash);
}
See also
wc_Sha3_256Hash
wc_Sha3_256_Final
wc_InitSha3_256

◆ wc_Sha3_256Hash()

int wc_Sha3_256Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully hashing the data
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_InitSha3_256
wc_Sha3_256_Update
wc_Sha3_256_Final

◆ wc_Sha3_384_Copy()

int wc_Sha3_384_Copy ( wc_Sha3 *  sha3,
wc_Sha3 *  dst 
)

Copy the state of the hash.

Returns
0 Returned upon successful copying.
Parameters
sha3pointer to the sha3 structure to copy
dstpointer to the sha3 structure to copy into

Example

wc_Sha3 sha3[1];
wc_Sha3 sha3_dup[1];
if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
wc_Sha3_384_Update(sha3, data, len);
wc_Sha3_384_Copy(sha3, sha3_dup);
}
int wc_Sha3_384_Copy(wc_Sha3 *sha3, wc_Sha3 *dst)
Copy the state of the hash.
See also
wc_Sha3_384Hash
wc_Sha3_384_Final
wc_InitSha3_384
wc_Sha3_384_GetHash

◆ wc_Sha3_384_Final()

int wc_Sha3_384_Final ( wc_Sha3 *  sha3,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct.

Returns
0 Returned upon successfully finalizing.
Parameters
sha3pointer to the sha3 structure to use for encryption
hashByte array to hold hash value.

Example

wc_Sha3 sha3[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
wc_Sha3_384_Update(sha3, data, len);
wc_Sha3_384_Final(sha3, hash);
}
See also
wc_Sha3_384Hash
wc_Sha3_384_GetHash
wc_InitSha3_384

◆ wc_Sha3_384_Free()

void wc_Sha3_384_Free ( wc_Sha3 *  )

Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.

Returns
none No returns.
Parameters
sha3Pointer to the sha3 structure to be freed.

Example

wc_Sha3 sha3;
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_384(&sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
wc_Sha3_384_Update(&sha3, data, len);
wc_Sha3_384_Final(&sha3, hash);
}
void wc_Sha3_384_Free(wc_Sha3 *)
Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.
See also
wc_InitSha3_384
wc_Sha3_384_Update
wc_Sha3_384_Final

◆ wc_Sha3_384_GetHash()

int wc_Sha3_384_GetHash ( wc_Sha3 *  sha3,
byte *  hash 
)

Gets hash data. Result is placed into hash. Does not reset state of sha3 struct.

Returns
0 Returned upon successful copying of the hash.
Parameters
sha3pointer to the sha3 structure to use for encryption
hashByte array to hold hash value.

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_38384ailed");
}
else {
wc_Sha3_384_Update(sha3, data, len);
wc_Sha3_384_GetHash(sha3, hash);
}
int wc_Sha3_384_GetHash(wc_Sha3 *sha3, byte *hash)
Gets hash data. Result is placed into hash. Does not reset state of sha3 struct.
See also
wc_Sha3_384Hash
wc_Sha3_384_Final
wc_InitSha3_384
wc_Sha3_384_Copy

◆ wc_Sha3_384_Update()

int wc_Sha3_384_Update ( wc_Sha3 *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
sha3pointer to the sha3 structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

wc_Sha3 sha3[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_384(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_384 failed");
}
else {
wc_Sha3_384_Update(sha3, data, len);
wc_Sha3_384_Final(sha3, hash);
}
See also
wc_Sha3_384Hash
wc_Sha3_384_Final
wc_InitSha3_384

◆ wc_Sha3_384Hash()

int wc_Sha3_384Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully hashing the data
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_InitSha3_384
wc_Sha3_384_Update
wc_Sha3_384_Final

◆ wc_Sha3_512_Copy()

int wc_Sha3_512_Copy ( wc_Sha3 *  sha3,
wc_Sha3 *  dst 
)

Copy the state of the hash.

Returns
0 Returned upon successful copying.
Parameters
sha3pointer to the sha3 structure to copy
dstpointer to the sha3 structure to copy into

Example

wc_Sha3 sha3[1];
wc_Sha3 sha3_dup[1];
if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
wc_Sha3_512_Update(sha3, data, len);
wc_Sha3_512_Copy(sha3, sha3_dup);
}
int wc_Sha3_512_Copy(wc_Sha3 *sha3, wc_Sha3 *dst)
Copy the state of the hash.
See also
wc_Sha3_512Hash
wc_Sha3_512_Final
wc_InitSha3_512
wc_Sha3_512_GetHash

◆ wc_Sha3_512_Final()

int wc_Sha3_512_Final ( wc_Sha3 *  sha3,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct.

Returns
0 Returned upon successfully finalizing.
Parameters
sha3pointer to the sha3 structure to use for encryption
hashByte array to hold hash value.

Example

wc_Sha3 sha3[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
wc_Sha3_512_Update(sha3, data, len);
wc_Sha3_512_Final(sha3, hash);
}
See also
wc_Sha3_512Hash
wc_Sha3_512_GetHash
wc_InitSha3_512

◆ wc_Sha3_512_Free()

void wc_Sha3_512_Free ( wc_Sha3 *  )

Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.

Returns
none No returns.
Parameters
sha3Pointer to the sha3 structure to be freed.

Example

wc_Sha3 sha3;
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_512(&sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
wc_Sha3_512_Update(&sha3, data, len);
wc_Sha3_512_Final(&sha3, hash);
}
void wc_Sha3_512_Free(wc_Sha3 *)
Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.
See also
wc_InitSha3_512
wc_Sha3_512_Update
wc_Sha3_512_Final

◆ wc_Sha3_512_GetHash()

int wc_Sha3_512_GetHash ( wc_Sha3 *  sha3,
byte *  hash 
)

Gets hash data. Result is placed into hash. Does not reset state of sha3 struct.

Returns
0 Returned upon successful copying of the hash.
Parameters
sha3pointer to the sha3 structure to use for encryption
hashByte array to hold hash value.

Example

wc_Sha3 sha3[1];
if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
wc_Sha3_512_Update(sha3, data, len);
wc_Sha3_512_GetHash(sha3, hash);
}
int wc_Sha3_512_GetHash(wc_Sha3 *sha3, byte *hash)
Gets hash data. Result is placed into hash. Does not reset state of sha3 struct.
See also
wc_Sha3_512Hash
wc_Sha3_512_Final
wc_InitSha3_512
wc_Sha3_512_Copy

◆ wc_Sha3_512_Update()

int wc_Sha3_512_Update ( wc_Sha3 *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
sha3pointer to the sha3 structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

wc_Sha3 sha3[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha3_512(sha3, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitSha3_512 failed");
}
else {
wc_Sha3_512_Update(sha3, data, len);
wc_Sha3_512_Final(sha3, hash);
}
See also
wc_Sha3_512Hash
wc_Sha3_512_Final
wc_InitSha3_512

◆ wc_Sha3_512Hash()

int wc_Sha3_512Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully hashing the inputted data
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_InitSha3_512
wc_Sha3_512_Update
wc_Sha3_512_Final

◆ wc_Sha512Final()

int wc_Sha512Final ( wc_Sha512 *  sha512,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash.

Returns
0 Returned upon successfully finalizing the hash.
Parameters
sha512pointer to the sha512 structure to use for encryption
hashByte array to hold hash value.

Example

Sha512 sha512[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha512(sha512)) != 0) {
WOLFSSL_MSG("wc_InitSha512 failed");
}
else {
wc_Sha512Update(sha512, data, len);
wc_Sha512Final(sha512, hash);
}
See also
wc_Sha512Hash
wc_Sha512Final
wc_InitSha512

◆ wc_Sha512Hash()

int wc_Sha512Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully hashing the inputted data
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_Sha512Hash
wc_Sha512Final
wc_InitSha512

◆ wc_Sha512Update()

int wc_Sha512Update ( wc_Sha512 *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
sha512pointer to the sha512 structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

Sha512 sha512[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha512(sha512)) != 0) {
WOLFSSL_MSG("wc_InitSha512 failed");
}
else {
wc_Sha512Update(sha512, data, len);
wc_Sha512Final(sha512, hash);
}
See also
wc_Sha512Hash
wc_Sha512Final
wc_InitSha512

◆ wc_ShaFinal()

int wc_ShaFinal ( wc_Sha *  sha,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash. Resets state of sha struct.

Returns
0 Returned upon successfully finalizing.
Parameters
shapointer to the sha structure to use for encryption
hashByte array to hold hash value.

Example

Sha sha[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha(sha)) != 0) {
WOLFSSL_MSG("wc_InitSha failed");
}
else {
wc_ShaUpdate(sha, data, len);
wc_ShaFinal(sha, hash);
}
See also
wc_ShaHash
wc_InitSha
wc_ShaGetHash

◆ wc_ShaFree()

void wc_ShaFree ( wc_Sha *  )

Used to clean up memory used by an initialized Sha struct. Note: this is only supported if you have WOLFSSL_TI_HASH defined.

Returns
No returns.
Parameters
shaPointer to the Sha struct to free.

Example

Sha sha;
wc_InitSha(&sha);
// Use sha
wc_ShaFree(&sha);
void wc_ShaFree(wc_Sha *)
Used to clean up memory used by an initialized Sha struct. Note: this is only supported if you have W...
See also
wc_InitSha
wc_ShaUpdate
wc_ShaFinal

◆ wc_ShaGetHash()

int wc_ShaGetHash ( wc_Sha *  sha,
byte *  hash 
)

Gets hash data. Result is placed into hash. Does not reset state of sha struct.

Returns
0 Returned upon successfully finalizing.
Parameters
shapointer to the sha structure to use for encryption
hashByte array to hold hash value.

Example

Sha sha[1];
if ((ret = wc_InitSha(sha)) != 0) {
WOLFSSL_MSG("wc_InitSha failed");
}
else {
wc_ShaUpdate(sha, data, len);
wc_ShaGetHash(sha, hash);
}
int wc_ShaGetHash(wc_Sha *sha, byte *hash)
Gets hash data. Result is placed into hash. Does not reset state of sha struct.
See also
wc_ShaHash
wc_ShaFinal
wc_InitSha

◆ wc_ShaHash()

int wc_ShaHash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully ….
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_ShaHash
wc_ShaFinal
wc_InitSha

◆ wc_Shake128_Absorb()

int wc_Shake128_Absorb ( wc_Shake *  sha,
const byte *  data,
word32  len 
)

Called to absorb the provided byte array of length len. Cannot be called incrementally.

Returns
0 Returned upon successfully absorbed the data.
Parameters
shakepointer to the shake structure to use for encryption
datathe data to be absorbed
lenlength of data to be absorbed

Example

wc_Shake shake[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
byte out[2 * WC_SHA3_128_BLOCK_SIZE];
int blocks = 2;
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
wc_Shake128_Absorb(shake, data, len);
wc_Shake128_SqueezeBlocks(shake, out, blocks);
}
int wc_Shake128_SqueezeBlocks(wc_Shake *shake, byte *out, word32 blockCnt)
Squeeze out more blocks of data. Result is placed into out. Can be called inrementally.
int wc_Shake128_Absorb(wc_Shake *sha, const byte *data, word32 len)
Called to absorb the provided byte array of length len. Cannot be called incrementally.
See also
wc_Shake128_SqueezeBlocks
wc_InitShake128

◆ wc_Shake128_Copy()

int wc_Shake128_Copy ( wc_Shake *  shake,
wc_Shake *  dst 
)

Copy the state of the hash.

Returns
0 Returned upon successful copying.
Parameters
shakepointer to the shake structure to copy
dstpointer to the shake structure to copy into

Example

wc_Shake shake[1];
wc_Shake shake_dup[1];
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
wc_Shake128_Update(shake, data, len);
wc_Shake128_Copy(shake, shake_dup);
}
int wc_Shake128_Copy(wc_Shake *shake, wc_Shake *dst)
Copy the state of the hash.
See also
wc_Shake128Hash
wc_Shake128_Final
wc_InitShake128
wc_Shake128_GetHash

◆ wc_Shake128_Final()

int wc_Shake128_Final ( wc_Shake *  shake,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash. Resets state of shake struct.

Returns
0 Returned upon successfully finalizing.
Parameters
shakepointer to the shake structure to use for encryption
hashByte array to hold hash value.

Example

wc_Shake shake[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
wc_Shake128_Update(shake, data, len);
wc_Shake128_Final(shake, hash);
}
See also
wc_Shake128Hash
wc_Shake128_GetHash
wc_InitShake128

◆ wc_Shake128_Free()

void wc_Shake128_Free ( wc_Shake *  )

Resets the wc_Shake structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.

Returns
none No returns.
Parameters
shakePointer to the shake structure to be freed.

Example

wc_Shake shake;
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitShake128(&shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
wc_Shake128_Update(&shake, data, len);
wc_Shake128_Final(&shake, hash);
}
void wc_Shake128_Free(wc_Shake *)
Resets the wc_Shake structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.
See also
wc_InitShake128
wc_Shake128_Update
wc_Shake128_Final

◆ wc_Shake128_GetHash()

int wc_Shake128_GetHash ( wc_Shake *  shake,
byte *  hash 
)

Gets hash data. Result is placed into hash. Does not reset state of shake struct.

Returns
0 Returned upon successful copying of the hash.
Parameters
shakepointer to the shake structure to use for encryption
hashByte array to hold hash value.

Example

wc_Shake shake[1];
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
wc_Shake128_Update(shake, data, len);
wc_Shake128_GetHash(shake, hash);
}
int wc_Shake128_GetHash(wc_Shake *shake, byte *hash)
Gets hash data. Result is placed into hash. Does not reset state of shake struct.
See also
wc_Shake128Hash
wc_Shake128_Final
wc_InitShake128
wc_Shake128_Copy

◆ wc_Shake128_SqueezeBlocks()

int wc_Shake128_SqueezeBlocks ( wc_Shake *  shake,
byte *  out,
word32  blockCnt 
)

Squeeze out more blocks of data. Result is placed into out. Can be called inrementally.

Returns
0 Returned upon successfully squeezing.
Parameters
shakepointer to the shake structure to use for encryption
hashByte array to hold output.
blocksNumber of blocks to squeeze out. Each block is WC_SHA3_128_BLOCK_SIZE bytes in length.

Example

wc_Shake shake[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
byte out[2 * WC_SHA3_128_BLOCK_SIZE];
int blocks = 2;
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
wc_Shake128_Absorb(shake, data, len);
wc_Shake128_SqueezeBlocks(shake, out, blocks);
}
See also
wc_Shake128_Absorb
wc_InitShake128

◆ wc_Shake128_Update()

int wc_Shake128_Update ( wc_Shake *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
shakepointer to the shake structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

wc_Shake shake[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitShake128(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake128 failed");
}
else {
wc_Shake128_Update(shake, data, len);
wc_Shake128_Final(shake, hash);
}
See also
wc_Shake128Hash
wc_Shake128_Final
wc_InitShake128

◆ wc_Shake128Hash()

int wc_Shake128Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully hashing the inputted data
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_InitShake128
wc_Shake128_Update
wc_Shake128_Final

◆ wc_Shake256_Absorb()

int wc_Shake256_Absorb ( wc_Shake *  sha,
const byte *  data,
word32  len 
)

Called to absorb the provided byte array of length len. Cannot be called incrementally.

Returns
0 Returned upon successfully absorbed the data.
Parameters
shakepointer to the shake structure to use for encryption
datathe data to be absorbed
lenlength of data to be absorbed

Example

wc_Shake shake[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
byte out[2 * WC_SHA3_256_BLOCK_SIZE];
int blocks = 2;
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
wc_Shake256_Absorb(shake, data, len);
wc_Shake256_SqueezeBlocks(shake, out, blocks);
}
int wc_Shake256_Absorb(wc_Shake *sha, const byte *data, word32 len)
Called to absorb the provided byte array of length len. Cannot be called incrementally.
int wc_Shake256_SqueezeBlocks(wc_Shake *shake, byte *out, word32 blockCnt)
Squeeze out more blocks of data. Result is placed into out. Can be called incrementally.
See also
wc_Shake256_SqueezeBlocks
wc_InitShake256

◆ wc_Shake256_Copy()

int wc_Shake256_Copy ( wc_Shake *  shake,
wc_Shake *  dst 
)

Copy the state of the hash.

Returns
0 Returned upon successful copying.
Parameters
shakepointer to the shake structure to copy
dstpointer to the shake structure to copy into

Example

wc_Shake shake[1];
wc_Shake shake_dup[1];
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
wc_Shake256_Update(shake, data, len);
wc_Shake256_Copy(shake, shake_dup);
}
int wc_Shake256_Copy(wc_Shake *shake, wc_Shake *dst)
Copy the state of the hash.
See also
wc_Shake256Hash
wc_Shake256_Final
wc_InitShake256
wc_Shake256_GetHash

◆ wc_Shake256_Final()

int wc_Shake256_Final ( wc_Shake *  shake,
byte *  hash 
)

Finalizes hashing of data. Result is placed into hash. Resets state of shake struct.

Returns
0 Returned upon successfully finalizing.
Parameters
shakepointer to the shake structure to use for encryption
hashByte array to hold hash value.

Example

wc_Shake shake[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
wc_Shake256_Update(shake, data, len);
wc_Shake256_Final(shake, hash);
}
See also
wc_Shake256Hash
wc_Shake256_GetHash
wc_InitShake256

◆ wc_Shake256_Free()

void wc_Shake256_Free ( wc_Shake *  )

Resets the wc_Shake structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.

Returns
none No returns.
Parameters
shakePointer to the shake structure to be freed.

Example

wc_Shake shake;
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitShake256(&shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
wc_Shake256_Update(&shake, data, len);
wc_Shake256_Final(&shake, hash);
}
void wc_Shake256_Free(wc_Shake *)
Resets the wc_Shake structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.
See also
wc_InitShake256
wc_Shake256_Update
wc_Shake256_Final

◆ wc_Shake256_GetHash()

int wc_Shake256_GetHash ( wc_Shake *  shake,
byte *  hash 
)

Gets hash data. Result is placed into hash. Does not reset state of shake struct.

Returns
0 Returned upon successful copying of the hash.
Parameters
shakepointer to the shake structure to use for encryption
hashByte array to hold hash value.

Example

wc_Shake shake[1];
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
wc_Shake256_Update(shake, data, len);
wc_Shake256_GetHash(shake, hash);
}
int wc_Shake256_GetHash(wc_Shake *shake, byte *hash)
Gets hash data. Result is placed into hash. Does not reset state of shake struct.
See also
wc_Shake256Hash
wc_Shake256_Final
wc_InitShake256
wc_Shake256_Copy

◆ wc_Shake256_SqueezeBlocks()

int wc_Shake256_SqueezeBlocks ( wc_Shake *  shake,
byte *  out,
word32  blockCnt 
)

Squeeze out more blocks of data. Result is placed into out. Can be called incrementally.

Returns
0 Returned upon successfully squeezing.
Parameters
shakepointer to the shake structure to use for encryption
hashByte array to hold output.
blocksNumber of blocks to squeeze out. Each block is WC_SHA3_256_BLOCK_SIZE bytes in length.

Example

wc_Shake shake[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
byte out[2 * WC_SHA3_256_BLOCK_SIZE];
int blocks = 2;
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
wc_Shake256_Absorb(shake, data, len);
wc_Shake256_SqueezeBlocks(shake, out, blocks);
}
See also
wc_Shake256_Absorb
wc_InitShake256

◆ wc_Shake256_Update()

int wc_Shake256_Update ( wc_Shake *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
shakepointer to the shake structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

wc_Shake shake[1];
byte data[] = { Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitShake256(shake, NULL, INVALID_DEVID)) != 0) {
WOLFSSL_MSG("wc_InitShake256 failed");
}
else {
wc_Shake256_Update(shake, data, len);
wc_Shake256_Final(shake, hash);
}
See also
wc_Shake256Hash
wc_Shake256_Final
wc_InitShake256

◆ wc_Shake256Hash()

int wc_Shake256Hash ( const byte *  data,
word32  len,
byte *  hash 
)

Convenience function, handles all the hashing and places the result into hash.

Returns
0 Returned upon successfully hashing the inputted data
Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Parameters
datathe data to hash
lenthe length of data
hashByte array to hold hash value.

Example

none
See also
wc_InitShake256
wc_Shake256_Update
wc_Shake256_Final

◆ wc_ShaUpdate()

int wc_ShaUpdate ( wc_Sha *  sha,
const byte *  data,
word32  len 
)

Can be called to continually hash the provided byte array of length len.

Returns
0 Returned upon successfully adding the data to the digest.
Parameters
shapointer to the sha structure to use for encryption
datathe data to be hashed
lenlength of data to be hashed

Example

Sha sha[1];
byte data[] = { // Data to be hashed };
word32 len = sizeof(data);
if ((ret = wc_InitSha(sha)) != 0) {
WOLFSSL_MSG("wc_InitSha failed");
}
else {
wc_ShaUpdate(sha, data, len);
wc_ShaFinal(sha, hash);
}
See also
wc_ShaHash
wc_ShaFinal
wc_InitSha