Enciphers data encoded in hex format in one step using the RC4-compatible 'PC1' algorithm.
VB6/VBA
Debug.Print "Testing PC1_Hex ..." Dim nRes As Long Dim strKey As String Dim strInput As String Dim strOutput As String Dim strCorrect As String Dim strCheck As String ' Test vector 3 strKey = "ef012345" strInput = "00000000000000000000" strCorrect = "d6a141a7ec3c38dfbd61" Debug.Print "KY=", strKey Debug.Print "PT=", strInput ' Encipher using PC1 in hex mode strOutput = String(Len(strInput), " ") nRes = PC1_Hex(strOutput, Len(strOutput), strInput, strKey) Debug.Print "CT=", strOutput Debug.Print "OK=", strCorrect ' Now decipher just by calling again. strCheck = String(Len(strInput), " ") nRes = PC1_Hex(strCheck, Len(strCheck), strOutput, strKey) Debug.Print "P'=", strCheck
Output
Testing PC1_Hex ... KY= ef012345 PT= 00000000000000000000 CT= D6A141A7EC3C38DFBD61 OK= d6a141a7ec3c38dfbd61 P'= 00000000000000000000
VB.NET
Console.WriteLine("Testing PC1_Hex ...")
''Dim nRes As Integer
Dim strKey As String
Dim strInput As String
Dim strOutput As String
Dim strCorrect As String
Dim strCheck As String
' Test vector 3
strKey = "ef012345"
strInput = "00000000000000000000"
strCorrect = "d6a141a7ec3c38dfbd61"
Console.WriteLine("KY=" & " " & strKey)
Console.WriteLine("PT=" & " " & strInput)
' Encipher using PC1 in hex mode
''strOutput = String(Len(strInput), " ")
strOutput = Pc1.Encrypt(strInput, strKey)
Console.WriteLine("CT=" & " " & strOutput)
Console.WriteLine("OK=" & " " & strCorrect)
' Now decipher just by calling again.
''strCheck = String(Len(strInput), " ")
strCheck = Pc1.Encrypt(strOutput, strKey)
Console.WriteLine("P'=" & " " & strCheck)
[Contents]