CryptoSys API examples VB6 to VB.NET

TDEA_BytesMode

Encrypts or decrypts an array of Bytes in one step using a specified mode.

VB6/VBA

Debug.Print "Testing TDEA_BytesMode ..."
Dim nRet As Long
Dim strOutput As String
Dim strInput As String
Dim strKey As String
Dim strHexIV As String
Dim sCorrect As String
Dim nDataLen As Long
Dim abKey() As Byte
Dim abOutput() As Byte
Dim abData() As Byte
Dim abInitV() As Byte

strKey = "0123456789abcdeffedcba987654321089abcdef01234567"
strHexIV = "1234567890abcdef"
strInput = "Now is the time for all "
sCorrect = "204011f986e35647199e47af391620c5bb9a5bcfc86db0bb"

' Convert to byte arrays and compute lengths
abKey = cnvBytesFromHexStr(strKey)
abInitV = cnvBytesFromHexStr(strHexIV)
abData = StrConv(strInput, vbFromUnicode)
nDataLen = Len(strInput)

' Dimension array for output
ReDim abOutput(nDataLen - 1)

Debug.Print "KY=" & cnvHexStrFromBytes(abKey)
Debug.Print "IV=" & cnvHexStrFromBytes(abInitV)
Debug.Print "PT=" & cnvHexStrFromBytes(abData)

' Encrypt in one-off process
nRet = TDEA_BytesMode(abOutput(0), abData(0), nDataLen, _
    abKey(0), True, "CBC", abInitV(0))
Debug.Print "CT=" & cnvHexStrFromBytes(abOutput)
Debug.Print "OK=" & sCorrect
Debug.Assert (sCorrect = cnvHexStrFromBytes(abOutput))

' Now decrypt back
nRet = TDEA_BytesMode(abData(0), abOutput(0), nDataLen, _
    abKey(0), DECRYPT, "CBC", abInitV(0))
strOutput = StrConv(abData(), vbUnicode)
Debug.Print "P'=" & "[" & strOutput & "]"
Debug.Assert (strOutput = strInput)

Output

Testing TDEA_BytesMode ...
KY=0123456789ABCDEFFEDCBA987654321089ABCDEF01234567
IV=1234567890ABCDEF
PT=4E6F77206973207468652074696D6520666F7220616C6C20
CT=204011F986E35647199E47AF391620C5BB9A5BCFC86DB0BB
OK=204011f986e35647199e47af391620c5bb9a5bcfc86db0bb
P'=[Now is the time for all ]

VB.NET

Console.WriteLine("Testing TDEA_BytesMode ...")
''Dim nRet As Integer
Dim strOutput As String
Dim strInput As String
Dim strKey As String
Dim strHexIV As String
Dim sCorrect As String
''Dim nDataLen As Integer
Dim abKey() As Byte
Dim abOutput() As Byte
Dim abData() As Byte
Dim abInitV() As Byte
strKey = "0123456789abcdeffedcba987654321089abcdef01234567"
strHexIV = "1234567890abcdef"
strInput = "Now is the time for all "
sCorrect = "204011f986e35647199e47af391620c5bb9a5bcfc86db0bb"
' Convert to byte arrays and compute lengths
abKey = Cnv.FromHex(strKey)
abInitV = Cnv.FromHex(strHexIV)
abData = System.Text.Encoding.Default.GetBytes(strInput)
''nDataLen = Len(strInput)
' Dimension array for output
''ReDim abOutput(nDataLen - 1)
Console.WriteLine("KY=" & Cnv.ToHex(abKey))
Console.WriteLine("IV=" & Cnv.ToHex(abInitV))
Console.WriteLine("PT=" & Cnv.ToHex(abData))
' Encrypt in one-off process
abOutput = Tdea.Encrypt(abData, abKey, Mode.CBC, abInitV)
Console.WriteLine("CT=" & Cnv.ToHex(abOutput))
Console.WriteLine("OK=" & sCorrect)
Debug.Assert(sCorrect.ToUpper = Cnv.ToHex(abOutput))
' Now decrypt back
abOutput = Tdea.Decrypt(abData, abKey, Mode.CBC, abInitV)
strOutput = System.Text.Encoding.Default.GetString(abData)
Console.WriteLine("P'=" & "[" & strOutput & "]")
Debug.Assert(strOutput.ToLower = strInput.ToLower)

[Contents]

[HOME]   [NEXT: TDEA_FileHex...]

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