summaryrefslogtreecommitdiffstats
path: root/openpgp-ffi
AgeCommit message (Collapse)Author
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`.
2020-05-08openpgp: Change CertParser to take a fallible iteratorNeal H. Walfield
- 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.
2020-05-07openpgp: Use a builder to construct Decryptor.Justus Winter
- See #498.
2020-05-07openpgp: Use a builder to construct Verifier.Justus Winter
- See #498.
2020-05-07openpgp: Use a builder to construct DetachedVerifier.Justus Winter
- See #498.
2020-05-06openpgp: Streamline iteration over MessageStructure.Justus Winter
- Implement IntoIter and Deref to &'a [MessageLayer<'a>], drop the custom iteration structs.
2020-05-06openpgp: Don't merge signatures in Cert::set_expiration_time.Justus Winter
- Align Cert::set_expiration_time with KeyAmalgamation::set_expiration_time, i.e. return the signatures instead of merging them directly. - Fixes #491.
2020-04-29openpgp: Fix ValidKeyAmalgamation::set_expiration_time's return typeNeal H. Walfield
- Change `ValidKeyAmalgamation::set_expiration_time` to return a `Result<Vec<Signature>>` instead of a `Result<Vec<Packet>>`.
2020-04-29openpgp: Change Cert::merge_packets to take an IntoIterator.Neal H. Walfield
- 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.