summaryrefslogtreecommitdiffstats
path: root/openpgp/NEWS
AgeCommit message (Collapse)Author
2023-03-23openpgp: Implement Parse for RawCertNeal H. Walfield
- We implement `Parse` for `Cert`. Do the same for `RawCert` and check that they have the same semantics.
2023-03-23openpgp: Re-export buffered_reader.Justus Winter
- We use this in our API, and re-exporting it here makes it easy to use the correct version of the crate in downstream code without having to explicitly depend on it.
2023-03-13openpgp: New constructor hex::Dumper::with_offset.Justus Winter
2023-03-08openpgp: Add a new backend based on the Botan cryptographic library.Justus Winter
2023-03-07openpgp: Prevent secrets from leaking into the BufferedReader stack.Justus Winter
- When parsing secrets using the BufferedReader protocol, they may leak into buffers of the readers in the BufferedReader stack. This is is most problematic when parsing SecretKeyMaterial. - Deprecate SecretKeyMaterial::parse* in favor of variants that operate on bytes. Then, we can use the memory-backed BufferedReader which does not introduce additional buffering (and neither does the Dub reader used in the PackedHeaderParser).
2023-03-07openpgp: New constructor to allocate protected memory.Justus Winter
2023-03-01openpgp: Add support for brainpoolP384r1.Justus Winter
- One of the brainpool curves was not included in our enum Curve, because at the time we implemented ECC support, it wasn't part of the RFC4880bis document. - Unfortunately, we failed to mark enum Curve as non-exhaustive, so we cannot add a variant without breaking the API. - We can, however, support the curve by matching on its OID.
2023-01-06openpgp: Split certificates without parsing the packets.Neal H. Walfield
- Add `RawCertParser`, which splits keyrings into individual certificates, similar to `CertParser`, but without invoking the heavy machinery of the `CertParser`. - `RawCertParser` uses the OpenPGP framing information to identify the packets, and it makes sure that the packets form a valid TPK or TSK as per Sections 11.1 and 11.2 of RFC 4880, respectively.
2023-01-06openpgp: Update NEWS regarding the OpenSSL backend.Neal H. Walfield
2023-01-06openpgp: Add missing NEWS for 1.12.0.Neal H. Walfield
2022-11-17openpgp: Allow setting a policy for specific versions of a packet.Neal H. Walfield
- For some packets we'd like to have different policies depending on the version. This in particular applies to Signatures: by default we want to reject v3 signatures, but accept v4 signatures. - By default, reject v3 signatures as of 2007. - Fixes: #945
2022-11-15openpgp: Simplify using a good list with a StandardPolicy.Neal H. Walfield
- To use a good list, we need to reject all options by default and then only enable those on the good list. - Add a mechanism to reject all options in a particular category (hash algorithms, critical subpackets, asymmetric algorithms, symmetric algorithms, AEAD algorithms, and packet tags). - See #941.
2022-11-15openpgp: Add a method to iterate over all variants of some enums.Neal H. Walfield
- It is sometimes useful to iterate over all variants of a given enum. - Add the `variants` method to AsymmetricAlgorithm `PublicKeyAlgorithm`, `SymmetricAlgorithm`, `AEADAlgorithm`, `CompressionAlgorithm`, `HashAlgorithm`, `SignatureType`, `ReasonForRevocation`, `DataFormat`, `packet::Tag`, and `SubpacketTag` to do this.
2022-11-11openpgp: Add support for verifying v3 signatures.Neal H. Walfield
- RFC 4880 explicitly allows the use of v3 signatures, but adds: > Implementations SHOULD accept V3 signatures. Implementations > SHOULD generate V4 signatures. - In practice, rpm-based distributions are generating v3 signatures, and it will be awhile before we can actually stop supporting them. https://bugzilla.redhat.com/show_bug.cgi?id=2141686#c20 - Add support for parsing, verifying, and serializing v3 signatures (but not v3 certificates, and not generating v3 signatures!).
2022-10-31openpgp: Synchronize AsymmetricAlgorithm's derives.Neal H. Walfield
- `HashAlgorithm`, `SubpacketTag`, `SymmetricAlgorithm`, `AEADAlgorithm`, and `packet::Tag` implement `PartialEq`, `Eq`, and `Copy`. Change `AsymmetricAlgorithm` to also implement those traits. - In addition to the aesthetic motivation, having the same interface simplifies using all of these types with the same macro.
2022-08-16openpgp: Expose `HashAlgorithm::oid()` on all crypto backends.Wiktor Kwapisiewicz
- Expose `oid()` function for all cryptographic backends. - Fix the description to accurately describe the bytes that are being returned. - Add the reference and note to the common use of this function. - Add practical example of computing the entire `DigestInfo` structure. - Add mention of the change to the NEWS file. - Add test case to check if the values match what Nettle is using. - Fixes #919.
2022-07-05openpgp: Make crypto::ecdh::aes_key_{,un}wrap public.Justus Winter
- This is the AES Key Wrap algorithm described in RFC 3394. It is used in OpenPGP's ECDH, but has uses besides that (for example, the gpg-agent uses it to wrap keys in transit).
2022-06-14openpgp: Add a subkey builder.Neal H. Walfield
- Add `KeyBuilder` and `SubkeyBuilder` for creating a key, and attaching a subkey to a certificate. - See #483.
2022-06-14openpgp: Add Cert::insert_packets2 and Cert::insert_packets_merge.Justus Winter
- Cert::insert_packets2 is a variant of Cert::insert_packets that returns whether the certificate actually changed. Fixes #528. - Cert::insert_packets_merge is a variant of Cert::insert_packets2 that allows one to control how duplicate packets are handled. Fixes #494.
2022-06-10openpgp: Provide short names for AEADAlgorithm.Wiktor Kwapisiewicz
- Long names are still supported using the alternate format specifier. - Update NEWS file. - Fixes #803.
2022-06-09openpgp: Rename PacketParser::{set_,}encrypted to processed.Wiktor Kwapisiewicz
- Convert `encrypted` to `processed`. - Since `set_encrypted` is internal API it was directly renamed without forwarder stub. - `encrypted()` is public API thus the old function is converted to a forwarder of the negation of `processed()`. - `unprocessed()` marked as deprecated. - Update docs and NEWS file. - Fixes #845.
2022-06-09openpgp: Deprecate DataFormat::MIMEWiktor Kwapisiewicz
- Deprecate the enum variant in preparation for v2 removal to let API clients adjust their code as early as possible. - Update NEWS. - See #863.
2022-06-08openpgp: New error condition, UnsupportedCert2.Justus Winter
- In contrast to UnsupportedCert, this variant carries all the packets that we failed to parse into a cert. Notably, this includes primary keys that we don't understand. Keeping the packets with the errors allows us to at least roundtrip the packets.
2022-06-08openpgp: Implement TryFrom<Packet> for Unknown.Justus Winter
2022-05-12openpgp: Add Curve::field_size.Justus Winter
2022-05-12openpgp: Add MPI::zero and MPI::is_zero.Justus Winter
2022-05-12openpgp: Deprecate `iv_size` in favor of `nonce_size`.Wiktor Kwapisiewicz
- See #812.
2022-05-12openpgp: Rename `iv_size` to `nonce_size` leaving `iv_size`.Wiktor Kwapisiewicz
- Rename `iv_size` to `nonce_size`. - Introduce `iv_size` that forwards to `nonce_size` for compatibility reasons. - Change all calls to `iv_size` to `nonce_size`.
2022-05-11openpgp: Add crypto::backend that identifies the backend.Justus Winter
- This returns a short, human-readable description of the cryptographic backend for use in version strings to improve bug reports. - Fixes #818.
2022-05-11openpgp: Implement downcasting of Packets to Packet Bodies.Justus Winter
- Fixes #794.
2022-05-11openpgp: Add NEWS entry.Justus Winter
2022-03-28openpgp: Clarify that message::Token is not covered by SemVer.Justus Winter
- Do this using a deprecation so that anyone using it will get a compiler warning. - Revert this change once message::Token is private. - See #836.
2022-03-25openpgp: New function Packet::version.Justus Winter
2022-03-25openpgp: Fix indentation.Justus Winter
2022-03-07openpgp: Add SignatureBuilder::effective_signature_creation_time.Neal H. Walfield
- Add `SignatureBuilder::effective_signature_creation_time` to return the signature creation time that would be used were a signature generated now.
2022-03-07openpgp: Extend SignatureBuilder to include a reference time.Neal H. Walfield
- When using a `SignatureBuilder`, sometimes the default time should not be now, but some specific reference time. - Expose `SignatureBuilder::set_reference_time`, an interface to set a `SignatureBuilder`'s reference time.
2022-03-02openpgp: Open NEWS entry for 1.9.0.Justus Winter
2022-02-22openpgp: Support v5 fingerprints.Justus Winter
- Supporting v5 fingerprints is important so that we can process signature subpackets containing them, even if we don't yet support any v5 formats. Consider being part of a group of recipients where one of the recipients has a v5 key: then, the intended recipient fingerprint subpacket contains a v5 fingerprint for that v5 recipient. See also #820.
2022-02-22openpgp: Update NEWS, fix documentation.Justus Winter
- Add missing NEWS entry, drop documentation comments from trait implementation. - Fixes de8fab8d1b74fa87d3c20d7a2b9e49aea929e6ea.
2021-11-29Move MSRV to 1.56.1Nora Widdecke
- Rust 1.56.0 is affected by CVE-2021-42574, which is addressed in 1.56.1.
2021-11-18openpgp: Hint at WASM support in the README.md.Justus Winter
- Fixes #570.
2021-11-16openpgp: Release 1.6.0.openpgp/v1.6.0Justus Winter
2021-11-09openpgp: Fix documentation, add missing KeyFlags::clear_group_key.Justus Winter
2021-10-25openpgp: Add notation setters to RevocationBuilders.Nora Widdecke
- Closes #476.
2021-10-18openpgp: Release 1.5.0.openpgp/v1.5.0Justus Winter
2021-10-05openpgp: Add a RustCrypto backend.Nikhil Benesch
- This adds a cryptographic backend based on the RustCrypto crates. The backend is marked as experimental, as the RustCrypto crates' authors state that they have not been audited and may not perform computations in constant time. Nevertheless, it may be useful in certain environments, e.g. WebAssembly. - The backend implements RSA, EdDSA and ECDH over Curve25519, IDEA, 3DES, CAST5, Blowfish, AES, Twofish, EAX, MD5, SHA1, RipeMD160, and the SHA2 family. - Notably missing are DSA, ElGamal, and ECDSA and ECDH over the NIST curves. - See #333.
2021-09-28openpgp: Add methods for padding and truncating MPI values.Justus Winter
- Cryptographic values are often expected to have a certain size. Handling this is repetitive and error prone. - This is especially problematic because MPI-encoding strips leading zero bytes. Introduce two methods for that purpose. - Fixes #759.
2021-09-16openpgp: New function CipherSuite::is_supported.Justus Winter
2021-09-08openpgp: Constrain AEAD chunk sizes.Justus Winter
- Make sure that chunk sizes are between 64B and 4MiB. - Fixes a DoS resulting from unconstrained, attacker-controlled heap allocations. - Fixes #738.
2021-08-27openpgp: Update NEWS.Justus Winter