Age | Commit message (Collapse) | Author |
|
- 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.
|
|
- 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.
|
|
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 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.
|
|
- Fixes f9e15b3974b71aed87871999014b901a5aee03a8 by also applying
the change to the low-level cert parser.
- Fixes #1084.
|
|
- 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.
|
|
|
|
- There is no `Curve::Private`.
|
|
- 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.
|
|
- We have done the hashing, and the cert structure provides enough
context to do the verification without doing the hashing again.
|
|
|
|
- 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.
|
|
- During parsing, we parse the primary key. Keep that around for
later instead of caching only the fingerprint. Simplify accessors
accordingly.
|
|
|
|
|
|
- Notably, this is done during certificate canonicalization. This
is expensive as-is, let's keep the allocator out of it.
|
|
- Notably, this is done during certificate canonicalization. This
is expensive as-is, let's keep the allocator out of it.
|
|
|
|
- Fixes #1091.
|
|
|
|
|
|
|
|
|
|
|
|
- OpenPGP uses the uncompressed representation. Previously, the
OpenSSL backend used the compressed representation by mistake.
|
|
|
|
|
|
|
|
|
|
|
|
- Asymmetric::x25519_generate_key generates an X25519 key. Clamping
is not necessary here: X25519 mandates implicit clamping when
decrypting.
|
|
- Move common code into a common frontend function.
|
|
- Fixes #1087.
|
|
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|