summaryrefslogtreecommitdiffstats
path: root/sqv
AgeCommit message (Collapse)Author
2020-12-11Release 0.21.0.v0.21.0Justus Winter
2020-12-11Correct minimal versions.Nora Widdecke
- Versions required by feature or API usage: - anyhow 1.0.18. - policy::test::reject_seip_packet and policy::test::reject_cipher' fail - We use `impl From<anyhow::Error> for Box<dyn std::error::Error + Send + Sync + 'static>`, introduced in 1.0.5. - tokio 0.2.19 - We use `tokio::net::tcp::OwnedReadHalf`, introduced in 0.2.19. - chrono 0.4.10 - We use the `std` feature, introduced in 0.4.10. - thiserror 1.0.2 - futures and futures-util 0.3.5 - tempfile 3.1 - c_doctests require the same version of rand both as direct dependency and through tempfile. - Yanked versions: - structopt 0.3.11. 0.3.8 to 0.3.10 were yanked. - socket2 0.3.16. 0.3.0 to 0.3.15 were yanked. - Update our dependencies to the package versions required by other dependencies, e.g. structopt requires lazy_static 1.4.0. - clap 2.33 - lazy_static to 1.4.0 - libc to 0.2.66 - proc-macro2 to 1.0.7 - syn to 1.0.5. - winapi 0.3.8
2020-12-01openpgp: take ownership of Features bitfieldAzul
- Since `set_features` requires ownership of `Features`, it should take ownership rather than borrowing and cloning them. See https://rust-lang.github.io/api-guidelines/flexibility.html#caller-decides-where-to-copy-and-place-data-c-caller-control . - See #616.
2020-12-01openpgp: take ownership of KeyFlags bitfieldAzul
- Make `generate_key` polymorphic over `AsRef<KeyFlags>`. - Since `set_key_flags` requires ownership of the key flags, it should take ownership rather than borrowing and cloning the them. See https://rust-lang.github.io/api-guidelines/flexibility.html#caller-decides-where-to-copy-and-place-data-c-caller-control . - See #616.
2020-12-01openpgp: Allow using `None` to indicate signer's key should be used as the ↵Wiktor Kwapisiewicz
`key` parameter. - Make sign_direct_key take Key of key::PublicParts. - Simplify calling sign_direct_key by using Into. - Allow passing None to sign_subkey_binding. - Allow passing None to sign_userid_binding. - Allow using None as key parameter. - Improve docs mentioning new default for `pk`. - `pk` set to `Option::None` will now default to signer's public key. - Fixes #565.
2020-11-27openpgp: Add Cert::merge_public and Cert::merge_public_and_secret.Justus Winter
- 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.
2020-10-18sop,sqv: Remove unnecessary featuresIgor Matuszewski
2020-10-14Fix `make install` on both BSD and Linux.Wiktor Kwapisiewicz
Closes #581.
2020-10-14Release 0.20.0.v0.20.0Justus Winter
2020-10-14sq: Rename module to 'sequoia-sq'.Justus Winter
2020-10-14Replace most 'extern crate' directives with 'use'.Justus Winter
- See #480.
2020-10-14Make other BSD systems use ginstall too.Wiktor Kwapisiewicz
2020-10-14Modified conditional to set INSTALL executable to ginstall for FreeBSD.phryk
2020-10-12Allow to opt out of default features for sequoia-* dependenciesIgor Matuszewski
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)
2020-09-21tool, sqv: Unpin transitive dependency colored.Nora Widdecke
2020-08-21Release 0.19.0.v0.19.0Justus Winter
2020-08-05openpgp: Don't implement Default for the Bitflags types.Justus Winter
- See #525.
2020-07-31Release 0.18.0.v0.18.0Justus Winter
2020-07-28openpgp: Reimplement the KeyFlags struct using Bitfield.Justus Winter
- This also drops the implementation of PartialOrd since we did not use it in the key selection after all. - Fixes #525.
2020-07-06sqv: Improve test.Justus Winter
- Make dates more plausible, add userid to make certificates more compatible.
2020-06-30openpgp: A direct key signature can be made by a third party.Neal H. Walfield
- To support third-party direct key signatures (e.g., revocations), change `SignatureBuilder::sign_direct_key` to take the key that is being signed, and not assume that it is `signer::public`.
2020-06-29openpgp: Don't unnecessarily set signature subpackets.Neal H. Walfield
- When using the `SignatureBuilder`, the signature creation time and issuer subpackets will be correctly set by default. - Don't do it explicitly.
2020-06-18Improve install target.Justus Winter
- 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'.
2020-06-12Release 0.17.0.v0.17.0Justus Winter
2020-05-07openpgp: Use a builder to construct DetachedVerifier.Justus Winter
- See #498.
2020-04-28openpgp: Simplify Cert::try_from conversions from packets.Wiktor Kwapisiewicz
- Convert Cert::try_from(PacketPile::from(packets)) into Cert::try_from(packets). - Fixes #496.
2020-04-28openpgp: Convert `Cert::from_packet_pile` into `TryFrom`Wiktor Kwapisiewicz
- Drop `Cert::from_packet_pile`. - Fixes #462.
2020-04-21openpgp: Rename signature::Builder to signature::SignatureBuilder.Wiktor Kwapisiewicz
- Rename all calls to `Builder` with `SignatureBuilder`. - Fixes #481.
2020-04-16sqv: Improve error reporting when reading keyrings.Justus Winter
2020-04-06openpgp: Rename VerificationHelper::get_public_keys to get_certs.Justus Winter
2020-04-06openpgp: Introduce (mandatory, for now) crypto-nettle feature flagIgor Matuszewski
2020-04-03Release 0.16.0.v0.16.0Justus Winter
2020-03-27sqv: Improve error reporting.Justus Winter
2020-03-25openpgp: Improve performance of detached signature verification.Justus Winter
- Previously, we transformed data and detached signatures into signed messages on the fly, then used the streaming Verifier to verify the message. However, this introduces a nontrivial overhead, even if unnecessary copies are carefully avoided. - Instead, specialize the streaming Decryptor to handle detached signatures. use crypto::hash_buffered_reader to compute the hashes over the data, then attach the computed signatures to the signature packets, and use Decryptor's verification machinery. - While this is arguably less elegant, it is much simpler, and a lot faster. Notably, if we operate on files and can mmap them into memory, we can compute the hash in one call to the compression function. Verification of detached signatures is an important use case, so this speedup outweighs the loss of elegance. - Fixes #457.
2020-03-20openpgp: Remove `to_hex` in KeyHandle, KeyID and Fingerprint.Wiktor Kwapisiewicz
- Replace all usages of `to_hex` with formatting string with :X specifier. - Fixes #456.
2020-03-09Switch from failure to anyhow.Justus Winter
- Use the anyhow crate instead of failure to implement the dynamic side of our error handling. anyhow::Error derefs to dyn std::error::Error, allowing better interoperability with other stdlib-based error handling libraries. - Fixes #444.
2020-03-09Reduce use of explicit failure::Fallible.Justus Winter
2020-03-06sq,sqv: Further relax dependency on colored.Daniel Kahn Gillmor
- In caa8e0df, we relaxed the dependency on colored as a way to more flexibly constrain the MSRV. But colored was a transitive dependency in the first place, and we wouldn't have required any specific version of it if it wasn't present. We can let the intermediate dependencies be responsible for the preferred minimum version, rather than explicitly declaring it ourselves. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2020-03-04Release 0.15.0.v0.15.0Justus Winter
2020-02-26openpgp: Add a prelude file to import things related to certificatesNeal H. Walfield
- 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.
2020-02-20openpgp: Split the ValidAmalgamation trait.Neal H. Walfield
- Split the ValidAmalgamation trait into two traits, Amalgamation and ValidAmalgamation, so that the functionality made available by the Amalgamation trait can be provided by a ComponentAmalgamation, which doesn't have a policy.
2020-02-20sq, sqv: Relax dependency on colored.Daniel Kahn Gillmor
- In eaaaf33dc15df65a7d34b9f436080e49f30f9715, colored was fixed to 1.9.1 "to keep our MSRV stable" presumably because 1.9.2 bumped the version of rustc required. However, older versions of colored still work to build. This was tested on debian, which today has 1.6.1. It's possible that even earlier versions of colored work as well, but this is all I've tested. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2020-02-19openpgp: Split VerificationResult.Justus Winter
- Split VerificationResult into Result<GoodChecksum, VerificationError>. - Fixes #416.
2020-02-07Release 0.14.0.v0.14.0Justus Winter
2020-02-07Pin dependencies to keep our MSRV stable.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-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-18sqv: Drop data more idiomatically.Neal H. Walfield
2020-01-18sqv: Rewrite to use the streaming verifier.Neal H. Walfield
- sqv implements the same functionality as streaming verifier. Use that instead of reimplementing it.