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)
63 static void polarssl_zeroize(
void *v,
size_t n ) {
64 volatile unsigned char *p = v;
while( n-- ) *p++ = 0;
67 #if defined(POLARSSL_MD2_C)
69 static void md2_starts_wrap(
void *ctx )
74 static void md2_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
79 static void md2_finish_wrap(
void *ctx,
unsigned char *output )
84 static int md2_file_wrap(
const char *path,
unsigned char *output )
86 #if defined(POLARSSL_FS_IO)
95 static void md2_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
100 static void md2_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
105 static void md2_hmac_finish_wrap(
void *ctx,
unsigned char *output )
110 static void md2_hmac_reset_wrap(
void *ctx )
115 static void * md2_ctx_alloc(
void )
120 static void md2_ctx_free(
void *ctx )
135 md2_hmac_starts_wrap,
136 md2_hmac_update_wrap,
137 md2_hmac_finish_wrap,
146 #if defined(POLARSSL_MD4_C)
148 static void md4_starts_wrap(
void *ctx )
153 static void md4_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
158 static void md4_finish_wrap(
void *ctx,
unsigned char *output )
163 static int md4_file_wrap(
const char *path,
unsigned char *output )
165 #if defined(POLARSSL_FS_IO)
174 static void md4_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
179 static void md4_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
184 static void md4_hmac_finish_wrap(
void *ctx,
unsigned char *output )
189 static void md4_hmac_reset_wrap(
void *ctx )
194 static void *md4_ctx_alloc(
void )
199 static void md4_ctx_free(
void *ctx )
214 md4_hmac_starts_wrap,
215 md4_hmac_update_wrap,
216 md4_hmac_finish_wrap,
225 #if defined(POLARSSL_MD5_C)
227 static void md5_starts_wrap(
void *ctx )
232 static void md5_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
237 static void md5_finish_wrap(
void *ctx,
unsigned char *output )
242 static int md5_file_wrap(
const char *path,
unsigned char *output )
244 #if defined(POLARSSL_FS_IO)
253 static void md5_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
258 static void md5_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
263 static void md5_hmac_finish_wrap(
void *ctx,
unsigned char *output )
268 static void md5_hmac_reset_wrap(
void *ctx )
273 static void * md5_ctx_alloc(
void )
278 static void md5_ctx_free(
void *ctx )
293 md5_hmac_starts_wrap,
294 md5_hmac_update_wrap,
295 md5_hmac_finish_wrap,
304 #if defined(POLARSSL_SHA1_C)
306 static void sha1_starts_wrap(
void *ctx )
311 static void sha1_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
316 static void sha1_finish_wrap(
void *ctx,
unsigned char *output )
321 static int sha1_file_wrap(
const char *path,
unsigned char *output )
323 #if defined(POLARSSL_FS_IO)
332 static void sha1_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
337 static void sha1_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
342 static void sha1_hmac_finish_wrap(
void *ctx,
unsigned char *output )
347 static void sha1_hmac_reset_wrap(
void *ctx )
352 static void * sha1_ctx_alloc(
void )
357 static void sha1_ctx_free(
void *ctx )
372 sha1_hmac_starts_wrap,
373 sha1_hmac_update_wrap,
374 sha1_hmac_finish_wrap,
375 sha1_hmac_reset_wrap,
386 #if defined(POLARSSL_SHA2_C)
388 static void sha224_starts_wrap(
void *ctx )
393 static void sha224_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
398 static void sha224_finish_wrap(
void *ctx,
unsigned char *output )
403 static void sha224_wrap(
const unsigned char *input,
size_t ilen,
404 unsigned char *output )
406 sha2( input, ilen, output, 1 );
409 static int sha224_file_wrap(
const char *path,
unsigned char *output )
411 #if defined(POLARSSL_FS_IO)
420 static void sha224_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
425 static void sha224_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
430 static void sha224_hmac_finish_wrap(
void *ctx,
unsigned char *output )
435 static void sha224_hmac_reset_wrap(
void *ctx )
440 static void sha224_hmac_wrap(
const unsigned char *key,
size_t keylen,
441 const unsigned char *input,
size_t ilen,
442 unsigned char *output )
444 sha2_hmac( key, keylen, input, ilen, output, 1 );
447 static void * sha224_ctx_alloc(
void )
452 static void sha224_ctx_free(
void *ctx )
467 sha224_hmac_starts_wrap,
468 sha224_hmac_update_wrap,
469 sha224_hmac_finish_wrap,
470 sha224_hmac_reset_wrap,
476 static void sha256_starts_wrap(
void *ctx )
481 static void sha256_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
486 static void sha256_finish_wrap(
void *ctx,
unsigned char *output )
491 static void sha256_wrap(
const unsigned char *input,
size_t ilen,
492 unsigned char *output )
494 sha2( input, ilen, output, 0 );
497 static int sha256_file_wrap(
const char *path,
unsigned char *output )
499 #if defined(POLARSSL_FS_IO)
508 static void sha256_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
513 static void sha256_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
518 static void sha256_hmac_finish_wrap(
void *ctx,
unsigned char *output )
523 static void sha256_hmac_reset_wrap(
void *ctx )
528 static void sha256_hmac_wrap(
const unsigned char *key,
size_t keylen,
529 const unsigned char *input,
size_t ilen,
530 unsigned char *output )
532 sha2_hmac( key, keylen, input, ilen, output, 0 );
535 static void * sha256_ctx_alloc(
void )
540 static void sha256_ctx_free(
void *ctx )
555 sha256_hmac_starts_wrap,
556 sha256_hmac_update_wrap,
557 sha256_hmac_finish_wrap,
558 sha256_hmac_reset_wrap,
566 #if defined(POLARSSL_SHA4_C)
568 static void sha384_starts_wrap(
void *ctx )
573 static void sha384_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
578 static void sha384_finish_wrap(
void *ctx,
unsigned char *output )
583 static void sha384_wrap(
const unsigned char *input,
size_t ilen,
584 unsigned char *output )
586 sha4( input, ilen, output, 1 );
589 static int sha384_file_wrap(
const char *path,
unsigned char *output )
591 #if defined(POLARSSL_FS_IO)
600 static void sha384_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
605 static void sha384_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
610 static void sha384_hmac_finish_wrap(
void *ctx,
unsigned char *output )
615 static void sha384_hmac_reset_wrap(
void *ctx )
620 static void sha384_hmac_wrap(
const unsigned char *key,
size_t keylen,
621 const unsigned char *input,
size_t ilen,
622 unsigned char *output )
624 sha4_hmac( key, keylen, input, ilen, output, 1 );
627 static void * sha384_ctx_alloc(
void )
632 static void sha384_ctx_free(
void *ctx )
647 sha384_hmac_starts_wrap,
648 sha384_hmac_update_wrap,
649 sha384_hmac_finish_wrap,
650 sha384_hmac_reset_wrap,
656 static void sha512_starts_wrap(
void *ctx )
661 static void sha512_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
666 static void sha512_finish_wrap(
void *ctx,
unsigned char *output )
671 static void sha512_wrap(
const unsigned char *input,
size_t ilen,
672 unsigned char *output )
674 sha4( input, ilen, output, 0 );
677 static int sha512_file_wrap(
const char *path,
unsigned char *output )
679 #if defined(POLARSSL_FS_IO)
688 static void sha512_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
693 static void sha512_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
698 static void sha512_hmac_finish_wrap(
void *ctx,
unsigned char *output )
703 static void sha512_hmac_reset_wrap(
void *ctx )
708 static void sha512_hmac_wrap(
const unsigned char *key,
size_t keylen,
709 const unsigned char *input,
size_t ilen,
710 unsigned char *output )
712 sha4_hmac( key, keylen, input, ilen, output, 0 );
715 static void * sha512_ctx_alloc(
void )
720 static void sha512_ctx_free(
void *ctx )
735 sha512_hmac_starts_wrap,
736 sha512_hmac_update_wrap,
737 sha512_hmac_finish_wrap,
738 sha512_hmac_reset_wrap,