CryptoSys API examples VB6 to VB.NET

BLF_BytesMode

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

VB6/VBA

Debug.Print "Testing BLF_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 nKeyLen As Long
Dim abKey() As Byte
Dim abOutput() As Byte
Dim abData() As Byte
Dim nDataLen As Long
Dim abInitV() As Byte
Dim nIvLen As Long

strKey = "0123456789ABCDEFF0E1D2C3B4A59687"
strHexIV = "FEDCBA9876543210"
strInput = _
"37363534333231204E6F77206973207468652074696D6520666F722000000000"
sCorrect = _
"6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CC"

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

' 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 = BLF_BytesMode(abOutput(0), abData(0), nDataLen, abKey(0), _
    nKeyLen, ENCRYPT, "CBC", abInitV(0))
Debug.Print "CT=", cnvHexStrFromBytes(abOutput), nRet
Debug.Print "OK=", sCorrect

' Now decrypt back
nRet = BLF_BytesMode(abData(0), abOutput(0), nDataLen, abKey(0), _
    nKeyLen, DECRYPT, "cbc", abInitV(0))
Debug.Print "P'=", cnvHexStrFromBytes(abData), nRet

Output

Testing BLF_BytesMode ...
KY=   0123456789ABCDEFF0E1D2C3B4A59687
IV=   FEDCBA9876543210
PT=   37363534333231204E6F77206973207468652074696D6520666F722000000000
CT=   6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CC       0 
OK=   6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CC
P'=   37363534333231204E6F77206973207468652074696D6520666F722000000000       0 

VB.NET

Console.WriteLine("Testing BLF_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 nKeyLen As Integer
Dim abKey() As Byte
Dim abOutput() As Byte
Dim abData() As Byte
''Dim nDataLen As Integer
Dim abInitV() As Byte
''Dim nIvLen As Integer

strKey = "0123456789ABCDEFF0E1D2C3B4A59687"
strHexIV = "FEDCBA9876543210"
strInput = _
"37363534333231204E6F77206973207468652074696D6520666F722000000000"
sCorrect = _
"6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CC"

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

' 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 = Blowfish.Encrypt(abData, abKey, Mode.CBC, abInitV)
Console.WriteLine("CT=" & " " & Cnv.ToHex(abOutput))
Console.WriteLine("OK=" & " " & sCorrect)

' Now decrypt back
abOutput = Blowfish.Decrypt(abData, abKey, Mode.CBC, abInitV)
Console.WriteLine("P'=" & " " & Cnv.ToHex(abData))

[Contents]

[HOME]   [NEXT: BLF_File...]

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