summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-02-21xxxjustus/secrets-prototype-0Justus Winter
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-16store: Use the asynchronous network interface.Justus Winter
- By using the asynchronous network interface in the housekeeping "thread", we avoid blocking it and thus the caller.
2018-02-16store: Improve error handling.Justus Winter
- Use failure to handle backend errors, then convert prior to transmission over RPC.
2018-02-16net: Add an asynchronous interface.Justus Winter
2018-02-16ffi: Split header up at the module boundaries.Justus Winter
- The header was already unwieldy, and we did not even include accessors for all the data structures we currently have.
2018-02-15ffi: Trim imports.Justus Winter
2018-02-15ffi: Bind the store module.Justus Winter
- This binds the functions of the store module. - Note that the logs and stats are currently not useful because they lack accessors.
2018-02-15store: Fix comments.Justus Winter
2018-02-14ffi: Do not try to compile C example.Justus Winter
2018-02-14ffi: Split into several modules.Justus Winter
- Organize the ffi module the way Sequoia is organized. - Add more examples.
2018-02-14ffi: Bind rest of the KeyID functions.Justus Winter
- Also fix the error handling.
2018-02-14ffi: Bind openpgp::Fingerprint.Justus Winter
2018-02-14openpgp: Make to_hex a top-level utility function.Neal H. Walfield
2018-02-14openpgp: Use failure.Neal H. Walfield
2018-02-13ffi: Do not mangle exported function.Justus Winter
- All ffi functions need the no_mangle attribute.
2018-02-13ffi: Add glue for net::Keyserver::send.Justus Winter
2018-02-13ffi: Introduce type definitions.Justus Winter
- Introduce sq_context_t as alias for struct sq_context *. - Our types are opaque structs for the C world, there is no point in calling it a struct everywhere. Also, since the struct definition is incomplete, one can only ever point to these objects, hence we just make the *_t types pointers.
2018-02-13ffi: Improve error handling.Justus Winter
- Use the new facilities for more functions. - Improve documentation.
2018-02-13ffi: Add example fragment.Justus Winter
2018-02-13ffi: Improve error reporting.Justus Winter
- Add a new type ffi::Context that provides an error slot. - Functions that can return complex errors can stash the error there, while still be convenient to use. - For now, there is only sq_last_strerror that returns a string representation of the error. In the future we should also return a numeric code, and may want to expose the stack of failures.
2018-02-06tool: Improve log display.Justus Winter
- Do not provide slug when listing entries related to a specific binding.
2018-02-06store: Improve log messages.Justus Winter
- Provide meaningful slugs. - Use key ids instead of fingerprints.
2018-02-06store: Parse fingerprints.Justus Winter
2018-02-06store: Add error condition for malformed fingerprints.Justus Winter
2018-02-06openpgp: Implement Display for KeyID.Justus Winter
2018-02-06openpgp: Improve armored! macro.Justus Winter
- Use $crate to refer to the current crate making this macro easier to use. - Simplify examples accordingly.
2018-02-02openpgp: Use shorter filenames so that ecryptfs doesn't complainNeal H. Walfield
2018-01-31Add the code from the guide as examples.Justus Winter
2018-01-31openpgp: Implement fmt::Display for UserID and Fingerprint.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-25core: Refine default home directory.Justus Winter
- Move the call to env::home_dir from Context::configure to Config.build. This lets us handle failures, which should be rare. On systems where it fails (think embedded systems), users have to explicitly provide a path. - Allow ephemeral contexts with explicitly configure home directories. E.g. clients and servers share ephemeral contexts with the same home directory.
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-25core: Make the Context Send + Clone.Justus Winter
- We no longer rely on TempDir to clean up the directory, but we do it in Drop. Since we no longer need the TempDir around, we are now Send. - Implement Clone so that cloned contexts do not delete the temporary home when dropped.
2018-01-24Add an example to the toplevel crate.Justus Winter
- We should replace this with a more comprehensive example covering the other crates too.
2018-01-24openpgp: Add macro to support armored literals.Justus Winter
- This is especially helpful for documentation and experimentation.
2018-01-24openpgp: Make armor::{Reader, Writer} more general.Justus Winter
- With this change, both types can also own the source or sink.
2018-01-24openpgp: Improve documentation.Justus Winter
2018-01-24openpgp: Use std::io::Result in armor module.Justus Winter
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-19core: Improve documentation.Justus Winter
2018-01-19store: Use IPCPolicy::Internal for tests.Justus Winter
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-19core: Add IPCPolicy.Justus Winter
- The IPC policy governs how we spawn background servers. - Add ffi glue.
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-19store: Add test.Justus Winter
- Test storing and retrieving a key.
2018-01-18store: Return tuples from iterators.Justus Winter
- Replace StoreIterItem, BindingIterItem, and KeyIterItem with tuples. - Remove binding counts from the items. If such information is needed, an RPC should be introduced. - Update all callers.
2018-01-18store: Introduce a type for time stamps.Justus Winter
- Improves time handling in the backend. Uses time instead of std::time. - Use UTC.
2018-01-18store: Introduce a type for row ids.Justus Winter