154 Commits

Author SHA1 Message Date
Vincent Breitmoser
f58e307629 don't use sq's export logic for our certs 2024-11-18 12:44:37 +01:00
Vincent Breitmoser
cf306f8b43 db: improve typings for sqlite 2024-11-17 19:22:56 +01:00
Vincent Breitmoser
ac1de2c0ae db: add DatabaseTransaction abstraction 2024-11-17 19:22:56 +01:00
Vincent Breitmoser
ea0caeb57a db: work on sqlite, make tests pass 2024-11-17 19:22:56 +01:00
Vincent Breitmoser
99d152d493 db: add sqlite query tracing during tests 2024-11-17 19:22:56 +01:00
puzzlewolf
48bd310f65 db: start work on rusqlite 2024-11-17 19:22:56 +01:00
Vincent Breitmoser
2b317fdb79 db: abstract over log path interface 2024-11-17 19:22:56 +01:00
Vincent Breitmoser
44db398a1c cargo: downgrade sequoia-openpgp to 1.17.0 (for now)
Starting with 1.18.0, the retain_userids method starts working
differently, returning an empty cert if no signed user ids or direct key
signature is left. Since we need this, we'll stay on 1.17.0 for now.
2024-11-17 19:08:23 +01:00
Vincent Breitmoser
26ef2f6e1c db: fix tests 2024-03-24 23:50:56 +01:00
Vincent Breitmoser
fe2337507a hagridctl: import public keys publishing emails 2024-03-24 13:09:04 +01:00
Vincent Breitmoser
dfafe5cdb7 cargo: use openssl crypo backend 2024-01-26 15:35:37 +01:00
Vincent Breitmoser
da4665306e cargo: cargo update
This update requires a forked version of rocket_i18n to accommodate for
a trivial renaming in rocket v0.5.0. Can be changed back to upstream if
https://github.com/Plume-org/rocket_i18n/pull/24 is merged.
2023-12-28 13:37:45 +01:00
Vincent Breitmoser
e7ec0edf1e db: check that user ids contain a valid self-signature for publication 2023-06-10 14:36:04 +00:00
Vincent Breitmoser
e96594ab26 remove some stray println statements 2023-02-11 17:39:37 +01:00
Nora Widdecke
e00cae5a4e db,hagridctl: Autofix clippy issues 2022-03-06 23:30:12 +00:00
Vincent Breitmoser
b29845b893 cargo: apply cargo fmt --all 2022-02-26 17:01:14 +01:00
Nora Widdecke
c1a88f8840 web: handle wkd requests 2022-02-26 16:40:54 +01:00
Nora Widdecke
b06c2c96bd lint: allow clippy::nonminimal_bool 2022-02-25 10:25:26 +01:00
Nora Widdecke
4d27f3f5b9 lint: fix clippy::single_match 2022-02-25 10:25:26 +01:00
Nora Widdecke
a46bd4ebee lint: fix clippy::redundant_closure 2022-02-25 10:25:26 +01:00
Nora Widdecke
3253f50127 lint: fix clippy::match_like_matches_macro 2022-02-25 10:25:26 +01:00
Nora Widdecke
421f8a0908 lint: Apply clippy autofixes
clippy::needless_borrow

  clippy::single_char_pattern

  clippy::redundant_clone

  clippy::needless_return

  clippy::needless_question_mark

  clippy::useless_conversion

  clippy::to_string_in_format_args

  clippy::to_string_in_format_args

  clippy::useless_format

  clippy::useless_vec

  clippy::toplevel_ref_arg

  clippy::redundant_static_lifetimes

  clippy::try_err
2022-02-25 10:23:34 +01:00
Vincent Breitmoser
23880d1386 db+web: remove x-accel optimization
This removes a shortcut to serve certificates from nginx by including an
X-Accel-Redirect header in the response.
2022-01-04 13:52:58 +01:00
Vincent Breitmoser
77407e03cc db: correctly abstract NamedTempFile as type trait 2022-01-04 13:28:26 +01:00
Vincent Breitmoser
6782c57520 fs: group abstract methods on top of Database trait 2022-01-04 13:23:37 +01:00
Vincent Breitmoser
0e0b5c160a cargo: cargo update, and use recent nightly 2022-01-04 12:24:44 +01:00
Justus Winter
b8ddf58977 update sequoia-openpgp to 1.5 2021-10-25 16:04:12 +02:00
Justus Winter
8dabd2c37a update sequoia-openpgp to 1.4 2021-10-11 10:23:45 +02:00
Justus Winter
bb9a3d8324 Strip non-exportable signatures and cert components.
If non-exportable signatures are uploaded to Hagrid, this is most
certainly an accident.  Handle this gracefully by stripping these
signatures (and certificate components that are only bound by
non-exportable signatures) when writing them to the database.

Fixes #155.
2021-07-15 19:21:44 +00:00
Vincent Breitmoser
b7127a672e db: remove unused feature declaration 2021-06-24 11:59:55 +02:00
Justus Winter
39c0e12ac6 database: serve first-party attested third-party certifications
This implements support for third-party userid certifications.  To
prevent denial-of-service attacks, we only merge those certifications
that are attested by the key holder.

The key holder attests the certifications using an Attested Key
Signature containing the digests of the certifications in an Attested
Certifications subpacket as specified in RFC4880bis-10.

Fixes #124.
2021-06-13 13:30:53 +02:00
Justus Winter
c98c588064 update sequoia-openpgp to 1.3 2021-06-13 10:48:59 +00:00
Justus Winter
a9b1363d09 database: simplify tpk_to_string
Use the convenience function to armor certificates.  This also adds
comments to the armor blocks, making it easier to identify
certificates when casually inspecting them as text files.
2021-05-06 18:54:53 +00:00
Justus Winter
e1e88037e8 database: drop tpk_filter_userids
This function is now provided by Sequoia, and as we no longer have to
reparse the certificate, it is infallible.  Simplify
tpk_filter_alive_emails accordingly.
2021-05-06 18:54:53 +00:00
Justus Winter
5d23bc8c21 database: fix comment 2021-05-06 18:54:53 +00:00
Vincent Breitmoser
7011245414 db: don't quarantine degenerate keys 2021-04-15 00:25:18 +02:00
Vincent Breitmoser
7ad5746f52 db: fix check_link_fpr method 2021-04-15 00:25:09 +02:00
Vincent Breitmoser
726d04aca7 web: fix return status for error page with localization 2021-02-20 14:25:15 +01:00
Vincent Breitmoser
12f0be331b i18n: fix some untranslatable strings from database 2021-02-20 13:38:56 +01:00
Justus Winter
422cacfc9c update to Sequoia 1.0.0 2021-01-07 13:18:08 +01:00
Vincent Breitmoser
612b58dd59 mail: hotfix for lettre issue 2020-11-05 12:47:14 +01:00
Vincent Breitmoser
1640a9aa44 database: fix tests for sequoia-0.20 2020-11-05 12:47:14 +01:00
Vincent Breitmoser
860bd6e552 update to sequoia-0.20 2020-11-04 22:21:00 +01:00
Vincent Breitmoser
30bb4b2993 db: treat emails correctly during publication 2020-05-14 17:44:34 +02:00
Vincent Breitmoser
c3d4b448a5 db: check that partially revoked email addresses work correctly after publishing 2020-05-14 17:44:32 +02:00
Vincent Breitmoser
cdda40e126 db: correctly deal with user ids uploaded for already-verified email addresses 2020-05-14 11:52:36 +02:00
Vincent Breitmoser
a02b5ac9ca db: correctly deal with same-email user ids with different revocation statuses 2020-05-14 11:52:35 +02:00
Vincent Breitmoser
f0aaee2a9d update sequoia to 0.14 2020-02-28 15:13:48 +01:00
Vincent Breitmoser
85ca188ffb hagridctl: adapt regenerate script to only regenerate verified keys 2020-01-31 23:49:41 +01:00
Vincent Breitmoser
deb3a0373b wkd: add support 2020-01-31 12:36:48 +01:00