diff options
author | simon <simon@FreeBSD.org> | 2006-07-29 19:10:21 +0000 |
---|---|---|
committer | simon <simon@FreeBSD.org> | 2006-07-29 19:10:21 +0000 |
commit | 9159ca2b0ed030ab3c19210cd933875c52c9ed3d (patch) | |
tree | 540130ae2c7e1fe4219bbd47c0c8e30f8b396c81 /crypto/openssl/crypto/rc4/rc4test.c | |
parent | 7067faff1677051a8f1f2ec6ce9e1950a5efd8e2 (diff) | |
parent | fb3c70eda88d3175627edc6a3316b4508b3d29c5 (diff) | |
download | FreeBSD-src-9159ca2b0ed030ab3c19210cd933875c52c9ed3d.zip FreeBSD-src-9159ca2b0ed030ab3c19210cd933875c52c9ed3d.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r160814,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'crypto/openssl/crypto/rc4/rc4test.c')
-rw-r--r-- | crypto/openssl/crypto/rc4/rc4test.c | 51 |
1 files changed, 42 insertions, 9 deletions
diff --git a/crypto/openssl/crypto/rc4/rc4test.c b/crypto/openssl/crypto/rc4/rc4test.c index b9d8f20..54b597f 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); } |