]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Have get_mozilla_ciphers take sourcedirs as arguments
authorNick Mathewson <nickm@torproject.org>
Wed, 14 Mar 2012 20:53:39 +0000 (16:53 -0400)
committerNick Mathewson <nickm@torproject.org>
Wed, 14 Mar 2012 20:53:39 +0000 (16:53 -0400)
src/common/get_mozilla_ciphers.py

index 378ce01e83fc2cbc39de87645a4c11a3cef2306b..9b8af2e0adbd1df4690e55575cd8a80f93c566ba 100644 (file)
@@ -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: