Commit Graph

431 Commits

Author SHA1 Message Date
Roger Dingledine
9c6343fdf8 refactor connects into connection_connect()
svn:r460
2003-09-16 01:58:46 +00:00
Nick Mathewson
e4dfc3c8fe Cipher lists need to be colon separated. Also make initialization more bulletproof
svn:r459
2003-09-15 19:38:52 +00:00
Nick Mathewson
633a5ffc0b Fix TLS error logging
svn:r458
2003-09-15 18:37:49 +00:00
Nick Mathewson
408bff4a23 Log protocol errors
svn:r457
2003-09-15 18:18:37 +00:00
Roger Dingledine
ebc23f690c bugfix: onion pending queue now works
and fixed recent memory leak


svn:r456
2003-09-14 08:17:14 +00:00
Roger Dingledine
b63013e847 finally tracked down the seg fault
svn:r455
2003-09-14 06:43:18 +00:00
Roger Dingledine
e585dad887 fix the cpuworker circ-had-vanished bug (maybe)
still several (many) tls-related bugs outstanding.


svn:r454
2003-09-14 02:58:50 +00:00
Roger Dingledine
05612786e4 fix two more bugs
svn:r452
2003-09-13 21:53:38 +00:00
Roger Dingledine
31bf3ec420 reshuffle functions for cleaner organization
svn:r451
2003-09-12 22:45:31 +00:00
Roger Dingledine
1738af9620 tls works between routers now too
things are still a bit shaky


svn:r450
2003-09-12 06:50:21 +00:00
Roger Dingledine
b1078b7a3c tls works with onion proxies now.
svn:r449
2003-09-12 06:20:36 +00:00
Roger Dingledine
556bea4b6d serious bug in cpuworker. need to think about redesign or how to handle it.
svn:r448
2003-09-12 06:18:38 +00:00
Nick Mathewson
001cd08b2e Fix bugs in certificate generation and SSL context creation. Both seem to work now.
svn:r447
2003-09-11 23:26:31 +00:00
Roger Dingledine
ec23ebc4e6 update onion router configs for tls
svn:r446
2003-09-11 22:20:16 +00:00
Roger Dingledine
fa1bfaa349 check for funny business from the remote peer
svn:r445
2003-09-11 22:19:48 +00:00
Nick Mathewson
5082ee8ae0 Non-debugging messages are nice to log too
svn:r444
2003-09-11 22:13:13 +00:00
Nick Mathewson
529d3bc56f Resolve XXXXs in tortls.c
svn:r443
2003-09-11 21:38:57 +00:00
Nick Mathewson
f5b4ef1fa2 Simplify some code paths in TLS; cut down on memory leaks; use
reasonable ciphers if not everyone has OpenSSL 0.9.7.


svn:r442
2003-09-11 21:12:39 +00:00
Nick Mathewson
36a3086434 Add router_get_by_pk function; use in connection_tls_finish_handshake.
svn:r441
2003-09-11 20:32:15 +00:00
Roger Dingledine
0761bc7b83 fix typo that's been bugging me
svn:r440
2003-09-11 20:10:39 +00:00
Roger Dingledine
44c3a7c2d7 collect info from peer we just handshaked with
svn:r439
2003-09-11 20:06:55 +00:00
Nick Mathewson
e22b271895 Add certificate verification functions
svn:r438
2003-09-10 00:47:39 +00:00
Nick Mathewson
9955b265ab Make crypto structures private to crypto.c
svn:r437
2003-09-10 00:47:24 +00:00
Nick Mathewson
67697d5ab1 Add prototypes for functions to check whether the peer certificate is
valid (if it is present); and to get a public key from a peer
certificate (in order to identify the peer).


svn:r436
2003-09-10 00:10:37 +00:00
Roger Dingledine
c0f5ddcf33 fix confirmed win32 bug
svn:r435
2003-09-08 23:10:24 +00:00
Roger Dingledine
0bac4247ca tls infrastructure now in place, give or take
svn:r434
2003-09-08 10:59:00 +00:00
Roger Dingledine
1a9b5f9de9 another wishlist function for the tls interface
svn:r433
2003-09-08 10:46:19 +00:00
Roger Dingledine
a6a5784bca add CertFile, Nickname
write new certfile if you don't have one already
set up a tls context on startup


svn:r432
2003-09-08 06:26:38 +00:00
Roger Dingledine
ace475f01c hide the global tls context inside tortls.c
svn:r431
2003-09-08 06:22:19 +00:00
Roger Dingledine
413c7a19ed clean up config.c so it doesn't expose as much
svn:r430
2003-09-08 05:16:18 +00:00
Roger Dingledine
3fa170e11f more futzing towards tls
not there yet


svn:r429
2003-09-07 10:24:40 +00:00
Roger Dingledine
99035f3520 clean read_to_buf more
svn:r428
2003-09-05 11:25:24 +00:00
Roger Dingledine
7a34cdf5ee general cleanup and reabstraction, to prepare for tls
svn:r426
2003-09-05 06:04:03 +00:00
Roger Dingledine
99d1e4931b move variable declarations to top of function
svn:r425
2003-09-05 05:58:21 +00:00
Nick Mathewson
fd20011c26 Add initial interfaces and code for TLS support. Interfaces are right; code needs work and testing.
svn:r424
2003-09-04 16:05:08 +00:00
Roger Dingledine
e13d947986 point out why router_forget_router probably doesn't work
svn:r422
2003-08-29 21:50:53 +00:00
Nick Mathewson
e14aedaad0 Fix memory leaks in directory parsing
svn:r421
2003-08-28 04:21:57 +00:00
Roger Dingledine
7ae853b04c router formats don't include op_port now either
svn:r419
2003-08-27 22:42:39 +00:00
Roger Dingledine
ce289f65f2 remove last vestiges of op_port
svn:r418
2003-08-27 22:42:10 +00:00
Roger Dingledine
4c7e936a3a note an assert bug that's still around
svn:r417
2003-08-25 22:02:42 +00:00
Roger Dingledine
90f22933e7 make the conn->package_window bug go away.
not resolved, but at least the servers will stop crashing.


svn:r416
2003-08-25 21:43:51 +00:00
Nick Mathewson
14c8bc598b Attempt to track down bug in conn->package_window
svn:r415
2003-08-25 20:57:23 +00:00
Roger Dingledine
0878ceb779 remove bandwidth negotation from the code
we still use bandwidth on a per-connection basis for rate
limiting. but it's unclear if we need this infrastructure in
addition to the total-bandwidth rate limiting that we also do.

i'll leave both infrastructures in, and we'll remove the
per-connection one if it starts rotting too much.


svn:r413
2003-08-25 08:28:34 +00:00
Roger Dingledine
58c5d5e918 fix formatting in crypto.c for my sanity
svn:r411
2003-08-25 07:06:12 +00:00
Roger Dingledine
215ca90c05 fix a mild memory leak (10 bytes each time an OR connected to an OR)
svn:r410
2003-08-25 06:24:17 +00:00
Roger Dingledine
36f055e7ee start honoring the recommended_versions string
your client exits if you're running a version not in the
directory's list of acceptable versions (unless you have a
config variable set to override).


svn:r408
2003-08-23 10:09:25 +00:00
Roger Dingledine
33b0569fba remove duplicate packagewindow-checking code,
see if we can induce that segfault i just saw more often


svn:r407
2003-08-23 10:06:46 +00:00
Roger Dingledine
2dda97e8fd implemented cpuworkers
please poke at it and report bugs

still needs polishing, and only handles onions now (should handle
OR handshakes too)


svn:r402
2003-08-20 23:05:22 +00:00
Roger Dingledine
d43f145ddf include torint.h in 'make dist'
svn:r401
2003-08-14 21:46:24 +00:00
Nick Mathewson
1777487f4e Tor now builds on win32.
svn:r400
2003-08-14 17:51:36 +00:00
Nick Mathewson
adbc057772 Add empty statement to suppress gcc warning about label at end of compount statement
svn:r399
2003-08-14 17:16:05 +00:00
Nick Mathewson
cd3467bb01 Attempt to make sockets code work right on windows.
svn:r398
2003-08-14 17:13:52 +00:00
Roger Dingledine
88edae9407 start refactoring dnsworker so testing won't be so darn hard
add NumCpus config variable in preparation for cpuworkers
hardcode /etc/torrc path for config (simplifies win32 port)
improve exit policy debugging during router entry parsing


svn:r397
2003-08-14 03:52:51 +00:00
Roger Dingledine
e1f2693d05 bugfix: if a dnsworker dies, remember that.
svn:r396
2003-08-13 22:38:46 +00:00
Nick Mathewson
9cf01020cc Misc patches to make windows build work. Now everything is done except the sockets stuff
svn:r393
2003-08-12 15:08:51 +00:00
Nick Mathewson
bbd4032fc1 Make windows happier still
svn:r392
2003-08-12 08:18:13 +00:00
Roger Dingledine
25c9c837eb don't mess with signals on windows until we know how
svn:r391
2003-08-12 08:04:31 +00:00
Nick Mathewson
9b12a48428 Stop trying to #include the world in util.c
svn:r390
2003-08-12 07:49:29 +00:00
Nick Mathewson
2cb4f7a473 Adopt socketpair implementation from perl. For now, always use it.
svn:r389
2003-08-12 07:43:15 +00:00
Roger Dingledine
5d9cfb7164 use the spawn_func / spawn_exit abstraction for dnsworkers
svn:r388
2003-08-12 07:35:17 +00:00
Nick Mathewson
e4a6ea5c46 Add abstraction for fork vs thread.
svn:r387
2003-08-12 07:01:20 +00:00
Nick Mathewson
5c4255595d Dont use explicit paths for orconfig.h -- it messes up the windows build
svn:r386
2003-08-12 06:45:03 +00:00
Roger Dingledine
c82e13f1f5 reap exited dns/cpuworkers
svn:r385
2003-08-12 06:41:53 +00:00
Nick Mathewson
2aff21f857 Reorder includes so that fakepoll.c gets built when it should
svn:r384
2003-08-12 06:41:40 +00:00
Roger Dingledine
33d484bf10 we must have openssl, so HAVE_OPENSSL is redundant
svn:r383
2003-08-12 05:48:26 +00:00
Nick Mathewson
b927c56144 unbork windows line endings
svn:r381
2003-08-12 03:16:15 +00:00
Nick Mathewson
c336c99e60 Start of port to win32. Missing are:
- signal support
  - forking for DNS farm
  - changes for async IO
  - daemonizing

In other words, some files still don't build, and the ones that do build,
do nonblocking IO incorrectly.

I'm also not checking in the project files till I have a good place
for them.


svn:r380
2003-08-12 03:08:41 +00:00
Nick Mathewson
5126f203f2 Work on systems with broken AC_CHECK_TYPE
svn:r379
2003-08-11 23:21:51 +00:00
Nick Mathewson
58e2edfb24 Who would have thought that some systems define intfoo_t, but not uintfoo_t? Cygwin is such a system.
svn:r378
2003-08-11 21:16:13 +00:00
Nick Mathewson
7284c25b34 Cope better on platforms that define some of intFOO_t in sys/types.h or elsewhere
svn:r377
2003-08-11 20:50:30 +00:00
Nick Mathewson
5267518455 autoconf around missing stdint.h
svn:r376
2003-08-11 20:40:21 +00:00
Roger Dingledine
681c7539ef better log output for debugging
svn:r375
2003-08-11 20:22:48 +00:00
Nick Mathewson
17a311d9a0 Fix typo: ports are 16 bits.
svn:r374
2003-08-11 19:48:22 +00:00
Roger Dingledine
60d52a7e08 patch to let poll() recognize eof on more architectures
svn:r372
2003-08-06 18:38:46 +00:00
Nick Mathewson
ac5893c626 src/or
svn:r371
2003-07-30 19:12:03 +00:00
Nick Mathewson
f12fdd62aa Be smarter about getting key matter from DH.
Formerly, once we had g^xy, we took the last N bytes from g^xy.

Now, we take SHA(g^xy || [0]) || SHA1(g^xy || [1]) || ... , in order
to use all bits from g^xy equally, and generate as much key material
as we need.


svn:r370
2003-07-30 19:10:20 +00:00
Roger Dingledine
f8d7cff6ea switch to aes
nick: is this all there is to it? :)


svn:r366
2003-07-08 08:38:24 +00:00
Roger Dingledine
c6f70e36e0 implemented total read rate limiting
svn:r365
2003-07-05 07:10:34 +00:00
Roger Dingledine
9f58a2ece4 clean up main.c a bit
svn:r364
2003-07-05 05:46:06 +00:00
Roger Dingledine
75440d08c2 fix many bugs in package_window handling
svn:r363
2003-07-03 03:40:47 +00:00
Nick Mathewson
300984c057 Add AES counter-mode support to the crypt library
svn:r362
2003-06-30 19:18:32 +00:00
Nick Mathewson
a0f1588318 Add a the public-domain AES implementation, with a minimal counter-mode wrapper.
svn:r361
2003-06-30 19:18:12 +00:00
Roger Dingledine
517b418b5c bugfix: a connection-level sendme cell would cause a connection to start
packaging from its buffer, even if the circuit-level package-window was
still 0.


svn:r360
2003-06-28 06:17:01 +00:00
Roger Dingledine
f8203505e1 if stream ends before resolve finishes, inform resolver
svn:r359
2003-06-27 00:57:04 +00:00
Roger Dingledine
35a37ec3f5 fix memleak in dump_signed_directory_to_string
svn:r358
2003-06-26 23:38:21 +00:00
Roger Dingledine
5d13db862e entries in the dns cache now expire
(expiry time set to 100 seconds so we can play with it)
exit connections are now informed when pending resolves fail
we kill off the oldest busy worker when we're under attack and need to
  resolve something new


svn:r356
2003-06-25 07:19:30 +00:00
Roger Dingledine
6c9e3762b5 clean up sev_to_string hack in log.c
svn:r355
2003-06-25 04:47:54 +00:00
Roger Dingledine
dbf3435cde simplify fetch_from_buf; cull idle dnsworkers.
svn:r354
2003-06-25 00:31:41 +00:00
Roger Dingledine
ad917e7788 non-buggy robustness, even
svn:r353
2003-06-24 23:14:39 +00:00
Roger Dingledine
dfdc93eccb improve robustness: connection_get_by_* ignores conns marked for close
svn:r352
2003-06-24 23:09:21 +00:00
Roger Dingledine
23b1586c26 clean up a broken comment in crypto.c
svn:r351
2003-06-24 21:34:19 +00:00
Roger Dingledine
d8af672bb6 correct log()'s comment
svn:r350
2003-06-24 05:18:12 +00:00
Roger Dingledine
3dcc34491b slightly happier on 64-bit archs
svn:r349
2003-06-24 05:17:48 +00:00
Roger Dingledine
a43c015838 clean out some old comments
svn:r348
2003-06-24 05:17:39 +00:00
Roger Dingledine
e061b70dbf a pointer to async-dns alternatives.
apparently glibc 2.2.4 and windows both have async gethostbynames now.
we'll want to make use of them if they're available (via autoconf).


svn:r347
2003-06-24 05:17:09 +00:00
Nick Mathewson
e9254430e2 My copy of cpp is not DWIM-compliant; I guess, as a workaround, I should define constants before using them.
svn:r343
2003-06-21 21:46:17 +00:00
Nick Mathewson
04b871486c Reorder connection_or and make unexported functions static. Partially convert to symbolic constants -- Roger, was this what you had in mind?
svn:r342
2003-06-21 19:29:32 +00:00
Nick Mathewson
03544caca7 Make cvsignores reflect build process
svn:r341
2003-06-21 19:09:09 +00:00
Nick Mathewson
efbcd71b9b Remove false warnings from printf checks
svn:r340
2003-06-21 19:03:22 +00:00
Nick Mathewson
49f082fcee Fix a bug where we'd sometimes run off the end of an array while
testing stream encryption.


svn:r339
2003-06-20 08:17:25 +00:00