Skip to content

hash.h

Functions

Name
int wc_HashGetOID(enum wc_HashType hash_type)
This function will return the OID for the wc_HashType provided.
int wc_HashGetDigestSize(enum wc_HashType hash_type)
This function returns the size of the digest (output) for a hash_type. The returns size is used to make sure the output buffer provided to wc_Hash is large enough.
int wc_Hash(enum wc_HashType hash_type, const byte * data, word32 data_len, byte * hash, word32 hash_len)
This function performs a hash on the provided data buffer and returns it in the hash buffer provided.
int wc_Md5Hash(const byte * data, word32 len, byte * hash)
Convenience function, handles all the hashing and places the result into hash.
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.

Functions Documentation

function wc_HashGetOID

int wc_HashGetOID(
    enum wc_HashType hash_type
)

This function will return the OID for the wc_HashType provided.

Parameters:

  • hash_type A hash type from the “enum wc_HashType” such as “WC_HASH_TYPE_SHA256”.

See:

Return:

  • OID returns value greater than 0
  • HASH_TYPE_E hash type not supported.
  • BAD_FUNC_ARG one of the provided arguments is incorrect.

Example

enum wc_HashType hash_type = WC_HASH_TYPE_SHA256;
int oid = wc_HashGetOID(hash_type);
if (oid > 0) {
    // Success
}

function wc_HashGetDigestSize

int wc_HashGetDigestSize(
    enum wc_HashType hash_type
)

This function returns the size of the digest (output) for a hash_type. The returns size is used to make sure the output buffer provided to wc_Hash is large enough.

Parameters:

  • hash_type A hash type from the “enum wc_HashType” such as “WC_HASH_TYPE_SHA256”.

See: wc_Hash

Return:

  • Success A positive return value indicates the digest size for the hash.
  • Error Returns HASH_TYPE_E if hash_type is not supported.
  • Failure Returns BAD_FUNC_ARG if an invalid hash_type was used.

Example

int hash_len = wc_HashGetDigestSize(hash_type);
if (hash_len <= 0) {
WOLFSSL_MSG("Invalid hash type/len");
return BAD_FUNC_ARG;
}

function wc_Hash

int wc_Hash(
    enum wc_HashType hash_type,
    const byte * data,
    word32 data_len,
    byte * hash,
    word32 hash_len
)

This function performs a hash on the provided data buffer and returns it in the hash buffer provided.

Parameters:

  • hash_type A hash type from the “enum wc_HashType” such as “WC_HASH_TYPE_SHA256”.
  • data Pointer to buffer containing the data to hash.
  • data_len Length of the data buffer.
  • hash Pointer to buffer used to output the final hash to.
  • hash_len Length of the hash buffer.

See: wc_HashGetDigestSize

Return: 0 Success, else error (such as BAD_FUNC_ARG or BUFFER_E).

Example

enum wc_HashType hash_type = WC_HASH_TYPE_SHA256;
int hash_len = wc_HashGetDigestSize(hash_type);
if (hash_len > 0) {
    int ret = wc_Hash(hash_type, data, data_len, hash_data, hash_len);
    if(ret == 0) {
        // Success
    }
}

function wc_Md5Hash

int wc_Md5Hash(
    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

const byte* data;
word32 data_len;
byte* hash;
int ret;
...
ret = wc_Md5Hash(data, data_len, hash);
if (ret != 0) {
     // Md5 Hash Failure Case.
}

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

Source code


int wc_HashGetOID(enum wc_HashType hash_type);

int wc_HashGetDigestSize(enum wc_HashType hash_type);

int wc_Hash(enum wc_HashType hash_type,
    const byte* data, word32 data_len,
    byte* hash, word32 hash_len);

int wc_Md5Hash(const byte* data, word32 len, byte* hash);

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

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

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

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

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

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

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

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

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

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

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

Updated on 2022-10-05 at 08:31:05 +0000