summaryrefslogtreecommitdiffstats
path: root/openpgp
AgeCommit message (Collapse)Author
2020-12-11commit Cargo.tomls with exact minimum versionsnora/minimal_tomlNora Widdecke
2020-12-10Correct minimal versions.Nora Widdecke
- Versions required by feature or API usage: - anyhow 1.0.5. - We use `impl From<anyhow::Error> for Box<dyn std::error::Error + Send + Sync + 'static>`, introduced in 1.0.5. - tokio 0.2.19 - We use `tokio::net::tcp::OwnedReadHalf`, introduced in 0.2.19. - chrono 0.4.10 - We use the `std` feature, introduced in 0.4.10. - thiserror 1.0.2 - futures and futures-util 0.3.5 - tempfile 3.1 - c_doctests require the same version of rand both as direct dependency and through tempfile. - Yanked versions: - structopt 0.3.11. 0.3.8 to 0.3.10 were yanked. - socket2 0.3.16. 0.3.0 to 0.3.15 were yanked. - Update our dependencies to the package versions required by other dependencies, e.g. structopt requires lazy_static 1.4.0. - clap 2.33 - lazy_static to 1.4.0 - libc to 0.2.66 - proc-macro2 to 1.0.7 - syn to 1.0.5. - winapi 0.3.8
2020-12-08openpgp: Allow dangling `,` in assert_send_and_sync! calls.Azul
2020-12-08openpgp: Add assert_send_and_sync! for more types.Azul
- All types that are `Send` and `Sync` are checked now. - Fixes #627.
2020-12-08openpgp: Use parens for assert_send_and_sync!.Azul
2020-12-08openpgp: Add assert_send_and_sync! for more types.Azul
- With !928 merged more types are `Send` and `Sync` now. - See #627.
2020-12-08openpgp: Require Policies to be Send and Sync.Azul
- This ensures that all types with Policies (`Valid*`) are `Send` and `Sync`.
2020-12-08openpgp: Allow generic types in assert_send_and_sync!.Azul
- Use generics and the anonmymous lifetime in `assert_send_and_sync!`. - See 627.
2020-12-08openpgp: Ensure public types are Send and Sync.Azul
- See #627.
2020-12-07openpgp: Include a random salt when creating signatures.Justus Winter
- This makes it harder for an attacker to convince a victim to sign a predetermined text. See Leurent, G. and Peyrin, T., 2020. SHA-1 is a Shambles, Section 7.2: > [...] if the serial number is unpredictable then the [chosen > prefix] collision attack is thwarted as a crucial part of the > hashed input is not controlled by the attacker. - We use 32 bytes of randomness, which provides plenty of entropy, yet is way smaller than the block size of the average hash function. Adding random data that is included in the signature provides an opportunity to mutate this data to attack the hash function. Limiting the amount to less than the block size is should avoid this concern. - We use a notation to include the data, because this is the least intrusive way to add it. It is also self-describing. - Fixes #597.
2020-12-07openpgp: Drop hash::Context in favor of a pub trait hash::Digest.Justus Winter
2020-12-07openpgp: Require Write for impl Digest.Justus Winter
2020-12-07openpgp: Add Digeset::algo.Justus Winter
2020-12-07openpgp: Make digest computation more robust.Justus Winter
2020-12-07openpgp: Make serialize::stream::Message Send + Sync.Justus Winter
- See #615.
2020-12-07openpgp: Make Digest Send + Sync.Justus Winter
2020-12-07openpgp: Require Mode to be Send + Sync.Justus Winter
2020-12-04openpgp: Use pure Rust EAX implementation under CNG backendIgor Matuszewski
- Fixes #556.
2020-12-04openpgp: Make Key::verify more low-level.Justus Winter
- Key::encrypt returns mpi::Ciphertext, not a PKESK packet. Similarly, change Key::verify to take a mpi::Signature instead of a Signature packet.
2020-12-04Bump version of sha1collisiondetection.Justus Winter
- Fixes build on Windows.
2020-12-01openpgp: take ownership of Features bitfieldAzul
- Since `set_features` requires ownership of `Features`, it should take ownership rather than borrowing and cloning them. See https://rust-lang.github.io/api-guidelines/flexibility.html#caller-decides-where-to-copy-and-place-data-c-caller-control . - See #616.
2020-12-01openpgp: take ownership of KeyFlags bitfieldAzul
- Make `generate_key` polymorphic over `AsRef<KeyFlags>`. - Since `set_key_flags` requires ownership of the key flags, it should take ownership rather than borrowing and cloning the them. See https://rust-lang.github.io/api-guidelines/flexibility.html#caller-decides-where-to-copy-and-place-data-c-caller-control . - See #616.
2020-12-01openpgp: Allow using `None` to indicate signer's key should be used as the ↵Wiktor Kwapisiewicz
`key` parameter. - Make sign_direct_key take Key of key::PublicParts. - Simplify calling sign_direct_key by using Into. - Allow passing None to sign_subkey_binding. - Allow passing None to sign_userid_binding. - Allow using None as key parameter. - Improve docs mentioning new default for `pk`. - `pk` set to `Option::None` will now default to signer's public key. - Fixes #565.
2020-12-01openpgp: Don't mention the unreleased sequoia-core.Justus Winter
- Fixes #602.
2020-12-01openpgp: Clarify.Justus Winter
2020-11-30openpgp: Improve documentation of Fingerprint, KeyID, and KeyHandle.Nora Widdecke
- Fixes #465.
2020-11-28openpgp: seal the serialize traits.Azul
- seal `Marshal` and `MarshalInto` traits. - this effectively also seals `Serialize` and `SerializeInto` as they depend on the former. - See #538.
2020-11-27openpgp: Drop dependency on the digest crate.Justus Winter
2020-11-27openpgp: Reset the hash algorithm when creating a SignatureBuilder.Neal H. Walfield
- When creating a `SignatureBuilder` from a `Signature`, reset the hash algorithm to `HashAlgorithm::default()`. - This ensures that updating an outdated signature won't use an outdated hash algorithm. - Fixes #609.
2020-11-27openpgp: Improve debugging output.Neal H. Walfield
- When two serialized messages in the for-each-artifact test differ, print more helpful debugging output.
2020-11-27openpgp: Mention the Cert::retain_userids and friends.Justus Winter
2020-11-27openpgp: Improve documentation.Justus Winter
- Hide the `use .. as openpgp` statement if we don't use it in the example.
2020-11-27openpgp: Add Cert::merge_public and Cert::merge_public_and_secret.Justus Winter
- Secret key material is not authenticated by OpenPGP, so care must be taken when merging certificates. - Rename Cert::merge to Cert::merge_public_and_secret. - Add new function Cert::merge_public. This function can be used to merge certificates from untrusted sources as it ignores secret key material that cannot be authenticated by OpenPGP. - Fixes #584.
2020-11-26openpgp: Don't derive Clone, Debug for CertBuilder.Justus Winter
2020-11-26openpgp: Remove unused lifetimes.Justus Winter
2020-11-26openpgp: Assert that CertBuilder is Send + Sync.Justus Winter
2020-11-26openpgp: Add a lifetime to CertBuilder.Justus Winter
- This will allow us to use the CertBuilder to change certificates with detached secret keys in the future. - Fixes #608.
2020-11-25openpgp: Add test.Justus Winter
- Fixes #613.
2020-11-24openpgp: Accept any number of (unicode) dashes in armor framing.Justus Winter
- Fixes #610.
2020-11-24openpgp: Improve tests.Justus Winter
2020-11-24openpgp: Rework footer detection.Justus Winter
2020-11-24openpgp: Return header length in armor::Kind::detect.Justus Winter
2020-11-24openpgp: Assert that Error is Send + Sync.Justus Winter
- See #615.
2020-11-24openpgp: Assert that KeyHandle is Send + Sync.Justus Winter
- See #615.
2020-11-24openpgp: Move the compound hashing functions to SignatureFields.Justus Winter
2020-11-24openpgp: Align hashing of compound objects with primitive objects.Justus Winter
2020-11-24openpgp: Handle truncated armor prefixes.Justus Winter
- Fixes #618.
2020-11-24openpgp: Drop comment.Justus Winter
- We generate Ed25519 keys, that requires the `rand` feature.
2020-11-24openpgp: seal traits in cert::amalgamationAzul
- Seal `ValidAmalgamation`, `ValidateAmalgamation` and `key::PrimaryKey` - Sealing traits so they cannot be implemented outside the openpgp crate. This way we can extend the traits without breaking the API compatibility. Every implementation of a sealed trait needs to also implement the `seal::Sealed` marker trait. - Implementing `seal::Sealed` for `ValidKeyAmalgamation<'a, P, R, R2>` also implements it for - `ValidPrimaryKeyAmalgamation<'a, P>` - `ValidSubordinateKeyAmalgamation<'a, P>` - `ValidErasedKeyAmalgamation<'a, P>` Therefore these can implement `ValidateAmalgamation` and `key::PrimaryKey` without explicitly implementing `seal::Sealed` - See #538.
2020-11-24openpgp: seal Aead trait.Azul
- Seal the Aead trait so it cannot be implemented outside the openpgp crate. - This way we can extend the trait without breaking the API compatibility. - See #538.