summaryrefslogtreecommitdiffstats
path: root/tool/src
AgeCommit message (Collapse)Author
2019-12-09openpgp: Return Result from Signature::key_alive.Justus Winter
- See #371.
2019-12-09openpgp: Return Result from Signature::signature_alive.Justus Winter
- See #371.
2019-12-06tool: Add packet decrypt that unwraps encryption containers.Justus Winter
2019-12-05openpgp: Make crypto::{Signer,Decryptor} non-polymorphic.Justus Winter
- These are low-level cryptographic traits that are not concerned with the role of a key. - Fixes #382.
2019-12-04tool: Rename command line arguments.Justus Winter
- See #359.
2019-12-04openpgp: Refine CertBuilder::add_encryption_subkey.Justus Winter
2019-12-04openpgp: Rename KeyFlag's accessors.Justus Winter
- Fixes #359.
2019-12-04openpgp: Rename KeyIter filters.Justus Winter
- See #359.
2019-12-03openpgp: Rename openpgp::conversions to openpgp::fmt.Justus Winter
2019-12-03openpgp: Use Duration in SignatureExpirationTime.Justus Winter
2019-12-03openpgp: Use Timestamp in SignatureCreationTime.Justus Winter
2019-11-28Call TPKs Certificates, update identifiers, documentation.Justus Winter
- Fixes #387.
2019-11-27openpgp: Allow creation of subkeys with explicit expiration time.Justus Winter
- Fixes #366.
2019-11-27openpgp: Fix issuer handling in the streaming verifier.Justus Winter
- To that end, make VerificationHelper::get_public_keys take KeyHandles for all the issuers.
2019-11-27openpgp: Fix Signature::get_issuer to return set of issuers.Justus Winter
- A signature can contain multiple hints as to who created the signature. Return all those hints to the caller. - Adapt all callers accordingly. - Fixes #264.
2019-11-27openpgp: Make variants of VerificationResult struct-like, add infos.Justus Winter
2019-11-26openpgp: Implement From<Fingerprint> for KeyID.Justus Winter
- Remove Fingerprint::to_keyid, use From instead.
2019-11-25openpgp: Rename openpgp::constants to openpgp::types.Justus Winter
- Fixes #381.
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: 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-15tool: Clarify default handling.Justus Winter
2019-11-15openpgp: Add tpk::builder::CipherSuite::RSA4k.Leonhard Markert
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-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-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: Make fields of SubpacketValue private.Justus Winter
2019-10-24tool: Allow generation of keys with multiple userids.Justus Winter
- Fixes #347.
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-18openpgp: Change TPK::primary to return the key and not the bindingNeal H. Walfield
- The primary key is not a binding; it is a single component. Thus, returning a ComponentBinding is misleading. - Add methods to the TPK structure to return the direct signatures, certifications, self revocations, and other revocations.
2019-09-18openpgp: Combine Signature4::signature_alive and its _at variant.Neal H. Walfield
- Combine Signature4::signature_alive and Signature4::signature_alive_at. - Use an Into<Option<time::Tm>> to distinguish the two previous cases: the current time (None), and a specific time (a time::Tm).
2019-09-18openpgp: Combine Signature4::signature_expired and its _at variant.Neal H. Walfield
- Combine Signature4::signature_expired and Signature4::signature_expired_at. - Use an Into<Option<time::Tm>> to distinguish the two previous cases: the current time (None), and a specific time (a time::Tm).
2019-09-18openpgp: Combine Signature4::key_alive and its _at variant.Neal H. Walfield
- Combine Signature4::key_alive and Signature4::key_alive_at. - Use an Into<Option<time::Tm>> to distinguish the two previous cases: the current time (None), and a specific time (a time::Tm).
2019-09-18openpgp: Combine Signature4::key_expired and its _at variant.Neal H. Walfield
- Combine Signature4::key_expired and Signature4::key_expired_at. - Use an Into<Option<time::Tm>> to distinguish the two previous cases: the current time (None), and a specific time (a time::Tm).
2019-09-18store: Rename store::Pool to Store.Justus Winter
2019-09-18store: Rename store::Store to Mapping.Justus Winter
- Fixes #88.
2019-09-17openpgp: Rename TPK::revocation_status to TPK::revoked.Neal H. Walfield
- Combine TPK::revocation_status and TPK::revocation_status_at; only keep the version with the optional time parameter. - Rename TPK::revocation_status to TPK::revoked to match KeyBinding::revoked, UserIDBinding::revoked, and UserAttributeBinding::revoked. - Do the same for the C API.
2019-09-17openpgp: Change TPK::primary_key_signature to take a time.Neal H. Walfield
- Change `TPK::primary_key_signature` and `TPK::primary_key_signature_full` to take an additional parameter, a time. - Return the primary key signature at that time rather than the newest primary key signature.
2019-09-17openpgp: Add a timestamp arg to ComponentBinding::binding_signatureNeal H. Walfield
- Change ComponentBinding::binding_signature to take an optional timestamp and return the self signature that is active at that time.
2019-09-11openpgp: Move packet::KeyFlags to constants.Justus Winter
2019-09-11openpgp: Move packet::BodyLength to packet::header.Justus Winter
- Move the parser to the parse module.
2019-09-11openpgp: Move the ctb module to the header module.Justus Winter
2019-09-10openpgp: Make fields of packet::Header private.Justus Winter
2019-09-10openpgp: Make fields of parse::map::Field private.Justus Winter
2019-09-10openpgp: Make password argument polymorphic.Justus Winter