Blowfish (резервирование дополнительного байта для блока, говорящий о длине блока)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ITdocer, 21 May 2014.

  1. ITdocer

    ITdocer New Member

    Joined:
    23 Aug 2011
    Messages:
    80
    Likes Received:
    0
    Reputations:
    -5
    считывание по блоками по 8 байт(шифрование)
    Code:
    unsigned long arr_e[2];
          while(1)
          {
                 if(cinFile1.gcount() % 8 == 0)
                 {
                    cinFile1.read((char*)arr_e,sizeof(long)*2);
                    encryption(arr_e[0],arr_e[1]);
                    coutFile1.write((char*)arr_e,sizeof(long)*2);
                 }
                 else if(cinFile1.gcount() % 8 != 0)
                 {
                     cinFile1.read((char*)arr_e,sizeof(long)*2);
                     encryption(arr_e[0],arr_e[1]);
                     coutFile1.write((char*)arr_e,sizeof(long)*2);
     
                     int add_b = cinFile1.gcount();
                     coutFile1.write((char*)add_b,sizeof(int));
     
                     break;
                 }
            }
    
    дешифрация
    Код:

    Code:
     unsigned long arr_d[2];
            while(1)
            {
                 if(cinFile1.gcount() % 8 == 0)
                 {
                    cinFile1.read((char*)arr_d,sizeof(long)*2);
                    decryption(arr_d[0],arr_d[1]);
                    coutFile1.write((char*)arr_d,sizeof(long)*2);
                 }
                 else if(cinFile1.gcount() % 8 != 0)
                 {
                     int add_b = cinFile1.gcount();
                     cinFile1.read((char*)arr_d,sizeof(long)*2);
    
                //не могу понять как считать дополнительный байт что бы произвести дишифрацию
                 }
            }
    
    подскажите что я не так делаю