Algorithms - SHA 128/224/256/384/512
Functions
Name | |
---|---|
int | wc_ShaHash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Sha224Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Sha256Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Sha384Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Sha512Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Sha3_224Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Sha3_256Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Sha3_384Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Sha3_512Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Shake128Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_Shake256Hash(const byte * data, word32 len, byte * hash) Convenience function, handles all the hashing and places the result into hash. |
int | wc_InitSha(wc_Sha * ) This function initializes SHA. This is automatically called by wc_ShaHash. |
int | wc_ShaUpdate(wc_Sha * sha, const byte * data, word32 len) Can be called to continually hash the provided byte array of length len. |
int | wc_ShaFinal(wc_Sha * sha, byte * hash) Finalizes hashing of data. Result is placed into hash. Resets state of sha struct. |
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. |
int | wc_ShaGetHash(wc_Sha * sha, byte * hash) Gets hash data. Result is placed into hash. Does not reset state of sha struct. |
int | wc_InitSha256(wc_Sha256 * ) This function initializes SHA256. This is automatically called by wc_Sha256Hash. |
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_Sha256Final(wc_Sha256 * sha256, byte * hash) Finalizes hashing of data. Result is placed into hash. Resets state of sha256 struct. |
void | wc_Sha256Free(wc_Sha256 * ) Resets the Sha256 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. |
int | wc_Sha256GetHash(wc_Sha256 * sha256, byte * hash) Gets hash data. Result is placed into hash. Does not reset state of sha256 struct. |
int | wc_InitSha224(wc_Sha224 * ) Used to initialize a Sha224 struct. |
int | wc_Sha224Update(wc_Sha224 * sha224, const byte * data, word32 len) Can be called to continually hash the provided byte array of length len. |
int | wc_Sha224Final(wc_Sha224 * sha224, byte * hash) Finalizes hashing of data. Result is placed into hash. Resets state of sha224 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. |
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. |
void | wc_Sha3_224_Free(wc_Sha3 * ) Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. |
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. |
int | wc_Sha3_224_Copy(wc_Sha3 * sha3, wc_Sha3 * dst) Copy the state of the 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. |
void | wc_Sha3_256_Free(wc_Sha3 * ) Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. |
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. |
int | wc_Sha3_256_Copy(wc_Sha3 * sha3, wc_Sha3 * dst) Copy the state of the 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_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_384_Final(wc_Sha3 * sha3, byte * hash) Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct. |
void | wc_Sha3_384_Free(wc_Sha3 * ) Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. |
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. |
int | wc_Sha3_384_Copy(wc_Sha3 * sha3, wc_Sha3 * dst) Copy the state of the hash. |
int | wc_InitSha3_512(wc_Sha3 * sha3, void * heap, int devId) This function initializes SHA3-512. This is automatically called by wc_Sha3_512Hash. |
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_Sha3_512_Final(wc_Sha3 * sha3, byte * hash) Finalizes hashing of data. Result is placed into hash. Resets state of sha3 struct. |
void | wc_Sha3_512_Free(wc_Sha3 * ) Resets the wc_Sha3 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. |
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. |
int | wc_Sha3_512_Copy(wc_Sha3 * sha3, wc_Sha3 * dst) Copy the state of the 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_Update(wc_Shake * sha, const byte * data, word32 len) Can be called to continually hash the provided byte array of length len. |
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_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_Shake128_SqueezeBlocks(wc_Shake * shake, byte * out, word32 blockCnt) Squeeze out more blocks of data. Result is placed into out. Can be called inrementally. |
void | wc_Shake128_Free(wc_Shake * ) Resets the wc_Shake structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. |
int | wc_Shake128_GetHash(wc_Shake * shake, byte * hash) Gets hash data. Result is placed into hash. Does not reset state of shake struct. |
int | wc_Shake128_Copy(wc_Shake * shake, wc_Shake * dst) Copy the state of the 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, word32 hashLen) Finalizes hashing of data. Result is placed into hash. Resets state of shake struct. |
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. |
void | wc_Shake256_Free(wc_Shake * ) Resets the wc_Shake structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. |
int | wc_Shake256_GetHash(wc_Shake * shake, byte * hash) Gets hash data. Result is placed into hash. Does not reset state of shake struct. |
int | wc_Shake256_Copy(wc_Shake * shake, wc_Shake * dst) Copy the state of the hash. |
int | wc_InitSha512(wc_Sha512 * ) This function initializes SHA512. This is automatically called by wc_Sha512Hash. |
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_Sha512Final(wc_Sha512 * sha512, byte * hash) Finalizes hashing of data. Result is placed into 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. |
Functions Documentation
function wc_ShaHash
int wc_ShaHash(
const byte * data,
word32 len,
byte * hash
)
Convenience function, handles all the hashing and places the result into hash.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 0 Returned upon successfully ….
- Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Example
none
function wc_Sha224Hash
int wc_Sha224Hash(
const byte * data,
word32 len,
byte * hash
)
Convenience function, handles all the hashing and places the result into hash.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 0 Success
- <0 Error
Example
none
function wc_Sha256Hash
int wc_Sha256Hash(
const byte * data,
word32 len,
byte * hash
)
Convenience function, handles all the hashing and places the result into hash.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 0 Returned upon successfully …
- Memory_E memory error, unable to allocate memory. This is only possible with the small stack option enabled.
Example
none
function wc_Sha384Hash
int wc_Sha384Hash(
const byte * data,
word32 len,
byte * hash
)
Convenience function, handles all the hashing and places the result into hash.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 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.
Example
none
function wc_Sha512Hash
int wc_Sha512Hash(
const byte * data,
word32 len,
byte * hash
)
Convenience function, handles all the hashing and places the result into hash.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 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.
Example
none
function 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.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 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.
Example
none
function 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.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 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.
Example
none
function 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.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 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.
Example
none
function 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.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 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.
Example
none
function wc_Shake128Hash
int wc_Shake128Hash(
const byte * data,
word32 len,
byte * hash
)
Convenience function, handles all the hashing and places the result into hash.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 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.
Example
none
function wc_Shake256Hash
int wc_Shake256Hash(
const byte * data,
word32 len,
byte * hash
)
Convenience function, handles all the hashing and places the result into hash.
Parameters:
- data the data to hash
- len the length of data
- hash Byte array to hold hash value.
See:
Return:
- 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.
Example
none
function wc_InitSha
int wc_InitSha(
wc_Sha *
)
This function initializes SHA. This is automatically called by wc_ShaHash.
Parameters:
- sha pointer to the sha structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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);
}
function 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.
Parameters:
- sha pointer to the sha structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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);
}
function wc_ShaFinal
int wc_ShaFinal(
wc_Sha * sha,
byte * hash
)
Finalizes hashing of data. Result is placed into hash. Resets state of sha struct.
Parameters:
- sha pointer to the sha structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
function 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.
Parameters:
- sha Pointer to the Sha struct to free.
See:
Return: No returns.
Example
Sha sha;
wc_InitSha(&sha);
// Use sha
wc_ShaFree(&sha);
function 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.
Parameters:
- sha pointer to the sha structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
function wc_InitSha256
int wc_InitSha256(
wc_Sha256 *
)
This function initializes SHA256. This is automatically called by wc_Sha256Hash.
Parameters:
- sha256 pointer to the sha256 structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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);
}
function 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.
Parameters:
- sha256 pointer to the sha256 structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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);
}
function wc_Sha256Final
int wc_Sha256Final(
wc_Sha256 * sha256,
byte * hash
)
Finalizes hashing of data. Result is placed into hash. Resets state of sha256 struct.
Parameters:
- sha256 pointer to the sha256 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
function wc_Sha256Free
void wc_Sha256Free(
wc_Sha256 *
)
Resets the Sha256 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined.
Parameters:
- sha256 Pointer to the sha256 structure to be freed.
See:
Return: none No returns.
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);
}
function 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.
Parameters:
- sha256 pointer to the sha256 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
function wc_InitSha224
int wc_InitSha224(
wc_Sha224 *
)
Used to initialize a Sha224 struct.
Parameters:
- sha224 Pointer to a Sha224 struct to initialize.
See:
Return:
- 0 Success
- 1 Error returned because sha224 is null.
Example
Sha224 sha224;
if(wc_InitSha224(&sha224) != 0)
{
// Handle error
}
function 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.
Parameters:
- sha224 Pointer to the Sha224 structure to use for encryption.
- data Data to be hashed.
- len Length of data to be hashed.
See:
Return:
- 0 Success
- 1 Error returned if function fails.
- BAD_FUNC_ARG Error returned if sha224 or data is null.
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);
}
function wc_Sha224Final
int wc_Sha224Final(
wc_Sha224 * sha224,
byte * hash
)
Finalizes hashing of data. Result is placed into hash. Resets state of sha224 struct.
Parameters:
- sha224 pointer to the sha224 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return:
- 0 Success
- <0 Error
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
function 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.
Parameters:
- sha3 Pointer to the sha3 structure to be freed.
See:
Return: none No returns.
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);
wc_Sha3_224_Free(&sha3);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successful copying of the hash.
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);
}
function wc_Sha3_224_Copy
int wc_Sha3_224_Copy(
wc_Sha3 * sha3,
wc_Sha3 * dst
)
Copy the state of the hash.
Parameters:
- sha3 pointer to the sha3 structure to copy
- dst pointer to the sha3 structure to copy into
See:
Return: 0 Returned upon successful copying.
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
function 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.
Parameters:
- sha3 Pointer to the sha3 structure to be freed.
See:
Return: none No returns.
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);
wc_Sha3_256_Free(&sha3);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successful copying of the hash.
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);
}
function wc_Sha3_256_Copy
int wc_Sha3_256_Copy(
wc_Sha3 * sha3,
wc_Sha3 * dst
)
Copy the state of the hash.
Parameters:
- sha3 pointer to the sha3 structure to copy
- dst pointer to the sha3 structure to copy into
See:
Return: 0 Returned upon successful copying.
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
function 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.
Parameters:
- sha3 Pointer to the sha3 structure to be freed.
See:
Return: none No returns.
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);
wc_Sha3_384_Free(&sha3);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successful copying of the hash.
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);
}
function wc_Sha3_384_Copy
int wc_Sha3_384_Copy(
wc_Sha3 * sha3,
wc_Sha3 * dst
)
Copy the state of the hash.
Parameters:
- sha3 pointer to the sha3 structure to copy
- dst pointer to the sha3 structure to copy into
See:
Return: 0 Returned upon successful copying.
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
function 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.
Parameters:
- sha3 Pointer to the sha3 structure to be freed.
See:
Return: none No returns.
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);
wc_Sha3_512_Free(&sha3);
}
function 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.
Parameters:
- sha3 pointer to the sha3 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successful copying of the hash.
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);
}
function wc_Sha3_512_Copy
int wc_Sha3_512_Copy(
wc_Sha3 * sha3,
wc_Sha3 * dst
)
Copy the state of the hash.
Parameters:
- sha3 pointer to the sha3 structure to copy
- dst pointer to the sha3 structure to copy into
See:
Return: 0 Returned upon successful copying.
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);
}
function wc_InitShake128
int wc_InitShake128(
wc_Shake * shake,
void * heap,
int devId
)
This function initializes SHAKE-128. This is automatically called by wc_Shake128Hash.
Parameters:
- shake pointer to the shake structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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);
}
function 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.
Parameters:
- shake pointer to the shake structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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);
}
function 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.
Parameters:
- shake pointer to the shake structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
function 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.
Parameters:
- shake pointer to the shake structure to use for encryption
- data the data to be absorbed
- len length of data to be absorbed
See:
Return: 0 Returned upon successfully absorbed the data.
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);
}
function 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.
Parameters:
- shake pointer to the shake structure to use for encryption
- hash Byte array to hold output.
- blocks Number of blocks to squeeze out. Each block is WC_SHA3_128_BLOCK_SIZE bytes in length.
See:
Return: 0 Returned upon successfully squeezing.
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);
}
function 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.
Parameters:
- shake Pointer to the shake structure to be freed.
See:
Return: none No returns.
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);
wc_Shake128_Free(&shake);
}
function 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.
Parameters:
- shake pointer to the shake structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successful copying of the hash.
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);
}
function wc_Shake128_Copy
int wc_Shake128_Copy(
wc_Shake * shake,
wc_Shake * dst
)
Copy the state of the hash.
Parameters:
- shake pointer to the shake structure to copy
- dst pointer to the shake structure to copy into
See:
Return: 0 Returned upon successful copying.
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);
}
function wc_InitShake256
int wc_InitShake256(
wc_Shake * shake,
void * heap,
int devId
)
This function initializes SHAKE-256. This is automatically called by wc_Shake256Hash.
Parameters:
- shake pointer to the shake structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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, sizeof(hash));
}
function 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.
Parameters:
- shake pointer to the shake structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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, sizeof(hash));
}
function wc_Shake256_Final
int wc_Shake256_Final(
wc_Shake * shake,
byte * hash,
word32 hashLen
)
Finalizes hashing of data. Result is placed into hash. Resets state of shake struct.
Parameters:
- shake pointer to the shake structure to use for encryption
- hash Byte array to hold hash value.
- hashLen Size of hash in bytes.
See:
Return: 0 Returned upon successfully finalizing.
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, sizeof(hash));
}
function 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.
Parameters:
- shake pointer to the shake structure to use for encryption
- data the data to be absorbed
- len length of data to be absorbed
See:
Return: 0 Returned upon successfully absorbed the data.
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);
}
function 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.
Parameters:
- shake pointer to the shake structure to use for encryption
- hash Byte array to hold output.
- blocks Number of blocks to squeeze out. Each block is WC_SHA3_256_BLOCK_SIZE bytes in length.
See:
Return: 0 Returned upon successfully squeezing.
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);
}
function 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.
Parameters:
- shake Pointer to the shake structure to be freed.
See:
Return: none No returns.
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, sizeof(hash));
wc_Shake256_Free(&shake);
}
function 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.
Parameters:
- shake pointer to the shake structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successful copying of the hash.
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);
}
function wc_Shake256_Copy
int wc_Shake256_Copy(
wc_Shake * shake,
wc_Shake * dst
)
Copy the state of the hash.
Parameters:
- shake pointer to the shake structure to copy
- dst pointer to the shake structure to copy into
See:
Return: 0 Returned upon successful copying.
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);
}
function wc_InitSha512
int wc_InitSha512(
wc_Sha512 *
)
This function initializes SHA512. This is automatically called by wc_Sha512Hash.
Parameters:
- sha512 pointer to the sha512 structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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);
}
function 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.
Parameters:
- sha512 pointer to the sha512 structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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);
}
function wc_Sha512Final
int wc_Sha512Final(
wc_Sha512 * sha512,
byte * hash
)
Finalizes hashing of data. Result is placed into hash.
Parameters:
- sha512 pointer to the sha512 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing the hash.
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);
}
function wc_InitSha384
int wc_InitSha384(
wc_Sha384 *
)
This function initializes SHA384. This is automatically called by wc_Sha384Hash.
Parameters:
- sha384 pointer to the sha384 structure to use for encryption
See:
Return: 0 Returned upon successfully initializing
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);
}
function 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.
Parameters:
- sha384 pointer to the sha384 structure to use for encryption
- data the data to be hashed
- len length of data to be hashed
See:
Return: 0 Returned upon successfully adding the data to the digest.
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);
}
function wc_Sha384Final
int wc_Sha384Final(
wc_Sha384 * sha384,
byte * hash
)
Finalizes hashing of data. Result is placed into hash.
Parameters:
- sha384 pointer to the sha384 structure to use for encryption
- hash Byte array to hold hash value.
See:
Return: 0 Returned upon successfully finalizing.
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);
}
Updated on 2024-12-20 at 01:22:24 +0000