summaryrefslogtreecommitdiffstats
path: root/openpgp
AgeCommit message (Collapse)Author
2024-04-17openpgp: Require backsigs for auth and cert subkeys.justus/strict-backsigsJustus Winter
- Use KeyFlags::require_primary_key_binding. Aligns behavior and signals intent. These are the places where we consume subkey binding signatures and may want to check for the primary key binding signature. - Fixes #559.
2024-04-17openpgp: Add and use KeyFlags::require_primary_key_binding.Justus Winter
- Simplifies the code and signals intent. These are the places where we produce subkey binding signatures and want to add primary key binding signatures if appropriate. - See #559.
2024-04-16openpgp: Support NistP521 using the RustCrypto backend.Justus Winter
2024-04-16openpgp: Support NistP384 using the RustCrypto backend.Justus Winter
2024-04-16openpgp: Refactor imports.Justus Winter
2024-04-16openpgp: Remove debugging remnant.Justus Winter
2024-04-15openpgp: Fix adding authenticated issuer information.Justus Winter
- When we discover issuer information not yet recorded in the signature, we insert this information when we get the chance. However, previously this failed to set the authenticated flag because it was cleared in SubpacketArea::add. Fix that.
2024-04-15openpgp: Simplify intra-project link.Justus Winter
2024-04-15openpgp: Improve documentation.Justus Winter
2024-04-15openpgp: Improve documentation.Justus Winter
2024-04-11openpgp: Release 1.20.0.openpgp/v1.20.0Justus Winter
2024-04-11ci: Update clippy to Rust 1.70.0.Justus Winter
2024-04-11Update base64.Justus Winter
2024-04-11openpgp: Move the default v3 signature cutoff to 2021.Justus Winter
- Previously, we rejected v3 signatures after 2007 by default. However, Panu Matilainen observed: GnuPG appears to have only switched to v4 by default in version 1.4.8, released on 2007-12-20. Before that was in the hands of users would've been many more months, and in case of users of enterprise distro users, years. For example, RHEL 5 (initially released in early 2007) had 1.4.5 still at it's end-of-life in 2017 (and extended life end at 2020) so users on that would've still been merrily (and probably unknowingly) producing v3 signatures at 2017. - RHEL 5 support ended 2020-11-30. Cryptographically, there is nothing wrong with them. Reject v3 signatures only after 2021-02-01. - Fixes #948.
2024-04-11openpgp: Align definition of self-signature.Justus Winter
- Fixes f9e15b3974b71aed87871999014b901a5aee03a8 by also applying the change to the low-level cert parser. - Fixes #1084.
2024-04-10openpgp: Add S2K::Implicit.Justus Winter
- For historical reasons, if the S2K usage octet is not a known S2K mechanism, the octet denotes a symmetric algorithm used to encrypt the key material with. In this case, the symmetric key is the MD5 sum over the password. See section 5.5.3. Secret-Key Packet Formats of RFC4880.While this is obviously not a great choice, it is no worse than `S2K::Simple { hash: MD5 }`, since it is equivalent to that. - Model this by adding a new S2K variant. - Notably, this fixes handling of packets with unknown S2K mechanisms. Under the model of RFC4880, which we implement, any unknown S2K mechanism is an implicit S2K, where the usage octet denotes an unsupported symmetric algorithm. Using this will fail, but we now can parse and serialize it correctly, and with them the secret key packets they come in. - Fixes #1095.
2024-04-10openpgp: Improve tracing, trace parsing failures.Justus Winter
2024-04-08openpgp: Fix documentation.Justus Winter
- There is no `Curve::Private`.
2024-04-08openpgp: Add Signature::verify_signature.Justus Winter
- Similar to Signature::verify, but doesn't constrain to document signatures. This allows for faster verification of third-party signatures on certs, taking advantage of the fact that we computed the digest during certificate canonicalization.
2024-03-24openpgp: Remember digests during certificate canonicalization.Justus Winter
- We have done the hashing, and the cert structure provides enough context to do the verification without doing the hashing again.
2024-03-24openpgp: Stash the digest on successful signature verifications.Justus Winter
2024-03-24openpgp: Rework signature verification.Justus Winter
- Introduce a new function, Signature::verify_digest_internal, that only uses concrete types to reduce monomorphization, handles the stashed computed digest, and takes an optionally owned signature digest.
2024-03-22openpgp: Optimize RawCert::primary_key.Justus Winter
- During parsing, we parse the primary key. Keep that around for later instead of caching only the fingerprint. Simplify accessors accordingly.
2024-03-21openpgp: Fix documentation.Justus Winter
2024-03-21openpgp: Improve tracing.Justus Winter
2024-03-16openpgp: Avoid heap allocation when hashing signatures.Justus Winter
- Notably, this is done during certificate canonicalization. This is expensive as-is, let's keep the allocator out of it.
2024-03-16openpgp: Avoid heap allocation when hashing keys.Justus Winter
- Notably, this is done during certificate canonicalization. This is expensive as-is, let's keep the allocator out of it.
2024-03-13openpgp: Include the reason for why a primary key is unsupported.Justus Winter
2024-02-25openpgp: Handle header lines in the cleartext signature framework.Justus Winter
- Fixes #1091.
2024-02-25openpgp: Improve tracing.Justus Winter
2024-02-20openpgp: Release 1.19.0.openpgp/v1.19.0Justus Winter
2024-02-20openpgp: Add test making sure junk pseudo-packets have a map.Justus Winter
2024-02-20openpgp: Improve tracing.Justus Winter
2024-02-20openpgp: Add test for curve point representations.Justus Winter
2024-02-20openpgp: Fix serialized points on Weierstrass curves with OpenSSL.Justus Winter
- OpenPGP uses the uncompressed representation. Previously, the OpenSSL backend used the compressed representation by mistake.
2024-02-20openpgp: Test ECC key creation and operations.Justus Winter
2024-02-20openpgp: New function Curve::variants.Justus Winter
2024-02-20openpgp: Fix creating Brainpool keys with OpenSSL.Justus Winter
2024-02-20openpgp: Fix creating Brainpool keys with Botan.Justus Winter
2024-02-20openpgp: Fix building the tests with the fuzzing backend.Justus Winter
2024-02-13openpgp: Remove superfluous clamping.Justus Winter
- Asymmetric::x25519_generate_key generates an X25519 key. Clamping is not necessary here: X25519 mandates implicit clamping when decrypting.
2024-02-13openpgp: Refactor Key4::generate_ecc.Justus Winter
- Move common code into a common frontend function.
2024-02-13openpgp: Clamp the secret key in Key4::import_secret_cv25519.Justus Winter
- Fixes #1087.
2024-02-13openpgp: Fix markup.Justus Winter
2024-01-26openpgp: Release 1.18.0.openpgp/v1.18.0Neal H. Walfield
2024-01-26openpgp: Upgrade idna.Neal H. Walfield
2024-01-25openpgp: Implement Arbitrary for KeyHandle, add tests.Justus Winter
2024-01-25openpgp: 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.
2024-01-25openpgp: Improve deprecation note.Justus Winter
2024-01-25openpgp: Deprecate Cert::into_packets.Justus Winter