AES192decrypt and AES192encrypt (String functions)

From m204wiki
Jump to navigation Jump to search

AES192 encryption or decryption (String class)

[Introduced in Model 204 7.6]

AES192decrypt and AES192encrypt are synonyms for the String class function that applies the AES (Advanced Encryption Standard) using a 192-bit symmetric key to decrypt or encrypt each 128-bit block of input text. For more details about how the algorithm works, see Advanced Encryption Standard.

The length of the returned string is the same as that of the object string.

AES is a two-way cipher, so encrypting a string with a key and then decrypting the result of that encryption with the same key produces the original string. That is, the following assertion should always hold:

assert %string:aes192encrypt(%key):aes192decrypt(%key) eq %string

You can use AES192decrypt to "document" that you are decrypting, and use AES192encrypt to "document" that you are encrypting. You can use AES192decrypt and AES192encrypt interchangeably on the rest of this page.


%outString = string:AES192decrypt( key) Throws UnsupportedCrypto, InvalidCryptoKey, InvalidCryptoData

%outString = string:AES192encrypt( key) Throws UnsupportedCrypto, InvalidCryptoKey, InvalidCryptoData

Syntax terms

%outString A string variable to receive the encrypted or decrypted method object string. Its length is the same as string.
string The string to which the method is applied. string must be a multiple of sixteen bytes in length; its maximum is 32768 bytes. It may be null.
key A 24-byte (only) string variable whose value is used to encrypt or decrypt the method object, string.

Usage notes

  • You are not prevented from creating confusion by encrypting with AES192decrypt and decrypting with AES192encrypt.
  • The AES192decrypt and AES192encrypt functions are available as of Model 204 7.6.


In the following example, the output string from the AES192encrypt method is converted to hex using the StringToHex function to reveal its non-displayable characters, then decrypted to return the original input string:

b %ls is longstring %string is longstring %key is string len 24 %string = 'onetwothreefour0onetwothreefour0' %key = '123456781616161624242424' %ls = %string:aes192encrypt(%key) printText {~} is {%ls:stringTohex} printText {~} is: {%ls:aes192decrypt(%key)} end

The result is:

%ls:stringTohex is: 27441031038470A77F92E78E1329166427441031038470A77F92E78E13291664 %ls:aes192decrypt(%key) is: onetwothreefour0onetwothreefour0

See also