-
Notifications
You must be signed in to change notification settings - Fork 40
/
sign.py
66 lines (50 loc) · 1.42 KB
/
sign.py
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import os
import argparse
import subprocess
#
#
#
class signer:
def __init__(self):
self.signtool = "c:/program files (x86)/windows kits/10/bin/10.0.19041.0/x64/signtool.exe"
def sign(self, file):
if not os.path.isfile(file):
raise Exception("file " + file + " does not exist!")
cmd = " ".join(
[
self.signtool,
"sign",
"/debug",
"/a",
"/tr",
"http://rfc3161timestamp.globalsign.com/advanced",
"/td",
"SHA256",
"\"" + os.path.abspath(file) + "\""
]
)
if 0 != subprocess.call(cmd) :
raise Exception("can not sign file " + cmd)
def verify(self, file):
if not os.path.isfile(file):
raise Exception("file " + file + " does not exist!")
cmd = " ".join(
[
self.signtool,
"verify",
"/debug",
"/v",
"/pa",
"\"" + os.path.abspath(file) + "\""
]
)
if 0 != subprocess.call(cmd) :
raise Exception("can not verify file " + cmd)
def main():
path = "m:\\squid-windows\\bin\\x64\\Debug\\squid.msi"
signer().sign(path)
signer().verify(path)
#
#
#
main()