Hello,
 
i want to implement the Blowfish encryption in a Borland C++ Builder project. 
But when i execute the function in different TForms, i get different 
encryptions, e.g. ín the first form i get password = "§" and in the other form 
i get password = "%" when i want to encrypt the same string. 
 
Here's my code:
 
[code]
AnsiString BlowfishString(AnsiString data, AnsiString dataKey, bool encode)
/*
  generate a Blowfish key from dataKey and encrypt data with Blowfish
*/
{
    unsigned char* ch = dataKey.c_str;
   
   int l = (int) strlen(ch);
   
   BF_KEY key;
   //generate Blowfish key
   BF_set_key(&key, l, ch);
 
   /* OpenSSL need the ivec
      "ivec must point at an 8 byte long initialization vector"
      es genügt, wenn man ivec nur deklariert
   */
   unsigned char ivec;
 
   /* OpenSSL
      "num must point at an integer which must be initially zero"
   */
   int num = 0;
 

   unsigned char* in = data.c_str();
   long length = (long) strlen(data.c_str());
   BF_KEY *schedule = &key;
   //Encryption with Blowfish
   //if encode == true, then encrypt
 
   if (encode)
      BF_cfb64_encrypt(in, in, length, schedule, &ivec, &num, BF_ENCRYPT);
   //else decrypt
   else
      BF_cfb64_encrypt(in, in, length, schedule, &ivec, &num, BF_DECRYPT);
 
   AnsiString s = StrPas(in);
 
   return s;
}
[/code
 
Is there any problem with the variable "ivec" or is the mistake somewhere else?
 
Thank you, Thomas
 
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to