C# で作成したアプリを Ruby に移植しようとしていますが、いくつかの機能を理解するのに苦労しています。
これがコードです。
for (int pos = 0; pos < EncryptedData.Length; pos += AesKey.Length)
{
Array.Copy(incPKGFileKey, 0, PKGFileKeyConsec, pos, PKGFileKey.Length);
IncrementArray(ref incPKGFileKey, PKGFileKey.Length - 1);
}
private Boolean IncrementArray(ref byte[] sourceArray, int position)
{
if (sourceArray[position] == 0xFF)
{
if (position != 0)
{
if (IncrementArray(ref sourceArray, position - 1))
{
sourceArray[position] = 0x00;
return true;
}
else return false;
}
else return false;
}
else
{
sourceArray[position] += 0x01;
return true;
}
}
配列とキーの長さが 16 であることはわかっています。誰かが Array.Copy 関数と IncrementArray 関数のしくみを説明できれば幸いです。