Encrypts or decrypts data represented as a hexadecimal string using a specified mode.
VB6/VBA
Debug.Print "Testing AES192_HexMode ..." Dim nRet As Long Dim strOutput As String Dim strInput As String Dim strHexKey As String Dim sPlain As String Dim sCipher As String Dim strHexIV As String ' Encrypting 64 bytes (4 blocks) using AES-CBC with 192-bit key strHexKey = "56e47a38c5598974bc46903dba29034906a9214036b8a15b" strHexIV = "8ce82eefbea0da3c44699ed7db51b7d9" sPlain = "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf" _ & "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" _ & "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf" _ & "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf" sCipher = "738237036dfdde9dda3374fa182600c5" _ & "38d9187a0299725d0a7fdbe844d77578" _ & "1539e401b5597cbbfa836efd22d998d2" _ & "1605d8df340622417b911467b5e51a12" _ strInput = sPlain ' Set strOutput to be same length as strInput strOutput = String(Len(strInput), " ") Debug.Print "KY=", strHexKey Debug.Print "IV=", strHexIV Debug.Print "PT=", strInput ' Encrypt in one-off process nRet = AES192_HexMode(strOutput, strInput, strHexKey, ENCRYPT, "CBC", strHexIV) Debug.Print "CT=", strOutput, nRet Debug.Print "OK=", sCipher Debug.Assert (strOutput = sCipher) ' Decrypt to check strInput = strOutput nRet = AES192_HexMode(strOutput, strInput, strHexKey, DECRYPT, "CBC", strHexIV) Debug.Print "P'=", strOutput, nRet Debug.Print "OK=", sPlain Debug.Assert (strOutput = sPlain)
Output
Testing AES192_HexMode ... KY= 56e47a38c5598974bc46903dba29034906a9214036b8a15b IV= 8ce82eefbea0da3c44699ed7db51b7d9 PT= a0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf CT= 738237036DFDDE9DDA3374FA182600C538D9187A0299725D0A7FDBE844D775781539E401B5597CBBFA836EFD22D998D21605D8DF340622417B911467B5E51A12 0 OK= 738237036dfdde9dda3374fa182600c538d9187a0299725d0a7fdbe844d775781539e401b5597cbbfa836efd22d998d21605d8df340622417b911467b5e51a12 P'= A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF 0 OK= a0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf
VB.NET
Console.WriteLine("Testing AES192_HexMode ...") ''Dim nRet As Integer Dim strOutput As String Dim strInput As String Dim strHexKey As String Dim sPlain As String Dim sCipher As String Dim strHexIV As String ' Encrypting 64 bytes (4 blocks) using AES-CBC with 192-bit key strHexKey = "56e47a38c5598974bc46903dba29034906a9214036b8a15b" strHexIV = "8ce82eefbea0da3c44699ed7db51b7d9" sPlain = "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf" _ & "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" _ & "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf" _ & "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf" sCipher = "738237036dfdde9dda3374fa182600c5" _ & "38d9187a0299725d0a7fdbe844d77578" _ & "1539e401b5597cbbfa836efd22d998d2" _ & "1605d8df340622417b911467b5e51a12" strInput = sPlain ' Set strOutput to be same length as strInput ''strOutput = String(Len(strInput), " ") Console.WriteLine("KY=" & " " & strHexKey) Console.WriteLine("IV=" & " " & strHexIV) Console.WriteLine("PT=" & " " & strInput) ' Encrypt in one-off process strOutput = Aes192.Encrypt(strInput, strHexKey, Mode.CBC, strHexIV) Console.WriteLine("CT=" & " " & strOutput) Console.WriteLine("OK=" & " " & sCipher) Debug.Assert(strOutput.ToLower = sCipher.ToLower) ' Decrypt to check strInput = strOutput strOutput = Aes192.Decrypt(strInput, strHexKey, Mode.CBC, strHexIV) Console.WriteLine("P'=" & " " & strOutput) Console.WriteLine("OK=" & " " & sPlain) Debug.Assert(strOutput.ToLower = sPlain.ToLower)
[Contents]