hi everyone,
i'm beginner on vb.net
i have some task to porting Twofish encryption from java to vb.net (VS 2005)
but i'm stuck with some overflow error,
here is my code that result overflow error
the red colored code is the code that provided overflow error,
can someone tell me why it result overflow error?
i really appreciate your helps, :)
thanks
i'm beginner on vb.net
i have some task to porting Twofish encryption from java to vb.net (VS 2005)
but i'm stuck with some overflow error,
here is my code that result overflow error
Code:
Public Function blockEncrypt(ByVal input() As Byte, ByVal inOffset As Integer, ByVal sessionKey As keyType) As Byte()
'Try
Dim sk As keyType = sessionKey ' // extract S-box and session key
Dim sBox() As Integer = sk.sb
Dim sKey() As Integer = sk.sk
Dim repeat As Integer = input.Length / 16
Dim finalResult() As Byte = New Byte(16 * repeat) {}
Dim finalCtr As Integer = 0
For z As Integer = 0 To repeat - 1
Dim x0, x1, x2, x3 As Integer
x0 = (input(inOffset = +1) And &HFF) Or _
(input(inOffset = +1) And &HFF) << 8 Or _
(input(inOffset = +1) And &HFF) << 16 Or _
(input(inOffset = +1) And &HFF) << 24
x1 = (input(inOffset = +1) And &HFF) Or _
(input(inOffset = +1) And &HFF) << 8 Or _
(input(inOffset = +1) And &HFF) << 16 Or _
(input(inOffset = +1) And &HFF) << 24
x2 = (input(inOffset = +1) & &HFF) Or _
(input(inOffset = +1) And &HFF) << 8 Or _
(input(inOffset = +1) And &HFF) << 16 Or _
(input(inOffset = +1) And &HFF) << 24
x3 = (input(inOffset = +1) And &HFF) Or _
(input(inOffset = +1) And &HFF) << 8 Or _
(input(inOffset = +1) And &HFF) << 16 Or _
(input(inOffset = +1) And &HFF) << 24
x0 = x0 Xor sKey(INPUT_WHITEN)
x1 = x1 Xor sKey(INPUT_WHITEN + 1)
x2 = x2 Xor sKey(INPUT_WHITEN + 2)
x3 = x3 Xor sKey(INPUT_WHITEN + 3)
Dim t0, t1 As Integer
Dim k As Integer = ROUND_SUBKEYS
For R As Integer = 0 To ROUNDS - 1 Step 2
t0 = Fe32(sBox, x0, 0)
t1 = Fe32(sBox, x1, 3)
x2 = x2 Xor (t0 + t1 + sKey(k = +1))
x2 = x2 >> 1 Or x2 << 31
x3 = x3 << 1 Or x3 >> 31
x3 = x3 Xor (t0 + (2 * t1) + sKey(k = +1))
t0 = Fe32(sBox, x2, 0)
t1 = Fe32(sBox, x3, 3)
x0 = x0 Xor (t0 + t1 + sKey(k = +1))
x0 = x0 >> 1 Or x0 << 31
x1 = x1 << 1 Or x1 >> 31
x1 = x1 Xor (t0 + 2 * t1 + sKey(k = +1))
Next
x2 = x2 Xor sKey(OUTPUT_WHITEN)
x3 = x3 Xor sKey(OUTPUT_WHITEN + 1)
x0 = x0 Xor sKey(OUTPUT_WHITEN + 2)
x1 = x1 Xor sKey(OUTPUT_WHITEN + 3)
Dim result() As Byte
result = New Byte() { _
x2, (x2 >> 8), (x2 >> 16), (x2 >> 24), _
x3, (x3 >> 8), (x3 >> 16), (x3 >> 24), _
x0, (x0 >> 8), (x0 >> 16), (x0 >> 24), _
x1, (x1 >> 8), (x1 >> 16), (x1 >> 24) _
}
For x As Integer = 0 To result.Length - 1
finalResult(finalCtr) = result(x)
finalCtr += 1
Next
Next
Return finalResult
'Catch ex As Exception
'MsgBox(ex.Message, MsgBoxStyle.Information, "Encryption Block Error")
'End Try
End Function
can someone tell me why it result overflow error?
i really appreciate your helps, :)
thanks