CryptoSys API examples VB6 to VB.NET

AES128_Update

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]

[HOME]   [NEXT: AES128_UpdateHex...]

Copyright © 2009-20 D.I. Management Services Pty Ltd. All rights reserved.