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_SHA256_C)
56 #if defined(POLARSSL_SHA512_C)
60 #if defined(POLARSSL_MEMORY_C)
63 #define polarssl_malloc malloc
64 #define polarssl_free free
69 #if defined(POLARSSL_MD2_C)
71 static void md2_starts_wrap(
void *ctx )
76 static void md2_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
81 static void md2_finish_wrap(
void *ctx,
unsigned char *output )
86 static int md2_file_wrap(
const char *path,
unsigned char *output )
88 #if defined(POLARSSL_FS_IO)
97 static void md2_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
102 static void md2_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
107 static void md2_hmac_finish_wrap(
void *ctx,
unsigned char *output )
112 static void md2_hmac_reset_wrap(
void *ctx )
117 static void * md2_ctx_alloc(
void )
122 static void md2_ctx_free(
void *ctx )
127 static void md2_process_wrap(
void *ctx,
const unsigned char *data )
143 md2_hmac_starts_wrap,
144 md2_hmac_update_wrap,
145 md2_hmac_finish_wrap,
155 #if defined(POLARSSL_MD4_C)
157 static void md4_starts_wrap(
void *ctx )
162 static void md4_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
167 static void md4_finish_wrap(
void *ctx,
unsigned char *output )
172 static int md4_file_wrap(
const char *path,
unsigned char *output )
174 #if defined(POLARSSL_FS_IO)
183 static void md4_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
188 static void md4_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
193 static void md4_hmac_finish_wrap(
void *ctx,
unsigned char *output )
198 static void md4_hmac_reset_wrap(
void *ctx )
203 static void *md4_ctx_alloc(
void )
208 static void md4_ctx_free(
void *ctx )
213 static void md4_process_wrap(
void *ctx,
const unsigned char *data )
227 md4_hmac_starts_wrap,
228 md4_hmac_update_wrap,
229 md4_hmac_finish_wrap,
239 #if defined(POLARSSL_MD5_C)
241 static void md5_starts_wrap(
void *ctx )
246 static void md5_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
251 static void md5_finish_wrap(
void *ctx,
unsigned char *output )
256 static int md5_file_wrap(
const char *path,
unsigned char *output )
258 #if defined(POLARSSL_FS_IO)
267 static void md5_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
272 static void md5_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
277 static void md5_hmac_finish_wrap(
void *ctx,
unsigned char *output )
282 static void md5_hmac_reset_wrap(
void *ctx )
287 static void * md5_ctx_alloc(
void )
292 static void md5_ctx_free(
void *ctx )
297 static void md5_process_wrap(
void *ctx,
const unsigned char *data )
311 md5_hmac_starts_wrap,
312 md5_hmac_update_wrap,
313 md5_hmac_finish_wrap,
323 #if defined(POLARSSL_SHA1_C)
325 static void sha1_starts_wrap(
void *ctx )
330 static void sha1_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
335 static void sha1_finish_wrap(
void *ctx,
unsigned char *output )
340 static int sha1_file_wrap(
const char *path,
unsigned char *output )
342 #if defined(POLARSSL_FS_IO)
351 static void sha1_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
356 static void sha1_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
361 static void sha1_hmac_finish_wrap(
void *ctx,
unsigned char *output )
366 static void sha1_hmac_reset_wrap(
void *ctx )
371 static void * sha1_ctx_alloc(
void )
376 static void sha1_ctx_free(
void *ctx )
381 static void sha1_process_wrap(
void *ctx,
const unsigned char *data )
395 sha1_hmac_starts_wrap,
396 sha1_hmac_update_wrap,
397 sha1_hmac_finish_wrap,
398 sha1_hmac_reset_wrap,
410 #if defined(POLARSSL_SHA256_C)
412 static void sha224_starts_wrap(
void *ctx )
417 static void sha224_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
422 static void sha224_finish_wrap(
void *ctx,
unsigned char *output )
427 static void sha224_wrap(
const unsigned char *input,
size_t ilen,
428 unsigned char *output )
430 sha256( input, ilen, output, 1 );
433 static int sha224_file_wrap(
const char *path,
unsigned char *output )
435 #if defined(POLARSSL_FS_IO)
444 static void sha224_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
449 static void sha224_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
454 static void sha224_hmac_finish_wrap(
void *ctx,
unsigned char *output )
459 static void sha224_hmac_reset_wrap(
void *ctx )
464 static void sha224_hmac_wrap(
const unsigned char *key,
size_t keylen,
465 const unsigned char *input,
size_t ilen,
466 unsigned char *output )
468 sha256_hmac( key, keylen, input, ilen, output, 1 );
471 static void * sha224_ctx_alloc(
void )
476 static void sha224_ctx_free(
void *ctx )
481 static void sha224_process_wrap(
void *ctx,
const unsigned char *data )
495 sha224_hmac_starts_wrap,
496 sha224_hmac_update_wrap,
497 sha224_hmac_finish_wrap,
498 sha224_hmac_reset_wrap,
505 static void sha256_starts_wrap(
void *ctx )
510 static void sha256_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
515 static void sha256_finish_wrap(
void *ctx,
unsigned char *output )
520 static void sha256_wrap(
const unsigned char *input,
size_t ilen,
521 unsigned char *output )
523 sha256( input, ilen, output, 0 );
526 static int sha256_file_wrap(
const char *path,
unsigned char *output )
528 #if defined(POLARSSL_FS_IO)
537 static void sha256_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
542 static void sha256_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
547 static void sha256_hmac_finish_wrap(
void *ctx,
unsigned char *output )
552 static void sha256_hmac_reset_wrap(
void *ctx )
557 static void sha256_hmac_wrap(
const unsigned char *key,
size_t keylen,
558 const unsigned char *input,
size_t ilen,
559 unsigned char *output )
561 sha256_hmac( key, keylen, input, ilen, output, 0 );
564 static void * sha256_ctx_alloc(
void )
569 static void sha256_ctx_free(
void *ctx )
574 static void sha256_process_wrap(
void *ctx,
const unsigned char *data )
588 sha256_hmac_starts_wrap,
589 sha256_hmac_update_wrap,
590 sha256_hmac_finish_wrap,
591 sha256_hmac_reset_wrap,
600 #if defined(POLARSSL_SHA512_C)
602 static void sha384_starts_wrap(
void *ctx )
607 static void sha384_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
612 static void sha384_finish_wrap(
void *ctx,
unsigned char *output )
617 static void sha384_wrap(
const unsigned char *input,
size_t ilen,
618 unsigned char *output )
620 sha512( input, ilen, output, 1 );
623 static int sha384_file_wrap(
const char *path,
unsigned char *output )
625 #if defined(POLARSSL_FS_IO)
634 static void sha384_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
639 static void sha384_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
644 static void sha384_hmac_finish_wrap(
void *ctx,
unsigned char *output )
649 static void sha384_hmac_reset_wrap(
void *ctx )
654 static void sha384_hmac_wrap(
const unsigned char *key,
size_t keylen,
655 const unsigned char *input,
size_t ilen,
656 unsigned char *output )
658 sha512_hmac( key, keylen, input, ilen, output, 1 );
661 static void * sha384_ctx_alloc(
void )
666 static void sha384_ctx_free(
void *ctx )
671 static void sha384_process_wrap(
void *ctx,
const unsigned char *data )
685 sha384_hmac_starts_wrap,
686 sha384_hmac_update_wrap,
687 sha384_hmac_finish_wrap,
688 sha384_hmac_reset_wrap,
695 static void sha512_starts_wrap(
void *ctx )
700 static void sha512_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
705 static void sha512_finish_wrap(
void *ctx,
unsigned char *output )
710 static void sha512_wrap(
const unsigned char *input,
size_t ilen,
711 unsigned char *output )
713 sha512( input, ilen, output, 0 );
716 static int sha512_file_wrap(
const char *path,
unsigned char *output )
718 #if defined(POLARSSL_FS_IO)
727 static void sha512_hmac_starts_wrap(
void *ctx,
const unsigned char *key,
size_t keylen )
732 static void sha512_hmac_update_wrap(
void *ctx,
const unsigned char *input,
size_t ilen )
737 static void sha512_hmac_finish_wrap(
void *ctx,
unsigned char *output )
742 static void sha512_hmac_reset_wrap(
void *ctx )
747 static void sha512_hmac_wrap(
const unsigned char *key,
size_t keylen,
748 const unsigned char *input,
size_t ilen,
749 unsigned char *output )
751 sha512_hmac( key, keylen, input, ilen, output, 0 );
754 static void * sha512_ctx_alloc(
void )
759 static void sha512_ctx_free(
void *ctx )
764 static void sha512_process_wrap(
void *ctx,
const unsigned char *data )
778 sha512_hmac_starts_wrap,
779 sha512_hmac_update_wrap,
780 sha512_hmac_finish_wrap,
781 sha512_hmac_reset_wrap,