aboutsummaryrefslogtreecommitdiff
path: root/crypto/openssl/crypto/rc4/rc4test.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/openssl/crypto/rc4/rc4test.c')
-rw-r--r--crypto/openssl/crypto/rc4/rc4test.c51
1 files changed, 42 insertions, 9 deletions
diff --git a/crypto/openssl/crypto/rc4/rc4test.c b/crypto/openssl/crypto/rc4/rc4test.c
index b9d8f2097536..54b597fa266e 100644
--- a/crypto/openssl/crypto/rc4/rc4test.c
+++ b/crypto/openssl/crypto/rc4/rc4test.c
@@ -70,6 +70,7 @@ int main(int argc, char *argv[])
}
#else
#include <openssl/rc4.h>
+#include <openssl/sha.h>
static unsigned char keys[7][30]={
{8,0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef},
@@ -113,13 +114,11 @@ static unsigned char output[7][30]={
int main(int argc, char *argv[])
{
- int i,err=0;
- int j;
+ int err=0;
+ unsigned int i, j;
unsigned char *p;
RC4_KEY key;
- unsigned char buf[512],obuf[512];
-
- for (i=0; i<512; i++) buf[i]=0x01;
+ unsigned char obuf[512];
for (i=0; i<6; i++)
{
@@ -130,12 +129,12 @@ int main(int argc, char *argv[])
{
printf("error calculating RC4\n");
printf("output:");
- for (j=0; j<data_len[i]+1; j++)
+ for (j=0; j<data_len[i]+1U; j++)
printf(" %02x",obuf[j]);
printf("\n");
printf("expect:");
p= &(output[i][0]);
- for (j=0; j<data_len[i]+1; j++)
+ for (j=0; j<data_len[i]+1U; j++)
printf(" %02x",*(p++));
printf("\n");
err++;
@@ -181,12 +180,12 @@ int main(int argc, char *argv[])
{
printf("error in RC4 multi-call processing\n");
printf("output:");
- for (j=0; j<data_len[3]+1; j++)
+ for (j=0; j<data_len[3]+1U; j++)
printf(" %02x",obuf[j]);
printf("\n");
printf("expect:");
p= &(output[3][0]);
- for (j=0; j<data_len[3]+1; j++)
+ for (j=0; j<data_len[3]+1U; j++)
printf(" %02x",*(p++));
err++;
}
@@ -197,6 +196,40 @@ int main(int argc, char *argv[])
}
}
printf("done\n");
+ printf("bulk test ");
+ { unsigned char buf[513];
+ SHA_CTX c;
+ unsigned char md[SHA_DIGEST_LENGTH];
+ static unsigned char expected[]={
+ 0xa4,0x7b,0xcc,0x00,0x3d,0xd0,0xbd,0xe1,0xac,0x5f,
+ 0x12,0x1e,0x45,0xbc,0xfb,0x1a,0xa1,0xf2,0x7f,0xc5 };
+
+ RC4_set_key(&key,keys[0][0],&(keys[3][1]));
+ memset(buf,'\0',sizeof(buf));
+ SHA1_Init(&c);
+ for (i=0;i<2571;i++) {
+ RC4(&key,sizeof(buf),buf,buf);
+ SHA1_Update(&c,buf,sizeof(buf));
+ }
+ SHA1_Final(md,&c);
+
+ if (memcmp(md,expected,sizeof(md))) {
+ printf("error in RC4 bulk test\n");
+ printf("output:");
+ for (j=0; j<sizeof(md); j++)
+ printf(" %02x",md[j]);
+ printf("\n");
+ printf("expect:");
+ for (j=0; j<sizeof(md); j++)
+ printf(" %02x",expected[j]);
+ printf("\n");
+ err++;
+ }
+ else printf("ok\n");
+ }
+#ifdef OPENSSL_SYS_NETWARE
+ if (err) printf("ERROR: %d\n", err);
+#endif
EXIT(err);
return(0);
}