Commit Graph

202 Commits

Author SHA1 Message Date
csoler
a20ec1a885
fixed exchange of PGP keys in binary format and update of PGP signature flags on short invites when the key is received 2019-09-14 15:33:43 +02:00
Gioacchino Mazzurco
329050a9c2
Use safer rstime_t instead of time_t
Avoid problems to serialization on different platforms, without breaking
nested STL containers serialization.

The conversion have been made with sed, and checked with grep, plus
kdiff3 visual ispection, plus rutime tests, so it should be fine.
2018-10-07 13:07:06 +02:00
Gioacchino Mazzurco
eb77f921ec
Implement JSON API HTTP Basic authentication
jsonapi-generator is now capable of generating API for headers outside
  retroshare/ directory
jsonapi-generator do a bit of methods parameter sanity check
JsonApiServer is now integrated in the rsinit hell like other services
Add *::exportGPGKeyPairToString to a bunch of classes in cascade
RsControl is now capable of calling back a function when retroshare is almost
  completely stopped, this is useful when running retroshare toghether with
  externally managed runloop such as QCoreApplication
Expose a bunch of methods through JSON API
retroshare-nogui remove some dead code and fix stopping from the RetroShare API
2018-09-19 21:28:26 +02:00
Gioacchino Mazzurco
130007b578
Merge branch 'master' into jsonapi 2018-07-23 13:44:01 +02:00
Gioacchino Mazzurco
d14a455cf1
jsonapi-generator fix support for void methods
Thanks sehraf for reporting
retroshare://forum?name=fucking%20genius&id=8fd22bd8f99754461e7ba1ca8a727995&msgid=503d75bf7ed7fa7568eeae4db5c8d31a7e124c98
2018-06-26 22:01:17 +02:00
csoler
b3277824eb
license fix in pqi 2018-05-28 22:03:39 +02:00
csoler
1fee544db7
re-licensed gxstrans, gxstunnel, pgp, plugins and half pqi 2018-05-26 14:45:43 +02:00
csoler
d0039241d3 replaced usleep() by rstime::rs_usleep() which accepts times >= 1 sec. Should fix problems on windows 2018-01-27 20:22:31 +01:00
Phenom
4fc7787405 Fix CppCheck in authgpg
/libretroshare/src/pqi/authgpg.cc:124: warning:
Cppcheck(uninitMemberVar): Member variable 'AuthGPG::mStoreKeyTime' is
not initialized in the constructor.
/libretroshare/src/pqi/authgpg.h:58: warning:
Cppcheck(noExplicitConstructor): Class 'AuthGPGOperation' has a
constructor with 1 argument that is not explicit.
2017-11-05 18:20:25 +01:00
Phenom
e4616c09bc Fix clang warning: unused variable 'STORE_KEY_TIMEOUT'
/libretroshare/src/pqi/authgpg.cc:51: warning: unused variable
'STORE_KEY_TIMEOUT' [-Wunused-const-variable]
const time_t STORE_KEY_TIMEOUT = 1 * 60 * 60; //store key is call around
every hour
2017-07-16 21:17:52 +02:00
csoler
a5e0b1c336 fixed -U option in rs-nogui. Removed debug output that would ruin the terminal interface 2017-07-11 23:32:22 +02:00
csoler
5dfbce7e3a fixed Terminal Api Client logic 2017-07-09 21:16:41 +02:00
csoler
0d7df568b4 moved rsconfigitems and rshistoryitems to rsitems/ 2017-04-24 22:47:08 +02:00
Phenom
275c47eff9 Add Title when ask for password. 2016-08-09 01:22:14 +02:00
sehraf
f16ee97093 add static thread names 2016-06-01 16:21:55 +02:00
csoler
9d9b790a3e exposed un-verified PGP signatures on GXS ids in GUI. Added auto-ban of GXS ids signed by a PGP ids that has already signed a large enough set of GXS ids. Still needs some GUI to change the threshold. 2016-04-02 16:14:18 -04:00
csoler
8a41554754 fixed some leaking memory issues in loadList() methods, and also increased consistency by not returning non empty list with deleted items inside 2015-12-30 18:20:09 -05:00
electron128
8fc3917c4b webui:
- added profile import/creation
- fixed leaking file descriptors
- added upload handler for small files
- fixed terminal thread
- removed some unused parameter warnings

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8485 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2015-06-16 12:35:07 +00:00
csoler
f360e9d0ba fixed password handling in deferred signature algorithm (in case of cancel, enter wrong passphrase, etc)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8423 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2015-06-12 21:04:11 +00:00
csoler
74c01423f0 improved login system: do not re-ask for passphrase when user clicks cancel. Removed warning stating that maybe passphrase is wrong
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8415 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2015-06-11 20:31:52 +00:00
electron128
9fc5f01d87 fixed uninitialised memory read in AuthGPG
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8302 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2015-05-27 12:06:12 +00:00
csoler
e9b9dce9f5 created 2 subclasses of RsThread, one for ticking services, and one for single shot jobs. Now all threads use the same base code.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8288 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2015-05-22 20:54:38 +00:00
csoler
c9d5c7b3cb turned some std::list<PeerId> into std::set, as it automatically prevents duplicates
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8138 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2015-04-17 21:36:22 +00:00
csoler
1f4d827140 commented out unused (and buggy) function in authgpg
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8054 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2015-03-19 21:42:31 +00:00
csoler
8cb3ae6d2e added code to generate 3072 and 4096 bit PGP keys at startup (Patch from Serhaf)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7841 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2015-01-12 22:02:43 +00:00
csoler
d547cb6fdb changed post fixed operator++ into prefixed. More efficient on some systems. Patch from Phenom.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7630 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2014-10-24 22:07:26 +00:00
csoler
880efee332 removed ifdef for the different sleep methods. Now only usleep is used, on all systems. Patch from Phenom
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7629 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2014-10-24 21:31:58 +00:00
thunder2
eb22610145 Merged revision 7443 from branches v0.5.5
Added patch from Henry:
- Added translation for password input
- Fixed utf8 issue in ProfileManager

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7444 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2014-07-07 19:37:04 +00:00
csoler
2785094c97 patch from HM to make password question translated
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7424 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2014-07-03 21:03:28 +00:00
drbob
0e6302ac6a Removed configuration type (uint32) as its not needed or really used.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7212 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2014-03-29 05:20:57 +00:00
chrisparker126
0f29d28b1b merge of branch v0.6-idclean 7180
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7187 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2014-03-17 20:56:06 +00:00
csoler
11bc15b9cf generalized the test for valid strings to all methods in AuthGPG
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7050 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2014-01-21 21:01:22 +00:00
csoler
43a32f23e1 fixed potential attack by supplying non hexadecimal strings as certificate common name
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7048 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2014-01-21 18:09:05 +00:00
csoler
630824aa1b Updated the notification system. Main changes are:
- the notification system is now a service, p3Notify, that is a public RsNotify.
- RsNotify does nothing except providing a registration system for new notify clients.
- Clients should derive a notify client from the NotifyClient class and register it to rsNotify
- all registered clients get all notifications, so only derive the needed methods. This should allow 
  plugins to get notifications as well.
- updated the code to call RsServer::notify()->[notification method] from inside libretroshare
- pqiNotify has been removed.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6996 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2014-01-07 22:51:22 +00:00
csoler
9cd2f19d6e fixed passphrase question at start
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6565 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-08-08 14:15:50 +00:00
csoler
aba5033604 - added argstream to handle commandline arguments
- switched tests to use the common value of argstream in libretroshare, rather than the one in tests/common
- reworked command line arguments in rsinit and retroshare-nogui.
- improved passwd hash explanations
- improved command-line help.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6559 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-08-06 17:01:38 +00:00
thunder2
a304ffbab7 Fixed some compiler warnings
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6419 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-06-09 17:54:54 +00:00
csoler
046a3548fe fixed update of flag for peer signature over own key
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6417 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-06-09 13:09:36 +00:00
csoler
dc2521cf71 Merged branch v0.5-GenericTunneling into trunk (Rev. 6284 to 6410).
- adds turtle router as a generic tunneling service
- made ftServer a client of the service. Now turtle file items are handled in ftServer
- added new client: p3MsgService to send/recv pgp-encrypted distant messages
- added new client: p3ChatService to perform private (AES-encrypted) distant chat through tunnels.
- The GUI is disabled for now, since it needs some polishing before being fully usable.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6411 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-06-06 19:58:30 +00:00
csoler
0266329dc8 - Added a drop-down item to allow removing unused keys, in the Network dialog.
- added key removal method in OpenPGP-SDK
- improved FriendSelectionDialog/Widget to enable select all/none keys, and show non friend keys
- added safe key removal method in PGPHandler. Removed keys from other locations will not cause errors.
- added backup system to public keyring, impossibility to remove public parts of owned secret keys, etc.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6382 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-05-29 21:32:02 +00:00
csoler
2986e81f7e added ability to keep track of when keys have been last used for signature check, signing and encryption, so that we can later detect which keys are unused and get rid of them
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6374 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-05-21 22:38:00 +00:00
csoler
6f769b3b54 added message encryption for distant msgs. Still missing decryption.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-GenericTunneling@6351 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-05-03 21:02:44 +00:00
csoler
43b9117293 - added creation of chat link info
- added binary data encryption to PGPHandler



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-GenericTunneling@6301 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-04-10 20:28:13 +00:00
csoler
2dcc35d979 further remove of debug info
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6247 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-03-19 20:21:20 +00:00
csoler
e7536960c3 - fixed inconsistency in parameter naming, causing error_string to be mixed up with gpg id (Not a bug).
- removed unimplemented entry loadCertificateFromFile()


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6075 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2013-01-19 13:43:35 +00:00
csoler
60af8cefe0 corrected stupid mistake in previous commit
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5970 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-12-11 22:16:40 +00:00
csoler
71ed00cd68 made warning about missign fingerprint beingprinted only once
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5969 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-12-11 21:55:47 +00:00
csoler
fbc937c638 limited number of warnings for missuse of AuthGPG::getGPGName()
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5610 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-09-26 19:28:32 +00:00
csoler
60f51c358c - added new certificate format in ConfCertDialog and ConnectFriendWizard, with a button to switch to old format if necessary
- added automatic cleaning of certificates in both formats
- grouped all certificate cleaning/parsing code in rscertificate.cc
- removed unused files cleanupxpgp.h/cc
- added upper/lower case to rsid template.

The new format is to be tested. It is supposed to be much more robust than the previous format,
in particular, allowing any string for location names.


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5410 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2012-08-13 19:37:50 +00:00
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