[tor-commits] [bridgedb/master] Initial commit

isis at torproject.org isis at torproject.org
Sun Jan 12 06:06:30 UTC 2014


commit 38e2382e4f4194050e1909539918f5253e9d7625
Author: Matthew Finkel <Matthew.Finkel at gmail.com>
Date:   Fri Aug 16 02:16:21 2013 +0000

    Initial commit
---
 generatedescriptors.py |   84 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/generatedescriptors.py b/generatedescriptors.py
new file mode 100644
index 0000000..d507401
--- /dev/null
+++ b/generatedescriptors.py
@@ -0,0 +1,84 @@
+#!/usr/sbin/env python -tt
+
+import sys
+import random
+import time
+import ipaddr
+from datetime import datetime
+import binascii
+
+
+def randomIP():
+    return randomIP4()
+
+def randomIP4():
+    return ipaddr.IPAddress(random.getrandbits(32))
+
+def randomPort():
+    return random.randint(1,65535)
+
+def gettimestamp():
+    ts = time.strftime("%Y-%m-%d %H:%M:%S")
+    return "opt published %s\n" % ts
+
+def getHexString(size):
+    s = ""
+    for i in xrange(size):
+        s+= random.choice("ABCDEF0123456789") 
+    return s
+
+
+baseDesc = "router Unnamed %s %s 0 9030\n"\
+"opt fingerprint %s\n"\
+"opt @purpose bridge\n"
+
+baseStatus = "r %s %s %s %s %s %d %d\n"\
+"s Running Stable\n"
+
+baseExtraInfo = "extra-info %s %s\n"\
+"transport %s %s:%d\n"
+
+ei = ""
+df = ""
+sf = ""
+for i in xrange(500):
+    fp = "DEAD BEEF F00F DEAD BEEF F00F " + \
+        getHexString(4) + " " + getHexString(4) + " " + \
+        getHexString(4) + " " + getHexString(4)
+    ID = binascii.a2b_hex(fp.replace(" ", ""))
+
+    sf += "".join(baseStatus % ("namedontmattah", binascii.b2a_base64(ID)[:-2],
+            "randomstring", time.strftime("%Y-%m-%d %H:%M:%S"), randomIP(),
+             randomPort(), randomPort()))
+
+    df += "".join(baseDesc % (randomIP(), randomPort(), fp))
+    df += gettimestamp()
+    df += "router-signature\n"
+
+    if i % 4 == 0:
+        ei += "".join(baseExtraInfo % ("namedontmattah", fp.replace(" ", ""),
+                                       random.choice(["obfs2", "obfs3", "obfs2"]),
+                                       randomIP(), randomPort()))
+
+ei += "router-signature\n"
+
+try:
+    f = open("networkstatus-bridges", 'w')
+    f.write(sf)
+    f.close()
+except:
+    print "Failed to open status file"
+
+try:
+    f = open("bridge-descriptors", 'w')
+    f.write(df)
+    f.close()
+except:
+    print "Failed to open df file"
+
+try:
+    f = open("extra-infos", 'w')
+    f.write(ei)
+    f.close()
+except:
+    print "Failed to open ei file"





More information about the tor-commits mailing list