Age | Commit message (Collapse) | Author |
|
|
|
|
|
Cargo features are inherently additive, which means that if:
- package A walts to build package C with features ABC,
- package B walts to build package C with features BCD,
the package C will be built with *both* ABC and BCD enabled.
There is currently no way to specify mutually exclusive features
and these have to be implemented using existing, additive, ones.
That's problematic for us, because currently the cryptographic
backend in sequoia-openpgp is selected globally at build-time and
thus at most one can be selected for the compilation to succeed.
It's worth noting that we can't use Cargo build scripts to emit
the `--cfg`-passing [directive] because it does *not* affect
Cargo's dependency resolution and that's needed in order to skip
unbuildable backends on certain OSes (e.g. nettle when using Windows MSVC ABI).
To allow for other local crates, most notably sequoia-openpgp-ffi, to
build with different backends, we expose and forward any features that
may be used by the crates they transitively depend on.
At the time of writing, these different features seem to be implemented:
- buffered-reader: compression support
- openpgp: compression support and cryptographic backend
- store: background-services feature
[directive](https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-cfgkeyvalue)
|
|
|
|
|
|
|
|
- See #525.
|
|
|
|
- This also drops the implementation of PartialOrd since we did not
use it in the key selection after all.
- Fixes #525.
|
|
- Previously, these method withheld information in the EOF case (and
in case of `map` this loss is irrecoverable). Fix this by
returning a Result instead.
|
|
|
|
|
|
Authentication subkeys are not needed for autocrypt, let's reduce the
size of the export.
- Fixes #506
|
|
- Drop `Cert::from_packet_pile`.
- Fixes #462.
|
|
- Rename `Cert::revoked`, `ValidCert::revoked`,
`ValidAmalgamation::revoked`, and `ComponentBundle::revoked` to
revocation_status to more accurately match what it does.
- Don't rename `ValidComponentAmalgamationIter::revoked` or
`ValidKeyAmalgamationIter::revoked`. They don't return the
revocation status; they check whether the key is revoked.
|
|
- Add a new constructor that takes headers. This allows us to make
the header argument polymorphic.
|
|
- Previously, PartialBodyFilter::drop made an effort to finalize the
filter. This, however, is only a best-effort mechanism: It cannot
report errors.
- Because of this, we now believe that it actually exacerbates the
problem of downstream users not finalizing the filter: It will
work most of the time, but sometimes fail.
- Drop the implementation of Drop. Fix all the problematic test
cases.
|
|
This reverts commit 2e1eec5fe4157a391a13554ff7df3075cfe043cc.
|
|
- This avoids the partial implementation imitating
std::option::Option, replacing it with std::result::Result.
- As a benefit, std::result::Result is in the prelude, simplifying a
lot of parsing loops.
|
|
|
|
- `decrypted` implies that the packet was previously encrypted.
However, If we parse a signed-only message, the literal packet was
never encrypted. Provide the inverse predicate instead, which is
less misleading.
|
|
To be consistent; we don't use plural forms for modules anywhere else
and Rust always uses singular forms.
|
|
|
|
|
|
- See #462.
|
|
- Refactor parsing of Autocrypt headers into own function.
- Key gossip uses the same format as specified in the spec [0].
- Add tests from attached ticket.
- Fixes #394.
[0]: https://autocrypt.org/level1.html#key-gossip
|
|
|
|
|
|
- Add two new traits: `Marshal` and `MarshalInto`.
- Implement them instead of `Serialize` and `SerializeInto`.
- Only implement `Serialize` and `SerializeInto` for data structures
that are normally exported.
- This should prevent users from accidentally serializing a bare
signature (`Signature`) when they meant to serialize a signature
packet (`Packet`), for instance.
- Fixes #368.
|
|
- When creating an Autocrypt header, make sure the components are
valid according to the policy and not revoked, and include the
current valid binding signature, not the newest one, whose
creation time may be in the future.
|
|
- A `ComponentAmalgamation` derefs to a `ComponentBundle`. Don't
use `ComponentAmalgamation::bundle` if it is unnecessary and
doesn't improve legibility.
|
|
- 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.
|
|
- The Amalgamation trait only applies to ValidComponents. Rename it
accordingly.
|
|
|
|
- Add a parameter to CipherSuite::add_subkey, which, if not None,
overrides the default cipher suite for that subkey.
- This makes it easier to create a key with, say, an ECC primary and
an RSA subkey.
|
|
|
|
|
|
- Move the autocrypt-related functionality to a new crate.
- Fixes #424.
|