From a7f3353934272f03a3462eae96feaa35a54dd6fe Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 10 Feb 1999 16:22:37 +0000 Subject: See ChangeLog: Wed Feb 10 17:15:39 CET 1999 Werner Koch --- cipher/md5.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) (limited to 'cipher/md5.c') diff --git a/cipher/md5.c b/cipher/md5.c index 214e1372..6a53deda 100644 --- a/cipher/md5.c +++ b/cipher/md5.c @@ -34,8 +34,8 @@ #include #include #include "util.h" -#include "md5.h" #include "memory.h" +#include "dynload.h" typedef struct { @@ -338,7 +338,7 @@ md5_read( MD5_CONTEXT *hd ) * Returns: A pointer to string describing the algorithm or NULL if * the ALGO is invalid. */ -const char * +static const char * md5_get_info( int algo, size_t *contextsize, byte **r_asnoid, int *r_asnlen, int *r_mdlen, void (**r_init)( void *c ), @@ -367,5 +367,58 @@ md5_get_info( int algo, size_t *contextsize, } +#ifndef IS_MODULE +static +#endif +const char * const gnupgext_version = "MD5 ($Revision$)"; + +static struct { + int class; + int version; + int value; + void (*func)(void); +} func_table[] = { + { 10, 1, 0, (void(*)(void))md5_get_info }, + { 11, 1, 1 }, +}; + + +#ifndef IS_MODULE +static +#endif +void * +gnupgext_enum_func( int what, int *sequence, int *class, int *vers ) +{ + void *ret; + int i = *sequence; + + do { + if( i >= DIM(func_table) || i < 0 ) + return NULL; + *class = func_table[i].class; + *vers = func_table[i].version; + switch( *class ) { + case 11: case 21: case 31: ret = &func_table[i].value; break; + default: ret = func_table[i].func; break; + } + i++; + } while( what && what != *class ); + + *sequence = i; + return ret; +} + + + + +#ifndef IS_MODULE +void +md5_constructor(void) +{ + register_internal_cipher_extension( gnupgext_version, gnupgext_enum_func ); +} +#endif + + /* end of file */ -- cgit v1.2.1