diff options
author | Nick Mathewson <nickm@torproject.org> | 2012-03-14 16:53:39 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2012-03-14 16:53:39 -0400 |
commit | 092b9aca8cb8a63022d47afc38b385957f1a59fb (patch) | |
tree | 91fca9ab6a4ab29522032f7c5e1b8ce200a6676c /src/common | |
parent | a6a905cc11da1f13db08e43b17fb32ed5295a23e (diff) | |
download | tor-092b9aca8cb8a63022d47afc38b385957f1a59fb.tar tor-092b9aca8cb8a63022d47afc38b385957f1a59fb.tar.gz |
Have get_mozilla_ciphers take sourcedirs as arguments
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/get_mozilla_ciphers.py | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/src/common/get_mozilla_ciphers.py b/src/common/get_mozilla_ciphers.py index 378ce01e8..9b8af2e0a 100644 --- a/src/common/get_mozilla_ciphers.py +++ b/src/common/get_mozilla_ciphers.py @@ -5,13 +5,30 @@ # This script parses Firefox and OpenSSL sources, and uses this information # to generate a ciphers.inc file. +# +# It takes two arguments: the location of a firefox source directory, and the +# location of an openssl source directory. +import os import re +import sys + +if len(sys.argv) != 3: + print >>sys.stderr, "Syntax: get_mozilla_ciphers.py <firefox-source-dir> <openssl-source-dir>" + sys.exit(1) + +ff_root = sys.argv[1] +ossl_root = sys.argv[2] + +def ff(s): + return os.path.join(ff_root, s) +def ossl(s): + return os.path.join(ossl_root, s) ##### # Read the cpp file to understand what Ciphers map to what name : # Make "ciphers" a map from name used in the javascript to a cipher macro name -fileA = open('security/manager/ssl/src/nsNSSComponent.cpp','r') +fileA = open(ff('security/manager/ssl/src/nsNSSComponent.cpp'),'r') # The input format is a file containing exactly one section of the form: # static CipherPref CipherPrefs[] = { @@ -49,7 +66,7 @@ for line in cipherLines: # Build a map enabled_ciphers from javascript name to "true" or "false", # and an (unordered!) list of the macro names for those ciphers that are # enabled. -fileB = open('netwerk/base/public/security-prefs.js', 'r') +fileB = open(ff('netwerk/base/public/security-prefs.js'), 'r') enabled_ciphers = {} for line in fileB: @@ -66,15 +83,18 @@ for k, v in enabled_ciphers.items(): if v == "true": used_ciphers.append(ciphers[k]) -oSSLinclude = ('/usr/include/openssl/ssl3.h', '/usr/include/openssl/ssl.h', - '/usr/include/openssl/ssl2.h', '/usr/include/openssl/ssl23.h', - '/usr/include/openssl/tls1.h') +#oSSLinclude = ('/usr/include/openssl/ssl3.h', '/usr/include/openssl/ssl.h', +# '/usr/include/openssl/ssl2.h', '/usr/include/openssl/ssl23.h', +# '/usr/include/openssl/tls1.h') +oSSLinclude = ('ssl/ssl3.h', 'ssl/ssl.h', + 'ssl/ssl2.h', 'ssl/ssl23.h', + 'ssl/tls1.h') ##### # This reads the hex code for the ciphers that are used by firefox. # sslProtoD is set to a map from macro name to macro value in sslproto.h; # cipher_codes is set to an (unordered!) list of these hex values. -sslProto = open('security/nss/lib/ssl/sslproto.h', 'r') +sslProto = open(ff('security/nss/lib/ssl/sslproto.h'), 'r') sslProtoD = {} for line in sslProto: @@ -93,7 +113,7 @@ for x in used_ciphers: # macro names for those files. cipher_hex = {} for fl in oSSLinclude: - fp = open(fl, 'r') + fp = open(ossl(fl), 'r') for line in fp.readlines(): m = re.match('#define\s+(\S+)\s+(\S+)', line) if m: |