summaryrefslogtreecommitdiffstats
path: root/onlineupdate/source/update/updater/gen_cert_header.py
diff options
context:
space:
mode:
Diffstat (limited to 'onlineupdate/source/update/updater/gen_cert_header.py')
-rwxr-xr-xonlineupdate/source/update/updater/gen_cert_header.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/onlineupdate/source/update/updater/gen_cert_header.py b/onlineupdate/source/update/updater/gen_cert_header.py
new file mode 100755
index 000000000..3f3798cfb
--- /dev/null
+++ b/onlineupdate/source/update/updater/gen_cert_header.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+import os
+import sys
+import binascii
+
+try:
+ from configparser import ConfigParser
+except ImportError:
+ from ConfigParser import SafeConfigParser as ConfigParser
+
+def file_byte_generator(filename):
+ with open(filename, "rb") as f:
+ block = f.read()
+ return block
+
+def eprint(*args, **kwargs):
+ print(*args, file=sys.stderr, **kwargs)
+
+def create_header(array_name, in_filename):
+ if sys.version_info >= (3,0):
+ hexified = ["0x" + binascii.hexlify(bytes([inp])).decode('ascii') for inp in file_byte_generator(in_filename)]
+ else:
+ hexified = ["0x" + binascii.hexlify(inp).decode('ascii') for inp in file_byte_generator(in_filename)]
+ print("const uint8_t " + array_name + "[] = {")
+ print(", ".join(hexified))
+ print("};")
+ return 0
+
+if __name__ == '__main__':
+ if len(sys.argv) < 3:
+ eprint('ERROR: usage: gen_cert_header.py array_name update_config_file')
+ sys.exit(1)
+
+ if not os.path.exists(sys.argv[2]):
+ eprint('The config file %s does not exist'%(sys.argv[2]))
+ sys.exit(1)
+
+ config = ConfigParser()
+ config.read(sys.argv[2])
+ sys.exit(create_header(sys.argv[1], config.get('Updater', 'certificate-der')))