I2Pd 2.19.0

I2Pd is a lightweight C++ implementation of a I2P privacy network layer router. It provides pseudonymity for all routed application protocols, can be used for web browsing, IRC connections, and file transfers.

Tags c++ i2p privacy security network-protocol routing
License BSDL
State beta

Recent Releases

2.19.027 Jun 2018 11:25 minor feature: Remove broken Dockerfile and it's entrypoint . . . Warning. . Android work 1. . Android gitignore. . Android gitignore. . ; grac stop. . Grac stop. . Grac stop. . . . . . . Revert "". . . . Revert "reworked the app,, grace stop". . . . Revert "quit features replaced by stop; gradle upgraded; i2pd version . . . . Revert "Revert "quit features replaced by stop; gradle upgraded; i2pd . . . . Revert "Revert "reworked the app,, grace stop"". . . . Revert "Revert """. . . . Ndk-build is now called by gradle build. . . . Date in webconsole page header on windows. . HTTP.cpp : use bare snprintf() instead locale-dependent strftime(). . Appveyor build. . Appveyor: remove catgets before try update. . . . Correction. . . . Cmake: add stdlib args for clang build on Linux. . Cmake: remove warning for OpenSSL 1.1. . . . . Mitigate dns rebinding in webui. . . . Xss in webui from SAM session name. . . Add datagrams to websocks. . Check port. . Use write. . . . Initial code for runtime detection of aesni/avx. . Add uncommitted files. . Don. . Add cpu.cpp to cmake. . Add to qt. . . . Android build error. . Make endian work with netbsd. . Work around netbsd quarkyness. . . . Removed design lib from deps - android. . Perms prompt now doesn't show the back button - android. . Android. . . . Added docker build badge. . . . Define cpu_ if not set. . Revert "define cpu_ if not set". . Define bit_ if not already defined. . Update makefile. . . . Use std::move. . Don't log AESNI/AVX here. . . . Add threadpool for ntcp dh. . More. . Make it work. . Whitespace cleanup. . Whitespace cleanup. . Whitespace cleanup. . Whitespace cleanup. . Make ntcp worker threads configurable in number. . . . . . . . Make it compile :D. . Merge branch '--1124' into --1126. . Revert "". . . . Merge remote-tracking branch 'purple/openssl' into i2cp-session-reconfig. . Revert. . Use
2.18.031 Jan 2018 09:45 minor feature: Don't meddle with stdlib . . . temporary disable osx build due to of big waiting time of VM. . typo. . . . Use transient destinations by default instead of shared local destina . . . . gradle build added. . gradle relese build. . Reorder preprocessor conditions in libi2pd/I2PEndian.h. . . . Don't use deprecated boost::asio::ssl::context ctor. . . . typo (confrimed - confirmed). . . . . . . . try ing. include cmake stuff. . update gitignore. . lib name. . . . use outbound.nickname as tunnel name if inbound.nickname is not set. . race condition. . . . typo. . Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl. . Makefile: get target platform from compiler. . CMakeLists: autodetect libatomic. . . . remove trailing whitespaces. . netDB and certificates in internal storage. . netDB and certificates in internal storage. . return to strdup() when filling argv for i2p::android::start(argc,a . . creating certificates.zip when target zip did not include the d . . Inherit _publicly_ from shared_from_this in I2PService. . mixing tabs and spaces. . . . sam race conditions. . Merge remote-tracking branch 'purple/openssl' into streaming_race_ . . removed r n in header builder which was redundant and caused the fur . . . . . . replace non-working CheckLibcxxAtomic. . moved hard code into java side and successfully passed back to native. . less lines. . code cleanup. . check max buffer size in Stream::Send. . rollback. . re-enable packet pool. . removed unused cert. . removed unused Java router certificates. . . . layout. . ing conflicts. . Merge github.com:unlnown542a/i2pd into openssl. . . . Revert " for #1024, #1018 #1064 ". . . . Update rpm spec and systemd unit. . the change allows when an TCPIPAcceptor is constructed by setting por . . . . Return EXIT_FAILURE. . change shared local destination upon reload. . recreate http and socks proxy upon reload. . limit number of retries for sub
2.17.005 Dec 2017 10:25 minor feature: Debian wheezy upnp. Travis-ci cmake. Upnp definitions and make cmake silent. . Show proxy tunnel name. . CRYPTO_TYPE for SAM destinations. . Update webconsole. . Add loglevel none. . Forgotten log colors. . Check for existing addressbook record. . Update travis-ci stuff. . Don't publish unknown crypto type to Java floodfill again. . Reseed proxy. . Delete old R4SAS's reseed cert. . . . Updated qt to build and to reflect some core changes like log dest. . . . Flags. . . . Rollback. build error. . Changed back. . (quote). . Transient keys. . Overflow. . Reduce buffer size. . . . Implement i2p.streaming.connectDelay option. . Div, update qt gitignore. . Don't create destination with RSA signature. . Don't accept streams from RSA detinations. . CRYPTO_TYPE for DEST GENERATE. . Check I2NP messsage buffer size. . Pass signature and crypto type to newkeys. . Webconsole update. . Check for invalid params. . 2.17.0. . 2.17.0.
2.16.014 Nov 2017 03:25 minor feature: qt ui - status buttons done . qt ui - settings buttons renamed to *Settings. . qt ui - laid out better. . qt ui - now pixel perfect buttons. . qt ui - status main page now works. . qt ui - now all buttons have handlers. . qt ui - status commands are now pushbuttons with no handlers. . Ignored android/libs/. . Some qt gui changes. . . . New reseed added. . Strip out Accept and From headers. . Web interface. . . . don't insert null pointer into DHkeys list. . Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl. . Deformed json result with an extra comma. . Various small qt gui. General settings widget ui revolution for convenience + widget locks: f?. . . . . . . ReloadConfig(); --log. . . . . Add deferred ready checking for destination. . re trigger timer. . Tabify. . Clarify. . Use shared from this. . Revert "use shared from this". . Revert "clarify". . Revert "tabify". . Revert "re trigger timer". . Revert "add deferred ready checking for destination". . Add initial connection timeout for i2ptunnel. . . . . . Make tunnels.conf more readable. . Add http connect to http proxy (untested). . Make it work. . . . . . Add constants. . Merge branch 'openssl' of github.com:Markovskij/i2pd into openssl. . . . . . Little ui. Some work + red errors on malformed input. . . . ui critical. . . ui beautifying. . ui beautifying more. . Tunnels invalid ui data handling. . Tunnels invalid ui data handling 2. . Tunnels invalid ui data handling 3. . . . Add space. . up homebrew makefile. . Update macos i2pd qt build to statically compile in libraries for por?. . . . Typo. . Add option logclftime=true for writing full date and time to logs. . Use setter method for m_TimeFormat, set time format in Daemon.cpp ins?. . . . Cmake: check openssl version. . . . Cmake: a non-fatal warning for openssl =1.1. . . . Try ing leak. . Merge remote-tracking branch 'purple/openssl' into
2.15.018 Aug 2017 17:25 minor feature: Android build. Base version updated to 2.14.0. Add updated Dockerfile. Cosmetic changes for "Host XXX.YY not inside I2P network" message. Bogus date in contrib/rpm/i2pd.spec. Skip expired introducer. Remove msvc and NSIS project files. Remove NSIS template. Reupload mistakenly deleted iss project. More of SAM delogging. qt.pro file. qt forms now work!. qt forms now work even better!. Tmp. qt gui preliminary results. Rework + now restarts after app kill event. Various qt work. Some work on desktop qt gui. Added one missing sigtype to Identity.h. Some work on qt gui. Qtui first draft completed. Merged with upstream. Removed some obsolete files. Now starting the i2pd daemon - uncommented emit start line. Reseeds update. Added including of configs and certificates in mingw batch build. Add future R4SAS reseed cert replacement. Create run dir for i2pd process in systemd unit file. Update makefile to use gcc 7 on archlinux. Reference counter for destinations. Cleanup unused destinations. Options: make useless boolean flags configurable in command line. Typo. Separate transports output for IPv4 and IPv6. Add additional break row. Install windows service with daemon argument. NetDb: If NetDb is empty, throw exception instead of killing NetDb th?. Docker: permissions. Don't create SSU session if endpoint is not specified. Wait from Rela?. Update doxygen config. Overwrite existing address. Tabulation workout on Config.cpp. Add socks.outproxy.enable option. Update i2pd.conf example, update socks proxy tunnel. Implement !=. Remove Accept-Language. I2pd qt gui a bit. ui. Restart button now has a handler. Http proxy and socks - initialized comboboxes correctly. Removed all Accept- headers but Accept-Encoding. Add and remove tunnels without stopping others. Stop I2P tunnel upon deletion. Avoid bind exeptions during reload. Added gostcoin family certificate. Add stuff for address generator tool. 0.9.31. Link to build instructions in readme. Don't do peert
2.14.003 Jun 2017 12:45 minor feature: Upstart forking. Update appveyor tag to 2.13. GOST hash of a Little Endian stream. Add option for client tunnels to build tunnels such that OBEP==IBGW. Delay request. Tabify. Tabify. Tabify. Android build. Datagram. Tabifty. httpproxy.addresshelper config parameter added. Reduced memory usage. Delete used tag before update. Kbps -- KBps in Config.cpp. Kbs -- KBs in i2pd.conf. Restructure build to separate the 3 main components into 3 subdirecto?. Path. Path. Mingw build. Include daemon directory for Win32 mingw. Use correct #include in Win32. Generic path to sdk. Change minimal requirement to android 4.0. Changed android target sdk to 25. NetDb.h - NetDb.hpp for case insensative file systems clashing with ?. Remove uneeded lines in qt build file. Update makefile-s. Update tunnels.conf. Update android platform to 14. Removed stdafx. Update debian stuff. GST added. Sample config: enable SAM by default + update description for notransit. Enable SAM by default. Merge branch 'master' of https://github.com/PurpleI2P/i2pd into openssl. Minor performance improvements. Count and show transit traffic. Show transit bandwidth. Changed target sdk back to 25. Moveable to SD card. Disabled dead reseed. 0.9.30. ability to limit transit bandwidth. Skip comment address line. Build depends on zlib.h (zlib1g-dev). Ignore comments. Cmake compile error with websockets. Try ing. Add AVX option to cmake build system. Handle iexp. Ntcp socks proxy (initial). Whitespace bullshit. More whitespace bullshit. More whitespace bullshit. More whitespace bullshit. More whitespace bullshit. Capture by value not reference. More. More. Add http proxy, change socks4a to socks5. Print if AESNI or AVX enabled. . 2.14.0. 2.14.0.
2.13.007 Apr 2017 19:25 minor feature: Build error for gcc 4.7. Osx upnp support. Move docs to new repo. Update README.md. Moved files from docs/ to contrib/. Paths for moved contrib files. Updated InnoSetup script. Typo. Incorrect traffic counting. Initial support of GOST crypto. GOST R 34.10 signer and verifier. Generate GOST R 34.10 keys pair. Set correct curve from GOST R 34.10 signer and verifier. GOST R 34.11 hash. Disable incorrect check. Typo. Correct GOST engine initialization. Set correct curve parameters for GOST R 34.10. Enable GOST R 34.10 signatures from netid!=2. Build error. Andorid build. Typo. Typo. GOST support for Android openssl 1.1. Check certificate size. Cleanup send buffer. Replaced stringstream by a list of buffers. 0.9.29. #818. Exploratory config. Recreate SSU session again if session key is invalid. Eliminate some BIGNUM allocation overhead. Eliminate some BIGNUM allocation overhead. Eliminate some BIGNUM allocation overhead. GOST R 34.10 curve added. GOST R 34.10 param sets. Generate GOST R 34.10 keys with param set. GOST R 34.10 sign. Correct param set for GOST R 34.10 signing. ZEC added. ZEC added. Correct param set for GOST R 34.10 verification. Eliminate dependancy from GOST engine for GOST R 34.10. A,B,B param sets for GOST R 34.10. I2pd.spec: changed Release format, upgrade Version. Use common context for ElGamal encrypt/decrypt. Terminate incoming connection by timeout. Terminate incoming connection by timeout. Year. re-year. Change establish timeout to 10 seconds. Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl. Moved GOST to separate file. Race condition. Initial support of GOST R 34.10-2012. Support of GOST 34.10-2012 512 bits. Added TC26 param sets for GOST R 34.10-2012. Gost.cpp added. Tc26 paramSetA 512 for GOST 34.1002012. Enable TC26 paramSet A 512 for GOST 34.10-2012. Correct x for tc26 paramSetA 256. GOST 34.11-2012 functions. GOST R 34.11-2012 implementation. Correct padding for GOST 34.11. New ressed. Update windows build sc
2.12.016 Feb 2017 00:45 minor feature: Merge remote-tracking branch 'purple/openssl'. Merge branch 'low-latency-merge'. Unbreak i2lua build. Merge remote-tracking branch 'purple/openssl'. Try ing udp tunnel (probably broken). Unbreak (maybe?). Add logging. Read more than 1 udp packet. Use shared_ptr instead. Use correct ports. Merge remote-tracking branch 'purple/openssl'. Initial outproxy support for http proxy. Merge remote-tracking branch 'purple/openssl'. Tabify. Undo pedantic whitespaces. Undo pedantic whitespace. Outproxy. Merge remote-tracking branch 'purple/openssl'. Merge remote-tracking branch 'purple/openssl'. Merge remote-tracking branch 'purple/openssl'. Merge remote-tracking branch 'purple/openssl'. Merge remote-tracking branch 'purple/openssl'. Merge remote-tracking branch 'purple/openssl'. Use eddsa-sh512-ed25519 by default. More. Merge remote-tracking branch 'purple/openssl'. Add initial WebSOCKS implementation. Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into webs?. Consmetic. Merge remote-tracking branch 'purple/openssl'. Try ing datagram. Request lease set. Merge remote-tracking branch 'origin/udptunnel-'. . . be less picky about next lease set. Merge remote-tracking branch 'origin/udptunnel-'. Typo. Merge remote-tracking branch 'origin/openssl'. Don't crash on os x when no lease set found for udp tunnel. Merge remote-tracking branch 'origin/openssl'. Remove pedantic log entry. Merge branch 'master' of github.com:majestrate/i2pd. Merge branch 'master' into websocks. Merge remote-tracking branch 'purple/openssl' into websocks. Merge remote-tracking branch 'purple/openssl'. Merge remote-tracking branch 'purple/openssl'. Enable multiple acceptors in sam (initial). Termination crash. Sam crash on exit and datagram crash with no outbound tunnel. Merge remote-tracking branch 'purple/openssl'. Use ElGamalEncrypt. SNI support. Removed non-used ceritificates. Removed ssl ceritifcates. New reseed. Merge remote-tracking branch 'purple/openssl'. Open log stream in log thread. . #7
2.11.019 Dec 2016 11:05 minor feature: 2.10.2. 2.10.2. Request destination after frist lookup. Request destination if we are not t. Don't store lookup replies anymore. Clean up incomplete messages. AVX instructions support. Use AVX for DHT. Implement simple bloom filter. Tabify. Tabify. And wave hi to ISPG. Add BloomFilter to QT android. Android build. Use AVX for HMAC. Use vzeroall to complete AVX mode. Send v4 address for peer test. Queue up LeaseSet requests. Temporary exlude mamoth's shit from reseeds. Make sure all incoming data gets sent before closing a socket. Try ing datagram. Request lease set. Merge remote-tracking branch 'origin/openssl' into udptunnel-. . 0.9.28. Make sure all outstading data got sent before closing socket. Rollback. Store remote IdentHash only. Avoid sending RST instead FIN. Static and AVX support for OSX. AVX support for Windows. Cleanup from some overhead. Don't overwrite whole lease. Don't copy address. Add AVX to clobber list. AVX crash for mingw build. Use token for commands. Typo. Use AVX instructions for XOR in AES-CBC if applicable. Use correct encryption key for ElGamal. Don't crash on os x when no lease set found for udp tunnel. Remove pedantic log entry. Don't streams after 1 hour. AVX disabled for debuild by patch. Session termination crash. Session termination crash. Enable multiple acceptors in sam (initial). Termination crash. Sam crash on exit and datagram crash with no outbound tunnel. Don't crash. 2.11.0. Added info, modifyed timestamp. Update ChangeLog.
2.10.205 Dec 2016 23:45 minor feature: Correct DH keys number to precalculate. Limit number of DH precalculations at the time. Verify LeaseSet's ident hash. Extract database store key once. Control i2pd and link to configuration page. Update usage.md. Support openssl 1.1 for DH. Store and concatenate all out-of-sequence fragments. Branch detect. VS build. Rollback. Correct PeerTest. Cleanup unclaimed out-of-sequence fragments. Openssl 1.1 for ECDSA. Add dir-locals for emacs users with code standards set. Formatting. Remove tab width setting in dir-locals. OpenSSL 1.1 for EVP_PKEY. Excluded deprecated reseed. Rollback due the race condition. Race condition. RTD: Use 4 spaces, not tabs in docs. Link to configuration. Openssl 1.1 crash. Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl. Update changelog, added leaseset list to client/server tunnel pages. re-run PeerTest. Update usage.md. Add hacking.md for notes on internal structure. Add reseed from floodfill option. Add reseed from floodfill option. Check for outdated routers in reseed. Added ASCII art. Build error. Recommit ASCII art. Increase reseed expiration time to 81 hours. Cleanup netdb after failed reseed. Merge remote-tracking branch 'purple/openssl'. Use DSA for http and socks proxy by defualt. Add latency requirement option. When selecting tunnels if we can't find a low latency tunnel fall bac?. Select tunnels correctly. Make it compile. Use correct latency computation. Make it compile. Make it compile for real. Fall back on regular tunnel algorithm. Don't blow up. Don't insert same floodfill twice. Handle all loopback messages. Show latency of tunnels in web ui. Merge remote-tracking branch 'purple/openssl' into low-latency-merge. Startup crash. Publish 0-hops leaseset. Memory leak. Clean up non received DeliveryStatus messages. Correct tigger for 0-hops LeaseSet update. Addresshelper message changed to "Proxy info". Queue up multiple LeaseSet requests. Show I2CP local destinations. Linker error. Write to log thr
2.10.109 Nov 2016 15:25 minor feature: Sequential LeaseSet request. I2LUA define. Portable windows data directory. Added spec and service files. Centos 7 notes. Move rpm-related files to contrib folder. Paths. Build with LibreSSL. Correct stream termination. Build with OpenBSD. Merge branch 'openssl' into openbsd-build. Send own LeasetSet through a stalled stream. Update cmake for i2lua. Random remote lease selection for LeaseSet update. Typo. Correct netid handling. Resubmit non-confirmed LeaseSet. Don't return expired LeaseSet. Reorganize docs in build-notes*.md. Build docs : markdown cleanup reformatting. Update changelog. Destination.cpp : drop use of i2p::util::lexical_cast(), make more ?. Util.h : drop i2p::util::lexical_cast(), not used anymore. Fgrep can't be used with regex. Inalidate shared routing path. Android build. Check if a lease has been excluded from LeaseSet. Don't create same incoming stream twice. Handle stream ternimation properly. Add option to only connect to certain routers. Dont't set to firewalled, ssu will try introducers. Add libdl (-ldl) flag. openssl errors when building statically. Update nat option: if nat=false, skip reachability testing. Uppercase first letters in config help. Merge branch 'openssl' into my_. Correct RTO reset. Gracefull - graceful. Corrupted buffer duing IRC handshake. Get home directory from EXTERNAL_STORAGE for andorid. Print tunnel peers in direct order. Show HTTP proxy as client tunnel. Correct separator for android. Add web socket ui. Conflicts. Update build files and allow compile without websocket. Stop websockets. Add more websocket events. Properly send expiration notice for websockets. Merge. Merge webui code. Android build. set netid before context::Init. Eliminate some overhead. Correct NTP request. Eliminate overhead. 10 seconds max timeout for NTP. Event.h/.cpp added. Don't override Host if not specified explicitly. Reduce explratory tunnels quatity to 3. Lenght and number of tunnels for HTTP Proxy. Layout
2.10.017 Oct 2016 12:25 minor feature: Merge tag 'tags/2.9.0'. Update i2pd.default. Update ChangeLog. Update i2pd.init. Update ChangeLog. Update i2pd.install. Update i2pd.upstart. Update logrotate. Moved subscriptions.txt. Moved subscriptions.txt. Moved tunnels.conf. Moved tunnels.conf. Update changelog. Update i2pd.conf. R4sas_at_mail.i2p.crt added. Reseed-ru.lngserv.ru added. Update changelog. Update changelog. Update changelog. Add 'O' to extra bandwidth. Add 'O' to extra bandwidth for flooadfill. Check string buffer size. Moved HTTP to libi2pd. Race condition. Try ing #612. Try ing #612. Merge branch 'upstream-master'. Common termination timer for all NTCP sessions. Merge remote-tracking branch 'purple/master'. Find miniupnpc library as well as header. Makefile.linux : use linker flags instead full paths to obj files (#?. HTTPServer : show termination time in main page (). Udp tunnels. . . Retrgiger expiration. Logging and ip checks. Set last activity. . . . Logging. . . . Update. Try. Changes. Changes. Init addressbook first. . . os x. Osx. Osx. Osx. Osx. Osx. Osx. Osx. Osx. Osx. Osx. Osx. . Post work to io service. . . . More changes. . . Logging update. Common termination timer for all SSU sessions. Merge remote-tracking branch 'purple/openssl'. Stop termination timer on shutdown. extract correct CN. Don't throw exception if connection failed. HTTPServer : tag. HTTPServer : keep response data for async_write(). Try unbreaking static build. Try adding garlic and session tags to datagram destination. Schedule cleanup again and add logging. Try manual expiration of tags. Typo. Broken build. Make sure m_RTO 0 in Streaming.cpp so it doesn't hang. Datagram. Make sure m_RTO 0 in Streaming.cpp so it doesn't hang. Merge remote-tracking branch 'purple/openssl'. Add hooks for custom peer selection. Add hooks for visiting netdb. Add NetDb::WaitForReady. Don't use std::promise *. Server tunnel on linux binds on 127.x.x.x. . Move ready to run. Check before bind to 127.x.x.x. Add ClientDest
2.9.014 Aug 2016 19:45 minor feature: Change default addressbook for meshnet mode. When routers 5 and in meshnet mode do not select random peers. Try ing duplicate Routers In tunnel path. Use smaller mtu for meshnet mode. Tweak ssu mtu again for meshnet. Use correct netid when using separate test network. . Revert daemon.cpp change. Add logging. Try shooting in the dark for workarround. Try shooting in the dark for workarround. Base.cpp : extract gzip classes to separate file. Base.h : extract Tag template class to separate header. Tests/test-base-64.cpp. Tag.h and Gzip.h/.cpp added. Default to USE_MESHNET=yes. Send garlic cloves directly if garlic was received derectly. Merge remote-tracking branch 'purple/openssl' into meshnet. HTTP.cpp : rename method. Config.cpp : drop compat parser. Tag.h : add (c) header. Stop using auto. Merge branch 'restricted_routes' into meshnet. Merge remote-tracking branch 'purple/openssl' into meshnet. Revert. Try banning non responsive routers. Use different constants for now in meshnet mode. Add more logging. Streaming.cpp : tune logs. Add more logging. Add meshnet option to cmake build files. Update logging. Add bind to network interface option. Support zero-hops tunnels for destinations. Try ing segfault. Change order of initialization. Merge branch 'upstream-openssl' into meshnet. Pedantic style and logging changes. Undo pedantic change. Undo change. Don't print out raw ident. . Try ing. Ugh. Ugh. Fug. Use inet_ntop properly. Try ing LS. Add more specific logging. More logging. Zero-hops tunnels. Add RouterInfo hash to web ui. Merge branch 'upstream-openssl'. Add RouterInfo hash to web ui. Merge branch 'upstream-openssl'. Add RouterInfo hash to web ui. '@' can exist in url path. Merge remote-tracking branch 'purple/openssl'. Merge branch 'master' into meshnet. Logging tweaks. Add floodfill to exclude. More pedantic logging changes. Make it compile. Don't flood to itself. Merge remote-tracking branch 'purple/openssl' into meshnet. if LS is older, assume u
2.8.021 Jun 2016 10:05 minor feature: Update manpage: add --logfile description. Time in webconsole. ClientDestination/LeaseSetDestination split. Moved streaming and datagram destination from LeaseSetDestination to ?. HTTP.h : add base class HTTPMsg. HTTP. cpp,h : add HTTPMsg:: add,del _header() helpers. HTTP.cpp : add internal function gen_rfc1123_date(). HTTP. cpp,h add 'body' member ot HTTPRes change HTTPRes::to_st?. Update tests. HTTPServer.cpp : update response building. check result of readline. Provide reply tunnel expcilitly for LeaseSet. LocalLeaseSet added. Use LocalLeaseSet for own LeaseSets. Rmoved deprecated constructor. Removed deprecated constructor. Use shared ClientDestination. Crash. Correct LeaseSet message size. HTTP. cpp,h : move length() method to base class. HTTP.cpp : parse_header_line. HTTP.h : export MergeChunkedResponse(). HTTP. cpp,h : add add_header() variant with std::string. I2PControl.cpp : I2PControl.cpp : SendResponse() third arg now std::string . I2PControl. cpp,h : add BuildErrorResponse(). I2PControl.cpp : I2PControl.cpp : Mistype in log message. Tunnel.cpp : tune log messages. HTTPProxy. cpp,h : move sort headers. HTTPProxy.cpp : HTTPRequestFailed() now responds with error message. Removed GetPrivateKeys from LocalDestination. Moved transient encryption keys to LeaseSetDestination. HTTP error message cleanup. Use m_Response field for HTTP proxy response. HTTPProxy. cpp,h : rename classes, drop typedef. HTTPProxy.cpp : migrate HTTPRequestFailed(), RedirectToJumpService(?. HTTPProxy.cpp : extract IsI2PAddress() from class and generalize. HTTPProxy.cpp : kill ExtractRequest(), drop boost::regex. Drop boost_regex from build deps. HTTPProxy.cpp : unwrap AsyncSockRead(). HTTPProxy.cpp : HandleJumpServices() - ExtractAddressHelper(). HTTPProxy.cpp : rename variable. HTTPProxy.cpp : unwrap HandleStreamRequestComplete(). HTTPProxy.cpp : direct use of parsed url parts in CreateHTTPRequest(). HTTPProxy: I2CPDestination added. Send
2.7.019 May 2016 07:25 minor feature: Merge remote-tracking branch 'purple/openssl'. Merge tag 'tags/2.6.0'. Add locking to SAM when adding/removing sockets. Check if hosts is incomplete. Race condition at startup. Shard_ptr for SAMSession. Show streams from all streaming destinations. Use commented i2pd.conf as default. Update manpage. Update year in copyrights. Docs/configuration.md. Set bw limits thru i2pcontrol (experimental). RouterInfo::SaveToFile() now returns bool. Recreate router.info if missing or malformed. Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl. Short exponent for non-x64. Use 226 bits private keys for non-x64. Use 226 bits private keys for non-x64. Webconsole update. Race condition. Precalculate g x mod p table. g x mod p using precalculated table. Use precalculated table for ElGamal encryption. Use precalculated table for DH. Removed downloads. Added Docimentation. Changed tray icon back to ictoopie. Clean montgomery context. Typo. Use std::to_string() instead boost's function. HTTPServer : fold namespace to two constants. HandleDestinationRequestTimeout() : readable code. HTTPConnection::reply : to_buffers() - to_string(). HTTPConnection::SendReply() : cleaner code. HTTPConnection::SendError(). Rollback some changes. Optional elgamal precomputation for x64. Precomputation.elgamal. Delete pre-calculated tablle upon termination. Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl. Added some limits options. Limits options. Limits options. Configurable transit tunnels limit. Limits.transittunnels. Allow same port at different interfaces. Family: volatile.crt. Added SetFamilyString(); GetFamilyString() and shows family in webiface. Wrong file version. Removed 1 blank line. HTTPConnection::reply : to_buffers() - to_string(). HTTPServer. cpp,h : move #include to one place. HTTPServer. cpp,h : extract itoopie Image,Favicon from HTTPConnect?. Rename namespace for http. New http req/res/url structs. Add HTTP. cpp,h t
2.6.007 Apr 2016 03:45 minor feature: Reduce windows binary size. Workaround c++11 dynamic array for MSVC. Create missing directories on the way. Avoid desymbol files (PDB) collision with MSVC. up! invoke win32app functions from main. Catch up for miniupnpc API 15. _WIN32_WINNT drove nuts 64 bit MSVC builds. Make a deep copy of our addresses for UPnP. Make mingw via cmake happy with _WIN32 in FS.CPP. Caffeine insomnia for win32. AppVeyor msys attempt. Windows build. Addressbook: module name. Sane TTL for UPnP API =14 and remove old miniupnpc support. Jump services. Update HTTPServer.cpp. Try subscriptions right after initial download. Race condition at startup. Supoort win32 console application. Win32: hide to tray, webconsole menu item. Typo. Persist etag for addressbook subscription. Ask to minimize on Win32app. VS2013 snprintf compatibility. Persist etag. Read persistent ETags. Cross compiling notes for Win32 target. Local addresses. Strip connection http header. Extra space. List 'enabled' options. Don't send own RouterInfo twice. Create addressbook before etags. Mention true/false values for bool params. Added example configuration file. New.ico by MilkHater. "Anke" by MilkHater, the I2Pd mascot. "Anke" by MilkHater, the I2Pd mascot. Mascot bitmap added to resources. Build. Anke.ico. Anke.ico. Show mascot image. Updated reseeds list. Use shared_ptr for Address. UPnP build. Race condition. Don't insert same address twice. Gcc 4.8. Hold previous lookup response. Height and width of the main window. Don't connect to ipv6 address if not supported. 0.9.25. Mistype. UPnP.h : comments. Show version in the 'About' window. Check for chunk size. Address resolver. Merge remote-tracking branch 'purple/openssl'. Add no ipv4 option in config. Merge branch 'master' of https://github.com/PurpleI2P/i2pd. Select appropritae address. Select appropritae address. B64 textarea in the webconsole. Update family.md. Check if i2p address to call jump service. Add syslog logging option. Merge
2.5.113 Mar 2016 18:05 minor feature: Garbage in console for windows. Don't acquire DH keys pair until connection is established. Initial commit of Win32App. Tray icon added. Tray icon added. Invoke daemon. Compile with resources. Set correct icons. Daemon::run. 16x16 icon added. Use ictoopie_16 in tray. Move mingw-specific rules to Makefile.mingw. Windows build. Invoke win32app functions from main. With missed data directory. Oveeride --log for windows. 2.5.1.
2.5.005 Mar 2016 03:16 minor feature: Handle USE_AESNI for mingw. AES-NI. Check for USE_AESNI=1. Update build_notes_windows.md. Don't persist proxy keys by defualt. Crash. Always place local include directories before all others. Include system directories as SYSTEM. Do not try to use miniupnp if upnp support is disabled. Do not force build type. Compatibility with gcc 4.6. Use shared_ptr for log's stream. #355. reopen log file by SIGHUP. add bounds check to su3 fileNameLength. Add base64 buffer encoding bounds checking. Forgot to commit Base.cpp changes. Bounds check on Identity::FromBuffer. Merge remote-tracking branch 'purple/openssl' into openssl. Merge branch 'openssl' into _. Fill padding with random in NTCP phase3. Added instructions for a 64-bit OS. Use const size_t instead of size_t. Use const size_t instead of size_t. Use more efficient XOR over ChipherBlocks for win32. Allow resolving of.b32.i2p addresses in SAM name lookup. Hanging connection. . Cleanup incoming and outgoing tags together. Doesn't store leases in netdb. Correct required base64 buffer size. Queue up out of sequence packets. Queue up out of sequence packets. Queue up out of sequence packets. Some cleanup. Moved Config.cpp to libi2pd. Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl. Shared_ptr for Lease. Invalidate excluded leases. Crash. Drop expired leasesand renew leaseset. I2p::config::IsDefault. Use IsDefault() to check explicitly set values. Segfault when offline. Add --datadir option (not actually works yet). Update debian/i2pd. init,upstart : logging options. Explicit log message when bandwidth set to 'low'. Compilation with gcc 4.7/4.8. Mistype. Set supported transports flag after actual address insertion. Shared path between streams. Reset floodfill. Make target 'strip'. Addressbook: don't save to disk if address map is empty. Addressbook: load addresses at start, not on first request. Tune logging. Flags on std::ifstream. I2PControl: send valid error resp
2.4.004 Feb 2016 15:05 minor feature: Added Sphinx documentation files. Tuning docs for Sphinx. Favicon added. DaemonLinux : restore old behaviour: always write pidfile by defaul?. Addressbook : logging. Addressbook : readable http-req assembly. Purple links, coloured tunnels. More parameters. Show I2P tunnels at web console. Integration with travis-ci. Travis badge branch. Update README.md. Update README.md. Update README.md. Tunnel parameters. Handle I2CP keys correctly. New webconsole style by sha-db. Update util.cpp. Reordered unix targeted documentation to be more user-friendly. Added instructions to build on Fedora/Centos. Common ReadI2CPOptions. Separate keys and destination creation. Race condition. Wordwrapping. Specify and check netId. Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl. Show streams as table. Daemon.h: replace "#pragma once" with "#define". HTTPServer.cpp: add space after "Queue size:". Change message expiration timeout to 8 secs (RTT). Support multiple server tunnels with same destination and different p?. Tune logs. Drop mapMultiArgs : it's not used anywhere. Clean outdated declaration. Unwrap i2p::util::config:: calls in ClientContext.cpp. Unwrap i2p::util::config:: calls in Daemon.cpp. Move ReadConfigFile() : i2p::filesystem - i2p::config don't expo?. Set clove expiration time interval to 8 seconds. Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl. Check I2NP messages fro expiration. Daemon.h : use boolean variables for flags. DaemonWin32 : separate --service (boolean) from --svcctl (string) o?. Pass X-I2P_DestB32 and X-I2P-DestB64. Add clock skew to expiration. Tune log messages. New cmdline config impl. Update buildsystems to include Config.cpp. Migrate to new settings. Drop i2p::util::config namespace : not used anymore. Update docs/configuration.md. Docs/config_opts_after_2.3.0.md. Update debian/. Update Makefile.mingw. New default boost' suf; new paths. Add "mkdir obj/Win32" in Windows
2.3.013 Jan 2016 05:45 minor feature: Sane log messages: I2NPProtocol.cpp. Sane log messages: NetDb.cpp. Sane log messages: AddressBook.cpp. Sane log messages: SSUSession.cpp. Sane log messages: NTCPSession.cpp. Sane log messages: Tunnel.cpp. Sane log messages: BOB.cpp. Sane log messages: UPnP.cpp. Sane log messages: SAM.cpp. Sane log messages: Garlic.cpp. Sane log messages: TunnelPool.cpp. Sane log messages: util.cpp. Sane log messages: I2PTunnel.cpp. Sane log messages: Daemon.cpp. Sane log messages: DaemonLinux.cpp. Sane log messages: DaemonWin32.cpp. Sane log messages: ClientContext.cpp. Sane log messages: Transports.cpp. Sane log messages: Destination.cpp. Sane log messages: Streaming.cpp. Sane log messages: api.cpp. Sane log messages: SSU.cpp. Sane log messages: RouterContext.cpp. Sane log messages: HTTPServer.cpp. Sane log messages: SSUData.cpp. Sane log messages: RouterInfo.cpp. Sane log messages: Identity.cpp. Sane log messages: LeaseSet.cpp. Sane log messages: Log.cpp. Sane log messages: Reseed.cpp. Sane log messages: TransitTunnel.cpp. Log.h: drop unused template. Bump version in debian/changelog. Static link against libgcc, libstdc++ and libwinpthread. Merged branch 'sane-log-messages'. Missing initializer for member ?i2p::transport::Peer::delayedMessages?. Log max packet size. Send correct RouterInfo statistics. Log message. Drop i2p::util::config::GetCharArg. Util.cpp : reorder defines. Util.cpp : reorder defines. Implement --loglevel option. Windows build. FreeBSD build. Windows build. Windows build. Pass ident hash by values to RequestComplete. Race condition of openssl calls. Check for buffer overflow during flood. Use TUNNEL_DATA_ENCRYPTED_SIZE for tunnel encryption. Windows build. Count checksum and padding for buffer size. Reserve extra 16 bytes for padding. Publish stats for floodfill. Extra bandwidth caps. Clear extra bandwidth bit. New bandwidth values. Specify signature type for I2P tunnels. Ignore LeaseSets coming from transit tunnels. Chec
2.2.024 Dec 2015 02:45 minor feature: Mingw build. Don't store B explicitly. Make tunnels.cfg configurable. Backport openbsd support. Backport build for clang. Check for zero-length. Backport GetMTU. Mingw build error. Use path.string () instead path.c_str (). Mingw build error. Reduce number of transient BIGNUM allocations. More separation between api and executable builds. Backport of 'make http server http/1.1 compliant'. Moved status_string to reply structure. Update README.md. Update README.md. Use shared_ptr for sockets. Access to eepsites from webconsole. Race condition. Create certificate for https. I2PControl through SSL. Few SSL errors. Read complete request. Read Content-Length from http header. Always use shared_ptr for I2NPMessage. Eliminate session creation collision. Replace GetSession to CreateSession. Async handshake. Format ' lu' expects argument of type 'long unsigned int', but argume?. Dockerfile : drop crypto++, add openssl. BUILD_NOTES: url, md-format, crypto++ reference. Delete build/cmake_modules/FindCryptoPP.cmake (now using openssl). Debian/ directory. Use left sift instead multipilication by 2. Moved BN_CTX creation to curve's Verify and Sign. Copy constructor for Ed22519. Ed25519 per thread. Split between CreateSession and CreateSessionThrough Introducer. Update README.md. Update README.md. Makefile. : build with gcc 4.7.2. Take some enchancements for debian/ dir from kytv. Building of empty -dbg package. Depends: for i2pd-dbg. Set defaults to *FLAGS instead redefining them. Use stricter linker options for.deb packages. Reduce number of precalculated points. Temporary disable Ed25519 per thread. Replaced radix-16 to radix-256. Eliminate some unnecessary calculations. Create SSU session in SSU thread. More introducers. Configurable addresses from master. Pass shared_ptr to SendRelayIntro. Connect through introducer in v4 thread. Separate SSU sessions lists for V4 and V6. Move 'Requirements' sections to BUILD_NOTES.md. BUILD_NOTES.md : update. BUILD_NOTES.md : add
2.1.022 Nov 2015 09:05 minor feature: cumulative update from bitbucket. Update README.md. Update README.md. removed autotools build. use EdDSA as default for RouterInfo. EdDSA speed improvement. calculations in projective coordinates. build for gcc 4.6 and boost 1.46. h l for verification. (h*a) l for signing. Makefile.mingw added. build error. Minor omissions. Reorder ssl/boost includes to avoid winsock complains. Proper miniupnpc CMake detection. Use OpenSSL zlib with CMake instead of Crypto++. Use OpenSSL zlib in precompiled headers. clobbed z and t for Double. eliminate some transient BIGNUM allocations. Bring CMake stuff in agreement with #294 discussion. complation error for boost 1.49 and gcc 4.7 and higher. skip extended options in SSU header. 0.9.23/2.1.0 version update.
0.10.008 Jul 2015 03:05 minor feature: 1.31 MB i2pd-0.10.0_amd64.tar.xz. . 543 Bytes. i2pd-0.10.0_amd64.tar.xz.sig. . 1.43 MB. i2pd-0.10.0_i386.tar.xz. . 543 Bytes. i2pd-0.10.0_i386.tar.xz.sig. . 1.01 MB. i2pd-0.10.0_RaPi.tar.xz. . 543 Bytes. i2pd-0.10.0_RaPi.tar.xz.sig. . 2.28 MB. setup_i2pd_v0.10.0.exe. . 543 Bytes. setup_i2pd_v0.10.0.exe.sig. . Source code (zip). . Source code (tar.gz).
0.9.001 Apr 2015 03:17 minor feature: Automatic firewall/NAT detection. Stats report for floodfiil. Local ports support for destinations. White list and port for server tunnels.
0.8.023 Feb 2015 14:45 minor feature: Reseed through HTTPS. Multiple client and server I2P tunnels. Fixed memory leak in floodfill mode.
0.6.007 Jan 2015 09:45 minor feature: Addressbook subscriptions SOCKS5 proxy UPnP 2048 bits ElGamal private keys
0.5.018 Dec 2014 05:05 minor feature: SU3 reseed BOB protocol RSA signatures support
0.4.026 Nov 2014 03:16 minor feature: ECDSA_SHA384_P384 and ECDSA_SHA512_P521 signature types Support routers with EcDSA signatures, that might appear in netdb starting 0.9.17
0.1.027 Oct 2014 19:05 minor feature: This initial release supports router functionality, functions as HTTP proxy, can provide I2P tunnels (client and server), and SAM with streaming.