summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2023-04-25XXX: UserIDBuilderneal/userid-builderNeal H. Walfield
- A start
2023-04-18openpgp: Improve documentationNeal H. Walfield
- Improve the documentation for `Cert::sort_and_dedup`, `Cert::merge_public` and `Cert::merge_public_and_secret`, and add more examples.
2023-04-17openpgp: Handle concatenated certs in the RawCertParser.Justus Winter
- Fixes #970.
2023-04-17openpgp: Use our struct Cookie in RawCertParser's BufferedReader.Justus Winter
- We cannot manipulate BufferedReader stacks across different cookie types. Use our struct Cookie for the RawCertParser so that we don't need adapters to translate between the cookie types. This way, we can pop the armored reader off if we want to.
2023-04-17Bump bindgen to 0.63.0.Justus Winter
- Also bump syn so that we can get bindgen 0.63. - This fixes a build error that we have seen on mingw builds: https://gitlab.com/sequoia-pgp/sequoia/-/jobs/4122192520
2023-04-07openpgp: Generalize test.Justus Winter
2023-04-07openpgp: Don't unwrap.Justus Winter
2023-04-07openpgp: Refactor OnePassSig::parse in preparation for v6.Justus Winter
2023-04-07openpgp: Improve error message, avoid stuttering.Justus Winter
2023-04-07openpgp: Use our digest size instead of using OpenSSL's block_size()Justus Winter
- For GCM, OpenSSL returns 1 for the block size. However, the digest_size must be 16. Use our size instead of (ab)using OpenSSL's block size interface to infer the digest size.
2023-04-07openpgp: Small improvements in the AEAD encryptor.Justus Winter
2023-04-06openpgp: Use a Vec instead of a HashMap to find subpacketsNeal H. Walfield
- Instead of using use a `HashMap` to map `SubpacketTag`s to indexes, which means hashing a `u8`, multiple heap allocations, and traversing pointers, use a `Vec` to do a table look up. - Also, use a `OnceCell` instead of implementing it using a `Mutex` and a `RefCell`. - I did the following micro-benchmark: `sq wot list neal` on a cert-d with 1500 certificates. I used sq 54fd575. I profiled it using valgrind's callgrind tool. The total number of cycles according to callgrind drops from 49,887,487,592 to 44,253,794,643 (delta: -5,633,692,949), and the number of cycles for `SubpacketAreas::subpacket` drops from 5,509,345,486 to the function no longer being present in the trace.
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.