Age | Commit message (Collapse) | Author |
|
|
|
- Put the Issuer, IssuerFingerprint, and EmbeddedSignature
subpackets into the hashed subpacket area.
- Even though this information is self-authenticating (the act of
validating the signature authenticates the subpacket), it is stored
in the unhashed subpacket area. This has the advantage that the
signer authenticates the set of issuers. Furthermore, it makes
handling of the resulting signatures more robust: If there are two
two signatures that are equal modulo the contents of the unhashed
area, there is the question of how to merge the information in the
unhashed areas. Storing issuer information in the hashed area avoids
this problem.
|
|
|
|
- In order to deduplicate signatures, we need to sort them first.
Previously, we used sig_cmp for that, which sorts by signature
creation time and uses the actual signature data as a tie breaker.
This, however, is not a suitable relation for deduplication with
Signature::normalized_eq: Here, we need an order that is consistent
with the equality operation, which sig_cmp is not.
- Fix this by providing and using Signature::normalized_cmp.
- Fixes #573.
|
|
- In order to deduplicate signatures, we need to be able to sort
them. This change implements PartialOrd and Ord for all relevant
types. Like PartialEq and Eq it is based on the serialized form,
and can be derived for most of the types.
|
|
|
|
- Fixes #523.
|
|
- crypto::mpi::SecretKeyMaterial is the sole exception to this rule,
because we are trying to compare them in constant time. Add a
hint for clippy that this is okay.
- KeyHandle no longer implements Eq, so there is no point in
implementing Hash. Simply remove it.
- Implement Hash for SubpacketLength by hashing the serialized
form. Manually implement Eq for consistency.
- Fixes #567.
|
|
- Use the correct equality function when deduplicating signatures.
- Fixes #568.
|
|
|
|
|
|
- https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount
- Replace `read` with `read_exact`, so that an error is returned if
the buffer cannot be filled.
|
|
|
|
- Fixes #564.
|
|
- The tests used a certificate that expired by now. However,
because Sequoia did not consider subkeys of expired certificates
to be also expired, the tests were happy.
|
|
- We erroneously assumed that when BufferedReader::next() is called,
a SEIP container must be opaque and hence there cannot be a
buffered_reader::Reserve on the stack with Cookie::fake_eof set.
But, we could simply call BufferedReader::next() after the SEIP
packet is decrypted, or buffer a SEIP packet's body, then call
BufferedReader::recurse(), which falls back to
BufferedReader::next() because some data has been read.
- Remove the erroneous assertion.
- Fixes #455.
|
|
- Mark `aead_algo` as available only during tests,
- Remove support for AEAD from `sop`,
- Mark `aead` parameter in FFI as unused,
- openpgp-ffi: Drop `aead_algo` argument from `pgp_encryptor_new`,
- Fixes #550.
|
|
- Adjust code to test for `cfg(test)` only,
- Remove `quickcheck` and `rand` from dependencies so that they stay
only in dev-dependencies,
- Remove mention of `x-quickcheck` feature from the documentation,
- Fixes #545.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- ECDH public fields have a mechanism for future extensions.
Currently, this field has to be set to 1. Enforce this at parse
time.
- Fixes #561.
|
|
|
|
|
|
|
|
|
|
- Change `expect` to `context(...)?`,
- Change `unwrap` to `?`.
|
|
- Move the documentation, fix some formatting to prevent automatic
escaping and mangling of the grammar.
- Add some links to the various methods.
- Fixes #558.
|
|
- This prevents monomorphization.
|
|
|
|
- Demonstrate dropping, buffering of all bodies, buffering of
individual bodies, and streaming.
- Fixes #540.
|
|
|
|
- Fixes #549.
|
|
|
|
This reverts commit e18c79c37db27d138caeed67025d8b247410c3b8.
|
|
- Marker packets must be ignored everywhere. Add them to the
heuristics detecting base64 encoded OpenPGP data in the armor
decoder, and to the packet parser's resyncing code.
- Fixes #546.
|
|
- When updating the expiration time of signing-capable subkeys, also
create a new primary key binding signature.
- Fixes #534.
|
|
|
|
|
|
- Evaluate the certificate five minutes in the future now that we
backdate newly created certs by one minute.
|
|
- If a signature is created from a template, make sure the new
signature has a newer creation time than the original one, while
still being valid (i.e. not in the future). This makes it easy to
robustly update binding signatures.
- Fixes #488.
|
|
- If not given an explicit creation time, backdate created
certificates by a minute. This has the advantage that the
certificate can immediately be customized:
In order to reliably override a binding signature, the overriding
binding signature must be newer than the existing signature. If,
however, the existing signature is created `now`, any newer
signature must have a future creation time, and is considered
invalid by Sequoia. To avoid this, we backdate certificate
creation times (and hence binding signature creation times), so
that there is "space" between the creation time and now for
signature updates.
- See #488.
|
|
This reverts commit ebe340e163c65078534c6905f3f46b4dbdef553c.
|
|
- This allows updating signatures like we update keys.
- Fixes #492.
|
|
|