#ifndef HEADER_MDC2_H
#define HEADER_MDC2_H
+#include <openssl/des.h>
+
#ifdef __cplusplus
extern "C" {
#endif
-#include <openssl/des.h>
+#ifdef OPENSSL_NO_MDC2
+#error MDC2 is disabled.
+#endif
#define MDC2_BLOCK 8
#define MDC2_DIGEST_LENGTH 16
{
int num;
unsigned char data[MDC2_BLOCK];
- des_cblock h,hh;
+ DES_cblock h,hh;
int pad_type; /* either 1 or 2, default 1 */
} MDC2_CTX;
-#ifndef NOPROTO
-void MDC2_Init(MDC2_CTX *c);
-void MDC2_Update(MDC2_CTX *c, unsigned char *data, unsigned long len);
-void MDC2_Final(unsigned char *md, MDC2_CTX *c);
-unsigned char *MDC2(unsigned char *d, unsigned long n, unsigned char *md);
-
-#else
-
-void MDC2_Init();
-void MDC2_Update();
-void MDC2_Final();
-unsigned char *MDC2();
-
-#endif
+int MDC2_Init(MDC2_CTX *c);
+int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len);
+int MDC2_Final(unsigned char *md, MDC2_CTX *c);
+unsigned char *MDC2(const unsigned char *d, size_t n,
+ unsigned char *md);
#ifdef __cplusplus
}