SHA-256 Cryptography Library.
This file includes an alternative implementation of the standard mbed TLS SHA using hardware accelerator incorporated in MCU devices from Silicon Labs.
|
void | btl_sha256_init (btl_sha256_context *ctx) |
| Initialize SHA-256 context.
|
|
int | btl_sha256_starts_ret (btl_sha256_context *ctx, int is224) |
| Set up SHA-256 context.
|
|
int | btl_sha256_update_ret (btl_sha256_context *ctx, const unsigned char *input, size_t ilen) |
| SHA-256 process buffer.
|
|
int | btl_sha256_finish_ret (btl_sha256_context *ctx, unsigned char output[32]) |
| SHA-256 final digest.
|
|
int | sha_x_process (SHA_Type_t algo, uint8_t *state_in, const unsigned char *blockdata, uint8_t *state_out, uint32_t num_blocks) |
| Process (a) block(s) of data to be hashed.
|
|
int | sha_x_update (SHA_Type_t algo, const unsigned char *data, size_t data_len, uint8_t *state, unsigned char *buffer, uint32_t *counter) |
| Process an arbitrary number of bytes to be hashed.
|
|
int | sha_x_finish (SHA_Type_t algo, uint8_t *state, uint8_t *buffer, uint32_t *counter, uint8_t *output) |
| Process an arbitrary number of bytes to be hashed.
|
|
Type variable for SHA-256 Cryptography.
Enumerator |
---|
SHA256 |
SHA-256 type
|
Definition at line 44
of file btl_sha256.h
.
Initialize SHA-256 context.
- Parameters
-
ctx | SHA-256 context to be initialized |
Set up SHA-256 context.
- Parameters
-
ctx | context to be initialized |
is224 | 0 = use SHA256, 1 = use SHA224 |
- Returns
0
if successful
int btl_sha256_update_ret |
( |
btl_sha256_context * |
ctx, |
|
|
const unsigned char * |
input, |
|
|
size_t |
ilen |
|
) |
| |
SHA-256 process buffer.
- Parameters
-
ctx | SHA-256 context |
input | buffer holding the data |
ilen | length of the input data |
- Returns
0
if successful
SHA-256 final digest.
- Parameters
-
ctx | SHA-256 context |
output | SHA-224/256 checksum result |
- Returns
0
if successful
int sha_x_process |
( |
SHA_Type_t |
algo, |
|
|
uint8_t * |
state_in, |
|
|
const unsigned char * |
blockdata, |
|
|
uint8_t * |
state_out, |
|
|
uint32_t |
num_blocks |
|
) |
| |
Process (a) block(s) of data to be hashed.
- Note
- Watch the blocksize! Blocks are 64 bytes for SHA-1 through SHA-256, and 128 bytes for SHA-384 through SHA-512.
-
Watch the state size! State size is half the block size.
- Parameters
-
| algo | Which hashing algorithm to use |
[in] | state_in | Previous state of the hashing algorithm |
[in] | blockdata | Pointer to the block(s) of data |
[out] | state_out | Pointer to block of memory to store state |
| num_blocks | Number of SHA blocks in data block |
- Returns
- Zero on success. Negative error code on failure.
int sha_x_update |
( |
SHA_Type_t |
algo, |
|
|
const unsigned char * |
data, |
|
|
size_t |
data_len, |
|
|
uint8_t * |
state, |
|
|
unsigned char * |
buffer, |
|
|
uint32_t * |
counter |
|
) |
| |
Process an arbitrary number of bytes to be hashed.
- Note
- Watch the blocksize! Blocks are 64 bytes for SHA-1 through SHA-256, and 128 bytes for SHA-384 through SHA-512.
-
Watch the state size! State size is half the block size.
-
Watch the counter size! Counter is 64 bytes for SHA-1 through SHA-256, and 128 bytes for SHA-384 through SHA-512.
- Parameters
-
| algo | Which hashing algorithm to use |
[in,out] | state | Pointer to the hashing algorithm's state buffer |
[in] | data | Pointer to the data to add to the hash |
[in,out] | buffer | Pointer to a block buffer to retrieve/store a partial block in between calls to this function. Needs to have a size equal to the block size. |
[in,out] | counter | Counter variable keeping track of the amount of bytes hashed, to later be used for hash finalization. For first use, initialize with zeroes. |
[in] | data_len | Length to data to add to hash |
- Returns
- Zero on success. Negative error code on failure.
int sha_x_finish |
( |
SHA_Type_t |
algo, |
|
|
uint8_t * |
state, |
|
|
uint8_t * |
buffer, |
|
|
uint32_t * |
counter, |
|
|
uint8_t * |
output |
|
) |
| |
Process an arbitrary number of bytes to be hashed.
- Note
- Watch the blocksize! Blocks are 64 bytes for SHA-1 through SHA-256, and 128 bytes for SHA-384 through SHA-512.
-
Watch the state size! State size is half the block size.
-
Watch the counter size! Counter is 64 bytes for SHA-1 through SHA-256, and 128 bytes for SHA-384 through SHA-512.
- Parameters
-
| algo | Which hashing algorithm to use |
[in] | state | Pointer to the hashing algorithm's state buffer |
[in] | buffer | Pointer to a block buffer to retrieve/store a partial block in between calls to this function. Needs to have a size equal to the block size. |
[in,out] | counter | Counter variable keeping track of the amount of bytes hashed, to later be used for hash finalization. For first use, initialize with zeroes. |
[out] | output | Pointer to the destination of the hash. |
- Returns
- Zero on success. Negative error code on failure.