void OpenSSL_add_all_algorithms(void) { OPENSSL_add_all_algorithms_noconf(); }
void init_crypto() { OPENSSL_add_all_algorithms_noconf(); }
void OPENSSL_add_all_algorithms_conf(void) { OPENSSL_add_all_algorithms_noconf(); OPENSSL_config(NULL); }
int main(int argc, char *argv[]) { int i,err=0; int j; unsigned char *p; RC4_KEY key; unsigned char obuf[512]; OPENSSL_add_all_algorithms_noconf(); for (i=0; i<6; i++) { RC4_set_key(&key,keys[i][0],&(keys[i][1])); memset(obuf,0x00,sizeof(obuf)); RC4(&key,data_len[i],&(data[i][0]),obuf); if (memcmp(obuf,output[i],data_len[i]+1) != 0) { printf("error calculating RC4\n"); printf("output:"); for (j=0; j<data_len[i]+1; j++) printf(" %02x",obuf[j]); printf("\n"); printf("expect:"); p= &(output[i][0]); for (j=0; j<data_len[i]+1; j++) printf(" %02x",*(p++)); printf("\n"); err++; } else printf("test %d ok\n",i); } printf("test end processing "); for (i=0; i<data_len[3]; i++) { RC4_set_key(&key,keys[3][0],&(keys[3][1])); memset(obuf,0x00,sizeof(obuf)); RC4(&key,i,&(data[3][0]),obuf); if ((memcmp(obuf,output[3],i) != 0) || (obuf[i] != 0)) { printf("error in RC4 length processing\n"); printf("output:"); for (j=0; j<i+1; j++) printf(" %02x",obuf[j]); printf("\n"); printf("expect:"); p= &(output[3][0]); for (j=0; j<i; j++) printf(" %02x",*(p++)); printf(" 00\n"); err++; } else { printf("."); fflush(stdout); } } printf("done\n"); printf("test multi-call "); for (i=0; i<data_len[3]; i++) { RC4_set_key(&key,keys[3][0],&(keys[3][1])); memset(obuf,0x00,sizeof(obuf)); RC4(&key,i,&(data[3][0]),obuf); RC4(&key,data_len[3]-i,&(data[3][i]),&(obuf[i])); if (memcmp(obuf,output[3],data_len[3]+1) != 0) { printf("error in RC4 multi-call processing\n"); printf("output:"); for (j=0; j<data_len[3]+1; j++) printf(" %02x",obuf[j]); printf("\n"); printf("expect:"); p= &(output[3][0]); for (j=0; j<data_len[3]+1; j++) printf(" %02x",*(p++)); err++; } else { printf("."); fflush(stdout); } } 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<(int)sizeof(md); j++) printf(" %02x",md[j]); printf("\n"); printf("expect:"); for (j=0; j<(int)sizeof(md); j++) printf(" %02x",expected[j]); printf("\n"); err++; } else printf("ok\n"); } exit(err); }