Commit Graph

445 Commits

Author SHA1 Message Date
zelig 1f2adb05b5 add initial peer level test (failing) 2015-02-06 00:00:35 +01:00
zelig 4afde4e738 add code documentation 2015-02-06 00:00:35 +01:00
zelig 364b783281 changes that fix it all:
- set proper public key serialisation length in pubLen = 64
- reset all sizes and offsets
- rename from DER to S (we are not using DER encoding)
- add remoteInitRandomPubKey as return value to respondToHandshake
- add ImportPublicKey with error return to read both EC golang.elliptic style 65 byte encoding and 64 byte one
- add ExportPublicKey falling back to go-ethereum/crypto.FromECDSAPub() chopping off the first byte
- add Import - Export tests
- all tests pass
2015-02-06 00:00:35 +01:00
zelig 58fc2c679b important fix for peer pubkey. when taken from identity, chop first format byte! 2015-02-06 00:00:35 +01:00
zelig 923504ce3d add equality check for nonce and remote nonce 2015-02-06 00:00:35 +01:00
zelig 2e868566d7 add minor comments to the test 2015-02-06 00:00:35 +01:00
zelig e252c634cb first stab at integrating crypto in our p2p
- abstract the entire handshake logic in cryptoId.Run() taking session-relevant parameters
- changes in peer to accomodate how the encryption layer would be switched on
- modify arguments of handshake components
- fixed test getting the wrong pubkey but it till crashes on DH in newSession()
2015-02-06 00:00:35 +01:00
zelig 1803c65e40 integrate cryptoId into peer and connection lifecycle 2015-02-06 00:00:35 +01:00
zelig 489d956283 completed the test. FAIL now. it crashes at diffie-hellman. ECIES -> secp256k1-go panics 2015-02-06 00:00:35 +01:00
zelig 076c382a74 handshake test to crypto 2015-02-06 00:00:35 +01:00
zelig 3b6385b146 handshake test to crypto 2015-02-06 00:00:34 +01:00
zelig 714b955d6e fix crash
- add session token check and fallback to shared secret in responder call too
- use explicit length for the types of new messages
- fix typo resp[resLen-1] = tokenFlag
2015-02-06 00:00:34 +01:00
zelig b855f671a5 rewrite to comply with latest spec
- correct sizes for the blocks : sec signature 65, ecies sklen 16, keylength 32
- added allocation to Xor (should be optimized later)
- no pubkey reader needed, just do with copy
- restructuring now into INITIATE, RESPOND, COMPLETE -> newSession initialises the encryption/authentication layer
- crypto identity can be part of client identity, some initialisation when server created
2015-02-06 00:00:34 +01:00
zelig 4e52adb84a add crypto auth logic to p2p 2015-02-06 00:00:34 +01:00
zelig d227f6184e fix protocol to accomodate privkey 2015-02-06 00:00:34 +01:00
zelig 88167f39a6 add privkey to clientIdentity + tests 2015-02-06 00:00:34 +01:00
zelig c8a8aa0d43 initial hook for crypto handshake (void, off by default) 2015-02-06 00:00:34 +01:00
obscuren 67f9783e6a Moved `obscuren` secp256k1-go 2015-01-22 00:35:00 +01:00
obscuren 8d1637f567 Moved connection errors to DebugDetail level 2015-01-19 11:21:46 +01:00
Felix Lange 3caa4ad1ba p2p: improve test for peers message
The test now checks that the number of of addresses is correct
and terminates cleanly.
2015-01-06 12:23:38 +01:00
Felix Lange b0ff946b55 p2p: move peerList back into baseProtocol
It had been moved to Peer, probably for debugging.
2015-01-06 12:23:38 +01:00
Felix Lange eb0e7b1b81 eth, p2p: remove EncodeMsg from p2p.MsgWriter
...and make it a top-level function instead.

The original idea behind having EncodeMsg in the interface was that
implementations might be able to encode RLP data to their underlying
writer directly instead of buffering the encoded data. The encoder
will buffer anyway, so that doesn't matter anymore.

Given the recent problems with EncodeMsg (copy-pasted implementation
bug) I'd rather implement once, correctly.
2015-01-06 12:23:38 +01:00
obscuren 6abf8ef78f Merge 2015-01-05 17:10:42 +01:00
obscuren 09841b1c9b Cleaned up some of that util 2015-01-04 14:20:16 +01:00
Felix Lange aa3b91b802 p2p: fix call to Server.removePeer (might help with #209) 2014-12-15 22:36:59 +01:00
obscuren 56dac74f71 made mist in a compilable, workable state using the new refactored packages 2014-12-15 13:00:29 +01:00
Jeffrey Wilcke 15e46b97b4 Merge pull request #204 from fjl/fix-p2p-disconnect
p2p: fix decoding of disconnect reason
2014-12-15 10:22:35 +01:00
Felix Lange da900f9435 p2p: add test for base protocol disconnect 2014-12-15 00:28:20 +01:00
Felix Lange f0f6727778 p2p: use an error type for disconnect requests
Test-tastic.
2014-12-15 00:28:20 +01:00
Felix Lange 65e39bf20e p2p: add MsgPipe for protocol testing 2014-12-15 00:28:20 +01:00
Felix Lange e28c60caf9 p2p: improve and test eofSignal 2014-12-12 11:40:02 +01:00
Felix Lange 9423401d73 p2p: fix decoding of disconnect reason (fixes #200) 2014-12-12 11:40:02 +01:00
obscuren 1fb84d3c5f Fixed tests 2014-12-10 10:57:19 +01:00
Felix Lange cfd7e74c25 p2p: add test for NewPeer 2014-11-26 22:49:40 +01:00
Felix Lange 3a09459c4c p2p: make Disconnect not hang for peers created with NewPeer 2014-11-26 22:08:54 +01:00
Felix Lange 9b85002b70 p2p: remove Msg.Value and MsgLoop 2014-11-25 16:01:39 +01:00
Felix Lange 6049fcd52a p2p: use package rlp for baseProtocol 2014-11-25 12:25:31 +01:00
Felix Lange c1fca72552 p2p: use package rlp 2014-11-24 19:03:20 +01:00
Felix Lange 59b63caf5e p2p: API cleanup and PoC 7 compatibility
Whoa, one more big commit. I didn't manage to untangle the
changes while working towards compatibility.
2014-11-21 21:52:45 +01:00
Felix Lange e4a601c644 p2p: disable failing Server tests for now 2014-11-21 21:52:45 +01:00
Felix Lange 7149191dd9 p2p: fix issues found during review 2014-11-21 21:52:45 +01:00
Felix Lange f38052c499 p2p: rework protocol API 2014-11-21 21:52:45 +01:00
obscuren 429dd2a100 Implemented new miner w/ ui interface for merged mining. Closes #177
* Miner has been rewritten
* Added new miner pane
* Added option for local txs
* Added option to read from MergeMining contract and list them for
  merged mining
2014-11-07 12:18:48 +01:00
Felix Lange f3473312ba all: fix rename breakage 2014-10-31 18:52:58 +01:00
zelig 771fbcc02e initial commit of p2p package 2014-10-23 16:57:54 +01:00