Discuss http://www.shoup.net/papers/oaep.ps.Z
[openssl.git] / crypto / sha / shatest.c
index 9224e88dd81c9335c45390d50c1d6fc5acd5e0cf..a5786bbf768d3ce63871b25cb54d28dc61aa3353 100644 (file)
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
+
+#ifdef NO_SHA
+int main(int argc, char *argv[])
+{
+    printf("No SHA support\n");
+    return(0);
+}
+#else
 #include <openssl/sha.h>
 
+#ifdef CHARSET_EBCDIC
+#include <openssl/ebcdic.h>
+#endif
+
 #define SHA_0 /* FIPS 180 */
 #undef  SHA_1 /* FIPS 180-1 */
 
-char *test[]={
+static char *test[]={
        "abc",
        "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
        NULL,
        };
 
 #ifdef SHA_0
-char *ret[]={
+static char *ret[]={
        "0164b8a914cd2a5e74c4f7ff082c4d97f1edf880",
        "d2516ee1acfa5baf33dfc1c471e438449ef134c8",
        };
-char *bigret=
+static char *bigret=
        "3232affa48628a26653b5aaa44541fd90d690603";
 #endif
 #ifdef SHA_1
-char *ret[]={
+static char *ret[]={
        "a9993e364706816aba3e25717850c26c9cd0d89d",
        "84983e441c3bd26ebaae4aa1f95129e5e54670f1",
        };
-char *bigret=
+static char *bigret=
        "34aa973cd4c4daa4f61eeb2bdbad27316534016f";
 #endif
 
-#ifndef NOPROTO
 static char *pt(unsigned char *md);
-#else
-static char *pt();
-#endif
-
 int main(int argc, char *argv[])
        {
        int i,err=0;
@@ -102,6 +109,11 @@ int main(int argc, char *argv[])
        SHA_CTX c;
        unsigned char md[SHA_DIGEST_LENGTH];
 
+#ifdef CHARSET_EBCDIC
+       ebcdic2ascii(test[0], test[0], strlen(test[0]));
+       ebcdic2ascii(test[1], test[1], strlen(test[1]));
+#endif
+
        P=(unsigned char **)test;
        R=(unsigned char **)ret;
        i=1;
@@ -122,6 +134,9 @@ int main(int argc, char *argv[])
                }
 
        memset(buf,'a',1000);
+#ifdef CHARSET_EBCDIC
+       ebcdic2ascii(buf, buf, 1000);
+#endif /*CHARSET_EBCDIC*/
        SHA_Init(&c);
        for (i=0; i<1000; i++)
                SHA_Update(&c,buf,1000);
@@ -150,3 +165,4 @@ static char *pt(unsigned char *md)
                sprintf(&(buf[i*2]),"%02x",md[i]);
        return(buf);
        }
+#endif