mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-26 02:02:33 +00:00
fa71c479fc
THA was removed in Bug 1196988. After Bug 1235869 and Bug 1238079, Firefox Marketplace apps are at most supported by B2G, and B2G only code doesn't need to be in m-c anymore. MozReview-Commit-ID: DAx5lRdYQo0 --HG-- extra : rebase_source : e7fc32195def3acda2d53a6e3cb969f1e8a9a9a1
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
import binascii
|
|
|
|
def _file_byte_generator(filename):
|
|
with open(filename, "rb") as f:
|
|
contents = f.read()
|
|
|
|
# Treat empty files the same as a file containing a lone 0;
|
|
# a single-element array will fail cert verifcation just as an
|
|
# empty array would.
|
|
if not contents:
|
|
return ['\0']
|
|
|
|
return contents
|
|
|
|
def _create_header(array_name, cert_bytes):
|
|
hexified = ["0x" + binascii.hexlify(byte) for byte in cert_bytes]
|
|
substs = { 'array_name': array_name, 'bytes': ', '.join(hexified) }
|
|
return "const uint8_t %(array_name)s[] = {\n%(bytes)s\n};\n" % substs
|
|
|
|
# Create functions named the same as the data arrays that we're going to
|
|
# write to the headers, so we don't have to duplicate the names like so:
|
|
#
|
|
# def arrayName(header, cert_filename):
|
|
# header.write(_create_header("arrayName", cert_filename))
|
|
array_names = [
|
|
'xpcshellRoot',
|
|
'addonsPublicRoot',
|
|
'addonsStageRoot',
|
|
'privilegedPackageRoot',
|
|
]
|
|
|
|
for n in array_names:
|
|
# Make sure the lambda captures the right string.
|
|
globals()[n] = lambda header, cert_filename, name=n: header.write(_create_header(name, _file_byte_generator(cert_filename)))
|