C#では、Blowfish.NET 2.1.3のBlowfishECB.csファイルを使用しています(ここにあります)
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);
ご覧のとおり、キーは2つのDWORDの配列で、合計8バイトです。
C#ではそのように宣言しますが、エラーが発生します
BlowfishECB blowfish = new BlowfishECB();
UInt32[] keyarray = new UInt32[2];
..some code
blowfish.Initialize(keyarray, 0, 8);
エラーは次のとおりです。
引数「1」:「uint[]」から「byte[]」に変換できません
私は何が間違っているのですか?
前もって感謝します!