31 #if defined(_MSC_VER) && !defined(inline)
32 #define inline _inline
34 #if defined(__ARMCC_VERSION) && !defined(inline)
35 #define inline __inline
39 #define POLARSSL_ERR_MD_FEATURE_UNAVAILABLE -0x5080
40 #define POLARSSL_ERR_MD_BAD_INPUT_DATA -0x5100
41 #define POLARSSL_ERR_MD_ALLOC_FAILED -0x5180
42 #define POLARSSL_ERR_MD_FILE_IO_ERROR -0x5200
61 #if defined(POLARSSL_SHA512_C)
62 #define POLARSSL_MD_MAX_SIZE 64
64 #define POLARSSL_MD_MAX_SIZE 32
82 void (*starts_func)(
void *ctx );
85 void (*update_func)(
void *ctx,
const unsigned char *input,
size_t ilen );
88 void (*finish_func)(
void *ctx,
unsigned char *output );
91 void (*digest_func)(
const unsigned char *input,
size_t ilen,
92 unsigned char *output );
95 int (*file_func)(
const char *path,
unsigned char *output );
98 void (*hmac_starts_func)(
void *ctx,
const unsigned char *key,
102 void (*hmac_update_func)(
void *ctx,
const unsigned char *input,
106 void (*hmac_finish_func)(
void *ctx,
unsigned char *output);
109 void (*hmac_reset_func)(
void *ctx );
112 void (*hmac_func)(
const unsigned char *key,
size_t keylen,
113 const unsigned char *input,
size_t ilen,
114 unsigned char *output );
117 void * (*ctx_alloc_func)( void );
120 void (*ctx_free_func)(
void *ctx );
123 void (*process_func)(
void *ctx,
const unsigned char *input );
137 #define MD_CONTEXT_T_INIT { \
203 #if ! defined(POLARSSL_DEPRECATED_REMOVED)
204 #if defined(POLARSSL_DEPRECATED_WARNING)
205 #define DEPRECATED __attribute__((deprecated))
232 if( md_info == NULL )
235 return md_info->
size;
247 if( md_info == NULL )
250 return md_info->
type;
262 if( md_info == NULL )
265 return md_info->
name;
312 int md(
const md_info_t *md_info,
const unsigned char *input,
size_t ilen,
313 unsigned char *output );
327 unsigned char *output );
389 int md_hmac(
const md_info_t *md_info,
const unsigned char *key,
size_t keylen,
390 const unsigned char *input,
size_t ilen,
391 unsigned char *output );
int md(const md_info_t *md_info, const unsigned char *input, size_t ilen, unsigned char *output)
Output = message_digest( input buffer )
int md_starts(md_context_t *ctx)
Set-up the given context for a new message digest.
void md_init(md_context_t *ctx)
Initialize a md_context (as NONE)
int md_file(const md_info_t *md_info, const char *path, unsigned char *output)
Output = message_digest( file contents )
int md_init_ctx(md_context_t *ctx, const md_info_t *md_info)
Initialises and fills the message digest context structure with the appropriate values.
int md_process(md_context_t *ctx, const unsigned char *data)
static unsigned char md_get_size(const md_info_t *md_info)
Returns the size of the message digest output.
const md_info_t * md_info_from_string(const char *md_name)
Returns the message digest information associated with the given digest name.
static md_type_t md_get_type(const md_info_t *md_info)
Returns the type of the message digest output.
const md_info_t * md_info
Information about the associated message digest.
const md_info_t * md_info_from_type(md_type_t md_type)
Returns the message digest information associated with the given digest type.
void md_free(md_context_t *ctx)
Free and clear the message-specific context of ctx.
const int * md_list(void)
Returns the list of digests supported by the generic digest module.
int md_hmac_starts(md_context_t *ctx, const unsigned char *key, size_t keylen)
Generic HMAC context setup.
void * md_ctx
Digest-specific context.
int md_free_ctx(md_context_t *ctx) DEPRECATED
Free the message-specific context of ctx.
int md_hmac(const 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 )
int md_hmac_reset(md_context_t *ctx)
Generic HMAC context reset.
int md_hmac_update(md_context_t *ctx, const unsigned char *input, size_t ilen)
Generic HMAC process buffer.
const char * name
Name of the message digest.
int size
Output length of the digest function.
static const char * md_get_name(const md_info_t *md_info)
Returns the name of the message digest output.
md_type_t type
Digest identifier.
int md_finish(md_context_t *ctx, unsigned char *output)
Generic message digest final digest.
Message digest information.
int md_update(md_context_t *ctx, const unsigned char *input, size_t ilen)
Generic message digest process buffer.
int md_hmac_finish(md_context_t *ctx, unsigned char *output)
Generic HMAC final digest.
Generic message digest context.