00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef APR_MD5_H
00030 #define APR_MD5_H
00031
00032 #include "apu.h"
00033 #include "apr_xlate.h"
00034
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038
00050 #define APR_MD5_DIGESTSIZE 16
00051
00053 typedef struct apr_md5_ctx_t apr_md5_ctx_t;
00054
00056 struct apr_md5_ctx_t {
00058 apr_uint32_t state[4];
00060 apr_uint32_t count[2];
00062 unsigned char buffer[64];
00066 apr_xlate_t *xlate;
00067 };
00068
00073 APU_DECLARE(apr_status_t) apr_md5_init(apr_md5_ctx_t *context);
00074
00081 APU_DECLARE(apr_status_t) apr_md5_set_xlate(apr_md5_ctx_t *context,
00082 apr_xlate_t *xlate);
00083
00091 APU_DECLARE(apr_status_t) apr_md5_update(apr_md5_ctx_t *context,
00092 const void *input,
00093 apr_size_t inputLen);
00094
00101 APU_DECLARE(apr_status_t) apr_md5_final(unsigned char digest[APR_MD5_DIGESTSIZE],
00102 apr_md5_ctx_t *context);
00103
00110 APU_DECLARE(apr_status_t) apr_md5(unsigned char digest[APR_MD5_DIGESTSIZE],
00111 const void *input,
00112 apr_size_t inputLen);
00113
00121 APU_DECLARE(apr_status_t) apr_md5_encode(const char *password, const char *salt,
00122 char *result, apr_size_t nbytes);
00123
00124
00135 APU_DECLARE(apr_status_t) apr_password_validate(const char *passwd,
00136 const char *hash);
00137
00138
00140 #ifdef __cplusplus
00141 }
00142 #endif
00143
00144 #endif