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

Functions

WOLFSSL_API int wc_ShaHash (const byte *, word32, byte *)
 Convenience function, handles all the hashing and places the result into hash. More...
 
WOLFSSL_API int wc_Sha256Hash (const byte *, word32, byte *)
 Convenience function, handles all the hashing and places the result into hash. More...
 
WOLFSSL_API int wc_Sha224Hash (const byte *, word32, byte *)
 Convenience function, handles all the hashing and places the result into hash. More...
 
WOLFSSL_API int wc_Sha512Hash (const byte *, word32, byte *)
 Convenience function, handles all the hashing and places the result into hash. More...
 
WOLFSSL_API int wc_Sha384Hash (const byte *, word32, byte *)
 Convenience function, handles all the hashing and places the result into hash. More...
 
WOLFSSL_API int wc_InitSha (wc_Sha *)
 This function initializes SHA. This is automatically called by wc_ShaHash. More...
 
WOLFSSL_API int wc_ShaUpdate (wc_Sha *, const byte *, word32)
 Can be called to continually hash the provided byte array of length len. More...
 
WOLFSSL_API int wc_ShaFinal (wc_Sha *, byte *)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha struct. More...
 
WOLFSSL_API 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...
 
WOLFSSL_API int wc_ShaGetHash (wc_Sha *, byte *)
 Gets hash data. Result is placed into hash. Does not reset state of sha struct. More...
 
WOLFSSL_API int wc_InitSha256 (wc_Sha256 *)
 This function initializes SHA256. This is automatically called by wc_Sha256Hash. More...
 
WOLFSSL_API int wc_Sha256Update (wc_Sha256 *, const byte *, word32)
 Can be called to continually hash the provided byte array of length len. More...
 
WOLFSSL_API int wc_Sha256Final (wc_Sha256 *, byte *)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha256 struct. More...
 
WOLFSSL_API void wc_Sha256Free (wc_Sha256 *)
 Resets the Sha256 structure. Note: this is only supported if you have WOLFSSL_TI_HASH defined. More...
 
WOLFSSL_API int wc_Sha256GetHash (wc_Sha256 *, byte *)
 Gets hash data. Result is placed into hash. Does not reset state of sha256 struct. More...
 
WOLFSSL_API int wc_InitSha224 (wc_Sha224 *)
 Used to initialize a Sha224 struct. More...
 
WOLFSSL_API int wc_Sha224Update (wc_Sha224 *, const byte *, word32)
 Can be called to continually hash the provided byte array of length len. More...
 
WOLFSSL_API int wc_Sha224Final (wc_Sha224 *, byte *)
 Finalizes hashing of data. Result is placed into hash. Resets state of sha224 struct. More...
 
WOLFSSL_API int wc_InitSha512 (wc_Sha512 *)
 This function initializes SHA512. This is automatically called by wc_Sha512Hash. More...
 
WOLFSSL_API int wc_Sha512Update (wc_Sha512 *, const byte *, word32)
 Can be called to continually hash the provided byte array of length len. More...
 
WOLFSSL_API int wc_Sha512Final (wc_Sha512 *, byte *)
 Finalizes hashing of data. Result is placed into hash. More...
 
WOLFSSL_API int wc_InitSha384 (wc_Sha384 *)
 This function initializes SHA384. This is automatically called by wc_Sha384Hash. More...
 
WOLFSSL_API int wc_Sha384Update (wc_Sha384 *, const byte *, word32)
 Can be called to continually hash the provided byte array of length len. More...
 
WOLFSSL_API int wc_Sha384Final (wc_Sha384 *, byte *)
 Finalizes hashing of data. Result is placed into hash. More...
 

Detailed Description

Function Documentation

◆ wc_InitSha()

int wc_InitSha ( wc_Sha 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);
}
See also
wc_ShaHash
wc_ShaUpdate
wc_ShaFinal

◆ wc_InitSha224()

WOLFSSL_API 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
}
See also
wc_Sha224Hash
wc_Sha224Update
wc_Sha224Final

◆ wc_InitSha256()

int wc_InitSha256 ( wc_Sha256 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_InitSha356(sha256)) != 0) {
WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
wc_Sha256Update(sha256, data, len);
wc_Sha256Final(sha256, hash);
}
See also
wc_Sha256Hash
wc_Sha256Update
wc_Sha256Final

◆ wc_InitSha384()

int wc_InitSha384 ( wc_Sha384 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);
}
See also
wc_Sha384Hash
wc_Sha384Update
wc_Sha384Final

◆ wc_InitSha512()

int wc_InitSha512 ( wc_Sha512 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);
}
See also
wc_Sha512Hash
wc_Sha512Update
wc_Sha512Final

◆ 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()

WOLFSSL_API int wc_Sha224Hash ( const byte *  ,
word32  ,
byte *   
)

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_InitSha356(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 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);
}
See also
wc_InitSha256
wc_Sha256Update
wc_Sha256Final

◆ wc_Sha256GetHash()

WOLFSSL_API int wc_Sha256GetHash ( wc_Sha256 ,
byte *   
)

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_InitSha356(sha256)) != 0) {
WOLFSSL_MSG("wc_InitSha256 failed");
}
else {
wc_Sha256Update(sha256, data, len);
wc_Sha256GetHash(sha256, hash);
}
See also
wc_Sha256Hash
wc_Sha256Final
wc_InitSha256

◆ wc_Sha256Hash()

WOLFSSL_API int wc_Sha256Hash ( const byte *  ,
word32  ,
byte *   
)

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 sha256,
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()

WOLFSSL_API int wc_Sha384Hash ( const byte *  ,
word32  ,
byte *   
)

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 sha384,
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_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()

WOLFSSL_API int wc_Sha512Hash ( const byte *  ,
word32  ,
byte *   
)

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 sha512,
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 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);
See also
wc_InitSha
wc_ShaUpdate
wc_ShaFinal

◆ wc_ShaGetHash()

WOLFSSL_API int wc_ShaGetHash ( wc_Sha ,
byte *   
)

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);
}
See also
wc_ShaHash
wc_ShaFinal
wc_InitSha

◆ wc_ShaHash()

WOLFSSL_API int wc_ShaHash ( const byte *  ,
word32  ,
byte *   
)

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_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