aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <cbaines8@gmail.com>2013-11-29 21:56:54 +0000
committerChristopher Baines <cbaines8@gmail.com>2013-11-29 21:56:54 +0000
commit1a229ce58496deb5336943bd53919b6b66bcbed2 (patch)
treeef9f496839d719cb60706838d31c9a96ff5472fd
parentfad78679d34e4f345b13942e9bbdc0ddbbb52e13 (diff)
downloadchutney-1a229ce58496deb5336943bd53919b6b66bcbed2.tar
chutney-1a229ce58496deb5336943bd53919b6b66bcbed2.tar.gz
Add some things
-rw-r--r--hs/hostname1
-rw-r--r--hs/private_key15
-rw-r--r--lib/chutney/TorNet.py20
-rw-r--r--networks/hidden-service10
-rwxr-xr-xrun-hs-test.sh8
-rw-r--r--torrc_templates/common.i1
-rw-r--r--torrc_templates/hidden-service.tmpl11
-rw-r--r--torrc_templates/intro.tmpl11
8 files changed, 77 insertions, 0 deletions
diff --git a/hs/hostname b/hs/hostname
new file mode 100644
index 0000000..3ba79c4
--- /dev/null
+++ b/hs/hostname
@@ -0,0 +1 @@
+2oiifbe3wne4iaqb.onion
diff --git a/hs/private_key b/hs/private_key
new file mode 100644
index 0000000..0e325a0
--- /dev/null
+++ b/hs/private_key
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXwIBAAKBgQDXj0sbFu1da6gnrwGmFPAe50Rk46Z+Z6M5sMVpgeiLHh1SQWRN
+LiCyIkwe07j7FaSJgWjXcGs3tcma4OO+MxUZ9nKXeRXI43iPy4HHCcHG69FCKqtd
+2BDm9JjHKJSbBq6CfumgZH4NHpKOqX00ktgLoczk89BHqPXtuKJVlWFShQIDAQAB
+AoGBAM/sIQcFS3oUMQPuNAnuIlu8ueUTDXLaJsCr+Q+3RgaCysef2c70kocgvAn0
+MXbHvokAMY+1mUYIbGmfSS4aedtmUS/KuLX8eUFbg0ft3dyg8Nua0+rUbAvzWA3A
+PXUkqcZDGTlbCbqPQiUknO3r0LMn4raxyNadERkcLktuQQdhAkEA+FpvC6+wEK7b
++lHWZp9hc0Xc0QdB3SPue3AqkpaQzJ42F7QpjPsFD4FM3JFiso27bj+OB+MWYlUk
+y/RTrtIZeQJBAN4yYAN1FgMdntIOLAqRYCiT5eNU8pyFLQ6CsTKSclwNinofdeSm
+DPWBz940ctLCAF8zMxie39Al4nwkSaqrym0CQQDco/tj9oIFUFQ+39YK9i4tqzOy
+wS/St8l4AP7RnNKn9yc3h+giSCEG1WjjzIZS+3g5Sl10xFtuoRY/3KE7/4yBAkEA
+2S6v/nEhlOYM6RCFJ8c1EDSPzYaopSjfA4HnJaFTOnrZ0ciSeW182TOLNIxbd3m8
+11C6LuSLq258VA88GiBUeQJBANBNwuIx1+nF7SAdk0aB6+Tvqw5NKmUqS5fzK7eg
+2asZ1fgdDBYC14zZG0ckaFnR7iD1J5DovsZaHzfLhx3QFw8=
+-----END RSA PRIVATE KEY-----
diff --git a/lib/chutney/TorNet.py b/lib/chutney/TorNet.py
index 57b8632..8e3df89 100644
--- a/lib/chutney/TorNet.py
+++ b/lib/chutney/TorNet.py
@@ -237,6 +237,8 @@ class LocalNodeBuilder(NodeBuilder):
self._genAuthorityKey()
if self._env['relay']:
self._genRouterKey()
+ if self._env['hiddenservice']:
+ self._genHiddenServiceKey()
def config(self, net):
"""Called to configure a node: creates a torrc file for it."""
@@ -303,6 +305,21 @@ class LocalNodeBuilder(NodeBuilder):
assert re.match(r'^[A-F0-9]{40}$', fingerprint)
self._env['fingerprint'] = fingerprint
+ def _genHiddenServiceKey(self):
+ """Generate an identity key for this router, unless we already have,
+ and set up the 'fingerprint' entry in the Environ.
+ """
+ datadir = self._env['dir']
+ cmdline = [
+ "cp", "-r",
+ "/".join(datadir.split("/")[:-3]) + "/hs",
+ datadir + "/hidden_service" ]
+ p = subprocess.Popen(cmdline, stdout=subprocess.PIPE)
+ #stdout, stderr = p.communicate()
+ #print("creating hidden service key")
+ #print(stdout)
+ #print("FInished")
+
def _getAltAuthLines(self, hasbridgeauth):
"""Return a combination of AlternateDirAuthority,
AlternateHSAuthority and AlternateBridgeAuthority lines for
@@ -505,6 +522,9 @@ DEFAULTS = {
'hasbridgeauth' : False,
'relay' : False,
'bridge' : False,
+ 'hiddenservice' : False,
+ 'hiddenserviceport' : 80,
+ 'hiddenservicetarget' : '127.0.0.1',
'connlimit' : 60,
'net_base_dir' : 'net',
'tor' : 'tor',
diff --git a/networks/hidden-service b/networks/hidden-service
new file mode 100644
index 0000000..3f000e1
--- /dev/null
+++ b/networks/hidden-service
@@ -0,0 +1,10 @@
+Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl")
+Relay = Node(tag="r", relay=1, torrc="intro.tmpl")
+Client = Node(tag="c", torrc="client.tmpl")
+
+HiddenService = Node(tag="h", hiddenservice=1, torrc="hidden-service.tmpl", hiddenservicetarget="127.0.0.1:8081")
+DelayedHiddenService = Node(tag="h", hiddenservice=1, torrc="hidden-service.tmpl", delay=60*10, hiddenservicetarget="127.0.0.1:8082")
+
+NODES = Authority.getN(3) + Relay.getN(5) + Client.getN(4) + HiddenService.getN(1) + DelayedHiddenService.getN(1)
+
+ConfigureNodes(NODES)
diff --git a/run-hs-test.sh b/run-hs-test.sh
new file mode 100755
index 0000000..109ba15
--- /dev/null
+++ b/run-hs-test.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+export PATH=~/University/COMP3020/tor/src/or:$PATH
+
+./chutney stop networks/hidden-service
+rm -rf net/nodes
+./chutney configure networks/hidden-service
+./chutney start networks/hidden-service
diff --git a/torrc_templates/common.i b/torrc_templates/common.i
index 2b5e4fa..ff1cf76 100644
--- a/torrc_templates/common.i
+++ b/torrc_templates/common.i
@@ -11,3 +11,4 @@ ProtocolWarnings 1
SafeLogging 0
${authorities}
+IntroPointAcceptMutipleConnections 1
diff --git a/torrc_templates/hidden-service.tmpl b/torrc_templates/hidden-service.tmpl
new file mode 100644
index 0000000..866070e
--- /dev/null
+++ b/torrc_templates/hidden-service.tmpl
@@ -0,0 +1,11 @@
+${include:common.i}
+SocksPort 0
+#NOTE: Setting TestingClientConsensusDownloadSchedule doesn't
+# help -- dl_stats.schedule is not DL_SCHED_CONSENSUS
+# at boostrap time.
+TestingClientDownloadSchedule 10, 2, 2, 4, 4, 8, 13, 18, 25, 40, 60
+
+HiddenServiceDir ${dir}/hidden_service/
+HiddenServicePort ${hiddenserviceport} ${hiddenservicetarget}
+
+Log [rend]debug file ${dir}/rend.log
diff --git a/torrc_templates/intro.tmpl b/torrc_templates/intro.tmpl
new file mode 100644
index 0000000..f2d7d08
--- /dev/null
+++ b/torrc_templates/intro.tmpl
@@ -0,0 +1,11 @@
+${include:common.i}
+SocksPort 0
+OrPort $orport
+Address $ip
+DirPort $dirport
+#NOTE: Setting TestingServerConsensusDownloadSchedule doesn't
+# help -- dl_stats.schedule is not DL_SCHED_CONSENSUS
+# at boostrap time.
+TestingServerDownloadSchedule 10, 2, 2, 4, 4, 8, 13, 18, 25, 40, 60
+
+Log [rend]debug file ${dir}/intro.log