summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/sha/shatest.c
diff options
context:
space:
mode:
authormarkus <>2002-09-05 12:51:52 +0000
committermarkus <>2002-09-05 12:51:52 +0000
commit5514995a9d5ed91db089875adb509c7781357c0e (patch)
tree2484410a46ba6c05ef94c253da36fbceef990b64 /src/lib/libcrypto/sha/shatest.c
parentfd9566423b542798f5c8b06e68101a9ea5bb9885 (diff)
downloadopenbsd-5514995a9d5ed91db089875adb509c7781357c0e.tar.gz
openbsd-5514995a9d5ed91db089875adb509c7781357c0e.tar.bz2
openbsd-5514995a9d5ed91db089875adb509c7781357c0e.zip
import openssl-0.9.7-beta1
Diffstat (limited to 'src/lib/libcrypto/sha/shatest.c')
-rw-r--r--src/lib/libcrypto/sha/shatest.c59
1 files changed, 38 insertions, 21 deletions
diff --git a/src/lib/libcrypto/sha/shatest.c b/src/lib/libcrypto/sha/shatest.c
index 03816e9b39..331294a74f 100644
--- a/src/lib/libcrypto/sha/shatest.c
+++ b/src/lib/libcrypto/sha/shatest.c
@@ -59,57 +59,70 @@
59#include <stdio.h> 59#include <stdio.h>
60#include <string.h> 60#include <string.h>
61#include <stdlib.h> 61#include <stdlib.h>
62#include "sha.h" 62
63#ifdef OPENSSL_NO_SHA
64int main(int argc, char *argv[])
65{
66 printf("No SHA support\n");
67 return(0);
68}
69#else
70#include <openssl/evp.h>
71#include <openssl/sha.h>
72
73#ifdef CHARSET_EBCDIC
74#include <openssl/ebcdic.h>
75#endif
63 76
64#define SHA_0 /* FIPS 180 */ 77#define SHA_0 /* FIPS 180 */
65#undef SHA_1 /* FIPS 180-1 */ 78#undef SHA_1 /* FIPS 180-1 */
66 79
67char *test[]={ 80static char *test[]={
68 "abc", 81 "abc",
69 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 82 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
70 NULL, 83 NULL,
71 }; 84 };
72 85
73#ifdef SHA_0 86#ifdef SHA_0
74char *ret[]={ 87static char *ret[]={
75 "0164b8a914cd2a5e74c4f7ff082c4d97f1edf880", 88 "0164b8a914cd2a5e74c4f7ff082c4d97f1edf880",
76 "d2516ee1acfa5baf33dfc1c471e438449ef134c8", 89 "d2516ee1acfa5baf33dfc1c471e438449ef134c8",
77 }; 90 };
78char *bigret= 91static char *bigret=
79 "3232affa48628a26653b5aaa44541fd90d690603"; 92 "3232affa48628a26653b5aaa44541fd90d690603";
80#endif 93#endif
81#ifdef SHA_1 94#ifdef SHA_1
82char *ret[]={ 95static char *ret[]={
83 "a9993e364706816aba3e25717850c26c9cd0d89d", 96 "a9993e364706816aba3e25717850c26c9cd0d89d",
84 "84983e441c3bd26ebaae4aa1f95129e5e54670f1", 97 "84983e441c3bd26ebaae4aa1f95129e5e54670f1",
85 }; 98 };
86char *bigret= 99static char *bigret=
87 "34aa973cd4c4daa4f61eeb2bdbad27316534016f"; 100 "34aa973cd4c4daa4f61eeb2bdbad27316534016f";
88#endif 101#endif
89 102
90#ifndef NOPROTO
91static char *pt(unsigned char *md); 103static char *pt(unsigned char *md);
92#else 104int main(int argc, char *argv[])
93static char *pt();
94#endif
95
96int main(argc,argv)
97int argc;
98char *argv[];
99 { 105 {
100 int i,err=0; 106 int i,err=0;
101 unsigned char **P,**R; 107 unsigned char **P,**R;
102 static unsigned char buf[1000]; 108 static unsigned char buf[1000];
103 char *p,*r; 109 char *p,*r;
104 SHA_CTX c; 110 EVP_MD_CTX c;
105 unsigned char md[SHA_DIGEST_LENGTH]; 111 unsigned char md[SHA_DIGEST_LENGTH];
106 112
113#ifdef CHARSET_EBCDIC
114 ebcdic2ascii(test[0], test[0], strlen(test[0]));
115 ebcdic2ascii(test[1], test[1], strlen(test[1]));
116#endif
117
118 EVP_MD_CTX_init(&c);
107 P=(unsigned char **)test; 119 P=(unsigned char **)test;
108 R=(unsigned char **)ret; 120 R=(unsigned char **)ret;
109 i=1; 121 i=1;
110 while (*P != NULL) 122 while (*P != NULL)
111 { 123 {
112 p=pt(SHA(*P,(unsigned long)strlen((char *)*P),NULL)); 124 EVP_Digest(*P,(unsigned long)strlen((char *)*P),md,NULL,EVP_sha(), NULL);
125 p=pt(md);
113 if (strcmp(p,(char *)*R) != 0) 126 if (strcmp(p,(char *)*R) != 0)
114 { 127 {
115 printf("error calculating SHA on '%s'\n",*P); 128 printf("error calculating SHA on '%s'\n",*P);
@@ -124,10 +137,13 @@ char *argv[];
124 } 137 }
125 138
126 memset(buf,'a',1000); 139 memset(buf,'a',1000);
127 SHA_Init(&c); 140#ifdef CHARSET_EBCDIC
141 ebcdic2ascii(buf, buf, 1000);
142#endif /*CHARSET_EBCDIC*/
143 EVP_DigestInit_ex(&c,EVP_sha(), NULL);
128 for (i=0; i<1000; i++) 144 for (i=0; i<1000; i++)
129 SHA_Update(&c,buf,1000); 145 EVP_DigestUpdate(&c,buf,1000);
130 SHA_Final(md,&c); 146 EVP_DigestFinal_ex(&c,md,NULL);
131 p=pt(md); 147 p=pt(md);
132 148
133 r=bigret; 149 r=bigret;
@@ -139,12 +155,12 @@ char *argv[];
139 } 155 }
140 else 156 else
141 printf("test 3 ok\n"); 157 printf("test 3 ok\n");
158 EVP_MD_CTX_cleanup(&c);
142 exit(err); 159 exit(err);
143 return(0); 160 return(0);
144 } 161 }
145 162
146static char *pt(md) 163static char *pt(unsigned char *md)
147unsigned char *md;
148 { 164 {
149 int i; 165 int i;
150 static char buf[80]; 166 static char buf[80];
@@ -153,3 +169,4 @@ unsigned char *md;
153 sprintf(&(buf[i*2]),"%02x",md[i]); 169 sprintf(&(buf[i*2]),"%02x",md[i]);
154 return(buf); 170 return(buf);
155 } 171 }
172#endif