Age | Commit message (Collapse) | Author |
|
- See #611.
|
|
|
|
- Fixes #563
- With an MSRV >= 1.40.0, we can use #[non_exhaustive], as mentioned
in #406.
- This is also a clippy lint:
https://rust-lang.github.io/rust-clippy/master/index.html#manual_non_exhaustive
|
|
Closes #581.
|
|
|
|
- See #480.
|
|
- See #480.
|
|
|
|
|
|
|
|
|
|
- This was actually assumed by pgp_signer_new, leading to a double
free if the key pair was later freed.
|
|
|
|
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)
|
|
- Add pgp_valid_key_amalgamation_for_certification,
pgp_valid_key_amalgamation_for_signing,
pgp_valid_key_amalgamation_for_authentication,
pgp_valid_key_amalgamation_for_storage_encryption, and
pgp_valid_key_amalgamation_for_transport_encryption.
|
|
|
|
We only ever use {memset, memzero, memeq, memcmp} anyway - don't pull
OS-specific functions like mlock.
|
|
|
|
- This is closer to collection types such as HashMap, and
distinguishes the function from Cert::merge that merges two
certificates.
- See #572.
|
|
- Mark `aead_algo` as available only during tests,
- Remove support for AEAD from `sop`,
- Mark `aead` parameter in FFI as unused,
- openpgp-ffi: Drop `aead_algo` argument from `pgp_encryptor_new`,
- Fixes #550.
|
|
- Rust 1.46.0 warns that the callback function types are not FFI-safe.
This declares them `extern fn`, as the compiler suggests.
|
|
- When updating the expiration time of signing-capable subkeys, also
create a new primary key binding signature.
- Fixes #534.
|
|
|
|
- Unlike the `Signature Creation Time` subpacket, there are
legitimate reasons to have multiple `Issuer` subpackets and
`Issuer Fingerprint` subpackets.
- Rename `SubpacketAreas::issuer` to `SubpacketAreas::issuers` and
return all `Issuer` subpackets.
- Likewise, Rename `SubpacketAreas::issuer_fingerprint` to
`SubpacketAreas::issuer_fingerprints` and return all `Issuer
Fingerprint` subpackets.
- Change `sq` to list all issuers. Deduplicate first, however.
|
|
- See #525.
|
|
- rustc 1.43 considers this an error.
|
|
|
|
- Add explicit build-release and install targets.
- Explicitly build the crates.
- Move installation to the crate's Makefile.
- This allows building of Sequoia's individual parts, e.g. by using
'make -Copenpgp-ffi install'.
|
|
- Wrap functions to create a password-protected
certificate (`pgp_cert_builder_set_password`), and to work with
keys that are password
protected (`pgp_key_has_unencrypted_secret`,
`pgp_key_decrypt_secret`).
|
|
- In 4aee697b1a582be8f7e48e9ebc0f95a06d23e2b2, I changed the type of
`pgp_valid_key_amalgamation_set_expiration_time`'s arguments, but
I didn't update the declaration.
- Fix the declaration.
|
|
- When implementing `VerificationHelper` for `DHelper`, we forgot to
forward the `inspect` callback to the wrapped `vhelper`.
- Do it.
|
|
- Restore the function `pgp_cert_revoke_in_place`.
|
|
- Change `pgp_user_id_amalgamation_user_id` and
`pgp_valid_user_id_amalgamation_user_id` to return a
`pgp_packet_t`, not a `pgp_user_id_t`.
- Most functions work with `pgp_packet_t`s, not `pgp_user_id_t`s.
|
|
|
|
- `prefix` in theses files must be the installaton prefix.
- Fixes #502.
|
|
- Returning rich errors from this function may compromise secret key
material due to Bleichenbacher-style attacks. Change the API to
prevent this.
- Hat tip to Hanno Böck.
- Fixes #507.
|
|
- Returning rich errors from this function may compromise secret key
material due to Bleichenbacher-style attacks. Change the API to
prevent this.
- Hat tip to Hanno Böck.
- See #507.
|
|
|
|
- Fixes #510.
|
|
|
|
- Fix `CertParser::iter`'s type to be a `Box<'a +
Iterator<Item=Result<Packet>>>` rather than trying to be generic.
|
|
- Now that `PacktSource::Iter` returns a `Result<Packet>` instead of
a `Packet`, we can implement `PacketSource::PacketParser` in terms
of `PacktSource::Iter`.
|
|
- Change `CertParser` to take a fallible iterator.
- This change allows the iterator to propagate parse errors as such.
Otherwise, parse errors are indistinguishable from EOF.
|
|
- See #498.
|
|
- See #498.
|
|
- See #498.
|
|
- Implement IntoIter and Deref to &'a [MessageLayer<'a>], drop the
custom iteration structs.
|
|
- Align Cert::set_expiration_time with
KeyAmalgamation::set_expiration_time, i.e. return the signatures
instead of merging them directly.
- Fixes #491.
|
|
- Change `ValidKeyAmalgamation::set_expiration_time` to return a
`Result<Vec<Signature>>` instead of a `Result<Vec<Packet>>`.
|
|
- Change `Cert::merge_packets` to take an `IntoIterator` instead of
a vector.
- This change simplifies the most common case of passing in a single
packet, and doesn't make the second most common case of passing in
a vector of packets any more complicated.
|