Commit Graph

289 Commits

Author SHA1 Message Date
Adam Ierymenko
70655cc3f7 Docs and auto-update of Earth network ID. 2013-10-20 16:00:41 -04:00
Adam Ierymenko
c89cdcc3fd Blech... moving on! 2013-10-20 15:54:32 -04:00
Adam Ierymenko
1ed8a22d19 And then it turns out to be too slow on a slower 32-bit machine... we do want to do tablets eventually. 2013-10-20 15:46:36 -04:00
Adam Ierymenko
bad043729f Yet another revision of this algo... yeesh... and update to supernode IDs. I think I am gonna go with this one. Seems memory-hard enough to me. I am probably procrastinating by obsessing over it. 2013-10-20 15:31:32 -04:00
Adam Ierymenko
3c5c3280ff Fix an endian-non-neutrality bug in new hashcash identity algo. 2013-10-20 11:04:58 -04:00
Adam Ierymenko
8c9b73f67b Make Salsa20 variable-round, allowing for Salsa20/12 to be used for Packet encrypt and decrypt. Profiling analysis found that Salsa20 encrypt was accounting for a nontrivial percentage of CPU time, so it makes sense to cut this load fundamentally. There are no published attacks against Salsa20/12, and DJB believes 20 rounds to be overkill. This should be more than enough for our needs. Obviously incorporating ASM Salsa20 is among the next steps for performance. 2013-10-18 17:39:48 -04:00
Adam Ierymenko
fbf6ab5d4d Bug fixes: inverted sense bug, printf format bug. 2013-10-18 16:27:07 -04:00
Adam Ierymenko
e13d4df9ab Forgot to set defaults if multicast parameters are unset. 2013-10-18 15:50:31 -04:00
Adam Ierymenko
fb7d9b1029 Oops we needed _r in there... 2013-10-18 15:00:55 -04:00
Adam Ierymenko
5ef758bbd4 Eliminate unused private field (compiler warning). 2013-10-18 14:27:37 -04:00
Adam Ierymenko
ca93b4a1ac Clean up some stuff, including a few spots where exceptions were not being handled correctly. 2013-10-18 14:16:53 -04:00
Adam Ierymenko
03b909603a Clean up the awful Network::Config mess and break that out into NetworkConfig. 2013-10-18 13:20:34 -04:00
Adam Ierymenko
5a8f213c23 Work in progress... 2013-10-18 12:01:48 -04:00
Adam Ierymenko
b10871cedc More work in netconf cleanup. 2013-10-18 11:01:41 -04:00
Adam Ierymenko
9f107dbd4e Work in progress on cleaning up netconf mess in node code... 2013-10-18 09:48:02 -04:00
Adam Ierymenko
e6eb65be00 Netconf support for ARP and NDP caching TTLs. 2013-10-17 16:49:31 -04:00
Adam Ierymenko
d0dbd869c9 Increase verbosity of multicast tracing and fix tap build problem / GitHub Issue #19 2013-10-17 15:20:43 -04:00
Adam Ierymenko
797bba04dd Get rid of not used and maybe never to be used Filter code. 2013-10-17 13:07:53 -04:00
Adam Ierymenko
ce14ba9004 Take the 0.6.0 opportunity to add flags to a few protocol verbs and do a bit more cleanup. Also fix it so certificates wont be accepted unless they are newer than existing ones. 2013-10-17 06:41:52 -04:00
Adam Ierymenko
7e7e28f5f7 Add support for pushing network config refresh hints from a MEMORY queue table. That ways it will be possible for network changes to take effect almost immediately across all active peers. 2013-10-17 05:37:01 -04:00
Adam Ierymenko
46f868bd4f Lots of cleanup, more work on certificates, some security fixes. 2013-10-16 17:47:26 -04:00
Adam Ierymenko
58fa6cab43 Auto-pushing of membership certs on: MULTICAST_FRAME,FRAME,MULTICAST_LIKE and on receipt of MULTICAST_LIKE. 2013-10-07 17:00:53 -04:00
Adam Ierymenko
4d594b24bc Automagically push netconf certs -- Network support. 2013-10-07 16:13:52 -04:00
Adam Ierymenko
b4ae1adfbf Break out certificate of membership into its own class. 2013-10-07 15:29:03 -04:00
Adam Ierymenko
dcbc9c8ddd Rename error code for no membership certificate. 2013-10-07 15:21:40 -04:00
Adam Ierymenko
430882327e Couple of small fixes, works again with new ID code. 2013-10-07 15:00:38 -04:00
Adam Ierymenko
2fa2796f2a Another tweak, hopefully final, to reduce variance on identity generation times. 2013-10-07 14:31:13 -04:00
Adam Ierymenko
343b7f44fc Old algo for ID derivation was not in fact memory-hard since Salsa20 is seekable, so take two. 2013-10-07 12:48:27 -04:00
Adam Ierymenko
0c8614b9c6 Add a second arg to idtool generate to make generating both secret and public easier, add new supernode identities after generating them, fix known good and bad IDs in selftest. 2013-10-07 09:36:20 -04:00
Adam Ierymenko
5fa7a92048 Allocate genmem[] since its too big for the stack on some systems. 2013-10-06 05:28:25 -04:00
Adam Ierymenko
bc715fbd51 Make new identity hashcash algo memory hard, and tweak generation time a bit. Current hashcash cost should be overkill for what we need but still tolerable to users. 2013-10-05 14:15:59 -04:00
Adam Ierymenko
4267e7da93 Remove a whole bunch of now-unnecessary cruft from Topology and PacketDecoder. 2013-10-05 10:19:12 -04:00
Adam Ierymenko
0e43e5e8f2 Rest of work on new hashcash based identity scheme. 2013-10-05 07:00:55 -04:00
Adam Ierymenko
b0187f4472 Hashcash-based identity, work in progress... committing to test speed on other boxes. 2013-10-05 06:00:47 -04:00
Adam Ierymenko
588a47be89 Some API improvements to C25519 in preparation for that thing I woke up thinking about at 4am. 2013-10-05 05:26:38 -04:00
Adam Ierymenko
ea4e1136dd Flesh out membership certificate with signature, better serialize/deserialize, and rename parameter to qualifier to make better conceptual sense. 2013-10-04 12:24:21 -04:00
Adam Ierymenko
bb4a96c630 Add more info to remote multicast trace (debug facility). 2013-10-03 14:53:15 -04:00
Adam Ierymenko
c7590634e8 Eliminate a lot of redundant WHOIS requests, clean up WHOIS clutter in TRACE, flesh out multicast tracing a bit. 2013-10-03 14:38:07 -04:00
Adam Ierymenko
58538500f2 Clean up some routine stuff like pings, and stop keeping links open forever even if there are no frames passing between them. 2013-10-02 16:12:10 -04:00
Adam Ierymenko
2cfa76fa8b Multicast propagation is now working from non-supernodes, and working quite well. Time for some more simulation before 0.5.0! 2013-10-02 13:50:42 -04:00
Adam Ierymenko
929ed5d8b8 Merge branch 'adamierymenko-dev' of /Users/api/Code/local-ZeroTierOne into adamierymenko-dev 2013-10-01 17:19:36 -04:00
Adam Ierymenko
4b6ec872c7 More multicast fixes. 2013-10-01 17:19:24 -04:00
Adam Ierymenko
676f391ccf Multicast debug changes. 2013-10-01 16:31:46 -04:00
Adam Ierymenko
3443b203e4 Each peer now tracks the last time it announced multicast LIKEs independently and does so frequently enough to prevent expires. Also add a multicast debug facility for use on the testnet. 2013-10-01 16:01:36 -04:00
Adam Ierymenko
1a76455986 Fix for multicast propagation to prevent buildup of frames ping-ponging between supernodes. 2013-09-30 17:10:34 -04:00
Adam Ierymenko
e72a1de0d5 Fix bug in next hop selection. 2013-09-30 16:31:22 -04:00
Adam Ierymenko
20832a0562 Send reset of OK(HELLO) in both places where it gets composed. 2013-09-30 14:55:10 -04:00
Adam Ierymenko
9db7939d38 Make new multicast depth and prefix bits parameters configurable. 2013-09-30 13:51:56 -04:00
Adam Ierymenko
4ecb9369b5 Fix for multicast propagation -- supernodes must always keep propagating. Also fix mac-tap build on new version of Xcode CL tools. Must use old llvm-g++ instead of clang for i686 -mkernel. 2013-09-30 11:05:35 -04:00
Adam Ierymenko
0dca9964bf Whew, it builds! 2013-09-27 16:03:13 -04:00
Adam Ierymenko
4e010da54b Work in progress... 2013-09-26 17:45:19 -04:00
Adam Ierymenko
24bad9f3d1 More work in progress in new multicast propagation... 2013-09-25 17:41:49 -04:00
Adam Ierymenko
f3128a18fe Work in progress... 2013-09-25 10:55:27 -04:00
Adam Ierymenko
5557a8192d Work in progress... 2013-09-24 17:35:05 -04:00
Adam Ierymenko
bddbf4d276 Work in progress... 2013-09-24 12:44:15 -04:00
Adam Ierymenko
62a6f7ca63 More work in progress on new Multicaster. This should be pretty much good to go, and performance should not be too O(crappy). 2013-09-22 13:35:40 -04:00
Adam Ierymenko
770fbaf4b2 New multicast algorithm work in progress... 2013-09-21 16:46:00 -04:00
Adam Ierymenko
64c9c2e06b New packet formats for MULTICAST_FRAME, and MULTICAST_GOT. Not implemented yet in decoder, so wont compile. Work in progress. 2013-09-20 13:36:14 -04:00
Adam Ierymenko
c26b64f24b Fix for netconf advertising of multicast propagation parameters, and defaults in Network.hpp. 2013-09-19 16:16:48 -04:00
Adam Ierymenko
795f41c331 Change Linux default build back to debug, and fix startup message. Oh, and new crypto just kinda works. Awesome. 2013-09-19 15:17:11 -04:00
Adam Ierymenko
d8d71df301 Build fix for network ID remap hack. 2013-09-19 14:40:46 -04:00
Adam Ierymenko
aac40562d3 Add temporary code to remap old Earth network ID to new one. 2013-09-19 14:36:37 -04:00
Adam Ierymenko
fb8d5204e3 Remove code to automatically join Earth -- network joins will now be user-initiated and manual. 2013-09-18 12:32:08 -04:00
Adam Ierymenko
5ccc91a7c3 Prescient endian-ness fix in deriveAddress. 2013-09-17 16:49:16 -04:00
Adam Ierymenko
157aba5c3f Get rid of 000000000000000.mcerts junk files. 2013-09-17 16:28:17 -04:00
Adam Ierymenko
f9079a110e Make network multicast breadth/depth parameters configurable on a per-net basis. 2013-09-17 16:11:57 -04:00
Adam Ierymenko
4c06fcfc9d More include formatting cleanup. 2013-09-17 15:53:59 -04:00
Adam Ierymenko
b2b24ca41b Some file format cleanup. 2013-09-17 15:46:56 -04:00
Adam Ierymenko
0133da1dcd Get rid of onSent(), which was never used consistently anyway. 2013-09-17 15:33:34 -04:00
Adam Ierymenko
300588c5e8 Add port and control port command line options to daemon and command line client, add new supernode keys to Defaults. 2013-09-17 14:47:48 -04:00
Adam Ierymenko
de5cc82b5b Build fix to eliminate strict aliasing warnings, and a bug fix. 2013-09-16 19:25:31 +00:00
Adam Ierymenko
77f8d75529 Fix idtool build, tweak address derivation again. 2013-09-16 15:06:17 -04:00
Adam Ierymenko
94bf3e9a0e More tweaks to address derivation, going to test on other boxen. 2013-09-16 14:54:17 -04:00
Adam Ierymenko
4f53d09c7e Build fix for 32-bit Linux and tweaks to address derivation algorithm. 2013-09-16 14:47:48 -04:00
Adam Ierymenko
e376c6f6a9 New crypto integrated -- going to be testing new identity address generation algo a bit more before finalizing. 2013-09-16 13:57:57 -04:00
Adam Ierymenko
ceb024ab03 Integrating new crypto, work still in progress... 2013-09-16 13:02:10 -04:00
Adam Ierymenko
3b2d98e7dc Integrating new crypto -- work in progress, wont build yet. 2013-09-16 09:20:59 -04:00
Adam Ierymenko
02f3369185 Small amount of crypto cleanup. 2013-09-15 11:02:53 -04:00
Adam Ierymenko
300d26973a Test vectors for all new crypto. 2013-09-15 10:41:52 -04:00
Adam Ierymenko
660f92b6a7 Add test vectors for ensuring identical C25519 operation across systems. 2013-09-14 13:51:08 -04:00
Adam Ierymenko
09c8b4bbb3 More new crypto: Ed25519 signatures. 2013-09-13 19:18:01 -04:00
Adam Ierymenko
b2bb7b41fc More work in progress on new crypto... 2013-09-13 17:32:00 -04:00
Adam Ierymenko
0b94a04914 More crypto work in progress... 2013-09-13 16:53:47 -04:00
Adam Ierymenko
032ce498c4 More new crypto -- poly1305 one-time auth code. 2013-09-13 15:59:45 -04:00
Adam Ierymenko
77965af288 Add new crypto: SHA512 and C25519 -- not integrated yet. 2013-09-13 15:47:00 -04:00
Adam Ierymenko
f6ad138561 Bit more of adding version to OK(HELLO) 2013-09-13 14:41:20 -04:00
Adam Ierymenko
d87a1d6b99 Add version info to OK(HELLO) so both sides know their version info. 2013-09-13 13:35:31 -04:00
Adam Ierymenko
07e1085dcc More experimentation with multicast rate. 2013-09-12 17:27:10 -04:00
Adam Ierymenko
55e7ddba1e Get a default rate that works for multicast. 2013-09-12 12:11:21 -04:00
Adam Ierymenko
553002e9d8 Reduce log noise, change to TRACE. 2013-09-11 16:49:01 -04:00
Adam Ierymenko
0e62857841 A few logging changes. 2013-09-11 16:32:53 -04:00
Adam Ierymenko
75471ee0e0 Small method rename. 2013-09-11 16:17:51 -04:00
Adam Ierymenko
5885c6186d More updates to bandwidth accounting. 2013-09-11 16:08:31 -04:00
Adam Ierymenko
9cdaefdb9a Drop old Certificate type from Network. 2013-09-11 15:13:05 -04:00
Adam Ierymenko
de744e6df6 Version two of network certificate of membership, a much more concise and fast approach. 2013-09-11 15:09:53 -04:00
Adam Ierymenko
3a563250f7 Finish stripping minBalance from BandwidthAccount 2013-09-10 14:13:04 -04:00
Adam Ierymenko
a3a2b8dedb Look up rate info from database, but going to drop min balance cause it seems unnecessary. Also work in progress on membership certs. 2013-09-10 09:40:37 -04:00
Adam Ierymenko
a40b8c07f4 Apply multicast rate limits to my own multicasts. Will run locally and on a variety of system types to test the result of this. 2013-09-07 15:49:38 -04:00
Adam Ierymenko
cdb96726df updateAndCheckMulticastBalance and friends 2013-09-07 12:23:53 -04:00
Adam Ierymenko
56d8bbf780 Bit more netconf cleanup... 2013-09-06 15:06:51 -04:00