Compare commits

...

908 Commits

Author SHA1 Message Date
62646e219b Add revocation for dvzrv
Add revocation certificate for C7E7849466FE2358343588377258734B41C31549.
2023-05-29 13:33:19 +02:00
68dbb8014a Switch advertized key for dvzrv
Switch advertized key from C7E7849466FE2358343588377258734B41C31549 to
991F6E3F0765CF6295888586139B09DA5BF0D338, as the latter superseded the
former.
2023-05-29 13:33:14 +02:00
a6c89532b1 Add authentication subkey for dvzrv
Add authentication subkey 57B71EE573F78CBEA83284B0D0B9A7F0EFEC1108 for
C7E7849466FE2358343588377258734B41C31549.
2023-05-29 13:33:10 +02:00
75b363ac6c Add certification from dvzrv for dvzrv
Add signature by 991F6E3F0765CF6295888586139B09DA5BF0D338
on C7E7849466FE2358343588377258734B41C31549 for
"David Runge <dvzrv@archlinux.org>".
2023-05-29 13:33:05 +02:00
f4ad2ed61a Add signature from Foxboron for dvzrv 2023-05-29 13:32:56 +02:00
ddc037fa33 Simplify trust_color() using match statement 2023-05-29 13:32:50 +02:00
f6d2b35318 Fix issue with Trust Enum values
As `auto()` was not used for `Trust.unknown` it led to wrong data being
returned from `trust_color()`.
2023-05-29 13:18:51 +02:00
cd9536f76a Revoke signature by demize for allan
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-05-11 10:29:36 +02:00
f7749fd39c Add signature from anthraxx for gromit
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2023-05-02 21:14:05 +02:00
fcbb3d5586 Add signature from Bluewind for gromit
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2023-05-02 12:13:45 +02:00
35ad10dd01 Add signature from dvzrv for gromit 2023-05-01 13:44:42 +02:00
771c202291 Add signature from demize for gromit
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-05-01 13:34:10 +02:00
4bab3c715d add packager key for gromit
Signed-off-by: Christian Heusel <christian@heusel.eu>
2023-04-30 17:36:41 +02:00
29d9caa9dc Collect failed keys and print them at the end
Since !180, all keys are tried. This can indeed be useful but buries
the offending key in a long output log.

This stores a message containing the key and UID during processing and
prints them all at the end.
2023-03-20 16:24:49 +01:00
a7877fc189 Revoke signature by dvzrv for allan
Revoke signature for allan@archlinux.org by
2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E on
6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD.
2023-03-20 16:22:18 +01:00
ac5f7eaeff Remove extra forward slash from archlinux-keyring-wkd-sync.service
Signed-off-by: Leonidas Spyropoulos <artafinde@archlinux.org>
2023-03-20 14:28:13 +01:00
d70b7059d0 Add signature from demize for raster
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-03-20 09:16:30 +01:00
299928461d Add signature from demize for orhun
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-03-20 09:16:27 +01:00
f3544fcdf5 Add signature from demize for bastelfreak
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-03-20 09:16:23 +01:00
388ec9850a Add signature from demize for alerque
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-03-20 09:16:16 +01:00
79d3fa3bcc Add signature from demize for lfleischer
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-03-20 09:12:24 +01:00
33fe23aecf Replace keyserver upload requirement with keys.openpgp.org
The MIT keyserver is frequently unavailable for uploads so it no longer
make sense to block new keys based on its availability.

Once we have main-key signing tooling built into `keyringctl` this
requirement will no longer be necessary since the tooling will be able
to be run from branches already containing the necessary keys.

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-03-14 17:45:03 +01:00
8cb0c6d8a0 wkd_sync: Ignore keys with SHA-1 self-signature
wkd_sync/archlinux-keyring-wkd-sync:
Ignore keys with SHA-1 self-signature (by hardcoding them in a readonly
array) so that they will not be synced from WKD.
The Arch Linux WKD setup does not contain keys with SHA-1
self-signatures anymore.
2023-02-25 16:18:37 +01:00
cb1054f841 Fix formatting in tests
Apply black to tests.
2023-02-25 16:18:34 +01:00
d21d14176e Add signature from anthraxx for antiz 2023-02-22 14:47:20 +01:00
0a7508ede5 Add signature from Bluewind for antiz
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2023-02-22 14:47:20 +01:00
5da50cea03 Add signature from dvzrv for antiz 2023-02-22 14:47:20 +01:00
44c0af2b9a Add signature from demize for antiz
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-02-22 14:47:20 +01:00
103e00a856 Add Antiz packager key 2023-02-22 14:47:15 +01:00
67b8e024a9 extent key life time for nicohood 2023-01-31 18:56:34 +01:00
5c85f4b953 Consolidate reviewers and assignees in templates
.gitlab/issue_templates/*:
Remove pierre from list of main keys.

.gitlab/merge_request_templates/*:
Use group of main key holders when assigning reviewers, instead of
listing them all separately.
2023-01-29 15:56:20 +01:00
93bd502b4c Revoke pierre's main key 2023-01-28 18:19:26 +01:00
a4962f3e76 Add signature for alucryd from demize
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-01-02 16:25:44 +01:00
f7240fcf00 Add signature for xyne from demize
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-01-01 14:02:10 +01:00
79a2104803 Add signature for juergen from demize
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2023-01-01 14:01:57 +01:00
d9d9510b98 Add signature from demize for jelle
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-19 17:56:28 +01:00
2e54656f9a Add signature from demize for hashworks
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-19 17:54:17 +01:00
539555c4ac Add signature from demize for nicohood
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-19 17:53:58 +01:00
312e382e23 Add signature from demize for bgyorgy
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-19 17:53:58 +01:00
afb991fdc3 Add signature from demize for ainola
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-19 17:53:58 +01:00
ea27f824ff Revoke signature from Bluewind for heftig
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-12-19 09:58:49 +01:00
242a10fd27 Add signature from Bluewind for nicohood
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-12-19 09:58:45 +01:00
ba11484fb5 Add signature from Bluewind for bgyorgy
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-12-19 09:58:35 +01:00
631c3000a5 Add signature from Bluewind for tpkessler
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-12-18 14:51:27 +01:00
eac6247ecd Add signature from demize for tpkessler
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-16 21:32:08 +01:00
2ef2cc6c74 Add signature of dvzrv for tpkessler
keyring/packager/tpkessler/04CF0CD6F6EE93AE1896F58407D06351CA5B31BE/uid/Torsten_Kessler__tpkessler@archlinux.org_535cde49/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature by dvzrv (2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E) for tpkessler (04CF0CD6F6EE93AE1896F58407D06351CA5B31BE).
2022-12-16 19:33:15 +01:00
168d6915d1 Add packager key for tpkessler 2022-12-16 19:33:04 +01:00
0c4eb6c977 Add signature from anthraxx to nicohood 2022-12-16 01:00:59 +01:00
c1cc3a118b Add signature from anthraxx to jlichtblau 2022-12-16 01:00:45 +01:00
718bb5c844 Add signature from anthraxx to alex19ep 2022-12-16 01:00:24 +01:00
7dbfe97f2d Add signature from anthraxx to FFY00 2022-12-16 01:00:01 +01:00
df74a3810b Add dvzrv signature for bgyorgy
keyring/packager/bgyorgy/14E46FE5FD69F2E287E244DB632C3CC0D1C9CAF6/uid/Ballo_Gyorgy__bgyorgy@archlinux.org_9cece270/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature of dvzrv
(2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E) for bgyorgy
(14E46FE5FD69F2E287E244DB632C3CC0D1C9CAF6).
2022-12-13 22:34:57 +01:00
3846dd67f9 Update Seblu packager key 2022-12-13 21:33:27 +01:00
3e8a0ea621 Revoke @yan12125's old key 2022-12-13 20:31:50 +01:00
7a9915b245 Add new key for bgyorgy 2022-12-13 20:14:09 +01:00
af47f5a20f Add signature from demize for yan12125
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:13 +01:00
e74b1c885e Add signature from demize for polyzen
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:11 +01:00
b53064c155 Add signature from demize for pierre
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:10 +01:00
3fecae7fde Add signature from demize for muflone
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:08 +01:00
69b441ae64 Add signature from demize for maximbaz
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:07 +01:00
3b9a2aeb77 Add signature from demize for foxboron
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:06 +01:00
538343ac44 Add signature from demize for escondida
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:05 +01:00
e33375ca5d Add signature from demize for bluewind
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:04 +01:00
6932924764 Add signature from demize for arojas
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:03 +01:00
0b8c61ba70 Add signature from demize for allan
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-13 20:09:01 +01:00
16f7acac87 Add signature from Bluewind for pierre
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-12-11 10:16:26 +01:00
fc13666e73 Add dvzrv revcert for alucryd's key
keyring/packager/alucryd/9437DD3815A7A9169E3D3946AFF5D95098BC6FF5/uid/Maxime_Gauduin__alucryd@archlinux.org_2606bf1f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc
Add revocation for certificate by dvzrv
(2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E) on alucryd's key
(9437DD3815A7A9169E3D3946AFF5D95098BC6FF5).
2022-12-05 13:20:31 +01:00
f6aa92e078 Merge branch 'merge-requests/193' 2022-12-04 22:49:27 +01:00
07b18c0810 Add signature from Bluewind for thomas
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-12-04 10:21:36 +01:00
0306d410f0 Revoke signature from Bluewind for thomas
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-12-04 10:21:30 +01:00
16fd8188b5 Add signature from demize for shibumi
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-03 16:43:49 +01:00
eac6fa752f Add signature from demize for serebit
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-03 16:43:49 +01:00
837d7d0c12 Add signature from demize for rgacogne
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-03 16:43:49 +01:00
753938be0b Add signature from demize for dbermond
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-03 16:43:49 +01:00
9a137e8e41 Add signature from demize for sangy
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-03 16:43:49 +01:00
8dfa4f413e Add signature from demize for jsteel
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-03 16:43:49 +01:00
055c0a10a7 Add signature from demize for cbehan
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-03 16:43:49 +01:00
17d53dd81a Add signature from demize for andrewSC
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-12-03 16:43:49 +01:00
abe47ec3bb make my @archlinux.org uid primary 2022-12-02 09:31:59 +01:00
85530a6d3c extend key lifetime for alex19ep
Found on Ubuntu key server... 😝

Closes #208
2022-12-02 09:30:29 +01:00
2bfeaf4593 Add signature from demize for wild
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 22:09:35 +01:00
b2d25b033f Add signature from demize for mtorromeo
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 22:09:15 +01:00
8f22dc50e9 Add signature from demize for segaja
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 19:21:18 +01:00
00f1dfa1a7 Add signature from demize for FFY00
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 19:20:48 +01:00
cb9ae854b6 Add signature from demize for tpowa
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 18:04:34 +01:00
715f425527 Add signature from demize for spupykin
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 17:59:59 +01:00
4c88727871 Add signature from demize for lcarlier
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 17:59:43 +01:00
6a734cc46f Add signature from demize for idevolder
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 17:59:21 +01:00
9996e16c43 Add signature from demize for heftig
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 17:59:09 +01:00
440ac923d5 Add signature from demize for foutrelis
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 17:58:55 +01:00
8a23d4a59c Add signature from demize for felixonmars
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 17:58:41 +01:00
b82f81f7ca Add signature from demize for artafinde
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-30 17:58:30 +01:00
c0b84bfd4d Update key for Jerome Leclanche 2022-11-30 07:10:14 +01:00
988ec73a84 Add signature from demize for jlichtblau
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 23:16:07 +01:00
183d87bfa8 Add signature from demize for foxxx0
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 23:01:35 +01:00
4a556ee1c4 Add signature from demize for eworm
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 23:01:35 +01:00
bcac30eb7a Add signature from demize for svenstaro
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 23:01:32 +01:00
1ad1342ac4 Add signature from demize for freswa
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 22:38:52 +01:00
e3e19b325e Add signature from demize for dvzrv
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 22:38:41 +01:00
b9c72f776d Add signature from demize for kyrias
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 22:14:28 +01:00
6c0bc537a9 Add signature from demize for alex19ep
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 21:52:38 +01:00
769eeda592 Add signature from demize for archange
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 21:27:42 +01:00
ea5436fef7 Add signature from demize for andyrtr
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 21:24:12 +01:00
dab0c5867b Add signature from demize for anatolik
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 21:08:10 +01:00
0dbc3c3e85 Add signature from demize for blakkheim
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 21:08:07 +01:00
4b5fa39622 Add signature from demize for anthraxx
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-29 20:58:32 +01:00
1c296bf292 restart wkd sync on failure...
... but with a reasonable delay of five minutes, and limited to three
invocations per hour. After that the service goes into failed state.

This should mitigate service failure caused by intermittent network
issues or server reboot on our side.
2022-11-28 11:42:57 +01:00
594009f981 Add main key signature of dvzrv for pierre
keyring/packager/pierre/3E80CA1A8B89F69CBA57D98A76A5EF9054449A5C/uid/Pierre_Schmitz__pierre@archlinux.org_e7e0700e/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature of dvzrv
(2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E) for pierre
(3E80CA1A8B89F69CBA57D98A76A5EF9054449A5C).
2022-11-23 20:01:06 +01:00
a2e0301536 add @demize in issue templates
Added in !178
2022-11-23 09:08:23 +01:00
9beb0b5f9b remove @grazzolini from issue templates
Revoked in !183
2022-11-23 09:08:00 +01:00
271b03dc92 use @archlinux/teams/main-key-holders for assignment in issue templates 2022-11-22 23:27:55 +01:00
42afef9fdb Revoke grazzolini's master key 2022-11-22 20:37:46 +01:00
2281a7a869 Update expiry of polyzen's key 2022-11-10 14:11:29 -05:00
03649fa4fc Update expiry of rgacogne's key 2022-11-10 15:05:43 +00:00
30b8fa1653 try all keys, fail at the end for wkd sync
This makes sure all keys are tried at least, instead of failing with the
first error.

Fixes #202
2022-11-10 15:56:09 +01:00
14e5f42c38 Add new main key of demize
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-11-10 14:49:53 +00:00
4d019d5bc1 Merge remote-tracking branch 'merge-requests/177' 2022-11-04 12:08:21 +01:00
3496a50d0a update expiry of freswa's key 2022-11-03 22:28:13 +01:00
69a00fd116 Add new key for pierre 2022-10-31 11:33:47 +01:00
c4ea00b0d3 Add signature from anthraxx for blakkheim 2022-09-26 23:59:01 +02:00
e347a820c6 increase random delay for wkd sync
Most systems run this in the same 12 hours... Stop DDOS'ing ourselves
and spread over the whole week.

Fixes #198
2022-09-21 14:50:49 +02:00
a8784b9ac4 Add signature from Bluewind for blakkheim
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-09-18 11:24:06 +02:00
7fa672586a Merge branch 'merge-requests/173' 2022-09-12 09:58:20 +02:00
335a31dcf6 Hardcode using bash as make's shell
On Debian/Ubuntu the default shell is dash, and builds are done with
SHELL overridden to dash. Since archlinux-keyring now has Bash-isms in
the install and uninstall targets (for {} expansion), and rewriting it
to drop this is inconvenient (because we'll have to repeat the path
prefixes), hardcode the use of Bash instead.

Use /bin/bash to be compatible with distros that have not finished the
/bin -> /usr/bin migration yet.

Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
2022-09-12 09:34:26 +02:00
eb12f06550 Add signature of dvzrv for blakkheim
keyring/packager/blakkheim/54C1FD273361EA514A237793F296BDE50368C6CE/uid/T.J._Townsend__blakkheim@archlinux.org_476bd08f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature of dvzrv
(2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E) for blakkheim
(54C1FD273361EA514A237793F296BDE50368C6CE).
2022-09-11 21:18:47 +02:00
3eb5037a48 Merge remote-tracking branch 'blakkheim/master'
* blakkheim/master:
  Add packager key for new Trusted User blakkheim
2022-09-11 13:48:39 +02:00
375d4bff87 Add packager key for new Trusted User blakkheim
Application: https://lists.archlinux.org/pipermail/aur-general/2022-August/036930.html
Voting result: https://lists.archlinux.org/pipermail/aur-general/2022-September/036964.html
2022-09-10 10:35:21 -04:00
33e8374d12 Add signature from Bluewind for serebit
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-09-04 10:01:52 +02:00
7b331e8a7d Rename wkd_build to pages
.gitlab-ci.yml:
Rename wkd_build to pages, as that is apparently what gitlab needs.
2022-09-02 19:04:02 +02:00
05f17ee267 Copy WKD dir to public directly
.gitlab-ci.yml:
Copy the WKD dir to a public dir (used by gitlab pages) directly instead
of creating the public dir and copying into it, as that is brittle.
2022-09-02 18:31:38 +02:00
75b7394377 Force symlinking of systemd unit for activation
Makefile:
Force symlinking of systemd unit for activation. If the service is
already installed and activated (symlinked) on the target system, a
non-forced symlink would fail otherwise.
2022-09-02 13:26:29 +02:00
a6f2a84baa Add gitlab-ci integration to build WKD dir on tag
.gitlab-ci.yml:
Add gitlab-ci integration to build WKD dir on tag using the `make wkd`
target per FQDN used by Arch Linux. Builds only happen on a secure
runner, the job is running in its own stage after the tests and only
runs in pipelines for tags.
2022-08-31 11:41:45 +02:00
85dc87d167 Adapt Makefile to build wkd dir and inspect it
Makefile:
Change the Makefile to build WKD dirs based on a given WKD_FQDN and add
them to WKD_BUILD_DIR.
2022-08-31 11:19:57 +02:00
0a6ff56c80 Merge branch 'merge-requests/165' 2022-08-31 09:35:24 +02:00
d0bea7ad8a Add signature from anthraxx for yan12125 2022-08-31 01:34:29 +02:00
0f217bd222 Add signature from Bluewind for yan12125
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-08-31 01:06:53 +02:00
fae9b09614 Merge branch 'merge-requests/162' 2022-08-29 22:51:43 +02:00
1e57a3038e Add signature from anthraxx for serebit 2022-08-28 22:50:59 +02:00
8f787824c1 Add main key signature by dvzrv for serebit
keyring/packager/serebit/CAAE0C97533C35D3A0C6C34066E60E5F785A6824/uid/Campbell_Jones__for_package_signing_only___serebit@archlinux.org_55f6fd2b/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature by dvzrv
(2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E) for serebit
(CAAE0C97533C35D3A0C6C34066E60E5F785A6824).
2022-08-28 20:01:07 +02:00
25d07327d6 Add main key signature by dvzrv for yan12125
keyring/packager/yan12125/E62545315B012B69C8C94A1D56EC201BFC794362/uid/Chih-Hsuan_Yen__yan12125@archlinux.org_fea86268/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature by dvzrv
(2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E) for yan12125
(E62545315B012B69C8C94A1D56EC201BFC794362).
2022-08-28 19:59:45 +02:00
f0200aba0d Update expiry of kpcyrd key 2022-08-19 15:01:36 +02:00
f235233372 Add signature from diabonas for yan12125 2022-08-19 10:53:25 +02:00
7854fefc9f Merge branch 'merge-requests/156' 2022-08-19 10:00:18 +02:00
48a4282873 Merge branch 'merge-requests/158' 2022-08-19 09:55:56 +02:00
da16cd7c6b Merge branch 'merge-requests/145' 2022-08-19 09:50:46 +02:00
79c81cbe6a Merge branch 'merge-requests/157' 2022-08-19 09:45:52 +02:00
b01b1f77dc Revoke signature from diabonas for tensor5
Trusted User resignation:
https://lists.archlinux.org/archives/list/arch-dev-public@lists.archlinux.org/thread/TZWGYQY3AGNVVTIV4QB5CIJP4PI5JM4T/
2022-08-18 16:15:50 +02:00
4c6fbc3779 Add signature from diabonas for serebit 2022-08-18 14:20:06 +02:00
378e0ed4f3 Add packager key for new Trusted User serebit
Application: https://lists.archlinux.org/pipermail/aur-general/2022-January/036781.html
Voting results: https://lists.archlinux.org/pipermail/aur-general/2022-March/036842.html
2022-08-17 21:02:39 +02:00
1352aa782b Revoke @tensor5’s key 2022-08-14 22:11:08 +09:00
498a19d0c6 Add yan12125's new key
There are some other changes with my current key:

* Actually revoke an unused uid

As per RFC 4880 [1], a revocation signature (sigclass 0x30) "should
have a later creation date than that certificate." However, somehow in
my keyring I have certificates newer than the previous revocation
signature. As a result, that uid is not marked as revoked by gpg. I
created a new revocation signature to fix that.

* Make @archlinux.org the primary UID

[1] https://datatracker.ietf.org/doc/html/rfc4880
2022-08-13 23:49:22 +08:00
8b336741d1 Add signature from diabonas for sangy 2022-08-09 08:48:38 +02:00
7217c34c04 Add signature from diabonas for foxxx0 2022-08-09 08:48:32 +02:00
8036719a2e Allow overriding the script location in WKD sync service
wkd_sync/archlinux-keyring-wkd-sync.service.in:
Replace use of explicit script location (i.e. /usr/bin) with
SCRIPT_TARGET_DIR placeholder.

Makefile:
Create WKD sync service file from input file, replacing the
SCRIPT_TARGET_DIR placeholder with $SCRIPT_TARGET_DIR.
2022-08-04 12:59:24 +02:00
b3279eafcf Rename WKD sync service file to an input file
wkd_sync/archlinux-keyring-wkd-sync.service -> wkd_sync/archlinux-keyring-wkd-sync.service.in:
This allows using the file as input file, where overriding keywords can
be done using sed.
2022-08-04 12:57:46 +02:00
1dfc921a87 Make install locations more configurable and clean up
Makefile:
Change Makefile to allow installation of keyring data, systemd units and
scripts more configurable.
This allows user provided overrides via KEYRING_TARGET_DIR,
SCRIPT_TARGET_DIR, SYSTEMD_SYSTEM_UNIT_DIR.
Instead of relying on wildcards, rely on specifically named files, as
this can be reused also in the uninstall target without issue and
provides a clearer overview of what will be installed/uninstalled.
Specifically only make use of DESTDIR in the install and uninstall
targets, which allows easier overrides.
Extend uninstall target to also remove WKD sync related script and
systemd units.
2022-08-04 12:41:23 +02:00
3e24dfe0a0 Add signature from diabonas for maximbaz 2022-08-04 09:03:54 +02:00
e82a4e99db Add signature from diabonas for anthraxx 2022-08-03 09:01:26 +02:00
6c2b081c1e Add main signature of anthraxx for dvzrv
keyring/packager/dvzrv/991F6E3F0765CF6295888586139B09DA5BF0D338/uid/David_Runge__dvzrv@archlinux.org_d2ad250f/certification/D8AFDDA07A5B6EDFA7D8CCDAD6D055F927843F1C.asc:
Add main key signature by anthraxx for dvzrv on key 991F6E3F0765CF6295888586139B09DA5BF0D338.
2022-08-02 19:44:47 +02:00
427fe46040 Add signature from diabonas for alerque 2022-08-01 16:24:09 +02:00
3d342e48ab Merge branch 'sha1die_jelle' 2022-08-01 16:10:45 +02:00
baeb0c0a44 Remove reference to AUTHORS file
This file no longer exists in the repository, drop the mention.

Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
2022-07-31 22:55:33 +02:00
3a43867e1c Fix the permission of keyring files
These are non-executables, they should be installed 644 rather than 755.

Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
2022-07-31 22:55:28 +02:00
c14acdfef7 Replace SHA-1 usage for jelle
Signed-off-by: Jelle van der Waa <jelle@archlinux.org>
2022-07-31 17:36:37 +02:00
76c59984a0 Revoke signature on muflone's key
keyring/packager/muflone/CAA1D2323A05219AA2F01AA4E642299183ED727E/*:
Revoke signature on muflone@archlinux.org for
CAA1D2323A05219AA2F01AA4E642299183ED727E.
2022-07-31 08:32:16 +02:00
4ef129ebd8 Extend contributing guidelines for WKD
CONTRIBUTING.md:
Extend contributing guidelines by a section about which data is released
to the Web Key Directory.
2022-07-29 14:37:24 +02:00
470f854942 Add additional build dependencies pkgconf and systemd
README.md:
As we are dynamically deriving the target systemd system unit dir, we
require pkgconf and systemd during build time.
2022-07-29 14:37:20 +02:00
87b1a4ab72 Install WKD update script/service/timer with Makefile
Makefile:
Extend install target to also install the WKD update script and the
systemd service and timer.
Vendor enable the systemd timer.
2022-07-29 14:37:12 +02:00
9f8c58f340 Add pkgconf and systemd before building/ installing
.gitlab-ci.yml:
Add pkgconf and systemd to the list of packages, that are installed
before executing the build and install targets. They are required to
retrieve the correct path for systemd's system units.
2022-07-29 14:37:08 +02:00
ad8698e96c Add timer to regularly refresh PGP keys
wkd_sync/archlinux-keyring-wkd-sync.timer:
Add timer which triggers archlinux-keyring-wkd-sync.service to
persistently refresh existing PGP keys of archlinux-keyring weekly with
up to 12h of randomized delay.
2022-07-29 14:37:04 +02:00
8436229ea6 Add hardened systemd service to run WKD sync
wkd_sync/archlinux-keyring-wkd-sync.service:
Add hardened systemd service to run WKD sync using
`archlinux-keyring-wkd-sync`.
2022-07-29 14:36:59 +02:00
e5a2665a4c Script to refresh existing keys of archlinux-keyring
wkd_sync/archlinux-keyring-wkd-sync:
Add script to refresh existing keys of archlinux-keyring on user
systems based on the state of the distribution's Web Key Directory
(WKD).
Invalid or revoked keys are ignored.
2022-07-29 14:36:51 +02:00
11c500a186 Use spaces instead of tabs in files
.editorconfig:
Use spaces instead of tabs in files.
Add section for Makefile using tabs.
2022-07-29 14:36:46 +02:00
fa02de4c0c Add signature from diabonas for lfleischer 2022-07-29 14:20:08 +02:00
22046c3c2d Add signature from diabonas for kpcyrd 2022-07-29 14:20:04 +02:00
fa5c5845d1 Upgrade signatures for lfleischer to SHA-2
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2022-07-29 14:17:17 +02:00
d1276ba49a This is the signature for svenstaro from grazzolini master key. 2022-07-28 12:04:50 -03:00
22ac6fb976 Add signature from diabonas for bluewind 2022-07-26 11:39:32 +02:00
db472fd30e Update self-signatures of bluewind's packager key from SHA-1 to SHA-2 2022-07-26 11:39:30 +02:00
21a59b2369 Add signature from diabonas for alucryd 2022-07-26 11:39:25 +02:00
5fefe1c75a Add signature from diabonas for remy 2022-07-26 11:37:35 +02:00
a77f7d713b Add signature from diabonas for shibumi 2022-07-26 11:37:33 +02:00
7b94aa7604 Add signature from diabonas for morganamilo 2022-07-26 11:37:30 +02:00
923ef2c429 Add signature from diabonas for escondida 2022-07-26 11:37:25 +02:00
9a83b10110 Add signature from Bluewind for muflone
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-07-24 13:44:01 +02:00
bcad513404 Update self-signatures of remy's packager key from SHA-1 to SHA-2 2022-07-23 19:56:41 +02:00
0cee060429 update shibumi's key 2022-07-23 03:55:03 +02:00
c34e8cca5c Add signature from diabonas for arojas 2022-07-20 23:09:01 +02:00
58def93247 Update arojas key 2022-07-20 23:08:55 +02:00
099df52a04 feature(keyringctl): support query expressions for packet field selection
Instead of simply string matching a line, we now traverse the packet as
a tree and match the path based on a depth first search.

While traversing, we support logical OR and current depth * wildcard
processed as a component based query expression.

Callee's are adjusted to specifically select the appropriate Issuer at
the correct depth.

Fixes #185
2022-07-20 21:34:37 +02:00
9d4c7057f4 add signature from anthraxx for svenstaro 2022-07-19 21:17:40 +02:00
81d336c253 Add signature from diabonas for raster 2022-07-19 17:25:54 +02:00
d67abf5710 add signature from anthraxx for jsteel 2022-07-19 01:02:56 +02:00
9808e897c4 Add signature from diabonas for spupykin 2022-07-18 08:51:34 +02:00
c5e7b0e90e Add signature from diabonas for juergen 2022-07-18 08:51:29 +02:00
06f326172a Add signature from Bluewind for svenstaro
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-07-17 10:56:57 +02:00
f40f4ef9cc Add signature from diabonas for FFY00 2022-07-17 07:37:14 +02:00
14d72780a4 Add signature from diabonas for felixonmars 2022-07-17 07:37:07 +02:00
174e30e368 Add signature from diabonas for jsteel 2022-07-16 10:55:03 +02:00
c084dc6d0d Add signature from diabonas for heftig 2022-07-16 10:54:58 +02:00
0982b66a80 Add signature from diabonas for kgizdov 2022-07-15 08:34:51 +02:00
d3a4a8a8c3 Add signature from diabonas for arodseth 2022-07-15 08:34:45 +02:00
faafeb906e Add signature from diabonas for orhun 2022-07-14 10:26:02 +02:00
ec25f7e422 Add signature from diabonas for cbehan 2022-07-14 10:25:56 +02:00
9350fe91ba Add signature from diabonas for xyne 2022-07-13 10:20:16 +02:00
71bd8f673e Add signature from diabonas for lcarlier 2022-07-13 10:20:14 +02:00
79e83916f9 Add signature from diabonas for andrewSC 2022-07-13 10:20:07 +02:00
046d79bb31 add signature from anthraxx for coderobe 2022-07-13 00:40:53 +02:00
5b97930c9d Add signature from diabonas for svenstaro 2022-07-12 10:38:56 +02:00
0fe42a1992 Add signature from diabonas for idevolder 2022-07-12 10:38:54 +02:00
65993cbd55 Add signature from diabonas for hashworks 2022-07-12 10:38:52 +02:00
d705b30119 Add signature from diabonas for bastelfreak 2022-07-12 10:38:50 +02:00
3f16ab5637 Add signature from diabonas for andyrtr 2022-07-12 10:38:44 +02:00
af810015e1 Merge remote-tracking branch 'hashworks/hashworks-subkey-update-2022-07-11'
* hashworks/hashworks-subkey-update-2022-07-11:
  Update hashworks subkeys
2022-07-11 19:51:31 +02:00
bfb00f008d Update hashworks subkeys
Expiration date was extended to 2023-07-11.
2022-07-11 19:14:51 +02:00
06a27fdef2 Update AndyRTR's key to fix SHA-1 signing issue 2022-07-11 16:21:15 +02:00
be7e836d73 Add signature from diabonas for nicohood 2022-07-11 10:59:04 +02:00
a6256a6941 Add signature from diabonas for rgacogne 2022-07-11 10:59:02 +02:00
2fdc5fae43 Add signature from diabonas for grawlinson 2022-07-11 10:59:00 +02:00
fcc0fab5d6 Add signature from diabonas for foxboron 2022-07-11 10:58:58 +02:00
71bb0aec52 Add signature from diabonas for anatolik 2022-07-11 10:58:55 +02:00
3dbf7d369e Add signature from diabonas for ainola 2022-07-11 10:58:51 +02:00
cbf4afaa5c fix: use of SHA1 in sangy's key 2022-07-10 18:08:55 -04:00
4018084f6c Add signature from dvzrv for muflone
keyring/packager/muflone/42DFAFB7C03B2E4E7BBDBA69930B82BFC2BDA011/uid/Fabio_Castelli__Muflone___Arch_Linux___muflone@archlinux.org_3db85507/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature by `2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E` for
`muflone@archlinux.org` on `42DFAFB7C03B2E4E7BBDBA69930B82BFC2BDA011`.
2022-07-10 12:44:53 +02:00
4c0fef3878 Add signature from diabonas for yan12125 2022-07-10 12:35:34 +02:00
671af82a33 Add signature from diabonas for wild 2022-07-10 12:35:32 +02:00
c0bec2db19 Add signature from diabonas for tpowa 2022-07-10 12:35:30 +02:00
1ab7e99da2 Add signature from diabonas for tensor5 2022-07-10 12:35:25 +02:00
9f4483e798 Add signature from diabonas for polyzen 2022-07-10 12:35:23 +02:00
45ae60f62a Add signature from diabonas for muflone 2022-07-10 12:35:19 +02:00
7b60515668 Add signature from diabonas for mtorromeo 2022-07-10 12:35:16 +02:00
2c832f7327 Add signature from diabonas for kyrias 2022-07-10 12:35:14 +02:00
aa0d36cd12 Add signature from diabonas for jlichtblau 2022-07-10 12:35:12 +02:00
9d355d890a Add signature from diabonas for freswa 2022-07-10 12:35:11 +02:00
6a9fb0b2c4 Add signature from diabonas for foutrelis 2022-07-10 12:35:09 +02:00
48fc785dd9 Add signature from diabonas for eworm 2022-07-10 12:35:07 +02:00
07856a9c9f Add signature from diabonas for allan 2022-07-10 12:35:00 +02:00
edbb9c494f Merge remote-tracking branch 'ainola/master'
* ainola/master:
  Update Brett Cornwall GPG key
2022-07-10 12:00:17 +02:00
2b1e9adcc1 Update Brett Cornwall GPG key 2022-07-10 00:59:42 -07:00
582367f5c0 Merge branch 'merge-requests/115' 2022-07-09 19:43:52 +02:00
7b64ed9058 Merge branch 'merge-requests/114' 2022-07-09 19:42:54 +02:00
2b01a2de7a update tpowa key 2022-07-09 19:41:00 +02:00
a734c2a3cf Merge branch 'merge-requests/112' 2022-07-09 19:39:55 +02:00
5487627d6f Merge branch 'merge-requests/111' 2022-07-09 19:38:57 +02:00
462078551c Merge branch 'merge-requests/110' 2022-07-09 19:37:28 +02:00
b0c734dc15 Update Allan's key to fix SHA-1 signing issue
Signed-off-by: Allan McRae <allan@archlinux.org>
2022-07-09 19:30:53 +02:00
47eb4a11af Merge branch 'eworm' 2022-07-09 19:29:43 +02:00
10bbb50af5 Add new packager key for sudoforge: 0x00E16349
Closes: #174
2022-07-09 19:23:57 +02:00
42beb5f1c7 Update self-signatures of jsteel's packager key from SHA-1 to SHA-2 2022-07-09 19:15:16 +02:00
4200504b86 Fix old SHA1 sigs 2022-07-09 18:59:05 +02:00
49aced6785 Update self-signatures of felixonmars' packager key from SHA-1 to SHA-2 2022-07-09 16:18:40 +03:00
37f46c3905 Update lordheavy's key to fix SHA-1 signing issue 2022-07-09 14:01:40 +02:00
c5d77fdc73 Fixed self-sigs
Signed-off-by: Morten Linderud <morten@linderud.pw>
2022-07-09 13:51:19 +02:00
2eb6d95834 Update self-signatures of foutrelis' packager key
Going from SHA-1 to SHA-2.
2022-07-09 14:42:03 +03:00
9d482bb11f Update self-signatures of eworm's packager key from SHA-1 to SHA-2 2022-07-09 13:03:11 +02:00
8377c47b18 Add signature from diabonas for segaja 2022-07-09 11:09:04 +02:00
96be3a7c7f Add signature from diabonas for jleclanche 2022-07-09 11:09:02 +02:00
e3e642f460 Add signature from diabonas for farseerfc 2022-07-09 11:09:00 +02:00
bf05031682 Add signature from diabonas for dvzrv 2022-07-09 11:08:58 +02:00
6e6b123573 Add signature from diabonas for dbermond 2022-07-09 11:08:55 +02:00
ad48acc9dd Add signature from diabonas for artafinde 2022-07-09 11:08:53 +02:00
31423733b7 Add signature from diabonas for archange 2022-07-09 11:08:50 +02:00
167d06e3e2 Add signature from diabonas for alex19ep 2022-07-09 11:08:45 +02:00
0093c4c522 Add signature from diabonas for coderobe 2022-07-08 14:15:23 +02:00
f7525f8de8 Add diabonas to issue and merge request templates 2022-07-07 23:09:18 +02:00
fd9a589b20 Add main signature of diabonas for diabonas's packager key 2022-07-07 16:29:21 +02:00
dcdc48d872 Extend expiration date of diabonas's packager key
The key currently expires on 2023-01-28, extend it by two years until
2024-06-29.
2022-07-07 16:29:09 +02:00
881806606d Add new packager key for muflone 2022-07-07 16:11:58 +02:00
94b1ce3da2 Merge remote-tracking branch 'yan12125/yan12125-update-key'
* yan12125/yan12125-update-key:
  Extend expiry for yan12125's key & add a new authentication subkey
2022-07-07 15:49:47 +02:00
56de6a8451 Extend expiry for yan12125's key & add a new authentication subkey 2022-07-07 18:20:23 +08:00
42ca7f2c5e Add new main key of diabonas 2022-07-07 00:55:39 +02:00
f698f6673f Add main signature of dvzrv for xyproto
keyring/packager/arodseth/8A9BC5819C54FEB3DC2A9B48C32217F6F13FF192/uid/Alexander_F._Rodseth__xyproto@archlinux.org_0d098e0d/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature of dvzrv for xyproto's key with the ID 8A9BC5819C54FEB3DC2A9B48C32217F6F13FF192.
2022-06-26 13:14:41 +02:00
7f315fd937 Add signature from Bluewind for arodseth
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-06-26 10:46:47 +02:00
a511e5a91a Add signature from Bluewind for dvzrv
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-06-09 00:17:23 +02:00
51f6fa81ac Merge remote-tracking branch 'arodseth/add_8A9BC5819C54FEB3DC2A9B48C32217F6F13FF192'
* arodseth/add_8A9BC5819C54FEB3DC2A9B48C32217F6F13FF192:
  Add new packager key for arodseth
2022-06-08 23:17:43 +02:00
a3e6e88f5b Add new packager key for arodseth 2022-06-08 13:58:30 +00:00
02e137e933 keyringctl: use python3 in shebang
Signed-off-by: Morten Linderud <morten@linderud.pw>
2022-06-08 15:42:08 +02:00
c173a8b009 Fix coverage reporting with gitlab CI
.gitlab-ci.yml:
Remove legacy keyword 'cobertura' and use the gitlab >= 15 based
`coverage_report` which is used to specify format and path to coverage
XML.
2022-06-08 14:42:07 +02:00
eab15c07ef Add signature of dvzrv for farseerfc
keyring/packager/farseerfc/CE536327AED18EABC3B99A17F4AA4E0ED2568E87/uid/Jiachen_YANG__Arch_Linux_Packager_Signing_Key___farseerfc@archlinux.org_30efed36/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for `CE536327AED18EABC3B99A17F4AA4E0ED2568E87`.
2022-05-20 22:03:53 +02:00
a691b00605 Add signature for dvzrv
keyring/packager/dvzrv/991F6E3F0765CF6295888586139B09DA5BF0D338/uid/David_Runge__dvzrv@archlinux.org_d2ad250f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for PGP key with ID
`991F6E3F0765CF6295888586139B09DA5BF0D338`.
2022-05-20 01:14:12 +02:00
9ac4e77af5 Add new packager key for dvzrv
keyring/packager/dvzrv/991F6E3F0765CF6295888586139B09DA5BF0D338/:
Add new packager key `991F6E3F0765CF6295888586139B09DA5BF0D338` for
dvzrv.
2022-05-20 01:06:21 +02:00
f3b1e9e5f6 Revoke main key for Allan
Signed-off-by: Allan McRae <allan@archlinux.org>
2022-05-12 18:26:51 +02:00
57efde6f46 keyring: add signature from anthraxx for muflone 2022-05-11 20:45:08 +02:00
dabd5d1f19 keyring: add signature from anthraxx for maximbaz 2022-05-11 20:45:06 +02:00
11099ca589 keyring: add signature from anthraxx for juergen 2022-05-11 20:45:03 +02:00
b9b5064850 keyring: add signature from anthraxx for escondida 2022-05-11 20:45:01 +02:00
75667b9a57 keyring: add signature from anthraxx for cbehan 2022-05-11 20:44:59 +02:00
4c249460cd keyring: add signature from anthraxx for alucryd 2022-05-11 20:44:56 +02:00
db84e8208d fix(util): support shells passing subshell fd as /dev/fd
This adds support orthogonal to shells that pass subshell fd as
/proc/self/fd.
2022-05-11 20:28:23 +02:00
9f0db89a0a Add revocations for expired key
keyring/packager/dvzrv/91BD8815FE0040FA7FF5D68754C28F4FF5A1A949/*:
Add revocations for expired key.
2022-05-11 20:08:11 +02:00
acc37609f9 Add signature from Bluewind for farseerfc
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-05-11 19:58:30 +02:00
576c4eced7 Add new key CE536327AED18EABC3B99A17F4AA4E0ED2568E87 for farseerfc 2022-05-08 01:52:32 +09:00
c1e08e6a61 readme: add list of all keyring maintainers that could issue releases
This declares a list of all legitimate keys.
2022-04-24 22:21:35 +02:00
5f7147a8c6 Add pierre's master key signature for archange #160 2022-04-24 12:06:34 +00:00
af20138f4c Add pierre's master key signature for alucryd #147 2022-04-24 13:49:25 +02:00
6af9d54a1f Add main key signature from dvzrv for archange
keyring/packager/archange/69DA34D78FE0EFD596AC6D049D893EC4DAAF9129/uid/Bruno_Pagani__archange@archlinux.org_4d5b885f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature from dvzrv for archange.
2022-04-23 00:53:00 +02:00
7b31683733 Update FFY00's keys
Signed-off-by: Filipe Laíns <lains@riseup.net>
2022-04-22 22:22:17 +01:00
2e3dfd80ec Merge remote-tracking branch 'archange/mr-for-160'
* archange/mr-for-160:
  Add new uid for archange@archlinux.org
2022-04-21 14:27:38 +02:00
80c31e8e8b Add new uid for archange@archlinux.org 2022-04-17 14:17:45 +00:00
29dc5d228d Import Iterable and Iterator depending on Python version
libkeyringctl/{keyring,sequoia,util}.py:
As Iterable and Iterator are only used for type hints, switch to using
typing.{Iterable,Iterator} instead of
collections.abc.{Iterable,Iterator} for Python < 3.9.0, as older Python
interpreters will otherwise raise TypeError.
2022-04-14 16:59:22 +02:00
67d898d12f Add signature from Bluewind for alucryd
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-03-27 11:12:29 +02:00
6e23b78671 Update issue templates
.gitlab/issue_templates/*:
Replace allan with grazzolini when assigning tickets or when addressing
main key holders.
Streamline the checkbox system, by relying on less interaction from the
main key holders side if possible (e.g. checks on new keys are done
automatically in a merge request, so have contributors open the merge
request).
Add more documentation on what needs to be edited and how to provide
data exactly (e.g. keyid format, clearsigned document).
2022-03-17 18:46:31 +01:00
845dba12d5 dvzrv main key signature for alucryd
keyring/packager/alucryd/95220BE99CE6FF778AE0DC670F65C7D881506130/uid/Maxime_Gauduin__alucryd@archlinux.org_2606bf1f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Main key signature by dvzrv for alucryd (95220BE99CE6FF778AE0DC670F65C7D88150613).
2022-03-07 16:32:47 +01:00
9d07b1a210 Merge remote-tracking branch 'alucryd/new-pk-alucryd'
* alucryd/new-pk-alucryd:
  Add a new packager key for alucryd
2022-03-07 16:18:56 +01:00
ceecf32819 Add a new packager key for alucryd 2022-03-06 13:53:41 +00:00
f908838822 fix(trust): do not count revoked main keys for packager trust
If a main key is revoked we do not want to use those keys to count
the required trust threshold.
2022-02-25 21:36:35 +01:00
bae4859fd8 Merge new main key by Giancarlo Razzolini
keyring/main/grazzolini/*:
Add new main key with ID `159F3A43AEB246C5746C033814BC4F30B3B92EBA` by
Giancarlo Razzolini.

* new-mk-grazzolini:
  New Master Key of Giancarlo Razzolini
2022-02-24 18:14:56 +01:00
135960eec4 New Master Key of Giancarlo Razzolini 2022-02-13 10:26:38 -03:00
137db492d8 Add signature from Bluewind for pierre
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-02-06 14:05:47 +01:00
f6060a04f6 Add signature from Bluewind for eworm
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-02-06 14:05:47 +01:00
75f8cc54e3 Add pierre's master key signature for tensor5 #129 2022-01-27 18:26:21 +01:00
4df58a4d70 Revoke signature from Bluewind for zorun
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-01-23 11:16:28 +01:00
4a29d276c3 Add signature from Bluewind for xyne
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-01-23 11:16:28 +01:00
9fbe5c8504 Revoke signature from Bluewind for thestinger
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-01-23 11:16:28 +01:00
a343cbce6a Add signature from Bluewind for tensor5
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-01-23 11:16:27 +01:00
c9955429fc Revoke signature from Bluewind for schuay
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-01-23 11:16:27 +01:00
8c8f75e3e8 Add signature from Bluewind for jleclanche
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-01-23 11:16:27 +01:00
5b7326e615 Add signature from Bluewind for cbehan
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-01-23 11:16:27 +01:00
c37c4f20c9 Add signature from Bluewind for anatolik
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2022-01-23 11:16:27 +01:00
98ee77f1b6 Add pierre's master key signature for eworm #144 2022-01-22 16:02:24 +01:00
ba09c31dd6 Merge remote-tracking branch 'ainola/add-florian-certification-to-ainola'
* ainola/add-florian-certification-to-ainola:
  ainola: Add bluewind certification
2022-01-17 21:38:16 +01:00
8808c16c4e ainola: Add bluewind certification 2022-01-17 08:43:32 -08:00
b800c36d82 Add dvzrv main key signature for pierre
keyring/packager/pierre/4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC/uid/Pierre_Schmitz__pierre@archlinux.org_e7e0700e/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add dvzrv main key signature for pierre.

Relates to #143
2022-01-16 16:49:26 +01:00
8b704ce222 Merge remote-tracking branch 'origin/issues/140/pierre'
* origin/issues/140/pierre:
  Revoke pierre's master key signature for dvzrv 2nd key #140
2022-01-16 08:59:41 +01:00
d1f8751881 Revoke pierre's master key signature for dvzrv 2nd key #140 2022-01-16 07:49:28 +00:00
ecc0d7fb50 Merge remote-tracking branch 'origin/issues/139/pierre'
* origin/issues/139/pierre:
  Revoke pierre's master key signature for schuay #139
2022-01-16 08:49:00 +01:00
0b5ebb554f Revoke pierre's master key signature for schuay #139 2022-01-15 22:08:06 +00:00
08dbec2534 Merge remote-tracking branch 'origin/dvzrv_daurnimator_signature'
* origin/dvzrv_daurnimator_signature:
  Add dvzrv main key signature for daurnimator
2022-01-15 23:07:21 +01:00
2d5e55f0d9 Add dvzrv main key signature for daurnimator
keyring/packager/daurnimator/954A3772D62EF90E4B31FBC6C91A9911192C187A/uid/Daurnimator__daurnimator@archlinux.org_2baa8b1a/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add dvzrv main key signature for daurnimator
2022-01-15 22:06:18 +00:00
d179ff8de0 Merge remote-tracking branch 'origin/issues/130/pierre'
* origin/issues/130/pierre:
  Revoke pierre's master key signature for eschwartz #130
2022-01-15 23:05:43 +01:00
ce4d481d17 Revoke pierre's master key signature for eschwartz #130 2022-01-15 22:03:52 +00:00
b7f245738a Merge remote-tracking branch 'origin/issues/138/pierre'
* origin/issues/138/pierre:
  Add pierre's master key signature for segaja #138
2022-01-15 23:02:50 +01:00
cd6b2e83bb Add pierre's master key signature for segaja #138 2022-01-15 22:01:52 +00:00
0d8f66374f Merge remote-tracking branch 'origin/issues/137/pierre'
* origin/issues/137/pierre:
  Add pierre's master key signature for anatolik #137
2022-01-15 23:01:13 +01:00
ebe7f3e118 Add pierre's master key signature for anatolik #137 2022-01-15 22:00:04 +00:00
11656e6c2f Merge remote-tracking branch 'origin/issues/135/pierre'
* origin/issues/135/pierre:
  Add pierre's master key signature for artafinde #135
2022-01-15 22:59:05 +01:00
673158f80d Add pierre's master key signature for artafinde #135 2022-01-15 21:50:09 +00:00
f5345fa9f4 Merge remote-tracking branch 'origin/issues/134/pierre'
* origin/issues/134/pierre:
  Add pierre's master key signature for cbehan #134
2022-01-15 22:49:20 +01:00
62a0dc127a Add pierre's master key signature for cbehan #134 2022-01-15 21:44:26 +00:00
e2ef3746fb Merge remote-tracking branch 'origin/issues/133/pierre'
* origin/issues/133/pierre:
  Add pierre's master key signature for ainola #133
2022-01-15 22:43:33 +01:00
d9784c6f38 Add pierre's master key signature for ainola #133 2022-01-15 21:38:18 +00:00
dd92d81214 Merge remote-tracking branch 'origin/issues/132'
* origin/issues/132:
  Add pierre's master key signature for xyne #132
2022-01-15 22:36:31 +01:00
4eeadc92bf Add pierre's master key signature for xyne #132 2022-01-15 20:58:36 +00:00
0cffe098f4 Add pierre's master key signature for escondida
References #131
2022-01-15 14:08:47 +01:00
4ed3645f1e Add dvzrv main key signature for muflone
keyring/packager/muflone/CAA1D2323A05219AA2F01AA4E642299183ED727E/uid/Fabio_Castelli__Muflone___Arch_Linux___muflone@archlinux.org_3db85507/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add dvzrv main key signature for muflone.

Relates to #114
2022-01-14 21:19:25 +01:00
d77a60a0b6 keyring: Update foxboron@archlinux.org
Added master signature from Anthraxx

Signed-off-by: Morten Linderud <morten@linderud.pw>
2022-01-14 10:24:40 +01:00
e5556e5492 Add signatures for artafinde 2022-01-13 21:41:16 +00:00
a477336707 #138 / add packager key for segaja 2022-01-13 20:17:58 +00:00
2d0ccd069c gitlab: invoke ci target for advanced checks on new keys
This invokes the dedicated ci keyringctl command that is responsible
to check with sq-keyring-linter and hokey when completely unknown
new keys are added to the keyring.
2022-01-13 21:10:51 +01:00
6495c0db92 add signatures for eworm 2022-01-13 16:44:28 +01:00
ab44436c3a Cleanup old superseded workflow, script and key material 2022-01-12 20:51:30 +01:00
7a18f4393c Add revocation certificate for bpiotrowski's main key
keyring/main/bpiotrowski/DDB867B92AA789C165EEFA799B729B06A680C281/revocation/DDB867B92AA789C165EEFA799B729B06A680C281.asc:
Add revocation certificate for DDB867B92AA789C165EEFA799B729B06A680C281.
2022-01-11 23:39:04 +01:00
8f08f113b9 README: fix formatting
Gitlab gets this right, but let's fix it for other markdown
implementations.
2022-01-11 13:19:24 +01:00
8e9d0d0cf0 Merge remote-tracking branch 'demize/kyrias-expiry-2022'
* demize/kyrias-expiry-2022:
  Extend expiry of packager key for demize (kyrias)
2022-01-11 11:39:15 +01:00
484f57f57c Extend expiry of packager key for demize (kyrias)
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2022-01-11 10:37:51 +00:00
a2f4f1a56f Merge remote-tracking branch 'felixonmars/felixonmars-rename'
* felixonmars/felixonmars-rename:
  Rename username for felixonmars
2022-01-11 11:36:24 +01:00
a3f2b52744 Rename username for felixonmars 2022-01-11 10:34:44 +00:00
7e8fccac05 Merge remote-tracking branch 'alex19ep/renew/alex19EP'
* alex19ep/renew/alex19EP:
  extend alex19EP's key
2022-01-11 11:31:45 +01:00
79e700ff4e extend alex19EP's key 2022-01-11 10:20:29 +00:00
5f32eb3c90 Include files for coverage instead of omitting others
pyproject.toml:
Use specific include for files to use in the coverage report instead of
relying on a list of omitted files (which may grow over time and not
cover all use-cases).
2022-01-11 11:04:43 +01:00
6db2d0d201 dvzrv signature for anatolik
keyring/packager/anatolik/8E1992167465DB5FB045557CB02854ED753E0F1F/uid/Anatol_Pomozov__Arch_Linux_developer_account___anatolik@archlinux.org_00db9eb5/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for anatolik.

https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/137
2021-12-21 02:25:14 +01:00
783f1e6368 dvzrv signature for jleclanche
keyring/packager/jleclanche/169704C6FB490C6892C7F23C37E0AF1FDA48F373/uid/Jerome_Leclanche__jleclanche@archlinux.org_11de0d03/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for jleclanche.

https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/123
2021-12-18 22:13:52 +01:00
64b1d6d249 dvzrv signature for dvzrv
keyring/packager/dvzrv/C7E7849466FE2358343588377258734B41C31549/uid/David_Runge__dvzrv@archlinux.org_d2ad250f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc
Add main key signature for dvzrv.
2021-12-09 23:15:02 +01:00
db1e19d71d dvzrv signature for artafinde
keyring/packager/artafinde/B4B759625D4633430B74877059E43E106B247368/uid/Leonidas_Spyropoulos__artafinde@archlinux.org_60c8c94e/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for artafinde.
2021-12-09 23:10:15 +01:00
5c805411c7 Add packager key B4B759625D4633430B74877059E43E106B247368 for artafinde
keyring/packager/artafinde/B4B759625D4633430B74877059E43E106B247368/*:
Add packager key B4B759625D4633430B74877059E43E106B247368 for artafinde.

https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/135
2021-12-09 23:09:11 +01:00
661d82d40e dvzrv signature for nicohood
keyring/packager/nicohood/97312D5EB9D7AE7D0BD4307351DAE9B7C1AE9161/uid/NicoHood__nicohood@archlinux.org_bad775c3/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for nicohood.
2021-12-09 23:05:45 +01:00
15fb876f83 dvzrv signature for cbehan
keyring/packager/cbehan/25ACE777F62C5E5ACBF2C0474E532176DBAD6F47/uid/Connor_Behan__cbehan@archlinux.org_f24a7748/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for cbehan.
2021-12-09 23:03:50 +01:00
e6752fc57b Add new packager key 25ACE777F62C5E5ACBF2C0474E532176DBAD6F47 for cbehan
keyring/packager/cbehan/25ACE777F62C5E5ACBF2C0474E532176DBAD6F47/*:
Add a new packager key for cbehan.

https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/134
2021-12-09 23:02:45 +01:00
802f6630cf dvzrv signature for ainola
keyring/packager/ainola/BE2DBCF2B1E3E588AC325AEAA06B49470F8E620A/uid/Brett_Cornwall__ainola@archlinux.org_90fec327/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for ainola.
2021-12-09 23:00:01 +01:00
eb81996675 dvzrv signature for coderobe
keyring/packager/coderobe/54EB4D6DB209862C8945CACCED84945B35B2555C/uid/Robin_Broda__Arch_Linux___coderobe@archlinux.org_6ce6c858/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signatuer for coderobe.
2021-12-09 22:58:19 +01:00
eee0eddab5 dvzrv signature for xyne
keyring/packager/xyne/D89FAAEB4CECAFD199A2F5E612C6F735F7A9A519/uid/Xyne.__Replaces_EC3CBE7F607D11E663149E811D1F0DC78F173680.___xyne@archlinux.org_7b075f4f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signatuer for xyne.
2021-12-09 22:57:03 +01:00
eb6eb7d24e dvzrv signature for seblu
keyring/packager/seblu/B81B051F2D7FC867AAFF35A58DBD63B82072D77A/uid/Sebastien_Luttringer__seblu@archlinux.org_2339bc81/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for seblu.
2021-12-09 22:56:02 +01:00
0be7cb1eea dvzrv signature for tensor5
keyring/packager/tensor5/A667E8A1B61D07A50FC430DF69DF1F2EB44B05BE/uid/Nicola_Squartini__tensor5@archlinux.org_42ff807f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for tensor5.
2021-12-09 22:54:45 +01:00
7ba600523e Add new packager key A667E8A1B61D07A50FC430DF69DF1F2EB44B05BE for tensor5
keyring/packager/tensor5/A667E8A1B61D07A50FC430DF69DF1F2EB44B05BE/*
Add new packager key for tensor5.

https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/129
2021-12-09 22:53:04 +01:00
ea969c5f2b dvzrv signature for dbermond
keyring/packager/dbermond/80247D99EABD3A4D1E3A1836E85B8683EB48BC95/uid/Daniel_Bermond__dbermond@archlinux.org_b01455c5/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for dbermond.
2021-12-09 22:47:36 +01:00
8d60c13086 dvzrv signature for jlichtblau
keyring/packager/jlichtblau/38EDD1886756924E1224E49524E4CDB0013C2580/uid/Jaroslav_Lichtblau__svetlemodry@archlinux.org_12feb151/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for jlichtblau.
2021-12-09 22:47:30 +01:00
f756815d54 dvzrv signature for lfleischer
keyring/packager/lfleischer/2E36D8620221482FC45CB7F2A91764759326B440/uid/Lukas_Fleischer__Arch_Linux___lfleischer@archlinux.org_876710fa/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for lfleischer.
2021-12-09 22:47:26 +01:00
3f9798a4fb dvzrv signature for juergen
keyring/packager/juergen/209A36D43CE2E87DA861FC58539DFD48135182EF/uid/Jurgen_Hotzel__Arch_Linux_Developer_Key___juergen@archlinux.org_ab80fc95/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for juergen.
2021-12-09 22:47:23 +01:00
b57cb8b095 dvzrv signature for lcarlier
keyring/packager/lcarlier/535F8C0339450F054A4D282706096A6AD1CEDDAC/uid/Laurent_Carlier__lordheavym@archlinux.org_a72d7b01/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for lcarlier.
2021-12-09 22:47:20 +01:00
e335d8b7b1 dvzrv signature for kpcyrd
keyring/packager/kpcyrd/64B13F7117D6E07D661BBCE0FE763A64F5E54FD6/uid/kpcyrd__kpcyrd@archlinux.org_05f09dd3/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for kpcyrd.
2021-12-09 22:47:18 +01:00
5a36293cfe dvzrv signature for andrewSC
keyring/packager/andrewSC/601F20F1D1BBBF4A78CF5B6DF6B1610B3ECDBC9F/uid/Andrew_Crerar__crerar@archlinux.org_1627868e/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for andrewSC.
2021-12-09 22:47:15 +01:00
50f969e6fe dvzrv signature for sangy
keyring/packager/sangy/903BAB73640EB6D65533EFF3468F122CE8162295/uid/Santiago_Torres-Arias__santiago@archlinux.org_6c66fb1a/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for sangy.
2021-12-09 22:47:12 +01:00
ac276fd9e7 dvzrv signature for polyzen
keyring/packager/polyzen/04DC3FB1445FECA813C27EFAEA4F7B321A906AD9/uid/Daniel_M._Capella__polyzen@archlinux.org_baf25f25/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for polyzen.
2021-12-09 22:47:10 +01:00
35e9a0dccc dvzrv signature for rgacogne
keyring/packager/rgacogne/A4CBEA7974898599195E4FEC46EC46F39F3E2EF1/uid/Remi_Gacogne__rgacogne@archlinux.org_56f61a3b/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for rgacogne.
2021-12-09 22:47:08 +01:00
d024f98fe4 dvzrv signature for kgizdov
keyring/packager/kgizdov/0A9DDABB64B993D82AD45E4F32EAB0A976938292/uid/Konstantin_Gizdov__Arch_Linux___kgizdov@archlinux.org_0b9ef17d/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for kgizdov.
2021-12-09 22:47:05 +01:00
59464eecb2 dvzrv signature for tpowa
keyring/packager/tpowa/5B7E3FB71B7F10329A1C03AB771DF6627EDF681F/uid/Tobias_Powalowski__tpowa@archlinux.org_9a5dc15f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for tpowa.
2021-12-09 22:47:03 +01:00
9d992908c7 dvzrv signature for grazzolini
keyring/packager/grazzolini/ECCAC84C1BA08A6CC8E63FBBF22FB1D78A77AEAB/uid/Giancarlo_Razzolini__grazzolini___grazzolini@archlinux.org_c1113025/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for grazzolini.
2021-12-09 22:47:00 +01:00
db8bca5d09 dvzrv signature for shibumi
keyring/packager/shibumi/6DAF7B808F9DF25139620000D21461E3DFE2060D/uid/Christian_Rebischke__Arch_Linux_Security_Team-Member___Chris.Rebischke@archlinux.org_7d9474e2/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for shibumi.
2021-12-09 22:46:58 +01:00
337de5fa0f dvzrv signature for remy
keyring/packager/remy/44EA62ACDBC81B6A0D1FD267206CBC892D1493D2/uid/Remy_Oudompheng__remy@archlinux.org_05dc492d/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for remy.
2021-12-09 22:46:55 +01:00
fd81af2744 dvzrv signature for raster
keyring/packager/raster/04F7A0E31E08D3E08D39AFEBD147F94364295E8C/uid/Carsten_Haitzler__raster@archlinux.org_02b5c9a5/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for raster.
2021-12-09 22:46:52 +01:00
9ede953bb4 dvzrv signature for foxboron
keyring/packager/foxboron/C100346676634E80C940FB9E9C02FF419FECBE16/uid/Morten_Linderud__foxboron@archlinux.org_52506fee/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for foxboron.
2021-12-09 22:46:49 +01:00
76dbce7fc1 dvzrv signature for bluewind
keyring/packager/bluewind/CFA6AF15E5C74149FC1D8C086D1655C14CE1C13E/uid/Florian_Pritz__bluewind@archlinux.org_02e4c8b2/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for bluewind.
2021-12-09 22:46:46 +01:00
2bd1b98e0a dvzrv signature for arojas
keyring/packager/arojas/9D74DF6F91B7BDABD5815CA84AC5588F941C2A25/uid/Antonio_Rojas__arojas@archlinux.org_0857f6fd/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for arojas.
2021-12-09 22:46:43 +01:00
3b4c7e46dd dvzrv signature for alucryd
keyring/packager/alucryd/9437DD3815A7A9169E3D3946AFF5D95098BC6FF5/uid/Maxime_Gauduin__alucryd@archlinux.org_2606bf1f/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for alucryd.
2021-12-09 22:46:40 +01:00
3faa412869 dvzrv signature for jsteel
keyring/packager/jsteel/8742F7535E7B394A1B048163332C9C40F40D2072/uid/Jonathan_Steel__jsteel@archlinux.org_f62ee297/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for jsteel.
2021-12-09 22:46:33 +01:00
a45b7afe34 dvzrv signature for jelle
keyring/packager/jelle/E499C79F53C96A54E572FEE1C06086337C50773E/uid/Jelle_van_der_Waa__jelle@archlinux.org_b484b992/certification/C7E7849466FE2358343588377258734B41C31549.asc:
Add packager signature for jelle.
2021-12-09 22:45:42 +01:00
c44bfa2b78 dvzrv signature for jelle
keyring/packager/jelle/E499C79F53C96A54E572FEE1C06086337C50773E/uid/Jelle_van_der_Waa__jelle@archlinux.org_b484b992/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for jelle.
2021-12-09 22:45:16 +01:00
80ec6d02e3 dvzrv signature for andyrtr
keyring/packager/andyrtr/ADC8A1FCC15E01D45310419E94657AB20F2A092B/uid/Andreas_Radke__andyrtr@archlinux.org_c12ef6dc/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for andyrtr.
2021-12-09 22:45:14 +01:00
b8d005ab7c dvzrv signature for FFYOO
keyring/packager/FFY00/3DCE51D60930EBA47858BA4146F633CBB0EB4BF2/uid/Filipe_Lains__FFY00___lains@archlinux.org_dbd13ab3/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for FFY00.
2021-12-09 22:45:11 +01:00
585293130c dvzrv signature for heftig
keyring/packager/heftig/A2FF3A36AAA56654109064AB19802F8B0D70FC30/uid/Jan_Alexander_Steffens__heftig___heftig@archlinux.org_85a5903b/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main signture for heftig.
2021-12-09 22:45:08 +01:00
7429088c3c dvzrv signature for fyan
keyring/packager/fyan/B5971F2C5C10A9A08C60030F786C63F330D7CB92/uid/Felix_Yan__felixonmars@archlinux.org_659e86de/certification/2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E.asc:
Add main key signature for fyan.
2021-12-09 22:45:05 +01:00
02c996deb9 keyring: add packager key: zorun (initial import) 2021-12-09 22:42:27 +01:00
3b723e8196 keyring: add packager key: yan12125 (initial import) 2021-12-09 22:42:27 +01:00
fa994f5679 keyring: add packager key: xyne (initial import) 2021-12-09 22:42:27 +01:00
867f9b8bc5 keyring: add packager key: wild (initial import) 2021-12-09 22:42:27 +01:00
16d6ae063b keyring: add packager key: vesa (initial import) 2021-12-09 22:42:27 +01:00
83c55ec3bf keyring: add packager key: ttopper (initial import) 2021-12-09 22:42:26 +01:00
f1cf246390 keyring: add packager key: tredaelli (initial import) 2021-12-09 22:42:26 +01:00
f58e0ce6a3 keyring: add packager key: tpowa (initial import) 2021-12-09 22:42:26 +01:00
375027abd8 keyring: add packager key: tomegun (initial import) 2021-12-09 22:42:26 +01:00
aa840376b7 keyring: add packager key: thomas (initial import) 2021-12-09 22:42:26 +01:00
999171b278 keyring: add packager key: thestinger (initial import) 2021-12-09 22:42:26 +01:00
2cc51317d6 keyring: add packager key: tensor5 (initial import) 2021-12-09 22:42:26 +01:00
0ec63f2fac keyring: add packager key: td123 (initial import) 2021-12-09 22:42:26 +01:00
2f68ced72c keyring: add packager key: svenstaro (initial import) 2021-12-09 22:42:25 +01:00
7574ac78f0 keyring: add packager key: stephane (initial import) 2021-12-09 22:42:25 +01:00
6f64479c79 keyring: add packager key: stativ (initial import) 2021-12-09 22:42:25 +01:00
63944c056d keyring: add packager key: spupykin (initial import) 2021-12-09 22:42:25 +01:00
dc02c65522 keyring: add packager key: speps (initial import) 2021-12-09 22:42:25 +01:00
1c9db5ba2f keyring: add packager key: shibumi (initial import) 2021-12-09 22:42:25 +01:00
edbe4446b7 keyring: add packager key: seblu (initial import) 2021-12-09 22:42:25 +01:00
a8a33c7f51 keyring: add packager key: schuay (initial import) 2021-12-09 22:42:25 +01:00
5b06e383fd keyring: add packager key: schiv (initial import) 2021-12-09 22:42:24 +01:00
ba396094d7 keyring: add packager key: sangy (initial import) 2021-12-09 22:42:24 +01:00
7c5ac278be keyring: add packager key: ronald (initial import) 2021-12-09 22:42:24 +01:00
687463a3a6 keyring: add packager key: romashka (initial import) 2021-12-09 22:42:24 +01:00
a1e173374d keyring: add packager key: rgacogne (initial import) 2021-12-09 22:42:24 +01:00
3c1125b5b5 keyring: add packager key: remy (initial import) 2021-12-09 22:42:24 +01:00
33d8c57c31 keyring: add packager key: raster (initial import) 2021-12-09 22:42:24 +01:00
142f905938 keyring: add packager key: polyzen (initial import) 2021-12-09 22:42:23 +01:00
8c0d26fc57 keyring: add packager key: plewis (initial import) 2021-12-09 22:42:23 +01:00
a25fdbfb01 keyring: add packager key: pierre (initial import) 2021-12-09 22:42:23 +01:00
93e6a62c79 keyring: add packager key: orhun (initial import) 2021-12-09 22:42:23 +01:00
1ab7fc8057 keyring: add packager key: nicohood (initial import) 2021-12-09 22:42:23 +01:00
1e7b7ee999 keyring: add packager key: muflone (initial import) 2021-12-09 22:42:23 +01:00
065a7b2fc5 keyring: add packager key: mtorromeo (initial import) 2021-12-09 22:42:23 +01:00
07661a308d keyring: add packager key: morganamilo (initial import) 2021-12-09 22:42:23 +01:00
11f6c94d80 keyring: add packager key: maximbaz (initial import) 2021-12-09 22:42:22 +01:00
2ed4e1c5a6 keyring: add packager key: lfleischer (initial import) 2021-12-09 22:42:22 +01:00
531457fa12 keyring: add packager key: lcarlier (initial import) 2021-12-09 22:42:22 +01:00
238e162428 keyring: add packager key: kyrias (initial import) 2021-12-09 22:42:22 +01:00
a58cd59350 keyring: add packager key: kpcyrd (initial import) 2021-12-09 22:42:22 +01:00
5905169574 keyring: add packager key: kkeen (initial import) 2021-12-09 22:42:22 +01:00
4c52fd457a keyring: add packager key: kgizdov (initial import) 2021-12-09 22:42:22 +01:00
5f29065ffb keyring: add packager key: kchen (initial import) 2021-12-09 22:42:22 +01:00
a4152bf1e6 keyring: add packager key: juster (initial import) 2021-12-09 22:42:21 +01:00
aa29b4a6a9 keyring: add packager key: juergen (initial import) 2021-12-09 22:42:21 +01:00
c3c214f072 keyring: add packager key: jsteel (initial import) 2021-12-09 22:42:21 +01:00
c81d490759 keyring: add packager key: jlichtblau (initial import) 2021-12-09 22:42:21 +01:00
9454ea65b1 keyring: add packager key: jleclanche (initial import) 2021-12-09 22:42:21 +01:00
4eba456c63 keyring: add packager key: jgc (initial import) 2021-12-09 22:42:21 +01:00
131bf8d1be keyring: add packager key: jelle (initial import) 2021-12-09 22:42:21 +01:00
28b7b55939 keyring: add packager key: jconder (initial import) 2021-12-09 22:42:21 +01:00
aa70ebdba4 keyring: add packager key: idevolder (initial import) 2021-12-09 22:42:21 +01:00
519bd36f7e keyring: add packager key: ibiru (initial import) 2021-12-09 22:42:20 +01:00
21290dba24 keyring: add packager key: heftig (initial import) 2021-12-09 22:42:20 +01:00
b1f8358196 keyring: add packager key: hashworks (initial import) 2021-12-09 22:42:20 +01:00
3d62530828 keyring: add packager key: guillaume (initial import) 2021-12-09 22:42:20 +01:00
3d6b6a4365 keyring: add packager key: grazzolini (initial import) 2021-12-09 22:42:20 +01:00
5768a46625 keyring: add packager key: grawlinson (initial import) 2021-12-09 22:42:20 +01:00
3126869a25 keyring: add packager key: giovanni (initial import) 2021-12-09 22:42:20 +01:00
39112165c9 keyring: add packager key: fyan (initial import) 2021-12-09 22:42:20 +01:00
e37cf85d08 keyring: add packager key: freswa (initial import) 2021-12-09 22:42:19 +01:00
3f6ce5224b keyring: add packager key: foxxx0 (initial import) 2021-12-09 22:42:19 +01:00
9c5c34ba00 keyring: add packager key: foxboron (initial import) 2021-12-09 22:42:19 +01:00
6f7ed8dbfe keyring: add packager key: foutrelis (initial import) 2021-12-09 22:42:19 +01:00
27461c9354 keyring: add packager key: flexiondotorg (initial import) 2021-12-09 22:42:19 +01:00
879b59e818 keyring: add packager key: FFY00 (initial import) 2021-12-09 22:42:19 +01:00
cbbeef2e54 keyring: add packager key: farseerfc (initial import) 2021-12-09 22:42:19 +01:00
cbef9a1238 keyring: add packager key: faidoc (initial import) 2021-12-09 22:42:19 +01:00
a2b3f39d9e keyring: add packager key: eworm (initial import) 2021-12-09 22:42:19 +01:00
fc42035a81 keyring: add packager key: escondida (initial import) 2021-12-09 22:42:18 +01:00
9986e3423e keyring: add packager key: eschwartz (initial import) 2021-12-09 22:42:18 +01:00
7cead56332 keyring: add packager key: eric (initial import) 2021-12-09 22:42:18 +01:00
5e08f478ca keyring: add packager key: dwallace (initial import) 2021-12-09 22:42:18 +01:00
9c8cfd8ef5 keyring: add packager key: dvzrv (initial import) 2021-12-09 22:42:18 +01:00
55317ee81a keyring: add packager key: dreisner (initial import) 2021-12-09 22:42:18 +01:00
4e8655642b keyring: add packager key: djgera (initial import) 2021-12-09 22:42:18 +01:00
695fd90f1b keyring: add packager key: dieter (initial import) 2021-12-09 22:42:18 +01:00
a845c58f83 keyring: add packager key: dicebot (initial import) 2021-12-09 22:42:17 +01:00
e7c018b892 keyring: add packager key: diabonas (initial import) 2021-12-09 22:42:17 +01:00
35084cba68 keyring: add packager key: dbermond (initial import) 2021-12-09 22:42:17 +01:00
9cac133ecc keyring: add packager key: daurnimator (initial import) 2021-12-09 22:42:17 +01:00
5812a227a7 keyring: add packager key: daniel (initial import) 2021-12-09 22:42:17 +01:00
36ddcd936e keyring: add packager key: dan (initial import) 2021-12-09 22:42:17 +01:00
75a1e9e748 keyring: add packager key: daenyth (initial import) 2021-12-09 22:42:17 +01:00
0ccacc08ed keyring: add packager key: coderobe (initial import) 2021-12-09 22:42:17 +01:00
3a0e759f65 keyring: add packager key: cinelli (initial import) 2021-12-09 22:42:17 +01:00
ab48f2c3d2 keyring: add packager key: cesura (initial import) 2021-12-09 22:42:17 +01:00
6033085177 keyring: add packager key: cbrannon (initial import) 2021-12-09 22:42:16 +01:00
b47dfa41cd keyring: add packager key: cbehan (initial import) 2021-12-09 22:42:16 +01:00
e70bffd458 keyring: add packager key: bpiotrowski (initial import) 2021-12-09 22:42:16 +01:00
1e78031a81 keyring: add packager key: bluewind (initial import) 2021-12-09 22:42:16 +01:00
cc3821e353 keyring: add packager key: bisson (initial import) 2021-12-09 22:42:16 +01:00
f57d79f5ed keyring: add packager key: bgyorgy (initial import) 2021-12-09 22:42:16 +01:00
8dd825d6ff keyring: add packager key: bastelfreak (initial import) 2021-12-09 22:42:16 +01:00
8d7eee3605 keyring: add packager key: arojas (initial import) 2021-12-09 22:42:16 +01:00
eb1e18c440 keyring: add packager key: arodseth (initial import) 2021-12-09 22:42:16 +01:00
c2e3eef85f keyring: add packager key: archange (initial import) 2021-12-09 22:42:15 +01:00
4648ed2ca2 keyring: add packager key: arcanis (initial import) 2021-12-09 22:42:15 +01:00
1feef5c54a keyring: add packager key: anthraxx (initial import) 2021-12-09 22:42:15 +01:00
67b90b96a3 keyring: add packager key: angvp (initial import) 2021-12-09 22:42:15 +01:00
ca7124c9b4 keyring: add packager key: andyrtr (initial import) 2021-12-09 22:42:15 +01:00
5bdd6448d1 keyring: add packager key: andrewSC (initial import) 2021-12-09 22:42:15 +01:00
a6cbb72a18 keyring: add packager key: andrea (initial import) 2021-12-09 22:42:15 +01:00
1a8d660678 keyring: add packager key: anatolik (initial import) 2021-12-09 22:42:15 +01:00
d5b5e69fa5 keyring: add packager key: ambrevar (initial import) 2021-12-09 22:42:15 +01:00
263613c91a keyring: add packager key: alucryd (initial import) 2021-12-09 22:42:15 +01:00
7f7522811d keyring: add packager key: allan (initial import) 2021-12-09 22:42:14 +01:00
4e1eed483a keyring: add packager key: alex19ep (initial import) 2021-12-09 22:42:14 +01:00
39bd07f34e keyring: add packager key: alerque (initial import) 2021-12-09 22:42:14 +01:00
abb89f65e7 keyring: add packager key: alad (initial import) 2021-12-09 22:42:14 +01:00
dca954a9b1 keyring: add packager key: ainola (initial import) 2021-12-09 22:42:14 +01:00
d7f47192b7 keyring: add packager key: aginiewicz (initial import) 2021-12-09 22:42:14 +01:00
28fcfc50f4 keyring: add main key: thomas (initial import) 2021-12-09 22:42:14 +01:00
64aabc08c1 keyring: add main key: pierre (initial import) 2021-12-09 22:42:14 +01:00
7b74d90df9 keyring: add main key: ibiru (initial import) 2021-12-09 22:42:14 +01:00
5f5e744b75 keyring: add main key: florian (initial import) 2021-12-09 22:42:13 +01:00
9ee625acd8 keyring: add main key: dvzrv (initial import) 2021-12-09 22:42:13 +01:00
f93ce2137e keyring: add main key: dan (initial import) 2021-12-09 22:42:13 +01:00
508cd13ad3 keyring: add main key: bpiotrowski (initial import) 2021-12-09 22:42:13 +01:00
b060ecaa53 keyring: add main key: anthraxx (initial import) 2021-12-09 22:42:13 +01:00
9cc0e0cf00 keyring: add main key: allan (initial import) 2021-12-09 22:42:07 +01:00
37ad62d6e5 feature(keyringctl): add clean functionality to match import-clean
De-duplicate not needed certifications by cleaning the keyring after
import to remove old files when processing revocations. This basically
adds the functionality compared to import-clean.
2021-12-08 20:50:45 +01:00
d0ea790c6a fix(make): use proper dependency tracking for the build output
Declare the whole keyring data as well as the code as input dependency
for the build target. This way we can properly depend on the build
target for installation without forcing rebuilding on every invocation.

A rebuild will be triggered if either the keyring or the source code
creating the build output changes.

The directories are added to the source dependencies on purpose to
guarantee that changes like deleted files will result in a rebuild.

The mtime of the build directory is force updated on every run to allow
make to track the output artifacts mtime compared against the
dependencies.
2021-11-30 22:54:17 +01:00
0ceb6c743e fix(keyringctl): avoid simplified uid collisions using a hash
Add a postfix hash of the raw uid data to the filenames to avoid
collisions with the simplified uid.
2021-11-30 22:54:17 +01:00
4821087b2b feature(keyringctl): mark main keys bold during inspect highlight 2021-11-30 22:54:17 +01:00
b32c37bec1 feature(keyringctl): raise exception on duplicate uid data 2021-11-30 22:54:17 +01:00
b653edfcdc feature(keyringctl): add trust and colors to inspect output 2021-11-30 22:54:17 +01:00
c651bdc61e feature(keyringctl): add option to filter listing by trust 2021-11-30 22:54:17 +01:00
e9dc04df32 feature(keyringctl): split direct key packets into own directory 2021-11-30 22:54:16 +01:00
31a49c89a3 Fail test target under 100% test coverage
Makefile:
Fail coverage report below 100% test coverage.
2021-11-30 22:54:16 +01:00
e43a28f4a7 Simplify libkeyringctl.keyring.convert_certificate
libkeyringctl/keyring.py:
Simplify `convert_certificate()` by splitting out the conversion of
signature packets to `convert_signature_packet()` and the persistence of
packet material to `persist_key_material()`.
Add `convert_pubkey_signature_packet()`,
`convert_uid_signature_packet()` and
`convert_subkey_signature_packet()` to deal with the conversion of
public key signatures, UID signatures and subkey signatures
(respectively).

tests/test_keyring.py:
Add tests for `convert_certificate()`, `convert_signature_packet()`,
`convert_{pubkey,uid,subkey}_signature_packet()` and
`persist_subkey_revocations()`.
2021-11-30 22:54:16 +01:00
bb30e3d2fd Add tests for list and inspect functions
tests/test_keyring.py:
Add tests for `list_keyring()` and `inspect_keyring()`.
2021-11-30 22:54:16 +01:00
743d2bb3bb Add tests for introspection and export
libkeyringctl/keyring.py:
Change `get_packets_from_path()` to use full conditional statements
which is easier to cover in tests.

tests/test_keyring.py:
Add simple tests for `get_packets_from_path()`,
`get_packets_from_listing()`, `export()` and `build()`.
2021-11-30 22:54:16 +01:00
8689995b69 feature(keyringctl): yell and abort if processing private key data 2021-11-30 22:54:16 +01:00
5a83a7b6c1 feature(keyringctl): skip user attribute packets as none relevant 2021-11-30 22:54:16 +01:00
3d8e88dfaf Add tests for convert and export functionality
tests/test_keyring.py:
Add basic tests for `convert()`, `export_ownertrust()` and
`export_revoked()`.
2021-11-30 22:54:16 +01:00
e8fb9d17b3 chore(keyringctl): add test for simplify_ascii 2021-11-30 22:54:16 +01:00
83a345a1b8 feature(keyringctl): rework ci module to execute full lint for new certs 2021-11-30 22:54:16 +01:00
bce5bc550e feature(keyringctl): rework str simplification for printable uids 2021-11-30 22:54:16 +01:00
2030de06a0 fix(keyringctl): set HOME, PATH, LANG required for hokey
This effectively requires en_US.UTF-8 to be an available lang, which is
a relative fair requirement and mandatory to set for hokey.
2021-11-30 22:54:15 +01:00
f74a1be1ac chore(keyringctl): add integrity checks for binding/revocation sigs 2021-11-30 22:54:15 +01:00
9741ada9ef fix(keyringctl): put subkey revocations into the correct subkey dirs 2021-11-30 22:54:15 +01:00
17d27e2274 Add unit test for libkeyringctl.sequoia.packet_kinds
tests/test_sequoia.py:
Add unit test for libkeyringctl.sequoia.packet_kinds.
2021-11-30 22:54:15 +01:00
5f36beff90 feature(ci): run keyring integrity check if keyring or code changes 2021-11-30 22:54:15 +01:00
0456e9a5f8 fix(tests): use working dir via fixture instead of cluttering cwd 2021-11-30 22:54:15 +01:00
ddf19a4362 Add first unit tests for libkeyringctl.keyring
tests/test_keyring.py:
Add tests for `is_pgp_fingerprint()`,
`transform_{fingerprint,username}_to_keyring_path()`,
`derive_username_from_fingerprint()` and get_fingerprints_from_paths()`.
2021-11-30 22:54:15 +01:00
16bed8ac4a Add fixtures for valid and invalid fingerprints
tests/conftest.py:
Add `valid_fingerprint()` and `valid_subkey_fingerprint()` fixtures to
produce a generic "valid" PGP fingerprint string.
Add the `invalid_fingerprint()` fixture to generate a set of "invalid"
fingerprint strings.
2021-11-30 22:54:15 +01:00
e42a895889 fix(keyringctl): add missing python-toml for coverage run 2021-11-30 22:54:15 +01:00
e55042e45b feature(keyringctl): verify file structure integrity and packets
This moves all verify code to an own module and adds support to check
all packet files in the structure for integrity. This is done by parsing
assumptions like packet kind, type, issuer and location etc.
2021-11-30 22:54:15 +01:00
d9e9453d84 feature(keyringctl): write all packet files with full issuer fingerprint
This avoids collision between same issuer using key-id and full
fingerprint in different versions of a packet, like signature.
2021-11-30 22:54:15 +01:00
279765b22a fix(keyringctl): fix system stderr case due to wrongly written test
CalledProcessError returns bytes for our invocations, the fix that
decoded bytes of stdout was purely to make the mocked test happy while
breaking the actual usage. Restore the behavior and fix the wrong mocked
data.
2021-11-30 22:54:14 +01:00
cd585f4be2 chore(keyringctl): increase test coverage and fix trust expectations 2021-11-30 22:54:14 +01:00
7513e71b3f chore(keyringctl): add key revocation trust tests 2021-11-30 22:54:14 +01:00
a25c267f26 Add more specific coverage configuration
pyproject.toml:
Set specific source for `toolscoverage.paths` (as we only provide one
module).
Set `tools.coverage.run.relative_files` to true (although it is still
bug riddled and does not seem to work as advertized in regards to xml
output: https://github.com/nedbat/coveragepy/issues/963,
https://github.com/nedbat/coveragepy/issues/1147).
Set `tool.coverage.xml.output`, so we don't have to provide it on the
commandline.

Makefile:
Do not provide an output file to the coverage xml call, as we do that in
configuration now.
2021-11-30 22:54:14 +01:00
86eb172ac3 chore(keyringctl): add missing type annotations for tests 2021-11-30 22:54:14 +01:00
c807a81a57 feature(ci): add testing and coverage data to gitlab ci artifacts 2021-11-30 22:54:14 +01:00
b9bbe3f1d4 Also trigger tests and linting on changes to CI
.gitlab-ci.yml:
Also trigger tests and linting on changes to .gitlab-ci.yml.
2021-11-30 22:54:14 +01:00
c75c3ee7ee .gitignore: Add coverage and pycache
.gitignore:
Add .coverage and __pycache__ dirs to ignore.
2021-11-30 22:54:14 +01:00
358e840f8f Add unit tests for util functions
tests/test_util.py:
Add tests for `cwd()`, `natural_sort_path()`, `system()`,
`absolute_path()`, `transform_fd_to_tmpfile()`, `get_cert_paths()`,
`get_parent_cert_paths()` and `contains_fingerprint()`.
2021-11-30 22:54:14 +01:00
c1f59488e5 Add unit tests for code calling sequoia
tests/test_sequoia.py:
Add unit tests for `keyring_split()`, `keyring_merge()`,
`packet_split()`, `packet_join()`, `inspect()`, `packet_dump()`,
`packet_dump_field()`, `packet_signature_creation_time()`, and
`latest_certification()`.
2021-11-30 22:54:14 +01:00
52e0936524 Add unit test for git integration
tests/test_git.py:
Add unit test for `git_changed_files()`.
2021-11-30 22:54:14 +01:00
d969587bf7 Add python-coverage as dependency for contributing
CONTRIBUTING.md:
Add python-coverage to the list of dependencies for testing.
2021-11-30 22:54:13 +01:00
f27a7b90c2 Makefile: Use coverage instead of pytest
Makefile:
Run pytest via coverage in `make test` to also generate a coverage
report.
2021-11-30 22:54:13 +01:00
c968e7815a Add python-coverage to test target
.gitlab-ci.yml:
Add python-coverage to test target.
2021-11-30 22:54:13 +01:00
a21e6f21fb Write bytes to stderr when raising during system call
libkeyringctl/util.py:
Change `system()` to write bytes to stderr.buffer, as before
CalledProcessError.stdout had been used, which returns a string.
2021-11-30 22:54:13 +01:00
4597fba6ba Rename test directory to tests
tests/*:
The existing coverage configuration is setup to use/ omit a tests
directory.
2021-11-30 22:54:13 +01:00
0ca74e243b feature(keyringctl): adding basic infrastructure for running tests 2021-11-30 22:54:13 +01:00
8ba7dc1dc9 feature(keyringctl): acquire trust status from key assumptions
Rework the whole trust handling by acquiring the trust status from
actual assumptions related to the amount of ownertrust signatures and
revocations.
2021-11-30 22:54:13 +01:00
26c7027660 feature(keyringctl): support importing from a piped fd
This feature allows to import from a piped fd like:
> ./keyringctl import --name foobar <(gpg --export foo@bar)

We achieve this even with hidepid by taking the naive approach of
copying the processes fd source to a tempfile and pass around latter.
2021-11-30 22:54:13 +01:00
2384d0337b fix(keyringctl): resolve cert dir per fingerprint and not parent user 2021-11-30 22:54:13 +01:00
03d5899f87 fix(keyring): use a single applied revocation to declare a key revoked
Otherwise the PGP trust and revocation status file will not match our
expectations. A single applied revocation to this directory structure
should be checked either way.

We can later create TODO's to have at least two revocations for the keys
that would otherwise be still trusted and then change this value.
2021-11-30 22:54:13 +01:00
878752dc13 fix(keyringctl): avoid leaking unclosed file descriptors 2021-11-30 22:54:13 +01:00
10d54ac35d feature(make): adding fmt target to format the project accordingly 2021-11-30 22:54:12 +01:00
a9e63edfa8 feature(keyringctl): adding ci command to verify newly added certs
Currently only newly added certificates will be checked against the
expectations as existing keys are not all fully compatible with those
assumptions.  New certificates are determined by using
$CI_MERGE_REQUEST_DIFF_BASE_SHA as the base,
2021-11-30 22:54:12 +01:00
9733fbafd8 feature(keyringctl): add verify command to check certificate expectation
This command checks certain expectations using sq and hokey, prints the
results to stdout and potentially exists non successfully.
2021-11-30 22:54:12 +01:00
94c3b4c8e9 fix(keyrinctl): yield file not found errors instead of blocking on stdin
Handle missing or wrong certificate paths in a way that does not lead to
a blocking command by reading from stdin. Instead throw either file not
found errors or expect optional outputs.
2021-11-30 22:54:12 +01:00
58307c629d chore(keyringctl): modularize the code for overview and testing 2021-11-30 22:54:12 +01:00
f90e860d16 fix(keyringctl): prioritize latest certification per issuer
When importing a non reduced keyring the certifications were not
deterministic for keys that have multiple certifications per issuer.
This was for example the case for self certifications to extend the
expiry time. Before this commit a random certification could remain the
final one which would lead to a non up to date keyring and a potentially
expired key.
2021-11-30 22:54:12 +01:00
32469720f8 fix(keyringctl): deterministic assembling order with single packet files
Fix the assembling of a certificate by joining the packets in the
correct order and splitting combined files into individual single
packets per file.
2021-11-30 22:54:12 +01:00
4b136dd6f6 feature(keyringctl): enrich inspect to show explicit label for main keys
This helps to identify if a certification issuer comes from a main key
or not.
2021-11-30 22:54:12 +01:00
b6c25fa531 chore(keyringctl): de-duplicate username/fprint transform code
We duplicated resolving usernames and fingerprints to actual keyring
paths in multiple places. De-duplicate the code by using dedicated
functions to do this job.
2021-11-30 22:54:12 +01:00
cced93480c fix(keyringctl): avoid walking non existing paths to resolve certs 2021-11-30 22:54:12 +01:00
02605edee5 feature(keyringctl): sort list command for alphabetical listing
Only do so when listing all keys, when a filter is provided, like
usernames or fingerprints, keep the order to allow a 1:1 mapping.
2021-11-30 22:54:12 +01:00
f3f3a63385 feature(keyringctl): avoid storing pubkey and uids in certifications
We do not need to duplicates packages in certifications and revocations.
Store the packets separated from their parent as those are already
persisted.
2021-11-30 22:54:12 +01:00
5249453726 feature(keyringctl): support passing fingerprint as source
This helps make the CLI more useful by listing, exporting or inspecting
a specific fingerprint.
2021-11-30 22:54:11 +01:00
6d336828e1 chore(keyringctl): remove docstring types as the signatures cover them
All modern tooling already reads type hinting from the signatures
instead of the docstring and supports annotating the parameter
accordingly. Remove the duplicated data to avoid out of sync
documentation.
2021-11-30 22:54:11 +01:00
619f2a3b68 chore(keyringctl): simplify convert usage by moving fingerprint filter 2021-11-30 22:54:11 +01:00
fc9ad848ab chore(keyringctl): simplify trust functions and return trusted/revoked
The API makes more sense to return (trusted,revoked) as the caller can
simply derive all certificates by joining the two sets.

To simplify the functions, some code has been replaced to use helper
methods to flatten the nested loops.
2021-11-30 22:54:11 +01:00
e0abfd195c feature(keyringctl): collect usernames to fingerprints to enrich output
By collecting the matching usernames to all fingerprints we are able to
enrich the output of `inspect` to show the usernames next to the
certifications.
2021-11-30 22:54:11 +01:00
2d1eb93a39 chore(keyringctl): move cert depth first search to own function
This way we can reuse the functionality which will allow to simplify a
lot of places that have multiple layers of inflexible nested loops.
2021-11-30 22:54:11 +01:00
3776ca942c fix(keyringctl): preserve keyring split filenames in separated dirs
This aids initial imports of keyrings that contain multiple certificates
by allowing keyring_split to enforce preserving the filenames. This is
achieved by moving each split keyring into unique sub directories where
the original input filename remains unique.
2021-11-30 22:54:11 +01:00
090d63ae20 fix(keyringctl): force overwrite packets when persisting
When we import new packet data, always allow overwrites of the final
packet files. This may happen when importing from multiple files that
provide the same packets, which is fine as they should still yield to
the same results.
2021-11-30 22:54:11 +01:00
82254e0a36 feature(keyringctl): add inspect command to pretty print certificates
This command prints a new and pretty representation of the certificate
data to visualize the keyring and its signatures.
2021-11-30 22:54:11 +01:00
0168ce1db0 feature(keyringctl): add simple command to list all certificates 2021-11-30 22:54:11 +01:00
1a8ea8397d chore(keyringctl): throw exception instead of exit on failed system calls 2021-11-30 22:54:11 +01:00
f6e3a4e94b feature(keyringctl): use build command to create final artifacts
This allows an easy to use cli which invokes the export function to get
the keyring and uses the ownertrust and revoke functions to write all
artifacts into a target directory.
2021-11-30 22:54:10 +01:00
77e5b36872 feature(keyringctl): add force parameter to keyring_merge 2021-11-30 22:54:10 +01:00
86747ecab7 feature(keyringctl): use the export command purely to export keyrings
This gives more control over the export command that may be useful to
export a single packager to import it into gpg. This will also give more
flexibility to chain this function to the future verify stage.

By default the command exports the whole keyring directory.
2021-11-30 22:54:10 +01:00
aa2f2ea497 feature(keyringctl): add dedicated keyring_merge function 2021-11-30 22:54:10 +01:00
cb95b92778 chore(editorconfig): sync line length with flake8 config to 120 chars 2021-11-30 22:54:10 +01:00
52178f38d5 feature(keyringctl): improve packet_join to optionally return the result 2021-11-30 22:54:10 +01:00
deaa312b7d feature(keyringctl): print a stack trace in case a system cmd fails 2021-11-30 22:54:10 +01:00
bc8c51749c chore(doc): improve import usage section exmaples 2021-11-30 22:54:10 +01:00
94b910a55e fix(ci): use unified multi import command 2021-11-30 22:54:10 +01:00
edbbc77086 chore(keyringctl): use python 3.9 iterable/iterator type imports 2021-11-30 22:54:10 +01:00
74f317344f feature(keyringctl): support importing multiple paths
Lets pass in a list of path's and reduce them to one set of path
iterables. This allows us to specify multiple source files/directories
2021-11-30 22:54:10 +01:00
1b1aa7f738 fix(doc): improve splitting topics across README.md and CONTRIBUTING.md 2021-11-30 22:54:09 +01:00
c214022300 fix(keyringctl): restore --target option for convert command 2021-11-30 22:54:09 +01:00
40592b3534 feature(keyringctl): print help if invoked without any subcommand 2021-11-30 22:54:09 +01:00
8bc0ae1da0 feature(keyringctl): unify import subcommand for condensed api
Both commands are basically doing the same with the same params except
the target directory differs. Lets condense this behavior by using a
single subcommand with a boolean options.
2021-11-30 22:54:09 +01:00
2f9ef0ef1d feature(keyringctl): keep filename if keyring split yields one keyring
Instead of always returning an artificial name try to preserve the
keyring filename if the split only yields a single certificate.
2021-11-30 22:54:09 +01:00
b91e8b983c feature(keyringctl): move main/packager folders to isolated keyring dir
This helps to structure the layout of the repository better by having
one root folder that contains the actual decomposed keyring structure.
2021-11-30 22:54:09 +01:00
48e9bb67cb chore(keyringctl): use singular for packager directory as well
So far we have used singular for all directories, lets keep that for the
packager directory as well.
2021-11-30 22:54:09 +01:00
37d0a5f633 chore(keyringctl): apply black formatter 2021-11-30 22:54:09 +01:00
930b5896a0 feature(keyringctl): introduce Username type instead of plain str 2021-11-30 22:54:09 +01:00
e422149c8a feature(keyringctl): add type hinting direct sigs/revocations 2021-11-30 22:54:09 +01:00
147287959f feature(keyringctl): derive username from short key id fingerprints
Allow short key id fingerprints to be used with the username derive
function by adding a glob in front of the fingerprint component.
2021-11-30 22:54:09 +01:00
60ee3d6d94 feature(keyringctl): avoid splitting a certificate multiple times
Move the name cascade to derive the username into the
`convert_certificate` function which allows to use the
certificate_fingerprint directly instead of trying to find it by
splitting the certificate one more time before converting.
2021-11-30 22:54:09 +01:00
cf6bac5fd9 chore(keyringctl): fix typo in docstring for convert_certificate 2021-11-30 22:54:08 +01:00
2206fe07b6 feature(keyringctl): simplification by removing static data from types
The certificate fingerprint in the convert function remains always the
same as we only process a single certificate and loop outside over
multiple keyrings. Therefor remove that layer from the data structures
and implicitly simplify all the assignments and usages.
2021-11-30 22:54:08 +01:00
a43d3dfac6 chore(keyringctl): add docstring for export_keyring() pacman_integration 2021-11-30 22:54:08 +01:00
f92a5884c5 chore(keyringctl): remove used input_path from get_fingerprints 2021-11-30 22:54:08 +01:00
e001de10d6 chore(keyringctl): blake compatible formatting of binary or chain 2021-11-30 22:54:08 +01:00
0bd10b9b4f chore(keyringctl): avoid shadowing convert function 2021-11-30 22:54:08 +01:00
77b1eab89e feature(keyringctl): add type hinting for fingerprint and uid
This drastically improves readability and type safety when joggling with
different keys in the data structures.
2021-11-30 22:54:08 +01:00
cd0a2005a7 isort: Configure to use single lines
pyproject.toml:
Configure isort to use single lines (one line for each import) to ease
merge conflicts.

keyringctl:
Reformat using new isort settings.
2021-11-30 22:54:08 +01:00
49ff2df1fc keyringctl: Implement filtering of certifications
keyringctl:
Add `get_fingerprints_from_import_source()` to derive all fingerprints
of PGP public keys found in the import source.
Add `get_fingerprints_from_decomposed_dir()` to derive all fingerprints
of PGP public keys found in a directory structure holding decomposed PGP
packet data.
Add `get_fingerprints()` to derive a set of fingerprints of PGP public
keys provided through `get_fingerprints_from_import_source()` and
`get_fingerprints_from_decomposed_dir()`.
Change `convert()` and `convert_certificate()` to accept an optional set
of strings (`fingerprint_filter`) that may be used as a filter for
valid fingerprints when considering certifications.
Change `__main__` to call `convert()` when importing keys to packager or
main dir, providing `fingerprint_filter` which will attempt to look up
fingerprints in the source as well as the target.
2021-11-30 22:54:08 +01:00
4b70feb2fb keyringctl: Derive username from target when importing existing key
keyringctl:
Add `derive_user_from_target()` to derive the username from an existing
public key in the target directory when importing (updates to) an
already known key.
Change `convert()` to either use a custom name override (if provided), a
username derived from target dir (if existing) or the file name of the
to be imported file as username.
2021-11-30 22:54:08 +01:00
5e6a8a2e98 gitlab-ci: Run lint, build and install
.gitlab-ci.yml:
Add rule to run `make lint` if `keyringctl` changes in a merge request.
Add integration stage to always attempt to build and install the keyring
in a containerized environment.
2021-11-30 22:54:08 +01:00
153ae31437 Makefile: Change to use new targets
Makefile:
Remove soon unneeded targets for dist and upload.
Add lint and build targets.
Simplify the installation and uninstallation target.
2021-11-30 22:54:07 +01:00
fa0f35a66c editorconfig: Extend for yaml files
editorconfig:
Add a sane default for YAML files.
2021-11-30 22:54:07 +01:00
1cbd360d17 keyringctl: Format file
keyringctl:
Use black to format the file, isort to auto-sort all imports.
Remove commented code and (for now) ignore the high complexity in
`convert()` so that flake8 can be used.
2021-11-30 22:54:07 +01:00
0e54261242 keyringctl: Do not persist unbound certifications
keyringctl:
Change `persist_certifications()` to not attempt to read UID binding
signatures for a given UID, if it does not exist and instead output an
error message.
2021-11-30 22:54:07 +01:00
8ec1654e0c keyringctl: Simplify subcommands
keyringctl:
Change `convert()` to create the target directory including parents.
Change `export_keyring()` to create the output directory and its
parents before outputting data into it.
Remove `keyring_import()` as its functionality is covered by using
`convert()` directly with different subcommands.
Change `__main__` to define `import-main` and `import-packager`
subcommands instead of `import` and to add an `export-keyring`
subcommand. Remove the explicit creation of target dirs (it is now
implemented in `convert()` and `export_keyring()`.
2021-11-30 22:54:07 +01:00
819e1adc37 README: Add new default sections and cleanup
README.md:
Add a short purpose introduction.
Add requirements, installation, contribution, releases and license
sections.
2021-11-30 22:54:07 +01:00
cc26ca503c chore(keyringctl): uniformly use path builder via operator
Instead of partially dealing with strings that contain slashes lets just
use the path builder interface by using the operator for every sub path
layer in a uniform way.
2021-11-30 22:54:07 +01:00
c86832f3a1 chore(keyringctl): use singular folder names for all sub-folders 2021-11-30 22:54:07 +01:00
6299f6416e chore(keyringctl): deduplicate iteration and split code in convert() 2021-11-30 22:54:07 +01:00
ac798eeeab feature(keyringctl): wire the import command for convenience
Use it to auto write a decompose/convert command into the local keyring
automatically.
2021-11-30 22:54:07 +01:00
b989203ff0 chore(doc): extend source parameter description 2021-11-30 22:54:07 +01:00
aa934d5ff5 chore(keyringctl): declare missing type hinting for cwd 2021-11-30 22:54:07 +01:00
04008da268 fix(keyringctl): do not line break before operators
This is a lot easier to read and also fixes a style warning python
issues.
2021-11-30 22:54:06 +01:00
4e98585232 feature(keyringctl): use prefixed temp dirs for easier recognition
It makes sense to prefix the temp directories so they can be identified
more easily to which application they belong to or what they may
contain.
2021-11-30 22:54:06 +01:00
a0199b0b04 fix(keyringctl): restore cwd before deleting the temporary working dir
This avoids potential issues with wrapped runtime like ipython or pdb
that try to invoke functions at exit and access the current working
directory, which will ultimately lead to an error in case we deleted it
before changing the current working directory.
2021-11-30 22:54:06 +01:00
92f07f0d4b feature(keyringctl): use sq to split a keyring into individual certificates
Lets use sequoia as well to split an input into individual certificates
instead of creating a custom made function for this job.

Pass down the name of the original input file to `convert_certificate`
in case no override has been defined.
2021-11-30 22:54:06 +01:00
4e24fe5da4 Add pyproject.toml with tooling configuration
pyproject.toml:
Add configuration for black, coverage, isort and mypy.
2021-11-30 22:54:06 +01:00
53ffb80740 Add flake8 configuration
.flake8:
Add integration for flake8.
Set maximum line length to 120 and maximum complexity to 10.
2021-11-30 22:54:06 +01:00
b3e1640553 Add contribution guidelines
CONTRIBUTING.md:
Add guidelines describing how code is added and which commands to use to
add or update key material.
2021-11-30 22:54:06 +01:00
5170319717 keyringctl: Add documentation to all functions
keyringctl:
Add documentation to all functions.
Change the inlined functions `convert()` and `alphanum_key()` in
`natural_sort_path()` to rely on type Union[int, str] instead of type
Any.
Change `convert_certificate()` to derive the username using the stem of
the provided certificate.
2021-11-30 22:54:06 +01:00
5320f2491e keyringctl: Implement export of ownertrust/ revoker status
keyringctl:
Add `temp_join_keys()` to generically join PGP packets in a directory
below a temporary directory.
Add `get_all_and_revoked_certs()` to retrieve a tuple containing a list
of all public key fingerprints and a list of all self-revoked public key
fingerprints in a list of paths.
Add `export_ownertrust()` to export a list of fingerprints of
non-revoked public keys to a file that can be imported using `gpg
--import-ownertrust`.
Add `export_revoked()` to export the fingerprints of all self-revoked
public keys and the fingerprints of public keys that have been revoked
by third party signing keys (the latter is still fairly naive).
Change `export_keyring()` to make use of `temp_join_keys()` for
preparing main signing keys and general keys for the export to file. Add
integration for exporting ownertrust and revoker status (using
`export_ownertrust()` and `export_revoked()`, respectively).
Change `__main__` by extending the export_parser by a `-m`/ `--main`
argument to provide one or multiple files or directories, that serve as
the signing authority for key material located below `-s`/ `--source`.
Add a `-p`/ `--pacman-integration` to provide the means to export
ownertrust and revoker status on demand.
2021-11-30 22:54:06 +01:00
3c31230eb2 keyringctl: Write User IDs to separate files
keyringctl:
Add `persist_uids()` to write User ID related packets: User-ID and
PositiveCertifications (UID binding signatures).
Rename `persist_basic_key()` to `persist_public_key()` and change it to
only persist the PublicKey packet.
Change `persist_{certifications,revocations}()` to persist the
certificates to a key-specific 'uids' subdirectory per PublicKey.
Change `convert_certificate()` to rename `uid_binding_sig` to
`uid_bind_sigs`. Simplify the logic for signature related data
assignments.
2021-11-30 22:54:06 +01:00
7e04c50a16 keyringctl: Split out subkeys to separate structure
keyringctl:
Add `persist_subkeys()` and `persist_subkey_revocations()` to persist
the Public-Subkeys and the SubkeyRevocations of a root key out into a
dedicated directory structure below the respective Public-Key.
Change `persist_basic_key()` to not persist the Public-Subkeys and
SubkeyRevocations of a root key anymore and to output debug information
before writing to file.
Change `convert_certificate()` to refer to Public-Subkeys and
PublicSubkeyBinding as `subkeys` and `subkey_binding_sigs`
(respectively) and to explicitly refer to the main certificate
fingerprint when aggregating the data about them. Add
`subkey_revocations` to track any SubkeyRevocations of a given
Public-Subkey, so that it can be persisted to file.
2021-11-30 22:54:06 +01:00
c4fbd95041 keyringctl: Add writing to keyring output file
keyringctl:
Change `packet_join()` to add documentation and a `force` parameter with
which sq's force parameter may be toggled (defaults to False).
Add `export_keyring()` to allow writing all provided PGP packet files to
a single output file using `sq keyring merge`.
Change `__main__` to add an `export` subcommand to allow for providing
multiple input sources and one output file. Add an optional `-f/--force`
parameter that can be used to force subcommands that support it. Remove
the unused `start_dir` variable. Move the creation of `target_dir` below
the context that creates the working directory and only create it when
using the `convert` or `import` subcommands (as it is not used
otherwise).
Call `export_keyring()` when using the `export` subcommand.
2021-11-30 22:54:05 +01:00
7f7c2f13f0 keyringctl: Deal with multi-certificate per user files
keyringctl:
Add `sanitize_certificate_file()` to potentially split per-user input
files that contain more than one certificate.
Change `packet_split()` to add documentation and rename the key
parameter to certificate, as it is more generic.
Change `convert_certificate()` to use named parameters when calling
`packet_split()`.
Change `convert()` to call `convert_certificate()` on a list of
sanitized certificates (generated using `sanitized_certificate_file()`)
to be able to deal with multi-certificate files per user.
2021-11-30 22:54:05 +01:00
cb8e827112 keyringctl: Copy files instead of moving them
keyringctl:
Change `__main__` to create the `target_dir` before calling any further
function that relies on it.
Change `convert()` to require the `target_dir` to be not None and to
create all username based target directories before using
`shutil.copytree()` to copy all sources to their respective target
directories when iterating over the paths to persist. This has the
upside, that updates to a target directory structure can be done on the
fly (overwriting existing data), which is not possible with
`shutil.move()`.
2021-11-30 22:54:05 +01:00
a5be572136 keyringctl: Derive output dir from file and allow override
keyringctl:
Change `convert_certificates()` to use a more descriptive
`name_override` parameter in its signature to allow the overriding of
the username directory name into which key material is persisted.
Distinguish between the per-username directory and the eventual key
material directory. Instead of the key directory return the username
directory.
Change the `persist*` functions to use the `key_dir` instead of the
`root_dir` terminology as well.

Change `convert()` to optionally allow a `name_override` as well and use
that in the calls to `convert_certificate()`. Make the moving of files
more robust, by at least allowing to move the per-key directories for a
username, if the username target directory exists already. NOTE: This
needs expansion for the use-case where existing files should be
updated/extended by new files.

Add an additional argument to the 'convert' argparse parser to allow
users to override the target username directory name.
2021-11-30 22:54:05 +01:00
40761f44a7 keyringctl: Add handling of KeyRevocations
keyringctl:
Change `persist_direct_sigs()` to track a sig_type parameter in its
signature so that the output directory of the direct signatures can be
altered.
Change `convert_certificate()` to set a `direct_revocations` variable,
that is used to track KeyRevocations for root keys. Extend the logic to
make use of `add_packet_to_direct_sigs()` to set a list of
KeyRevocations for a given root key. Eventually call
`persist_direct_sigs()` with `direct_revocations` and a custom
`sig_type` to persist the revocation certificates.
2021-11-30 22:54:05 +01:00
a77b334859 keyringctl: Persist direct signatures generically
keyringctl:
Rename `persist_direct_keys()` to `persist_direct_sigs()` as it is now
not only handling the persistence of DirectKeys but also *Certifications
directly on a root key (those without an explicit User ID).
Add inline function `add_packet_to_direct_sigs()` to
`convert_certificate()` to generically add direct signatures on a root
key, grouped by issuer.
Change `convert_certificate()` to add Certifications on a root key
(without a specified User ID) to the list of direct_sigs, so that they
are persisted alongside any existing DirectKeys.
Remove breakpoints from `persist_certifications()` as they are no longer
reached. The function is now solely used for Certifications on User IDs.
2021-11-30 22:54:05 +01:00
0d32d2f00a keyringctl: Dedicated functions for writing to file
keyringctl:
Add `persist_basic_key()`, `persist_direct_keys()`,
`persist_certifications()` and `persist_revocations()` to allow for
dedicated writing of basic key material, direct key signatures,
per UID certificates and per UID revocations (respectively).
Change `convert_certificate()` to call the new dedicated write functions
instead of implementing the functionality.
Change `convert_certificate()` to raise on missing current_packet_key
when trying to work on signature files (this is unlikely to occur,
unless the input data is somehow broken, but it keeps the linter happy).
Change `convert_certificate()` to handle direct_keys by issuer on a
given root key (DirectKey signatures by the same issuer are combined).
Change the argparse subparser for the 'convert' command to include a
help text.
2021-11-30 22:54:05 +01:00
f626e40b84 feature(keyringctl): add tool to work with key data 2021-11-30 22:54:05 +01:00
4116f94fbb feature(editorconfig): add standard python settings 2021-11-30 22:53:57 +01:00
4967abcb0c Merge remote-tracking branch 'origin/key_update'
* origin/key_update:
  Update keyring
2021-11-30 00:21:13 +01:00
0271f6121f Update keyring
Update the archlinux keyring and the packager keys.
2021-11-30 00:18:53 +01:00
77a72765b1 Merge remote-tracking branch 'origin/packager_key_mtorromeo'
* origin/packager_key_mtorromeo:
  Add new packager key of Massimiliano Torromeo (mtorromeo)
2021-11-30 00:10:38 +01:00
b8726b2498 Add new packager key of Massimiliano Torromeo (mtorromeo) 2021-11-30 00:07:40 +01:00
75b2957f4a Merge remote-tracking branch 'dbermond/dbermond-new-key'
* dbermond/dbermond-new-key:
  Add new packager key for Daniel Bermond
2021-11-29 17:25:45 +01:00
b9d4aaf8d9 Add new packager key for Daniel Bermond 2021-11-29 16:24:50 +00:00
f50472b9e3 Merge remote-tracking branch 'wild/wild-newkey'
* wild/wild-newkey:
  Add packager key for wild
2021-11-29 17:24:26 +01:00
d20e6a9f83 Add packager key for wild
Signed-off-by: Dan Printzell <wild@archlinux.org>
2021-11-29 16:23:44 +00:00
e21943f9b6 Merge remote-tracking branch 'idevolder/hotfix/new-ike.devolder.archlinux.org-key'
* idevolder/hotfix/new-ike.devolder.archlinux.org-key:
  add new archlinux.org gpg key for Ike
2021-11-29 17:23:05 +01:00
cb5fb8705b add new archlinux.org gpg key for Ike 2021-11-29 16:22:10 +00:00
5121c2d628 Merge remote-tracking branch 'juergen/new-gpg-key'
* juergen/new-gpg-key:
  add new archlinux.org gpg key for juergen
2021-11-29 17:21:49 +01:00
161c70dfc3 add new archlinux.org gpg key for juergen 2021-11-29 16:21:03 +00:00
5187908235 Merge remote-tracking branch 'xyne/xyne-add_gpg_key'
* xyne/xyne-add_gpg_key:
  Add new PGP key ID for Xyne.
2021-11-29 17:19:32 +01:00
99f56df063 Add new PGP key ID for Xyne. 2021-11-29 16:16:28 +00:00
703ce130f1 Merge remote-tracking branch 'escondida/escondida-new-key'
* escondida/escondida-new-key:
  add new key for escondida
2021-11-29 17:16:03 +01:00
a5c3b6b02f add new key for escondida 2021-11-29 15:59:29 +00:00
61e39d7dfe Merge remote-tracking branch 'maximbaz/maximbaz-master-patch-40138'
* maximbaz/maximbaz-master-patch-40138:
  Add packager key for maximbaz
2021-11-29 16:58:28 +01:00
d6518575d5 Add packager key for maximbaz 2021-11-29 15:54:01 +00:00
94cc605d0b Merge remote-tracking branch 'spupykin/master'
* spupykin/master:
  add new packager key id for spupykin
2021-11-29 16:48:50 +01:00
596ffb428b add new packager key id for spupykin 2021-11-29 15:47:36 +00:00
bae7359ee6 Merge remote-tracking branch 'muflone/master'
Add a new key for muflone.

* muflone/master:
  Added new key for muflone
2021-11-29 16:45:14 +01:00
ef9bf94435 Added new key for muflone 2021-11-28 11:49:12 +01:00
eef34e85a2 Prepare release 2021-10-28 11:59:05 +02:00
e7b1576300 Update keyring
... and collect latest changes.
2021-10-28 11:57:12 +02:00
f2f428ff1e Update keyring
... and collect latest changes.
2021-10-25 13:33:30 +02:00
c325a25de5 Prepare release 2021-09-02 22:08:43 +02:00
7fc9403560 Update keyring
... and collect latest changes, including key for alex19ep.
2021-09-02 22:07:09 +02:00
85b9ed4247 Add packager key ID for alex19ep
packager-keyids:
Add 6C7F7F22E0152A6FD5728592DAD6F3056C897266 as PGP key ID for alex19ep.
2021-09-02 22:02:17 +02:00
ad65524ec2 Prepare release 2021-08-20 09:07:31 +02:00
01609606b3 Update keyring
... and add new key of Morgan Adamiec (morganamilo).
2021-08-20 08:30:08 +02:00
23b36990f8 new key of Morgan Adamiec (morganamilo)
https://lists.archlinux.org/pipermail/aur-general/2021-June/036337.html
2021-08-20 07:50:25 +02:00
e3ab3cf2f6 Prepare release 2021-08-18 23:59:07 +02:00
5d392d8e84 Update keyring
... and collect latest changes.
2021-08-18 23:52:26 +02:00
4c7229bb49 removal of Alad Wenter (alad)
https://lists.archlinux.org/pipermail/aur-general/2021-August/036501.html
2021-08-18 23:39:08 +02:00
21f4e63d40 removal of Andrzej Giniewicz (aginiewicz)
https://lists.archlinux.org/pipermail/arch-dev-public/2021-May/030445.html
https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/16
2021-08-18 23:37:54 +02:00
1e97f5193a new key of Caleb Maclennan (alerque)
https://lists.archlinux.org/pipermail/aur-general/2021-June/036321.html
2021-08-18 21:18:18 +00:00
42144ade00 packagers-keyids: fix my handle 2021-08-18 22:27:46 +02:00
8836013ea3 Update merge request templates
Merging these makes sense before closing the related issue. So add a
reference, but to not close automatically.
2021-08-18 17:00:51 +00:00
00f7bec5a3 Update keyring
... and collect extended key lifetime for jlichtblau.
2021-08-18 18:59:29 +02:00
393274968a Update keyring
... and collect extended key lifetime for yan12125.
2021-08-18 13:12:34 +02:00
3012463af8 Update keyring
... and collect extended key lifetime for rgacogne.
2021-08-16 12:33:13 +02:00
39194adf3f Prepare release 2021-08-02 14:16:38 +02:00
9ad88b84d9 Update keyring
... and collect latest changes, including:

* extended key lifetime for ainola
* extended key lifetime for daurnimator
2021-08-02 14:16:07 +02:00
9cbe1e1414 update-keys: switch to keyserver keyserver.ubuntu.com
As the SKS infrastructure is offline for good, we need to switch to
keyserver.ubuntu.com for the time being.

The Ubuntu keyservers to not support EC keys, thus we have to ignore
failure when refreshing keys.
2021-08-02 13:23:39 +02:00
0ee9781b80 Merge branch 'issues/3'
* issues/3:
  Add SPDX license identifier
  Add GPL-3.0-or-later license file
2021-07-29 07:53:44 +02:00
1cf0aa446f Add SPDX license identifier
update-keys:
Add SPDX license identifier for GPL-3.0-or-later.
2021-07-29 07:48:38 +02:00
8ca7ff505a Add GPL-3.0-or-later license file
LICENSE:
Add GPL-3.0-or-later license file.
2021-07-29 07:48:34 +02:00
8b14e1cb46 removal of Giovanni Scafora (giovanni)
Giovanni is developer fellow, but no longer active.
https://archlinux.org/people/developer-fellows/#giovanni
2021-06-16 08:08:59 +00:00
ebb7af3852 Prepare release 2021-06-16 09:53:56 +02:00
fd7104caf4 Update keyring
... and collect latest changes, including:

* main key for dvzrv
* packager key for grawlinson
2021-06-11 08:52:53 +02:00
3730c64961 Added grawlinson keyid
Signed-off-by: Morten Linderud <morten@linderud.pw>
2021-05-30 13:34:59 +02:00
5c3145c71d resignation of Dan McGee (dan)
All done, just missed to mark his key revoked here.
https://bugs.archlinux.org/task/65081
2021-05-12 10:04:37 +02:00
b51819cd50 Add merge request templates for key actions
.gitlab/merge_request_templates/*.md:
Add templates for merge requests that add or remove new packager or main
keys.
2021-05-12 07:18:06 +00:00
702320750d Extend issue templates to set title and be more specific
.gitlab/issue_templates/*.md:
Set the title in all issue templates.
Add an explicit identifier (MODIFY) to all parts of the template where
modification is required by the user.
Extend the main key removal template by more specific steps for the main
key holders and keyring maintainer.
2021-05-12 07:16:14 +00:00
9ce8c5953e Extend remove packager key issue template
.gitlab/issue_templates/Remove Packager Key.md:
Add a subsection for main key holders that specifically tracks the
status on the key signature revocation.
2021-05-12 07:16:14 +00:00
9bfb673253 Extend new packager key issue template
.gitlab/issue_templates/New Packager Key.md:
Extend the Checks section by a subsection specifically for main key
holders, that ensures all main key holders have validated and signed a
new packager key (with the help of checkboxes).
Clarify wording in the keyring maintainer related subsection.
2021-05-12 07:16:14 +00:00
f0b827ecd4 Add main key dvzrv
master-keyids
Add new main key 2AC0A42EFB0B5CBC7A0402ED4DC95B6D7BE9892E
(dvzrv@master-key.archlinux.org).

Closes #5
2021-05-08 20:35:53 +02:00
cee2860934 Resignation of bpiotrowski
Revoke key ID F3691687D867B81B51CE07D9BBE43771487328A9 of bpiotrowski
due to resignation.

Closes #8
2021-05-08 20:27:01 +02:00
38c96658c2 ci: add basic job to check new key additions and removals 2021-05-08 20:00:05 +02:00
feab8a68eb doc: split and add checks to issue templates according to responsibilities
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2021-04-29 20:17:49 +02:00
71a5af7f18 Add issue templates for key actions
.gitlab/issue_templates/New Main Key.md:
Add issue template for adding a new main key.

.gitlab/issue_templates/New Packager Key.md:
Add issue template for adding a new packager key.

.gitlab/issue_templates/Remove Main Key.md:
Add issue template for removing a main key.

.gitlab/issue_templates/Remove Packager Key.md:
Add issue template for removing a packager key.
2021-04-27 13:45:18 +02:00
6c54e35916 Prepare release 2021-01-10 21:28:53 +01:00
50059633a4 Update keyring
New trusted keys with this commit:

 * bastelfreak
 * orhun
 * rgacogne
2021-01-10 21:27:09 +01:00
c8f5fc16e9 Update keyring 2021-01-08 22:54:54 +01:00
586dfb5430 new key of Orhun Parmaksız (orhun) 2021-01-08 22:48:47 +01:00
6fd824cf03 resignation of Baptiste Jonglez (zorun)
Baptiste Jonglez resigned on aur-general.
2020-12-23 14:45:42 +01:00
48396d8203 new key of Remi Gacogne (rgacogne) 2020-12-12 21:55:53 +01:00
80e1407754 Prepare release 2020-12-10 21:02:08 +01:00
b652387226 Update keyring 2020-12-10 21:00:28 +01:00
bca14a1d30 Removal of arcanis due to inactivity 2020-12-10 20:51:49 +01:00
3a03a8e0e7 new key of Tim Meusel (bastelfreak) 2020-12-10 20:49:50 +01:00
76157b79a5 Update keyring
... and collect...

* revoked signatures for bisson & dreisner
* extended lifetime for jleclanche's key
2020-10-29 09:59:08 +01:00
3490b904b1 Prepare release 2020-10-28 17:04:48 +01:00
b60d3e0883 Update keyring
... and get raster's key including signatures.
2020-10-28 17:03:32 +01:00
7bf3611fb2 new key of Carsten Haitzler (raster) 2020-10-10 00:25:40 +02:00
cbea8e837e resignation of Dave Reisner (dreisner)
Dave Reisner resigned on arch-dev.
2020-09-07 22:50:15 +02:00
f8ad104596 resignation of Gaetan Bisson (bisson)
Gaetan Bisson resigned on arch-dev-public:
https://lists.archlinux.org/pipermail/arch-dev-public/2020-August/030073.html
2020-09-02 15:21:12 +02:00
93dea57cef Prepare release 2020-08-20 14:23:38 +02:00
8cb23a4919 Update keyring
... and get kgizdov's new key.
2020-08-20 14:22:26 +02:00
677c5b5391 new key of Konstantin Gizdov (kgizdov) 2020-08-20 14:21:23 +02:00
d34e495c40 Prepare release 2020-08-17 23:46:12 +02:00
f7201f68c3 Update keyring
... and get hashworks's key.
2020-08-17 23:45:19 +02:00
afe7d79c9e new key of Justin Kromlinger (hashworks) 2020-08-17 23:44:25 +02:00
129876cc3e update-keys: (re-)enable web of trust
We need web of trust to download the master key signatures...
So enable it.
2020-06-29 09:42:13 +02:00
df0685c894 Prepare release 2020-06-22 17:29:32 +02:00
97b56292aa Update keyring
... and get freswa's key.
2020-06-22 17:27:24 +02:00
d450aabc49 new key of Frederik Schwan (freswa) 2020-06-22 17:26:34 +02:00
b5dba61b0c Prepare release 2020-06-03 13:49:25 +02:00
e7d91c398d Update keyring
... and get latest signatures.
2020-06-03 13:47:59 +02:00
9f508ea63d Update keyring
... and get latest signatures, including new key for heftig.
2020-05-28 18:36:45 +02:00
a88c82a051 new key of Jan Alexander Steffens (heftig) 2020-05-28 18:34:13 +02:00
b0ee67ecc7 Prepare release 2020-04-22 14:56:19 +02:00
3e9e4491ce Update keyring
... and get latest signatures, including key with extended lifetime
from Filipe Laíns (FFY00).
2020-04-22 14:37:04 +02:00
0134750919 Update keyring
... and get latest signatures, including key with extended lifetime
from Christian Rebischke (shibumi).
2020-04-22 07:35:09 +02:00
30abce974e Update keyring
... and get latest signatures, including key with extended lifetime
from Nico Hood.
2020-04-21 22:26:23 +02:00
140cd1b4cb Update keyring
... and get latest signatures.
2020-03-19 15:12:59 +01:00
e7eeff4ce3 Revoke key of Guillaume Alaux (guillaume)
Resigned on arch-dev mailing list.
2020-03-19 15:11:57 +01:00
24aab64152 Prepare release 2020-01-08 14:48:15 +01:00
518219ad91 Update keyring
... and get latest signatures, including revokation certificate for
thomas' master key by tpowa.
2020-01-08 14:44:28 +01:00
30bf6dbbce Prepare release 2019-12-19 17:01:08 +01:00
fb1aef31bb Update keyring
... and get latest signatures, including sangy's key with
extended lifetime.
2019-12-19 16:56:15 +01:00
1c381e57ac Update keyring
... and get latest signatures
2019-12-13 10:29:05 +01:00
3a6f172ff9 Prepare release 2019-10-18 09:06:04 +02:00
9ed0a33e54 Update keyring
... and get latest signatures, including third master key signature
for kpcyrd from anthraxx.
2019-10-18 09:03:52 +02:00
440e87b589 Update keyring
... and get latest signatures, including several from Allan's and
Pierre's master keys.
2019-10-17 16:02:37 +02:00
d819c09e03 Revoke key of Rashif Rahman (schiv)
https://lists.archlinux.org/pipermail/aur-general/2019-October/035481.html
2019-10-16 20:29:15 +02:00
a55a47e124 Update keyring
... and get latest signatures.
2019-10-14 21:54:22 +02:00
5594da9f78 Add kpcyrd 2019-10-14 21:41:58 +02:00
4cf0341ed5 Prepare release 2019-10-11 23:10:52 +02:00
dabd93a841 Update keyring
... and get latest changes, including:

* revocation of stativ's packager key
* revocation of thomas' master key (dan and giovanni loose full
  trust, but no single package is signed by their key)
* new key of dvzrv
2019-10-11 23:01:41 +02:00
f9a3103dba new key of David Runge (dvzrv) 2019-10-11 22:43:57 +02:00
5f2b58b703 update-keys: also collect keys with marginal trust 2019-10-11 21:50:16 +02:00
ff463b24b1 Revoke thomas' master key 2019-10-11 21:49:49 +02:00
453c195114 Revoke key of stativ (Lukas Jirkovsky) 2019-10-11 21:46:35 +02:00
5d7de993be Update keyring
... and get latest signatures, including fourth master key signature
for arodseth (which should allow to revoke thomas' master key).
2019-10-08 16:04:49 +02:00
41c6a2b92c Prepare release 2019-10-07 23:41:41 +02:00
4e08e6d83b Update keyring
... with comments.
2019-10-07 23:39:59 +02:00
4966bc9b46 Export with comment
... containing username and keyid
2019-10-07 23:39:04 +02:00
af4b81ed04 Update keyring
... and get everything stripped by export-minimal before - including
proper revocation signatures.
2019-10-07 23:38:07 +02:00
8f471cf44e Do not export minimal, but clean 2019-10-07 23:36:09 +02:00
415fb73b35 Update keyring
... and get latest signatures, including:

* extended lifetime for anthraxx' packager key
* extra master signature for anatolik's key (which brings us one step
  closer to revoking thomas' master key)
* diabonas' packager key with three master key signatures
2019-10-07 23:35:07 +02:00
28814448e1 Add Jonas Witschel (diabonas) 2019-09-27 20:54:39 +02:00
4088d5cd3c Update keyring
... and get latest signatures.
2019-09-11 10:10:39 +02:00
283e940bbe Prepare release 2019-08-27 21:26:42 +02:00
91cd3b4fe4 Update keyring
... and get latest signatures, including key with extended
lifetime for daurnimator.
2019-08-27 21:23:17 +02:00
469a0ffbd0 Update keyring
No idea why options in configuration file are more effective than
options on the command line... But everything needed is still there.
2019-08-06 10:08:12 +02:00
cf5ed9feeb update-keys: do not minimize but export-minimal 2019-08-06 09:38:04 +02:00
5cb23e4ce6 update-keys: don't restore cwd in a subprocess
Using popd at the very end of a shell script is unnecessary, because, as
the very last command, there is nothing to restore state for.
Immediately after, the shell subprocess is ended, and processes don't
control the cwd of the parent process. Changing the cwd for the last
microsecond of the shell process, during which no commands are run, is
a mildly expensive no-op.

By the same measure, if popd is never used, pushd is not needed to
record the old cwd. So simply use 'cd'.

Signed-off-by: Christian Hesse <mail@eworm.de>
2019-08-06 09:35:52 +02:00
c4264b6784 update-keys: move armor to gpg.conf
This option only affects --export, and we always use armored keys.

Signed-off-by: Christian Hesse <mail@eworm.de>
2019-08-06 09:35:52 +02:00
cca61ee733 update-keys: move export-clean to gpg.conf instead of cleaning the keyring before export
This has the same effect, but causes only the exported version of the
key to be cleaned. Cleaning the internal copy doesn't matter.

Signed-off-by: Christian Hesse <mail@eworm.de>
2019-08-06 09:35:52 +02:00
44f69d009f update-keys: use gpg.conf to persist versions
It is easier than passing around a dozen options on the command line.

Signed-off-by: Christian Hesse <mail@eworm.de>
2019-08-06 09:35:52 +02:00
0d99720ded update-keys: use array for $GPG
Embedding quotes in a string doesn't work, it just causes KEYSERVER to
not be quoted at all.

Signed-off-by: Christian Hesse <mail@eworm.de>
2019-08-06 09:35:52 +02:00
c4f33de41d Prepare release 2019-08-05 09:57:20 +02:00
745bffab6a Update keyring
... and get latest signatures, including key with extended lifetime
for Brett Cornwall (ainola).
2019-08-04 19:20:45 +02:00
d3e01dd07b Update keyring
... and get latest signatures.
2019-07-17 14:52:39 +02:00
75b586c598 Update keyring
... and get latest signatures.
2019-05-14 00:05:25 +02:00
35d91559ff Modify the temporary master key generation 2019-01-23 23:12:15 +01:00
06553feca9 Prepare release 2019-01-23 22:55:41 +01:00
7b4d1dd1a8 Update keyring
get anthraxx's master key and his signatures
2019-01-23 22:51:55 +01:00
72e85ae7ce Add master key for Levente Polyak (anthraxx) 2019-01-23 22:37:38 +01:00
0e79570527 Rework the update process
* use --refresh-keys if key is available, not --recv-keys
* refresh/receive in one go
2019-01-23 22:37:38 +01:00
a48a66dfd6 Import archlinux.gpg into the temporary keyring
This makes sure we do not loose signatures depending on key server used.
2019-01-23 10:27:58 +01:00
f82fc176a5 Update keyring
get escondida's key with extended lifetime
2019-01-23 10:07:58 +01:00
122f61055c Update keyring
get alad's key with extended lifetime
2019-01-22 16:49:05 +01:00
b654887de7 Prepare release 2019-01-22 15:18:53 +01:00
8a130390bd Update keyring 2019-01-22 15:18:02 +01:00
331b16f201 Add daurnimator 2019-01-22 14:56:46 +01:00
cd5d6983b9 Prepare release 2018-12-18 09:19:28 +01:00
8ef0dc3ea3 Update keyring 2018-12-18 09:13:40 +01:00
7cca069608 Add Daniel M. Capella (polyzen) 2018-12-10 10:43:03 +01:00
7a78f814cc Prepare release 2018-11-28 13:10:34 +01:00
7382ce5e7a Update keyring 2018-11-28 13:10:09 +01:00
b4f3a2a6a4 Add Maxim Baz (maximbaz) 2018-11-26 16:44:31 +01:00
51cb7ec077 Prepare release 2018-11-26 16:40:40 +01:00
4c51317fe8 Update keyring 2018-11-26 12:28:42 +01:00
8b6831368e Add Brett Cornwall (ainola) 2018-11-25 20:32:28 +01:00
586568d991 Prepare release 2018-11-22 12:29:45 +01:00
09ccd53792 Update keyring 2018-11-22 12:29:01 +01:00
af552837dd Add Konstantin Gizdov (kgizdov) 2018-11-21 12:49:06 +01:00
833e213974 Prepare release 2018-11-13 20:32:03 +01:00
055d64cce1 Update keyring 2018-11-13 20:31:37 +01:00
5ae32f0406 Add Daniel Bermond (dbermond) 2018-11-13 20:07:22 +01:00
cc8ad71eac Prepare release 2018-10-31 17:34:21 +01:00
b3ccfc605e Update keyring 2018-10-31 17:33:45 +01:00
da5de1b77a prepare release
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2018-10-18 14:53:51 +02:00
fab4c1146b Update keyring
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2018-10-18 14:44:10 +02:00
1a263eb096 Re-add key of Alad Wenter
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2018-10-18 14:41:30 +02:00
49d009adcc Revoke superseded of Gaetan Bisson 2018-10-07 11:17:01 +02:00
1b2edec099 Revoke key of eric (Eric Bélanger) 2018-10-07 11:07:11 +02:00
c67c67b643 Revoke key of dwallace (Daniel Wallace) 2018-10-07 11:00:27 +02:00
8b5b62910f README: Document the revocation of a packager key
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-10-04 16:02:28 +02:00
fbcb563e5f Prepare new release
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-10-03 21:21:15 +02:00
d923272ee2 Update keyring
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-10-03 21:18:26 +02:00
4241f7a953 Add Chih-Hsuan Yen (yan12125)
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-10-03 21:13:14 +02:00
6a921a3a2c Add Santiago Torres-Arias (sangy)
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-10-03 21:00:06 +02:00
997a308df2 Update keyring 2018-10-03 13:50:28 +02:00
aa26ebdf6b Revoke key of thestinger (Daniel Micay) 2018-10-03 13:49:22 +02:00
a685c3cd6e prepare release 2018-08-08 09:48:47 +02:00
13ef17ef71 Update keyring 2018-08-08 09:48:11 +02:00
d2f1aeb790 Revoke key of Tom Gundersen (tomegun) 2018-08-08 09:46:19 +02:00
702a7fbff8 add key of Filipe Laíns (FFY00) 2018-08-08 09:30:58 +02:00
cab9b11182 prepare release 2018-06-27 10:56:01 +02:00
5c3a394a0c Update keyring
... and get extended expiration time for shibumi's key.
2018-06-27 10:51:19 +02:00
182dab9197 Add README
Include a readme with steps how to add/remove/update a key in the
keyring and how to release a new keyring version.

Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-06-26 20:55:52 +02:00
2440c44491 prepare release 2018-06-26 08:53:51 +02:00
ef307e07ea Update keyring 2018-06-26 08:52:18 +02:00
93c54d1135 Update keyring 2018-06-01 11:32:29 +02:00
a2723b1227 Revoke key of Pierre Neidhardt (ambrevar) 2018-06-01 11:28:02 +02:00
257402b3bd Revoke key of Angel Velásquez (angvp) 2018-06-01 11:23:27 +02:00
c95a169e77 Update keyring 2018-04-04 09:14:08 +02:00
18cb949e1e Revoke key of Alad Wenter (alad)
He had revoked UIDs that had enough signatures and according to him,
he will be away till the end of the year.
2018-04-04 09:08:36 +02:00
a268d26c30 Add key of Brad Fanella (cesura) 2018-04-03 21:12:51 +02:00
876a8a10dd Fix bashism in install target 2018-04-03 21:12:10 +02:00
1da4852c7c Update keyring
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-03-22 21:28:03 +01:00
e57a0c347f Add key of Robin Broda (coderobe)
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-03-22 11:27:42 +01:00
2126648ec0 Update keyring 2018-03-02 08:01:02 +01:00
f4c4378e92 Add key of Ivy Foster (escondida) 2018-03-02 07:55:59 +01:00
eaa1c553f9 Revoke keys of speps and faidoc 2018-03-02 07:55:25 +01:00
5751362e3c Prepare new release 2018-01-08 05:36:34 +01:00
bbda395081 Update keyring 2018-01-08 05:36:01 +01:00
0d422a8ac9 Add key of Eli Schwartz 2018-01-08 05:35:39 +01:00
1795c0bb3a Prepare a release 2017-12-13 19:59:26 +01:00
eb222dd842 Update keyring 2017-12-13 19:58:32 +01:00
f81f89f01c add key of Andrew Crerar (andrewSC) 2017-12-13 19:55:35 +01:00
5cf4bbc993 Prepare a release 2017-11-30 11:21:58 +01:00
1d846756dc Update keyring 2017-11-30 11:20:33 +01:00
da877f909a add key of David Runge (Davezerave / dvzrv)
https://bugs.archlinux.org/task/56212
2017-11-30 11:17:20 +01:00
573b9cf8fa sort packager-keyids 2017-11-30 11:16:23 +01:00
7c9f861bf8 Update keyring 2017-10-24 12:40:38 +02:00
7f6f427624 Ionuț Bîru (ibiru) resigned as master key holder 2017-10-24 12:36:55 +02:00
6d0d80f16a Prepare a release 2017-10-20 14:57:20 +02:00
48e3742868 Update keyring 2017-10-20 10:11:04 +02:00
de4326f4d4 exit immediately on error
Intermittent errors (due to broker network connectivity, key server
failure, whatever ...) could result in an incomplete keyring. So exit
immediately on error.
2017-10-19 10:47:12 +02:00
a761b634e2 Update keyring 2017-10-17 14:01:48 +02:00
6f00b281f1 Revoke keys unconditionally 2017-10-17 14:01:23 +02:00
e29bd5eb26 Revoke key of Daniel Isenmann 2017-10-17 13:13:07 +02:00
b54038116e indent packager-revoked-keyids 2017-10-17 13:12:32 +02:00
465813d08e editorconfig: add indent size 2017-10-17 13:10:00 +02:00
8e8d330967 Use minimal export for revoked keys
We need the key and most recent self signature.

Signed-off-by: Christian Hesse <mail@eworm.de>
2017-10-17 12:09:39 +02:00
1c4f33d735 Do not export attribute user IDs (photo IDs)
There's no need to have images in pacman keyring...

Signed-off-by: Christian Hesse <mail@eworm.de>
2017-10-17 12:09:39 +02:00
b3cb9594af Update keyring 2017-10-13 13:49:07 +02:00
11b582af2d Revoke key of Vesa Kaihlavirta 2017-10-13 12:17:57 +02:00
cb40e604bf Revoke key of Thomas Dziedzic
Signed-off-by: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
2017-10-13 12:15:36 +02:00
00bd111ff3 Add key of Alad Wenter (alad)
Signed-off-by: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
2017-10-13 12:11:32 +02:00
e2935c1fc8 Add key of Morten Linderud (foxboron)
Signed-off-by: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
2017-10-13 12:11:30 +02:00
e6f44ab73e Revoke key of Andrea Scarpino
Signed-off-by: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
2017-10-13 12:11:29 +02:00
9e2b4558aa Fix typo 2017-10-13 12:11:28 +02:00
1c8358bb02 Revoke key of Thorsten Töpper
Signed-off-by: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
2017-10-13 12:11:27 +02:00
d9f2173654 Revoke key of Timothy Redaelli
Signed-off-by: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
2017-10-13 12:11:19 +02:00
def2c722c0 Add new key of Gaetan Bisson
Signed-off-by: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
2017-10-13 12:11:16 +02:00
2fe0842735 Add key of Dan Printzell (Wild) 2017-08-23 20:43:59 +02:00
fdd779743f Update keyring 2017-06-11 08:15:02 +02:00
8a5c52469e Add master key of Bartłomiej Piotrowski 2017-06-11 08:08:09 +02:00
23d484c3e9 Add key of Thore Bödecker (foxxx0) 2017-06-11 08:07:16 +02:00
26544368d9 Remove unused files from source package 2017-05-26 08:51:44 +02:00
d934400573 Add editor config 2017-05-26 08:26:32 +02:00
c6aa9163a0 Ignore IDE configuration 2017-05-26 08:23:34 +02:00
0e06665ea0 Fix typo in packager-revoked 2017-03-23 23:24:29 +01:00
0abfb04ebb Update keyring
- add keys of new Trusted Users: zorin, shibumi, archangegabriel
- revoke keys of ex-TUs: flexiondotorg, dicebot
- revoke Dan's master key

Signed-off-by: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
2017-03-20 22:40:09 +01:00
87a90bc616 Prepare release 2017-01-04 15:16:20 +02:00
d47e0662ef Update keyring to refresh jleclanche's expired key 2017-01-04 15:13:40 +02:00
eb1a8e2f2e Add key of grazzolini 2016-12-01 19:00:14 +01:00
2abc871e6e Add key of NicoHood 2016-11-01 09:59:13 +01:00
5f7b5c53f2 Update Keyring
See FS#51447
2016-10-21 17:18:56 +02:00
7e48603d3a Fix repo server 2016-08-12 07:41:51 +02:00
3393 changed files with 47016 additions and 25920 deletions

30
.editorconfig Normal file
View File

@ -0,0 +1,30 @@
root = true
[*]
end_of_line = lf
charset = utf-8
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
[Makefile]
end_of_line = lf
charset = utf-8
indent_style = tab
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
[{*.py,keyringctl}]
indent_style = space
indent_size = 4
max_line_length = 120
[*.{yml,yaml}]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8
indent_style = space
indent_size = 2

4
.flake8 Normal file
View File

@ -0,0 +1,4 @@
[flake8]
max-line-length = 120
output-file = flake8.txt
max-complexity = 10

7
.gitattributes vendored
View File

@ -1,7 +0,0 @@
update-keys export-ignore
.gitattributes export-ignore
.gitignore export-ignore
master-keyids export-ignore
packager-keyids export-ignore
master export-ignore
packager export-ignore

4
.gitignore vendored
View File

@ -1,3 +1,7 @@
/build
*~
archlinux-keyring-*.tar.gz
archlinux-keyring-*.tar.gz.sig
/.idea
.coverage
__pycache__/

93
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,93 @@
---
image: archlinux:latest
stages:
- test
- wkd
lint:
stage: test
needs: []
before_script:
- pacman -Syu --needed --noconfirm make flake8 mypy python-black python-isort
script:
- make lint
only:
changes:
- keyringctl
- libkeyringctl/*
- tests/*
- .gitlab-ci.yml
- Makefile
test:
stage: test
needs: []
before_script:
- pacman -Syu --needed --noconfirm make python sequoia-sq python-coverage python-pytest python-tomli
script:
- make test
only:
changes:
- keyringctl
- libkeyringctl/*
- tests/*
- .gitlab-ci.yml
- Makefile
coverage: '/TOTAL.*\s([.\d]+)%/'
artifacts:
when: always
reports:
coverage_report:
coverage_format: cobertura
path: build/coverage.xml
junit: build/junit-report.xml
build_install:
stage: test
needs: []
before_script:
- pacman -Syu --needed --noconfirm make pkgconf python sequoia-sq systemd
script:
- make
- make install PREFIX=/usr
- pacman-key --init
- pacman-key --populate archlinux
- pacman-key --updatedb
- pacman -Syu
keyring_check:
stage: test
needs: []
before_script:
- pacman -Syu --needed --noconfirm make python sequoia-sq git
script:
- ./keyringctl check
- ./keyringctl ci
only:
changes:
- keyring/**/*
- keyringctl
- libkeyringctl/*
- tests/*
- .gitlab-ci.yml
- Makefile
pages:
stage: wkd
needs: []
tags:
- secure
before_script:
- pacman -Syu --needed --noconfirm make python sequoia-sq
script:
- make wkd
- make wkd WKD_FQDN=master-key.archlinux.org
- make wkd_inspect
- make wkd_inspect WKD_FQDN=master-key.archlinux.org
- cp -r build/wkd/ public
artifacts:
paths:
- public
rules:
- if: $CI_PROJECT_PATH == "archlinux/archlinux-keyring" && $CI_COMMIT_TAG

View File

@ -0,0 +1,71 @@
<!--
This template is used when a new main PGP public key needs to be added to the
distribution's keyring.
It is used by users with a valid packager key.
NOTE: All comment sections with a MODIFY note need to be edited. All checkboxes
in the "Checks" section labeled as "Owner of new key" need to be checked by the
owner of the new key.
-->
/assign @archlinux/teams/main-key-holders
/label ~"new main key"
/title New main key of <!-- MODIFY: Add new main key holder's username -->
<!--
Please do not remove the above quick actions, which automatically label the
issue and assign relevant users.
-->
# Add a new main key
## Details
- Username: <!-- MODIFY: Add the @-prefixed username -->
- PGP key ID: <!-- MODIFY: Add the output of `gpg --keyid-format long --list-key <MY UID> | sed -n '2p' | tr -d ' '` here -->
- Revocation Certificate Holder: <!-- MODIFY: Add the @-prefixed username of the revocation certificate holder -->
<!--
MODIFY: Attach the above information of the details section as a clearsigned
document (see https://www.gnupg.org/gph/en/manual/x135.html) to this ticket
using a valid packager key of the user:
* Select the above text, copy/paste it into a file (e.g. `details.txt`).
* Make sure to sign with the root certificate of the packager key (not any of
the subkeys!):
`gpg --armor --default-key <fingerprint_of_root>! --clearsign details.txt`
* Upload `details.txt` as attachment to this ticket.
-->
## Checks
**NOTE**: The below check boxes **must be** checked before the accompanying
merge request to add the new main key can be merged.
### Owner of new key
- [ ] The [workflow for adding a new main
key](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/workflows/add-a-new-main-key)
has been followed
- [ ] The key pair has been validated according to the [best
practices](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/best-practices#validating-a-key-pair)
- [ ] The data in the [Details](#details) section is attached to this issue as
a clearsigned document
- [ ] The revocation certificate has been sent in an encrypted message to the
revocation certificate holder
- [ ] The public key has been uploaded to the `keyserver.ubuntu.com` and
`keys.openpgp.org` keyservers, and the `archlinux.org` UID has been verified
on the `keys.openpgp.org` keyserver. Optionally the key can also be uploaded
to the `pgp.mit.edu` keyserver, but this is no longer mandatory as it's
frequently flaky.
- [ ] A merge request to add the new public key has been created
### Revocation Certificate Holder
- [ ] The revocation certificate has been [verified
as working](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/workflows/verify-a-revocation-certificate)
and confirmed in a comment to this issue
- [ ] The revocation certificate has been backed up on a dedicated encrypted backup storage medium
### Main key holders
- [ ] The data in the [Details](#details) section is correct and signed with a
valid and trusted packager key, which is already part of `archlinux-keyring`

View File

@ -0,0 +1,79 @@
<!--
This template is used when a new packager PGP public key needs to be added to
the distribution's keyring.
It is either used by the sponsor of a new packager or by an existing packager
when adding a new key for themself.
NOTE: All comment sections with a MODIFY note need to be edited. All checkboxes
in the "Checks" section labeled as "Owner of new key" need to be checked by the
owner of the new key or by a sponsor of a new packager.
-->
/assign @archlinux/teams/main-key-holders
/label ~"new packager key"
/title New packager key of <!-- MODIFY: Add new packager key holder's username -->
<!--
Please do not remove the above quick actions, which automatically label the
issue and assign relevant users.
-->
# Add a new packager key
## Details
- Username: <!-- MODIFY: Add the @-prefixed username -->
- PGP key ID: <!-- MODIFY: Add the output of `gpg --keyid-format long --list-key <MY UID> | sed -n '2p' | tr -d ' '` here -->
- Sponsors: <!-- MODIFY: Add the @-prefixed usernames of the sponsors -->
- Application: <!-- MODIFY: Add link to application, if this is the key of a new packager, else remove -->
- Results: <!-- MODIFY: Add link to results of application, if this is the key of a new packager, else remove -->
- Previous Key: <!--
MODIFY: Add the output of `gpg --keyid-format long --list-key <MY PREVIOUS ID> | sed -n '2p' | tr -d ' '` here
if another packager key exists already, else remove
-->
<!--
MODIFY: Attach the above information of the details section as a clearsigned
document (see https://www.gnupg.org/gph/en/manual/x135.html) to this ticket.
If a previous (valid and trusted) packager key of the user exists, it needs to
be used for clearsigning the document.
If the key of a new packager is added, one of their sponsors needs to clearsign
the details section.
* Select the above text, copy/paste it into a file (e.g. `details.txt`).
* Make sure to sign with the root certificate of the packager key (not any of
the subkeys!):
`gpg --armor --default-key <fingerprint_of_root>! --clearsign details.txt`
* Upload `details.txt` as attachment to this ticket.
-->
## Checks
### Owner of new key
- [ ] The [workflow for adding a new packager
key](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/workflows/add-a-new-packager-key)
has been followed
- [ ] The key pair contains one user ID with a valid `<username>@archlinux.org` email address
used for signing
- [ ] The key pair has been validated according to the [best
practices](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/best-practices#validating-a-key-pair)
- [ ] The data in the [Details](#details) section is attached to this issue as
a clearsigned document
- [ ] The public key has been uploaded to the `keyserver.ubuntu.com` and
`keys.openpgp.org` keyservers, and the `archlinux.org` UID has been verified
on the `keys.openpgp.org` keyserver. Optionally the key can also be uploaded
to the `pgp.mit.edu` keyserver, but this is no longer mandatory as it's
frequently flaky.
- [ ] A merge request to add the new public key has been created
### Main key holders
- [ ] The public key has been signed by all main key holders
- [ ] @anthraxx
- [ ] @bluewind
- [ ] @demize
- [ ] @diabonas
- [ ] @dvzrv
### Developers of the archlinux-keyring project
- [ ] The data in the [Details](#details) section is correct and signed with a
valid and trusted packager key, which is already part of `archlinux-keyring`

View File

@ -0,0 +1,37 @@
<!--
This template is used when an existing main PGP public key needs to be removed
from the distribution's keyring.
It is used by users with a valid main key or the holder of the revocation
certificate of the main key that is about to be removed.
NOTE: All comment sections with a MODIFY note need to be edited. All checkboxes
in the "Check" section labeled as "Main key holders" need to be checked for the
accompanying merge request to be merged.
-->
/assign @archlinux/teams/main-key-holders
/label ~"remove main key"
/title Remove main key of <!-- MODIFY: Add main key holder's username -->
<!--
Please do not remove the above quick actions, which automatically label the
issue and assign relevant users.
-->
# Remove a main key
## Details
- Username: <!-- MODIFY: Add the @-prefixed username -->
- PGP key ID: <!-- MODIFY: Add the output of `gpg --keyid-format long --list-key <MAIN KEY UID> | sed -n '2p' | tr -d ' '` here -->
- Resignation: <!-- MODIFY: Link to resignation of key holder -->
## Checks
### Main key holders
- [ ] There are more than or equal to three valid main keys remaining after
removal of this key.
- [ ] All packagers have at least three valid main key signatures for their
packager key after removal of this key.
- [ ] A merge request to [remove the main public
key](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/workflows/remove-a-main-key)
has been created

View File

@ -0,0 +1,43 @@
<!--
This template is used when an existing packager PGP public key needs to be
removed from the distribution's keyring.
It is used by users with a valid main key or a valid packager key.
NOTE: All comment sections with a MODIFY note need to be edited.
-->
/assign @archlinux/teams/main-key-holders
/label ~"remove packager key"
/title Remove packager key of <!-- MODIFY: Add packager key holder's username -->
<!--
Please do not remove the above quick actions, which automatically label the
issue and assign relevant users.
-->
# Remove a packager key
## Details
- Username: <!-- MODIFY: Add the @-prefixed username -->
- PGP key ID: <!-- MODIFY: Add the output of `gpg --keyid-format long --list-key <PACKAGER KEY UID> | sed -n '2p' | tr -d ' '` here -->
- Resignation: <!-- MODIFY: Link to resignation of key holder -->
## Checks
**NOTE**: The below check box **must be** checked before the main key holders
can start to revoke the key.
- [ ] There are [no packages left in any of the official
repositories](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/workflows/Find-packages-signed-by-a-key),
that are signed by the key or any of its subkeys, which is about to be
removed.
### Main key holders
All main key holders should revoke their signature(s) for the given key in a
merge request to this repository using `keyringctl`.
- [ ] @anthraxx
- [ ] @bluewind
- [ ] @demize
- [ ] @diabonas
- [ ] @dvzrv

View File

@ -0,0 +1,34 @@
<!--
This template is used when a new main PGP public key needs to be added to the
distribution's keyring.
It is used by users with a valid packager key after all steps in an
accompanying issue (opened with the template "New Main Key") have been
fulfilled.
-->
/assign @archlinux/teams/main-key-holders
/label ~"new main key"
/title Add main key of <!-- MODIFY: Add the main key holder's username -->
<!--
Please do not remove the above quick actions, which automatically label the
issue and assign relevant users.
-->
# Add a new main key
## Details
- Username: <!-- MODIFY: Add the @-prefixed username -->
- PGP key ID: <!-- MODIFY: Add the "long format" key ID of the PGP public key here -->
Closes <!-- MODIFY: Add #-prefixed issue number, that will be closed by merging this merge request -->
## Checks
### Keyring maintainer
- [ ] All steps in the accompanying ticket are fulfilled.
### Main key holders
- [ ] The public key has been validated according to the [best
practices](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/best-practices#validating-a-key-pair)

View File

@ -0,0 +1,32 @@
<!--
This template is used when a new packager PGP public key needs to be added to
the distribution's keyring.
It is either used by the sponsor of a new packager or by an existing packager
when adding a new key for themself after all steps in an accompanying issue
(opened with the template "New Packager Key") have been fulfilled..
-->
/assign_reviewer @archlinux/teams/main-key-holders
/label ~"new packager key"
/title Add packager key of <!-- MODIFY: Add the packager key holder's username -->
<!--
Please do not remove the above quick actions, which automatically label the
issue and assign relevant users.
-->
# Add a new packager key
## Details
- Username: <!-- MODIFY: Add the @-prefixed username -->
- PGP key ID: <!-- MODIFY: Add the "long format" key ID of the PGP public key here -->
Related issue: <!-- MODIFY: Add #-prefixed issue number -->
## Checks
- [ ] All steps in the accompanying ticket are fulfilled.
### Main key holders
- [ ] The public key has been validated according to the [best
practices](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/best-practices#validating-a-key-pair)

View File

@ -0,0 +1,31 @@
<!--
This template is used when an existing main PGP public key needs to be removed
from the distribution's keyring.
It is used by users with a valid main key after all steps in an accompanying
issue (opened with the template "Remove Main Key") have been fulfilled.
-->
/assign_reviewer @archlinux/teams/main-key-holders
/label ~"remove main key"
/title Remove main key of <!-- MODIFY: Add the main key holder's username -->
<!--
Please do not remove the above quick actions, which automatically label the
issue and assign relevant users.
-->
# Remove a main key
## Details
- Username: <!-- MODIFY: Add the @-prefixed username -->
- PGP key ID: <!-- MODIFY: Add the "long format" key ID of the PGP public key here -->
Related issue: <!-- MODIFY: Add #-prefixed issue number -->
## Checks
### Keyring maintainer
- [ ] There are more than or equal to three valid main keys remaining after
removal of this key.
- [ ] All packagers have at least three valid main key signatures for their
packager key after removal of this key.

View File

@ -0,0 +1,30 @@
<!--
This template is used when an existing packager PGP public key needs to be
removed from the distribution's keyring.
It is used by users with a valid main key or a valid packager key after all
steps in an accompanying issue (opened with the template "Remove Packager Key")
have been fulfilled.
-->
/assign_reviewer @archlinux/teams/main-key-holders
/label ~"remove packager key"
/title Remove packager key of <!-- MODIFY: Add the packager's username -->
<!--
Please do not remove the above quick actions, which automatically label the
issue and assign relevant users as reviewers.
-->
# Remove a packager key
## Details
- Username: <!-- MODIFY: Add the @-prefixed username -->
- PGP key ID: <!-- MODIFY: Add the "long format" key ID of the PGP public key here -->
Related issue: <!-- MODIFY: Add #-prefixed issue number -->
## Checks
### Keyring maintainer
- [ ] There are no packages left in any of the official repositories, that are
signed by the key which is about to be removed.

66
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,66 @@
# Contributing
These are the contribution guidelines for archlinux-keyring.
All code contributions fall under the terms of the GPL-3.0-or-later (see
[LICENSE](LICENSE)).
Please read our distribution-wide [Code of
Conduct](https://terms.archlinux.org/docs/code-of-conduct/) before
contributing, to understand what actions will and will not be tolerated.
Development of archlinux-keyring takes place on Arch Linux' Gitlab:
https://gitlab.archlinux.org/archlinux/archlinux-keyring.
Any merge request to the repository requires two approvals of authorized
approvers (the current main key holders).
## Discussion
Discussion around archlinux-keyring may take place on the [arch-projects
mailing list](https://lists.archlinux.org/listinfo/arch-projects) and in
[#archlinux-projects](ircs://irc.libera.chat/archlinux-projects) on [Libera
Chat](https://libera.chat/).
## Requirements
The following additional packages need to be installed to be able to lint
and develop this project:
* python-black
* python-coverage
* python-isort
* python-pytest
* python-tomli
* flake8
* mypy
## Keyringctl
The `keyringctl` script is written in typed python, which makes use of
[sequoia](https://sequoia-pgp.org/)'s `sq` command.
The script is type checked, linted and formatted using standard tooling.
When providing a merge request make sure to run `make lint`.
## Testing
Test cases are developed per module in the [test](test) directory and should
consist of atomic single expectation tests. A Huge test case asserting various
different expectations are discouraged and should be split into finer grained
test cases.
To execute all tests using pytest
```bash
make test
```
To run keyring integrity and consistency checks
```bash
make check
```
## Web Key Directory
Only tagged releases are built and exposed via WKD. This helps to ensure, that
inconsistent state of the keyring is not exposed to the enduser, which may make
use of it instantaneously.

674
LICENSE Normal file
View File

@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.

View File

@ -1,20 +1,72 @@
V=20160812
SHELL = /bin/bash
PREFIX ?= /usr/local
BUILD_DIR ?= build
KEYRING_TARGET_DIR ?= $(PREFIX)/share/pacman/keyrings/
SCRIPT_TARGET_DIR ?= $(PREFIX)/bin
SYSTEMD_SYSTEM_UNIT_DIR ?= $(shell pkgconf --variable systemd_system_unit_dir systemd)
WKD_FQDN ?= archlinux.org
WKD_BUILD_DIR ?= $(BUILD_DIR)/wkd
KEYRING_FILE=archlinux.gpg
KEYRING_REVOKED_FILE=archlinux-revoked
KEYRING_TRUSTED_FILE=archlinux-trusted
WKD_SYNC_SCRIPT=archlinux-keyring-wkd-sync
WKD_SYNC_SERVICE_IN=archlinux-keyring-wkd-sync.service.in
WKD_SYNC_SERVICE=archlinux-keyring-wkd-sync.service
WKD_SYNC_TIMER=archlinux-keyring-wkd-sync.timer
SYSTEMD_TIMER_DIR=$(SYSTEMD_SYSTEM_UNIT_DIR)/timers.target.wants/
SOURCES := $(shell find keyring) $(shell find libkeyringctl -name '*.py' -or -type d) keyringctl
PREFIX = /usr/local
all: build
install:
install -dm755 $(DESTDIR)$(PREFIX)/share/pacman/keyrings/
install -m0644 archlinux{.gpg,-trusted,-revoked} $(DESTDIR)$(PREFIX)/share/pacman/keyrings/
lint:
black --check --diff keyringctl libkeyringctl tests
isort --diff .
flake8 keyringctl libkeyringctl tests
mypy --install-types --non-interactive keyringctl libkeyringctl tests
fmt:
black .
isort .
check:
./keyringctl -v check
test:
coverage run
coverage xml
coverage report --fail-under=100.0
build: $(SOURCES)
./keyringctl -v $(BUILD_DIR)
wkd: build
sq -f wkd generate -s $(WKD_BUILD_DIR)/ $(WKD_FQDN) $(BUILD_DIR)/$(KEYRING_FILE)
wkd_inspect: wkd
for file in $(WKD_BUILD_DIR)/.well-known/openpgpkey/$(WKD_FQDN)/hu/*; do sq inspect $$file; done
wkd_sync_service: wkd_sync/$(WKD_SYNC_SERVICE_IN)
sed -e 's|SCRIPT_TARGET_DIR|$(SCRIPT_TARGET_DIR)|' wkd_sync/$(WKD_SYNC_SERVICE_IN) > $(BUILD_DIR)/$(WKD_SYNC_SERVICE)
clean:
rm -rf $(BUILD_DIR) $(WKD_BUILD_DIR)
install: build wkd_sync_service
install -vDm 644 build/{$(KEYRING_FILE),$(KEYRING_REVOKED_FILE),$(KEYRING_TRUSTED_FILE)} -t $(DESTDIR)$(KEYRING_TARGET_DIR)
install -vDm 755 wkd_sync/$(WKD_SYNC_SCRIPT) -t $(DESTDIR)$(SCRIPT_TARGET_DIR)
install -vDm 644 build/$(WKD_SYNC_SERVICE) -t $(DESTDIR)$(SYSTEMD_SYSTEM_UNIT_DIR)
install -vDm 644 wkd_sync/$(WKD_SYNC_TIMER) -t $(DESTDIR)$(SYSTEMD_SYSTEM_UNIT_DIR)
install -vdm 755 $(DESTDIR)$(SYSTEMD_TIMER_DIR)
ln -fsv ../$(WKD_SYNC_TIMER) $(DESTDIR)$(SYSTEMD_TIMER_DIR)/$(WKD_SYNC_TIMER)
uninstall:
rm -f $(DESTDIR)$(PREFIX)/share/pacman/keyrings/archlinux{.gpg,-trusted,-revoked}
rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/pacman/keyrings/
rm -fv $(DESTDIR)$(KEYRING_TARGET_DIR)/{$(KEYRING_FILE),$(KEYRING_REVOKED_FILE),$(KEYRING_TRUSTED_FILE)}
rmdir -pv --ignore-fail-on-non-empty $(DESTDIR)$(KEYRING_TARGET_DIR)
rm -v $(DESTDIR)$(SCRIPT_TARGET_DIR)/$(WKD_SYNC_SCRIPT)
rmdir -pv --ignore-fail-on-non-empty $(DESTDIR)$(SCRIPT_TARGET_DIR)
rm -v $(DESTDIR)$(SYSTEMD_SYSTEM_UNIT_DIR)/{$(WKD_SYNC_SERVICE),$(WKD_SYNC_TIMER)}
rmdir -pv --ignore-fail-on-non-empty $(DESTDIR)$(SYSTEMD_SYSTEM_UNIT_DIR)
rm -v $(DESTDIR)$(SYSTEMD_TIMER_DIR)/$(WKD_SYNC_TIMER)
rmdir -pv --ignore-fail-on-non-empty $(DESTDIR)$(SYSTEMD_TIMER_DIR)
dist:
git archive --format=tar --prefix=archlinux-keyring-$(V)/ $(V) | gzip -9 > archlinux-keyring-$(V).tar.gz
gpg --detach-sign --use-agent archlinux-keyring-$(V).tar.gz
upload:
scp archlinux-keyring-$(V).tar.gz archlinux-keyring-$(V).tar.gz.sig nymeria.archlinux.org:/srv/ftp/other/archlinux-keyring/
.PHONY: install uninstall dist upload
.PHONY: all lint fmt check test clean install uninstall wkd wkd_inspect

170
README.md Normal file
View File

@ -0,0 +1,170 @@
# archlinux-keyring
The archlinux-keyring project holds PGP packet material and tooling
(`keyringctl`) to create the distribution keyring for Arch Linux.
The keyring is used by pacman to establish the web of trust for the packagers
of the distribution.
The PGP packets describing the main signing keys can be found below the
[keyring/main](keyring/main) directory, while those of the packagers are located below the
[keyring/packager](keyring/packager) directory.
## Requirements
The following packages need to be installed to be able to create a PGP keyring
from the provided data structure and to install it:
Build:
* make
* findutils
* pkgconf
* systemd
Runtime:
* python
* sequoia-sq
Optional:
* hopenpgp-tools (verify)
* sq-keyring-linter (verify)
* git (ci)
## Usage
### Build
Build all PGP artifacts (keyring, ownertrust, revoked files) to the build directory
```bash
./keyringctl build
```
### Import
Import a new packager key by deriving the username from the filename.
```bash
./keyringctl import <username>.asc
```
Alternatively import a file or directory and override the username
```bash
./keyringctl import --name <username> <file_or_directory...>
```
Updates to existing keys will automatically derive the username from the known fingerprint.
```bash
./keyringctl import <file_or_directory...>
```
Main key imports support the same options plus a mandatory `--main`
```bash
./keyringctl import --main <username>.asc
```
### Export
Export the whole keyring including main and packager to stdout
```bash
./keyringctl export
```
Limit to specific certs using an output file
```bash
./keyringctl export <username_or_fingerprint_or_directory...> --output <filename>
```
### List
List all certificates in the keyring
```bash
./keyringctl list
```
Only show a specific main key
```bash
./keyringctl list --main <username_or_fingerprint...>
```
### Inspect
Inspect all certificates in the keyring
```bash
./keyringctl inspect
```
Only inspect a specific main key
```bash
./keyringctl inspect --main <username_or_fingerprint_or_directory...>
```
### Verify
Verify certificates against modern expectations and assumptions
```bash
./keyringctl verify <username_or_fingerprint_or_directory...>
```
## Installation
To install archlinux-keyring system-wide use the included `Makefile`:
```bash
make install
```
## Contribute
Read our [contributing guide](CONTRIBUTING.md) to learn more about guidelines and
how to provide fixes or improvements for the code base.
## Releases
[Releases of
archlinux-keyring](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/tags)
are exclusively created by [keyring maintainers](https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/project_members?with_inherited_permissions=exclude).
The tags are signed with one of the following legitimate keys:
```
Christian Hesse <eworm@archlinux.org>
02FD 1C7A 934E 6145 4584 9F19 A623 4074 498E 9CEE
David Runge <dvzrv@archlinux.org>
991F 6E3F 0765 CF62 9588 8586 139B 09DA 5BF0 D338
Pierre Schmitz <pierre@archlinux.org>
4AA4 767B BC9C 4B1D 18AE 28B7 7F2D 434B 9741 E8AC
Florian Pritz <bluewind@archlinux.org>
CFA6 AF15 E5C7 4149 FC1D 8C08 6D16 55C1 4CE1 C13E
Giancarlo Razzolini <grazzolini@archlinux.org>
ECCA C84C 1BA0 8A6C C8E6 3FBB F22F B1D7 8A77 AEAB
Levente Polyak <anthraxx@archlinux.org>
E240 B57E 2C46 30BA 768E 2F26 FC1B 547C 8D81 72C8
Morten Linderud <foxboron@archlinux.org>
C100 3466 7663 4E80 C940 FB9E 9C02 FF41 9FEC BE16
```
To verify a tag, first import the relevant PGP keys:
```bash
gpg --auto-key-locate wkd --search-keys <email-from-above>
```
Afterwards a tag can be verified from a clone of this repository. Please note
that one **must** check the used key of the signature against the legitimate
keys listed above:
```bash
git verify-tag <tag>
```
## License
Archlinux-keyring is licensed under the terms of the **GPL-3.0-or-later** (see
[LICENSE](LICENSE)).

View File

@ -1,12 +0,0 @@
66BD74A036D522F51DD70A3C7F2A16726521E06D
BC1FBE4D2826A0B51E47ED62E2539214C6C11350
9515D8A8EAB88E49BB65EDBCE6B456CAF15447D5
E7210A59715F6940CF9A4E36A001876699AD6E84
63F395DE2D6398BBE458F281F2DBB4931985A992
F5A361A3A13554B85E57DDDAAF7EF7873CFD4BB6
8F76BEEA0289F9E1D3E229C05F946DED983D4366
7FA647CD89891DEDC060287BB9113D1ED21E1A55
D4DE5ABDE2A7287644EAC7E36D1A9E70E19DAA50
81D7F8241DB38BC759C80FCE3A726C6170E80477
0B20CA1931F5DA3A70D0F8D2EA6836E1AB441196
4A8B17E20B88ACA61860009B5CED81B7C2E5C0D2

View File

@ -1,6 +0,0 @@
AB19265E5D7D20687D303246BA1DFB64FFF979E7:4:
27FFC4769E19F096D41D9265A04F9397CDFD6BB0:4:
91FFE0700E80619CEB73235CA88E23E377514E00:4:
44D4A033AC140143927397D47EFD567D4C7EA887:4:
0E8B644079F599DFC1DDC3973348882F6AC6A4C2:4:
684148BB25B49E986A4944C55184252D824B18E8:4:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsFNBE7VXhABEAC7AB9vHjR4b/lXq/HANeeN2vWQYK3xL2/01nvUPwycjDbCkOg2
LZzBiun4KARWHgslErhZ26Yxsf5GQmkbndAliZJ1QDC8Evp9iH4zvc0BCp6Tw4+I
7uHc/rlNw4g5/92EzHVtOWzw0FaB5exRPZfiGuuyOtzbny3oEHw11uighYxt7POI
dlBFGAZjf1Qcjc1dAhRUerH7W/CFhL+fAvgu1zPtjei4m9jQNR2xjR8ISu9HyfYE
z1s7tQeL3AZwVg4YYRdFSjbJQAc1CJoRh5YnYdjpxfgmNVLxo8BAqM45ZrX21nW1
+eog00360d2lQhhYmFrySrxXLvlTfpapt0NwZbbSlvhJbS4C3DQ/Wxj3WIaYTXd3
tXbH6CQBnOUL8mItQnwHJKbHXZKV1dZHAftMNBrSllHX7s4yZZCKsDd7PxiSCqFJ
Ihh/RKGHRVprpx7WZ1b43MoeRDqcRvG+/dnoURFe7xEzzZU47YjLplxGETzQmw7h
fYkMihatKflMs3pgNbuUOduwF3wbvM/31PmCCD2/ZXeH+BBFJdu9Mwj/ZWBwHMxU
nTDnlRzSoo5ELBtc5oQ1ReZZD5By32WGNootgU3mjSi2XB0iL8nQSYBOQrvXlBxF
7NIdIdEIjHWvyPLP2Pf8r2j8Ly7WHW/rVpxRCmRMVShzevATFTBBhMe8eQARAQAB
=pzYu
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
wsGTBCABCgA9FiEEqxkmXl19IGh9MDJGuh37ZP/5eecFAmJ6P8kfHQNSZXRpcmVk
IEFyY2ggTGludXggbWFzdGVyIGtleQAKCRC6Hftk//l5505TD/9WswoM18miX34A
fQqx3QyiFWfGsInACJ6GN62t8zXJJVSv1TWE8XdNmy5YwSAOL0MXA+uggt0b/H9s
elO03DoDjk7yI4bxncGobHaUNB4m8ugHbrpE/af5+BKdnhoN7v+z3VL4fxHZ8sHp
wOoorA3JlJbsivG6k7KFB9NtfI1WKm5uv4Po2UgEF5hfpfCJycvU5ccsxmVe9Qm8
PCrkXzlMxIJYNsj8nFemA6oeruJFUOXkok055vQiW9Qt2myHmw852DbNX0RSg6lv
qbktDkq5EQxlOgrysqtrfQdlLX4TBtDIZrX7pY+hfMPRoAKHUGubuUL6Q1qc/4Ek
mpnku4UtKN9KxY4rMjUCvUAO8ziuUvIWbL5JIIXZkJRezWpBwnkIM1/ctOf/XlJh
cdXJca64zuNYsj4R8zSBOCrPwOyDCOFDXQzzYwlUII+hYdXOLbbWbdIOjCjKRzf5
EwI43Hme6k2dmEarNjAX+1Rqn/GG6U/qJizqlOh3tf3Rywt2mZ1aGv/JmvuO4eAf
AldPloW+y9XdaOeOvBOMfGDjAlP0HikmamBS6ECg/RRCF3VPm0fXupqlRE01fMDA
8jIIPwTRBLT2n3JQ8coJwKBgNaCv7ANFa8Z3oIE2+NO8M6Jqk4H5HXbSS2tEYtRv
0jMG8BCx6ig1tjK6MVkPHRuirAslmw==
=ThEv
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zURBbGxhbiBNY1JhZSAoQXJjaCBMaW51eCBNYXN0ZXIgS2V5KSA8YWxsYW5AbWFz
dGVyLWtleS5hcmNobGludXgub3JnPg==
=wC9S
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,10 @@
-----BEGIN PGP SIGNATURE-----
wsBcBBABAgAGBQJO1nGoAAoJEAYJamrRzt2swd0H/RcN+L70DNwJHJRSglfNf6L8
hRWTV9XO9NjaJ1BJBGX5uNHdaO/vf+0fAWhK3/f8oRnrSQ0BLUi4WucoPxOD5lEp
b0kczy+0XNSqNd5o5a78BJBSM0pnkkxD1EcHZS0LuVwas7mSBwbKM6bfeC47NmT5
SxGFzUpEqSfcssJ/DZpP30bufx3G/XUyVOph4rj3aJ5i36ZWA2FZtcuTr3n1buqW
Jim2MHMioQGx9/2ubbeVt6CHBF89bQeH9XZNGGFaTPYtQVPcZzLoWajXAfLv5K5X
/6t1RyAlEOr5n727DYfvHRqLOZBYe/fNg6koolTfWvH9Ky3fJQ5KYWANhS6fVAo=
=P2Qt
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,10 @@
-----BEGIN PGP SIGNATURE-----
wsBcBBABAgAGBQJO1Y6+AAoJEPmf/g/q6Zm9na4H/1r3X5MUBw+2IbmSzB2AGvrl
Rf7LzfO3tjt1VgSjpcjbNZkpaRsz877BzlpFxBQg7J0xOnoUrWzWEwKhzsrNrwa9
V5sOjw6eo0IoLX8Yhu2cNRaDSRBZTbx7yx6eWiWVY8Xu2wWEPBXWXqFzbeCf7vjI
Uzj0XxaCULjfil0J6L5vYGF5nig4va2s+lCewbgXiVPtvFvmlUifs0ov2rRYTLez
E2e5rO17MJ250qi85/RbNqyOWGNrLrZmjJn8LqoHSzaJ2dFhtP6Uz93kAAO1pUhz
Mcnok3HyQX/5C/CZo2ziJofJk7Pt3fQRZRw0F5WdL6rG+A5CQsPMg8cPOQcjXFs=
=YOnV
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
wsGOBBMBCgA4FiEEqxkmXl19IGh9MDJGuh37ZP/5eecFAl+gsrgCGwMFCwkIBwIG
FQoJCAsCBBYCAwECHgECF4AACgkQuh37ZP/5eefRSw/8CZsWkHIHGsJVRlKPbw3g
10ZuIUcqGKV/jqDq/XkiAvqiBQ0Ls0Lw4F5oWMe0ixRYpHrep9RgJAda60jUirCd
CqwMeRMQLFKvQH32NlB8KAASx/fVZLh2OyRIRLpz0hxFNVXOAMpwuR33IOemNoNl
e49lD3qsZBrZmVsNWzWqgtxPRAvyJ26tECXymNPxpGp/XLM+okpHXhRAMee2e2s5
K4+3ptjA/p65FDqmDUKK5w44nTD+9sGkkEwouXNtkbh2VLx4upBpjFb6nk4m4481
N4XxYB1+JUwy1OeW+qA+y/F3190aIy0HOGknUO0qRPxQEbAmyqFVTSfUwcuc/Bkr
ZoTfVCH9E4f2mCOUZMk6if4hx87dTMs8REfiBq+YuPudc4X5Zn6RnXpc6x5joEcj
TN3ytZmQU9GQFQILm9HPBpZZDn8lEoQ5Fgn/apce46E20pLvtZue1P/Zn9ASFHoE
1stCFgy8I2YNN1Bv0eqXb7QO9j2/bbOFKqTN25DJW2Iz2SyzHL80QLttjA20WOoS
9BRrWGmCO0wRhdU+fvhtMaVhyCJ9dFbVt61/VCGgGiKX2cYnG9FI5VS010AyQ/iv
FIhdxXdsntr4zad4fNS8obP6drNmb2l92az/fhB2DOApWigGsvpGxvMii1A4u437
vcJvlaWGcQgV1BRTEJS4Vdk=
=pO51
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsFNBFvkP6oBEACewaL2ZQRH3nvqLGBF7hUIOetSGP7/QeaX9wH+bQ0lAUc5/YC+
ltZE4sEmDiNvYAKA699KA6LD1lmDm0JikipFZhtXGKwPKjpAt81JnSrzy4o9XTzf
v/rZx8+2wzvMhstct0v0KsB8eD73ZzkeIDnn9dZ+Ue5irh6AkAibWTbImHUmPQ5C
VbAQgPlNl/KZaR4cc/0zFBxgWA9nrmdRDBMQbHS/BeQ6clZgVbtPhF30d6U0z96H
82XIGoYCUKwjTF2VIdJG8+FNMbAt5xtb4mhhFsVVaN5QuJiODoYRYpTY6fBWq4CO
37Il5oClRjeVyxj8geQlmtlmndO80uou4RS94K5ak2lspsDKDt1rLCgps8Z6zT52
s/RrIM+T0jQR3hcPhu4hhRYYhCZT9+QRjvIzz4+C/ieLssSE+Dxg+D4ICKo+FMSN
inGVoARwUULxDrRz/lA/dJ8NFrFAgqavzbT9Wze5lbQQdUoz2KPez7cyB/4TYRWp
ztAFofw2VyIawTvRq+iwSypIw3P1TSRqlHW/t0VC0tnmN8x4xl7CjpoEQvxjmI10
cQafEFKadKeE5u1s01JtlnwcqasJPALRTXc85QnUXOzXqvlRzjJIYkVqBj2NVv0u
MWU6rqqEGDpVDM19xCmlT5wymFc/L5JPZQZadwreSexiaObMo9POzQIlNwARAQAB
=Omgf
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP ARMORED FILE-----
zsFNBFvkQRoBEAD0+kDjwgoiqs4qA8lSWJ/UJrpVyPfCRY8ofsrny2twgWok1a0y
WYscZCVTKcAwSGnuuwlz0UxwrjBSumhn6Q1JnxnKglgyaZPHw9JRMdNWhwYMtQrd
+H1RUJEv5VpxRDS7/2B7klbJqCmOn6qM+K3lrRmVoFaSuRGYsBlJJAjvAIr5KdRL
ixvKNJNffvf3vCJs71Yc27vURezGHVyeQcRgYw0YAs9IQmLiRAzRCvcB9QhJiJBg
MxRwMoGM+Y7sxOJH7/+/TbQMICosIq+HGCF8gK+kIaiIEn1vfM2PBi9r3+Adm97C
bSrBD/cakryheC9MmNuE9tXB1vFQvJnTSrJulrnhdSG58dyWnERB7dd/nl0rJNYl
41en/p5Ie8O4VSBsOevTESQL+HqyZAt81xlDosrhalOxutHCs/LPU//T2ZKlerQQ
5Vzm/H3nzyPA0ldCgkjnCA3RwtpDmDq/0z6PIurLOZ+gBkMcNqV8RUCocWMxyF9z
L4U+wExm672NkxUGeWgEyrw0nFTUtH6xPvF/aw6At02Z1OhcqNGynFJV+aAi4w69
kGoUEgxnPoHPxReYga7VcXQgWdK/vCeu0olniK86z83gbKpNuL45u1ta79XcaU6C
i6zsnS3hgIjnKvXaMJDeXew/YS0gx/zyYPZ5vUHX9EfuD/cRm+504cf4GQARAQAB
=PFJl
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsF2BBgBCgAgFiEE2K/doHpbbt+n2Mza1tBV+SeEPxwFAlvkQRoCGyAACgkQ1tBV
+SeEPxxn8Q/9E+EGLkn/8JvU8sTxw3x3x/CUH+8gyfDh+FeVdyBtRIbbFxqPRMGv
kbP6xJ9zuXjkV3A5pqxFjEWWqndgwvemmGFWcoQS2FDEbHAidRckzICWnQlt75qW
XVV9vRAwAMHtSx4TNCml+NGcvqX91zXQkT+RJe5lbTQK+AdnGamMZSeOE1mISo6b
8o79uLm/Z+tas/tpWsV7UNYbbZO3k0kzzqKgRSDNYMNeJJux56nT2ANUU9se/lV6
eYWsqqkKYxuBF9sFB5Z1AZsnbNMsPyGhpSU3NFcfw9/Lkbr4AZtfhseJFCLyXwaR
Zc7048mTAERttpVh72J/65hughNOUSFhCPYWhQFpnVoIwZ3ugbmOXBNNZR5nOYrh
ZEf3QPy4B3QD8nUyIufMEurq4NdlgJ0jnBiT8hrvbU9OM1X4m6q0ARJPJGWRzIBj
Y9oSg2K0jZ5iAMvGEz4cwPM7+GPRuVtthRkYBK5Pw2yabHPCcPEmMVYb0Ap35Qr1
jEcvp4gN7txl0HprMnkgrZNUrlLLZBLpIgczCY5s6XaEPyzFtcmFjD5lo5fczRw9
hVANMCfwZ5scvhCxv64yrFXC8cavsrtK3ru7spS10vWdudpjws/z4Op6geGrdlPX
swyiU0wCi9ystkcprrJre/El55diojxoVUI7jECl0Qzai6VbDuTBQsI=
=lUfa
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP ARMORED FILE-----
zsFNBFvkP6oBEADjYH5y6SQmMIkRO2ZWdMyxIScPpHyH1q9CiOtSQJLqu8tUSTsj
wup43Wl+CAjWkFJ/RtvlupB4zXSMxF7wU3lURd5B+BKCStgWpROxLh9ANHjrofQb
RyltvxPThoPaSyud3J8fzcQ9O/Q4X3xhTHkQVHx4S143L84BMJ/soEFhN8FPVSP1
cgNc8g/xcbAGkBsToAK9VNKjovba/uNvZEX2VaYbqxdd+69fsQ61D81yYVfZFSQL
0o2tymoEQmZfuug34s3CXNpSiPCQ17eyzjvsuxJepTXy8gQWXkkOl8FvUmTlc2Um
NI+ZqHwiZZk01EDeScyfcL68H2Tz5L/c4Mvf+56JjSTLipOsxbRviWuZG5CvN3nu
0Q4uWnmOFd5/43fZhLUHOzQeBwsZT62jKPe+wk0huXHmiCyjjNCfEl70emSFkEeg
0R0wvjHuXvxpJLd2r8A/PlfQ86LD+hvrrLxZ4XdrjqscF4g4HHQ5PGw0hzXAMPwg
E0kV9/ioTGQza+g5zwJRfr2VGbgk2Bg76Wk6MirjpSYrn5o6ebRMT77Tsk9hDVB0
tAU6RbuIMJo7h0ZrzM0xW5OEfF73IFmVgNhv47Mv6Kq7ddwLAyxcqQekwSgk55Kn
oltGINoUUEYOR4H54Vxk8szSdZEHL0rzR4EjzgZppqQd/wNYYW2aon4ghQARAQAB
=Bnat
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsF2BBgBCgAgFiEE2K/doHpbbt+n2Mza1tBV+SeEPxwFAlvkP6oCGwwACgkQ1tBV
+SeEPxw0qxAAnSnpb1SbT54Y2UuU+81YUA2HpThAH68Je6skz3Vu/q8rNVtMkH4I
a+SqAhfixvS9hZKnL8HHXs9m0m4F+IiUOcW7WDNGwqrt+9q1PTFsq+/OylOxq/Vc
a9RwgpA11125SH56EYG2Numz0V+AHSz9QEeZe9iL6joCP36kmu6to0PbAIE1EuUs
LhLAIZAUgVtjvKJgTQcAvTJYZY/DWa0dbDCWt48ob3vmKsv/gVAzto74aR+61hoD
Yqootv8dckHyLjzTXgslboC040oJMFGk2yW2waDwfKtnWqOLLMrP9gc9MelfagHz
NxbcZQ2dpUa2R7zOOJr6Sv/5NMB5sAcRk6V+T9thpA/V/BONdQP05tw5waiZ+9fh
dBUxXGleFJnq3SvB/iO1jvdRw60580QF4brqThEZwncXE4tRtNJlr1cqG46N68HB
wwOc9czL0Tsj+6kCBEVv9RBueSQXckIF276FcSxlMyihFXdVawVO/T51GGi0Lb8m
9BnHXvVKokmRtlbaMwk2mYXDAtGdaVr3GGDgLqEYzVo2Y2fh/8UeRk4s46YkAsXq
VMFIIIQYMPt+DKo1ISrVUc7kKFt0LUhNJqCcrFcJj6FoBE/b3cDL4Rir6AMRK4a9
oj07AYGUL6Dhi2al+ZoASOXuK0fJUshNzHfpNV7gpKnJov87Ws8NL8A=
=/5xF
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zUpMZXZlbnRlIFBvbHlhayAoQXJjaCBMaW51eCBNYXN0ZXIgS2V5KSA8YW50aHJh
eHhAbWFzdGVyLWtleS5hcmNobGludXgub3JnPg==
=Gl8E
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFzBBABCAAdFiEEj8FaBklQqZ3RvRTdOeS4d+YuuRUFAlwmkjMACgkQOeS4d+Yu
uRXLYRAAk3UnThNcG/aTDXN+AZP+P60DxyUI1FdwYiAyzV+Lan2e8oAfr/ppPJii
uivH8s2wwR0lh8g1bGLQPnH+8b1BFUB6mp2vSUSfl19y1YCJtzWvx14GSZELJ7M5
iRMjqO8EoiDQDEEeNDPXyRfWBhVr1FzpbEWMaa7goJ7/jZxfZ/PvVktfTYTgWWrG
brgspNcD0u+ZphHFFtjPb93iXBr5hPm5TW05jrn0Mgi72hN458YiedQm6A0alRob
B4+Ug88iGtaD7BlgRwvKwPEsvOb1NCwN0jZiagcdOi+BA3psqZ3XHg2fTigjKPV9
89JPs/STDPlGLbJuFjoQqI09TeYVhONMOlf6UN5bIO167OHk5taRU853l+KFefpT
msnGN8oL7ybN5hqSmP0Qci/FBnLcBFx4bJJwIWEFuds8oLf31v4ROAK16HZkEtRJ
eFpqXaKXgkY09IplCY9slVFxt8Eqf7W66c3EUmY8mgQpQ0rp0ompCsMEQlJVFHyB
WA2to1piTkZri0axcKd9HHf1iWgg0qo6X7GbmSaD1yq69OOrDyYdD7JWJWDXAMRc
VbPD8lEw2o0SpyHg8JSZKvfMPxdyBcLWB3j9xDK1nrvtLQiWxxYgzTFqnKMKcDk9
l79/OnF1NiW9QJLwm8Fx6ZT9zNPNx8I+VCaz8FbIJYpyoV3FEgo=
=Wywb
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
wsGOBBMBCgA4FiEE2K/doHpbbt+n2Mza1tBV+SeEPxwFAlvkP6oCGwMFCwkIBwMF
FQoJCAsFFgIDAQACHgECF4AACgkQ1tBV+SeEPxyNSA/8D9/gqUmkJ9s3WNMVlg8N
PKFmEYupilZzO6/hjFNvYVMUtOigJ33LnS5XmWyyIgkj6O5QlNxvLF4pXYtruFOQ
dwGN/KFFCBK7VeqAsjNaz3tf7/NQiH6HbACFCNGor4/N1Z4YFn/AhJ9KohbB7u41
CA6a7ZLXl6hXh+5nTLXHTXv6LV1MLiYBPYDncUrW9P63NRDbkWF7uuCE9d6q7Fdx
RCK7jgzrq02GdaetzxX1/oP68XJK4qTaPgdXXfcBMOFRbJUzVsTTgPtbCG9EjHgV
DUXMhqClUXe41gWVjIyz1r9TvPKRcCOXZjojdJn0PxvyUUKyNDzghNLlLSORpq76
BnRS7hRyNUSzcH295VhVzv7rtd9/+jDNR06MRFEehUMNcTxIwUPbTcntvjzU2zVJ
uC0Jzhd6yiF+cWQIMeKdNM/NE6KHu609OPrMfP1ohSnKZrCs7dPD3E6j6X0sGS6L
qTmJh/yPs8pGwR+wvyznoRbW1MntDew8ZxH/wGOlGzG/9etuY5PpjL39X0eUgNqL
2osUcLLOD1J9Ns+KGHrr8knLIEH4S+1sBMjIUlI49e+IAKB/2nbvUTENoP44mFmQ
Ua9BSINnOeuGRgqj/WpK06uwaDZbue7OxMUiWCJF0DN7T6oe6nqbQ6oEprtad0J+
mCRkZxoVjWaUYezIqRrd8mU=
=sFOO
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFzBBABCgAdFiEE4kC1fixGMLp2ji8m/BtUfI2BcsgFAlvqEpEACgkQ/BtUfI2B
csjzsRAAyPH2978E1OOGgxWm4dUzK3s+X9UuK4eSzh2Gd9gj2iUYB7JzxH+FJt3i
iaBW77mmN0yYd1EGQrwq3PPR8pe0vzip+KUuDcKNT6Ut496jBKdPg+mLzFZG+eLV
Jz0GTqaee7uGI5AmCs3sbHOFnUOoqhblUCBys+TKDkzZqFL+sbMtfoW1S1cXjA//
o/W8zdn2SRx5wNZKzYMDzEQdWA46sqDv3x96l3LhviqXdyLLAba71YJ6yh2SF443
zc1T9allULWKbeGc4kN2KCtE17M5VlvLsR2vf8YeAtDdXqzo3PWYo6aLc2zbBiI3
8pMmUMpOCnBVihiSjyBFSt+wpbwivEdIx1TIfRfVl+6Nxk6SuX/9wcjgRGkNwQIF
EbdN5qIpHv3VvYimSX5+NUqoohUvpkZPfUeew7NiwUM0POW8Dp1SVUCcKXSi3gBb
nB7t6jqPB5VIgiVc5oAhpmUO8seTBYIkQYEdLBL/BezWOAiJHLPsquhwr/7Ass4w
0XDDQ2Ug6doI3Jt1Oyf9iXp6N14FxSijlJYxJ364eZvVf6QHtWT8723zpllklOpT
DywsLM+xqp6EVs3qKt4oBQIbWBLlEyA/yb/2kaeuRebWrMksCCkSUvUWM/gRwDu+
UJa9RdoHlNBVMOFqkVM80Pd9JDa95cvzGEX7Z4x373mZF9a+R+c=
=GgJE
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsFNBFkZ7lYBEAC0zCXwXOY091ccRjMYol0kRrGd7Z6kzAWzh68rCUPtIFnAiGjB
vbUrKX0fXuXN+epT607l5GE+JIKe3qGgHN0JvSEFtNqpbhQjLUCj4PcdwB5WBar/
31Z74cekaPwAMDSYmiZ4Pya0qxfveRqDpdhSKuXoCQVj9pn+GO8GlImTjY7257+O
C1Em9YwEzuqxWZGM/DVS0X3pfKuQ6zlGGsQM17GBs9O99ZtO7SqQN2celJripUPK
/YWDFjqNaQb3MpjTxik0T98t2m49CuqfjgWkkikRg3ffdrTebFNp6hAPn5Vkpb7a
HGlxEBcXBa3NmiM5YT4qLa3pG9eV6kTM8w9jVqKl6sL+lrIatLSS3NEmrBH6Tw+R
Uo2agKlY4/MQEP95jxFHMIlK/6yUKh5TCeXFosNJAmAHG5GjRtbk4Zvq8PxWXO55
zrDt1hheYRjRz38wMqhzMStrsK/c6Z45Q5fuLfJY81cmDagxPfiwkHeAF9apvMMl
ZsgZuWMwmx08TH2VDsVFOoHOq+Cs/WJlkqoqZ+tzk7rMSHjat+SYr5pW04+krZx9
0nZ1XJ1dHBo1KuZQXcEmL0ed74I5s+akX8wRzCZvFO69zMem5r9sRAvyxZJxi0kq
Amxu/lH7hpR0iRjU+GOIGaKQThLwJHrO+A+EhZiJi0Xt6KOfY0+liwBmmQARAQAB
=2rwK
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsF2BCABCAAgFiEE3bhnuSqnicFl7vp5m3KbBqaAwoEFAlkZ7tgCHQAACgkQm3Kb
BqaAwoE4Tw/9GvhXyBYMvBMUNmpqh5RLxLRkE3Kc63yZNjZYYhQBpe2jBIGK912B
WLSBicIBMbTXhqnypAbjsjv+BuxJds+ltF/picmQFMN1GHYKyqCUz4Gn/fNPSXhT
HfaJbXmxGm2PlUjOsPukMT/vOs32Q9DW1IxRR9ZgYvfno2PYkUpzqrhTfMZvjtCr
tcQ7eX1t3PaAzdVy3KNIM64zR0pm1OAeGS3bPvHHipU7RenA1f/grYzFabRuLASU
d4FqfifjMacS1ySAyP0oMOYIikCfqMi1PcGHMZAIy7O0ruOrK4mtYgK0xE3PUc9d
gDBwSTyvf7DG5x/q+Or8j/Zszqa3V9tDeGLLuqiP0tLjzpjYv0nR8UzFVEBM1uNd
KXYqqvqjh9zuT/qZnL7yO2ntaLZu8gSIE72PVfolNsBKNvze7zdOZjoxZJCM3PYv
XjQQYAwkUSo5+QvoputWIIxIGaDYemZIqE2rbjOwUzzXZF+RzeYu81WIYzeOoi2f
mvbTPI3ZmDIcESX7UZeo7bC/T+600IGvKWRVd68zNKqhWhbCvdmnMK5m7uUvUTF3
XsAUb/jLE+LdiTwTNOiRDFa6z71BnbuzTix1cy7ABq2Pxw/qA9JXSoHk6bbODmqW
obvT2T9xd+yD6y1/LgMM5wDOPsktnUy5pdCmvAF20w4B+0E1SpB1xTg=
=GU8t
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP ARMORED FILE-----
zsFNBFkZ7lYBEADwyySgtsmaPqjAKu8VnG9jqMoeeCht6cxSivKzCs+dugSaShYu
ADXm42mtbhC2oHWA8dW5/USBlIddXieo0W9Ip37RBRWnYnGJF733wF5Rz8NXh/cL
VzU3EzUTDvARRMRqfgL+I8R/OSYJxbqIPLQWql8p+GuN/243Bk8nvBKuuKnckn1L
Em4negowk4MgRxkfUtpszGsmtM//2s5kd3nS2Mle7TalcBIVVjSePnCk5sqhXTwK
Zud3915mJQJ9xfpK3KwBJx/jUdVi5r4wYqYy5X/+9xp4rAKggUs22tB83fN4fbs7
K6rJ77yhgnuR1E4SAH4JqcVEnN6xqT3T6VXLZibbgmztPTZ2IIwobMD2YsLPBA5D
tIpzTs/6g8+jUaBC2OxKmPJMZRHCVLtHoaABxIZihIJMYaNfYe2I9PNuAv/TV5C7
YEFsUBUnv02prJraIJ2FEAI3nfDk6ZdSEeonKtGlmzkLesQXZtl8ZYs1IEpWHgNY
ylwI2WIbjE3jsowXPPln8fjiVKPOwExdOBO8U2xm6OqEuajQhEkdf4Mr7x0wQUdT
H8jKob4k4gp0HUE9Ra2bgf9mVN0my+7iXJvAoB/AFmdpJ/Ee7vkRjhUxK+mREHsT
RNwxSh0nFm3+jAZMpNns7awqOhP1umjJlSYmTmppZ5Dufnde0jK58exkDwARAQAB
=HoxO
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsF2BBgBCAAgFiEE3bhnuSqnicFl7vp5m3KbBqaAwoEFAlkZ7lYCGwwACgkQm3Kb
BqaAwoEOJxAAkKLOCqUZhS/HkM0nZGjRFJkeDj4WEJG3TMk9SKVjhtObB7HCza2x
4jxG3Ws9JChGLLefKSdR4SmIC0/ArZxeLPmMTa23Z8tH3BxPPzTLuOYLwLk8zUz5
g8PSS89E7DtqaHPBLks+4NMm0/Kvv7TEvHwCxNJnBMjgbINXzArTxusxAR0LxJeb
IFy5lbYnqYbjQgd5oihGcUgYX+BsH7YspwZw8lBGrPTSDlM9vZTnpDsYvBcO+Z72
Noil2pLcflYIFIrpSDs58gAo4S8I8R2h7VGwdGwA0aSEMXznZaljEIqufBU2rJWI
Kgih05/vnHsKMzgOSpd7u21lx4+YJpFhzGCNZ1SL4LdEv7UK6VWFj01JYSABfcvQ
Vx2L1DSyQ2/UkQtfQ8k7VPTaN6Udcdksx5ZZNdgSOqZIvr45BTLSTPSeTN8ZrT6P
SWIwJ1J94VMq/7QW0K/XcdtqArddDPUbDAgPp0zUm7Ye/G5pMTaU3kSrRw6ABA+a
cDPCKhQKpbxsMGTMsaE704jh5G018VoP54OoAdLeaMH5o5+cz0Fssr1yLdAIHnIf
IlDPkinIA0hgRCNHYqN4p5KP/CeEUV09wOXCnwHz2+TEn30wqqXHXBpzRZo22nmj
mEuDW2j16HTdHDm30b/XxU+FN0IRr17aHMxqfJQWtL9hxywiWgXAkn0=
=mLgv
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zVVCYXJ0xYJvbWllaiBQaW90cm93c2tpIChBcmNoIExpbnV4IE1hc3RlciBLZXkp
IDxicGlvdHJvd3NraUBtYXN0ZXIta2V5LmFyY2hsaW51eC5vcmc+
=T2L3
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
wsGOBBMBCAA4FiEE3bhnuSqnicFl7vp5m3KbBqaAwoEFAlkZ7lYCGwMFCwkIBwIG
FQgJCgsCBBYCAwECHgECF4AACgkQm3KbBqaAwoEp6hAAmmmcRrNYhemm5/qvaDXN
7aMVhQJTAkpZvB3hDRIcLNugvstUqFsVQ7nXeGXUSRIOBGJ0msbTjzJaQLO+t5Mg
mWLC0jCaJLKuNNdaCpTZQRYeIO3OhoXgUgQi+g+YpLvYvd6dLTqDm3B4N9jHl+JI
C6kBF3IhlA24wpTn6qquARQEV51S3XuUU48zDsiLKmoeVvJ9xriCIRaWMqzfzm4o
CHep6Y8mC3bzPpYDEsqJhRPh2p0V5cUEeeS/YQ5xznPN0cJb9LCt+f7As8HlB3R4
zjRBIxoh22ywAAPzg6d2tDLIOJicrDwwu/0Kfiv3ZC1ZuQnrqCdDbkY+MnKWBT9a
OqzTNLMB+vuokmTCuc/MyIyhxPO7QHqr632pFg5sLt8hy73BXCSqper66+0HfYGe
FHNYMiY8Kenp2Q/1RgJuxhpZJYil9TVx9lKxfZDHT03B7Pkr87NM8Z/yHBu9rRyr
2w3DQhf4709RtHT9Mcr20Xt/fOnuagdUoaO1lTOhTBd1o/nqjkpIRrWX+tWn9LKE
GWs5xxmYMFKFSIUVy0qc0lXSODpr7u8ub3NjxJ3GmWKCX6LK1GcxtJm1URJ2nh/K
xoOWtHjn/U4BmwaGdJIaRbXg2xlPpIEVLEpjS8kgSlCMA6XKUWsMN4YB1BBTyM5n
ACYxHDbCGaiM0Ip8qG77+Xk=
=Dqq+
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
wsBzBBABCAAdFiEE82kWh9hnuBtRzgfZu+Q3cUhzKKkFAlkZ74YACgkQu+Q3cUhz
KKnNcwf+Ls3vEPfVdUqWg58zFWiOOYqPdO7T8k7MHwQjSW3O5of4zGe7nuPfWI3i
+RRRb9RXqulRq9ChjEAluoQtPschCJh3LBoL78OEzaYh1WrFBVqdKo+UTHPZcrGW
JScPR8I+rFoH35nS7PyqRxDwin2iehVNj1Hfo6wMpuMXaH7ZKiM8vsE6BwI/+401
RV5Y4/O2dZ+R8lG4Xj0TI0k+xCXHb4FfGSebtVtdPOuYAhOkHvSphWhMWC5ORj6/
t/MJQY0OTS7qw5iw5J7KY75sIJS6YtyLc35RvBu1f8Y5cRmIn3sQ3+S9PxiZfFSQ
45NEcwOn5ji6HwUs6rAwF9iN42qA6g==
=lkLT
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,13 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsDNBE7VPpABDADAOk+g4YfRSe3FpZ+ZxQzcAhZBt9t4tm1DJsrrpczlB4Nah4Pj
y1ZDUuOD6K97+56obAyHw/FXpukcOljn5ugj8DxkWZoFZoQXJ/7en5b4aMPaDtzl
41bk4ntmge7D3wMmzfNJzKoQJU4U4QyCfPb7W4SlGcmrFmrqHLZ3SMU8JBlPwN6+
j4WuT04Bkg+2LurrlBotwf7n0nazrunkK5/CMHSbFObpd6Ug7cLoy7Jc54QEOxTN
L+wVe3H4cbFZJ7Jly7h++5zo1O6bngNR+SapiCMSMsa5nPN4m6PbjspRqvO7U+LD
tkUa1I9vzbpDUeURDBmVCwPseOg8aLko0jBjyvOb/TILaoj2hNpM2zyl4ytgpAc/
ccUkZqVJ4+pdtd48sSh2tOYPcoZF7hSFYpNpV5XD0ub3DvtRaR4AiWoZM35mlDwe
KMh84K4SuuWkKgVzvijtvpk4lUtdfVrilFQmjkf90EHO9PQ2NHMgRjv+dNtxgU23
hWKcIQUEnnTQqnEAEQEAAQ==
=AADd
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP SIGNATURE-----
wsEmBCABAgA5BQJO1UPcMh0AUmV2b2NhdGlvbiBjZXJ0aWZpY2F0ZSBoZWxkIGJ5
IGFub3RoZXIgZGV2ZWxvcGVyACEJEKBPk5fN/WuwFiEEJ//Edp4Z8JbUHZJloE+T
l839a7DoeAwAqsRXxhGz106p9uXuUMuoM5pAm2Z3tcv400AD5zMb0JuhyCPVXWdm
A0pEd0DRjnR+lAKHusYlqX0rF9IvpUU5VV1R57RkyWier1JTDBdhEJUmQjSPlSCd
9un4yOScIqvJ3QaVBS0cFPVG3HiJ31sN07cJ1mjQ9Js6/FLx1Sx0wHZOs9ybk6Gs
VKUKAArItpdhq4dmHyGAjgwa2Nysr/J7CVDHTMSfaPGFSj4uQPEiqZS5ilGeS9yJ
RA0b6K+cCtqJV0Uijm19ggU522kCyd0oxwQM/H1E061Jj4iKaxgKr5dA+YSnHxpl
6OnhPgNWLGyx9Bze0xeSESGg87W66O8DUjObdc8SkKGDu/SE5xmg7IsxJkfPCnXL
ZY9FAOqAcTQKc478hAX2LPhLUXKxHGvu/AMqEY3/us8a83Rl1FvEBBBqhKzTP+FZ
KnifIJpyxaligKOKZgT4Wtssv6T8PXOHvV0IxUnq85bi9W7nlKP0Y/XWFkBC8Fr2
NXPZnyeMC9DD
=wfhp
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,13 @@
-----BEGIN PGP ARMORED FILE-----
zsDNBE7VPpABDACBeHRq8uIdvfLJeylADki9Rq7bxS8TD4hQT0FIJZBvEA8xhHNC
QJW9HB3Z1WaFGhkEr67GDQrDro8b/yGGv4qE3TZQYqLrrBUcvN684BRLYNY9+Plp
FzHTyIHWASy/uq3Seoi3cDDlJO/QJilj+ZhXVd5W563acv3i3UZdLRTNgwmTnMba
XKmrfAOAawxFQAlp81EmiQfaPfR5yXOuHE32Wc/v5KSPdAUZne7V44YZNXuM2j1Y
kKlu+Q6PXV68vBxjDS2JlzpzTnuLisWs3f1ruDr/N1muPDBmscwvLgvRietCyRW9
dJzg7soWGU5z7oy7V1q5+Mkg3ME8rUXXW4JuuPAPmro5ybnsV/e9Rn75UjdjF4/o
yI66Hu2Gt9o9mOJXP+L2+oQOG0u5bHSB32epgIPNGbtSHhvBtJ1D2Fm+hqlOkdrU
/AAYieIqPUobVhvoqwjfppZRBFTZsaX6QGxo+1mTBfbESSsYMfp5rdcpqxKyKqdj
IicbF2If0Sk9978AEQEAAQ==
=hpA8
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsD2BBgBAgAJBQJO1T6QAhsMACEJEKBPk5fN/WuwFiEEJ//Edp4Z8JbUHZJloE+T
l839a7C8vQv+Nd1KT9SLcsWGP8gSuK0SnCxSBQ1ls/NChDdw5YNjWT7SZt2zrmae
LafStGgMT2oD72g6kYHiKZJqHKdfgrbQ+TqYTugytOvgymq97T/66gbHiN4VXCbc
9qdRsBqY+cnfbiK0YK+odD00IVbggy097cvTWzELuAQfoKkyOT0OwoTmxCNe1kmn
KHkWsrp7E6TN6LpqDS8ht60kjY2CYOfytXNeulMh5yfj4O/8Sa/NcoWYwB6OGx0I
dOB/Ibs41i4MdKkiI3Le/dgfJGQNR+c3njWn6Z4R1ZrNhuWmYpca9Dd3tDG0+CF4
qVKf1/QJxd9nx8ERAUIGH2cfuyflt871o2FsUI/lsj1GOzB+Nyf++HgX5364Lk0z
Ok/JZFpOmHdP2YR0ZS3ECxwd8meS75JmEi27/eBVIuOoEInYFz9Gw5YdK66UJJIq
i+VwmFfn/JjE6+HDeWXbzHhEdff3S9Rn3K8u9dPw/Ha8Fdka9Q1EKp8McydRo0hg
PXKmKC7nw6qG
=Q8d7
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zUBEYW4gTWNHZWUgKEFyY2ggTGludXggTWFzdGVyIEtleSkgPGRhbkBtYXN0ZXIt
a2V5LmFyY2hsaW51eC5vcmc+
=XHg+
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsEOBBMBAgAhBQJO1T6QAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAACEJEKBP
k5fN/WuwFiEEJ//Edp4Z8JbUHZJloE+Tl839a7DmCwv8DhcIST8aAiMX08TmPcdZ
w7JfkT5PZPJNNRl336GsdEoM8nPHdmivkx3rXWO8J6KC9j/Wgkl8SO76zQZu+Sap
8pXANus8t2nZnsBhs4Nf7W0ElPybLfcg18J7G+ISBfUhGdRXh5oznwI36TZVJuIq
5Qkjrw3xCD/cIojc7bwBhbG8A6tmhxtRsRjfZWoJ33VTLEsiVgW3SYpBIo92gEOF
SJL2qbJZiCXhSU27WAGxbTYXxOIFb/rUUk4atnu/JK7Qx3i7cuoLfqIqknemTSK3
S06sZ6kPwSi5MjUIv8GMbtACLKAYNfy4PR3ebfCMnzwQ6YuutVklxDgKU1ZlFM2W
9qUguZG+NJzbwloyI7HwnwAX4qOtPKff4kl7Cbk/J+fn3xiLIDMM5kxo6DahC75O
bcvAK70mG9Uka1dGsak7TLW1hu7OoZIALzMc16Fzvi6GOVayWUxYI5dwXL1wqzQE
ROZ75Zm/gpLKEObwxRyhZ2mTFxNSxmWJF4O7WC15cgrx
=6l/S
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,10 @@
-----BEGIN PGP SIGNATURE-----
wsBcBBABAgAGBQJO1rYGAAoJEAYJamrRzt2sOMYIAKRJxbHQBMDslLCoJHY1pCMu
nlCKocwAGqDiu+sywnlQZll+IN+OtnhvcWEz1wwRaBm+j1rw9gu45sJXqAHzINh+
2T4cVIfDlKy4asUMLXWnkz5lvuzGPWtuQw07vSh2wxXK0aGWaHSt23p/hFRYQHhq
yxj5ZKv3FBmU1lgzxtQ2W8Xbiok11si1/JpOgNN1hf4IB9TWmZfT8kfNh26F8cjx
42xgsWDsFCqA/klLLawKMG7MAvF91lvaB6S/KBrNh56rNfn4pSV65n8DreZBXp0m
VJda2kXUd6KHHKInnw3d0rfLTUpwY9jrXl9kJ3WS/J3QDHJdgUVAEXkQAXLBoPI=
=bVi+
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP SIGNATURE-----
wkYEEBECAAYFAk7VQNMACgkQXC5GoPU6du2arACfVx11rGiaq6jcddPgCPheu9IR
4dUAnjrctJQEWTdcPweh9WD1w/F1Ypcr
=Rnfv
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xjMEY1ZO7xYJKwYBBAHaRw8BAQdAHH2+9UAXXJXvyxwkHj79HmND++fsFHiPaVno
Gf0jQTQ=
=pAgF
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zjgEY1ZO7xIKKwYBBAGXVQEFAQEHQG6INFEAlagoAFlH57paFplRsXc7Ej7TYoEr
ThpF3akfAwEIBw==
=9JBw
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
wngEGBYKACAWIQRp5kceOuBlKXUpgy5roPWiA39PQQUCY1ZO7wIbDAAKCRBroPWi
A39PQXDtAP9Gt1as8r9QDctUbzcGfOW0ZCtQrNnz3D5wX9eSALfykgD5AeZYzZ5C
agLMQPij6Xr2Q708TMVle+0efR6aWboniAw=
=vy10
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zUxKb2hhbm5lcyBMw7Z0aGJlcmcgKEFyY2ggTGludXggTWFzdGVyIEtleSkgPGRl
bWl6ZUBtYXN0ZXIta2V5LmFyY2hsaW51eC5vcmc+
=r3SC
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,8 @@
-----BEGIN PGP SIGNATURE-----
wpAEExYKADgWIQRp5kceOuBlKXUpgy5roPWiA39PQQUCY1ZO7wIbAwULCQgHAwUV
CgkICwUWAgMBAAIeAQIXgAAKCRBroPWiA39PQU8BAQDZOcoXzOZ8Mfr8B6/lE7D6
f0TnqaDciX4k3GePK3u9jwD6AlbgrA7qwghm4fN68IFR4+hiOqUndLd+adA4icgj
ewY=
=aUvg
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsFNBGK9jVABEAC0ADojI/Iv6q1xygak4ak8S1kXSIJaCZ94ZXbaMH5KXIr+eGpU
XLQohWDZQVMtiOn7zvzMOLXOken6UduENuy+R8RywJ5z/iSO08OnGgTuGqU23cfU
n76D9c4+NepGGDcfZJjfc8q738xrYBKPkM/1bj4QXPjB+F7En++/8Ob1TZCEnCWE
dtFuQfZUEVKSrPwrYWLeOJU5IsYjObZOzpuDaSbehczyV8bp1aY7e/gf30VWpTUW
w9ldLGTO2X2T0oVXJlrHzlaYonwb1Bcp6oRc8efkOUKREcE++EVjcHSd5i8HFS5D
jdyvDVOgKbVTX9DO62mQ5fTmEEtWeemlqe7Bi6vScZ1YhC0zUklQyVsk08kWSMP/
2VDtFCAzGawIesCHRXvwf8DYHlJk2h4onDrE8i+NmVN0Dbwo6YvkBgGF+x1Q84R0
IwBpesSvqxY+U9fYbdnUad+v8VZINEzilqYZjXKg/G4NbfsJEvKNV7z0AD7h3Wgc
ESsqPvZUdPLGbBIHnQc5pp8zyzygTWmVzcZ1r0w/UVlr6C0Y/aTbRFCWbZAC4Bl5
nCcVMVz1E/CTliGDLzuYeXRR575jpqTYp0H4FPQaR8dnSl97dqZTDsTbC/jYLy7U
LqNX5bQw/Px/4w4sqXRHc/aQW79pr+qPpCEUppiPQ6jS2vSuIJk5ePl0bQARAQAB
=+0rh
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP ARMORED FILE-----
zsFNBGK9jVABEACnRHSZBWW2GwSna5wt5V4MfDpRSgs+yH9tLQwdoWyExuF/OKHp
PEJWSrHP9QVrh8o7rYMrCj920FPtwZsmXN4YG5xYsE3TZZ/wSz6XQHYdzsXQKBzx
yBipH4XkmVvICiMjSCnETiX4l7+2mjVq7JOoMNUFZTdly8X6eWyj4keqqcRIciXP
rhzy2oo6Z+uEkeYiFbvbt0z6iBTyIQLFk0b52qM+zGrAE1b2cbKuC2Nue3lY/CS4
/oghKj8Aw8dqFNdxLMaocZeyxsD1Vn5QkxZZHde1aBhnJie1OfGWpT0aumBnn8Gp
WUddl57mD9G9Ncg3GmfrKvkXqPpw3paoyEEd/muIe1DZJ0JBZUBnx+k5UeNxKOuQ
BxWV4nGsIVTmpIBE/kjqPsUAbiPz4XP9kIHtodtP4wu0TXB6YZeznGYzWYwJwYcO
zmZieUAbzKii2gI9QVgJkMiRIDnNu1Z5zFOZPf9Eph1U//Kaa1mbYWSoEcPNxXJo
7EKEFA0r/B2a3hOFaarY7S8ZIaI0aYOWjfmm5l3XwsW0Ny1IdQ39/qaIbkvCzMFJ
dn+DmCQEUI7AmuRnrEznc9WhFl3tqPfw46i/6eut+B5u2dZqBX7Oj1FXODd7/+XG
kiOzymXu8f/UuY1gmtSYp+K7Hrrjg1KylRgfuAmebS5XaN6Vip7v0rOhgwARAQAB
=REMG
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsF2BBgBCgAgFiEEdb2A5Ng0UJ9udAJXsbc7AsxSoCoFAmK9jVACGwwACgkQsbc7
AsxSoCozEhAAqkbJ9Jess2ucdhZK/0/AFX25IKc2vMsllQYftGYVGvMxZ6Ow6du3
xu3eIlOd63wTTHZoqjmu5w1hZo5slhMoIZgMMyQYA7NSKaOETh9auF8L6zX8vS2v
y0wR84PxcE7KAKDEW2Crr9qGd/wlD88JyQ8OlVJsGuRVvYdoCoNzoBnhtdSmzQ2j
KwvDrZ1ePd7w1CCOKKNUpk24jZDvDhdtFbCOaUg1Gd63DEiZIDmHW6V6BwG5F3sh
apThS1G7iHtr8gHk5sAMFf7/nH8wHUr9DdJYXCjJwdzjYKc6lqkLYOyOCOe64dJc
y9B/mVTq3K30YJWtD1YPlFi2vkzD//cK136TOipMdgncY/AtLvDwySduXqZGkha/
q0FSQoMsyD7/vEI4I5BZKsdxlgwpZdGfdix7koQB4gY/+ZxDHwmdnp/4Ix3vq033
87bU3JOjpo3gQrglVCGqPM5sQKKfHqJbIznsULYodOntUBb93wxdAgP6Ov9ct937
vVjK1OiH6N8tjPPFFzHpSBZGFtjfz9l8eg1NFPv0uuDjJFTP9W6K2Cy4oH6Sj/+w
5hejMp9wYZh8GJep+6hYeEO1OJwHeyQh9n5ydRgYWgASEO2OmxQ1n2fIY57h/2XP
Kx23rOqnKUPe8onxdJ804p1fpaqG6YmsO8mF32llAwqSoN1DDBKMN48=
=oSMQ
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zUpKb25hcyBXaXRzY2hlbCAoQXJjaCBMaW51eCBNYXN0ZXIgS2V5KSA8ZGlhYm9u
YXNAbWFzdGVyLWtleS5hcmNobGludXgub3JnPg==
=sazj
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
wsGOBBMBCgA4FiEEdb2A5Ng0UJ9udAJXsbc7AsxSoCoFAmK9jVACGwMFCwkIBwMF
FQoJCAsFFgIDAQACHgECF4AACgkQsbc7AsxSoCoyww//VWxXK+HXFHH5UPYB3qW9
YtJ1OH4iEx7b6LHMeZWZyKEcAKuWSgcG7NyQ2OFyCYGeaFOCZJPoNm/nk62CuJWC
0JlwHtwQSYK0X0vz2wMd6dEkjSSMVuqN2h3ZY/Rlk0tbuC5k10kJIlkzaD71grhN
jOwxfF3AxLXDtAbRU99RrWNbXLERy+hyNA3hbf4lYD6qFVST+a9v9rwe3O3ihjYH
wHp75Csa8k+siMDIcEe87Xd+cHNB4Pl6jVk3Tu1P/aXpS17TWImjlVI7y1Fgptyk
l/UH+7uECM3QWLZQUvn5GGZ1jgT7VX1J8FoKxe9W7p5j/QPNBQSFPbQnH+jkpQPu
fv6Q9zW8bqfIJLVrg+P6aM6/iapFY1k0Eny7+5lj6dUGPa3UCr0P3vgQ9U3IxTVr
LV4clLBIV7XnBFkTiP+detJf0BOhZ5Wa0eqG06hfXbDgfXQMEuuSB3avuPAe4i67
USkhuuZioG9wT7xAPQxdPnAT4e16xeU6GCpkQtA6oxVdtDhzamJHGQrnmbp1eKN9
bYwNcBUshvRzJc6WLz+boWUf50whd92osa0E4VGjEgj9YZsB0DpA1bNcme2ur3KC
IJhGjDrEkPwg5095rvL9a3KvigLWhpiH7OLUjIjwSg0uYhP6mFYGXiB58Y0hptZX
hN/Q7VYEOhhnTH8W/eOFe8w=
=CD2O
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFzBBABCAAdFiEE/i5iSSAcpUpPuQ0GboDKFEaHnQQFAmK9pU0ACgkQboDKFEaH
nQS75g/+MY+PT4aWPhEw8RUncS0eo6PE9qZddfeQr6RW1UicCLu6Fy4Qt+wAeEeU
jHia5tIEOlqAwKp5C1HxZJfPp2Vi/jz4UsiP1PGPSraF8c/ubyhrUEJ1V/jCyhC+
BGlJtQb2XrSjXykrn7XG1plQ8h/AzBeCpkBWv6AFzrq7jbNcjSdFTBPhncnFAPrD
+P+9RtSpgTjSeFitNGHV/XAev439xDRNMpdkWGCi7n05zcMn144gyBGf5fzyJja2
ecxx4Ow8jQTyH6apusXCg3DxZ6t4rgkdCZdVB5wpmiNjvlzmMz9cHMzgebjXkeNk
sz5uI8Ot9EyZZej/Kc0CZPcvfC4JmSAcS9MEM9LxSqI/s8HByI8cuSIcYSl8z4Uh
o9RdKlz5y+KOoxBiGXMAsm6gErunM15XAWuAvobSOSs6mVR9NbwjOZAHe4tCskk/
BF9KkgkbwQOjXB/znAqSF931+NN8M1eQsg6Xt9eipW2kjfGVMVssBC+Aiqqu/y+m
ew7Y03RX9Z5C/e6WUmyKtLLi69KoCcnb7bEXrA1AgTRahMbsszKjfJp55c6WsL6q
ahWnWHvGX0IyhHdeyEDfmyuBweQKWj9fGKrgWcr5+IMoyEd4T0z6/duMXhksrZtz
zc1K5o+YnCu4Pnj7VV9pe5JLEfoSdMoZvREItX0LpVMNWw917hY=
=zRyg
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xjMEYIbyfBYJKwYBBAHaRw8BAQdAKUjXOZrxHBk02BfOPEWxiC7f72U7kgcM53qD
HjByTKM=
=k9W5
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zjgEYIbyfBIKKwYBBAGXVQEFAQEHQBJEt+Mdk2tS4NwoZyh+UzPaeSiibiL66nhg
8jIFkmoPAwEIBw==
=NJaP
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
wngEGBYIACAWIQQqwKQu+wtcvHoEAu1NyVtte+mJLgUCYIbyfAIbDAAKCRBNyVtt
e+mJLltPAPkBzdqu53yb7GXZNJ+59FcsoIs7S6AxOq9wtqXWzKF7FwEAgqNVzCFl
0FEdGoTVO1YEja65P4bWrHtGaYbfH3VqTwE=
=GFfq
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zUREYXZpZCBSdW5nZSAoQXJjaCBMaW51eCBNYXN0ZXIgS2V5KSA8ZHZ6cnZAbWFz
dGVyLWtleS5hcmNobGludXgub3JnPg==
=PoKK
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,8 @@
-----BEGIN PGP SIGNATURE-----
wpAEExYIADgWIQQqwKQu+wtcvHoEAu1NyVtte+mJLgUCYIbyfAIbAwULCQgHAgYV
CgkICwIEFgIDAQIeAQIXgAAKCRBNyVtte+mJLgn2AP0bMDMeYY7eetBppv3sXu1Z
pajvEMhYaHYx87VfjgtolwD/YYeJ5TyArGmCwmIFLxfNmjRiy9lVxbVl7Gvpn5Y0
8g4=
=8R0g
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsFNBFZzRL4BEADXp8jSCXi7+5Assc/xrRBByUa0fowxlXyBqxjD5aMTWAhnIpC3
epqrFxONC6iAmuNN9o3zUklbFFPT+K2NllynJF+POOmDzoB3KWd2hDnAEzxB5l/w
jXplPI1bkreQWKLRY7fwI44uGKzBqxWWMeo9P3w4LI0qSOgryYM5bBQngcj0oRHv
J4nbxEgf4xHkG7rmDycTJjdysRPkLGNlCV94Y/bLJJoiy41hpPYB2UYR+xO+3bDu
f9MaKeMnj0teRVflOODN+MoU9VOi9R+3ulTKc4kSNglRGflJKEaN81rZzbByIx8k
BTnxurdMa/l3iubAqOA7nsfK9wF5bEluYVf/6IXL7ZnN7K89KPYdxTItwzxw4csL
R1CYVSeZZe37fxkKwb6mFLUgGuXwY3/bOCj20kb77mKF+yEFp7D73PZ5n1y+jwhk
LE6S53vKNBTSDemTzdTfxbDMCAN9iuA26IGErKRWryG7HSKp750yBB18s0mf/qDR
euv5rC9ow4I9RQb0BeTWc3GbZ/YKer63FwP6ACEFotbYN5KeChyFXGpsNWbc38bB
Z/9NrthHzV9iFK6kNvtAw3t8WNFBPX2k7EY6EXeRLS1a/FoDKgKXqIO2JEpuT9wy
IBfIG6NrOBNEbaITCf6RkjDpNGZ8d3seEXhrdGY7w2ycolLrOaXoqXJJMQARAQAB
=GZ7r
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP ARMORED FILE-----
zsFNBFZzRL4BEADO2n5Ifu3n0gKiTCLet3Zwh5e+wWRLRjaEhzspJxeV5h0EY0TG
07G7dQAUyDHXcgc2HfMueMeg8vDn+76+xSp9SV69oMtfKEqr+pwUp4O+kOrhmS6U
jV2TdwVIFQNLnRjHklGU1JX2MNnts7RuU8Rh/2IT5pf+64x62rSt4RmGTio5gxMy
R2c1/6tWbdORKfMQzRkPB249GV7StI6r4plMJteQPaIGTxFQIJL3Bzn5YXZDNJ6a
1y2KxUwIVRca9w7C78nf3jd73vi0+qfR7Z3jMMlDExPRXuFeFaRcTKzxea0RHMiC
6sZ+N5XbAMdVfVjU0fw1mJpUj9ZcZFvwrqWEt+GA16DvYriYUd+83l42IPJIixjC
4AlOym2MaXYt9rf1Sw6MzCn1blWr4pl4HUmM+kTpuTnDcZ+00P9SLTgdTsAIknvK
lodB+giDII0ISf1rw7S8gJfF4UmPrdAWJC15b81OJMBLrqO9Hp+yHCXCC/AGvpAW
uVuVI4ljHE9yCrtfY4f1FEEpQMTWpLVfVzh1WVx2JawIqYy4JhoQgmxEycTZQpA1
2hGRVg/kneUMnTUr1k2nWHEwgDPoZfNGy2syAnVUgXYm/svyiwu7fK7qDo6O1xyA
2HbSNA0DmBv0yDMS9/j+9nirNmPaIyKEHcD6MUtBlzy7TUGe6kKBJL+aSQARAQAB
=f32B
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsF2BBgBCAAJBQJWc0S+AhsMACEJEKiOI+N3UU4AFiEEkf/gcA6AYZzrcyNcqI4j
43dRTgBhpA//aydMQghaY1mrlyv0V9YPnWOTnUfbfkkj9C4XrCm/sT0/Ux+QsJzH
5w9FgmGchbsLqBg9z4FOF7JV5+ar4n/vu5aqmnu0tGflbo3cF1Jhvsnf12LlZ/rn
sd7j/qYhsixfWzCYG+N7L5LvaAEbAgPVhfXa4hiuomibf7UQlP4T13NxRMp9r+OC
QH9ksT5r4KZkmg6hUpEc59islrGzkJauG1TtbFjvxrSFjakesU76WtWPNORBFvJA
DdJagtfwpcWLgELQsLuzJhUiwnx49qdi0zoSH0Jcw4CNsQaSQCItvK3JB6GSzvtn
AqraruYPcxtRvkF1RMPVirSP3EIUYCFNr3QUz92XwrsZqvCi2TtRHrrBKhCBqVxZ
FOHSeRmey9Gq9GqvljpOWpJUMR0ZOCRBRxlmv05nCvxDMVnhL5c5z4sny/mgc8su
uV9r1Jp2BjfksQLcfnAdw4UN7AEfIF2rWR8H+GPGJNOV1j02oa7wkvGBxaBHiBj5
rwyJWABXTK/w7/TXfaH65GrJHj7RJ54P7WfrbQFzR27THfqJ6y3JT43Vgkw/dALM
rmof6u2Cy/E/73byHmT2ROHkXzS+LNC3PNWX6FioVLM6unzzvDIlxOXIutl4yd7P
O7dyMTNAN5h0KA1ru2hC3rO3gdAiW8UnUiTI/uFf0/CPW18ZCAduNXI=
=2vpX
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zUhGbG9yaWFuIFByaXR6IChBcmNoIExpbnV4IE1hc3RlciBLZXkpIDxmbG9yaWFu
QG1hc3Rlci1rZXkuYXJjaGxpbnV4Lm9yZz4=
=QnIl
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
wsGOBBMBCAAhBQJWc0S+AhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAACEJEKiO
I+N3UU4AFiEEkf/gcA6AYZzrcyNcqI4j43dRTgB5/g/7BIniUUejI1x4WRuh2Zhc
r6FM2g2sdEusKZ8qFKq6vB9bvs8e5Eu62diF9BpkOlMtNqH50fN782lQZWOtaXHx
4jsXDARDb4Ej5d+LxPayCxILRRreX7rnDETd1mUK9+/9cXWNssR0cRXlju7Vk6RB
KtzMkON/sj/Vc69DOpuupHoQ4iYmXrTUZrKsgqb41VJWkFX1e2q3czDrQHp0EP+8
IzsVkmYIKhpBNye8kEFTfEDWTtrjo1lIRZIeyHhCROe3EwhJKXedh0u3i8UakZeB
ECcO0sWKX7pJ7tt6yOjzjnuvyWYoCN/gH9mo6Wh0oCKaZV3nIvWF7tqenyQ5LfPQ
TVPcGOR/MMQRXMqX62WNcyKT2nMEiiVwLHpyPeg1RazZOPoFcFqD0XEWZ6LPE8vl
DLC7sf33RoEFocAR85CgNayrZx2aDVG+zkx1HlHxLXZq61OO8vDmtzNLYHWU93h+
dMQcO3CRH9z8+/UJRoSnSXFPAQ6sGdEhFUiLDXMAu0xR6RRIfcfLBu8mCfoCppqO
K+Lzi7KsJjN0cGOFXVX8sHN7o1gtlKgjbwnbTRJ+snwDjzJP3SB6iyVHbK9tiCqh
MN9Whed+lLCmIxZhXvC7fjuJ9Ag6J5bftDgIjWdZ0p6I/9JAXdh1+2M757enW4Yw
LI2RDxi8g02UhfI4ap71ZVg=
=o4xV
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsFcBBABCgAGBQJWc0WJAAoJEG0WVcFM4cE+hl8P/RNHPNayDMalKWiyTK+IMNY5
E+rELX/RIBOji0MCxCOXZtrZNeHGbPi5MwfKMiA9D585h4pEnpB21zucT5HbWZH9
mIzzh8I8dZa6Oqw6RGY3b6RJ6NTjgRTGtXi8WzPiK4k4BSDL7i3ZxkeBHbSRWe/I
glwduLpgia6dBnS8gcY49mLe+Nn+ejg/oYKtPZwDrzXaZVcgPT1aWAOg+zDlkqCV
q0X9D9xEGPe9eHJmdslIto79mB0Tl9PVRlHV45rUTi5ZXrvM2MIizn/43cN6teVO
KfUOKpvtxeTPD2FpOeJJ7UHX9MIQaoo+wD0+ZMW6FXdTbJBt6grYbuycEihkfmd5
BLRL2hmuY2lkEglP5zbBm8CtLTXii0FwOfK1L0SdIbG51tZz/Xab6aON3kb1vNg7
aJJ5GRU4yRLBhivOAFsmFbPqnWqoL2dVJUYiq+Mvv6GLC7bxlHn8YCNPQR/ltqza
qYDt15V6sLp66KNYM9G1VtZRzEfKyo4HuLpOpC8ec0VSXG8OEmzvdxIAIiSeVE5S
C4jERlpiWAv4MlRbi+uayJxkTyt+IuBwDeROEdINQ9MF1O79DpNMOLqjjd87GPGX
C0sN9b9SOKxoobZmC4FjesD9EENS9ehkayPvv77U4OrbMVuxK/bdY06PitkQxvUy
ccNMoLBMauKMOlDnToGH
=3hVx
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsFNBGII9zYBEAC/K9muBha0vDwBcd1MQEq2P8QB24mdeyd1VtG3zEJsc8DuCdF4
8wqYXsHK/UOWuD2IIevKjMO4DaOv202gFsOn8AxJwn3kvaPdflo66RPoraKZQmNL
ABE4/0X6uXWvuOtj4XQ5m/3BvNTstnLet3DAlHnCYmvIDKlD4bdS5hTZkXQi5zoi
d70OsXuFZ6NMMCOMI/Un3zdko4apLhI6ySGp6y1aETUCD1uI8SMgf4Wl2TQx/ZmG
xRG1aeq3H5YbRd3WFlBsi8kVYn6Qg3rxbesjNSAu1IadaqbjkA68p/ikF4mciodA
hD5fJ0bxU4Df2K8+WFh5n5IQZjVmKQ8ogVWsgV8jTjnKZMjD/GGyFZziR081MgHg
4FC24X2do0NLxrL07r9wUUaNkb9SDWs3tlAmeA7qNftXbDt0A1jE01uT66tdCsUi
sRj2CCmc+89zepL+TDNExLyPV/1ajDn95k66fe+ApoxvHnseyh1rWyHIUShtFfnq
hyewRoIeJbo7PIseeE7jNBQpUj2wgCM/G1tUM2Rn/OpmlEC0b65PvM715OPYwF7g
0UntpY3Fr9elDT+y9NhsvDw+SXdOX8RiI5Y/WX8zVyUi2ryGENmSJ5uTeRfQ4y+M
IrZGuvVwHU2hbN8ktQ0TwY6Fc5vbDX34slt/OnDDpqrXwnRsDdSZGTw88QARAQAB
=KXko
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsF2BCABCAAgFiEEFZ86Q66yRsV0bAM4FLxPMLO5LroFAmII94MCHQAACgkQFLxP
MLO5LroF+RAAvKqMPIf/YxCX7q/XYG5ZHce39rI6x1q0A9P9JvQmx7WL288GXNk7
PN4rDfAbdaJYwx7rDvxtOqDoHR7HtVrRytHbo2pgJM17XwHsboNtO76Rjg/1U7vJ
dZZ3MnGpPD7kFx7Fd4pFz+onrcX26QAeUA6s7Y9GcTvn8Dd+b4tmzkZTh/iRLxY4
8wSJGlYK2KvIXYUQ1bY12UF8p8pdW4U3/5K5z5MExfXUIcl73LoIiTVhVu2QOTsQ
zlUWAhZLDV9GiWXXbfBXtzeoaeHLCS5f+JwyDky+7YifUd/xJmqNJSyJcRHEUWwj
43/uDWEGz0UB6bkVlf9MSnllLQeZbgLtQ9HRQxTQ6JXXRB3JCIs1m/5KYYTphnBw
dLwuJIjkO1WazFQqJMPBqvNn68i5oxy5qfyM15EdE0d9A/aeCLgoC6lx2CdFSPmc
FBs4OV4NM7Y1u7sou+R4F18lskIqK9hWBa57Lu6nZ12UHydO0aIchrBy0WRVB575
Ua4fCQb4uEQx8azsjqaIpei4K6h9ZnahWDl64ptcChmSA3c4gga7/MPniQKJo9cQ
H+WyDNZum0QNqSAwRoAF04Yr10PWYfu8ER3g8hJAsc/BRTLGZg1TeVdlTJej6uUz
nAEoHffIEE+SAKrtVcqA0AfZRphVGADTTb6228cDxKG3gnYiNJC0ypU=
=VSWs
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP ARMORED FILE-----
zsFNBGII9zYBEAC2ght75wz6qVSF73Xhlgqoq5YZ3FFPQtdD/VqcgjzSTpIxLEwa
3NPHFswUX9pd5dhlYuio3s3jLgB+Ngt5DQX6H07Xi/lB/6NrVbZDskFH2Nupd8CT
q456eO3REas2ja0wmCoZsXlnmzCQAFAqkSjfCcw4xMnMM6Ny9v+Ic1750+hsd7VO
r4b7AlfwqhU7pP3kKCfXQm4HMpC5eymU6ewPC7RG5OqWXRA/VZ/pA2ZcxTd8iXC1
nJjsKnyNvI+4A2ZnO35mH817ejVFqs9r/D51pGucv0/TihRJ1y0a04PQ0ar4caJm
jC1t5KpyneOEO9Astz7w/IUfySdJxWfMq1LaXGMpDyKO581npIsEw28ScoVoxuU2
nmHi5F4/bcZQisvbRWY7EVH6slOTBVQatAEovFyLDYnEdSVZvbXMUcV6ngDgPou3
QZiwUveBKUDRONbBLsUf0WHpYvZTO3aitfRCoLp486Y3Kd9z/3rxFIjY41TodiQb
amLV8kJ//RWJWEjNpSO/jrMdkIC7BYm30ohzEwhvTROKMRUVd9yYiw0VejNGaWaC
PauuQUpjVavxabIeMnV/mr9i7/93bijjl2MobXn4DHlEewupy7B8zLRrGE/4pWtg
oubtBUnnV+IFm1mLR3lCjHAdT7n0xm8Nbqc0J+z25YXnxcUiK8vN69v/eQARAQAB
=A9ac
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
wsF2BBgBCAAgFiEEFZ86Q66yRsV0bAM4FLxPMLO5LroFAmII9zYCGwwACgkQFLxP
MLO5Lrqpyg/9EvSOpSb13cuxwgQSzzyeFH9SXQx6GJaxOohJRMyb1bzteOGVD6fD
6Ulp4ORnKoZNpBpH0jwzfe2+hRTn1RSPUHliwGbjNWumHTqO2dGsq2PauhVpqXWE
JrL8svn+lNX7hp4McmsZDjFicjLAoQUjawBvajXuwITVWQ7Mh+aIigNfWI2DaVJc
gQoRfb8lUHuJ5bAlyMbE0XM+vilRTlmEWMIGY7EonFFW3fZ4YZ68WE271zEhIE5j
UwQTZFEiuMr6+6+q+1uwOmTYHeiR+kl0cr7JvLLwuUrBdmLGoMakXwLBbxi1zQxd
C97sEeJ5k8GITllVz+fZm7tf8kb4zq+pQtLiGlfrA5FyyKrUi/lkZVEm3vaEJgyZ
828kckdpdb41Y9fc0TwOVWwg63BMuFuc4nYPZrT3H+0rqTtKzReUHXrH7v8HPk70
IrVgus6v3Q4+EP4hZjKu42h1BAOtjZblwkzRmyWs14ncWgXau+uhUFxtcHX2K6LT
vASxL8leuVQOP3OCF3fMJgZmnHN+brdvOyiQuFD3xB/EOk71/AkFfbk7DsQWDjdy
Cn5bIKKFNmcUQW4kiTK9ovngKmsbX2zfou0FybueBzPG4JK2YkVb9KeUKyKt2oPz
QSK/kW5mICluDPs/Cei4LTdfTitnkmagBcOr9YSk9Iw2VERNSX5ebwA=
=gblO
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zVFHaWFuY2FybG8gUmF6em9saW5pIChBcmNoIExpbnV4IE1hc3RlciBLZXkpIDxn
cmF6em9saW5pQG1hc3Rlci1rZXkuYXJjaGxpbnV4Lm9yZz4=
=7XQm
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
wsGOBBMBCAA4FiEEFZ86Q66yRsV0bAM4FLxPMLO5LroFAmII9zYCGwMFCwkIBwIG
FQoJCAsCBBYCAwECHgECF4AACgkQFLxPMLO5Lrr5Pg/+MB5jVHU0zXP0aAWrTMh2
kARHTUof4Ey18GMVtF1SGja7bxDUYTnJ6x8DxUYYKZiuuG9OFDHWloBOhBbcB+5m
7Czm/P7sCmoagGcbmtbsZKTLR+5ABhup2YNSVXKnbTapPPEXn/x3VxoGzq6bhCTm
YQsGnViKzMQVYouN2+qMAR20Uh1IWw8TzcRznB4vc6JXoAAeX+Lmc/pBKp5WL44B
iHFccQf9WsZnHfSFZI7OhPQi24/vMDdB2XQOi+8JiAmhpkKc22NC8/P5VFfxvY1U
S2K7kgUukqP+XmtNLdGxhLFvuDxVvWvrx0Lf/o288wkyeYyI4VBlYp7ZqgELGWw/
eideB2Fd+KzY0CNL5Giae/9Tn+Rkp54aYcdFEvyvIN985ZP+57UAbedyg9VYaMOQ
JWOmTplexX4AOk02EQDdu7NDfPl9zh1yu07OUhtVLfVB3y/vQxU6FUXOw2YXpI0l
rWDeWsX5cHCqkVQex8XrRvAoR3pS+kzuOSdTrHhA6B/CyrcwyNngcQbczErlcwwW
tv+p0VnTcWNEg6oKJelKfhZPQp2eazg5LFcJWXZMD1DQqobDrl2oeVhoTYVCBtLd
eof0tjsEZliDiQ1Kt6UUq7NlpMksB3SJvsdrpWQ8mxZ5OakQfBrioyecNqmsKW+o
fGy4u1tlZXUe7H7oWRC5JT0=
=syN+
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,13 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsDNBE7PgFcBDACaaq6It/HbI8oF/U/tL6e8DRV9d4Up3ZLi/U530iKz7+hvebd8
tHwVzdIxroa+7nvL0d6/zsSIMlmHpq77b3phSnRR3Iq8ffKIcDBukS2MRajEdscx
YtezNejBOHivNX3lc6OAAi3et0i29wzzsKCWXIU/cVX0LwYt5RMUnIAvn97p9ghQ
t9hkXLC0fuUkAS239yZ2OyngUdyaoDKn5e4pXC2utYcv1c12SnX5wgkVMX8G2vWa
9brGotTSn321YxDn2Vy6vMEo2nadqWsl88e9HK+6dFl5FI1L+kVIeTycsjbQgw/w
keJMtEm6XnaUmjCYILi1DlBPGD677bMJeYwHeFB1qX6ni/LmI59ampJXtEITf/fI
ii2LZsLrPV6MHtYmTmZwBmz7lvFhx8pZhqvDzMcoHtmsUICUdjmjlM+31Ec2uc42
Ykxvjq2vAojloBuy4x55gRY2Lnd1GBb8nQvrtzkazyyvfZTf/ncOxYyXqm6mazyX
WcFK7tTwbTvqoR0AEQEAAQ==
=sGnw
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsEMBCABAgAfBQJOz4XAGB0AU29tZXRoaW5nIGJhZCBoYXBwZW5lZAAhCRB+/VZ9
TH6ohxYhBETUoDOsFAFDknOX1H79Vn1MfqiHqIUL/14cgNrAzGhsEsfp6RdBdz76
f1O6voLlj4/ex0Z13YFWU3PLqAcFBrXbESu77mt5zhKzMi819Xl3K5Q+6cSpNdxk
i69YXxCSV0WHnpyEniRlyXGt3Yf2X1P5lVqOr4ZNdhk4aVykSVTGQxZ7gkGfHEXa
Mg0yUyy/sb3YFCRdpRB0Dqf7lUpMOeo2937PwHQdUgFjteKEpPVNmhcuJjWCQg9a
/yw6Be0cMa9u6ZGODwPGdnqZWmOVcQ7fEe8Y714YM5TK0Xe4kAHBuau7xAp7nnB4
MQzTGhohj3CHJRTGka22RYdqjO8WZ8FpE/zS7pO+t+TtXKVslpDF43cCe6B3cVcQ
mFzLWFd2kSbSb89ZyxdGPMAtHdBWHVtHw/i/cS9hSAox4GpSJdlwyPWRfwd9lQfg
Yw18Amk3P6h01xHy9jgALuF6/4AFUiVn6HUGmLQSSqm4oklWyEdVBvDIiF87pWcc
RR4oKni9Eu56msB2GGpk9eWK3MFFB4QDJ2UofMbK4g==
=yfIg
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,7 @@
-----BEGIN PGP ARMORED FILE-----
zo0ETs+AVwEEANqD48GrHuy5gywO3riuxdNJiZ9rgWy7OzQrQWINmqZ+7U4/3UWt
fUT3k6lNMv5qDjakYxkBVHjEmKMHzdn8GyMCwhHTHv+ak4+g3ruMnBTyhsJSPGgg
5oI8rOU1jX+2juIcok1DfWzIEnNOZe2DTN4xdnwKBrF4c4DEVhX46VMbABEBAAE=
=Ht8q
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsD2BBgBAgAJBQJOz4BXAhsMACEJEH79Vn1MfqiHFiEERNSgM6wUAUOSc5fUfv1W
fUx+qIfxZAv+IvJDzsv3G41zRN0Y5uZrcY+j0fwrzWeeiuBs+BPhMPBWBTjvO6o7
KdZEQGv+OSHA3WBVFZxf3KYV15suP8HE7X47MmygbfTM5yR337GUlOTBqiEA3JdS
Q8u8LgX+dxrKCsSAIDgHusejCNS/lZXr1KV9Qo7So9csK0X/QyD50ImHYuQE1Kxd
OYBj3BPq/fQBL+XIIbRPltridbtiUnyjiHZa7UwLlYOrnUi5ThGyxHlkEgN4a2JX
O94Xgm8nblmJrYmO1nBE2Ae+qbV0aOJB9zbAYqscrkPwhCxOSBuVpbP2RuNbmqAE
vvK/RRFte65lbo9sF4yxlD+lP2qy4RKeHFLFHGAWsNYI4Bt/RMl6DwAnfn9MI/k/
SaMNvV1pXXEhuhzLCX2fkjQLWmo3ygitdVN9HGt/1JO/qKDuEnnteQY4Sul4fAqu
QZgkbIX+34X0nU0llY5Q/zBqr7CMxigM2/Gi8/c3cnFe2Fnz+QCYL6YiU4U09wxu
34X+H3ZN64he
=EETw
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsD2BCgBAgAJBQJOz4vYAh0DACEJEH79Vn1MfqiHFiEERNSgM6wUAUOSc5fUfv1W
fUx+qIc1mAv+MDJCVlEpEA3aUMmrqh9GP+18qga8u2lMzXf/qa2L4esP19Wo4WK1
tBoO55/U9a1al5A6ESDEf61bKqYUwPUK/vhbdCWGRowHSKEkBNrhZTTyNmfE62hL
DtJSKorRezGoU7AA7EymVgv3wONHAzJQ0eBQ8Gcb0nO7ysxuIjPvHPzfFuXSXCxx
GLe4eLCJ+48DLZHqYJ4YmRm8Ymb0dA+0L0vvONwDYcmVoeo6JoF6Q9ynOqlkDRpc
+Ca5E/Ip+wW265FjiMU6ihYDsimUPwiWmu4uVfh8QxWjrxSZMotUEBPPzHJrLsGc
1+eMqfllRBhqU1hwz0yGmYvb5kA8idcSwdJdRVQLbo1U41aeFWwAYFluCnIuHR4Z
zc+BAFh7bQFLzCHgg2wPHh45E+vWED/CjkFCLGbGhHHba+J0lEotOVBg8LaL9XzQ
pcuAgj4Q5WS3EPYkRQfrdJp3zMQ+oFBzBnUs17dfwzFApzD1wlnzZ5DaAZwVDGO/
1jm7/ibh01m6
=JuyG
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,13 @@
-----BEGIN PGP ARMORED FILE-----
zsDNBE7PgFcBDACiwS2DoAqzPxS4oLagLM500eTRJ9rMwtk13NlK0u2OwiMo9ATa
BLw8u4gk7UghSO6YwIqqq+nvG9DQqIxm//w6LRyGdSSnE3yOeACl69EWoyHlakpd
VD4kIHwa2FBCQmzo2rbPGL3FLntlQh1nFchXe2xh16uLjqFYnc+oZ9K6xuwgTaQC
6wmR/FQM61sTP8EZAYkChY3lY48zQyeP00XOicitselloOYc6UycLYQ8PC6NbJRd
Xnif3Ep6Dp6cM9sxFaIlRt1tVrCT+3yoYQbx2L6OiTa0q95C6C1sqUizD5NwpZbA
A8FMFBbCroK8b3GJlCUQaRq0+w/wtsEzLWun6/yoSOAS3u6Fv9N7POb4PZsBy15d
Am3vSh+UDIEtwFp//aRdxFEcHpCBf+IwWry6S9bm1eZqRDf7bcjDotU7bHkRY91A
4WO+dW+TlTsvvxpngvg6HVj/5IfpBWeCe3/Z4RYVHp41Y7LJ0ToXPcxmxjVDIvB4
WEnpVtIL5cR8WkkAEQEAAQ==
=A+Kc
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsD2BBgBAgAJBQJOz4BXAhsgACEJEH79Vn1MfqiHFiEERNSgM6wUAUOSc5fUfv1W
fUx+qIdG8wv9FOuiidwWAMHnXf9zxNIRBKkOvoIpRcyFvhIghDPMx1tIixnZIqmY
Wp48nYa02gAfBRcg12oWS5CplH600XcXah7llnpWqMkk6NnKpb1/E1Slh7pHVrp9
YI8hIpzH+KcYDW5zBWzt/tXVKYOf+EZUiusZGjIgkmHt5Duh4T7G0aq0nmDWUL/2
kjDZAGkqyZCTKcrD6um72DCfhpd2pnYHokIguLHH8BXb8pP1220CA98rkp4yRJWB
ru8nPGEWrdHvcAodQmWdFMy6AZgxk33ks1M1Am83sJ1S08v1KmpZ4K6z9JDW4VpQ
rmShZVx5raec+PFW9KF+UeQpgycr6NU9FnF6t3Mlj1MglSyRzYbWhQAynvdd6FVD
BLJfsqfld+Z88XPcWEs28LQ3F8k525WdhxPirROvh+rD+WGA3tDqeyyFOvglWLfr
TQORU3xVgyK4g00251BZ8VNBKuJWiKlZA1tW8ssAUeyjNIdSvXFqyx6vhReedmGV
+OwYpPdUfD9B
=Ija4
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsD2BCgBAgAJBQJOz4uDAh0DACEJEH79Vn1MfqiHFiEERNSgM6wUAUOSc5fUfv1W
fUx+qIee9wv+NKc5EW2Ow1jFLbKBWIQtwoxH6T5WLstkgyuKsro/O9X4IHn12EUO
RAo7IBUnJreIaeGdLIK2UBUp/7oY/BesJ5G1uMaVi7XQOo/i1wsItuJ8vtAS3qQc
qmDVqNCBX1yNm9/LVpi0iC6UwKsjSjMPrOBgAAVuqVspyAod2AniMbDxtAEvE7Af
zt7BOEg2tobdQ/xQNxoeM9bVNkMVApM2OoHppph7qHfX4Y4cgmDVjE2QCuqt8KCg
x0I+6kkN2ByjvEAG00dRDvaIDnLXH+r+ZUidPPDo+sjZfV0GpvFuksONCv4MySv5
6Gu+I8XwBOmMU1cUuievfYOz4ZJIOQyEFpXpgdijpFHqmdhnL4l3qMgIRwAfnPOt
e/c2TtsVGvr4JAzr77INHDA3ZvQd4A9hwmYECMPZpSgQkHcCDR06ICZmhv5CLegU
AuS8ymtvCdsYnZ8JKzbZrr8InpiX9ZE5+tYEYl+c2mw1t1oXHc8j2OPUDi53X4+4
AH3DDEaCSAo6
=dgZD
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zUNJb251dCBCaXJ1IChBcmNoIExpbnV4IE1hc3RlciBLZXkpIDxpb251dEBtYXN0
ZXIta2V5LmFyY2hsaW51eC5vcmc+
=b375
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsEPBBMBAgAiBQJOz4BXAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAhCRB+
/VZ9TH6ohxYhBETUoDOsFAFDknOX1H79Vn1MfqiHSewL/jhL7JjxzO8P3t79nIu3
6EjcS7oBkcP6FG6KuxVg+LbZNqy+aaip45nxzIJdE4VIaRs3wmNh2B3aVG4C1P1g
AmqZU19g2E0Eof1ejln2woVIrfUrxJii8AE+ZbEiJrNYmsPMyLgaLlZnaTDPwKZN
mTWIBzBM6Hb2yB6ue2ammWRr5jeydWFmc8gGsBWapHph4ON0bA98v/QjMFS6/SSZ
/0o0i6tjSkDbHfQOedvS2Ul4ysff+q6NKm8KnAyIKtPPx/fz11e1Sr0YcFWWtJQ6
1o6YicMK2BvqhNT4HgYil5EUHpQ9SyohPa4NM3JKIxwwEk/WddBAZlRRRPUXjWmj
kn8Aul+WFDwcSDqr8Tamx6nyHyq/H5kuPa+0LI0jnG7kl6tYz+tGgcnsSEp4o+Fr
aevzotqzc4gDkEi56SU3IzRHDnerUK7Z8kZDsv2oXdaa81zXlju1425F77Ndjw5F
c/xhMNhYnlE037T6V9/smAYKDLnwxwlpTSlk0PkORKrrTg==
=M+iN
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,10 @@
-----BEGIN PGP SIGNATURE-----
wsBcBBABAgAGBQJOz4krAAoJEOjxi6FhUTe8g6oIAKAqSZljdzhyjwU03WTLYNsY
2/x9nrxKSXjActMXQFn8S44WfPQd1ED2OwZQXflGAE9o6NoH9GYVlL2S1w/V5cV6
aK5/9CTW/wNeOSmfyo1hDPh5AM/p4Mq6APm39o9fp9h0wQhSvUM0ec+TCabaE955
UgjGSen0zEmACluWtEkeUJkxUnZuFLLlcPMDR3UpuvEE6XaG52voNib0nTeVICup
X3Se7Wv8AhECTjuh6McfJ+TNpzaohWegJnBaE7pF1J8omHAn5mey1/0t0f8dewkt
gVuu39XDf35zYAyWYd5580S4Lb6R1zsmi2pKeExgdaqkjMUtDc21+cywjY6/pAk=
=HipH
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,13 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsDNBE7Gu3MBDACGmD2FPejnpbdjOxuEDKYmIC1y2SkD1W97KwS9tOSceGy1gni9
uObZsiiiUqzu9p8uOpX0kxdykgk9cliH6QxFQr5e1WOSG6MkkDqYLAjP5kVFnT4T
E6lDklYQ6YW7j3lJVwFDNXV6yobt6ApMHaDGqERpcgs6prKb9wZZ/EdyqBblYTyJ
t0s3RpE5AolNHSboaJZ5YRf5s/T0mteJ37pAIljgXhfeiqxAl1Yp+RkRglaiHLhZ
pcJW2HRACmYv9SYSuLV0JcCAG4qeUyiHSoz93gAaf6VCv5JsYVg2Mwt5rGqE7CXg
XDHV4Klq/KrmaHmp81qpB1ngK1g6cCz34mdnLBMbyt5G2EdrIOiv/bBo5LsXtEhz
C6I/LZ75sXV3xC60+6ZWKkeZFtyXq0g9X5Gxc+wf79K2EVkAC1UwEylK/n8rfP01
vk6fkNJsSb42BEchyECo5iMY2BMGXQ6mlJqpEx3bxE4W1Di01XaT29nB/8hP3xbk
kJ1bu4hMa35sQQEAEQEAAQ==
=APKS
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsD2BCABCAAgFiEEDotkQHn1md/B3cOXM0iIL2rGpMIFAlu51IECHQAACgkQM0iI
L2rGpMJhNwv+J4IuJoIDrIm+/bqCUfWIZmmGlx/qbyyplYacv87HJZYr+zNl1J8X
g7eBxlbK6etCJJ7JDvxa/u3OW6a2IqF1ylKOowLNckfisILcjw2QXzPepoCL831V
ad4xwlpHR9AbfIaJ2ETuB1qoHwK6w1hZD5nIm5ERlCaefIAsdfJGHTUBL1Bg6qCb
D3fdv1FMzqUH5HXeRQDqIF+RsNt9T2v/k9PFHT0MjVgImmD7P+n/A7ntyAfEy2Ni
GuBW5yC+9XMKRXunaYrbnUaOFynsiwXFKAA6HM1lInALc1ZXpbQ4DZKBze/zGq63
00Y8x+nGKyDoiSwFXk2FOyAEovzMObc2N2dR3GcnYHRUxjuD4JYCjb0G3/QyuKG+
keuqC2RVoO1wdEuZ3olnA2TZWZUCaeW79KfXQABetQOuUp6KpfJndYnqX1MAJ+wU
RMHUfSo4cLdw53vaNnO9CLR3GvXbgSe7sJhsHCnMhW3rKbT9bNEAWmlMhJG9zqma
V76VC9F1XV74
=3+4A
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,7 @@
-----BEGIN PGP ARMORED FILE-----
zo0ETsa7cwEEAMN8B9QnakGqqVVfAgqyf1c1MdnGOgWvhZxiqn2cqpmMuD6xkuqf
E9/WXjrkI+5DyZvICpeFsmaU013+OdlgchXvWQqV5027ffdc46QBp2FwX9bu7T2R
hOjGmxOuGav4PPD4poXDilnXDAQvgMQQW3cqxI3ZAsuu76kWRAa6pID1ABEBAAE=
=bBwM
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsD2BBgBAgAJBQJOxrtzAhsMACEJEDNIiC9qxqTCFiEEDotkQHn1md/B3cOXM0iI
L2rGpMI6Pgv8DgfPSgjeGxsuKFruXjNpEriy2gg0p/OdXYNtrR7GqE4gkPP15i4Z
ajqrQH9JheKOJVx6VoSFYPo0+0ExlJBVnE1M/8H60NC0Ak7cGJLVk2OfwXTA0f8J
Npr5A2vGPPnGQfIFDWhfXTafLYzhIlolZdJELGFes823WvShipJ3xDojXf8/1SbO
5tAasclIY53T0bI659w/ZhNR4gEQhudYh2NZzJiQk9+g3wZC8PLVwqZUngnTXrXN
EE1PysbwynntGXAnR2LubZtQTzSf5yjMnsNxNIC+UJZ5oMoNCOIuQNzhznjagitb
a6/XRicD5sPQdhhgCh/2RsyX7VWlwlDlzYqx/4sZlWk/jYKbzqzyHVU20v2JHHTR
rG5GQstwu/zTnPepMtkXga6D0wsOQzQJtJKspW5wi4CMy9MdGPkl3zbLrV/YcBKo
qK+NyVw0Pi80TV2mouxcx4D08doedoqJjUavCz/bfPDIsZc+tfyRuiAoVuZrf+37
gWqIeGqG1Dqi
=hOE5
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,13 @@
-----BEGIN PGP ARMORED FILE-----
zsDNBE7Gu3MBDACzCsBFirCLNrNYMjDviJSFqRAj21GbMkKXtaFjB1HarCgNE4Ef
gF/pcLWTyAj2/DngPl/WWXLWihzSxCgLdZxOltU6Gge5Os4pWcrWrO6ojtGoLbJV
HQ2IyjYlJStCz84L2jg8FLS7o//+KCvdhetzcqXOLGBPYucXH+BWJ38AA4dJxyyb
3htVgs7rV7xDR6vw2SFXNEQA2nVOTGOLV+0FBVcBMR4nz20zp8ttj6wzFS2fRbJr
EX3iH9cEhFAT7oF0sfAgZD+9v0XVFUCbh0TbkAathdT2bTLCLx2ER2TfAYbU1dWh
u4PXtpkhdHlE14e9R5aw7EJWUVVH8KzVKBU+e4D3iP6nDykKqB9PD52r4recYQb7
3LSukhOXzz6OXp7rhF+KF54/7XZjW8ruqouoAND4Tc7GWjazlk5Q2yesfUPUNbp8
ljq3sWkPYWWIL+3vQo7WLmKzWKVuVsXuXEA65+ts2caj3anCHGGH+WuvqNL2HyP+
KYDGzTDOT2tHTysAEQEAAQ==
=x9HG
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsD2BBgBAgAJBQJOxrtzAhsgACEJEDNIiC9qxqTCFiEEDotkQHn1md/B3cOXM0iI
L2rGpMLipwv/VknAoRjwb1lkk6Nw/eC+Y2Uav+VeKkweeJVwxphJ4Lbfrhvaq9lW
pR329sPXZt7r1X3F+cLUR43NjprW2nWna0vmZfrUIdwzA5FTco5Vx4NPQFgX+R0b
ByOX3ySXmXtysCc5j1S7C89g5JYUVXD1aPB9FL1z6hRarh83Ip7351ZbOhrBSWID
MRi3qY3EL9N2jxApA0iHJ3yv3BBa8KPrFnV9Xidz5gS/qIVa5aLJy2QR8HusOe+n
a2oUjBg+41XgSyzFOyEgfiYljMtHqFYy5HW3LcHfi3kUIY/Se7Sl1p+XsCF+PLiD
eYBcvTEhcCt6U+JQVqfuzGSxSoMWtJR2o3DbGh5V0BdmO4xmUcRyiQWIhT1e3NeL
gcBqpOIBpro0zsbXCeQHQCOWesy/nDU4NSaB7OhzUCyOyLGCzsYyFhrO+p59z3JP
F6rX5UMqIxwLFmaHsFQBIRBXHL80ZLoYBX5+b6+gwJTM6uSJbGvwBgfAJ1TLtDX/
mqmhMLsUnqoo
=jZ2m
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,6 @@
-----BEGIN PGP ARMORED FILE-----
zUhQaWVycmUgU2NobWl0eiAoQXJjaCBMaW51eCBNYXN0ZXIgS2V5KSA8cGllcnJl
QG1hc3Rlci1rZXkuYXJjaGxpbnV4Lm9yZz4=
=JzoL
-----END PGP ARMORED FILE-----

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
wsEOBBMBCgA4FiEEDotkQHn1md/B3cOXM0iIL2rGpMIFAl+4/2YCGwMFCwkIBwIG
FQoJCAsCBBYCAwECHgECF4AACgkQM0iIL2rGpMKlpAv/YEQVL6y0VbU4d7gxFdk+
FgXU/6Q8qtpX+QhTJzAhrY1G8jHHFIzoo2/yP+Jpc4DLvcSEr5ebjCsEzSPZ3hsB
UYDYJHoQ5J4YqOtUupDIaveaseXJWcvUs4DQLOPF8npChdYFdOuM25gEoXGB6t/P
lJFt8b98FjxhFWc/HUTOEN5yv5lPPYOeTgb06nluSRRFDfTgEkCuh113GMa5ubH5
a5zYz/CUe2+aJdH6JewSvQybP0HEOWhmrf3bEhPwqYrftRJj9ZvRrzIJTs9XjdDn
FA/49aP/sqVquxIhLg6+Hw17hmemBe8ohOBDmpxlcyF95eGOIRPqFnaa0dokzR/X
7Ou72P6yFhjB8My401+m6C2CTIKo3PDE0C+NA4mZNzJznCquQVRVVVxHKKKrbHon
Kwx2WeeSQqXNj7WMh5jzQu7eM9Qq1scRq84GlqTyXReqxH+gSLrAymg4S/ALRaNM
LCuxaRUOmvcjmk7Pr+xLTHAEQx9xdTnzlbIoNFm0V8q2
=x+1i
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,10 @@
-----BEGIN PGP SIGNATURE-----
wsBcBBABAgAGBQJOxsCnAAoJEH8tQ0uXQeis/4sIAKIciIP4gdFdIGvWXl7yaBXt
hJSn0JLWUZL5Fkdq5ggQ/t/ghxWsyVfG6zqD3YR9eBAkSHPOWVYXUIwfwn34ivay
uCnPI3z1Fn2P4ox9Whfesfp0Xi3yHhchqr3ZyytVbB1y/P7l1kO2vG8r6rJjA1S9
ZbPRIsQXgt/ISwZI0TXqQ/uXqZ4V6IZtdYKAlhyz3dLer1UBR0SQoJxJnKWWvb8b
Sf/Us6HkoYCZxQ6Hs3li2GYfNlNETjV0JVEu2fDf66A8/bDYgmAezErkF0jbgT95
Sv9S0CwZ+2ULiXDzmUW27OoDdcOLVYb+UxMD/PlqhKVS7NLMu/g+eSCqo/qqdFc=
=2CXJ
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,13 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsDNBE7Hp9UBDACNaL5VM5JsuA6EGjfJmagZO3pSlNWEtx0NmGQYPYOBwywXZFwq
0zBdpNFxwJOyxn2xdgQxtX8L1APxT7T/WGTPPDMHx7/N1xaWJqRxTQYV50MTmJaR
+pgSR59zR1exRpEClcLOx72LpGKMYpWQ7JRJn0/9+JtSpwHlsfYrdi+VMgfU62d9
H00sSCkmJsl/3uvLvcbDyqtFu9bpMA7T2g+Ws1xaocD3fwRPogpM2Q2czYr514O6
wZp//wScBHRsgFRjQsYm02ZdbEQCmmK80/WhFA3CoovNG0+zXqu92tW7fj+pvTp3
4GX61MPUj7INKzxfSCo6ygtyUrozr5IuYlMc1misT26kfQUuKRgg7M3eF3pKcaVC
DNX14h7Y+tcX4yUBTsi5lvE88xZUTLp0MSmNMy22wX+OrCbb/YnzW4XnFWYgS/i8
hfaeKsxuIi3g7kkUmvydTtVpgCYWfZZWeHt9cG+FoZjjoH7aePMaL7QCYi4zc2t2
p5BbNZI/zmd//dcAEQEAAQ==
=gwSG
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,15 @@
-----BEGIN PGP SIGNATURE-----
wsE8BCABAgBPBQJOyNzpSB0ATWFzdGVyIEtleSByZXZva2VkIGJ5IFJldm9jYXRp
b24gQ2VydGlmaWNhdGUgaG9sZGVyIFRvYmlhcyBQb3dhbG93c2tpLgAhCRBRhCUt
gksY6BYhBGhBSLsltJ6YaklExVGEJS2CSxjomF4L/1DeNcOQ/TxYMJ2CTusmtq4N
YufuNn2uRvbdV6Rpug00BqDdOzYhani6/2kWyYJeduM1Q64SnUUt3Djwsh4T5Xp7
HgIgYUGTSIU9VVenD0HqmaHKCLi4lHzh5Ozxzs461m8iWdJSJFhb0bUN3NSt8egU
SHdILp91YVK5OVgWmqKgSzwx4sY+ym52gzhrTsqtyEztnjI36kUbbJJLMqdiulTP
dGPISZ+GJURYccvWuounmd8Sp80/C3RJL1Vl2y/6jXq9D1vLsaiAbjRiTkC74fEa
MSttr4AEjrsnByo3s6oJuDF0Q8M9+stPpvhWRekAg3hmdCNoup3RXf/vWJe67F2z
9YURsIK/fnGvQnc6s9hpJIG7EwbInbP1Ju9r6ILR1SC4ohZptpyuQ8geVxxd1VQm
5xaTsMvKJEtRV/zujuDl9NuQ4Jp2o8+lZpWaK214mnKZFDSx6/nxlLTS1TducAFV
RtSmfga/UGBzHgMJadFHyUl8LmuVbuxc8JPYyp5BBg==
=MPMf
-----END PGP SIGNATURE-----

Some files were not shown because too many files have changed in this diff Show More