Result = AESDecoder(*Input, InputOffset, *Output, OutputOffset, Size, *Key, Bits, *InitializationVector [, Mode])
Decodes the specified input buffer using the AES algorithm into the output buffer.


*Input The input buffer. It has to be allocated with AllocateMemory().
InputOffset The offset (in bytes) in the input buffer.
*Output The output buffer. It has to be allocated with AllocateMemory() and be different than the input buffer.
OutputOffset The offset (in bytes) in the output buffer.
Size The amount of bytes to decode. It has to be at least 16 bytes. To decode something smaller, padding has to be added before the encoding.
*Key A buffer containing the key for decoding. Its size depends of the 'Bits' parameter: 16 bytes for 128-bit encryption, 24 bytes for 192 bit and 32 bytes for 256-bit.
Bits The size of the key used by the ciphering. Valid values are 128, 192 and 256.
*InitializationVector The InitializationVector is a random data block, used to initialize the ciphering to avoid breach in decoding (only needed when using the #PB_Cipher_CBC mode). Its size is always 16 bytes long. The contents of this data block must match the one which was used when encoding the data.
Mode (optional) This can be one of the following value:
  #PB_Cipher_CBC: Default mode of encoding (Cipher Block Chaining). Needs an '*InitializationVector'.
                  Recommended as more secure than ECB mode.
  #PB_Cipher_ECB: Alternative mode (Electronic CodeBook). It doesn't uses random value nor chaining 
                  (each block is ciphered independently) making it very weak compared to CBC, and shouldn't be used for
                  serious ciphering.

Return value

Returns nonzero if the decoding was successful, zero otherwise.


For more information about AES and source examples, see AESEncoder().

See Also

AESEncoder(), StartAESCipher()

Supported OS


Cipher Index - AESEncoder() ->