summaryrefslogtreecommitdiffstats
path: root/onlineupdate/source/update/updater/gen_cert_header.py
blob: a75af1e295fb8503c1b777dd5cd0fcb8eebe1c34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env python

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 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:
        print('ERROR: usage: gen_cert_header.py array_name update_config_file')
        sys.exit(1);
    config = ConfigParser()
    config.read(sys.argv[2])
    sys.exit(create_header(sys.argv[1], config.get('Updater', 'certificate-der')))