В C # я использую файл BlowfishECB.cs Blowfish.NET 2.1.3 ( можно найти здесь )
В C ++ это неизвестно, но похоже.
В C ++ процедура Initialize (blowfish) выглядит следующим образом:
void cBlowFish::Initialize(BYTE key[], int keybytes)
В C # процедура Initialize (blowfish) такая же
public void Initialize(byte[] key, int ofs, int len)
Это проблема:
Так инициализируется ключ в C ++
DWORD keyArray[2] = {0}; //declaration
...some code
blowfish.Initialize((LPBYTE)keyArray, 8);
Как видите, ключ представляет собой массив из двух DWORDS, который составляет всего 8 байтов.
В C # я объявляю это так, но получаю ошибку
BlowfishECB blowfish = new BlowfishECB();
UInt32[] keyarray = new UInt32[2];
..some code
blowfish.Initialize(keyarray, 0, 8);
Ошибка:
Аргумент '1': невозможно преобразовать из 'uint []' в 'byte []'
Что я делаю не так?
Заранее спасибо!