* [including the GNU Public Licence.]
*/
-#include "blowfish.h"
+#include <openssl/blowfish.h>
#include "bf_locl.h"
-void BF_cbc_encrypt(unsigned char *in, unsigned char *out, long length,
- BF_KEY *ks, unsigned char *iv, int encrypt)
+void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
+ const BF_KEY *schedule, unsigned char *ivec, int encrypt)
{
register BF_LONG tin0,tin1;
register BF_LONG tout0,tout1,xor0,xor1;
if (encrypt)
{
- n2l(iv,tout0);
- n2l(iv,tout1);
- iv-=8;
+ n2l(ivec,tout0);
+ n2l(ivec,tout1);
+ ivec-=8;
for (l-=8; l>=0; l-=8)
{
n2l(in,tin0);
tin1^=tout1;
tin[0]=tin0;
tin[1]=tin1;
- BF_encrypt(tin,ks);
+ BF_encrypt(tin,schedule);
tout0=tin[0];
tout1=tin[1];
l2n(tout0,out);
tin1^=tout1;
tin[0]=tin0;
tin[1]=tin1;
- BF_encrypt(tin,ks);
+ BF_encrypt(tin,schedule);
tout0=tin[0];
tout1=tin[1];
l2n(tout0,out);
l2n(tout1,out);
}
- l2n(tout0,iv);
- l2n(tout1,iv);
+ l2n(tout0,ivec);
+ l2n(tout1,ivec);
}
else
{
- n2l(iv,xor0);
- n2l(iv,xor1);
- iv-=8;
+ n2l(ivec,xor0);
+ n2l(ivec,xor1);
+ ivec-=8;
for (l-=8; l>=0; l-=8)
{
n2l(in,tin0);
n2l(in,tin1);
tin[0]=tin0;
tin[1]=tin1;
- BF_decrypt(tin,ks);
+ BF_decrypt(tin,schedule);
tout0=tin[0]^xor0;
tout1=tin[1]^xor1;
l2n(tout0,out);
n2l(in,tin1);
tin[0]=tin0;
tin[1]=tin1;
- BF_decrypt(tin,ks);
+ BF_decrypt(tin,schedule);
tout0=tin[0]^xor0;
tout1=tin[1]^xor1;
l2nn(tout0,tout1,out,l+8);
xor0=tin0;
xor1=tin1;
}
- l2n(xor0,iv);
- l2n(xor1,iv);
+ l2n(xor0,ivec);
+ l2n(xor1,ivec);
}
tin0=tin1=tout0=tout1=xor0=xor1=0;
tin[0]=tin[1]=0;