Configire: take multi-block modules into build loop.
[openssl.git] / crypto / hmac / hmactest.c
index 13b394634820aba5f6e0b39b3e628c663a12c7ab..1b906b81afb77b0d21899e932689c2b599298a0a 100644 (file)
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#include "hmac.h"
 
-struct test_st
+#include "../e_os.h"
+
+#ifdef OPENSSL_NO_HMAC
+int main(int argc, char *argv[])
+{
+    printf("No HMAC support\n");
+    return(0);
+}
+#else
+#include <openssl/hmac.h>
+#ifndef OPENSSL_NO_MD5
+#include <openssl/md5.h>
+#endif
+
+#ifdef CHARSET_EBCDIC
+#include <openssl/ebcdic.h>
+#endif
+
+#ifndef OPENSSL_NO_MD5
+static struct test_st
        {
        unsigned char key[16];
        int key_len;
@@ -100,18 +118,27 @@ struct test_st
                (unsigned char *)"56be34521d144c88dbb8c733f0e8b3f6",
        },
        };
-
-
-#ifndef NOPROTO
-static char *pt(unsigned char *md);
-#else
-static char *pt();
 #endif
 
+static char *pt(unsigned char *md);
 int main(int argc, char *argv[])
        {
-       int i,err=0;
+#ifndef OPENSSL_NO_MD5
+       int i;
        char *p;
+#endif
+       int err=0;
+
+#ifdef OPENSSL_NO_MD5
+       printf("test skipped: MD5 disabled\n");
+#else
+
+#ifdef CHARSET_EBCDIC
+       ebcdic2ascii(test[0].data, test[0].data, test[0].data_len);
+       ebcdic2ascii(test[1].data, test[1].data, test[1].data_len);
+       ebcdic2ascii(test[2].key,  test[2].key,  test[2].key_len);
+       ebcdic2ascii(test[2].data, test[2].data, test[2].data_len);
+#endif
 
        for (i=0; i<4; i++)
                {
@@ -129,10 +156,12 @@ int main(int argc, char *argv[])
                else
                        printf("test %d ok\n",i);
                }
-       exit(err);
+#endif /* OPENSSL_NO_MD5 */
+       EXIT(err);
        return(0);
        }
 
+#ifndef OPENSSL_NO_MD5
 static char *pt(unsigned char *md)
        {
        int i;
@@ -142,3 +171,5 @@ static char *pt(unsigned char *md)
                sprintf(&(buf[i*2]),"%02x",md[i]);
        return(buf);
        }
+#endif
+#endif