[tor-commits] [tor/master] Have get_mozilla_ciphers take sourcedirs as arguments

nickm at torproject.org nickm at torproject.org
Wed Jun 13 16:11:17 UTC 2012


commit 092b9aca8cb8a63022d47afc38b385957f1a59fb
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Mar 14 16:53:39 2012 -0400

    Have get_mozilla_ciphers take sourcedirs as arguments
---
 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 378ce01..9b8af2e 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:





More information about the tor-commits mailing list