Hashing
Description
Provides cryptographic hash functions (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512).
Provides API for one-way hashing functions.
Data Structures |
|
struct | sl_se_sha1_multipart_context_t |
SHA-1 streaming context.
|
|
struct | sl_se_sha224_multipart_context_t |
SHA-224 streaming context.
|
|
struct | sl_se_sha256_multipart_context_t |
SHA-256 streaming context.
|
|
struct | sl_se_sha384_multipart_context_t |
SHA-384 streaming context.
|
|
struct | sl_se_sha512_multipart_context_t |
SHA-512 streaming context.
|
|
Functions |
|
sl_status_t | sl_se_hash ( sl_se_command_context_t *cmd_ctx, sl_se_hash_type_t hash_type, const uint8_t *message, unsigned int message_size, uint8_t *digest, size_t digest_len) |
Produce a message digest (a hash block) using the input data.
|
|
sl_status_t | sl_se_hash_sha1_multipart_starts ( sl_se_sha1_multipart_context_t *sha1_ctx, sl_se_command_context_t *cmd_ctx) |
Prepare a SHA1 hash streaming command context object.
|
|
sl_status_t | sl_se_hash_sha224_multipart_starts ( sl_se_sha224_multipart_context_t *sha224_ctx, sl_se_command_context_t *cmd_ctx) |
Prepare a SHA224 hash streaming command context object.
|
|
sl_status_t | sl_se_hash_sha256_multipart_starts ( sl_se_sha256_multipart_context_t *sha256_ctx, sl_se_command_context_t *cmd_ctx) |
Prepare a SHA256 hash streaming command context object.
|
|
sl_status_t | sl_se_hash_sha384_multipart_starts ( sl_se_sha384_multipart_context_t *sha384_ctx, sl_se_command_context_t *cmd_ctx) |
Prepare a SHA384 streaming command context object.
|
|
sl_status_t | sl_se_hash_sha512_multipart_starts ( sl_se_sha512_multipart_context_t *sha512_ctx, sl_se_command_context_t *cmd_ctx) |
Prepare a SHA512 streaming command context object.
|
|
sl_status_t | sl_se_hash_multipart_starts (void *hash_type_ctx, sl_se_command_context_t *cmd_ctx, sl_se_hash_type_t hash_type) |
Prepare a hash streaming command context object.
|
|
sl_status_t | sl_se_hash_multipart_update (void *hash_type_ctx, sl_se_command_context_t *cmd_ctx, const uint8_t *input, size_t input_len) |
Feeds an input buffer into an ongoing hash computation.
|
|
sl_status_t | sl_se_hash_multipart_finish (void *hash_type_ctx, sl_se_command_context_t *cmd_ctx, uint8_t *digest_out, size_t digest_len) |
Finish a hash streaming operation and return the resulting hash digest.
|
|
Macros |
|
#define | SL_SE_HASH_STREAMING_INIT_DEFAULT { NULL, 0, 0, NULL } |
Default streaming hash context.
|
|
#define | SL_SE_SHA1_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA1 streaming hash context.
|
|
#define | SL_SE_SHA224_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA224 streaming hash context.
|
|
#define | SL_SE_SHA256_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA256 streaming hash context.
|
|
#define | SL_SE_SHA384_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA384 streaming hash context.
|
|
#define | SL_SE_SHA512_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA512 streaming hash context.
|
|
Enumerations |
|
enum |
sl_se_hash_type_t
{
SL_SE_HASH_NONE , SL_SE_HASH_SHA1 , SL_SE_HASH_SHA224 , SL_SE_HASH_SHA256 , SL_SE_HASH_SHA384 , SL_SE_HASH_SHA512 } |
Hash algorithms.
|
|
Function Documentation
◆ sl_se_hash()
sl_status_t sl_se_hash | ( | sl_se_command_context_t * |
cmd_ctx,
|
sl_se_hash_type_t |
hash_type,
|
||
const uint8_t * |
message,
|
||
unsigned int |
message_size,
|
||
uint8_t * |
digest,
|
||
size_t |
digest_len
|
||
) |
Produce a message digest (a hash block) using the input data.
This function generates a message digest adhering to the given inputs. For instance, if the algorithm is chosen to be SHA-256, it will generate a 32 bytes message digest computed based on the input message. This function supports SHA-1, SHA-256 and SHA-512 algorithms.
- Parameters
-
[in] cmd_ctx
Pointer to an SE command context object. [in] hash_type
Which hashing algorithm to use. [in] message
Pointer to the message buffer to compute the hash/digest from. [in] message_size
Number of bytes in message. [out] digest
Pointer to block of memory to store the final digest. [in] digest_len
The length of the message digest (hash), must be at least the size of the corresponding hash type.
- Returns
- Status code, sl_status.h.
◆ sl_se_hash_sha1_multipart_starts()
sl_status_t sl_se_hash_sha1_multipart_starts | ( | sl_se_sha1_multipart_context_t * |
sha1_ctx,
|
sl_se_command_context_t * |
cmd_ctx
|
||
) |
Prepare a SHA1 hash streaming command context object.
Prepare a SHA1 hash streaming command context object to be used in subsequent calls to hash streaming functions sl_se_hash_multipart_update() and sl_se_hash_multipart_finish() .
- Parameters
-
[in] sha1_ctx
Pointer to a SHA1 streaming context object. [in] cmd_ctx
Pointer to an SE command context object.
- Returns
- Status code, sl_status.h.
◆ sl_se_hash_sha224_multipart_starts()
sl_status_t sl_se_hash_sha224_multipart_starts | ( | sl_se_sha224_multipart_context_t * |
sha224_ctx,
|
sl_se_command_context_t * |
cmd_ctx
|
||
) |
Prepare a SHA224 hash streaming command context object.
Prepare a SHA224 hash streaming command context object to be used in subsequent calls to hash streaming functions sl_se_hash_multipart_update() and sl_se_hash_multipart_finish() .
- Parameters
-
[in] sha224_ctx
Pointer to a SHA224 streaming context object. [in] cmd_ctx
Pointer to an SE command context object.
- Returns
- Status code, sl_status.h.
◆ sl_se_hash_sha256_multipart_starts()
sl_status_t sl_se_hash_sha256_multipart_starts | ( | sl_se_sha256_multipart_context_t * |
sha256_ctx,
|
sl_se_command_context_t * |
cmd_ctx
|
||
) |
Prepare a SHA256 hash streaming command context object.
Prepare a SHA256 hash streaming command context object to be used in subsequent calls to hash streaming functions sl_se_hash_multipart_update() and sl_se_hash_multipart_finish() .
- Parameters
-
[in] sha256_ctx
Pointer to a SHA256 streaming context object. [in] cmd_ctx
Pointer to an SE command context object.
- Returns
- Status code, sl_status.h.
◆ sl_se_hash_sha384_multipart_starts()
sl_status_t sl_se_hash_sha384_multipart_starts | ( | sl_se_sha384_multipart_context_t * |
sha384_ctx,
|
sl_se_command_context_t * |
cmd_ctx
|
||
) |
Prepare a SHA384 streaming command context object.
Prepare a SHA384 hash streaming command context object to be used in subsequent calls to hash streaming functions sl_se_hash_multipart_update() and sl_se_hash_multipart_finish() .
- Parameters
-
[in] sha384_ctx
Pointer to a SHA384 streaming context object. [in] cmd_ctx
Pointer to an SE command context object.
- Returns
- Status code, sl_status.h.
◆ sl_se_hash_sha512_multipart_starts()
sl_status_t sl_se_hash_sha512_multipart_starts | ( | sl_se_sha512_multipart_context_t * |
sha512_ctx,
|
sl_se_command_context_t * |
cmd_ctx
|
||
) |
Prepare a SHA512 streaming command context object.
Prepare a SHA512 hash streaming command context object to be used in subsequent calls to hash streaming functions sl_se_hash_multipart_update() and sl_se_hash_multipart_finish() .
- Parameters
-
[in] sha512_ctx
Pointer to a SHA512 streaming context object. [in] cmd_ctx
Pointer to an SE command context object.
- Returns
- Status code, sl_status.h.
◆ sl_se_hash_multipart_starts()
sl_status_t sl_se_hash_multipart_starts | ( | void * |
hash_type_ctx,
|
sl_se_command_context_t * |
cmd_ctx,
|
||
sl_se_hash_type_t |
hash_type
|
||
) |
Prepare a hash streaming command context object.
Prepare a hash (message digest) streaming command context object to be used in subsequent calls to hash streaming functions sl_se_hash_multipart_update() and sl_se_hash_multipart_finish() .
- Parameters
-
[in] hash_type_ctx
Pointer to a hash streaming context object specific to the hash type specified by hash_type
.[in] cmd_ctx
Pointer to an SE command context object. [in] hash_type
Type of hash algoritm
- Returns
- Status code, sl_status.h.
◆ sl_se_hash_multipart_update()
sl_status_t sl_se_hash_multipart_update | ( | void * |
hash_type_ctx,
|
sl_se_command_context_t * |
cmd_ctx,
|
||
const uint8_t * |
input,
|
||
size_t |
input_len
|
||
) |
Feeds an input buffer into an ongoing hash computation.
This function is called between sl_se_hash_multipart_starts() and sl_se_hash_multipart_finish() . This function can be called repeatedly.
- Parameters
-
[in] hash_type_ctx
Pointer to a hash streaming context object specific to the hash type specified by hash_type
.[in] cmd_ctx
Pointer to an SE command context object. [in] input
Buffer holding the input data, must be at least ilen
bytes wide.[in] input_len
The length of the input data in bytes.
- Returns
- Status code, sl_status.h.
◆ sl_se_hash_multipart_finish()
sl_status_t sl_se_hash_multipart_finish | ( | void * |
hash_type_ctx,
|
sl_se_command_context_t * |
cmd_ctx,
|
||
uint8_t * |
digest_out,
|
||
size_t |
digest_len
|
||
) |
Finish a hash streaming operation and return the resulting hash digest.
This function is called after sl_se_hash_multipart_update() .
- Parameters
-
[in] hash_type_ctx
Pointer to a hash streaming context object specific to the hash type specified by hash_type
.[in] cmd_ctx
Pointer to an SE command context object. [out] digest_out
Buffer for holding the message digest (hash), must be at least the size of the corresponding message digest type. [in] digest_len
The length of the message digest (hash), must be at least the size of the corresponding hash type.
- Returns
- Status code, sl_status.h.
Macro Definition Documentation
◆ SL_SE_HASH_STREAMING_INIT_DEFAULT
#define SL_SE_HASH_STREAMING_INIT_DEFAULT { NULL, 0, 0, NULL } |
Default streaming hash context.
◆ SL_SE_SHA1_STREAMING_INIT_DEFAULT
#define SL_SE_SHA1_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA1 streaming hash context.
◆ SL_SE_SHA224_STREAMING_INIT_DEFAULT
#define SL_SE_SHA224_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA224 streaming hash context.
◆ SL_SE_SHA256_STREAMING_INIT_DEFAULT
#define SL_SE_SHA256_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA256 streaming hash context.
◆ SL_SE_SHA384_STREAMING_INIT_DEFAULT
#define SL_SE_SHA384_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA384 streaming hash context.
◆ SL_SE_SHA512_STREAMING_INIT_DEFAULT
#define SL_SE_SHA512_STREAMING_INIT_DEFAULT { { 0 }, { 0 }, { 0 } } |
SHA512 streaming hash context.
Enumeration Type Documentation
◆ sl_se_hash_type_t
enum sl_se_hash_type_t |