summaryrefslogtreecommitdiffstats
path: root/net
AgeCommit message (Collapse)Author
2019-11-26openpgp: Implement From<Fingerprint> for KeyID.Justus Winter
- Remove Fingerprint::to_keyid, use From instead.
2019-11-25Release 0.12.0.v0.12.0Justus Winter
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-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-10-31Change license to GPLv2+.Neal H. Walfield
2019-10-30Update authors.Neal H. Walfield
2019-10-27Fix more spelling errors caught by codespellDaniel Kahn Gillmor
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-10-25Release 0.11.0.v0.11.0Justus Winter
2019-10-25rfc2822,openpgp: Move rfc2822 crate to be a private mod in openpgpNeal H. Walfield
- The rfc2822 crate doesn't implement all of RFC 2822. Moreover, it includes a number of extensions. This makes rfc2822 a misnomer. - RFC 2822 is actually obsoleted by RFC 5322. This means that if we ever add support for RFC 5322, it will be an even worse misnomer. - Move the whole crate into the openpgp crate. Note: we don't directly export the API; it is only used internally by packet::userid. - Closes #279.
2019-09-27linting: Clear up bare trait object warningsDaniel Silverstone
Newer Rust compilers requre `dyn` marking trait objects. Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2019-09-10net: Make function private.Justus Winter
2019-09-10net: Improve error handling.Justus Winter
2019-09-09net: Introduce enum wkd::Variant.Justus Winter
2019-09-09net: Update existing TPKs in a WKD.Justus Winter
2019-09-09net: Strip local signatures when creating WKD.Justus Winter
2019-09-09net: Rework WKD building, insert one TPK at a time.Justus Winter
- This improves error handling, and the API resembles collections.
2019-09-09net: Do not diddle with the permissions.Justus Winter
2019-09-09net: Remove progress reporting on stdout.Justus Winter
2019-09-09net: Add wkd::generate function.juga
- Adds a function to generate the WKD hierarchy. - Fixes #295.
2019-09-06Release 0.10.0.v0.10.0Justus Winter
2019-09-06Bump quickcheck to 0.9, rand to 0.7.Justus Winter
2019-08-22Bump percent-encoding to 2.1.Justus Winter
2019-08-22Bump url to 2.1.Justus Winter
2019-08-22Trim dependencies of crates 'rand' and 'quickcheck'.Justus Winter
2019-08-20net: Remove unneeded port in WKD URLjuga
- Closes #314.
2019-08-20net: Drop SKS pool in favor of keys.openpgp.org.Justus Winter
2019-08-19net: Drop the sync variant.Justus Winter
- The sync wrapper hide the async nature of the implementation, and while this may seem convenient, it may cause subtle problems if it is invoked from a different event loop. - Furthermore, 'async' is a reserved keyword in the 2018 edition, requiring awkward escaping. - Fixes #307.
2019-07-15Switch to Rust 2018.Justus Winter
2019-07-15Prepare for Rust 2018.Justus Winter
- This is the result of running `cargo fix --edition`, with some manual adjustments. - The vast majority of changes merely qualify module paths with 'crate::'. - Two instances of adding an anonymous pattern to a trait's function. - `async` is a keyword in Rust 2018, and hence it needs to be escaped (e.g. in the case of the net::r#async module). - The manual adjustments were needed due to various shortcomings of the analysis employed by `cargo fix`, e.g. unexpanded macros, procedural macros, lalrpop grammars.
2019-07-08Release 0.9.0.v0.9.0Justus Winter
2019-06-19net: Replace or remove commentsjuga
- comments that do not apply anymore. - Closes #308. - Bugfix 0.7.0.
2019-06-14Release 0.8.0.v0.8.0Justus Winter
2019-06-10net: Honor compression features.Justus Winter
2019-06-10net: Drop unused parameter.Justus Winter
2019-05-28net: Add wkd module implementing a WKD clientjuga
- Also add an async::wkd module. - Part of #251.
2019-05-15core, store, tool: Use realm instead of domain.Justus Winter
- Remove the domain parameter from core::Context. - Replace it with a realm to be passed in when opening a store. - For sq, merge store name and realm into the --store parameter. - Fixes #105.
2019-05-10Release 0.7.0.v0.7.0Justus Winter
2019-05-10openpgp: Add a new parsing mode to the Armor ReaderNeal H. Walfield
- Add a strict "mode" to the armor reader that requires an armor header line, but doesn't care what the header is. - Closes issue #254.
2019-05-07openpgp, net: Improve panic messages.Justus Winter
2019-05-03ipc: New crate.Justus Winter
2019-04-12Release 0.6.0.v0.6.0Justus Winter
- Also bump rfc2822 to 0.6.0. After all, we create tags for the versions.
2019-03-28Fix intra-workspace dependencies.Justus Winter
- Specify versions for intra-workspace dependencies in the crates that are not yet released.
2019-03-28Point to the version-specific documentation.Justus Winter
2019-03-14Release 0.5.0.v0.5.0Justus Winter
2019-02-27net: If no protocol is given, assume hkps.Justus Winter
- Also, add a test. - Fixes #201.
2019-02-27net: Typo.Justus Winter
2019-02-19Release 0.4.0.v0.4.0Justus Winter
2019-02-07net: Make Error::MalformedUri print expected protocol prefixes.Tobias Mueller
- This makes the error message more helpful, e.g. for users of "sq keyserver --server ...".
2018-12-18Release 0.3.0.v0.3.0Justus Winter
2018-12-14openpgp: Introduce trait Parse.Justus Winter
- Trait Parse introduces a uniform interface to parse packets, messages, keys, and related data structures.