Merge pull request #60 from d3zd3z/pr/py-header

Make header padding optional
diff --git a/scripts/imgtool.py b/scripts/imgtool.py
index 70fdc97..6bc3cd0 100755
--- a/scripts/imgtool.py
+++ b/scripts/imgtool.py
@@ -36,7 +36,7 @@
             header_size=args.header_size,
             included_header=args.included_header,
             pad=args.pad)
-    key = keys.load(args.key)
+    key = keys.load(args.key) if args.key else None
     img.sign(key)
 
     if args.pad:
@@ -76,7 +76,7 @@
     getpub.add_argument('-k', '--key', metavar='filename', required=True)
 
     sign = subs.add_parser('sign', help='Sign an image with a private key')
-    sign.add_argument('-k', '--key', metavar='filename', required=True)
+    sign.add_argument('-k', '--key', metavar='filename')
     sign.add_argument("--align", type=alignment_value, required=True)
     sign.add_argument("-v", "--version", type=version.decode_version, required=True)
     sign.add_argument("-H", "--header-size", type=intparse, required=True)
diff --git a/scripts/imgtool/image.py b/scripts/imgtool/image.py
index b6a572d..49b8249 100644
--- a/scripts/imgtool/image.py
+++ b/scripts/imgtool/image.py
@@ -106,8 +106,9 @@
 
         tlv.add('SHA256', digest)
 
-        sig = key.sign(self.payload)
-        tlv.add(key.sig_tlv(), sig)
+        if key is not None:
+            sig = key.sign(self.payload)
+            tlv.add(key.sig_tlv(), sig)
 
         self.payload += tlv.get()
 
@@ -117,9 +118,11 @@
         The key is needed to know the type of signature, and
         approximate the size of the signature."""
 
-        flags = IMAGE_F[key.sig_type()]
+        flags = 0
         tlvsz = 0
-        tlvsz += TLV_HEADER_SIZE + key.sig_len()
+        if key is not None:
+            flags |= IMAGE_F[key.sig_type()]
+            tlvsz += TLV_HEADER_SIZE + key.sig_len()
 
         flags |= IMAGE_F['SHA256']
         tlvsz += 4 + hashlib.sha256().digest_size