I'm posting here because I've tried for hours a solution.
This project is about easy blog pubblication for activist.
I know JRuby is not supported but the syntax is clear and it will be really helpfull,
I probably didn't understand fully the low level design backing tor startup.
Here is my code:
#<<client.rb>>require'rubygems'require'java'require'logger'@logger=Logger.new(STDERR)here=File.expand_path(File.dirname(__FILE__))$LOAD_PATH<<"#{here}"jars_dir=here+"/lib/jars"$LOAD_PATH<<jars_dir#Dir["lib/*.jar"].each { |jar| require jar } #TO_TEST CROSS-PLATFORMDir.entries(jars_dir).sort.eachdo|entry|ifentry=~/.jar$/@logger.info"JAVA: Requiring #{entry}"requireentryendend################################################### create tor proxy on port 1080#java_import "org.silvertunnel.netlib.tool.NetlibProxy"#args = ["0.0.0.0:1080","socks_over_tor_over_tls_over_tcpip"].to_java(:string)#org.silvertunnel.netlib.tool.NetlibProxy.main(args)#puts org.silvertunnel.netlib.api.NetLayer.public_instance_methods# << SUCCESS# create new private+public hidden service keyorg.silvertunnel.netlib.layer.tor.TorNetLayerUtil.getInstance()keypair=org.silvertunnel.netlib.layer.tor.util.Encryption.createNewRSAKeyPair()newnetaddress=org.silvertunnel.netlib.layer.tor.TorHiddenServicePrivateNetAddress.new(keypair.getPublic(),keypair.getPrivate())# << SUCCESS#onion addressputsnewnetaddress.getPublicOnionHostname# << SUCCESS# define local listening address inclusive portnetaddress=org.silvertunnel.netlib.layer.tor.TorHiddenServicePortPrivateNetAddress.new(newnetaddress,80)# // get TorNetLayer instance and wait until it is ready# NetLayer netLayer = NetFactory.getInstance().getNetLayerById(NetLayerIDs.TOR);# netLayer.waitUntilReady();netlayer=org.silvertunnel.netlib.api.NetFactory.getInstance().getNetLayerById("NetLayerIDs.TOR")netlayer.waitUntilReady()# << SEVERE: could not create NetLayerFactory of NetLayerIDs.TOR# Create Tor over TLS/SSL over TCP/IP layer# torNetLayer = new TorNetLayer(loggingTlsNetLayer, /*loggingT*/tcpipDirNetLayer, TempfileStringStorage.getInstance());# NetFactory.getInstance().registerNetLayer(NetLayerIDs.TOR_OVER_TLS_OVER_TCPIP, torNetLayer);# torNetLayer.waitUntilReady();tempfile=org.silvertunnel.netlib.util.TempfileStringStorage.getInstance()tornetlayer=org.silvertunnel.netlib.layer.tor.TorNetLayer.new("127.0.0.1","80",tempfile)org.silvertunnel.netlib.api.NetLayerFactory.getInstance().registerNetLayer("NetLayerIDs.TOR_OVER_TLS_OVER_TCPIP",tornetlayer)tornetlayer.waitUntilReady()# << NameError: no constructorfor arguments (org.jruby.RubyString,org.jruby.RubyString,org.silvertunnel.netlib.util.TempfileStringStorage)#<</client.rb>>
System information:
100% tests good with JUnit
JARs loaded: bcprov-jdk15-145.jar jdom.jar silvertunnel.org_netlib.jar
Version: netlib 0.13
To test: install jruby, copy the 3 .jar to client/lib/jars/ and run client/client.rb with jruby
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
one mistake is the assumption that you use a String "NetLayerIDs.TOR" - instead it is a field TOR of class NetLayerIDs. Same same with "NetLayerIDs.TOR_OVER_TLS_OVER_TCPIP".
Beside these thing I'm not sure what you want with the call of method registerNetLayer().
I hope, this helps,
Christian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks! it worked, if anyone need it, here's the code to run tor(tor proxy automation is in 1 topic) in jruby:
For Hidden service I can't find the exact call to createNetServerSocket.
# // get TorNetLayer instance and wait until it is ready
# NetLayer netLayer = NetFactory.getInstance().getNetLayerById(NetLayerIDs.TOR);
# netLayer.waitUntilReady();
netlayer = org.silvertunnel.netlib.api.NetFactory.getInstance().getNetLayerById(org.silvertunnel.netlib.api.NetLayerIDs.TOR_OVER_TLS_OVER_TCPIP)
netlayer.waitUntilReady()
# << SUCCESS
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm posting here because I've tried for hours a solution.
This project is about easy blog pubblication for activist.
I know JRuby is not supported but the syntax is clear and it will be really helpfull,
I probably didn't understand fully the low level design backing tor startup.
Here is my code:
System information:
100% tests good with JUnit
JARs loaded: bcprov-jdk15-145.jar jdom.jar silvertunnel.org_netlib.jar
Version: netlib 0.13
To test: install jruby, copy the 3 .jar to client/lib/jars/ and run client/client.rb with jruby
Hi,
one mistake is the assumption that you use a String "NetLayerIDs.TOR" - instead it is a field TOR of class NetLayerIDs. Same same with "NetLayerIDs.TOR_OVER_TLS_OVER_TCPIP".
Beside these thing I'm not sure what you want with the call of method registerNetLayer().
I hope, this helps,
Christian
Thanks! it worked, if anyone need it, here's the code to run tor(tor proxy automation is in 1 topic) in jruby:
For Hidden service I can't find the exact call to createNetServerSocket.