Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) Standard preamble: ========================================================================
NAMEImage::ExifTool::AES - AES encryption with cipher-block chaining
use Image::ExifTool::AES qw(Crypt); $err = Crypt(\$plaintext, $key, 1); # encryption $err = Crypt(\$ciphertext, $key); # decryption
DESCRIPTIONThis module contains an implementation of the
EXPORTSExports nothing by default, but ``Crypt'' may be exported.
0) Scalar reference for data to encrypt/decrypt.
1) Encryption key string (must have length 16, 24 or 32).
2) [optional] Encrypt flag (false to decrypt).
3) [optional] Flag to avoid removing padding after decrypting, or to avoid adding 16 bytes of padding before encrypting when data length is already a multiple of 16 bytes.
- On success, the return value is undefined and the data is encrypted or decrypted as specified. Otherwise returns an error string and the data is left in an indeterminate state.
The length of the encryption key dictates the AESmode, with lengths of 16, 24 and 32 bytes resulting inAES-128, AES-192andAES-256.
When encrypting, the input data may be any length and will be padded to an even 16-byte block size using the specified padding technique. If the encrypt flag has length 16, it is used as the initialization vector for the cipher-block chaining, otherwise a randomIVis generated. Upon successful return the data will be encrypted, with the first 16 bytes of the data being theCBC IV.
When decrypting, the input data begins with the 16-byteCBCinitialization vector.
BUGSThis code is blindingly slow. But in truth, slowing down processing is the main purpose of encryption, so this really can't be considered a bug.
AUTHORCopyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.