summaryrefslogtreecommitdiffstats
path: root/openpgp/build.rs
AgeCommit message (Collapse)Author
2023-03-08openpgp: Add a new backend based on the Botan cryptographic library.Justus Winter
2023-01-05Don't select a cryptograhic backend in non-leaf crates.Justus Winter
- This way, only the leaf package has to concern itself with the selection of a cryptographic backend for Sequoia. Notably, we don't have to repeat all of sequoia-openpgp's features in all crates that use sequoia-openpgp. - Enable the new feature resolver which allows for this method. - A complication arises because we want to make `cargo test` work by default for the intermediate crates without developers having to select a cryptographic backend. To make that work, we implicitly select a backend in the dev dependencies which are enabled when compiling the tests. To make it even more convenient, we select the most convenient backend, which is CNG for Windows and Nettle, our default, for every other platform. - Now that we have implicitly selected CNG on Windows for running the tests, when the user wants to use Nettle on Windows, and does `cargo test --features sequoia-openpgp/crypto-nettle`, then two backends are selected: the implicitly selected CNG and the explicitly selected Nettle. In this case, we detect that an implicit selection has been made, and ignore the implicitly selected backend. Now, this has already been compiled by cargo (remember that we cannot influence the set of dependencies at the time the build script is run), but we can still ignore the implicit backend using conditional compilation (i.e. it will not be included in the resulting binary). The same happens on non-Windows platforms where Nettle is the implicit default for tests when the user explicitly requests a different backend. In both cases, Nettle and CNG are slim wrappers around native libraries, so the wasted compilation time is low.
2022-12-22openpgp: Add OpenSSL cryptographic backend.Wiktor Kwapisiewicz
- Adds the backend behind `crypto-openssl` feature. - Add CI configuration to run tests with the new backend. - See #333.
2021-10-05openpgp: Add a RustCrypto backend.Nikhil Benesch
- This adds a cryptographic backend based on the RustCrypto crates. The backend is marked as experimental, as the RustCrypto crates' authors state that they have not been audited and may not perform computations in constant time. Nevertheless, it may be useful in certain environments, e.g. WebAssembly. - The backend implements RSA, EdDSA and ECDH over Curve25519, IDEA, 3DES, CAST5, Blowfish, AES, Twofish, EAX, MD5, SHA1, RipeMD160, and the SHA2 family. - Notably missing are DSA, ElGamal, and ECDSA and ECDH over the NIST curves. - See #333.
2021-09-30openpgp: Add features to opt-in to experimental crypto backends.Justus Winter
2021-09-16openpgp: Sanity-check selected cryptographic backends.Justus Winter
2021-04-09Lint: Remove unecessary imports.Nora Widdecke
- https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports
2020-10-14Replace most 'extern crate' directives with 'use'.Justus Winter
- See #480.
2019-06-06openpgp, rfc2822: Drop force-rerun hack.Justus Winter
2019-05-17openpgp: Use `/` to separate path components in the test map.Justus Winter
- Fixes the tests on *ALL* platforms that do not use `/` as a directory separator. - Fixes #276.
2019-05-14openpgp: Add a filesystem-like framework for test data.Justus Winter
- Fixes #267.
2018-07-20openpgp: Add a formal grammar for validating and building TPKsNeal H. Walfield
2018-07-11openpgp: Instead of using an ad-hoc parser, use a parser generator.Neal H. Walfield
- Instead of using an ad-hoc parser for recognizing OpenPGP messages, use lalrpop, an lr(1) parser generator, for recognizing OpenPGP messages.