Age | Commit message (Collapse) | Author |
|
- Secret key material is not authenticated by OpenPGP, so care must
be taken when merging certificates.
- Rename Cert::merge to Cert::merge_public_and_secret.
- Add new function Cert::merge_public. This function can be used to
merge certificates from untrusted sources as it ignores secret key
material that cannot be authenticated by OpenPGP.
- Fixes #584.
|
|
- This will allow us to use the CertBuilder to change certificates
with detached secret keys in the future.
- Fixes #608.
|
|
- 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
|
|
- See #480.
|
|
- See #480.
|
|
- This was actually assumed by pgp_signer_new, leading to a double
free if the key pair was later freed.
|
|
|
|
- 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.
|
|
|
|
- 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.
|
|
- 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`).
|
|
- 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.
|
|
- 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.
|
|
- Drop `Cert::from_packet_pile`.
- Fixes #462.
|
|
- Rename `Cert::revoke_in_place` to `Cert::revoke`.
- Return the revocation certificate; don't merge it.
- Fixes #485.
|
|
- 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.
|
|
- Don't assume that the current binding signature should be used;
include a reference time.
|
|
- Add a new constructor that takes headers. This allows us to make
the header argument polymorphic.
|
|
This reverts commit 2e1eec5fe4157a391a13554ff7df3075cfe043cc.
|
|
- Fixes #484.
|
|
- See #484.
|
|
- Make `cert::amalgamation::key` a public module.
- Move `cert::amalgamation::keyiter` to
`cert::amalgamation::key::iter`. Have `cert::amalgamation::key`
export its public symbols.
|
|
- 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.
|
|
|
|
|
|
- Change `mark_role_primary` to `role_into_primary`.
- Change `mark_role_primary_ref` to `role_as_primary`.
- Change `mark_role_subordinate` to `role_into_subordinate`.
- Change `mark_role_subordinate_ref` to `role_as_subordinate`.
- Change `mark_role_unspecified` to `role_into_unspecified`.
- Change `mark_role_unspecified_ref` to `role_as_unspecified`.
- Fixes #452.
|