summaryrefslogtreecommitdiffstats
path: root/ffi
AgeCommit message (Collapse)Author
2020-12-11commit Cargo.tomls with exact minimum versionsnora/minimal_tomlNora Widdecke
2020-12-10Correct minimal versions.Nora Widdecke
- Versions required by feature or API usage: - anyhow 1.0.5. - 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-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-23ffi: Migrate to tokio 0.2Igor 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-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-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-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-09-28ffi: only build during build-release target instead of installingLevente Polyak
This looks like an accident and should just be a build-release of the store crate. The built lib will by linked in ffi language modules like python with LD_LIBRARY_PATH so no system installation is and should be needed for purely building.
2020-08-21Release 0.19.0.v0.19.0Justus Winter
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-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-13openpgp, buffered-reader, ffi: Fix documentation warnings.Wiktor Kwapisiewicz
- Fix unmatched references.
2020-04-03Release 0.16.0.v0.16.0Justus Winter
2020-03-26Remove redundant field names.Wiktor Kwapisiewicz
2020-03-13openpgp-ffi, ffi: Prevent capturing of c-tests's output.Justus Winter
- By explicitly printing to stderr, we can avoid the test's output from being captured by Rust's test framework.
2020-03-13ffi, openpgp-ffi: Properly use LDLIBS to link against Sequoia.Justus Winter
- Fixes linking tests and examples with ld --as-needed.
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-04Release 0.15.0.v0.15.0Justus Winter
2020-02-13openpgp-ffi, ffi: Always remake all examples.Justus Winter
- Due to missing tracking of header files as inputs, make may miss changes there and not rebuild an example. Always rebuilding all examples should be quick enough, and avoids this problem.
2020-02-09openpgp: Add new error, PolicyViolation.Neal H. Walfield
2020-02-07Release 0.14.0.v0.14.0Justus 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-05python: Fix handling of armored writers.Justus Winter
2020-01-14openpgp: Rework stream verification logic.Neal H. Walfield
- Select keys only when verifying the signatures: the relevant keys depend on the timestamp in the signature, and different signatures may have different time stamps. - If the signature doens't have a Signature Creation Time stamp, return that the signature is invalid.
2020-01-08openpgp: Include a reference time in KeyAmalgamation.Neal H. Walfield
- Including the reference time in the KeyAmalgamation structure rather than having the user supply it to the individual methods (like `KeyAmalgamation::alive`) helps ensure that the key is used consistent. For instance, this makes it harder to mistakenly query key's liveness at time t, but then use the current time to determine the key's capabilities.
2020-01-07openpgp-ffi, ffi: Always rebuild C doctests.Justus Winter
2020-01-02openpgp: Mark enum Error non-exhaustive.Justus Winter
- See #405.
2019-12-20Release 0.13.0.v0.13.0Justus Winter
2019-12-20Remove nettle dependency where it's unnecessaryIgor Matuszewski
2019-12-09openpgp: New errors Expired and NotYetLive.Justus Winter
2019-11-28Call TPKs Certificates, update identifiers, documentation.Justus Winter
- Fixes #387.
2019-11-25Release 0.12.0.v0.12.0Justus Winter
2019-11-21openpgp: Replace time crate with std::time.Justus Winter
- In sq and sqv, use chrono to interface with the user. - Fixes #341.
2019-10-31Change license to GPLv2+.Neal H. Walfield
2019-10-30Update authors.Neal H. Walfield
2019-10-25Release 0.11.0.v0.11.0Justus Winter
2019-09-18store: Rename store::Pool to Store.Justus Winter
2019-09-18store: Rename store::Store to Mapping.Justus Winter
- Fixes #88.
2019-09-06Release 0.10.0.v0.10.0Justus Winter
2019-09-06openpgp: Rework streaming encryptor.Justus Winter
- Instead of giving a set of TPKs to the encryptor, hand in a set of recipients, which are (keyid, key)-tuples, conveniently created from key queries over TPKs. This simplifies the encryptor, and makes the key selection explicit. - Drop the EncryptionMode type. - As a nice side effect, we can now generate encrypted messages with wildcard recipient addresses.
2019-08-27openpgp: Limit size of non-data packets.Justus Winter
- This introduces a configurable limit for non-data (i.e. non-container) packets. This prevents a trivial DoS on our parser, which previously assumed that all non-data packets can be buffered. - Fixes #242.