summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-11-25Release 0.12.0.v0.12.0Justus Winter
2019-11-25rfc2822: Remove leftover Cargo.toml.Justus Winter
2019-11-25openpgp: Specialize key iterator to return Key<SecretParts, _>.Justus Winter
- Once KeyIter::secret or KeyIter::unencrypted_secret is called, change the iterator type to iterate over &Key<SecretParts, _>. - Fixes #384.
2019-11-25openpgp: Rename openpgp::constants to openpgp::types.Justus Winter
- Fixes #381.
2019-11-25openpgp: Fix regular expression.Neal H. Walfield
- A non-capture group is indicated by '?:', not ':?'.
2019-11-22openpgp: Make constructors specific to their public parts.Justus Winter
2019-11-22openpgp: Make it possible to bind secret keys.Justus Winter
2019-11-22openpgp: Simplify constructors by using Key::new.Justus Winter
2019-11-22openpgp: Make conversions into Key<SecretParts, _> fallible.Justus Winter
- Fixes #380.
2019-11-21openpgp: When parsing User IDs, recognize URIs.Neal H. Walfield
- Restore the functionality removed in 8693a005 when replacing the RFC 2822 mailbox parser.
2019-11-21openpgp: Replace time crate with std::time.Justus Winter
- In sq and sqv, use chrono to interface with the user. - Fixes #341.
2019-11-20openpgp: Use the builder pattern for stream::Encryptor.Justus Winter
- Fixes #375.
2019-11-19openpgp: Use the builder pattern for stream::Compressor.Justus Winter
- See #375.
2019-11-19openpgp: Use the builder pattern for stream::LiteralWriter.Justus Winter
- See #375.
2019-11-19openpgp: Use the builder pattern for stream::Signer.Justus Winter
- See #375.
2019-11-19openpgp: Avoid specializing Signer over key role.Justus Winter
2019-11-19openpgp: Drop hash algorithm parameter from signing functions.Justus Winter
- This adds and promotes the use of signature::Builder::set_hash_algo instead. Adapt callsites. - In particular, document why we use SHA512 when creating signatures in the TPK builder.
2019-11-19openpgp: Be tolerant when deciding wheter a signature is alive.Neal H. Walfield
- Consider the following scenario: computer A's clock says 9:00.00 and signs and sends a message to computer B. Computer B's clock says 8:59.59, it receives the message and tries to verify it. From Computer B's perspective, the signature is not valid, because it was generated in the future. - This situation occured, because the two clocks were not completely synchronized. Unfortunately, a few seconds of clock skew are not unusual, particularly when dealing with VMs. - Since it is almost always better to consider such messages as valid, be tolerant when deciding whether a signature is alive.
2019-11-18openpgp: Optimize .clear() for byte vectors.Justus Winter
2019-11-18openpgp: Rename field and function.Justus Winter
2019-11-18openpgp: Return inner writer in armor::Writer::finalize.Justus Winter
- Fixes #358.
2019-11-18Fix more spellingDaniel Kahn Gillmor
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-11-18spell "detached" correctlyDaniel Kahn Gillmor
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-11-15openpgp: Ignore marker packets in TPKs.Justus Winter
- Fixes #372.
2019-11-15Fix rustc warnings.Leonhard Markert
2019-11-15tool: Clarify default handling.Justus Winter
2019-11-15openpgp: Add tpk::builder::CipherSuite::RSA4k.Leonhard Markert
2019-11-15net: Bail out if the received keyid does not match.Tobias Mueller
- Arguably, the user wanted to fetch a key with a certain ID. If the server returns something different, we throw an error. That error contains both the expected keyid as well as the TPK from the server, in case the consumer wants to inspect the problem or make use of the key regardless.
2019-11-13tool: Fix indentation of embedded signature packets.Justus Winter
2019-11-13tool: Dump the most important information first.Justus Winter
- Fixes #363.
2019-11-12tool: Print fingerprints and keyids when dumping keys.Justus Winter
- Fixes #362.
2019-11-12openpgp: New test.Justus Winter
2019-11-12openpgp: Add TPKBuilder::add_authentication_subkey.Justus Winter
2019-11-10ci: Do not cargo clean our crates.Justus Winter
2019-11-10ci: Use an implicit cache that persists on our runner.Justus Winter
2019-11-10ci: Use environment variables to configure cargo.Justus Winter
- And use them in the diagnostics.
2019-11-10openpgp: Remove gratuitious code from last commit.Neal H. Walfield
- The last commit introduced a gratuitious and unreachable "else if" branch, remove it.
2019-11-10openpgp: Distinguish bad signatures from those that are not alive.Neal H. Walfield
- Return a different `VerificationResult` for signatures that are not alive (BadSignature) from signatures that are actually bad (BadCheck).
2019-11-09openpgp: Break apart function.Neal H. Walfield
- The original function was nested too much.
2019-11-08openpgp: Split long running test.Neal H. Walfield
2019-11-07openpgp: Speed up test by managing the buffer more smartly.Neal H. Walfield
2019-11-07openpgp: Use a Vec instead of a HashMap.Neal H. Walfield
- A SignatureGroup currently contains a hash mapping hash algorithms to hash contexts. Typically this will only contain one or two mappings. At most it will contain one mapping for each algorithm that we support (currently, we support 7 hash algorithms). - Given the small expected and small maximum size, a vector is the better data structure: - The small number of elements means that look up time will be comparable whether we do a linear scan or look in a hash (in fact, the linear scan is probably cache friendlier). - Iterating over a vector is faster than iterating over a hash map. The is the fast path. - A vector takes up less space. - Change SignatureGroup::hashes to use a Vec instead of a HashMap.
2019-11-07openpgp: Use vec_truncate instead of Vec::truncate.Neal H. Walfield
2019-11-06openpgp-ffi: Improve documentation.Neal H. Walfield
2019-11-06openpgp: Replace RFC 2822 parser with a de factor parserNeal H. Walfield
- RFC 4880 says that "by convention, [a User ID Packet] includes an RFC 2822 [RFC2822] mail name-addr." This is not the actual convention, and attempting to parse User IDs using an RFC 2822 parser means that many common User IDs cannot be parsed. - Disparities between the actual convention and the stated convention include: - Neither users nor the software they use to create keys correctly quotes User IDs: - 'Nachname, Vorname <name@example.org>' is not valid, because it contains an unquoted comma. It should be 'Nachname\, Vorname <name@example.org>' or '"Nachname, Vorname" <name@example.org>'. (The same goes for dots, single quotes, etc.) - 'user@example.org <user@example.org>' is not valid, because it contains an unquoted at symbol. - 'Bj=?utf-8?q?=C3=B6?=rn <bjoern@example.net>' is encoded using RFC 2047, which is what RFC 2822 mandates when using non-ASCII characters, but no OpenPGP software would decode this User ID. In practice, everyone just uses UTF-8 (in this case: 'Björn <bjoern@example.net>'). - There are many examples of User IDs containing raw email addresses ('user@example.org'). But, these are not "name-addr"s. At best, they are RFC 2822 "mailbox"es. - Some User IDs only contain a name (e.g, "Frank PGP"). - RFC 2822 also includes a lot of complexity that no one uses or needs. For instance, CFWS (comments and folding whitespace) can be placed everywhere, and the rules for parsing them are complex. - Instead of continuing to bend the RFC 2822 parser to our will, we instead accept reality. - This patch replaces the RFC 2822 parser with a significantly simpler parser, which is based on actual convention (i.e., User IDs in the wild). - This parser is based on dkg's mail to the OpenPGP working group mailing list. Message-ID: <87woe7zx7o.fsf@fifthhorseman.net> https://mailarchive.ietf.org/arch/msg/openpgp/wNo27-0STfGR9JZSlC7s6OYOJkI - This initial version has one notable regression with respect to the RFC 2822 parser: it doesn't handle User IDs holding URIs.
2019-11-05openpgp: Add new interface to create subpackets.Justus Winter
- Fixes #351.
2019-11-05openpgp: Make fields of SubpacketValue private.Justus Winter
2019-11-05Fix license in README.md.Justus Winter
- Fixes 4f5699ef4ad8f84147edfa4785ed26d27c64d380.
2019-11-01openpgp: Fix Blowfish key size.Justus Winter
- `cipher::Blowfish::KEY_SIZE` is the maximum key size supported by Blowfish. - Fixes #350.
2019-11-01openpgp: Fix Transform::read_helper.Neal H. Walfield
- To avoid an infinite loop, we need to not only read data, but also consume it. - Add a regression test. - Fixes #349.