Age | Commit message (Collapse) | Author |
|
- Introduce three KeyAmalgamation variants:
`PrimaryKeyAmalgamation`, `SubordinateKeyAmalgamation`, and
`ErasedKeyAmalgamation`.
- Unlike a `Key` or a `KeyBundle` with an `UnspecifiedRole`, an
`ErasedKeyAmalgamation` remembers its role. This means that an
`ErasedKeyAmalgamation` can implement the correct semantics even
though the role marker has been erased (hence the name).
- Have `Cert::keys` return `ErasedKeyAmalgamation`s. Recall:
`Cert::keys` can't return a more specific type, because it returns
an iterator that can contain both primary and subordinate keys.
- We use a concrete type instead of a trait object so that when
the user converts a `KeyAmalgamation` to a
`ValidKeyAmalgamation` (via `with_policy`), the
`ValidKeyAmalgamation` retains the type information about the
`KeyAmalgamation`'s role.
- Preserving this type information increases type safety for users
of this API.
|
|
- Add `openpgp/src/cert/prelude.rs` to import most types and traits
related to certificates.
- Use it instead of using the types and traits individually.
|
|
- Add the `bundle()` method to the Amalgamation trait instead of
implementing it on each struct.
|
|
- Fixes #427.
|
|
- Likewise KeyBinding, UserIDBinding, UserAttributeBinding,
UnknownBinding, etc.
- Reason: a self-signature on a component is a binding, but
revocations and TPSes are not bindings.
- Consistently call collections of components and associated
signatures bundles now. Likewise for fields, methods.
- Fixes #425.
|
|
- Change all functions that need to evaluate the validity of a
signature (either directly or indirectly to take a policy object.
- Use the policy object to allow the user to place additional
constraints on a signature's validity.
- This addresses the first half of #274 (it introduces the policy
object, but does not yet implement any policy).
|
|
|
|
|
|
- Fixes #414.
|
|
|
|
- Fixes #387.
|
|
- There are {TPK, ComponenBinding}::{certifications,
self_revocations, other_revocations}. Don't abbreviate self
signtures either.
|
|
- A drawback of this change is that currently AsRef<[u8]> is not
implemented for [u8; _], only for specific lengths. This is a
compiler limitation that may be lifted in the future. This
limitation required fixing some tests, notably those using
include_bytes!.
- Fixes #296.
|
|
- Fixes #88.
|
|
- Also rename the `subkey` method to `key`.
|
|
- This is the result of running `cargo fix --edition`, with some
manual adjustments.
- The vast majority of changes merely qualify module paths with
'crate::'.
- Two instances of adding an anonymous pattern to a trait's
function.
- `async` is a keyword in Rust 2018, and hence it needs to be
escaped (e.g. in the case of the net::r#async module).
- The manual adjustments were needed due to various shortcomings of
the analysis employed by `cargo fix`, e.g. unexpanded macros,
procedural macros, lalrpop grammars.
|
|
- Remove the domain parameter from core::Context.
- Replace it with a realm to be passed in when opening a store.
- For sq, merge store name and realm into the --store parameter.
- Fixes #105.
|
|
- Fixes #196.
|
|
- The packet parser now digests armored data, so there is no need to
use this even in examples or tests, just use the appropriate
.from_bytes(..) function.
- Fixes #169.
|
|
- Trait Parse introduces a uniform interface to parse packets,
messages, keys, and related data structures.
|
|
|
|
Working links do not use "preview" subdomain.
|
|
- RFC 4880 defines an OpenPGP message to be a sequence of packets
with a particular structure (Section 11.3;
https://tools.ietf.org/html/rfc4880#section-11.3). Since there is
no term for an unstructured sequence of packets, we invent one.
|
|
- 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.
|
|
- Use $crate to refer to the current crate making this macro easier
to use.
- Simplify examples accordingly.
|
|
|
|
- Move the 'example.c' to sequoia-ffi.
- Fix and improve Makefile.
|
|
- Create default context with 'Context::new', create builder with
'Context::configure'.
- Rename 'Pre' to 'Config'.
- Expose builder to ffi.
|
|
- The domain uniquely identifies the application. It should be a
property of the context.
|
|
- Context objects can be used to tweak the library configuration.
Currently, a home and lib directory can be set. Reasonable
defaults are provided.
- Add ffi functions.
|
|
- For now, we keep the ffi in this crate, later on we may want to
move it to sequoia-ffi.
- Example code how to use the library from C is added as well.
|