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