|
|
@ -327,7 +327,7 @@ static int cfb64_test(unsigned char *cfb_cipher);
|
|
|
|
static int ede_cfb64_test(unsigned char *cfb_cipher);
|
|
|
|
static int ede_cfb64_test(unsigned char *cfb_cipher);
|
|
|
|
int main(int argc, char *argv[])
|
|
|
|
int main(int argc, char *argv[])
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int i,j,err=0;
|
|
|
|
int j,err=0;
|
|
|
|
unsigned int i;
|
|
|
|
unsigned int i;
|
|
|
|
DES_cblock in,out,outin,iv3,iv2;
|
|
|
|
DES_cblock in,out,outin,iv3,iv2;
|
|
|
|
DES_key_schedule ks,ks2,ks3;
|
|
|
|
DES_key_schedule ks,ks2,ks3;
|
|
|
@ -406,8 +406,8 @@ int main(int argc, char *argv[])
|
|
|
|
memcpy(in,plain_data[i],8);
|
|
|
|
memcpy(in,plain_data[i],8);
|
|
|
|
memset(out,0,8);
|
|
|
|
memset(out,0,8);
|
|
|
|
memset(outin,0,8);
|
|
|
|
memset(outin,0,8);
|
|
|
|
DES_ecb_encrypt(&in,&out,ks,DES_ENCRYPT);
|
|
|
|
DES_ecb_encrypt(&in,&out,&ks,DES_ENCRYPT);
|
|
|
|
DES_ecb_encrypt(&out,&outin,ks,DES_DECRYPT);
|
|
|
|
DES_ecb_encrypt(&out,&outin,&ks,DES_DECRYPT);
|
|
|
|
|
|
|
|
|
|
|
|
if (memcmp(out,cipher_data[i],8) != 0)
|
|
|
|
if (memcmp(out,cipher_data[i],8) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -434,8 +434,8 @@ int main(int argc, char *argv[])
|
|
|
|
memcpy(in,plain_data[i],8);
|
|
|
|
memcpy(in,plain_data[i],8);
|
|
|
|
memset(out,0,8);
|
|
|
|
memset(out,0,8);
|
|
|
|
memset(outin,0,8);
|
|
|
|
memset(outin,0,8);
|
|
|
|
DES_ecb2_encrypt(&in,&out,ks,ks2,DES_ENCRYPT);
|
|
|
|
DES_ecb2_encrypt(&in,&out,&ks,&ks2,DES_ENCRYPT);
|
|
|
|
DES_ecb2_encrypt(&out,&outin,ks,ks2,DES_DECRYPT);
|
|
|
|
DES_ecb2_encrypt(&out,&outin,&ks,&ks2,DES_DECRYPT);
|
|
|
|
|
|
|
|
|
|
|
|
if (memcmp(out,cipher_ecb2[i],8) != 0)
|
|
|
|
if (memcmp(out,cipher_ecb2[i],8) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -462,7 +462,7 @@ int main(int argc, char *argv[])
|
|
|
|
memset(cbc_out,0,40);
|
|
|
|
memset(cbc_out,0,40);
|
|
|
|
memset(cbc_in,0,40);
|
|
|
|
memset(cbc_in,0,40);
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
DES_ncbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,ks,
|
|
|
|
DES_ncbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks,
|
|
|
|
&iv3,DES_ENCRYPT);
|
|
|
|
&iv3,DES_ENCRYPT);
|
|
|
|
if (memcmp(cbc_out,cbc_ok,32) != 0)
|
|
|
|
if (memcmp(cbc_out,cbc_ok,32) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -471,7 +471,7 @@ int main(int argc, char *argv[])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
DES_ncbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,ks,
|
|
|
|
DES_ncbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks,
|
|
|
|
&iv3,DES_DECRYPT);
|
|
|
|
&iv3,DES_DECRYPT);
|
|
|
|
if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)) != 0)
|
|
|
|
if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -489,7 +489,7 @@ int main(int argc, char *argv[])
|
|
|
|
memset(cbc_out,0,40);
|
|
|
|
memset(cbc_out,0,40);
|
|
|
|
memset(cbc_in,0,40);
|
|
|
|
memset(cbc_in,0,40);
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
DES_xcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,ks,
|
|
|
|
DES_xcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks,
|
|
|
|
&iv3,&cbc2_key,&cbc3_key, DES_ENCRYPT);
|
|
|
|
&iv3,&cbc2_key,&cbc3_key, DES_ENCRYPT);
|
|
|
|
if (memcmp(cbc_out,xcbc_ok,32) != 0)
|
|
|
|
if (memcmp(cbc_out,xcbc_ok,32) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -497,7 +497,7 @@ int main(int argc, char *argv[])
|
|
|
|
err=1;
|
|
|
|
err=1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
DES_xcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,ks,
|
|
|
|
DES_xcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks,
|
|
|
|
&iv3,&cbc2_key,&cbc3_key, DES_DECRYPT);
|
|
|
|
&iv3,&cbc2_key,&cbc3_key, DES_DECRYPT);
|
|
|
|
if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0)
|
|
|
|
if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -528,9 +528,9 @@ int main(int argc, char *argv[])
|
|
|
|
/* i=((i+7)/8)*8; */
|
|
|
|
/* i=((i+7)/8)*8; */
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
|
|
|
|
|
|
|
|
DES_ede3_cbc_encrypt(cbc_data,cbc_out,16L,ks,ks2,ks3,&iv3,
|
|
|
|
DES_ede3_cbc_encrypt(cbc_data,cbc_out,16L,&ks,&ks2,&ks3,&iv3,
|
|
|
|
DES_ENCRYPT);
|
|
|
|
DES_ENCRYPT);
|
|
|
|
DES_ede3_cbc_encrypt(&(cbc_data[16]),&(cbc_out[16]),i-16,ks,ks2,ks3,
|
|
|
|
DES_ede3_cbc_encrypt(&(cbc_data[16]),&(cbc_out[16]),i-16,&ks,&ks2,&ks3,
|
|
|
|
&iv3,DES_ENCRYPT);
|
|
|
|
&iv3,DES_ENCRYPT);
|
|
|
|
if (memcmp(cbc_out,cbc3_ok,
|
|
|
|
if (memcmp(cbc_out,cbc3_ok,
|
|
|
|
(unsigned int)(strlen((char *)cbc_data)+1+7)/8*8) != 0)
|
|
|
|
(unsigned int)(strlen((char *)cbc_data)+1+7)/8*8) != 0)
|
|
|
@ -548,7 +548,7 @@ int main(int argc, char *argv[])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
memcpy(iv3,cbc_iv,sizeof(cbc_iv));
|
|
|
|
DES_ede3_cbc_encrypt(cbc_out,cbc_in,i,ks,ks2,ks3,&iv3,DES_DECRYPT);
|
|
|
|
DES_ede3_cbc_encrypt(cbc_out,cbc_in,i,&ks,&ks2,&ks3,&iv3,DES_DECRYPT);
|
|
|
|
if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0)
|
|
|
|
if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int n;
|
|
|
|
int n;
|
|
|
@ -572,14 +572,14 @@ int main(int argc, char *argv[])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
memset(cbc_out,0,40);
|
|
|
|
memset(cbc_out,0,40);
|
|
|
|
memset(cbc_in,0,40);
|
|
|
|
memset(cbc_in,0,40);
|
|
|
|
DES_pcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,ks,
|
|
|
|
DES_pcbc_encrypt(cbc_data,cbc_out,strlen((char *)cbc_data)+1,&ks,
|
|
|
|
&cbc_iv,DES_ENCRYPT);
|
|
|
|
&cbc_iv,DES_ENCRYPT);
|
|
|
|
if (memcmp(cbc_out,pcbc_ok,32) != 0)
|
|
|
|
if (memcmp(cbc_out,pcbc_ok,32) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("pcbc_encrypt encrypt error\n");
|
|
|
|
printf("pcbc_encrypt encrypt error\n");
|
|
|
|
err=1;
|
|
|
|
err=1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
DES_pcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,ks,&cbc_iv,
|
|
|
|
DES_pcbc_encrypt(cbc_out,cbc_in,strlen((char *)cbc_data)+1,&ks,&cbc_iv,
|
|
|
|
DES_DECRYPT);
|
|
|
|
DES_DECRYPT);
|
|
|
|
if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0)
|
|
|
|
if (memcmp(cbc_in,cbc_data,strlen((char *)cbc_data)+1) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -605,7 +605,7 @@ int main(int argc, char *argv[])
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
for (i=0; i<sizeof(plain); i++)
|
|
|
|
for (i=0; i<sizeof(plain); i++)
|
|
|
|
DES_cfb_encrypt(&(plain[i]),&(cfb_buf1[i]),
|
|
|
|
DES_cfb_encrypt(&(plain[i]),&(cfb_buf1[i]),
|
|
|
|
8,1,ks,&cfb_tmp,DES_ENCRYPT);
|
|
|
|
8,1,&ks,&cfb_tmp,DES_ENCRYPT);
|
|
|
|
if (memcmp(cfb_cipher8,cfb_buf1,sizeof(plain)) != 0)
|
|
|
|
if (memcmp(cfb_cipher8,cfb_buf1,sizeof(plain)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("cfb_encrypt small encrypt error\n");
|
|
|
|
printf("cfb_encrypt small encrypt error\n");
|
|
|
@ -615,7 +615,7 @@ int main(int argc, char *argv[])
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
for (i=0; i<sizeof(plain); i++)
|
|
|
|
for (i=0; i<sizeof(plain); i++)
|
|
|
|
DES_cfb_encrypt(&(cfb_buf1[i]),&(cfb_buf2[i]),
|
|
|
|
DES_cfb_encrypt(&(cfb_buf1[i]),&(cfb_buf2[i]),
|
|
|
|
8,1,ks,&cfb_tmp,DES_DECRYPT);
|
|
|
|
8,1,&ks,&cfb_tmp,DES_DECRYPT);
|
|
|
|
if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0)
|
|
|
|
if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("cfb_encrypt small decrypt error\n");
|
|
|
|
printf("cfb_encrypt small decrypt error\n");
|
|
|
@ -630,7 +630,7 @@ int main(int argc, char *argv[])
|
|
|
|
printf("Doing ofb\n");
|
|
|
|
printf("Doing ofb\n");
|
|
|
|
DES_set_key_checked(&ofb_key,&ks);
|
|
|
|
DES_set_key_checked(&ofb_key,&ks);
|
|
|
|
memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv));
|
|
|
|
memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv));
|
|
|
|
DES_ofb_encrypt(plain,ofb_buf1,64,sizeof(plain)/8,ks,&ofb_tmp);
|
|
|
|
DES_ofb_encrypt(plain,ofb_buf1,64,sizeof(plain)/8,&ks,&ofb_tmp);
|
|
|
|
if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0)
|
|
|
|
if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("ofb_encrypt encrypt error\n");
|
|
|
|
printf("ofb_encrypt encrypt error\n");
|
|
|
@ -643,7 +643,7 @@ ofb_buf1[8+4], ofb_cipher[8+5], ofb_cipher[8+6], ofb_cipher[8+7]);
|
|
|
|
err=1;
|
|
|
|
err=1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv));
|
|
|
|
memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv));
|
|
|
|
DES_ofb_encrypt(ofb_buf1,ofb_buf2,64,sizeof(ofb_buf1)/8,ks,&ofb_tmp);
|
|
|
|
DES_ofb_encrypt(ofb_buf1,ofb_buf2,64,sizeof(ofb_buf1)/8,&ks,&ofb_tmp);
|
|
|
|
if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0)
|
|
|
|
if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("ofb_encrypt decrypt error\n");
|
|
|
|
printf("ofb_encrypt decrypt error\n");
|
|
|
@ -664,7 +664,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
|
|
|
|
num=0;
|
|
|
|
num=0;
|
|
|
|
for (i=0; i<sizeof(plain); i++)
|
|
|
|
for (i=0; i<sizeof(plain); i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DES_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,ks,&ofb_tmp,
|
|
|
|
DES_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ofb_tmp,
|
|
|
|
&num);
|
|
|
|
&num);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0)
|
|
|
|
if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0)
|
|
|
@ -674,7 +674,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv));
|
|
|
|
memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv));
|
|
|
|
num=0;
|
|
|
|
num=0;
|
|
|
|
DES_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),ks,&ofb_tmp,
|
|
|
|
DES_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ofb_tmp,
|
|
|
|
&num);
|
|
|
|
&num);
|
|
|
|
if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0)
|
|
|
|
if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -690,8 +690,8 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
|
|
|
|
num=0;
|
|
|
|
num=0;
|
|
|
|
for (i=0; i<sizeof(plain); i++)
|
|
|
|
for (i=0; i<sizeof(plain); i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
DES_ede3_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,ks,ks,
|
|
|
|
DES_ede3_ofb64_encrypt(&(plain[i]),&(ofb_buf1[i]),1,&ks,&ks,
|
|
|
|
ks,&ofb_tmp,&num);
|
|
|
|
&ks,&ofb_tmp,&num);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0)
|
|
|
|
if (memcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -700,7 +700,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv));
|
|
|
|
memcpy(ofb_tmp,ofb_iv,sizeof(ofb_iv));
|
|
|
|
num=0;
|
|
|
|
num=0;
|
|
|
|
DES_ede3_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),ks,ks,ks,
|
|
|
|
DES_ede3_ofb64_encrypt(ofb_buf1,ofb_buf2,sizeof(ofb_buf1),&ks,&ks,&ks,
|
|
|
|
&ofb_tmp,&num);
|
|
|
|
&ofb_tmp,&num);
|
|
|
|
if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0)
|
|
|
|
if (memcmp(plain,ofb_buf2,sizeof(ofb_buf2)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -710,7 +710,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
|
|
|
|
|
|
|
|
|
|
|
|
printf("Doing cbc_cksum\n");
|
|
|
|
printf("Doing cbc_cksum\n");
|
|
|
|
DES_set_key_checked(&cbc_key,&ks);
|
|
|
|
DES_set_key_checked(&cbc_key,&ks);
|
|
|
|
cs=DES_cbc_cksum(cbc_data,&cret,strlen((char *)cbc_data),ks,&cbc_iv);
|
|
|
|
cs=DES_cbc_cksum(cbc_data,&cret,strlen((char *)cbc_data),&ks,&cbc_iv);
|
|
|
|
if (cs != cbc_cksum_ret)
|
|
|
|
if (cs != cbc_cksum_ret)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf("bad return value (%08lX), should be %08lX\n",
|
|
|
|
printf("bad return value (%08lX), should be %08lX\n",
|
|
|
@ -790,7 +790,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf(" %d",i);
|
|
|
|
printf(" %d",i);
|
|
|
|
DES_ncbc_encrypt(&(cbc_out[i]),cbc_in,
|
|
|
|
DES_ncbc_encrypt(&(cbc_out[i]),cbc_in,
|
|
|
|
strlen((char *)cbc_data)+1,ks,
|
|
|
|
strlen((char *)cbc_data)+1,&ks,
|
|
|
|
&cbc_iv,DES_ENCRYPT);
|
|
|
|
&cbc_iv,DES_ENCRYPT);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
printf("\noutput word alignment test");
|
|
|
|
printf("\noutput word alignment test");
|
|
|
@ -798,7 +798,7 @@ plain[8+4], plain[8+5], plain[8+6], plain[8+7]);
|
|
|
|
{
|
|
|
|
{
|
|
|
|
printf(" %d",i);
|
|
|
|
printf(" %d",i);
|
|
|
|
DES_ncbc_encrypt(cbc_out,&(cbc_in[i]),
|
|
|
|
DES_ncbc_encrypt(cbc_out,&(cbc_in[i]),
|
|
|
|
strlen((char *)cbc_data)+1,ks,
|
|
|
|
strlen((char *)cbc_data)+1,&ks,
|
|
|
|
&cbc_iv,DES_ENCRYPT);
|
|
|
|
&cbc_iv,DES_ENCRYPT);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
printf("\n");
|
|
|
|
printf("\n");
|
|
|
@ -850,7 +850,7 @@ static int cfb_test(int bits, unsigned char *cfb_cipher)
|
|
|
|
|
|
|
|
|
|
|
|
DES_set_key_checked(&cfb_key,&ks);
|
|
|
|
DES_set_key_checked(&cfb_key,&ks);
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
DES_cfb_encrypt(plain,cfb_buf1,bits,sizeof(plain),ks,&cfb_tmp,
|
|
|
|
DES_cfb_encrypt(plain,cfb_buf1,bits,sizeof(plain),&ks,&cfb_tmp,
|
|
|
|
DES_ENCRYPT);
|
|
|
|
DES_ENCRYPT);
|
|
|
|
if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0)
|
|
|
|
if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -860,7 +860,7 @@ static int cfb_test(int bits, unsigned char *cfb_cipher)
|
|
|
|
printf("%s\n",pt(&(cfb_buf1[i])));
|
|
|
|
printf("%s\n",pt(&(cfb_buf1[i])));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
DES_cfb_encrypt(cfb_buf1,cfb_buf2,bits,sizeof(plain),ks,&cfb_tmp,
|
|
|
|
DES_cfb_encrypt(cfb_buf1,cfb_buf2,bits,sizeof(plain),&ks,&cfb_tmp,
|
|
|
|
DES_DECRYPT);
|
|
|
|
DES_DECRYPT);
|
|
|
|
if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0)
|
|
|
|
if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -880,8 +880,8 @@ static int cfb64_test(unsigned char *cfb_cipher)
|
|
|
|
DES_set_key_checked(&cfb_key,&ks);
|
|
|
|
DES_set_key_checked(&cfb_key,&ks);
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
n=0;
|
|
|
|
n=0;
|
|
|
|
DES_cfb64_encrypt(plain,cfb_buf1,12,ks,&cfb_tmp,&n,DES_ENCRYPT);
|
|
|
|
DES_cfb64_encrypt(plain,cfb_buf1,12,&ks,&cfb_tmp,&n,DES_ENCRYPT);
|
|
|
|
DES_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),sizeof(plain)-12,ks,
|
|
|
|
DES_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),sizeof(plain)-12,&ks,
|
|
|
|
&cfb_tmp,&n,DES_ENCRYPT);
|
|
|
|
&cfb_tmp,&n,DES_ENCRYPT);
|
|
|
|
if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0)
|
|
|
|
if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -892,9 +892,9 @@ static int cfb64_test(unsigned char *cfb_cipher)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
n=0;
|
|
|
|
n=0;
|
|
|
|
DES_cfb64_encrypt(cfb_buf1,cfb_buf2,17,ks,&cfb_tmp,&n,DES_DECRYPT);
|
|
|
|
DES_cfb64_encrypt(cfb_buf1,cfb_buf2,17,&ks,&cfb_tmp,&n,DES_DECRYPT);
|
|
|
|
DES_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]),
|
|
|
|
DES_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]),
|
|
|
|
sizeof(plain)-17,ks,&cfb_tmp,&n,DES_DECRYPT);
|
|
|
|
sizeof(plain)-17,&ks,&cfb_tmp,&n,DES_DECRYPT);
|
|
|
|
if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0)
|
|
|
|
if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
err=1;
|
|
|
|
err=1;
|
|
|
@ -913,10 +913,10 @@ static int ede_cfb64_test(unsigned char *cfb_cipher)
|
|
|
|
DES_set_key_checked(&cfb_key,&ks);
|
|
|
|
DES_set_key_checked(&cfb_key,&ks);
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
n=0;
|
|
|
|
n=0;
|
|
|
|
DES_ede3_cfb64_encrypt(plain,cfb_buf1,12,ks,ks,ks,&cfb_tmp,&n,
|
|
|
|
DES_ede3_cfb64_encrypt(plain,cfb_buf1,12,&ks,&ks,&ks,&cfb_tmp,&n,
|
|
|
|
DES_ENCRYPT);
|
|
|
|
DES_ENCRYPT);
|
|
|
|
DES_ede3_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),
|
|
|
|
DES_ede3_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),
|
|
|
|
sizeof(plain)-12,ks,ks,ks,
|
|
|
|
sizeof(plain)-12,&ks,&ks,&ks,
|
|
|
|
&cfb_tmp,&n,DES_ENCRYPT);
|
|
|
|
&cfb_tmp,&n,DES_ENCRYPT);
|
|
|
|
if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0)
|
|
|
|
if (memcmp(cfb_cipher,cfb_buf1,sizeof(plain)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -927,10 +927,10 @@ static int ede_cfb64_test(unsigned char *cfb_cipher)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
memcpy(cfb_tmp,cfb_iv,sizeof(cfb_iv));
|
|
|
|
n=0;
|
|
|
|
n=0;
|
|
|
|
DES_ede3_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,ks,ks,ks,
|
|
|
|
DES_ede3_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,&ks,&ks,&ks,
|
|
|
|
&cfb_tmp,&n,DES_DECRYPT);
|
|
|
|
&cfb_tmp,&n,DES_DECRYPT);
|
|
|
|
DES_ede3_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]),
|
|
|
|
DES_ede3_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]),
|
|
|
|
sizeof(plain)-17,ks,ks,ks,
|
|
|
|
sizeof(plain)-17,&ks,&ks,&ks,
|
|
|
|
&cfb_tmp,&n,DES_DECRYPT);
|
|
|
|
&cfb_tmp,&n,DES_DECRYPT);
|
|
|
|
if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0)
|
|
|
|
if (memcmp(plain,cfb_buf2,sizeof(plain)) != 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|