summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2023-04-04openpgp: Implement v6 key IDs.crypto-refresh-keyhandlesJustus Winter
- v4 and v6 key IDs are both 8 octets in length, hence we cannot distinguish them. - Rename KeyID::V4 to KeyID::Long to reflect this. Handle aliasing with v6 fingerprints.
2023-04-04openpgp: Implement v6 fingerprints.Justus Winter
2023-04-04ci: Disable most jobs.Justus Winter
- We have a lot of feature branches, let's save some cycles.
2023-04-04openpgp: Work-In-Progress implementation of RFC9760.Justus Winter
- In this branch, we will collect our work implementing the next revision of OpenPGP, RFC9760. - The ongoing work will happen in feature branches starting from this commit. A feature branch may also branch off from a commit further down in the crypto-refresh branch. - Small and complete changes may be collected into this branch, especially changes introducing fundamental types required by most feature brances, such as v6 fingerprints. - We may occasionally rebase this branch on top of the current main development branch, and use the opportunity to linearize it.
2023-04-04openpgp: Implement Arbitrary for KeyHandle, add tests.Justus Winter
2023-04-04openpgp: Make KeyHandle::partial_cmp transitive.Justus Winter
- Previously, KeyHandle::partial_cmp tried to sort aliasing handles together. However, this made the function not transitive, which is required by implementations of PartialOrd. - Fix this by simply comparing the byte representations, and computing aliasing in KeyHandle::aliases. - Note: This makes PartialOrd (and PartialEq) total, but we still don't implement Ord (and Eq) to prevent naive comparisons.
2023-03-27openpgp: Introduce `StandardPolicy::accept_hash_property`.Wiktor Kwapisiewicz
- This function allows accepting hash algorithm for one particular security property. - Closes https://gitlab.com/sequoia-pgp/sequoia/-/issues/595
2023-03-25openpgp: Update lalrpop to 0.19.9 to clean up deprection warningJeong YunWon
2023-03-24openpgp: Provide a common public SymmetricAlgorithm::is_supported.Justus Winter
2023-03-24openpgp: Hardcode symmetric algorithm key and block sizes.Justus Winter
- Previously, every crypto backend had to implement these methods. Instead, implement them just once and hard code the lengths. Anchor them using the values from the crypto backends, if available. - Fixes #966.
2023-03-24openpgp: Use the correct (3TDEA) variant of 3DES in RustCrypto.Justus Winter
- Previously, we incorrectly selected the 2TDEA variant that uses 112-bit keys.
2023-03-24openpgp: Fix IDEA support in Botan.Justus Winter
- Supply key and block size for IDEA. Without that information, IDEA is not usable in practice.
2023-03-24net: Release 0.27.0net/v0.27.0Neal H. Walfield
2023-03-23openpgp: Release 1.14.0openpgp/v1.14.0Neal H. Walfield
2023-03-23openpgp: Move `Key4::import_secret_cv25519` into common code.Wiktor Kwapisiewicz
- Most of the logic in this function is the same across backends. - Introduce `Key4::derive_cv25519_public_key` that does backend-specific derivation. - Fixes https://gitlab.com/sequoia-pgp/sequoia/-/issues/958
2023-03-23openpgp: Implement Parse for RawCertNeal H. Walfield
- We implement `Parse` for `Cert`. Do the same for `RawCert` and check that they have the same semantics.
2023-03-23openpgp: Re-export buffered_reader.Justus Winter
- We use this in our API, and re-exporting it here makes it easy to use the correct version of the crate in downstream code without having to explicitly depend on it.
2023-03-23buffered-reader: Hoist accessing lazy static out of the loop.Justus Winter
2023-03-23buffered-reader: Deduplicate test data.Justus Winter
- Let's not rely on the linker to deduplicate our 50k test vector.
2023-03-23buffered-reader: Implement BufferedReader::copy.Justus Winter
- This is like io::copy, but more efficient as it avoids an extra copy, and it will try to copy all the data the reader has already buffered. - Fixes #974.
2023-03-22openpgp: Fix documentation, we need a signing key for sign_message.Justus Winter
2023-03-22ci: Do not reinstall build dependencies in the clippy job.Justus Winter
2023-03-22ci: Do not pin Rust versions (except for clippy).Justus Winter
- Instead, rely on the base images to be up-to-date. We still want to pin clippy, because updating that tends to be very noisy.
2023-03-22ci: Do not reinstall GnuPG, it is already part of the image.Justus Winter
2023-03-22ci: Do not run the benchmarks as tests on armv7.Justus Winter
- We run these under qemu because we lack real hardware, and it is one of the slower jobs. Speed it up a little by not running the benchmarks as tests here.
2023-03-22ci: Do not run the doctests on Windows.Justus Winter
- Doctests have to be individually compiled, linked, and executed. This seems to be very slow on Windows: running the doctests accounts for two thirds of the total job runtime.
2023-03-22openpgp: Pre-allocate backing for the subpacket cache.Justus Winter
2023-03-22openpgp: When looking up subpackets, acquire the lock just once.Justus Winter
2023-03-21openpgp: Delay non-trivial context computations.Justus Winter
- Fixes #892.
2023-03-21openpgp: Avoid heap allocation during fingerprint computing.Justus Winter
2023-03-21openpgp: Cache fingerprint calculations.Justus Winter
- Fixes #645.
2023-03-20openpgp: Small cleanups in the Botan backend.Justus Winter
- Remove development remnants, actually use the creation time when importing RSA keys.
2023-03-20openpgp: Add check for CAST5.Wiktor Kwapisiewicz
- OpenSSL can be compiled with no support for CAST5. - This will be indicated by setting `osslconf` variable to `OPENSSL_NO_CAST`. - See https://github.com/sfackler/rust-openssl/pull/1786
2023-03-15openpgp: Report Nettle's library version and optional features.Justus Winter
2023-03-15openpgp: Bump nettle to 7.2.2.Justus Winter
- Notably, this zeros symmetric encryption keys in memory once we're done encrypting or decrypting.
2023-03-14openpgp: Fix labeling fields ending on a 16 byte boundary.Justus Winter
- This is a more comprehensive fix than bee82c2952512a5585e93f180180ca45468d4f2b.
2023-03-14openpgp: Immediately create ProtectedMPIs for secrets.Justus Winter
- Avoid creating an MPI first, as this may leak the secrets.
2023-03-14openpgp: Avoid leaking secrets when parsing secret key material.Justus Winter
2023-03-14openpgp: Avoid leaking secrets when constructing ProtectedMPIs.Justus Winter
2023-03-14openpgp: Avoid a heap allocation during MPI parsing.Justus Winter
- Not only was the heap allocation superfluous, it also leaked secrets into the heap.
2023-03-14openpgp: Simplify trimming of leading zeros.Justus Winter
2023-03-13openpgp: New constructor hex::Dumper::with_offset.Justus Winter
2023-03-13openpgp: Fix dumping fields ending on a 16 byte boundary.Justus Winter
2023-03-13ci: Drop job pushing sq to Gitlab's Docker Registry.Justus Winter
- This has to move to sq's new repository.
2023-03-13openpgp: Bump botan to 0.10.1 to avoid raising our MSRV.Justus Winter
2023-03-13openpgp: Fix test.Justus Winter
- Previously, NotAsFarAsWeKnow was interpreted as identifier making the if let binding irrefutable. - Fixes 7afee60b7cf0f19559bfccd8c42fdc77f6b9c655.
2023-03-08openpgp: Add a new backend based on the Botan cryptographic library.Justus Winter
2023-03-08openpgp: Feature the OpenSSL backend more prominently.Justus Winter
2023-03-07openpgp: Protect SecretKeyMaterial during memory encryption.Justus Winter
2023-03-07openpgp: Prevent leaking secrets accessing encrypted memory.Justus Winter
- Track the length of the plaintext data. This makes it possible to use unchunked AEAD and decrypt the data without copying it into a growing vector. Also, avoid io::copy, as this leaks secrets into its buffer.