lixf / quictor Goto Github PK
View Code? Open in Web Editor NEWQUIC on TOR
License: Other
QUIC on TOR
License: Other
I'm not sure if these two are within the scope of this research project but not much attention was paid to making sure bridges and hidden services still work.
Most likely should be concerns of production code.
At some point, we need to clean up the unused TLS code in Tor and pass everything to QUIC.
They are used in crypto_digest256()
and crypto_digest512()
in common/crypto.c
. Failing to lookup symbol implies that they are not defined libcrypto
. Unsure of the reason.
Is it ok for us to comment that code path out? Do we ever use DIGEST_SHA3_256
or DIGEST_SHA3_512
as the digest algorithm in Tor?
We should work on switching on/off QUIC with one config statement in torrc file.
This will enable deployment in existing TOR networks.
The wide_circ_id checking in command.c used to cause me problems and the fix was simply commenting out the code. See here.
Not sure what impact this might have.
Currently, I haven't paid much attention to how we handle digest and there might be an issue.
The main concern is: when I read thru the debugging logs, for a brief period of time, the digest of a channel is empty (i.e. 0000..000).
One possible impact is the requirement of "RefuseUnknownExit". Currently, without this flag, no connection can be established.
More investigation on its impact is needed.
I'm getting a build error on QUIC after a distro update.. (Sorry I updated..)
lib/libquic/build/libquic.a(stubs.cc.o): In function `net::ConvertIPv4NumberToIPv6Number(std::vector<unsigned char, std::allocator<unsigned char> > const&)':
stubs.cc:(.text+0xd30): multiple definition of `net::ConvertIPv4NumberToIPv6Number(std::vector<unsigned char, std::allocator<unsigned char> > const&)'
objs/chromium/net/base/ip_address_number.o:/home/xli/Private/class/15744/quictor/src/simple-quic/chromium/net/base/ip_address_number.cc:194: first defined here
collect2: error: ld returned 1 exit status
Makefile:72: recipe for target 'libquicsock.so' failed
make: *** [libquicsock.so] Error 1
Any idea?
leave a comment here.
In ~/shadow-plugin-tor/resource/quic
, running shadow-tor -i shadow.config.xml
outputs stack trace and crashes:
> /tmp/XYXMMY-libshadow-plugin-tor.so(+0x1d8f2f)[0x7f04068b4f2f]
> /lib/x86_64-linux-gnu/libc.so.6(fgets+0x1b)[0x7f040abd917b]
> /lib/x86_64-linux-gnu/libc.so.6(fgets+0x1b)[0x7f040abd917b]
> /home/ubuntu/.shadow/lib/libcrypto.so.1.0.0(+0xfa0f5)[0x7f040a19b0f5]
> /home/ubuntu/.shadow/lib/libcrypto.so.1.0.0(BIO_gets+0x6b)[0x7f040a199a0b]
> /home/ubuntu/.shadow/lib/libcrypto.so.1.0.0(PEM_read_bio+0xa0)[0x7f040a1dd010]
> /home/ubuntu/.shadow/lib/libcrypto.so.1.0.0(PEM_bytes_read_bio+0xa6)[0x7f040a1dd856]
> /home/ubuntu/.shadow/lib/libcrypto.so.1.0.0(PEM_ASN1_read_bio+0x3f)[0x7f040a1dee0f]
> /home/ubuntu/.shadow/lib/libquicsock.so(_ZN3net18ProofSourceOpenSSL10InitializeERKSsS2_S2_+0x4c)[0x7f0406efcfac]
> /home/ubuntu/.shadow/lib/libquicsock.so(_ZN8quicsock17ServerEventThread6ListenEPN3net10IPEndPointE+0x146)[0x7f0406ecf4d6]
> /home/ubuntu/.shadow/lib/libquicsock.so(qs_listen+0x65)[0x7f0406ed09f5]
> /tmp/XYXMMY-libshadow-plugin-tor.so(+0x14e497)[0x7f040682a497]
> /tmp/XYXMMY-libshadow-plugin-tor.so(+0x14767f)[0x7f040682367f]
> /tmp/XYXMMY-libshadow-plugin-tor.so(retry_all_listeners+0x106)[0x7f040681e0f6]
> /tmp/XYXMMY-libshadow-plugin-tor.so(+0x157359)[0x7f0406833359]
> /tmp/XYXMMY-libshadow-plugin-tor.so(set_options+0x3d)[0x7f040682dbdd]
> /tmp/XYXMMY-libshadow-plugin-tor.so(options_init_from_string+0x6b3)[0x7f0406830a83]
> /tmp/XYXMMY-libshadow-plugin-tor.so(options_init_from_torrc+0x4b2)[0x7f040682fff2]
> /tmp/XYXMMY-libshadow-plugin-tor.so(tor_init+0x4d4)[0x7f040677cb84]
> /home/ubuntu/.shadow/lib/libshadow-preload-tor.so(tor_init+0x3b)[0x7f040c40f07b]
> /tmp/XYXMMY-libshadow-plugin-tor.so(tor_main+0x112)[0x7f040677d322]
> /tmp/XYXMMY-libshadow-plugin-tor.so(+0x4edaf)[0x7f040672adaf]
> /tmp/XYXMMY-libshadow-plugin-tor.so(main+0x22)[0x7f040672acf2]
> /home/ubuntu/.shadow/bin/shadow[0x427d1e]
> /home/ubuntu/.shadow/bin/shadow[0x45b680]
> /lib/x86_64-linux-gnu/libc.so.6(+0x49800)[0x7f040abb4800]
Guess: libquic's openssl version difference issue.
When path is being restricted, the client node is stuck at 80% bootstrap because it cannot contact the middle relay.
This code segment in circuitbuild.c might be the issue. node_t is not NULL but some fields used inside this variable are NULL and causes the client to give up.
Might also be an issue with the consensus.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.