import os import sys import subprocess from optloader import load_options # Command set to create and sign with a test software certificate created from a test CA # "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\makecert.exe" -r -pe -n "CN=Rackspace Test CA" -a sha256 -cy authority -sky signature -sv testca.pvk testca.cer # "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\makecert.exe" -pe -n "CN=Rackspace Test Software Signing Cert" -a sha256 -cy end -sky signature -ic testca.cer -iv testca.pvk -sv testss.pvk testss.cer # "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\pvk2pfx.exe" -spc testss.cer -pvk testss.pvk -pfx testss.pfx # "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\signtool.exe" sign /d monitoring-agent.exe /v /f testss.pfx Debug/monitoring-agent.exe # # Test CA Cert Import # certutil -user -addstore Root testca.cer options = load_options() build = 'Debug' if options['variables']['virgo_debug'] == 'true' else 'Release' signtool = "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\bin\\signtool.exe" pfx = options['variables']['RACKSPACE_CODESIGNING_KEYFILE'] result = -1 if len(sys.argv) != 2 or not (sys.argv[1] == 'exe' or sys.argv[1] == 'pkg'): print "Usage: win_sign.py [exe, pkg]" sys.exit(result) files_to_sign = [] if sys.argv[1] == 'exe': files_to_sign = [
'exe-sign': exe_sign, 'pkg-sign': pkg_sign, 'test': test_std, 'test_pipe': test_pipe, 'test_file': test_file, } def usage(): print('Usage: build.py [%s]' % ', '.join(commands.keys())) sys.exit(1) if len(sys.argv) != 2: usage() ins = sys.argv[1] if not ins in commands: print('Invalid command: %s' % ins) sys.exit(1) extra_env = extra_env() for key in extra_env.keys(): os.environ[key] = extra_env[key] options = load_options() print('Running %s' % ins) cmd = commands.get(ins) cmd()
def sig_gen(signingkey, filename, sigfilename): options = optloader.load_options('options.gypi') cmd = '%s dgst -sha256 -sign %s %s > %s' % ( options['variables']['OPENSSL'], signingkey, filename, sigfilename) print cmd _call(cmd)
# # Test CA Cert Import # certutil -user -addstore Root testca.cer # # # How to convert a commercially purchased MS Authenticode signing cert to work with this # ## Using a pvk (private key) conversion tool from: http://wiki.cacert.org/Authenticode # pvk -in maas-code-sign.key.txt -topvk -nocrypt -out userkey.pvk ## Convert the certificate files to PKCS#7 # openssl crl2pkcs7 -certfile maas-code-sign.cert.txt -nocrl -outform PEM -out usercrt.p7b ## Create the .pfx like above # "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\pvk2pfx.exe" -spc usercrt.p7b -pvk userkey.pvk -pfx userkey.pfx options = load_options("options.gypi") build = 'Debug' if options['variables']['virgo_debug'] == 'true' else 'Release' signtool = "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\bin\\signtool.exe" pfx = options['variables']['RACKSPACE_CODESIGNING_KEYFILE'] result = -1 if len(sys.argv) != 2 or not (sys.argv[1] == 'exe' or sys.argv[1] == 'pkg'): print "Usage: win_sign.py [exe, pkg]" sys.exit(result) files_to_sign = [] if sys.argv[1] == 'exe': files_to_sign = [
import sys import os import optloader AGENT = None LUVIT = None BUNDLE_NAME = None BUNDLE_DIR = None def _abs_path(*args): return os.path.abspath(os.path.join(*args)) _options = optloader.load_options('platform.gypi') ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) BUNDLE_DIR = _abs_path(ROOT, _options['variables']['BUNDLE_DIR']) BUNDLE_NAME = _options['variables']['BUNDLE_NAME'] if sys.platform == "win32": BUILDTYPE = 'Debug' if _options['variables']['virgo_debug'] == 'true' else 'Release' BUILD_DIR = _abs_path(ROOT, BUILDTYPE) LUVIT = _abs_path(BUILD_DIR, 'luvit.exe') AGENT = _abs_path(BUILD_DIR, 'virgo.exe') else: BUILDTYPE = os.environ.get('BUILDTYPE', 'Debug') BUILD_DIR = _abs_path(ROOT, 'out', BUILDTYPE) LUVIT = _abs_path(BUILD_DIR, 'luvit') AGENT = _abs_path(BUILD_DIR, 'virgo')
import sys import os import optloader AGENT = None LUVIT = None BUNDLE_DIR = None def _abs_path(*args): return os.path.abspath(os.path.join(*args)) _options = optloader.load_options('platform.gypi')['variables'] ROOT = _options['BUNDLE_DIR'] # os.path.dirname(os.path.dirname(os.path.abspath(__file__))) BUNDLE_DIR = _abs_path(ROOT, _options['BUNDLE_DIR']) BUNDLE_NAME = _options['BUNDLE_NAME'] if sys.platform == "win32": _base_options = optloader.load_options('options.gypi')['variables'] if _base_options['virgo_debug'] == 'true': BUILDTYPE = 'Debug' else: BUILDTYPE = 'Release' BUILD_DIR = _abs_path(ROOT, 'base', BUILDTYPE) LUVIT = _abs_path(BUILD_DIR, 'luvit.exe') AGENT = _abs_path(BUILD_DIR, 'virgo.exe') else:
import sys import os import optloader AGENT = None LUVIT = None BUNDLE_NAME = None BUNDLE_DIR = None def _abs_path(*args): return os.path.abspath(os.path.join(*args)) _options = optloader.load_options('platform.gypi') ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) BUNDLE_DIR = _abs_path(ROOT, _options['variables']['BUNDLE_DIR']) BUNDLE_NAME = _options['variables']['BUNDLE_NAME'] if sys.platform == "win32": BUILDTYPE = 'Debug' if _options['variables'][ 'virgo_debug'] == 'true' else 'Release' BUILD_DIR = _abs_path(ROOT, BUILDTYPE) LUVIT = _abs_path(BUILD_DIR, 'luvit.exe') AGENT = _abs_path(BUILD_DIR, 'virgo.exe') else: BUILDTYPE = os.environ.get('BUILDTYPE', 'Debug') BUILD_DIR = _abs_path(ROOT, 'out', BUILDTYPE)
import sys import os import optloader AGENT = None LUVIT = None BUNDLE_DIR = None def _abs_path(*args): return os.path.abspath(os.path.join(*args)) _options = optloader.load_options('platform.gypi')['variables'] ROOT = _options[ 'BUNDLE_DIR'] # os.path.dirname(os.path.dirname(os.path.abspath(__file__))) BUNDLE_DIR = _abs_path(ROOT, _options['BUNDLE_DIR']) BUNDLE_NAME = _options['BUNDLE_NAME'] if sys.platform == "win32": _base_options = optloader.load_options('options.gypi')['variables'] if _base_options['virgo_debug'] == 'true': BUILDTYPE = 'Debug' else: BUILDTYPE = 'Release' BUILD_DIR = _abs_path(ROOT, 'base', BUILDTYPE) LUVIT = _abs_path(BUILD_DIR, 'luvit.exe')