summaryrefslogtreecommitdiffstats
path: root/net
AgeCommit message (Collapse)Author
2018-06-06net, store: Bump rand to "0.5" and adapt code accordingly.Justus Winter
2018-06-05net: Bump hyper to "0.12", hyper-tls to "0.2".Justus Winter
2018-03-23openpgp: Move the TPK type definition to openpgp proper.Justus Winter
- We define all types in the root of the openpgp crate, and their implementations in separate modules. This makes using these types much simpler, yet keeps the root from getting too crowded. - Also fix all users accordingly.
2018-03-12Bump dependencies.Justus Winter
2018-03-12net: Drop unused dependencies.Justus Winter
2018-03-04net: Use the url crate for URL manipulation.Justus Winter
- The url crate is more expressive than hyper::Uri and among other things features a 'join' operation. - This fixes malformed URLs being created by the net module where we naively using string operations instead of the proper join operation.
2018-02-21net: New connect function overriding the IPC policy.Justus Winter
- Provide a function Descriptor::connect_with_policy that allows one to override the configured IPC policy. - Can be used to enforce the handling of secret key material in an external server.
2018-02-16net: Add an asynchronous interface.Justus Winter
2018-01-30net: New test.Justus Winter
- Add a simple integration test checking hkp interactions.
2018-01-25net: Serialize the Context and send it to server.Justus Winter
- Provide external servers with a more useful context. This is not so critical for the keystore, but could be interesting for servers providing secret key services.
2018-01-25net: Attach Context to Descriptor.Justus Winter
- Now that the Context is Send + Clone, we can attach a clone to the Descriptor and pass it to the server thread.
2018-01-23Use the failure crate to handle errors.Justus Winter
- The failure crate is a young error handling solution for Rust. It may change the API, but since we pin our dependencies, this should not be a problem for us, albeit a bit inconvenient. - Introduction of the crate is a bit noisy, but not as bad as anticipated, because failure magically handles all errors used in the standard library. - Matching on concrete error values requires downcasting before matching, which seems a bit unidiomatic. This is the cost of using and "chaining" arbitrary error types. This is something that may be improved later on in the library or language. - Having said that, using the error type in the tool was nice. I did not have to use a downcast, so maybe my worries about downcasts are unjustified because it is not such a common use case after all. On the other hand, the tool is quite simple and our only mode of failure is to print the message.
2018-01-19net: Implement the IPC policy.Justus Winter
- Spawn background servers according to the IPC policy. - Add a test to store that demonstrates this.
2018-01-19net: Do not share co-located servers.Justus Winter
- Previously, servers running in threads advertised their cookie in the synchronization file, making it possible to connect to them. However, the lifetime of these servers is bound to the lifetime of the host process. This leads to spurious errors for other processes when servers go down unexpectedly. A scheme to restart servers magically seems not worth the trouble. This means that servers need to rely on some other synchronization mechanism to control access to shared resources.
2018-01-18net: Improve error reporting.Justus Winter
- Error handling when starting either server or process is tricky. This patch at least displays errors when spawning a thread like we do when spawning a process.
2018-01-17store: Periodically update keys from the network.Justus Winter
- Update all keys stored in a store with network policy 'encrypted' and 'insecure' periodically using the SKS keyserver pool. - Slightly amend the net::ipc interface so that servers can spawn futures on the reactor. - As a background service cannot directly communicate failures, this patch adds a logging mechanism. - In sq, display the key update timestamp, and the status of the last update.
2018-01-15ffi,net: Update last users of KeyId to use KeyID.Justus Winter
2018-01-14openpgp: Remove the openpgp/types moduleNeal H. Walfield
- It only contains a KeyId type which is redundant relative to KeyID and it is buggy (e.g., when it converts a Key ID to hex, it drops any leading zeros). - Update users to use KeyID instead.
2018-01-10net: Fix a race condition.Justus Winter
- Previously, the TcpListener 'l' that is handed to the child process via conversion to a raw filedescriptor was closed when being dropped. This lead to a small chance of closing the next TcpListener, resulting in spurious failures when falling back to the in-process server.
2018-01-08net: Add a module for IPC support.Justus Winter
2018-01-04net: Fix sending keys to servers.Justus Winter
- Now that TPKs can be serialized, KeyServer::send can get actual TPKs to send.
2018-01-03core,net: Avoid 'unwrap()' in examples.Justus Winter
- We should not even suggest to use unwrap in our examples.
2017-12-19Make the Result types public.Justus Winter
2017-12-14Add network policy.Justus Winter
- The network policy determines how Sequoia connects to remote servers. - Add a policy field in the context. - Add an error indicating a policy violation. - Honor the policy in the net module. - Add ffi glue.
2017-12-13Split up Sequoia.Justus Winter
- Split up into six crates: buffered-reader, openpgp, sequoia-core, sequoia-ffi, sequoia-net, and sequoia-store. - Adjust imports accordingly.