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]