CryptoSys API examples VB6 to VB.NET

PC1_Bytes

Enciphers an array of Bytes in one step using the RC4-compatible 'PC1' algorithm.

VB6/VBA

Debug.Print "Testing PC1_Bytes ..."
Dim abKey() As Byte
Dim abInput() As Byte
Dim abOutput() As Byte
Dim nRet As Long
Dim nDataLen As Long
Dim nKeyLen As Long
Dim sCorrect As String

abKey = cnvBytesFromHexStr("0123456789abcdef")
abInput = cnvBytesFromHexStr("0123456789abcdef")
sCorrect = "75b7878099e0c596"

ReDim abOutput(UBound(abInput))
nDataLen = UBound(abInput) - LBound(abInput) + 1
nKeyLen = UBound(abKey) - LBound(abKey) + 1

Debug.Print "KY=", cnvHexStrFromBytes(abKey)
Debug.Print "PT=", cnvHexStrFromBytes(abInput)
' Encipher using PC1
nRet = PC1_Bytes(abOutput(0), abInput(0), nDataLen, abKey(0), nKeyLen)
Debug.Print "CT=", cnvHexStrFromBytes(abOutput)
Debug.Print "OK=", sCorrect

' Now decipher just by calling again. Use same output as input.
nRet = PC1_Bytes(abOutput(0), abOutput(0), nDataLen, abKey(0), nKeyLen)
Debug.Print "P'=", cnvHexStrFromBytes(abOutput)

Output

Testing PC1_Bytes ...
KY=   0123456789ABCDEF
PT=   0123456789ABCDEF
CT=   75B7878099E0C596
OK=   75b7878099e0c596
P'=   0123456789ABCDEF

VB.NET

Console.WriteLine("Testing PC1_Bytes ...")
Dim abKey() As Byte
Dim abInput() As Byte
Dim abOutput() As Byte
''Dim nRet As Integer
''Dim nDataLen As Integer
''Dim nKeyLen As Integer
Dim sCorrect As String

abKey = Cnv.FromHex("0123456789abcdef")
abInput = Cnv.FromHex("0123456789abcdef")
sCorrect = "75b7878099e0c596"

''ReDim abOutput(UBound(abInput))
''nDataLen = UBound(abInput) - LBound(abInput) + 1
''nKeyLen = UBound(abKey) - LBound(abKey) + 1

Console.WriteLine("KY=" & " " & Cnv.ToHex(abKey))
Console.WriteLine("PT=" & " " & Cnv.ToHex(abInput))
' Encipher using PC1
abOutput = Pc1.Encrypt(abInput, abKey)
Console.WriteLine("CT=" & " " & Cnv.ToHex(abOutput))
Console.WriteLine("OK=" & " " & sCorrect)

' Now decipher just by calling again. Use same output as input.
abOutput = Pc1.Encrypt(abOutput, abKey)
Console.WriteLine("P'=" & " " & Cnv.ToHex(abOutput))

[Contents]

[HOME]   [NEXT: PC1_File...]

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