RetroShare/libretroshare/src
csoler fc8dfcf65b Merged branch v0.5-OpenPGP into trunk:
User-level changes:
==================
- libgpgme is not used anymore; it is replaced by a built-in piece of code called OpenPGP-SDK 
  (http://openpgp.nominet.org.uk/cgi-bin/trac.cgi) that was improved to be used by RetroShare
  for handling PGP keys.

- the gnupg keyring is not used anymore. Now, RetroShare has it's own gpg keyring, shared by all instances.
  On linux it's located in ~/.retroshare/pgp/. A lock system prevents multiple locations to read/write keyrings
  simultaneously.

- the trust database from gnupg is not documented, so RetroShare cannot import it. This comes from the fact that
  the GPG standard (RFC4880) asks explicitly not to export trust information. So RetroShare has it's own 
  trust DB shared by locations. This means you need to re-trust people. Sorry for that!

- at start, if no keyring is found, RS will propose to copy the gnupg keyring to use your existing keys. Clicking on 
  "OK" will do the copy, and you should find back all existing locations, except for DSA keys.

- locations for which the suitable keypair is not in the keyring will not be displayed in the login window
- locations for which the suitable keypair is not a RSA/RSA key will not be displayed. RetroShare does not
  support DSA/Elgamal keypairs yet.

- a key import/export exchange function has been added in the certificate creation window (you go there from the login
  window by clicking on "manage keys/locations". This allows to easily create a new location with the same pgp key on
  another computer. To obtain a suitable keypair using gnupg, you need to concatenate the encrypted private key and the 
  public key into an ascii file. This can be done using:
  		gpg -a --export-secret-keys [your ID] > mykey.asc
		gpg -a --export [your ID] >> mykey.asc

- importing a key with subkeys in not yet possible. Please remove subkeys before importing.

- The code has been tested for a reasonnable amount of time, but it's not possible to prevent some new bugs 
  to appear. Please report them asap supplying: call-stacks if possible, and terminal output. In particular,
  openpgp has some assert()'s that should not be triggered unless RetroShare is calling it in an improper way.

Internal changes
================
- a specific component, PGPHandler, takes care of the interface between openpgp-sdk and RetroShare
  openpgp-sdk is c-code, with it's own memory management, which has been kept well separated from 
  RetroShare.

- GPG Ids are now a specific class (not a std::string anymore) for code consistency reasons. As strings are
  still used in many places, this requires a few conversions. In particular, AuthGPG takes strings as
  function params and calls GPGHandler with the proper PGPIdType class. In the future, RetroShare should
  only use PGPIdType. The same will be done for SSL ids.

- signature cleaning is still handled by the Retroshare built-in function, not by openpgp, but we will 
  do this later.

Still to do
===========
- DSA needs subkey handling, since the encryption is performed by a Elgamal subkey. Not sure this will be done.
- GPGIds/SSLIds cleaning (meaning replace strings by appropriate types). Lots of confusion throughout the code in retroshare-gui in particular.
- key removal from keyring. This is a challenge to keep locations synchronised.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5293 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-07-13 21:53:39 +00:00
..
dbase Removed usages of "std::istringstream" and "std::stringstream". 2012-05-03 13:41:03 +00:00
dht Removed std::stringstream. 2012-04-19 22:10:00 +00:00
distrib Changed parameter of RsChannels from "std::string" to "const std::string&". 2012-04-24 12:49:54 +00:00
ft fixed bug preventing files < 1MB to terminate properly 2012-06-21 19:24:14 +00:00
pgp updated self-signatures 2012-07-13 12:20:44 +00:00
plugins Fixed utf8 characters in the transfer tab name of plugins. 2012-02-28 18:25:57 +00:00
pqi Merged branch v0.5-OpenPGP into trunk: 2012-07-13 21:53:39 +00:00
retroshare Merged branch v0.5-OpenPGP into trunk: 2012-07-13 21:53:39 +00:00
rsserver Merged branch v0.5-OpenPGP into trunk: 2012-07-13 21:53:39 +00:00
scripts added for MSYS compile releated changes by default its disabled 2009-09-05 17:23:58 +00:00
serialiser Added Bandwidth Monitoring service to libretroshare to help debug Lag. 2012-06-21 23:23:46 +00:00
services Merged branch v0.5-OpenPGP into trunk: 2012-07-13 21:53:39 +00:00
tcponudp Rework of tcponudp/tcpstream should make UDP connections much more stable. 2012-06-24 02:06:24 +00:00
tests Merged branch v0.5-OpenPGP into trunk: 2012-07-13 21:53:39 +00:00
turtle removed non-mutex-protected reference 2012-05-10 19:04:31 +00:00
unfinished removed p3portservice. Moved to unfinished/ 2011-07-31 12:32:38 +00:00
upnp Removed std::stringstream. 2012-04-19 22:10:00 +00:00
util Merged branch v0.5-OpenPGP into trunk: 2012-07-13 21:53:39 +00:00
zeroconf Removed std::stringstream. 2012-04-19 22:10:00 +00:00
BUGS Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
Doxyfile Activate DHTML in Doxygen Documentation, for Fold in/out Class hierarchy images. 2012-04-14 14:32:00 +00:00
libretroshare.pro Merged branch v0.5-OpenPGP into trunk: 2012-07-13 21:53:39 +00:00
licence Created V0.3.x branch and moved the head into the trunk directory. 2007-11-15 03:18:48 +00:00
mingw32make.bat modified mingw32make.bat do make clean before start to compile 2010-06-08 22:24:00 +00:00
Readme.txt removed old instructions from readme 2010-03-04 11:27:34 +00:00
svn_revision.bat added svn_revision.bat file to update easier the rsversion.h under Windows, and modifyd the mingw32make.bat before compiling write the latest revision to rsversion.h 2010-06-01 22:46:56 +00:00
TODO git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@514 b45a01b8-16f6-495d-af2f-9b41ad6348cc 2008-04-24 07:03:31 +00:00
version_detail.sh fixed version script (Patch form AC) 2012-03-24 12:40:23 +00:00

=======================================================================================
README for RetroShare
=======================================================================================

RetroShare web site . . . . http://retroshare.sourceforge.net/
Documentation . . . . . . . http://retroshare.sourceforge.net/doc.html
Support . . . . . . . . . . http://retroshare.sourceforge.net/support.html
Forums  . . . . . . . . . . http://retroshare.sourceforge.net/forum/
Wiki  . . . . . . . . . . . http://retroshare.sourceforge.net/wiki/
The Developers site . . . . http://retroshare.sourceforge.net/developers.html
Project site  . . . . . . . https://sourceforge.net/projects/retroshare

Contact:  . . . . . . . . . retroshare@lunamutt.com ,defnax@users.sourceforge.net


Compiling + Running RetroShare (V0.5.xxx)
=========================================================================================
REQUIREMENTS
=========================================================================================

Libraries/Tools:
	* C/C++ Compiler. 	  	  (standard on Linux/cygwin)
	* Qt >= 4.5.x 		  	    http://qt.nokia.com/downloads/downloads#lgpl
	* OpenSSL       	      	http://www.openssl.org/source/openssl-0.9.8k.tar.gz
	* MiniUPnP           	  	http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.3.tar.gz
	* gpgme 		              ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-1.1.8.tar.bz2
	* libgpg-error          	ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.7.tar.bz2 

Windows only:
	* Cygwin  	          	  http://www.cygwin.com/cygwin/setup.exe (for openssl compile)
	* MinGW/Msys package  		http://sourceforge.net/projects/mingw/files/	 (for compile gpgme,libgpg-error)
	* Pthreads            		http://sourceware.org/pthreads-win32/ 
	* Zlib                		http://www.zlib.net/
	
	Latest RetroShare sources from (SVN) sourceforge.net:	
    	svn co https://retroshare.svn.sourceforge.net/svnroot/retroshare retroshare 

=========================================================================================

Build Scripts are avaible on SVN for Debian and Ubuntu:
http://retroshare.svn.sourceforge.net/viewvc/retroshare/trunk/build_scripts/

Latest stable OpenSSL is available at:
http://www.openssl.org

Latest miniupnpc-1.3 is avaible at:
http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.3.tar.gz

Latest gpgme Library is avaible at:
ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-1.1.8.tar.bz2

Latest libgpg-error Library is avaible at:
ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.7.tar.bz2

Windows only:
	pthreads: ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-8-0-release.tar.gz 
	zlib:	    http://www.zlib.net/zlib-1.2.3.tar.gz 
=========================================================================================
You can find here instrustions howto compile libretroshare and gui:
http://retroshare.sourceforge.net/wiki/index.php/Developers_Corner
	
=========================================================================================	
You can go on over to our forum when you have trouble with compiling:
http://retroshare.sourceforge.net/forum/
---------------------------------------------