aboutsummaryrefslogtreecommitdiff
path: root/Assistant/Pairing.hs
Commit message (Collapse)AuthorAge
* hlintGravatar Joey Hess2012-09-13
|
* change to newtypeGravatar Joey Hess2012-09-13
|
* pairing works!!Gravatar Joey Hess2012-09-11
| | | | | | | | | Finally. Last bug fixes here: Send PairResp with same UUID in the PairReq. Fix off-by-one in code that filters out our own pairing messages. Also reworked the pairing alerts, which are still slightly buggy.
* keep track of the stage we're at in pairingGravatar Joey Hess2012-09-11
| | | | | This avoids us responding to our own pairing messages, as well as ignoring any out of order messages that might be received somehow.
* work around a bug in YesodGravatar Joey Hess2012-09-11
| | | | The PathPiece instance for Text results in a 404 for T.empty.
* add a UUID to pair requestsGravatar Joey Hess2012-09-11
| | | | | | | Pair requests the the same UUID are part of the same pairing session, which allows us to detect attempts to brute force the shared secret, as that will result in pair requests with the same UUID that are not verified with the right secret.
* handle stale PairAcksGravatar Joey Hess2012-09-11
|
* pairing probably works now (untested)Gravatar Joey Hess2012-09-10
|
* responding to pair requests *almost* worksGravatar Joey Hess2012-09-10
|
* broke out fairly generic ssh stuff to Assistant.Ssh so pairing can use it tooGravatar Joey Hess2012-09-10
| | | | | I'd rather Utility.Ssh, but the SshData type is not sufficiently clean and generic for Utility.
* moved the PairStage inside the Verifiable dataGravatar Joey Hess2012-09-08
|
* add a PairDone messageGravatar Joey Hess2012-09-08
|
* add remote directory to pair requestGravatar Joey Hess2012-09-08
|
* filter out our own pairing requestsGravatar Joey Hess2012-09-08
| | | | | Due to being multicast, requests sent by one thread are received by the listener in another thread.
* fix build without pairing supportGravatar Joey Hess2012-09-08
|
* don't pass .local hostname over the wireGravatar Joey Hess2012-09-08
| | | | | | The remote computer may not support mDNS. Instead, pass over the uname -a hostname, and the IP address, and leave best hostname calculation to the remote side.
* fix fd leakGravatar Joey Hess2012-09-08
| | | | also, tested on ipv6.. doesn't work
* implement pair request broadcastsGravatar Joey Hess2012-09-08
| | | | | | | | | | Pair requests are sent on all network interfaces, and contain the best available hostname to use to contact the host on that interface. Added a pairing in progress page. Revert "reduce some boilerplate using ghc extensions", because it caused overlapping instances for Text.
* pairing passphrase entry form, validation, etcGravatar Joey Hess2012-09-08
| | | | | | Actually 3 forms in one, this handles the initial passphrase entry, and the confirmation, and also varys wording if the same user or a different user is confirming.
* yesod skelton and routes for pairingGravatar Joey Hess2012-09-08
| | | | yet more changes to pairing message data types
* broke out Verifiable to a utility library, and added a quickcheck testGravatar Joey Hess2012-09-07
|
* massively simplified the pairing protocolGravatar Joey Hess2012-09-07
| | | | | | Only 2 messages are needed to do pairing. And added a nice Verifiable data type.
* high-level pairing implementationGravatar Joey Hess2012-09-07
Roughed out a data type that models the whole pairing conversation, and can be serialized to implement it. And a state machine to run that conversation. Not yet hooked up to any transport such as multicast UDP.