summaryrefslogtreecommitdiffstats
path: root/openpgp-ffi
AgeCommit message (Collapse)Author
2020-12-16Release 1.0.0.v1.0.0Justus Winter
- Release buffered-reader 1.0.0, sequoia-openpgp 1.0.0, and sequoia-sqv 1.0.0. - Also release sequoia-sop 0.22.0.
2020-12-11Release 0.21.0.v0.21.0Justus Winter
2020-12-11Relax minimum dependencies.Nora Widdecke
- Relaxes those dependencies that were unnecessarily strict and patched by debian.
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-10buffered-reader: Require Cookies to be Send and Sync.Azul
- This way the entire `BufferedReader<C>` will be `Send` and `Sync`. - Modify all other crates accordingly. - See #615.
2020-12-07openpgp: Make serialize::stream::Message Send + Sync.Justus Winter
- See #615.
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-11-26openpgp: Add a lifetime to CertBuilder.Justus Winter
- This will allow us to use the CertBuilder to change certificates with detached secret keys in the future. - Fixes #608.
2020-11-11openpgp-ffi: Add test.Justus Winter
- See #611.
2020-11-06ffi, openpgp-ffi: Handle non_exhaustive enum.Nora Widdecke
2020-11-06openpgp: Use non_exhaustive attribute.Nora Widdecke
- 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
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-14Use 'Examples' for the examples section.Justus Winter
- See #480.
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-13openpgp-ffi: Fix example.Justus Winter
2020-10-13openpgp-ffi: New example.Justus Winter
2020-10-13openpgp-ffi: Make pgp_key_pair_as_signer consume the key pair.Justus Winter
- This was actually assumed by pgp_signer_new, leading to a double free if the key pair was later freed.
2020-10-13openpgp-ffi: Fix leak.Justus Winter
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-10-09ffi: Add key flag accessors for ValidKeyAmalgamation.Neal H. Walfield
- 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.
2020-10-09openpgp: Make Recipient::set_keyid easier to use.Justus Winter
2020-10-06Don't use OS-specific extensions from memsecIgor Matuszewski
We only ever use {memset, memzero, memeq, memcmp} anyway - don't pull OS-specific functions like mlock.
2020-10-06Bump memsec to 0.6Igor Matuszewski
2020-10-02openpgp: Rename Cert::merge_packets to Cert::insert_packets.Justus Winter
- This is closer to collection types such as HashMap, and distinguishes the function from Cert::merge that merges two certificates. - See #572.
2020-09-22openpgp: Hide stream::Encryptor::aead_algo from public API.Wiktor Kwapisiewicz
- 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.
2020-09-21ffi: Fix improper_ctypes_definitions warnings.Nora Widdecke
- Rust 1.46.0 warns that the callback function types are not FFI-safe. This declares them `extern fn`, as the compiler suggests.
2020-09-16openpgp: Update backsig when changing expiration time.Justus Winter
- When updating the expiration time of signing-capable subkeys, also create a new primary key binding signature. - Fixes #534.
2020-08-21Release 0.19.0.v0.19.0Justus Winter
2020-08-12openpgp: Change accessors to return all issuers.Neal H. Walfield
- 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.
2020-08-05openpgp: Don't implement Default for the Bitflags types.Justus Winter
- See #525.
2020-08-03openpgp: Don't use doc comments with macros.Neal H. Walfield
- rustc 1.43 considers this an error.
2020-07-31Release 0.18.0.v0.18.0Justus Winter
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-17openpgp-ffi: Wrap the password handling functionality.Neal H. Walfield
- 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`).
2020-06-17openpgp-ffi: Fix declaration.Neal H. Walfield
- 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.
2020-06-17openpgp-ffi: Forward the inspect callback to the wrapped helper.Neal H. Walfield
- When implementing `VerificationHelper` for `DHelper`, we forgot to forward the `inspect` callback to the wrapped `vhelper`. - Do it.
2020-06-17openpgp-ffi: Restore convenience function.Neal H. Walfield
- Restore the function `pgp_cert_revoke_in_place`.
2020-06-17openpgp-ffi: Change return type.Neal H. Walfield
- 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.
2020-06-12Release 0.17.0.v0.17.0Justus Winter
2020-06-08openpgp-ffi, ffi: Fix pkgconfig files.Hartmut Goebel
- `prefix` in theses files must be the installaton prefix. - Fixes #502.
2020-05-28openpgp: Change the `decrypt` proxy in the decryption helper.Justus Winter
- 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.
2020-05-28openpgp: Change PKESK::decrypt to return an Option<_>.Justus Winter
- 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.
2020-05-28openpgp-ffi: Make pgp_cert_parser_from_bytes' buffer argument const.Alexander Kjäll
2020-05-25ffi: Gracefully handle encrypted secret keys in pgp_pkesk_decrypt.Justus Winter
- Fixes #510.
2020-05-13openpgp: Unawkwardify Encryptor::add_password.Justus Winter
2020-05-08openpgp: Don't make CertParser generic over the iterator's typeNeal H. Walfield
- Fix `CertParser::iter`'s type to be a `Box<'a + Iterator<Item=Result<Packet>>>` rather than trying to be generic.
2020-05-08openpgp: Remove the PacketSource::PacketParser variant.Neal H. Walfield
- Now that `PacktSource::Iter` returns a `Result<Packet>` instead of a `Packet`, we can implement `PacketSource::PacketParser` in terms of `PacktSource::Iter`.