Commit Graph

6115 Commits

Author SHA1 Message Date
Francis Reynders
bdb50539de Implemented KeePass Integration
More info regarding KeePass: http://keepass.info/

KeePass integration will use KeePassHttp (https://github.com/pfn/keepasshttp/) to facilitate communications between the client and KeePass. KeePassHttp is a plugin for KeePass 2.x and provides a secure means of exposing KeePass entries via HTTP for clients to consume.

The implementation is dependent on the following:
- crypter.h for AES encryption helper functions.
- rpcprotocol.h for handling RPC communications. Could only be used partially however due some static values in the code.
- OpenSSL for base64 encoding. regular util.h libraries were not used for base64 encoding/decoding since they do not use secure allocation.
- JSON Spirit for reading / writing RPC communications

The following changes were made:
- Added CLI options in help
- Added RPC commands: keepass <genkey|init|setpassphrase>
- Added keepass.h and keepass.cpp which hold the integration routines
- Modified rpcwallet.cpp to support RPC commands

The following new options are available for darkcoind and darkcoin-qt:
  -keepass               Use KeePass 2 integration using KeePassHttp plugin (default: 0)
  -keepassport=<port>    Connect to KeePassHttp on port <port> (default: 19455)
  -keepasskey=<key>      KeePassHttp key for AES encrypted communication with KeePass
  -keepassid=<name>      KeePassHttp id for the established association
  -keepassname=<name>    Name to construct url for KeePass entry that stores the wallet passphrase

The following rpc commands are available:
- keepass genkey: generates a base64 encoded 256 bit AES key that can be used for the communication with KeePassHttp. Only necessary for manual configuration. Use init for automatic configuration.
- keepass init: sets up the association between darkcoind and keepass by generating an AES key and sending an association message to KeePassHttp. This will trigger KeePass to ask for an Id for the association. Returns the association and the base64 encoded string for the AES key.
- keepass setpassphrase <passphrase>: updates the passphrase in KeePassHttp to a new value. This should match the passphrase you intend to use for the wallet. Please note that the standard RPC commands walletpassphrasechange and the wallet encrption from the QT GUI already send the updates to KeePassHttp, so this is only necessary for manual manipulation of the password.

Sample initialization flow from darkcoin-qt console (this needs to be done only once to set up the association):
- Have KeePass running with an open database
- Start darkcoin-qt
- Open console
- type: "keepass init" in darkcoin-qt console
- (keepass pops up and asks for an association id, fill that in). Example: mydrkwallet
- response: Association successful. Id: mydrkwalletdarkcoin - Key: AgQkcs6cI7v9tlSYKjG/+s8wJrGALHl3jLosJpPLzUE=
- Edit darkcoin.conf and fill in these values
    keepass=1
    keepasskey=AgQkcs6cI7v9tlSYKjG/+s8wJrGALHl3jLosJpPLzUE=
    keepassid=mydrkwallet
    keepassname=testwallet
- Restart darkcoin-qt

At this point, the association is made. The next action depends on your particular situation:
- current wallet is not yet encrypted. Encrypting the wallet will trigger the integration and stores the password in KeePass (Under the 'KeePassHttp Passwords' group, named after keepassname.
- current wallet is already encrypted: use "keepass setpassphrase <passphrase>" to store the passphrase in KeePass.

At this point, the passphrase is stored in KeePassHttp. When Unlocking the wallet, one can use keepass as the passphrase to trigger retrieval of the password. This works from the RPC commands as well as the GUI.
2015-01-01 20:06:24 +01:00
Darkcoin
9cb9b166a9 Merge pull request #94 from vertoe/devel-0.9
Update release notes for 0.11
2015-01-01 11:18:01 -07:00
Evan Duffield
4eb14d271b Change minversion to 70046 2015-01-01 11:15:24 -07:00
vertoe
9cc07aec1c Hotfix for version.h 2015-01-01 19:03:25 +01:00
vertoe
bb31919f9c Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into devel-0.9 2015-01-01 19:02:51 +01:00
Evan Duffield
f46ec0db80 Change minversion to 70046 2015-01-01 10:46:18 -07:00
Evan Duffield
2ad2b57c12 Fix for gitian windows compiling 2015-01-01 09:47:45 -07:00
Evan Duffield
447ae896c0 Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into v0.11.0.x 2015-01-01 09:12:53 -07:00
Evan Duffield
b87c2fe9dc Fix for gitian windows compiling 2015-01-01 09:12:28 -07:00
vertoe
05b1dde872 Update release notes for darkcoin 0.11 2015-01-01 17:00:03 +01:00
vertoe
6235addf09 Merge downstream branch 'v0.11.0.x' into devel-0.9 2015-01-01 16:59:11 +01:00
vertoe
c1d622110c Add release notes for darkcoin 0.11 2015-01-01 16:39:16 +01:00
Darkcoin
c1269e7850 Merge pull request #92 from vertoe/devel-0.9
Update darkcoin units to tDRK if TestNet().
2015-01-01 07:49:58 -07:00
Darkcoin
a29b991091 Merge pull request #93 from vertoe/devel-0.9-bip0032
Update BIP32 base58 address prefixes to darkcoin uniques.
2015-01-01 07:49:12 -07:00
Evan Duffield
f139b70a28 More gitian updates 2014-12-31 14:06:20 -07:00
Evan Duffield
cbdf23070f update gitian descriptors 2014-12-31 12:03:18 -07:00
Evan Duffield
cf92651fc4 More gitian updates 2014-12-31 09:49:12 -07:00
Evan Duffield
cf7a304dfd Update gitian descriptors 2014-12-31 09:10:49 -07:00
vertoe
024e255a5b Update BIP32 base58 address prefixes to darkcoin uniques. 2014-12-31 13:50:14 +01:00
vertoe
54f54f4a67 Update darkcoin units to tDRK if TestNet(). 2014-12-31 13:27:32 +01:00
Evan Duffield
d219a6c51a randomly sort masternodes before picking next winner 2014-12-30 22:45:45 -07:00
Evan Duffield
bc20787fec Added perfectly balanced masternode payments
- Implemented using a simple round robin algorithm instead of the deterministic round robin approach (was slightly unbalanced)
2014-12-30 22:40:53 -07:00
Evan Duffield
826b18c41f Regtest+Darksend / Dsee update / vecMasternodes
- Made masternodes/darksend compatible with regression testing mode (a local-only blockchain that doesn't require mining). Developers can now test multiple rounds in a few minutes without waiting on mining (much faster).
- Added dsee security verification to v11
- darkSendMasternodes -> vecMasternodes (must clearer)
2014-12-30 19:54:00 -07:00
Evan Duffield
a290bc06f2 Further improvements to the matching engine 2014-12-30 15:42:50 -07:00
Evan Duffield
80144a47ab Disable local addresses 2014-12-30 14:41:28 -07:00
Evan Duffield
75b169e2aa Simplified CWallet::PrepareDarksendDenominate 2014-12-30 14:00:19 -07:00
Evan Duffield
141f833a00 Matching engine improvements
Fixed issues with matching from rounds 0 to 2
2014-12-30 12:42:34 -07:00
Evan Duffield
aa63a99162 Percision matching engine / masternode regtest
- Fixed matching engine issue causing false positive non-denominational matches
- Basic masternode support for regtest (still not working)
2014-12-30 11:14:58 -07:00
Evan Duffield
b20581125d Added Darksend high precision matching engine
Darksend is now capable of taking queue objects (which show who wants to mix what)
and looking at it's own inputs to see if it's at all possible to join their mixing
session. This plus other improvements should make Darksend much faster for mixing
coins.
2014-12-29 17:09:34 -07:00
Evan Duffield
762080140b Various Darksend Improvements
- Denomination label shows n/a after reset now
- Fixed collateral checking bug introduced by updating to Bitcoin v9 codebase
2014-12-29 08:50:40 -07:00
Evan Duffield
139f14a1a4 Enabled Darksend NewBlock checks 2014-12-28 17:33:56 -07:00
Evan Duffield
afcc015cf4 Report errors delivered via dssu to gui 2014-12-28 07:46:39 -07:00
Evan Duffield
34a60fb7de Much improved feedback for Darksend
DoAutoDenomination just wrote to the debug.log and because of that users commonly would have a hard time seeing what was happening. This fixes that by setting a status and displaying that status in the overview.
2014-12-27 18:08:45 -07:00
Evan Duffield
3acb5c6388 added denomination information to overview, reset/try again buttons 2014-12-27 16:45:07 -07:00
Evan Duffield
ff8285060d Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into v0.11.0.x 2014-12-27 08:28:47 -07:00
Evan Duffield
36aa6bd675 fixed message magic, should be DarkCoin 2014-12-27 08:28:23 -07:00
Darkcoin
7418ae7e35 Merge pull request #87 from UdjinM6/110_fix_masternode_conf_strict
make masternode.conf loading more strict
2014-12-27 07:52:34 -07:00
UdjinM6
142ff7a3ab restrict start if masternode.conf has incorrect format / move error message out of debug.log to stderr/qt-dialog 2014-12-27 15:47:08 +03:00
Darkcoin
d9af02833d Merge pull request #86 from vertoe/devel-0.9
Remove all bitcoin references in the UI.
2014-12-26 17:07:15 -07:00
vertoe
ab52409f0e Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into devel-0.9 2014-12-27 00:55:52 +01:00
vertoe
86cc5d35cc Update client name 2014-12-27 00:54:59 +01:00
vertoe
2a4e872364 Change orange to blue 2014-12-27 00:54:25 +01:00
vertoe
d2d798c9b0 Merge branch 'devel-0.9-keys' into devel-0.9 2014-12-27 00:33:22 +01:00
vertoe
bdaa900bbe Update strings in UI. 2014-12-27 00:16:50 +01:00
Darkcoin
dc71c6df25 Merge pull request #85 from vertoe/devel-0.9-keys
Change pubkey addresses for multisig addresses and testnet.
2014-12-26 16:00:14 -07:00
Evan Duffield
13e49d5470 Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into v0.11.0.x 2014-12-26 15:30:20 -07:00
Evan Duffield
c94600a2c8 Added coincontrol darksend rounds colunm from v10 2014-12-26 15:30:00 -07:00
vertoe
fd3de20a88 Change pubkey addresses for multisig addresses and testnet 2014-12-26 23:28:08 +01:00
Darkcoin
cbf7339deb Merge pull request #84 from vertoe/devel-0.9-dns
Add seednode by @coingun (branch v11)
2014-12-26 14:11:41 -07:00
Darkcoin
04ab85a591 Merge pull request #83 from vertoe/devel-0.9
Clean testnet reset to v3. (branch v11)
2014-12-26 14:10:12 -07:00