Version V1.4 original
=====================

"uTaskerConvert -v" to get the version number.

This utility is used mainly to convert a binary input file, linked to an address suitable for operation with the
uTasker boot loader, to an uploadable file which is recognised by the BM-boot loader.

Use 1: "uTaskerConvert file1.bin file2.bin -0x22ba -b267a8200926"

File1 is converted to file2 by adding a header containing details of its length and CRC16 check sum. The magic number 0x22ba is
used to identify the project that the code is related to (it can be any 16 bit hex value). The key -b267a8200926 is used as an
encryption key to ensure that only code converted using the project key (this can be up to 100 hex bytes long) is recognised as
valid code by the boot loader

Use 2: "uTaskerConvert file1.bin file2.bin -0x22ba -b267a8200926 -ab627735ad192b3561524512 -17cc  f109"

ab627735ad192b3561524512 is an encryption key which is used to transform the data content. It must have a length dividable by 4) 
and its length determines the strength of the coding.
17cc is used to prime a pseudo-random number generator used during the process (should not be zero) which must also match.
F109 is a shift value in the code which makes it much more difficult to break using brute-force techniques. Without this shift
it would be much easier to match known code patterns at the start of the file. Since the start code can be anywhere in the data
this avoids this possible weakness.

For full details about the use see http://www.uTasker.com/docs/uTasker/uTaskerBoot_003.PDF



Version V1.5 4-12-2010
=======================

Allows use with no key specified.



Version V1.6 14-05-2011
=======================

Added capability to convert Motorola binary to raw binary output. This is useful for CodeWarrior binary output
which can otherwise not be used directly as a code image - after the conversion the content is in raw binary format
and so suitable for general binary program use.

Use "uTaskerConvert uTasker_BM.bin raw.bin -b"

Version V1.7 01-10-2013
=======================
Version 1.7 increase the maximum target size from 512k to 1M


Version V1.8 24-04-2014
========================
Version 1.8 increase the maximum target size from 1M to 2M


Version V1.9 09-06-2014
========================
Version 1.9 allow encryption offset values larger than the file length

Version V1.10 02-10-2015
========================
Version 1.10 protect against motorola to raw binary conversion when (invalid) 0xffffffff length block is found

Version V1.11 06-11-2018
========================
Version V1.11 adds AES256-CBC encryption:

Usage 1: uTaskerConvert.exe uTaskerV1.4_BM.bin aes256_coded.bin $"aes256 secret key" $"initial vector"
$"aes256 secret key" is a AES256 encryption key string that can be up to 32 characters long
If shorter than 32 bytes it is extended to 32 bytes in length by adding 'X' characters.
$"initial vector" is the AES256' initial vector value, which is up to 16 characters long (padded with 'x's when shorter).
This string is optional and when not present a reset (all 0) initial vector is used.

Usage 2: uTaskerConvert.exe uTaskerV1.4_BM.bin aes256_coded.bin +"8d5E5f42ffs4a9000135f2" +"001122f354e4b8"
is a hex AES256 encryption key string that can be up to 32 characters long.
If shorter than 32 bytes it is extended to 32 bytes in length by adding 'X' characters.
+"001122f354e4b8" is the AES256' initial vector value, which is up to bytes long (padded with 'X's when shorter).
This string is optional and when not present a reset (all 0) initial vector is used.

The length of the encrypted file is always divisible by 32 and so may be up to 31 bytes longer than the input file.


Version V1.12 18-07-2020
=========================
Version V1.12 adds AES128-CTR encryption option.

Usage 1: uTaskerConvert.exe uTaskerV1.4_BM.bin aes256_coded.bin E=128 $"aes256 secret key" $"initial vector"
Usage 2: uTaskerConvert.exe uTaskerV1.4_BM.bin aes256_coded.bin E=128 +"8d5E5f42ffs4a9000135f2" +"001122f354e4b8"
Note the new E=128 (before the secret key)

The AES256 option can be used as default as in version V1.11 or shown more clearly with 
uTaskerConvert.exe uTaskerV1.4_BM.bin aes256_coded.bin E=256 $"aes256 secret key" $"initial vector"
Note the new E=256 (before the secret key)
The length of the encrypted file is always divisible by 16 and so may be up to 16 bytes longer than the input file.


Version V1.13 27-07-2020
=========================

Modified iv (nonce counter) format of AES128-CTR for i.MX RT on-the-fly compatibility and added BEE mode
Encryption address added as parameter (defaults to 0x60020110 when no parameter passed).
New usage
OTFAD mode (i.MX RT 1011)
Usage 1: uTaskerConvert.exe uTaskerV1.4_BM.bin aes256_coded.bin E=128-60020110 $"aes256 secret key" $"initial vector"
Usage 2: uTaskerConvert.exe uTaskerV1.4_BM.bin aes256_coded.bin E=128-60020110 +"8d5E5f42ffs4a9000135f2" +"001122f354e4b8"

BEE mode (other i.MX RT parts' with Bus Encryption Engine)
Usage 1: uTaskerConvert.exe uTaskerV1.4_BM.bin aes256_coded.bin E=128B-60020110 $"aes256 secret key" $"initial vector"
Usage 2: uTaskerConvert.exe uTaskerV1.4_BM.bin aes256_coded.bin E=128B-60020110 +"8d5E5f42ffs4a9000135f2" +"001122f354e4b8"
(note E=128B rather than E=128)


Version V1.14 05-09-2020
=========================

Option to insert a boot header after the header.
Example:
input.bin output.bin +boot_header.txt -0x2123 -a748b6531124
The content (hex values) in boot_header.txt is inserted between the header and the input.bin content and included in the checksum


Version V1.15 21-10-2021
=========================

Version 1.15 Increased binary size supported from 2MBytes to 8Mbytes



