Carries out the AES transformation function on a byte array according to the direction and mode set up by an earlier call to AES128_Init or AES128_InitHex.
VB6/VBA
Debug.Print "Testing AES128_Update ..." Dim nRet As Long Dim hContext As Long Dim abBlock() As Byte Dim abKey() As Byte Dim abCorrect() As Byte Dim j As Integer ' File: ecb_d_m.txt ' KEYSIZE=128 I=2 ' KEY=A7BC3BD0EABD9EBA981E23E6FFC9C9C2 ' CT=E3FD51123B48A2E2AB1DB29894202222 ' PT=877B88A77AEF04F05546539E17259F53 ' Convert to Byte format abKey = cnvBytesFromHexStr("A7BC3BD0EABD9EBA981E23E6FFC9C9C2") abBlock = cnvBytesFromHexStr("E3FD51123B48A2E2AB1DB29894202222") abCorrect = cnvBytesFromHexStr("877B88A77AEF04F05546539E17259F53") Debug.Print "AES Monte Carlo ECB Mode Decrypt:" Debug.Print "KY=", cnvHexStrFromBytes(abKey) Debug.Print "CT=", cnvHexStrFromBytes(abBlock) hContext = AES128_Init(abKey(0), DECRYPT, "ECB", 0) If hContext = 0 Then MsgBox "Failed to set context", vbCritical Exit Sub End If ' Do 10,000 times For j = 0 To 9999 nRet = AES128_Update(hContext, abBlock(0), 16) Next Debug.Print "PT=", cnvHexStrFromBytes(abBlock) Debug.Print "OK=", cnvHexStrFromBytes(abCorrect) nRet = AES128_Final(hContext) Debug.Assert (StrConv(abCorrect, vbUnicode) = StrConv(abBlock, vbUnicode))
Output
Testing AES128_Update ... AES Monte Carlo ECB Mode Decrypt: KY= A7BC3BD0EABD9EBA981E23E6FFC9C9C2 CT= E3FD51123B48A2E2AB1DB29894202222 PT= 877B88A77AEF04F05546539E17259F53 OK= 877B88A77AEF04F05546539E17259F53
VB.NET
Console.WriteLine("Testing AES128_Update ...")
Dim nRet As Integer
''Dim hContext As Integer
Dim abBlock() As Byte
Dim abKey() As Byte
Dim abCorrect() As Byte
Dim j As Integer
Dim oAes128 As Aes128 = Aes128.Instance()
' File: ecb_d_m.txt
' KEYSIZE=128 I=2
' KEY=A7BC3BD0EABD9EBA981E23E6FFC9C9C2
' CT=E3FD51123B48A2E2AB1DB29894202222
' PT=877B88A77AEF04F05546539E17259F53
' Convert to Byte format
abKey = Cnv.FromHex("A7BC3BD0EABD9EBA981E23E6FFC9C9C2")
abBlock = Cnv.FromHex("E3FD51123B48A2E2AB1DB29894202222")
abCorrect = Cnv.FromHex("877B88A77AEF04F05546539E17259F53")
Console.WriteLine("AES Monte Carlo ECB Mode Decrypt:")
Console.WriteLine("KY=" & " " & Cnv.ToHex(abKey))
Console.WriteLine("CT=" & " " & Cnv.ToHex(abBlock))
nRet = oAes128.InitDecrypt(abKey, Mode.ECB, Nothing)
If nRet <> 0 Then
MsgBox("Failed to set context", vbCritical)
Exit Sub
End If
' Do 10,000 times
For j = 0 To 9999
abBlock = oAes128.Update(abBlock)
Next
Console.WriteLine("PT=" & " " & Cnv.ToHex(abBlock))
Console.WriteLine("OK=" & " " & Cnv.ToHex(abCorrect))
oAes128.Dispose()
Debug.Assert(Cnv.ToHex(abCorrect) = Cnv.ToHex(abBlock))
[Contents]