Boot: Add Python2.7 support for post build steps

These minor changes make Python 3 and Python 2.7 verions supported by
the post build scripts, even integrating them as modules.

Change-Id: I0d7a6d95764db082bbec02b0af01da4cf03fd98d
Signed-off-by: Gabor Kertesz <gabor.kertesz@arm.com>
diff --git a/bl2/ext/mcuboot/scripts/assemble.py b/bl2/ext/mcuboot/scripts/assemble.py
index b8b60eb..9c48092 100644
--- a/bl2/ext/mcuboot/scripts/assemble.py
+++ b/bl2/ext/mcuboot/scripts/assemble.py
@@ -67,6 +67,7 @@
 
     def add_image(self, source, partition):
         with open(self.output, 'ab') as ofd:
+            ofd.seek(0, os.SEEK_END)
             pos = ofd.tell()
             if pos > self.offsets[partition]:
                 raise Exception("Partitions not in order, unsupported")
diff --git a/bl2/ext/mcuboot/scripts/imgtool.py b/bl2/ext/mcuboot/scripts/imgtool.py
index 4b62d3b..80009c8 100644
--- a/bl2/ext/mcuboot/scripts/imgtool.py
+++ b/bl2/ext/mcuboot/scripts/imgtool.py
@@ -15,12 +15,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+from __future__ import print_function
 import os
 import re
 import argparse
-from imgtool import keys
-from imgtool import image
-from imgtool import version
+from imgtool_lib import keys
+from imgtool_lib import image
+from imgtool_lib import version
 import sys
 
 def find_load_address(args):
diff --git a/bl2/ext/mcuboot/scripts/imgtool/__init__.py b/bl2/ext/mcuboot/scripts/imgtool_lib/__init__.py
similarity index 100%
rename from bl2/ext/mcuboot/scripts/imgtool/__init__.py
rename to bl2/ext/mcuboot/scripts/imgtool_lib/__init__.py
diff --git a/bl2/ext/mcuboot/scripts/imgtool/image.py b/bl2/ext/mcuboot/scripts/imgtool_lib/image.py
similarity index 97%
rename from bl2/ext/mcuboot/scripts/imgtool/image.py
rename to bl2/ext/mcuboot/scripts/imgtool_lib/image.py
index b3915e0..67425d4 100644
--- a/bl2/ext/mcuboot/scripts/imgtool/image.py
+++ b/bl2/ext/mcuboot/scripts/imgtool_lib/image.py
@@ -43,7 +43,7 @@
     for write_size in [1, 2, 4, 8]
 }
 
-boot_magic = bytes([
+boot_magic = bytearray([
     0x77, 0xc2, 0x95, 0xf3,
     0x60, 0xd2, 0xef, 0x7f,
     0x35, 0x52, 0x50, 0x0f,
@@ -100,7 +100,7 @@
         # If there is a header requested, make sure that the image
         # starts with all zeros.
         if self.header_size > 0:
-            if any(v != 0 for v in self.payload[0:self.header_size]):
+            if any(v != 0 and v != b'\000' for v in self.payload[0:self.header_size]):
                 raise Exception("Padding requested, but image does not start with zeros")
 
     def sign(self, key, ramLoadAddress):
diff --git a/bl2/ext/mcuboot/scripts/imgtool/keys.py b/bl2/ext/mcuboot/scripts/imgtool_lib/keys.py
similarity index 97%
rename from bl2/ext/mcuboot/scripts/imgtool/keys.py
rename to bl2/ext/mcuboot/scripts/imgtool_lib/keys.py
index 9728cd0..fda3ed6 100644
--- a/bl2/ext/mcuboot/scripts/imgtool/keys.py
+++ b/bl2/ext/mcuboot/scripts/imgtool_lib/keys.py
@@ -1,5 +1,5 @@
 # Copyright 2017 Linaro Limited
-# Copyright (c) 2017, Arm Limited.
+# Copyright (c) 2017-2018, Arm Limited.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 Cryptographic key management for imgtool.
 """
 
+from __future__ import print_function
 from Crypto.Hash import SHA256
 from Crypto.PublicKey import RSA
 from Crypto.Signature import PKCS1_v1_5, PKCS1_PSS
diff --git a/bl2/ext/mcuboot/scripts/imgtool/version.py b/bl2/ext/mcuboot/scripts/imgtool_lib/version.py
similarity index 100%
rename from bl2/ext/mcuboot/scripts/imgtool/version.py
rename to bl2/ext/mcuboot/scripts/imgtool_lib/version.py