Age | Commit message (Collapse) | Author |
|
- Fix `CertParser::iter`'s type to be a `Box<'a +
Iterator<Item=Result<Packet>>>` rather than trying to be generic.
|
|
- Now that `PacktSource::Iter` returns a `Result<Packet>` instead of
a `Packet`, we can implement `PacketSource::PacketParser` in terms
of `PacktSource::Iter`.
|
|
- Change `CertParser` to take a fallible iterator.
- This change allows the iterator to propagate parse errors as such.
Otherwise, parse errors are indistinguishable from EOF.
|
|
- See #498.
|
|
- See #498.
|
|
- See #498.
|
|
- Implement IntoIter and Deref to &'a [MessageLayer<'a>], drop the
custom iteration structs.
|
|
- Align Cert::set_expiration_time with
KeyAmalgamation::set_expiration_time, i.e. return the signatures
instead of merging them directly.
- Fixes #491.
|
|
- Change `ValidKeyAmalgamation::set_expiration_time` to return a
`Result<Vec<Signature>>` instead of a `Result<Vec<Packet>>`.
|
|
- Change `Cert::merge_packets` to take an `IntoIterator` instead of
a vector.
- This change simplifies the most common case of passing in a single
packet, and doesn't make the second most common case of passing in
a vector of packets any more complicated.
|
|
- Drop `Cert::from_packet_pile`.
- Fixes #462.
|
|
- Rename `Cert::revoke_in_place` to `Cert::revoke`.
- Return the revocation certificate; don't merge it.
- Fixes #485.
|
|
- Rename `Cert::revoked`, `ValidCert::revoked`,
`ValidAmalgamation::revoked`, and `ComponentBundle::revoked` to
revocation_status to more accurately match what it does.
- Don't rename `ValidComponentAmalgamationIter::revoked` or
`ValidKeyAmalgamationIter::revoked`. They don't return the
revocation status; they check whether the key is revoked.
|
|
- Don't assume that the current binding signature should be used;
include a reference time.
|
|
- Add a new constructor that takes headers. This allows us to make
the header argument polymorphic.
|
|
This reverts commit 2e1eec5fe4157a391a13554ff7df3075cfe043cc.
|
|
- Fixes #484.
|
|
- See #484.
|
|
- Make `cert::amalgamation::key` a public module.
- Move `cert::amalgamation::keyiter` to
`cert::amalgamation::key::iter`. Have `cert::amalgamation::key`
export its public symbols.
|
|
- This avoids the partial implementation imitating
std::option::Option, replacing it with std::result::Result.
- As a benefit, std::result::Result is in the prelude, simplifying a
lot of parsing loops.
|
|
|
|
|
|
- Change `mark_role_primary` to `role_into_primary`.
- Change `mark_role_primary_ref` to `role_as_primary`.
- Change `mark_role_subordinate` to `role_into_subordinate`.
- Change `mark_role_subordinate_ref` to `role_as_subordinate`.
- Change `mark_role_unspecified` to `role_into_unspecified`.
- Change `mark_role_unspecified_ref` to `role_as_unspecified`.
- Fixes #452.
|
|
- Previously, Message was polymorphic over the cookie. However, the
writer stack framework only has one user, and it likely ever will,
so I don't really see the point in complicating our interface.
|
|
- This aligns it with AED::symmetric_algo and SKESK::symmetric_algo.
|
|
- KeyID::as_slice and KeyID::from_bytes mirror each other. This
should be reflected in the functions' names. Also, as_bytes is
more descriptive.
- Same for Fingerprint::as_slice and Fingerprint::as_bytes.
- KeyHandle::as_slice renamed for consistency.
|
|
|
|
- Rename `ComponentBundleIter` to `ComponentAmalgamationIter` and
`ValidComponentBundleIter` to `ValidComponentAmalgamationIter`.
- Move module from cert::bundle to cert::amalgamation.
- Fixes 8ebaf6e4ada1cea0b9e6f6dfee61c22cfdc9748c.
|
|
|
|
|
|
- Change `mark_parts_public` to `parts_into_public`,
- Change `mark_parts_public_ref` to `parts_as_public`,
- Change `mark_parts_secret` to `parts_into_secret`,
- Change `mark_parts_secret_ref` to `parts_as_secret`,
- Change `mark_parts_unspecified` to `parts_into_unspecified`,
- Change `mark_parts_unspecified_ref` to `parts_as_unspecified`,
- Fixes #452.
|
|
|
|
|
|
- Previously, Message::new returned a writer::Stack, and Message was
just an empty struct. Unify the types. This makes sense, because
if you have a message, and encrypt it, you get a message.
- Make the writer module private. This is an implementation detail.
|
|
|
|
- Rename `KeyIter` to `KeyAmalgamationIter`, `ValidKeyIter` to
`ValidKeyAmalgamationIter`.
- Rename `cert/keyiter.rs` to `cert/amalgamation/iter.rs`.
|
|
- Rename `ComponentIter` to `ComponentBundleIter`, which is more
accurate.
- Rename the module from `cert/component_iter.rs` to
`cert/bundle/iter.rs`.
|
|
- Add the `UserID`, `UserIDAmalgamation` and
`ValidUserIDAmalgamation` types, and some associated methods.
- Replace the use of `UserIDBundle` with `UserIDAmalgamation` and
`ValidUserIDAmalgamation`.
|
|
|
|
- Cf. c4f087f886bd66f4177093569db615dc1c1e9e1d
|
|
|
|
- See #462.
|
|
- See #462.
|
|
|
|
- If looking up a binding signature fails, don't merely return None,
but an Err(_) that explains the lookup failure. For example, a
binding signature may be present, but it may not meet the policy.
- Fixes #460.
|
|
|
|
- Change ValidAmalgamation::cert to return a `&ValidCert` instead of
a `Cert`.
- Fixes #454.
|
|
- Previously, we transformed data and detached signatures into
signed messages on the fly, then used the streaming Verifier to
verify the message. However, this introduces a nontrivial
overhead, even if unnecessary copies are carefully avoided.
- Instead, specialize the streaming Decryptor to handle detached
signatures. use crypto::hash_buffered_reader to compute the
hashes over the data, then attach the computed signatures to the
signature packets, and use Decryptor's verification machinery.
- While this is arguably less elegant, it is much simpler, and a lot
faster. Notably, if we operate on files and can mmap them into
memory, we can compute the hash in one call to the compression
function. Verification of detached signatures is an important use
case, so this speedup outweighs the loss of elegance.
- Fixes #457.
|
|
- Expose ValidKeyAmalgamation::with_policy in the C FFI.
|
|
- Expose `ValidKeyAmalgamation::set_expiration_time` to the C FFI.
|