summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2020-02-07Release 0.14.0.v0.14.0Justus Winter
2020-02-07Bump base64 to 0.11.Justus Winter
2020-02-07Pin dependencies to keep our MSRV stable.Justus Winter
2020-02-07openpgp: Conclude this patch series.Justus Winter
- This patch series adds methods to query key constraints and other key-related signature subpackets to trait Amalgamation. Key-related subpackets are relevant to all components. Recall that primary key constraints may be expressed on userid binding signatures, and that userid components may be stripped off. - We do the same for the key holder's preference packets. These subpackets are not relevant to subkeys, therefore we introduced a new trait Preferences that is implemented for valid componentsand primary keys. - Add the original test case from the bug report. - Fixes #215.
2020-02-07openpgp: Add trait cert::Preferences.Justus Winter
- This trait allows querying of the key holder's preferences. It is implemented for ValidComponentAmalgamation and ValidPrimaryKeyAmalgamation.
2020-02-07openpgp: Implement Amalgamation for ValidPrimaryKeyAmalgamation.Justus Winter
2020-02-07openpgp: Expose ValidPrimaryKeyAmalgamation.Justus Winter
2020-02-07openpgp: Add and use Amalgamation::map.Justus Winter
2020-02-07openpgp: Add reference.Justus Winter
2020-02-07openpgp: Add Amalgamation::revocation_key.Justus Winter
- See previous commit.
2020-02-07openpgp: Move ValidKeyAmalgamation::key_expiration_time.Justus Winter
- See previous commit.
2020-02-07openpgp: Move key flags methods to trait Amalgamation.Justus Winter
- This unifies key flag lookup across all amalgamations. - While it may seem odd to query key flags on userid amalgamations, this actually makes sense. It provides the primary key's flags if all but the amalgamation's userid is stripped from the certificate.
2020-02-07openpgp: Rename CertBuilder::set_expiration.Justus Winter
2020-02-07openpgp: Rename Cert::set_expiry to set_expiration_time.Justus Winter
2020-02-07openpgp: Fix documentation.Justus Winter
2020-02-07openpgp: Add test.Neal H. Walfield
- Add a test to make sure we can use the policy object to invalidate a binary signature.
2020-02-06autocrypt: New crate.Justus Winter
- Move the autocrypt-related functionality to a new crate. - Fixes #424.
2020-02-06openpgp: Fix name of setter.Justus Winter
2020-02-06openpgp: Use CertBuilder::general_purpose in tests.Justus Winter
2020-02-06sqv: Rename flag --trace to --verbose.Justus Winter
- All the trace messages are gone except for the summary.
2020-02-06sqv: Print fingerprints and keyids without whitespace.Justus Winter
- This improves usability, e.g. when copy&pasting. - Fixes #422.
2020-02-06openpgp: Implement KeyHandle::to_hex.Justus Winter
2020-02-06openpgp: Drop explicit implementation of ToString.Justus Winter
2020-02-06openpgp: Rename methods 'set_policy' to 'with_policy'.Justus Winter
- Fixes #427.
2020-02-06openpgp, openpgp-ffi, ipc: Add missing dyn.Justus Winter
2020-02-06openpgp: Expose all component-related types in cert::components.Justus Winter
2020-02-06openpgp: Rename ComponentBinding to ComponentBundle, etc.Justus Winter
- 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.
2020-02-05openpgp: Avoid rendering toplevel `Cert` as re-export.Justus Winter
2020-02-05openpgp: Fix handling of unknown components during canonicalization.Justus Winter
- Previously, signatures following an unknown packet (like a version 3 signature) were attributed to the unknown component. To fix that, try to reorder all signatures on unknown components. If we fail, we put them back where we found them, assuming they are at the correct location on an component unknown to us. - Also split signatures of unknown components. - Add test case.
2020-02-05openpgp: Make Cert::into_packets() and to_vec() agree on sig order.Justus Winter
- The signatures are ordered from authenticated and most important to not authenticated and most likely to be abused. The order is: - Self revocations first. They are authenticated and the most important information. - Self signatures. They are authenticated. - Other signatures. They are not authenticated at this point. - Other revocations. They are not authenticated, and likely not well supported in other implementations, hence the least reliable way of revoking keys and therefore least useful and most likely to be abused.
2020-02-05sq: Inspect user attributes, unknown components and bad sigs.Justus Winter
2020-02-05openpgp: Dump certificate if they do not match.Justus Winter
2020-02-05openpgp: Fix converting certs into packets.Justus Winter
2020-02-05openpgp: Keep components without binding signatures.Justus Winter
- We now add components without binding signatures. They should be kept, be enumerable, but ignored if a policy is applied. After all, it could be that we merely do not understand a signature.
2020-02-05openpgp: Duplicate signatures if we used our reordering heuristic.Justus Winter
- The cost of missing a revocation certificate merely because we put it into the wrong place seem to outweigh the cost of duplicating it.
2020-02-05openpgp: Enforce that armor writers are finalized in debug mode.Justus Winter
- In Writer::drop, assert that the writer has been taken in debug mode. This forces the user to use Writer::finalize, and handle the errors that might happen. In release builds, we just do our best to finalize the armor writer. - This is a carrot-and-stick approach to a shortcoming in Rust's type system which cannot enforce that a value is consumed (see https://github.com/rust-lang/rfcs/issues/2642). Our carrot is that you get the inner writer back by calling finalize, the stick is crashing in debug builds if you don't.
2020-02-05python: Fix handling of armored writers.Justus Winter
2020-02-05sq: Fix handling of armored writers.Justus Winter
2020-02-05openpgp-ffi: Provide pgp_armor_writer_finalize.Justus Winter
2020-02-05openpgp-ffi: Specialize armor writers.Justus Winter
2020-02-05openpgp: Mark writer clean after writing the epilogue.Justus Winter
2020-02-05openpgp: Improve use of armor writer in tests and examples.Justus Winter
2020-02-05openpgp: Fix serialization of armored certificates.Justus Winter
- Use armor::Writer::finalize to properly handle the errors. - Account for the newline in comments.
2020-02-02openpgp: Add a test that revocations can be revoked.Neal H. Walfield
2020-02-01openpgp: Add a test for policy objects.Neal H. Walfield
2020-01-31openpgp: Add a policy object.Neal H. Walfield
- 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).
2020-01-29openpgp-ffi: Add a general reader interface.Justus Winter
2020-01-29openpgp-ffi: Add a general writer interface.Justus Winter
2020-01-29buffered-reader: Use the new as_boxed method.Justus Winter
- This cleanly avoids creating a linked list of references on the stack that grows every time we call into_inner.
2020-01-29buffered-reader: Make Dup polymorphic.Justus Winter
- Also, make PacketHeaderParser polymorphic over BufferedReader<Cookie> at the same time.