PackageTrack
Sign in Get early access

pgp

OpenPGP implementation in Rust

0.20.0 5.7M downloads/mo #4248 most downloaded on crates.io rpgp/rpgp

What this package is like to depend on

Last release 2 months ago

23 Jun 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 35 of 37 stable releases

1 version withdrawn

withdrawn after publishing

9 years old

45 releases · first in 2017

4 releases in the last 12 months

see the full history below

Release timeline

45 releases · Sep 2017 to Jun 2026
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 45
  1. 0.20.0 23 Jun 2026
    Release notes

    ⛰️ Features

    • Derive Ord for Timestamp (#738) - (12e61b3)
    • Implement more functionality from draft-wussler-openpgp-forwarding (#723) - (47a0ce2)
    • [breaking] By default, MDC-check first when decrypting SEIPDv1; allow optional streaming (#662) - (8e0ef98)
    • Handling of ECDSA/EdDSA secret key packets with unknown curve (#796) - (1e3a886)

    🐛 Bug Fixes

    • Abort on all-zero x25519 shared secret - (35e98dd)
    • Don't panic in legacy_key_id() for v2/3 keys with very short RSA modulus (#760) - (970b18f)
    • Improve draft-forwarding implementation - (e0910fe)
    • Catch underflow in a controlled manner - (c33f55b)
    • Subpacket length handling (#764) - (c9b0955)
    • Timestamp::now() panics in WASM (#784) - (a4dafc8)
    • Allow verifying signatures over empty payload - (010a2df)

    🚜 Refactor

    • Replace regex with memchr for newline normalization (#744) - (0800991)
    • Replace try_key! macro with plain functions - (a162c07)

    📚 Documentation

    • Add GpgFrontend to notable users and libraries (#769) - (2a943ae)
    • Document what ADSK in key flags means - (2df698c)

    🧪 Testing

    • Don't run a test by default that requires "tests/tests" (#748) - (02d1536)
    • Dearmorer gets confused (in debug builds) - (747dd37)
    • Parse incomplete armored data (#765) - (5007673)
    • Add unit test for #146 (#766) - (a8a0790)

    ⚙️ Miscellaneous Tasks

    Api

    • [breaking] Mark legacy ECC curves as such - (a888a7f)
    Open source →
    Release notes

    ⛰️ Features

    • Derive Ord for Timestamp (#738) - (12e61b3)
    • Implement more functionality from draft-wussler-openpgp-forwarding (#723) - (47a0ce2)
    • [breaking] By default, MDC-check first when decrypting SEIPDv1; allow optional streaming (#662) - (8e0ef98)
    • Handling of ECDSA/EdDSA secret key packets with unknown curve (#796) - (1e3a886)

    🐛 Bug Fixes

    • Abort on all-zero x25519 shared secret - (35e98dd)
    • Don't panic in legacy_key_id() for v2/3 keys with very short RSA modulus (#760) - (970b18f)
    • Improve draft-forwarding implementation - (e0910fe)
    • Catch underflow in a controlled manner - (c33f55b)
    • Subpacket length handling (#764) - (c9b0955)
    • Timestamp::now() panics in WASM (#784) - (a4dafc8)
    • Allow verifying signatures over empty payload - (010a2df)

    🚜 Refactor

    • Replace regex with memchr for newline normalization (#744) - (0800991)
    • Replace try_key! macro with plain functions - (a162c07)

    📚 Documentation

    • Add GpgFrontend to notable users and libraries (#769) - (2a943ae)
    • Document what ADSK in key flags means - (2df698c)

    🧪 Testing

    • Don't run a test by default that requires "tests/tests" (#748) - (02d1536)
    • Dearmorer gets confused (in debug builds) - (747dd37)
    • Parse incomplete armored data (#765) - (5007673)
    • Add unit test for #146 (#766) - (a8a0790)

    ⚙️ Miscellaneous Tasks

    Api

    • [breaking] Mark legacy ECC curves as such - (a888a7f)
    Open source →
    Release notes

    v0.20.0 Latest

    Latest

    Compare

    Choose a tag to compare

    Open source →
  2. 0.19.0 02 Feb 2026
    Release notes

    ⛰️ Features

    • Add helper to use multiple secret keys for decryption - (4176c07)
    • Add back capability to build a SignedPublicKey from a key held externally (#678) - (066d0c5)
    • Expand zeroizing of secret values - (4db0b6d)

    🐛 Bug Fixes

    • Support RSA keys up to 8k by default (#664) - (4c42ec1)
    • Loosen trait requirements to KeyDetails, where appropriate (#680) - (9221ea1)
    • Adds CertCasual (#691) - (a3e387c)
    • Ensure trailing packets are consumed - (16c2457)
    • Recursion issues in deeply nested messages - (e82f2c7)
    • Handling of multiple trailing zeros in ecdh for malformed-artifact-compat - (7eb0682)

    🚜 Refactor

    • [breaking] Drop encrypt methods from secret key types (#670) - (cf8a770)
    • [breaking] Simplify key generation by always signing immediately - (e111ba1)
    • [breaking] Introduce EncryptionKey trait (#668) - (4a85df9)
    • [breaking] New structure for key traits (#672) - (90999d9)
    • [breaking] Adjust subpacket name "Issuer Key ID", to align with RFC 9580 (#674) - (23214a8)
    • [breaking] Replace chrono::DateTime with custom Timestamp (#673) - (2435971)
    • [breaking] Verify -> verify_bindings (#675) - (7ac79b7)
    • [breaking] Introduce DecryptionKey (#679) - (86881b3)
    • [breaking] Don't export symbols in duplicate - (96d94e3)
    • Move support for large rsa keys into a separate feature (#696) - (135017f)
    • Move some unused decryption code behind cfg(test) - (73cb9d1)
    • [breaking] Distinguish can_encrypt_comms and can_encrypt_storage in key builder (#685) - (7e3b6c0)
    • [breaking] Clearly mark v3 key expiration fields as legacy (#695) - (f2aefc8)

    📚 Documentation

    🧪 Testing

    • (fuzz) Port to current API (#701) - (5fd74d0)
    • Armor with very long line (#704) - (36125a5)
    • Cleartext message with "NotDashEscaped" header - (21b56ad)

    ⚙️ Miscellaneous Tasks

    • (cargo-deny) Ignore ml-dsa advisory for now (#710) - (19e469b)
    • Update zeroize_derive to 1.4.3 - (d155807
    Open source →
    Release notes

    ⛰️ Features

    • Add helper to use multiple secret keys for decryption - (4176c07)
    • Add back capability to build a SignedPublicKey from a key held externally (#678) - (066d0c5)
    • Expand zeroizing of secret values - (4db0b6d)

    🐛 Bug Fixes

    • Support RSA keys up to 8k by default (#664) - (4c42ec1)
    • Loosen trait requirements to KeyDetails, where appropriate (#680) - (9221ea1)
    • Adds CertCasual (#691) - (a3e387c)
    • Ensure trailing packets are consumed - (16c2457)
    • Recursion issues in deeply nested messages - (e82f2c7)
    • Handling of multiple trailing zeros in ecdh for malformed-artifact-compat - (7eb0682)

    🚜 Refactor

    • [breaking] Drop encrypt methods from secret key types (#670) - (cf8a770)
    • [breaking] Simplify key generation by always signing immediately - (e111ba1)
    • [breaking] Introduce EncryptionKey trait (#668) - (4a85df9)
    • [breaking] New structure for key traits (#672) - (90999d9)
    • [breaking] Adjust subpacket name "Issuer Key ID", to align with RFC 9580 (#674) - (23214a8)
    • [breaking] Replace chrono::DateTime with custom Timestamp (#673) - (2435971)
    • [breaking] Verify -> verify_bindings (#675) - (7ac79b7)
    • [breaking] Introduce DecryptionKey (#679) - (86881b3)
    • [breaking] Don't export symbols in duplicate - (96d94e3)
    • Move support for large rsa keys into a separate feature (#696) - (135017f)
    • Move some unused decryption code behind cfg(test) - (73cb9d1)
    • [breaking] Distinguish can_encrypt_comms and can_encrypt_storage in key builder (#685) - (7e3b6c0)
    • [breaking] Clearly mark v3 key expiration fields as legacy (#695) - (f2aefc8)

    📚 Documentation

    🧪 Testing

    • (fuzz) Port to current API (#701) - (5fd74d0)
    • Armor with very long line (#704) - (36125a5)
    • Cleartext message with "NotDashEscaped" header - (21b56ad)

    ⚙️ Miscellaneous Tasks

    • (cargo-deny) Ignore ml-dsa advisory for now (#710) - (19e469b)
    • Update zeroize_derive to 1.4.3 - (d155807)
    Open source →
    Release notes

    v0.19.0

    Compare

    Choose a tag to compare

    Open source →
  3. 0.18.0 16 Nov 2025
    Release notes

    ⛰️ Features

    • Add Signature::verify_key_third_party - (91f8a02)
    • [breaking] Improve handling of large RSA keys - (466ec9d)
    • [breaking] Decryption support for draft-wussler-openpgp-forwarding (#637) - (1e6ac17)

    🐛 Bug Fixes

    • Handle edge case in NormalizedReader LF mode - (caf31af)

    🚜 Refactor

    • In text signatures, don't normalize single \r characters (#650) - (410c844)

    📚 Documentation

    • Update status information in README (#645) - (f92caf5)
    • Expand "users" section (#646) - (cfe71ab)
    • Simplify README example code; minor tweaks (#647) - (035d2f6)
    • Add example + references for encrypt_to_key on Builder - (dfe1f01)

    ⚙️ Miscellaneous Tasks

    • Bump MSRV to 1.88 - (ad00ed9)
    • Happier clippy - (a02cf93)
    • [breaking] Drop unintended visibilities - (204c51f)

    Cleanup

    • [breaking] Drop some high-level semantics functions from the API - (0f58ea1)
    Open source →
    Release notes

    ⛰️ Features

    • Add Signature::verify_key_third_party - (91f8a02)
    • [breaking] Improve handling of large RSA keys - (466ec9d)
    • [breaking] Decryption support for draft-wussler-openpgp-forwarding (#637) - (1e6ac17)

    🐛 Bug Fixes

    • Handle edge case in NormalizedReader LF mode - (caf31af)

    🚜 Refactor

    • In text signatures, don't normalize single \r characters (#650) - (410c844)

    📚 Documentation

    • Update status information in README (#645) - (f92caf5)
    • Expand "users" section (#646) - (cfe71ab)
    • Simplify README example code; minor tweaks (#647) - (035d2f6)
    • Add example + references for encrypt_to_key on Builder - (dfe1f01)

    ⚙️ Miscellaneous Tasks

    • Bump MSRV to 1.88 - (ad00ed9)
    • Happier clippy - (a02cf93)
    • [breaking] Drop unintended visibilities - (204c51f)

    Cleanup

    • [breaking] Drop some high-level semantics functions from the API - (0f58ea1)
    Open source →
    Release notes

    v0.18.0

    Compare

    Choose a tag to compare

    Open source →
  4. 0.17.0 25 Sep 2025
    Release notes

    ⛰️ Features

    • (deps) Update bitfields to 1.0 (#588) - (617f6e0)
    • Helpers for improved string handling - (80977ca)
    • Adds signature::Signer compatibility wrappers - (854387a)
    • [breaking] Improve Signature api - (500c52e)
    • Add EcdsaPublicParams::curve and is_supported (#586) - (7d20b3e)
    • Improve and expand string APIs (#587) - (4687bcf)
    • Decryption of v5 SKESK (GnuPG proprietary) - (a5a9f93)
    • Decryption of packet type 20 AEAD format (GnuPG proprietary) - (ab0deb8)
    • Implement several standard library extension traits for Fingerprint (#600) - (e0357f2)
    • [breaking] Configurable signature type for user id/attribute third party certifications - (e9847b5)
    • Allow custom signature subpacket configuration in message builder (#610) - (3542021)
    • Allow user-provided session key in message builder (#611) - (f168ff3)
    • Handle utf-8 literal data in message builder (#612) - (85439d2)
    • Implement signing in DetachedSignature - (5298f1a)
    • Support optional handling of some malformed artifacts (#636) - (e8798c1)

    🐛 Bug Fixes

    • Handle parsing of unknown PKESK packets (#568) - (09a6b1e)
    • Handle PQC algorithms in PublicKeyTrait::is_*_key (#589) - (9a558f8)
    • Make user id self certifications as CertPositive - (45a318a)
    • Make user id self certifications as CertPositive - (9cec3bb)
    • Always produce IssuerFingerprint subpacket for signatures (#609) - (d2275c1)
    • Disable crc24 check while dearmoring, by default (#604) - (e7825d4)
    • Message::Encrypted may contain zero ESKs (#615) - (f376798)
    • Skip non-critical packets in message reader - (c60d2b6)
    • If ops metadata doesn't match signature, don't validate (#616) - (a9038e3)
    • Csf handling for mixed CR+LF and LF endings (#626) - (7c64f67)
    • Limit length of DSA public parameters (#627) - (26734bb)
    • Use correct key size when using s2k derive_key (#644) - (3bd7801)

    🚜 Refactor

    • Restructure Tag ranges to align with RFC 9580 - (b08c08a)
    • Rename StandaloneSignature to DetachedSignature - (47d0581)
    • Use bare signature packets in CleartextSignedMessage - (3f7b661)
    • Minor code cleanup (#635) - (cb2c08a)

    📚 Documentation

    • Update FAQ entry about PQC (#566) - (aaea3c6)
    • Fix top level example in README (#598) - (89ce8b7)
    • Typo fix (#608) - (d945332)
    • Add examples of key generation and encryption/decryption (#601) - (cccb248)
    • Examples README (#631) - (850cf82)
    • Notes on weak hash algorithms in SECURITY_STATUS.md - (c64708e)
    • Some OpenPGP context, outline rPGP's scope - (90ea61d)
    • Move information about features to README (#642) - (e38cafd)

    ⚡ Performance

    • Avoid double buffering in aead decryptor (#576) - (c8e8035)
    • [breaking] Improve encrypt and decrypt performance - (c359bea)

    🧪 Testing

    • (fuzz) Adjust to rPGP API (#621) - (cec6cc0)
    • (fuzz) Some improvements to the fuzz tests (#633) - (2d571f8)
    • Impl proptest for encrypted data packets (#606) - (5af9c10)

    ⚙️ Miscellaneous Tasks

    • Run Windows tests with the specified target triple - (8dd4843)
    • Happy clippy - (7bf62ef)
    • Cleanup crate-type (#594) - (8250edb)

    Adapter

    Cleanup

    • Rename Tag::GnupgAead to GnupgAeadData (#624) - (ffa34ad)
    • Rename GnupgAeadConfig to GnupgAeadDataConfig (#641) - (1b6fbc2)
    Open source →
    Release notes

    ⛰️ Features

    • (deps) Update bitfields to 1.0 (#588) - (617f6e0)
    • Helpers for improved string handling - (80977ca)
    • Adds signature::Signer compatibility wrappers - (854387a)
    • [breaking] Improve Signature api - (500c52e)
    • Add EcdsaPublicParams::curve and is_supported (#586) - (7d20b3e)
    • Improve and expand string APIs (#587) - (4687bcf)
    • Decryption of v5 SKESK (GnuPG proprietary) - (a5a9f93)
    • Decryption of packet type 20 AEAD format (GnuPG proprietary) - (ab0deb8)
    • Implement several standard library extension traits for Fingerprint (#600) - (e0357f2)
    • [breaking] Configurable signature type for user id/attribute third party certifications - (e9847b5)
    • Allow custom signature subpacket configuration in message builder (#610) - (3542021)
    • Allow user-provided session key in message builder (#611) - (f168ff3)
    • Handle utf-8 literal data in message builder (#612) - (85439d2)
    • Implement signing in DetachedSignature - (5298f1a)
    • Support optional handling of some malformed artifacts (#636) - (e8798c1)

    🐛 Bug Fixes

    • Handle parsing of unknown PKESK packets (#568) - (09a6b1e)
    • Handle PQC algorithms in PublicKeyTrait::is_*_key (#589) - (9a558f8)
    • Make user id self certifications as CertPositive - (45a318a)
    • Make user id self certifications as CertPositive - (9cec3bb)
    • Always produce IssuerFingerprint subpacket for signatures (#609) - (d2275c1)
    • Disable crc24 check while dearmoring, by default (#604) - (e7825d4)
    • Message::Encrypted may contain zero ESKs (#615) - (f376798)
    • Skip non-critical packets in message reader - (c60d2b6)
    • If ops metadata doesn't match signature, don't validate (#616) - (a9038e3)
    • Csf handling for mixed CR+LF and LF endings (#626) - (7c64f67)
    • Limit length of DSA public parameters (#627) - (26734bb)
    • Use correct key size when using s2k derive_key (#644) - (3bd7801)

    🚜 Refactor

    • Restructure Tag ranges to align with RFC 9580 - (b08c08a)
    • Rename StandaloneSignature to DetachedSignature - (47d0581)
    • Use bare signature packets in CleartextSignedMessage - (3f7b661)
    • Minor code cleanup (#635) - (cb2c08a)

    📚 Documentation

    • Update FAQ entry about PQC (#566) - (aaea3c6)
    • Fix top level example in README (#598) - (89ce8b7)
    • Typo fix (#608) - (d945332)
    • Add examples of key generation and encryption/decryption (#601) - (cccb248)
    • Examples README (#631) - (850cf82)
    • Notes on weak hash algorithms in SECURITY_STATUS.md - (c64708e)
    • Some OpenPGP context, outline rPGP's scope - (90ea61d)
    • Move information about features to README (#642) - (e38cafd)

    ⚡ Performance

    • Avoid double buffering in aead decryptor (#576) - (c8e8035)
    • [breaking] Improve encrypt and decrypt performance - (c359bea)

    🧪 Testing

    • (fuzz) Adjust to rPGP API (#621) - (cec6cc0)
    • (fuzz) Some improvements to the fuzz tests (#633) - (2d571f8)
    • Impl proptest for encrypted data packets (#606) - (5af9c10)

    ⚙️ Miscellaneous Tasks

    • Run Windows tests with the specified target triple - (8dd4843)
    • Happy clippy - (7bf62ef)
    • Cleanup crate-type (#594) - (8250edb)

    Adapter

    Cleanup

    • Rename Tag::GnupgAead to GnupgAeadData (#624) - (ffa34ad)
    • Rename GnupgAeadConfig to GnupgAeadDataConfig (#641) - (1b6fbc2)
    Open source →
    Release notes

    v0.17.0

    Compare

    Choose a tag to compare

    Open source →
  5. 0.16.0 29 May 2025
    Release notes

    ⛰️ Features

    • Update to draft-ietf-openpgp-pqc-10 (#565) - (01a9643)

    🚜 Refactor

    • Cleanup the interface of crypto::*::SecretKey - (45e1ea8)
    Open source →
    Release notes

    ⛰️ Features

    • Update to draft-ietf-openpgp-pqc-10 (#565) - (01a9643)

    🚜 Refactor

    • Cleanup the interface of crypto::*::SecretKey - (45e1ea8)
    Open source →
    Release notes

    v0.16.0 - Stream the world & PQC

    Compare

    Choose a tag to compare

    Open source →
  6. 0.16.0-alpha.3 27 May 2025 pre-release
    Release notes

    ⛰️ Features

    • Impl Deref for pgp::crypto::ed25519::SecretKey (#562) - (e5d44a2)

    🐛 Bug Fixes

    • Skip padding packets analogously to marker packets (#563) - (d667b67)

    Errors

    • Lower enum size from 120 bytes to 80 (#561) - (490fc22)
    Open source →
    Release notes

    ⛰️ Features

    • Impl Deref for pgp::crypto::ed25519::SecretKey (#562) - (e5d44a2)

    🐛 Bug Fixes

    • Skip padding packets analogously to marker packets (#563) - (d667b67)

    Errors

    • Lower enum size from 120 bytes to 80 (#561) - (490fc22)
    Open source →
    Release notes

    v0.16.0-alpha.3 Pre-release

    Pre-release

    Compare

    Choose a tag to compare

    Open source →
  7. 0.16.0-alpha.2 26 May 2025 pre-release
    Release notes

    ⛰️ Features

    • Implement PQC draft 08 - (a843ebf)
    • Add support for V6 keygen (#539) - (33097df)
    • Implement PublicKeyAlgorithm::is_pqc (#552) - (6e6fa24)
    • Imprint function - (c17d370)
    • Implement primary key binding signing; cleanup fn names - (976a03c)
    • Update pqc tests and links to draft-ietf-openpgp-pqc-09 - (7dfdf40)

    🐛 Bug Fixes

    • (message) Remove done state in sym_encrypted reader - (9c78e99)
    • Make KeyDetails::new public again (#557) - (cff8ea2)
    • Check primary key binding signature for signing capable subkeys - (cd4ca99)
    • Produce and handle embedded primary key binding (backsig) - (af4fb28)

    🚜 Refactor

    • Move subkey binding creation to packet - (4834bde)

    📚 Documentation

    🧪 Testing

    • Generate key with signing capable subkey, check embedded signature - (e4cc899)

    Cleanup

    Open source →
    Release notes

    ⛰️ Features

    • Implement PQC draft 08 - (a843ebf)
    • Add support for V6 keygen (#539) - (33097df)
    • Implement PublicKeyAlgorithm::is_pqc (#552) - (6e6fa24)
    • Imprint function - (c17d370)
    • Implement primary key binding signing; cleanup fn names - (976a03c)
    • Update pqc tests and links to draft-ietf-openpgp-pqc-09 - (7dfdf40)

    🐛 Bug Fixes

    • (message) Remove done state in sym_encrypted reader - (9c78e99)
    • Make KeyDetails::new public again (#557) - (cff8ea2)
    • Check primary key binding signature for signing capable subkeys - (cd4ca99)
    • Produce and handle embedded primary key binding (backsig) - (af4fb28)

    🚜 Refactor

    • Move subkey binding creation to packet - (4834bde)

    📚 Documentation

    🧪 Testing

    • Generate key with signing capable subkey, check embedded signature - (e4cc899)

    Cleanup

    Open source →
    Release notes

    v0.16.0-alpha.2 Pre-release

    Pre-release

    Compare

    Choose a tag to compare

    Open source →
  8. 0.16.0-alpha.1 10 Apr 2025 pre-release
    Release notes

    ⛰️ Features

    • Stable implementation for x448 and ed448 (#527) - (0824c3b)

    🐛 Bug Fixes

    • Handle empty dash-escaped lines in CSF - (29ee830)
    • Handle unknown key material - (ed5805b)
    • Fmt - (d86fb72)
    • Do not stringify errors wrapped in io::error - (f54c52b)
    • Correctly handle more unknown data - (d226255)
    • Typo - (e148e03)
    • Undo not needed changes - (f5857da)
    • Undo match statements - (a34bf93)

    🚜 Refactor

    • Extract aead error types - (94b5480)
    • Extract aes_kw error - (68cbfbb)
    • Extract checksum errors - (406b062)
    • Handle unknown signature versions - (f06b6d6)
    • Hash specfic error - (c3193f3)
    • Explicit imports of macros - (1be4727)
    • Allow better error handling on the MessageBuilder - (63d4fd4)
    • Cleanup deps in Cargo.toml - (300ac60)

    ⚡ Performance

    • Small refactors to optimize parsing - (c9f1fbb)

    🧪 Testing

    ⚙️ Miscellaneous Tasks

    Deps

    • Stop using derive-more beta - (e333bdb)

    Wip

    • Unkown algorithme ops - (6a399b3)
    Open source →
    Release notes

    v0.16.0-alpha.1 Pre-release

    Pre-release

    Compare

    Choose a tag to compare

    Open source →
  9. 0.16.0-alpha.0 02 Apr 2025 pre-release
    Release notes

    ⛰️ Features

    • (message builder) Allow password and public key encryption to be mixed - (01b5c3e)
    • Introduce mmap based file parsing - (a893ee2)
    • Start setting up a message builder - (98a9350)
    • Avoid allocations in signature calculations - (f3303a1)
    • Roundtrip elgamal secret keys properly - (28012d8)
    • Implement new type SubpacketLength - (3ffc914)
    • Introduce dyn compatible SigningKey trait - (8b2e1ce)
    • Implement seipdv2 support for the message builder - (21f259c)
    • Type safe chunk sizes for seipdv2 - (58d3534)
    • Implement ascii armor writing - (003f1ee)
    • Start work on streaming based message reader - (cc17c24)
    • Handle invalid trailing data - (934920d)
    • Allow for legacy decryption - (7f8bada)
    • Add encrypt_to_key_anonymous functions - (0e3ff66)

    🐛 Bug Fixes

    • PublicKeyAlgorithm 16 is ElGamal encrypt only - (5538d80)
    • Handle ElgamalEncrypt secret key material - (f4c1297)
    • Handle invalid subpackets properly - (a32a6af)
    • Remove plural - (164c970)
    • Correctly handle multiple nested signed messages - (e9674ce)
    • Implement full handling of known keyflags - (a988e23)
    • Handle nested marker for OPS - (907c337)
    • Handle empty CSF message body - (03439a0)
    • Check that fixed part is as long as it claims to be (#497) - (86cc9fa)
    • Handle trailing data in symencryptedprotected reader - (26e2521)
    • Do not try to parse v5 signatures as v4 - (2154f0d)
    • Do not attempt to allocate overy large buffers when parsing - (1370a3f)
    • Enforce Send for Message - (b0f7b83)
    • Do not loose signing information on the message builder - (4837145)
    • Correctly propagate packetheader version - (cbb44a1)

    🚜 Refactor

    • Use bytes internally - (b0026ba)
    • Pass bytes through - (dbc4cb2)
    • Remove macro usage in sym crypto - (202c584)
    • Avoid intermediary allocations in packet writing - (556a7c1)
    • Store public keys better - (a00f3ad)
    • Store dsa public params as key - (c25f0dd)
    • Store ed25519 public params as keys - (61e4998)
    • Store x25519 public params as key - (e164d94)
    • Split up public params into mods - (cbef72b)
    • Make signer trait more type safe - (5111dad)
    • Merge secretkeyrepr and plainsecretparams - (2e802fe)
    • Cleanup keyid - (dffc8f0)
    • Remove unused PublicParams from Signer trait - (e97fd46)
    • Normalize secret key generation - (ad5f029)
    • Replace bstr with bytes - (03c405c)
    • Start replacing nom with custom bytes parsing - (ab4f266)
    • Switch to extension methods - (73fbd4a)
    • Extract pkeskbytes - (6f0d2b0)
    • Cleanup user attribute packet - (ac64021)
    • Sym_key_encrypted_session_key - (ee869e3)
    • One_pass_signature - (09ad24e)
    • Update signature parsing - (5355d27)
    • Packet header parsing - (9d3115c)
    • Introduce packetbody - (8b0ec45)
    • Fully extract packetheaders and their versions - (17c38b9)
    • Convert public and secret key parsing - (99f9634)
    • Back to a single mpi type - (c384f36)
    • Remove dead code from utils - (25e9ee3)
    • Remove bitfield dep - (97c5d35)
    • Make passwords bytes based - (d61f733)
    • Cleanup hash implementation - (e96fa25)
    • Apply rust naming convention to hashalgorithm - (9dd2e74)
    • Builder encryption is now based on type states - (a3c96e5)
    • Move decrypt_session_key - (10182d0)
    • Split readers into their own files - (85b14b9)
    • Normalize mod.rs -> <name>.rs convention - (65f884c)
    • Move base64 related code into its own module - (085c9ca)
    • Cleanup imports using cargo-make - (fe8c5d0)
    • Cleanup types module - (dc96aeb)
    • MpiBytes -> Mpi - (6b75d02)
    • Remove toplevel reexports - (15c4ab1)
    • Deduplicate exports in composed - (af09ae4)

    📚 Documentation

    • Add note on compatibility reasons to use seipdv1 - (24cd29c)
    • Include crate README in docs for automatic example validation (#468) - (8dd2efc)

    ⚡ Performance

    • Reduce allocations - (c620822)
    • Avoid allocations when reading fixed tags - (32c418a)

    🧪 Testing

    • Update dump tests for dsa - (f2c9655)
    • Load Carol test key from openpgp-samples - (ee0cb7a)
    • Add failing test for subpacket key length - (2b08dce)
    • Parse CSF messages with pgp::Any::from_armor - (31a384f)
    • Drop leniency tests for now (#498) - (f4fea91)
    • Packet excess consumption (#508) - (ffcb250)
    • Port fuzz tests - (ce0e221)

    ⚙️ Miscellaneous Tasks

    • Fixup versions - (dcf7ad2)
    • Fixup - (20b38c2)
    • Make cargo not pull the tests submodule when referencing rpgp via git - (4f9ffd0)
    • Don't handle text-mode literals; but allow explictly setting signature type (#496) - (dda1ed4)
    • Run doctests (#487) - (be19029)
    • Run cross tests in release mode - (191c463)
    • Bring back deny unsafe - (0322ad1)
    • Ignore Cargo.lock for fuzz - (3cab978)

    Builder

    • Handle unencrypted - (2d3513b)
    • Implement handling of different data modes - (5641fc6)
    • Cleanup seipd configuration - (544cd96)
    • Fix first partial chunk size being sized wrong - (89c0b40)

    Errors

    • Capture optional backtraces - (216200f)

    Reader

    • Support for partial packets - (c691625)

    Wip

    • Start implementing proptest for individual packet types - (eb87c2e)
    • Error handling with snafu - (2df12f5)
    Open source →
    Release notes

    v0.16.0-alpha.0 - Stream all the things Pre-release

    Pre-release

    Compare

    Choose a tag to compare

    Open source →
  10. 0.15.0 29 Jan 2025
    Release notes

    ⛰️ Features

    • Implement TryFrom for Signed{Public,Secret}Key - (f9e7694)
    • [breaking] Implement feature gate for x448 - (e16fa47)
    • Update deps - (8222112)

    🐛 Bug Fixes

    • Correctly deal with multi buffer reads in dearmoring - (7637f18)

    🚜 Refactor

    • Remove unused feature flags - (d800fb5)

    📚 Documentation

    • Update changelog - (2cdd934)
    • Add information about ROS audit to security status - (651bb28)

    🧪 Testing

    • Add cargo fuzz testing harnesses - (de9dcf1)
    • Move some slow tests to ignore, to speed up default tests - (7d16c1c)
    • Split up key tests for better speed - (3bc007f)
    • Split up tests more - (9abb7fa)

    ⚙️ Miscellaneous Tasks

    Open source →
    Release notes

    ⛰️ Features

    • Implement TryFrom<PublicOrSecret> for Signed{Public,Secret}Key - (f9e7694)
    • [breaking] Implement feature gate for x448 - (e16fa47)
    • Update deps - (8222112)

    🐛 Bug Fixes

    • Correctly deal with multi buffer reads in dearmoring - (7637f18)

    🚜 Refactor

    • Remove unused feature flags - (d800fb5)

    📚 Documentation

    • Update changelog - (2cdd934)
    • Add information about ROS audit to security status - (651bb28)

    🧪 Testing

    • Add cargo fuzz testing harnesses - (de9dcf1)
    • Move some slow tests to ignore, to speed up default tests - (7d16c1c)
    • Split up key tests for better speed - (3bc007f)
    • Split up tests more - (9abb7fa)

    ⚙️ Miscellaneous Tasks

    Open source →
    Release notes

    v0.15.0

    Compare

    Choose a tag to compare

    Open source →
  11. 0.14.2 05 Dec 2024
    Release notes

    🐛 Bug Fixes

    • Fix CVE-2024-53857 "Potential Resource Exhaustion when handling Untrusted Messages"

    📚 Documentation

    Open source →
  12. 0.14.1 05 Dec 2024
    Release notes

    ⛰️ Features

    🐛 Bug Fixes

    • Fix CVE-2024-53856: "Panics on Malformed Untrusted Input"
    • Make strip_leading_zeros_vec() work correctly - (57e11c5)
    • Csf normalization for signing - (8439a6d)
    • Extend is_signing_key() and is_encryption_key() for RFC 9580 algorithms (#434) - (a1d9d5c)
    • Enable the zeroize feature for argon2 and sha1-checked (#440) - (0c45660)

    🚜 Refactor

    • Optimize Display implementation for BlockType - (00b5027)
    • Merge write_packet_len into write_packet_length - (33dcc83)

    🧪 Testing

    • Avoid writing to the crate source unnecessarily during tests (#431) - (3a1bb5c)

    ⚙️ Miscellaneous Tasks

    • Remove unused and erratic end_of_line() fn (#421) - (69ab41c)
    • Relax dependencies - (c6662a3)
    • Adjust allowed licenses to match what we're using (#438) - (910d9af)
    • Use prepend for changelog gen - (7a60d1a)
    Open source →
  13. 0.14.0 25 Sep 2024
    Release notes

    ⛰️ Features

    • Improve more debug impls - (3d73320)
    • Password protection removal and setting for secret key packets - (700cba2)
    • Improve API of LiteralData to provide more flexibility - (34728e0)
    • Rfc9580 keys - (f09666c)
    • Make SignatureConfig::hash_signature_data more flexible - (c6d6b2c)
    • Rfc9580 encryption - (5d3547a)

    🐛 Bug Fixes

    • Decrypted data must contain exactly one message - (00ee8ee)
    • V6 ESK may only be combined with v2 SEIPD - (5ec3578)
    • Parameter ordering for set_password - (39dd449)
    • Add special error message for packet 20 - (49c8403)
    • Revert to producing short padding for ecdh - (7c94189)
    • Parameter name - (c9cdfaf)
    • Reject unknown critical subpackets while hashing for signature verification - (b8b43a7)
    • Implement various constraints that rfc 9580 mandates - (5682b08)
    • Limit the use of S2K KDF with weak hash algorithms - (cb26cfd)
    • When verifying signatures, check alignment between key version and signature version - (b771b78)
    • Message parser: drop esk packets with versions that are not aligned with the encrypted container - (5b27240)
    • Fail composed key parsing on hard errors during packet parsing - (a9de958)

    🚜 Refactor

    • Remove bigger macros in favor of direct types - (0b1d778)
    • Smaller refactors - (8dcba01)
    • Derive debug impls - (d714064)
    • Remove unused Deserialize trait - (b18f046)
    • Cleanup and improve Mpi API - (1803407)

    📚 Documentation

    🧪 Testing

    • Roundtrip ecdh test against rPGP 0.10 - (1dd91ea)
    • Ignore another sks-dump test failure - (1c0cd84)
    • Rename "opengpg-interop" to "openpgp-interop" - (f3292f7)
    • Skip writing files by default (#404) - (6e51094)
    • Add signature verification tests (RFC 9580 Annex A.6 and A.7) (#409) - (0439dd5)
    • Exercise SEIPDv2 encrypt/decrypt for a range of message sizes - (f9c48dd)

    ⚙️ Miscellaneous Tasks

    • Rename PublicKeyAlgorithm::EdDSA to EdDSALegacy - (d30ce26)
    • Rename PublicKeyTrait::to_writer_old into serialize_for_hashing - (017be15)
    • Bump MSRV to 1.75 - (67551a8)
    • Update push from master to main (#386) - (7b5f5b7)
    • Use write_u8 - (882dcc3)
    • Add cargo deny check - (d4a7905)
    • Add PkeskVersion, SkeskVersion types - (bc79460)
    • Rework ecdh public params to be able to represent opaque data - (276768e)
    Open source →
  14. 0.13.2 17 Aug 2024

    Nothing published for this version

  15. 0.13.1 30 Jun 2024
    Release notes

    🐛 Bug Fixes

    • Remove stray eprintln - (683c529)

    📚 Documentation

    • (readme) Fix the example - (cd7a253)
    • (readme) Some more example adjustments - (99daf15)

    ⚙️ Miscellaneous Tasks

    Open source →
  16. 0.13.0 17 Jun 2024
    Release notes

    📚 Documentation

    • Provide more FAQ items and improve comparisons - (374026f)

    ⚙️ Miscellaneous Tasks

    Open source →
  17. 0.12.0-alpha.3 31 May 2024 pre-release
    Release notes

    ⛰️ Features

    • (ecdh) [breaking] Implement support for nist p curves - (1b6d5dd)
    • Update deps - (f0477f4)
    • Enable SEIPDv2 decryption via the public API (#345) - (deb8a92)
    • Add APIs to create and verify third-party certifications (#349) - (ab39417)
    • Use sha1_checked for Sha1 hashing, except MDC - (7c5e6ae)

    🚜 Refactor

    • Improve & simplify packet parsing logic - (3b71f41)

    📚 Documentation

    • (readme) Fixup copyright - (9773052)
    • Nist p521 support for ECDH was merged in #304 (#335) - (8e67756)
    • Fix typo "secret" -> "public" - (f68aa3d)
    • Update and expand status and readme - (9b27d81)
    • Small refinements/typo-fixes (#342) - (34d1c79)
    • Add link to interop test suite - (cc46fa5)

    🧪 Testing

    ⚙️ Miscellaneous Tasks

    • (echd) [breaking] Prepare for handling more curves - (35343e0)
    • (pgp) Release 0.12.0-alpha.3 - (82d49b3)
    • Remove unused ios-simulator code (#339) - (8bec797)
    • Add codespell CI job; apply fixes (#341) - (a6b6ad7)
    • Remove asm feature from windows - (56505aa)
    • Pacify codespell - (06e840c)
    Open source →
  18. 0.12.0-alpha.2 07 Apr 2024 pre-release
    Release notes

    ⛰️ Features

    🐛 Bug Fixes

    • (packet-parser) Increase buffer size for unknown size - (1013c13)

    🚜 Refactor

    • Improve internal crypto abstractions to allow for more flexibility - (a3dd485)
    • Break out ecdh unwrap - (bde459c)
    • Move benches to criterion and expand benchmarks - (8e87774)

    🧪 Testing

    • Approximate decryption and signing operations with an OpenPGP card - (42cfa11)

    ⚙️ Miscellaneous Tasks

    • (pgp) Release 0.12.0-alpha.2 - (817bf65)
    • Fix feature = "cargo-clippy" deprecation - (a75db54)
    • Set debug in Cargo.toml to the normalized value - (29adca7)

    Bench

    Open source →
  19. 0.12.0-alpha.1 17 Mar 2024 pre-release
    Release notes

    ⛰️ Features

    • Export a crate VERSION string - (1808c99)
    • Obfuscate symmetric key length with ecdh padding - (2fc374a)
    • Implement hash_alg() and public_params() for SecretKeyTrait - (bb7782d)
    • Implement support for ECDSA over NIST P-521 - (14d0f6a)
    • Eadd reader functions that autodetect armored vs. binary - (efd27c0)

    🐛 Bug Fixes

    • (ecdsa) Never pad ecdsa secret MPIs - (87cb242)
    • (parser) There should be no edata except after ESKs - (cadccd5)
    • (test) Adjust to changed message decryption interface - (e57c49a)
    • Avoid stack overflow when verifying recursively compressed message - (bfa34bb)
    • Configure hash_alg based on signing key type - (6cda288)

    🧪 Testing

    • Increase key_gen_ecdsa_p256 rounds - (f7fd18d)

    ⚙️ Miscellaneous Tasks

    • (pgp) Release 0.12.0-alpha.1 - (2d255ed)
    • Adjust to chrono deprecations - (d0bf0fd)

    S2k

    • Restructure, implement argon2 - (6298c15)
    Open source →
  20. 0.11.0 21 Feb 2024
    Release notes

    ⛰️ Features

    • Add Signature::verify_key_binding_primary_back_sig - (2764b39)
    • Implement support for Secp256k1 (#275) - (0d8e580)
    • Add dsa support - (4ed459b)
    • Generalize packet parsing to accept more unknown values; packet parser error type distinguishes "hard and soft" errors. - (48af40c)
    • Handle distinction between hard and soft packet parsing errors - (6752d83)
    • Implement From<SignedSecretKey> for SignedPublicKey and From<SignedSecretSubKey> for SignedPublicSubKey - (43370c5)

    🐛 Bug Fixes

    • (terminology) Use "certification" where we mean signatures that confirm identities - (44bccd3)
    • Handle other RevocationCode values - (6167e99)
    • Return an error in Message::verify if we don't know what to verify - (e29d089)
    • Handle expiration times as Duration - (1cb17a1)
    • Check SHA-1 checksum before parsing - (fd36c23)
    • Normalize line endings when hashing data for a Text signature - (65c9e46)
    • Move line ending normalization from Message::verify to Signature::verify - (20dd658)
    • Debug output cleanup - (4e7ba07)
    • Do not allow decryption with "Plaintext" algorithm - (9201b7e)
    • Enforce Partial Body Length "MUST" from RFC 4880 - (d37a7b5)
    • Clarify use of subpackets from hashed and unhashed areas - (7f1ae5c)
    • [breaking] Generalize issuer subpacket checks - (7c43d22)
    • Make ECDH unpadding more robust - (bf7a3f3)

    🚜 Refactor

    • Switch from num_derive to num_enum - (8014e49)

    📚 Documentation

    • (readme) Fix CI status image and rust version badge - (59c9d73)
    • Remove unnecessary backticks (#252) - (2b17b30)
    • Roughly reflect formats/mechanisms from draft-ietf-openpgp-crypto-refresh - (97edf8f)
    • Clarify parameters in verify_key_binding_internal - (b82cd3f)
    • Switch to git-cliff for changelog - (39444e5)

    ⚡ Performance

    • Avoid concat in sha1 checksum impl - (f56529f)

    🧪 Testing

    • Read signature with "other" revocation code - (dd3742b)
    • Add test for normalization of line endings with text-mode signatures - (19c3d1d)
    • Test that verifying unsigned messages fails - (5a1e8c7)

    ⚙️ Miscellaneous Tasks

    • (pgp) Release 0.11.0 - (20335b3)
    • Fix deprecation warning reported by clippy - (a9a7a0b)
    • Fix vec performance lint - (7aa80c9)
    • Use 1.72 stabley toolchain instead of stable for mips - (334c0b8)
    • Set Rust version to 1.67 - (0e673a2)
    • Fix clippy lint - (8c4c27f)
    • Fix clippy lints in tests - (30b15e7)
    • Update dalek deps and fix nightly on CI - (414250a)
    • Bump to Rust 1.70 - (1dd37d2)

    Cleanup

    • Rename Indeterminated to Indeterminate - (5357815)
    Open source →
  21. 0.10.2 24 Jul 2023
    Release notes

    ⛰️ Features

    🐛 Bug Fixes

    🚜 Refactor

    • (packet) Make members of OnePassSignature public - (6036902)
    • Fix warnings - (1e300ac)

    📚 Documentation

    • (readme) Update a couple of minor points in README - (caf57aa)
    • Update changelog - (659989b)
    • Changelog for 0.10.2 - (8e762fa)

    ⚙️ Miscellaneous Tasks

    Open source →
  22. 0.10.1 30 Mar 2023
    Release notes

    🐛 Bug Fixes

    • (ecdsa) Store original MPI to preserve padding - (848af8f)
    • (signature) Return error on KeyId missmatch - (02bef50)

    📚 Documentation

    • (changelog) Prepare v0.10.1 - (fe3c69f)

    🧪 Testing

    • Check critical bit encoding roundtrips - (cc78011)
    • Skip non validating keys again - (a0556f5)

    ⚙️ Miscellaneous Tasks

    Open source →
  23. 0.10.0 27 Mar 2023 withdrawn
    Release notes

    ⛰️ Features

    • (crypto) Add missing symmetric cipher support - (1648fbb)
    • (deps) Update base64 and derive_builder - (59dcda7)
    • Implement support for ECDSA keys - (65e2f86)
    • Update nom to v7 - (be4eaaa)
    • Update to latest dependencies (#218) - (013923b)
    • Move from String to BString - (b388e4e)

    🐛 Bug Fixes

    🚜 Refactor

    • Remove unused param from decrypt - (810379f)
    • Followup to #214 - (3730457)
    • Switch from buf_redux to buffer-redux - (8e42501)

    📚 Documentation

    ⚙️ Miscellaneous Tasks

    • (crypto/sym) Drop unused block size arguments - (5beeb40)
    • (pgp) Release 0.10.0 - (69db862)
    • Happy clippy - (30d83a8)
    • Remove old release config - (a8ced15)
    Open source →
  24. 0.9.0 07 Nov 2022
    Release notes

    ⛰️ Features

    • Remove unused clear_on_drop dependency - (446c91b)
    • Allow subkeys to be created with the authentication flag enabled - (e37e921)
    • Update to RSA 0.7.0 interfaces - (c57232e)
    • Edition 2021 and update crypto deps - (a0a71cc)

    🚜 Refactor

    • Replace find_map with a find - (721b287)
    • Remove unused circular dependency and also rewrite IV handling to not require lazy_static - (30aea2e)

    📚 Documentation

    • (readme) Update msrv - (ac20fa0)
    • Add comma in README for clearer message (#185) - (28c80c8)

    ⚙️ Miscellaneous Tasks

    • (pgp) Release 0.9.0 - (e07f443)
    • Upgrade pretty_assertions to 1 - (0277001)
    Open source →
  25. 0.8.0 01 Jul 2022
    Release notes

    ⛰️ Features

    • Update deps & introduce MSRV - (5d86ab3)
    • Add a method to construct a PublicKey from parameters - (f0d3fa8)
    • Derive Clone on hasher types - (d878faa)
    • Apply clippy and update some deps - (66c4f76)

    🐛 Bug Fixes

    • (deps) Fix zeroize version - (e8ca41c)
    • Disable oldtime feature of chrono - (9d24203)

    ⚙️ Miscellaneous Tasks

    Open source →
  26. 0.7.2 27 Aug 2021
    Release notes

    🐛 Bug Fixes

    • Do not panic on IDEA cipher - (1b7e2d5)
    • Update & freeze deps to ensure build (#135) - (054e00b)

    ⚙️ Miscellaneous Tasks

    Open source →
  27. 0.7.1 17 Sep 2020
    Release notes

    ⛰️ Features

    ⚙️ Miscellaneous Tasks

    Open source →
  28. 0.7.0 24 Aug 2020
    Release notes

    ⛰️ Features

    • Make sign/verify utilize trait std::io::Read - (b77e20e)

    ⚙️ Miscellaneous Tasks

    Open source →
  29. 0.6.1 20 Jul 2020
    Release notes

    ⚙️ Miscellaneous Tasks

    • (pgp) Release 0.6.1 - (5c5b2d0)
    • Update some dependencies - (cbb8b14)
    Open source →
  30. 0.6.0 11 Jun 2020
    Release notes

    ⛰️ Features

    • Update to the latest rustrcrypto deps - (218ddbd)

    🚜 Refactor

    📚 Documentation

    • Add a few doctests to showcase API usage - (c7b7442)

    ⚙️ Miscellaneous Tasks

    Open source →
  31. 0.5.2 02 Apr 2020
    Release notes

    🐛 Bug Fixes

    • Handle short x25519 keys properly - (c07ecab)

    🧪 Testing

    • Introduce failing test for ecdh keygen - (b7d5ee4)

    ⚙️ Miscellaneous Tasks

    Open source →
  32. 0.5.1 04 Mar 2020
    Release notes

    🐛 Bug Fixes

    • Undo regression in base64_decoder - (e23fa4e)

    ⚙️ Miscellaneous Tasks

    Open source →
  33. 0.5.0 04 Mar 2020
    Release notes

    🐛 Bug Fixes

    • Remove usage of slice_dequeu - (d176e2e)

    ⚙️ Miscellaneous Tasks

    Open source →
  34. 0.4.1 01 Mar 2020
    Release notes

    🐛 Bug Fixes

    • Encode leading zeros in ECDH session key - (c53ade9)
    • Correct typo in feature name for ringbuf - (52e2339)

    🚜 Refactor

    🧪 Testing

    • Encrypt 1000 times in test_x25519_encryption - (1cc0e22)

    ⚙️ Miscellaneous Tasks

    Open source →
  35. 0.4.0 11 Dec 2019
    Release notes

    ⛰️ Features

    • (key) Add Signed(Public|Secret)Key::expires_at() method - (8928a24)
    • Update dependencies - (bcbd6b6)
    • Update dependencies (#82) - (4d8af17)

    🐛 Bug Fixes

    • Remove unused enum_primitive dependency - (4cc60a1)

    ⚙️ Miscellaneous Tasks

    Open source →
  36. 0.3.2 20 Nov 2019
    Release notes

    ⛰️ Features

    • (ci) Add cargo audit job - (aca6121)
    • Return the same error from decrypt_protected on invalid MDC - (83f7c03)
    • Add is_encryption_key for KeyTrait - (4a82994)
    • Turn info!() that are used for debugging/tracing into debug!() - (5da47f4)

    🐛 Bug Fixes

    • (line-reader) Improve correctness of LineReader::seek - (2a8e22a)
    • Do not log sensitive information - (b47b07f)
    • Clarify error message for EdDSA encryption - (347c804)
    • Return true from is_signing_key for ECDSA keys - (6977b14)

    🚜 Refactor

    📚 Documentation

    • Improve documentation and comments - (610f23f)

    ⚙️ Miscellaneous Tasks

    Open source →
  37. 0.3.1 22 Oct 2019
    Release notes

    🐛 Bug Fixes

    • Improve feature handling - (6008e8c)

    📚 Documentation

    • (readme) Merge security review info into Status - (ae230ea)

    ⚙️ Miscellaneous Tasks

    Open source →
  38. 0.3.0 19 Oct 2019
    Release notes

    ⛰️ Features

    • Add nice api for standalone signatures - (bb18f39)

    ⚙️ Miscellaneous Tasks

    Open source →
  39. 0.2.5 18 Oct 2019
    Release notes

    ⛰️ Features

    • Expose api to parse signatures easily - (42ac01a)

    ⚙️ Miscellaneous Tasks

    Open source →
  40. 0.2.4 13 Oct 2019
    Release notes

    ⛰️ Features

    • Add experimental wasm support - (6e46489)
    • Zero out memory for secret key structures - (0837833)
    • Zero out memory for secret key structures (#57) - (1b8b3a8)

    🐛 Bug Fixes

    • (crypto) Do not panic on inputs being too short - (5a01b79)
    • Typ in debug impl for public params - (86601ce)

    🚜 Refactor

    • Improve some debug impls - (2bc8e43)

    📚 Documentation

    • (readme) Updates to reflect current status better - (e633dda)
    • (readme) Improve layout a bit - (a073622)
    • (readme) Move wasm note - (5a73721)

    ⚙️ Miscellaneous Tasks

    Open source →
  41. 0.2.3 09 Oct 2019
    Release notes

    🐛 Bug Fixes

    • (packet) Correct string creation for LiteralData::to_string - (dec514c)
    • (packet) Correct string creation for LiteralData::to_string (#52) - (4498a32)
    • Make armor parsing more resilient - (425e76e)

    ⚙️ Miscellaneous Tasks

    Open source →
  42. 0.2.2 26 Sep 2019
    Release notes

    🐛 Bug Fixes

    • (ffi) Ensure dpeendency is found again - (15d274b)
    • Handle incomplete packets in a safer way - (f0a831a)

    🚜 Refactor

    • Migrate to 2018 edition - (27c7d4f)

    ⚙️ Miscellaneous Tasks

    • (pgp) Release 0.2.2 - (b9b505e)
    • Update toolchain - (2f89841)
    • Update clippy rules and rust-toolchain - (b40641b)
    • Configure release - (840582b)
    Open source →
  43. 0.2.1 28 May 2019
    Release notes

    🐛 Bug Fixes

    • (armor) Normalize line writing to ensure no empty new lines are written - (0c17c48)
    • (ffi) Compress messages by default - (83c1e10)
    • (packets) Handle incomplete packets properly - (b9ecee8)
    • (signature) Generate non nested one pass signature packets by default - (44d6a44)
    Open source →
  44. 0.2.0 26 Mar 2019
    Release notes

    ⛰️ Features

    • (build) Better feature selections - (20ad4b8)
    • (crypto) Bring back blowfish and twofish - (eb18f39)
    • (errors) Implement From for nom::Err - (b175ede)
    • (ffi) Add from_bytes and fingerprint methods - (a1fd36d)
    • (ffi) Implement skey_from_bytes - (460efdd)
    • (ffi) Add error handling and is_public, is_secret - (ea196bd)
    • (ffi) Implement decryption - (4a8d3a3)
    • (ffi) Add instructions to build for ios - (3632230)
    • (ffi) Enable some optimizations for building - (81ae4ec)
    • (ffi) Better flags setting - (370888f)
    • (hash) Add support for SHA3 - (1dfb7f7)
    • (key) Initial implementation of private key parsing - (856b29f)
    • (key) Setup infrastructure for decrypting private keys, decode rsa private keys - (de45a64)
    • (key) Handle expiration and creation time - (c314d09)
    • (key) Add fingerprint placeholder methods - (62b4aef)
    • (key) Import private rsa keys into openssl - (11ce8e4)
    • (message) Implement basic public key encryption - (a2f6aeb)
    • (message) Implement password based encryption and decryption - (a28167c)
    • (message) Implement signing - (8c4f8f3)
    • (messages) Handle more test cases - (e7bffdc)
    • (packet) Add nids to ecccurve - (23c89e3)
    • (pgp-ffi) Implement public key encryption & signing - (7f89d3a)
    • (pgp-ffi) Add hashing and password en/decryption - (6a667ed)
    • (sig) Serialize all subpackets - (85ec336)
    • (sym) Add support for blowfish - (2376d47)
    • (util) Add mpi_big - (4a0ac3b)
    • Upgrade deps - (a77d542)
    • Add cast5 support - (519974b)
    • Add zlib support - (4c4abb9)
    • Armor parsing is now fully streaming - (a258ab7)
    • Less panics, no more unwraps, better error handling - (f0bc505)
    • Packet parsing is now an iterator - (9335fbe)
    • Print warning when skipping packets - (c8d8680)
    • Run tests and cross compile for more envs - (ab9e87a)
    • Signature parsing for v3 sigs - (2c7795f)
    • Start setting up infra structure for signature validation - (2b03025)
    • Start implementation of packet serialization - (91ebdf2)
    • Validat subkey bindings - (91a4235)
    • Validate v2/v3 signatures - (c3b0978)
    • Signature verification - round 1 - (d335fd5)
    • Better serialization for signatures and key packets - (f53e068)
    • Handle partial body lengths packets - (605374f)
    • Basic ascii armor message serialization - (c2012b0)
    • Handle more serialization cases - (1fd92b0)
    • Much better key serialization - (574ae42)
    • More custom debug impls - (d8ed5a3)
    • Initial setup for key gen and signature generation - (7e1ab66)
    • Implement secret key encryption - (eedad02)
    • Public key export - (14b9615)
    • Basic C FFI - (9710f20)
    • Upgrade rand and use thread_rng by default - (833971f)
    • Improved decrypt and KeyId handling - (0f0046d)
    • Expose armor headers - (c3ee4b3)
    • Switch to upstream dependencies - (9b8ee1a)

    🐛 Bug Fixes

    • (ci) Correct testing for pgp-ffi - (6674760)
    • (ffi) Improve Makefile voodoo - (280372e)
    • (ffi) Do not depend on generated files, clean the stamp file - (61c81c0)
    • (ffi) Msg_decrypt_no_pw: use fingerprints instead of ids - (8d712fb)
    • (ffi) Update crate name in the makefile - (3a5e12f)
    • (ffi) Typo in Makefile - (005cde0)
    • (sym) Disable broken blowfish - (b63fa44)
    • Partial boy reading with partial content - (1b5d770)
    • Proper random prefix in symmetric encryption - (eb1ea53)
    • Correct handling of indeterminated length packets - (86e8b77)
    • Update x25519 libs - (cdf7bc8)
    • Include secret subkeys when converting to a public key - (7508827)
    • Gperftools dep - (df364c8)
    • Split asm and nightly flags - (fa5932e)
    • Strip leading zeros when creating signatures - (60366fc)
    • Stray newline - (758327c)

    🚜 Refactor

    • (composed) Remove code duplication in keyid and fingerprint generation - (ceaad5a)
    • (pgp-ffi) Split into multiple files - (de978e4)
    • Cleanup packet module - (01b0ac9)
    • Improve type structure for public/private keys - (127018b)
    • Use derive(FromPrimitive) - (d84faa7)
    • Message parser as an iterator - (2d9fe6f)
    • Key parser is now an iterator - (41d4c46)
    • Message decryption as iterator - (3b8abbd)
    • Split up composed key into multiple files - (b0f620d)
    • Move logic for secret params into its own place - (d81c13a)
    • More cleanup - (da49313)
    • Cleanup message code - (9dfb076)
    • Pull params into their own module - (5f69b2c)
    • Cleanup crypto code - (a75d381)
    • Extract proper type for mpis - (9378195)
    • Split sks-dump tests into their own git submodule - (1b69d70)

    📚 Documentation

    • (cargo) Add some more metadata - (a7b27a8)
    • (readme) Update appveyor badge - (cdd824d)
    • (readme) Update for current ci status - (250bc57)
    • (status) Fix typo - (170a98c)
    • (status) Update - (7fba149)
    • (status) Update - (5dd57de)
    • (status) Update - (1834c95)
    • Fix typo - (c01ebb0)
    • Update references and clarify some things - (50ce46d)
    • Document current status - (c016c32)
    • Move platform suppport to its own document - (a5bbdb3)

    ⚡ Performance

    • Reduce allocations in key handling and armor writing - (1c10de5)
    • Use smallvec for signature subpackets - (61069c6)
    • Use more efficient ringbuffer when available - (ddbac31)

    🧪 Testing

    • Import openpgp test suite - (20c1429)
    • Update key dump test numbers - (2bb794a)

    ⚙️ Miscellaneous Tasks

    • (cargo) Exclude submodule from publishing - (6d98faf)
    • (cargo) Fix keywords - (a37e24f)
    • (ci) Try and fix appveyor - (1370640)
    • (ci) Appveyor fixes - (69e2e48)
    • (ci) Stop installing openssl - (080f518)
    • (ci) Switch to circle ci - (dfbaab5)
    • Cleanup unused test files - (7f65c54)
    • Drop gitmodules - (694cfd7)
    • Include testcases manually - (0096947)
    • Remove test file - (1a6f9ad)
    • Remove profile files - (affd2e4)
    • Update dependencies - (0d76a71)
    • Move to org - (5426d46)
    • Update to latest nightly - (c09c47f)

    Bench

    • (key) Add key gen benchmarks - (4f325cd)
    • (message) Fix compile errors - (86525a1)

    Crypto

    Key

    • Add revocation key option - (cd75dca)
    • Add issuer fingerprint subpacket - (944e6b6)

    Travis

    • Build on osx and linux - (f8d235a)
    Open source →
  45. 0.1.0 16 Sep 2017

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive