X-Git-Url: http://git.meshlink.io/?p=meshlink;a=blobdiff_plain;f=README;h=390468b0e09eea4d10769f0feebd6712e3d30d4e;hp=ec7653baa9d006f648dc6e94434eba61b7bdea07;hb=963c5055505f2fc117cd5efa06eaa02c9b2bf85d;hpb=268c8545aaf83b7433f43402f5c77e39e20006ef diff --git a/README b/README index ec7653ba..390468b0 100644 --- a/README +++ b/README @@ -1,109 +1,45 @@ -This is the README file for tinc version 1.1pre2. Installation -instructions may be found in the INSTALL file. +This is the README file for the MeshLink library. Installation instructions may +be found in the INSTALL file. -tinc is Copyright (C) 1998-2012 by: - -Ivo Timmermans, -Guus Sliepen , -and others. - -For a complete list of authors see the AUTHORS file. +MeshLink is Copyright (C) 2014-2018 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING for more details. +To obtain a license to use this library in commercial software, please contact +sales@meshlink.io. -This is a pre-release ---------------------- - -Please note that this is NOT a stable release. Until version 1.1.0 is released, -please use one of the 1.0.x versions if you need a stable version of tinc. - -Although tinc 1.1 will be protocol compatible with tinc 1.0.x, the -functionality of the tincctl program may still change, and the control socket -protocol is not fixed yet. - - -Security statement ------------------- - -This version uses an experimental and unfinished cryptographic protocol. Use -it at your own risk. - - -Compatibility -------------- -Version 1.1pre2 is compatible with 1.0pre8, 1.0 and later, but not with older -versions of tinc. +This is not a finished version +------------------------------ -When the ExperimentalProtocol option is used, tinc is still compatible with -1.0.X and 1.1pre2 itself, but not with any other 1.1preX version. +Please do not use this library yet. Requirements ------------ -OpenSSL (http://www.openssl.org/) version 1.0.0 or later. +In order to compile MeshLink, you will need a GNU C compiler environment. -The zlib library is used for optional compression. You can find it at -http://www.gzip.org/zlib/. - -The lzo library is also used for optional compression. You can find it at -http://www.oberhumer.com/opensource/lzo/. - -Since 1.1, the libevent library is used for the main event loop. You can find -it at http://monkey.org/~provos/libevent/. - -In order to compile tinc, you will need a GNU C compiler environment. Please -ensure you have the latest stable versions of all the required libraries. +The following libraries are used by default, but can be disabled if necessary: +- Catta (https://github.com/meshlink/catta) Features -------- -This version of tinc supports multiple virtual networks at once. To -use this feature, you may supply a netname via the -n or --net -options. The standard locations for the config files will then be -/etc/tinc//. - -tincd regenerates its encryption key pairs. It does this on the first -activity after the keys have expired. This period is adjustable in the -configuration file, and the default time is 3600 seconds (one hour). - -This version supports multiple subnets at once. They are also sorted -on subnet mask size. This means that it is possible to have -overlapping subnets on the VPN, as long as their subnet mask sizes -differ. - -Since pre5, tinc can operate in several routing modes. The default mode, -"router", works exactly like the older version, and uses Subnet lines to -determine the destination of packets. The other two modes, "switch" and "hub", -allow the tinc daemons to work together like a single network switch or hub. -This is useful for bridging networks. The latter modes only work properly on -Linux, FreeBSD and Windows. - -The algorithms used for encryption and generating message authentication codes -can now be changed in the configuration files. All cipher and digest algorithms -supported by OpenSSL can be used. Useful ciphers are "blowfish" (default), -"bf-ofb", "des", "des3", etcetera. Useful digests are "sha1" (default), "md5", -etcetera. - -Support for routing IPv6 packets has been added. Just add Subnet lines with -IPv6 addresses (without using :: abbreviations) and use ifconfig or ip (from -the iproute package) to give the virtual network interface corresponding IPv6 -addresses. tinc does not provide autoconfiguration for IPv6 hosts, if you need -it use radvd or zebra. - -It is also possible to make tunnels to other tinc daemons over IPv6 networks, -if the operating system supports IPv6. tinc will automatically use both IPv6 -and IPv4 when available, but this can be changed by adding the option -"AddressFamily = ipv4" or "AddressFamily = ipv6" to the tinc.conf file. +MeshLink is a library that allows applications to connect to other instances of +itself, and exchange messages in a secure way. MeshLink provides end-to-end +encryption and authentication of messages with perfect forward secrecy. The +MeshLink library starts its own thread which handles all network +communications. The application only needs to register callbacks to get +notified of incoming messages and other important events. -Normally, when started tinc will detach and run in the background. In a native -Windows environment this means tinc will intall itself as a service, which will -restart after reboots. To prevent tinc from detaching or running as a service, -use the -D option. +Other noteworthy features are: +- IPv6 support +- NAT traversal (requires at least one node that is not behind a NAT) +- Ed25519 keys (TBD) +- ChaCha-Poly1305 encryption and message authentication