mbed TLS v2.2.0
|
Generic message digest wrapper.
Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This file is part of mbed TLS (https://tls.mbed.org)
Definition in file md.h.
#include <stddef.h>
Go to the source code of this file.
Data Structures | |
struct | mbedtls_md_context_t |
Generic message digest context. More... | |
Macros | |
#define | MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE -0x5080 |
The selected feature is not available. More... | |
#define | MBEDTLS_ERR_MD_BAD_INPUT_DATA -0x5100 |
Bad input parameters to function. More... | |
#define | MBEDTLS_ERR_MD_ALLOC_FAILED -0x5180 |
Failed to allocate memory. More... | |
#define | MBEDTLS_ERR_MD_FILE_IO_ERROR -0x5200 |
Opening or reading of file failed. More... | |
#define | MBEDTLS_MD_MAX_SIZE 32 /* longest known is SHA256 or less */ |
#define | MBEDTLS_DEPRECATED |
Typedefs | |
typedef struct mbedtls_md_info_t | mbedtls_md_info_t |
Opaque struct defined in md_internal.h. More... | |
Functions | |
const int * | mbedtls_md_list (void) |
Returns the list of digests supported by the generic digest module. More... | |
const mbedtls_md_info_t * | mbedtls_md_info_from_string (const char *md_name) |
Returns the message digest information associated with the given digest name. More... | |
const mbedtls_md_info_t * | mbedtls_md_info_from_type (mbedtls_md_type_t md_type) |
Returns the message digest information associated with the given digest type. More... | |
void | mbedtls_md_init (mbedtls_md_context_t *ctx) |
Initialize a md_context (as NONE) This should always be called first. More... | |
void | mbedtls_md_free (mbedtls_md_context_t *ctx) |
Free and clear the internal structures of ctx. More... | |
int | mbedtls_md_init_ctx (mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info) MBEDTLS_DEPRECATED |
Select MD to use and allocate internal structures. More... | |
int | mbedtls_md_setup (mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info, int hmac) |
Select MD to use and allocate internal structures. More... | |
int | mbedtls_md_clone (mbedtls_md_context_t *dst, const mbedtls_md_context_t *src) |
Clone the state of an MD context. More... | |
unsigned char | mbedtls_md_get_size (const mbedtls_md_info_t *md_info) |
Returns the size of the message digest output. More... | |
mbedtls_md_type_t | mbedtls_md_get_type (const mbedtls_md_info_t *md_info) |
Returns the type of the message digest output. More... | |
const char * | mbedtls_md_get_name (const mbedtls_md_info_t *md_info) |
Returns the name of the message digest output. More... | |
int | mbedtls_md_starts (mbedtls_md_context_t *ctx) |
Prepare the context to digest a new message. More... | |
int | mbedtls_md_update (mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen) |
Generic message digest process buffer Called between mbedtls_md_starts() and mbedtls_md_finish(). More... | |
int | mbedtls_md_finish (mbedtls_md_context_t *ctx, unsigned char *output) |
Generic message digest final digest Called after mbedtls_md_update(). More... | |
int | mbedtls_md (const mbedtls_md_info_t *md_info, const unsigned char *input, size_t ilen, unsigned char *output) |
Output = message_digest( input buffer ) More... | |
int | mbedtls_md_hmac_starts (mbedtls_md_context_t *ctx, const unsigned char *key, size_t keylen) |
Set HMAC key and prepare to authenticate a new message. More... | |
int | mbedtls_md_hmac_update (mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen) |
Generic HMAC process buffer. More... | |
int | mbedtls_md_hmac_finish (mbedtls_md_context_t *ctx, unsigned char *output) |
Output HMAC. More... | |
int | mbedtls_md_hmac_reset (mbedtls_md_context_t *ctx) |
Prepare to authenticate a new message with the same key. More... | |
int | mbedtls_md_hmac (const mbedtls_md_info_t *md_info, const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char *output) |
Output = Generic_HMAC( hmac key, input buffer ) More... | |
int | mbedtls_md_process (mbedtls_md_context_t *ctx, const unsigned char *data) |
#define MBEDTLS_ERR_MD_ALLOC_FAILED -0x5180 |
#define MBEDTLS_ERR_MD_BAD_INPUT_DATA -0x5100 |
#define MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE -0x5080 |
#define MBEDTLS_ERR_MD_FILE_IO_ERROR -0x5200 |
#define MBEDTLS_MD_MAX_SIZE 32 /* longest known is SHA256 or less */ |
typedef struct mbedtls_md_info_t mbedtls_md_info_t |
Opaque struct defined in md_internal.h.
enum mbedtls_md_type_t |
int mbedtls_md | ( | const mbedtls_md_info_t * | md_info, |
const unsigned char * | input, | ||
size_t | ilen, | ||
unsigned char * | output | ||
) |
Output = message_digest( input buffer )
md_info | message digest info |
input | buffer holding the data |
ilen | length of the input data |
output | Generic message digest checksum result |
int mbedtls_md_clone | ( | mbedtls_md_context_t * | dst, |
const mbedtls_md_context_t * | src | ||
) |
Clone the state of an MD context.
dst | The destination context |
src | The context to be cloned |
0
on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA
on parameter failure. int mbedtls_md_finish | ( | mbedtls_md_context_t * | ctx, |
unsigned char * | output | ||
) |
Generic message digest final digest Called after mbedtls_md_update().
Usually followed by mbedtls_md_free() or mbedtls_md_starts().
ctx | Generic message digest context |
output | Generic message digest checksum result |
void mbedtls_md_free | ( | mbedtls_md_context_t * | ctx | ) |
Free and clear the internal structures of ctx.
Can be called at any time after mbedtls_md_init(). Mandatory once mbedtls_md_setup() has been called.
const char* mbedtls_md_get_name | ( | const mbedtls_md_info_t * | md_info | ) |
Returns the name of the message digest output.
md_info | message digest info |
unsigned char mbedtls_md_get_size | ( | const mbedtls_md_info_t * | md_info | ) |
Returns the size of the message digest output.
md_info | message digest info |
mbedtls_md_type_t mbedtls_md_get_type | ( | const mbedtls_md_info_t * | md_info | ) |
Returns the type of the message digest output.
md_info | message digest info |
int mbedtls_md_hmac | ( | const mbedtls_md_info_t * | md_info, |
const unsigned char * | key, | ||
size_t | keylen, | ||
const unsigned char * | input, | ||
size_t | ilen, | ||
unsigned char * | output | ||
) |
Output = Generic_HMAC( hmac key, input buffer )
md_info | message digest info |
key | HMAC secret key |
keylen | length of the HMAC key in bytes |
input | buffer holding the data |
ilen | length of the input data |
output | Generic HMAC-result |
int mbedtls_md_hmac_finish | ( | mbedtls_md_context_t * | ctx, |
unsigned char * | output | ||
) |
Output HMAC.
Called after mbedtls_md_hmac_update(). Usually followed my mbedtls_md_hmac_reset(), mbedtls_md_hmac_starts(), or mbedtls_md_free().
ctx | HMAC context |
output | Generic HMAC checksum result |
int mbedtls_md_hmac_reset | ( | mbedtls_md_context_t * | ctx | ) |
Prepare to authenticate a new message with the same key.
Called after mbedtls_md_hmac_finish() and before mbedtls_md_hmac_update().
ctx | HMAC context to be reset |
int mbedtls_md_hmac_starts | ( | mbedtls_md_context_t * | ctx, |
const unsigned char * | key, | ||
size_t | keylen | ||
) |
Set HMAC key and prepare to authenticate a new message.
Usually called after mbedtls_md_setup() or mbedtls_md_hmac_finish().
ctx | HMAC context |
key | HMAC secret key |
keylen | length of the HMAC key in bytes |
int mbedtls_md_hmac_update | ( | mbedtls_md_context_t * | ctx, |
const unsigned char * | input, | ||
size_t | ilen | ||
) |
Generic HMAC process buffer.
Called between mbedtls_md_hmac_starts() or mbedtls_md_hmac_reset() and mbedtls_md_hmac_finish(). May be called repeatedly.
ctx | HMAC context |
input | buffer holding the data |
ilen | length of the input data |
const mbedtls_md_info_t* mbedtls_md_info_from_string | ( | const char * | md_name | ) |
Returns the message digest information associated with the given digest name.
md_name | Name of the digest to search for. |
const mbedtls_md_info_t* mbedtls_md_info_from_type | ( | mbedtls_md_type_t | md_type | ) |
Returns the message digest information associated with the given digest type.
md_type | type of digest to search for. |
void mbedtls_md_init | ( | mbedtls_md_context_t * | ctx | ) |
Initialize a md_context (as NONE) This should always be called first.
Prepares the context for mbedtls_md_setup() or mbedtls_md_free().
int mbedtls_md_init_ctx | ( | mbedtls_md_context_t * | ctx, |
const mbedtls_md_info_t * | md_info | ||
) |
Select MD to use and allocate internal structures.
Should be called after mbedtls_md_init() or mbedtls_md_free(). Makes it necessary to call mbedtls_md_free() later.
ctx | Context to set up. |
md_info | Message digest to use. |
0
on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA
on parameter failure, MBEDTLS_ERR_MD_ALLOC_FAILED
memory allocation failure. const int* mbedtls_md_list | ( | void | ) |
Returns the list of digests supported by the generic digest module.
int mbedtls_md_process | ( | mbedtls_md_context_t * | ctx, |
const unsigned char * | data | ||
) |
int mbedtls_md_setup | ( | mbedtls_md_context_t * | ctx, |
const mbedtls_md_info_t * | md_info, | ||
int | hmac | ||
) |
Select MD to use and allocate internal structures.
Should be called after mbedtls_md_init() or mbedtls_md_free(). Makes it necessary to call mbedtls_md_free() later.
ctx | Context to set up. |
md_info | Message digest to use. |
hmac | 0 to save some memory if HMAC will not be used, non-zero is HMAC is going to be used with this context. |
0
on success, MBEDTLS_ERR_MD_BAD_INPUT_DATA
on parameter failure, MBEDTLS_ERR_MD_ALLOC_FAILED
memory allocation failure. int mbedtls_md_starts | ( | mbedtls_md_context_t * | ctx | ) |
Prepare the context to digest a new message.
Generally called after mbedtls_md_setup() or mbedtls_md_finish(). Followed by mbedtls_md_update().
ctx | generic message digest context. |
int mbedtls_md_update | ( | mbedtls_md_context_t * | ctx, |
const unsigned char * | input, | ||
size_t | ilen | ||
) |
Generic message digest process buffer Called between mbedtls_md_starts() and mbedtls_md_finish().
May be called repeatedly.
ctx | Generic message digest context |
input | buffer holding the datal |
ilen | length of the input data |