32 #if defined(POLARSSL_MD_C)
36 #if defined(POLARSSL_MD2_C)
40 #if defined(POLARSSL_MD4_C)
44 #if defined(POLARSSL_MD5_C)
48 #if defined(POLARSSL_SHA1_C)
52 #if defined(POLARSSL_SHA2_C)
56 #if defined(POLARSSL_SHA4_C)
62 #if defined(POLARSSL_MD2_C)
64 static void md2_starts_wrap(
void *ctx )
69 static void md2_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
74 static void md2_finish_wrap(
void *ctx,
unsigned char *output )
79 int md2_file_wrap(
const char *path,
unsigned char *output )
81 #if defined(POLARSSL_FS_IO)
90 static void md2_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
95 static void md2_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
100 static void md2_hmac_finish_wrap(
void *ctx,
unsigned char *output )
105 static void md2_hmac_reset_wrap(
void *ctx )
110 static void * md2_ctx_alloc(
void )
115 static void md2_ctx_free(
void *ctx )
129 md2_hmac_starts_wrap,
130 md2_hmac_update_wrap,
131 md2_hmac_finish_wrap,
140 #if defined(POLARSSL_MD4_C)
142 void md4_starts_wrap(
void *ctx )
147 void md4_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
152 void md4_finish_wrap(
void *ctx,
unsigned char *output )
157 int md4_file_wrap(
const char *path,
unsigned char *output )
159 #if defined(POLARSSL_FS_IO)
168 void md4_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
173 void md4_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
178 void md4_hmac_finish_wrap(
void *ctx,
unsigned char *output )
183 void md4_hmac_reset_wrap(
void *ctx )
188 void *md4_ctx_alloc(
void )
193 void md4_ctx_free(
void *ctx )
207 md4_hmac_starts_wrap,
208 md4_hmac_update_wrap,
209 md4_hmac_finish_wrap,
218 #if defined(POLARSSL_MD5_C)
220 static void md5_starts_wrap(
void *ctx )
225 static void md5_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
230 static void md5_finish_wrap(
void *ctx,
unsigned char *output )
235 int md5_file_wrap(
const char *path,
unsigned char *output )
237 #if defined(POLARSSL_FS_IO)
246 static void md5_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
251 static void md5_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
256 static void md5_hmac_finish_wrap(
void *ctx,
unsigned char *output )
261 static void md5_hmac_reset_wrap(
void *ctx )
266 static void * md5_ctx_alloc(
void )
271 static void md5_ctx_free(
void *ctx )
285 md5_hmac_starts_wrap,
286 md5_hmac_update_wrap,
287 md5_hmac_finish_wrap,
296 #if defined(POLARSSL_SHA1_C)
298 void sha1_starts_wrap(
void *ctx )
303 void sha1_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
308 void sha1_finish_wrap(
void *ctx,
unsigned char *output )
313 int sha1_file_wrap(
const char *path,
unsigned char *output )
315 #if defined(POLARSSL_FS_IO)
324 void sha1_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
329 void sha1_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
334 void sha1_hmac_finish_wrap(
void *ctx,
unsigned char *output )
339 void sha1_hmac_reset_wrap(
void *ctx )
344 void * sha1_ctx_alloc(
void )
349 void sha1_ctx_free(
void *ctx )
363 sha1_hmac_starts_wrap,
364 sha1_hmac_update_wrap,
365 sha1_hmac_finish_wrap,
366 sha1_hmac_reset_wrap,
377 #if defined(POLARSSL_SHA2_C)
379 void sha224_starts_wrap(
void *ctx )
384 void sha224_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
389 void sha224_finish_wrap(
void *ctx,
unsigned char *output )
394 void sha224_wrap(
const unsigned char *input,
size_t ilen,
395 unsigned char *output )
397 sha2( input, ilen, output, 1 );
400 int sha224_file_wrap(
const char *path,
unsigned char *output )
402 #if defined(POLARSSL_FS_IO)
411 void sha224_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
416 void sha224_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
421 void sha224_hmac_finish_wrap(
void *ctx,
unsigned char *output )
426 void sha224_hmac_reset_wrap(
void *ctx )
431 void sha224_hmac_wrap(
const unsigned char *key,
size_t keylen,
432 const unsigned char *input,
size_t ilen,
433 unsigned char *output )
435 sha2_hmac( key, keylen, input, ilen, output, 1 );
438 void * sha224_ctx_alloc(
void )
443 void sha224_ctx_free(
void *ctx )
457 sha224_hmac_starts_wrap,
458 sha224_hmac_update_wrap,
459 sha224_hmac_finish_wrap,
460 sha224_hmac_reset_wrap,
466 void sha256_starts_wrap(
void *ctx )
471 void sha256_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
476 void sha256_finish_wrap(
void *ctx,
unsigned char *output )
481 void sha256_wrap(
const unsigned char *input,
size_t ilen,
482 unsigned char *output )
484 sha2( input, ilen, output, 0 );
487 int sha256_file_wrap(
const char *path,
unsigned char *output )
489 #if defined(POLARSSL_FS_IO)
498 void sha256_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
503 void sha256_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
508 void sha256_hmac_finish_wrap(
void *ctx,
unsigned char *output )
513 void sha256_hmac_reset_wrap(
void *ctx )
518 void sha256_hmac_wrap(
const unsigned char *key,
size_t keylen,
519 const unsigned char *input,
size_t ilen,
520 unsigned char *output )
522 sha2_hmac( key, keylen, input, ilen, output, 0 );
525 void * sha256_ctx_alloc(
void )
530 void sha256_ctx_free(
void *ctx )
544 sha256_hmac_starts_wrap,
545 sha256_hmac_update_wrap,
546 sha256_hmac_finish_wrap,
547 sha256_hmac_reset_wrap,
555 #if defined(POLARSSL_SHA4_C)
557 void sha384_starts_wrap(
void *ctx )
562 void sha384_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
567 void sha384_finish_wrap(
void *ctx,
unsigned char *output )
572 void sha384_wrap(
const unsigned char *input,
size_t ilen,
573 unsigned char *output )
575 sha4( input, ilen, output, 1 );
578 int sha384_file_wrap(
const char *path,
unsigned char *output )
580 #if defined(POLARSSL_FS_IO)
589 void sha384_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
594 void sha384_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
599 void sha384_hmac_finish_wrap(
void *ctx,
unsigned char *output )
604 void sha384_hmac_reset_wrap(
void *ctx )
609 void sha384_hmac_wrap(
const unsigned char *key,
size_t keylen,
610 const unsigned char *input,
size_t ilen,
611 unsigned char *output )
613 sha4_hmac( key, keylen, input, ilen, output, 1 );
616 void * sha384_ctx_alloc(
void )
621 void sha384_ctx_free(
void *ctx )
635 sha384_hmac_starts_wrap,
636 sha384_hmac_update_wrap,
637 sha384_hmac_finish_wrap,
638 sha384_hmac_reset_wrap,
644 void sha512_starts_wrap(
void *ctx )
649 void sha512_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
654 void sha512_finish_wrap(
void *ctx,
unsigned char *output )
659 void sha512_wrap(
const unsigned char *input,
size_t ilen,
660 unsigned char *output )
662 sha4( input, ilen, output, 0 );
665 int sha512_file_wrap(
const char *path,
unsigned char *output )
667 #if defined(POLARSSL_FS_IO)
676 void sha512_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
681 void sha512_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
686 void sha512_hmac_finish_wrap(
void *ctx,
unsigned char *output )
691 void sha512_hmac_reset_wrap(
void *ctx )
696 void sha512_hmac_wrap(
const unsigned char *key,
size_t keylen,
697 const unsigned char *input,
size_t ilen,
698 unsigned char *output )
700 sha4_hmac( key, keylen, input, ilen, output, 0 );
703 void * sha512_ctx_alloc(
void )
708 void sha512_ctx_free(
void *ctx )
722 sha512_hmac_starts_wrap,
723 sha512_hmac_update_wrap,
724 sha512_hmac_finish_wrap,
725 sha512_hmac_reset_wrap,
void sha1_hmac_finish(sha1_context *ctx, unsigned char output[20])
SHA-1 HMAC final digest.
void sha4_hmac_reset(sha4_context *ctx)
SHA-512 HMAC context reset.
void md2_update(md2_context *ctx, const unsigned char *input, size_t ilen)
MD2 process buffer.
void sha2_hmac_update(sha2_context *ctx, const unsigned char *input, size_t ilen)
SHA-256 HMAC process buffer.
SHA-256 context structure.
int sha4_file(const char *path, unsigned char output[64], int is384)
Output = SHA-512( file contents )
void md2_hmac_update(md2_context *ctx, const unsigned char *input, size_t ilen)
MD2 HMAC process buffer.
void sha1(const unsigned char *input, size_t ilen, unsigned char output[20])
Output = SHA-1( input buffer )
void sha1_finish(sha1_context *ctx, unsigned char output[20])
SHA-1 final digest.
void sha4_hmac_starts(sha4_context *ctx, const unsigned char *key, size_t keylen, int is384)
SHA-512 HMAC context setup.
#define POLARSSL_ERR_MD_FEATURE_UNAVAILABLE
The selected feature is not available.
void sha2_hmac_starts(sha2_context *ctx, const unsigned char *key, size_t keylen, int is224)
SHA-256 HMAC context setup.
void md4_finish(md4_context *ctx, unsigned char output[16])
MD4 final digest.
void sha1_hmac(const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char output[20])
Output = HMAC-SHA-1( hmac key, input buffer )
void md4_hmac(const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char output[16])
Output = HMAC-MD4( hmac key, input buffer )
void md4_starts(md4_context *ctx)
MD4 context setup.
Configuration options (set of defines)
void md2(const unsigned char *input, size_t ilen, unsigned char output[16])
Output = MD2( input buffer )
void md5_finish(md5_context *ctx, unsigned char output[16])
MD5 final digest.
void sha2_hmac_reset(sha2_context *ctx)
SHA-256 HMAC context reset.
void md5_hmac(const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char output[16])
Output = HMAC-MD5( hmac key, input buffer )
void md4(const unsigned char *input, size_t ilen, unsigned char output[16])
Output = MD4( input buffer )
void sha2_hmac_finish(sha2_context *ctx, unsigned char output[32])
SHA-256 HMAC final digest.
void md2_hmac_finish(md2_context *ctx, unsigned char output[16])
MD2 HMAC final digest.
void sha4_starts(sha4_context *ctx, int is384)
SHA-512 context setup.
void sha4_hmac(const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char output[64], int is384)
Output = HMAC-SHA-512( hmac key, input buffer )
int md2_file(const char *path, unsigned char output[16])
Output = MD2( file contents )
SHA-384 and SHA-512 cryptographic hash function.
int md5_file(const char *path, unsigned char output[16])
Output = MD5( file contents )
void md5_hmac_starts(md5_context *ctx, const unsigned char *key, size_t keylen)
MD5 HMAC context setup.
void sha1_hmac_reset(sha1_context *ctx)
SHA-1 HMAC context reset.
void md4_update(md4_context *ctx, const unsigned char *input, size_t ilen)
MD4 process buffer.
SHA-224 and SHA-256 cryptographic hash function.
void md4_hmac_starts(md4_context *ctx, const unsigned char *key, size_t keylen)
MD4 HMAC context setup.
void sha4_update(sha4_context *ctx, const unsigned char *input, size_t ilen)
SHA-512 process buffer.
const md_info_t sha224_info
void md4_hmac_finish(md4_context *ctx, unsigned char output[16])
MD4 HMAC final digest.
int sha1_file(const char *path, unsigned char output[20])
Output = SHA-1( file contents )
void md5_hmac_reset(md5_context *ctx)
MD5 HMAC context reset.
void md5_starts(md5_context *ctx)
MD5 context setup.
void sha4_hmac_finish(sha4_context *ctx, unsigned char output[64])
SHA-512 HMAC final digest.
void sha1_hmac_starts(sha1_context *ctx, const unsigned char *key, size_t keylen)
SHA-1 HMAC context setup.
void md5_hmac_finish(md5_context *ctx, unsigned char output[16])
MD5 HMAC final digest.
void sha1_starts(sha1_context *ctx)
SHA-1 context setup.
void md2_starts(md2_context *ctx)
MD2 context setup.
void sha2_update(sha2_context *ctx, const unsigned char *input, size_t ilen)
SHA-256 process buffer.
const md_info_t sha1_info
void sha4(const unsigned char *input, size_t ilen, unsigned char output[64], int is384)
Output = SHA-512( input buffer )
void md2_hmac_starts(md2_context *ctx, const unsigned char *key, size_t keylen)
MD2 HMAC context setup.
const md_info_t sha512_info
SHA-1 cryptographic hash function.
void sha2_hmac(const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char output[32], int is224)
Output = HMAC-SHA-256( hmac key, input buffer )
void md2_hmac(const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char output[16])
Output = HMAC-MD2( hmac key, input buffer )
SHA-512 context structure.
const md_info_t sha256_info
void sha1_update(sha1_context *ctx, const unsigned char *input, size_t ilen)
SHA-1 process buffer.
void md5_update(md5_context *ctx, const unsigned char *input, size_t ilen)
MD5 process buffer.
int sha2_file(const char *path, unsigned char output[32], int is224)
Output = SHA-256( file contents )
void md2_hmac_reset(md2_context *ctx)
MD2 HMAC context reset.
void sha2(const unsigned char *input, size_t ilen, unsigned char output[32], int is224)
Output = SHA-256( input buffer )
void sha4_finish(sha4_context *ctx, unsigned char output[64])
SHA-512 final digest.
void sha4_hmac_update(sha4_context *ctx, const unsigned char *input, size_t ilen)
SHA-512 HMAC process buffer.
void md2_finish(md2_context *ctx, unsigned char output[16])
MD2 final digest.
void sha1_hmac_update(sha1_context *ctx, const unsigned char *input, size_t ilen)
SHA-1 HMAC process buffer.
MD4 message digest algorithm (hash function)
void md5_hmac_update(md5_context *ctx, const unsigned char *input, size_t ilen)
MD5 HMAC process buffer.
int md4_file(const char *path, unsigned char output[16])
Output = MD4( file contents )
void sha2_starts(sha2_context *ctx, int is224)
SHA-256 context setup.
MD5 message digest algorithm (hash function)
void md5(const unsigned char *input, size_t ilen, unsigned char output[16])
Output = MD5( input buffer )
Message digest information.
MD2 message digest algorithm (hash function)
const md_info_t sha384_info
void md4_hmac_reset(md4_context *ctx)
MD4 HMAC context reset.
void md4_hmac_update(md4_context *ctx, const unsigned char *input, size_t ilen)
MD4 HMAC process buffer.
void sha2_finish(sha2_context *ctx, unsigned char output[32])
SHA-256 final digest.