CryptoSys API examples VB6 to VB.NET

TDEA_Bytes

Encrypts or decrypts an array of Bytes in one step in Electronic Codebook (EBC) mode.

VB6/VBA

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

' Define test vectors in hex
strKey = "0123456789abcdeffedcba987654321089abcdef01234567"
strInput = "0123456789abcde70123456789abcde7"
sCorrect = "de0b7c06ae5e0ed5de0b7c06ae5e0ed5"

' Convert to byte arrays and compute lengths
abKey = cnvBytesFromHexStr(strKey)
abData = cnvBytesFromHexStr(strInput)
nDataLen = Len(strInput) \ 2

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

Debug.Print "KY=", cnvHexStrFromBytes(abKey)
Debug.Print "PT=", cnvHexStrFromBytes(abData)
' Encrypt in one-off process
nRet = TDEA_Bytes(abOutput(0), abData(0), nDataLen, abKey(0), ENCRYPT)
Debug.Print "CT=", cnvHexStrFromBytes(abOutput), nRet
Debug.Print "OK=", sCorrect
Debug.Assert (sCorrect = cnvHexStrFromBytes(abOutput))

' Now decrypt back
nRet = TDEA_Bytes(abData(0), abOutput(0), nDataLen, abKey(0), DECRYPT)
Debug.Print "P'=", cnvHexStrFromBytes(abData), nRet
Debug.Assert (strInput = cnvHexStrFromBytes(abData))

Output

Testing TDEA_Bytes ...
KY=   0123456789ABCDEFFEDCBA987654321089ABCDEF01234567
PT=   0123456789ABCDE70123456789ABCDE7
CT=   DE0B7C06AE5E0ED5DE0B7C06AE5E0ED5           0 
OK=   de0b7c06ae5e0ed5de0b7c06ae5e0ed5
P'=   0123456789ABCDE70123456789ABCDE7           0 

VB.NET

Console.WriteLine("Testing TDEA_Bytes ...")
''Dim nRet As Integer
Dim strInput As String
Dim strKey As String
Dim sCorrect As String
Dim abKey() As Byte
Dim abOutput() As Byte
Dim abData() As Byte
''Dim nDataLen As Integer

' Define test vectors in hex
strKey = "0123456789abcdeffedcba987654321089abcdef01234567"
strInput = "0123456789abcde70123456789abcde7"
sCorrect = "de0b7c06ae5e0ed5de0b7c06ae5e0ed5"

' Convert to byte arrays and compute lengths
abKey = Cnv.FromHex(strKey)
abData = Cnv.FromHex(strInput)
''nDataLen = Len(strInput) \ 2

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

Console.WriteLine("KY=" & " " & Cnv.ToHex(abKey))
Console.WriteLine("PT=" & " " & Cnv.ToHex(abData))
' Encrypt in one-off process
abOutput = Tdea.Encrypt(abData, abKey, Mode.ECB, Nothing)
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.ECB, Nothing)
Console.WriteLine("P'=" & " " & Cnv.ToHex(abData))
Debug.Assert(strInput.ToUpper = Cnv.ToHex(abData))

[Contents]

[HOME]   [NEXT: TDEA_BytesMode...]

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