summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2024-03-07XXX: Enable sequoia-ipc tests on windows.neal/home-directoryNeal H. Walfield
2024-03-07Add a test to check that a context's home directory really exists.Neal H. Walfield
2024-03-06ipc: Add callbacks to simplify tracing client-server interactions.Justus Winter
- To simplify debugging client-server interactions, add tracing callbacks to `Assuan`.
2024-03-06ipc: Update Client::send_simple with the version from the chameleon.Neal H. Walfield
- The Chameleon copied and improved `Client::send_simple`. Update the copy here. See: https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/blob/70802790d7d95c0084a8fea71a0836b3efc39910/src/agent.rs#L182
2024-03-06ipc: Don't panic if the server disappears, return an error.Neal H. Walfield
- If the server exits, we set the connection's state to `WriteState::Dead`. - When sending a message, don't panic if the connection's state is `WriteState::Dead`. Instead, return an error message.
2024-03-04Retire dvzrv and wiktor.Neal H. Walfield
- dvzrv and wiktor left the project, rescind their authorizations. - See https://gitlab.com/sequoia-pgp/sequoia-web/-/merge_requests/47 .
2024-02-26ci: make msvc jobs print env varsDevan Carpenter
2024-02-25openpgp: Handle header lines in the cleartext signature framework.Justus Winter
- Fixes #1091.
2024-02-25openpgp: Improve tracing.Justus Winter
2024-02-23ci: use our CI/CD components from common-ci.gitDevan Carpenter
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-20ipc: Release 0.33.0.ipc/v0.33.0Neal H. Walfield
2024-02-20Update dependencies.Neal H. Walfield
- Keep `anyhow` at 1.0.76; the latest version (1.0.80) still exhibits the performance problem on Windows. - See https://github.com/dtolnay/anyhow/issues/347 .
2024-02-20ipc: Ensure server's socket is in non-blocking mode.Neal H. Walfield
- According to the documentation for [`TcpListener::from_std`] the passed socket must be in non-blocking mode: > The caller is responsible for ensuring that the listener is in > non-blocking mode. Otherwise all I/O operations on the listener > will block the thread, which will cause unexpected > behavior. Non-blocking mode can be set using set_nonblocking. [`TcpListener::from_std`]: https://docs.rs/tokio/1.36.0/tokio/net/struct.TcpListener.html - Make sure that is the case for any socket we pass to `TcpListener::from_std`.
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-26ipc: Release 0.32.0.ipc/v0.32.0Neal H. Walfield
2024-01-26ipc: Upgrade capnp-rpc.Neal H. Walfield
2024-01-26Update p≡p contact information and p≡p Engine URL.Luca Saiu
Signed-off-by: Luca Saiu <positron@pep-project.org>
2024-01-26openpgp: Release 1.18.0.openpgp/v1.18.0Neal H. Walfield
2024-01-26openpgp: Upgrade idna.Neal H. Walfield
2024-01-26Downgrade anyhow to 1.0.76.Neal H. Walfield
- There appears to be a performance regression in version 1.0.77, version 1.0.78, and version 1.0.79 of anyhow on Windows. - Downgrade to 1.0.76. - See https://github.com/dtolnay/anyhow/issues/347
2024-01-25Update dependencies.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
2024-01-25openpgp: Add Cert::into_packets2, TSK::into_packets.Justus Winter
- Cert::into_packet is problematic because it does not protect from accidentally leaking secret key material. The documentation even warns about that, but it still happened. Hence, this is a violation of our safe-by-default principle guiding the API, and we should fix it. - The replacement, Cert::into_packets2, strips secret key material just as serializing a cert does. To convert to a sequence of packets while keeping the secret key material, a new function is added: TSK::into_packets, analogous to how TSK serializes secret key material.
2024-01-25openpgp: Factor out code adding a secret key stub.Justus Winter
2024-01-25openpgp: Make TSK optionally own the Cert.Justus Winter
2024-01-25openpgp: Tweak lifetime of filter function's argument.Justus Winter
- Previously, the filter operated on references with the lifetime 'a only, which is the lifetime associated with the Cert the TSK object references. Change the signature to take a reference with an anonymous lifetime instead. - This makes the filter more general, but it can no longer rely on the fact that the references are live for 'a. However, the function is a Fn, not a FnMut, and returns a bool, so the function cannot store the reference anywhere, so this shouldn't make a difference in practice. - Annoyingly, there is a wrinkle. If a closure bound to an identifier is given to TSK::set_filter, the Rust compiler incorrectly (or over eagerly?) specializes the function in a way that it doesn't match the callback's prototype: error[E0308]: mismatched types --> openpgp/src/serialize/cert.rs:946:16 | 946 | check!(tsk_0.as_tsk().set_filter(no_secrets), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other | = note: expected trait `for<'a> Fn<(&'a packet::Key<packet::key::SecretParts, packet::key::UnspecifiedRole>,)>` found trait `Fn<(&packet::Key<packet::key::SecretParts, packet::key::UnspecifiedRole>,)>` note: this closure does not fulfill the lifetime requirements --> openpgp/src/serialize/cert.rs:940:26 | 940 | let no_secrets = |_| false; | ^^^ note: the lifetime requirement is introduced here --> openpgp/src/serialize/cert.rs:318:23 | 318 | where P: 'a + Fn(&key::UnspecifiedSecret) -> bool | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: implementation of `FnOnce` is not general enough --> openpgp/src/serialize/cert.rs:946:16 | 946 | check!(tsk_0.as_tsk().set_filter(no_secrets), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `FnOnce` is not general enough | = note: closure with signature `fn(&'2 packet::Key<packet::key::SecretParts, packet::key::UnspecifiedRole>) -> bool` must implement `FnOnce<(&'1 packet::Key<packet::key::SecretParts, packet::key::UnspecifiedRole>,)>`, for any lifetime `'1`... = note: ...but it actually implements `FnOnce<(&'2 packet::Key<packet::key::SecretParts, packet::key::UnspecifiedRole>,)>`, for some specific lifetime `'2` This is easily fixed by providing a partial type for the callback's argument. This commit includes a tweak for our test.
2024-01-25net: Derive Clone for KeyServer.Justus Winter
2024-01-25openpgp: Reject short key IDs.Neal H. Walfield
- When parsing a key ID string, reject short key IDs. - Note: we can't reject short key IDs in `KeyID::from_bytes`, because that function in infallible. But, that function does return `KeyID::Invalid` when presented with a short key ID. - Fixes #388.
2024-01-24openpgp: Improve example.Neal H. Walfield
- Simplify initialization. - Use `KeyHandle::aliases` to compare two `KeyHandle`s.
2024-01-24openpgp: Improve documentation.Neal H. Walfield
- Add references to related functions.
2024-01-24openpgp: Use SubpacketAreas::issuers to get issuer subpackets.Neal H. Walfield
- When checking for an issuer subpacket, `SubpacketAreas::issuers`, not `SubpacketAreas::get_issuers`.
2024-01-24openpgp: Use KeyHandle::aliases to check for a fingerprint.Neal H. Walfield
- When checking of a list of issuers contains a fingerprint, use `KeyHandle::aliases`, don't search for the fingerprint, and then the key ID.
2024-01-24openpgp: Add UserID::from_static_bytes, which is constant.Neal H. Walfield
- Add `UserID::from_static_bytes`, which is equivalent to `UserID::from` for a byte slice, but is a constant function.
2024-01-23openpgp: Avoid unnecessary heap allocations when creating UserIDs.Neal H. Walfield
- When creating a `UserID`, avoid unnecessary heap allocations by making better use of what we have. For example, we can directly convert a `String` to a `Vec<u8>` without allocating a `Vec<u8>`, and copying the contents.