2016-11-30 10:57:03 +01:00
|
|
|
#!/usr/bin/env python2
|
2016-11-23 06:35:12 +01:00
|
|
|
|
|
|
|
import sys, os, os.path
|
|
|
|
import pywii
|
|
|
|
|
|
|
|
pywii.loadkeys_dpki()
|
|
|
|
|
|
|
|
args = sys.argv[1:]
|
|
|
|
mode = args.pop(0)
|
|
|
|
infile = args.pop(0)
|
|
|
|
outfile = args.pop(0)
|
|
|
|
certfile = args.pop(0)
|
|
|
|
issuer = args.pop(0)
|
|
|
|
|
|
|
|
if sys.argv[1] == "-cetk":
|
|
|
|
signed = pywii.WiiTik(open(infile, "rb").read())
|
|
|
|
elif sys.argv[1] == "-tmd":
|
|
|
|
signed = pywii.WiiTmd(open(infile, "rb").read())
|
|
|
|
else:
|
|
|
|
print "EYOUFAILIT"
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
certs, certlist = pywii.parse_certs(open(certfile).read())
|
|
|
|
|
|
|
|
signed.update_issuer(issuer)
|
|
|
|
|
|
|
|
if not signed.sign(certs):
|
|
|
|
print "dpki signing failed"
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
open(outfile, "wb").write(signed.data)
|
|
|
|
|
|
|
|
print "successfully signed %s" % outfile
|
|
|
|
sys.exit(0)
|
|
|
|
|