I try to sign everything I can where possible. All commits, tags, and artifacts I create are signed with one of the following keys. Starting in 2023, I have begun signing commits with SSH keys (unless GPG is required) and container images with Cosign.
Fingerprint: RARfC3uj74NPJSeUnEiZpby/w7VWaA6qd/9 Xuv24UQ
Public Key: id_ed25519.pub
Contents
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN0WJ0nsg/8xLA41jISzl3d4VKHv3V13y8AY1iUntymD
Fingerprint: ACADEFE9681D6184A3863DF13453B816CEFDAD6F
Public Key: gpg.asc
Contents
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFfZ1ocBEAC0UtF8KdNfnS42tydxPAMxUr3lZbXWkfu9XOe2Z0KC/Qxk0oAB
S3/n8JJ5zEZOhnpYDIo5Gc5KyQht950ROTPpuzW16vK0bQfUDOGGLYCBjq3dJL6
L0eVSo5dmjvF6sW04aeMe/DLMeoJmzKnVKDXCo5raWhNOy16esPadaotYfKjqTkV
DXbA8E5dw7UhlOBqVJbKn8W2fzewAM457xIRnOPuresNNQzA1d4KMMNkAfKROM1g
jVfSSynwbmHO5QgTGGJvKRjPjmTmQl7HQCQaUNOcuwZmOUiDctDu0HT4LYNT7FZ
kEY2ts4dSvrzMgT84IhnIPbZxpmtJPYINpbZUcwjiitrQKFvVWwjZDsgmrFuStsa
RAS fJh7vnVe0PHl5t/W3ZJoXsvw6MkmFXjzhgpnAlkKkU6JU3wzy8Bmc/ESk8W1
Q Gdx1SW a9EgrJmB0U8ubymyczLfiXM2W7oVrv6ktA4DbRmh5xpP6brNK57Z6Bq
zGBJzhiU4oGukk2H6spQ6807fyOndSVbVf XHwJooszpGwGqxE2AAYyvnMV7DCt7
kjHuBTGEaFYAM6oAL6DKz2qmiD55bC5v9yl06tLCyrST3osOQOf4DCL4z Uj3uhz
gHUPOHy8oo7VQLXHkmhMetqCtrRoLtuTIHBf3SdljDxyr4 ey6S6OHP gwARAQAB
tCVLeWxlIENvbGFudG9uaW8gPGt5bGUxMDQ2OEBnbWFpbC5jb20 iQJOBBMBCAA4
AhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAFiEErK3v6WgdYYSjWU3xNFO4Fs79
rW8FAl4Ui5UACgkQNFO4Fs79rW99lg/ P2ZITLgBcJkdEUI5ChoQEIV7HIBqh0ZG
LuNszibs/MC1RtKSsAHGziMdl vLXAWa6sIh607uXl94Hbcmnpwvrr4sHktqRKfi
ZmlIawZhUUtYKXivYULSXFXaDTWtpB0Dw8sV1TAWA1ahIrAVarj9SzC6buMA3 9d
mq06wdVNDDP9kyAglyE3CfOU TgE9hLXPrLb5KjfkFuVsBXEV1/9W7xB7nByvruB
KSFKvYfnOXVz3OKcTq8wf9CkZ46iuq5wqeUlOFblcfyE999gmZGtrmrIbWrKfqWR
4DFM4OKGiTuempI87WnM1Pos2ePD1Q Dpp0TDpXiNFNfgRjm/ZU 0Xao/6FCknAA
dw3ag4gxhqLHIElX094AbMS14509dZIVogspNa5D8K4Czz8DYORyAOoUiYqKTKds
74WqeRn RlNOHGyeeXptVnO8KG1/htuj2XmwtStNx3vdJKi11zJixFpHYaZ6zJ1f
iXnfw4lqkVWsRfkA1nWQkbYydln T HaYDzoKztH19byhQgj8o5Ei xjuBYoodJp
KwS/ZCODHEwF89PSrstFUHskVVznFYxdjSFBgm5tuUF9tyiv3wmCkb3sv IvdM9U
icFW58FCPgjEcuwHumP4eyhnv87lXUH06DVDNXqApjkfpp2oHl/eHb0sC3riquqD
BHWUFeQKOEyJAjcEEwEIACEFAlfZ1ocCGwMFCwkIBwIGFQgJCgsCBBYCAwECHgEC
F4AACgkQNFO4Fs79rW/dSg//Zc1ZjBA3VkRBmnd3SwfHblfNVjNMpzZNOzP3NU/C
UBMkkvafDhLQ0P4gcKuMFyO3NgReNQchjoK91vUGr6NPFuDawcm5coZ xjaYnk i
WiVoAztIsgx11yW42AL7Q6BZX6o6YMN4nN4PlzLN5sgkthyqeb 04dX/Tt5OGGuQ
wNg3haST4L7MXdoGiyUCW41S 5MjGp/pae8ASwP/7UpLCaMaXJ8TO r4p WKUsbB
sTWXy/tTbQDe/vM8ULZ TSs6Ln7PcRervVTZTe4UEwZ3FECCUS5EhjUoCMJVlDUR
dPR3NeWp9KnDMAaSRgVkm4YSgs2uC7qQFhkcbY1/2cROsj5J7T4ChePKxruK33OR
6JTFpjxqrlPs9bOwRwoXY5V/Vi659InYa8YG5SkwPZ8caDm1UPYuynCAAllwrTlp
dzSy/nKxrG1yajC0P1/7Rv8euV2sHNtNktObrmyae3P7DMgXphsoDnJKZleV/MQd
eiVWmatn/cFXijULAb4f/vhQ6zLM6XGmuhF8Vslsc2zrwAY5jYj3MTLct3PqUi A
B0HnuR5nR2eESUMfF4eYgyVaUJnLJc/3eC5uwneP4qvhTxkDpWdoIgDNU8ZHylLm
EBNJm0rE6 otp6NL00BVfOCvjzZAKTgzobmazM5Ea7ZUxL5N2g5fmDW4DjwnZNGf
kB JAk4EEwEIADgCGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AWIQSsre/paB1h
hKNZTfE0U7gWzv2tbwUCWw1kRgAKCRA0U7gWzv2tb20TEACa wJgosJT0tFxHNDl
bV6f DWnBmoaMvjAaMAgifrli4y40vMftriARPyzUo6zS6i5fH9tRacSKXSouznI
s7nlXgMRy4YBr/bpxs18miUpYk7 whUhOElY9JS1fEm0tNjZDtRhYrkIl0KK9O0f
ZL3mmD098SfO9k2YrluxaEh4mP/1rXcptw 96ZRqo81BnGrD82jS6l3rrrByL6Lq
Aznl4IJpjc0D34tyJkqb8qh8z IyZtTSUhb/ZrZxodpk5ScK5oe AJpD9kafrU3x
Cx0KTCCERfwg7W AMPYtD1ex4CkdPkD5dEBHBzcrai EqDscDJgxp4ZMAyXfWYKo
9KXAfzBBLDFxPv03or/32vgVLKE3JN q WSnuyqjkCPdiXPdZpv35FbabmLFm7Lv
sNsB5iwIvgxhoTGGTdc wh81tVicfVwzTbe8i6LNhxhgfen4X8VZXxgHeusvYvSF
Qpy9cIQiAppupE8vEOCxq6IfCZuOQSXQOwROMfxFF4OWbLaQ2qqv6Kh6gZjeq57M
D0G8tMHGczInyaiPp1W9NXBF48TiRtMyGnB9vxF0BZA03VCXZ4VU/Q0Dcu24K 9S
lyeVgfeFttd0lgJXKVWXuxW/P/ZdZhkXsiT9d/Cg6S8Cw7hea2Bm0Xz pLS8b4co
8XhOXuFQqKXGzcI1dOkBaTn4uokCUQQTAQgAOwIbAwULCQgHAgYVCAkKCwIEFgID
AQIeAQIXgBYhBKyt7 loHWGEo1lN8TRTuBbO/a1vBQJeFIt AhkBAAoJEDRTuBbO
/a1vUR8P/0nxQ03V349yLud4cBaFEA6AwGdBuFSOnmn5C/xl9GufffCGik qyZQw
58CAKQUWc6QHtlZTbjL6w2RmcTb4u5Gz2nsuTr1prYa QBKmjSh5zhr6gzrZlroF
/ubrpytJxHL/zXMgsnw3Rdwgq3Ivo0yvpuronaWaQvVUZ8lohyCMgUFrJaoN7njt
Y3nxmHkBo0Gualtc6YB/Rfe acbxPQf9g6faEHjBX58wLsCW1094Pr5KkImc18ol
wYVUuH4wHSMilgXaur0Fn p2qLNcfo36nPM02IogKFizMqnaluW9Bha6y2UuvHJY
LGSm6joncj/RyGdLhiiL 6e65L4UtS4UsJL3dfvbAVFg7boS7Mh6puocvtV2L32u
REKwuxwOQXDe NpKU5qlPabZUKm/kax/fm4ia2Bm9U2tL 9hgNZaks4FFswtEzzI
P0GVI31CUpUaZ2WcfUEQgB43/OxW1jkr6/uK84R/jTHo1X2L4tBm3m3/Juh52KAc
43UkTZrxN6Pw0QOfQ0sCglY8de646LUte27Jl64tVWGR N2dC5 V/JPfHa7I/JQe
XzPAX HPRRISFnK9pw7tTFS346AnGFX40w0NY PRa7Q5S4bDUYFMl67poLjwUaxs
a pO/Es8kCts82nyFDPFBSxk W2FXfC5psw0uo66jMPhRagjt/4qtBpLeWxlIENv
bGFudG9uaW8gPGtAeWxlLnNoPokCUQQTAQgAOwIbAwULCQgHAgYVCgkICwIEFgID
AQIeAQIXgBYhBKyt7 loHWGEo1lN8TRTuBbO/a1vBQJeFIuVAhkBAAoJEDRTuBbO
/a1voTIP/ArdJzts8ngfIzIRqQme8rf7t5Mm15d0wk0Z2tD1Q2uCWI4XwYvY10X1
U5wWBEhgsiMS0MH7AbTg8E/CvPExhMZxzbCKA6bfmMMR7KUV4nrOS/WvdwrSewCM
qYLdYjGFrkbuhsHd2rflALy0jd3vAmzzAvvvXk5tP5dRN tv0DIRY776NUizsFgg
7yQkrBk4DsXu 9Q8EupzAO18ORteOv/G3pSoDeZ0kvC8O0ABSN6n4RULeSYASS6P
Gykyv0yJfRbZLVAmOzGg6FMTc1Lyf5P0Qzi /tMgXox1WaZfliu0n7QTovWU3ViG
3WKFTwI1ETB4HtQa 7FyzTeIC JGo2MWaMzVD6NAT03jc5h0a0OHOLgZstfK8jfK
jteEgxyHVLFHwvkroURxBiln13raiSNSZ2vhMEXB/18QwQlwEDLTysyBXD5tF1U9
xbdHY9qLetQhwUhYVR4VYmIPRI6YNzcH8jsOXmxorYOvwD9xhrIFRtTz0SJNfReW
5H21pSZkWvQTpKyWTtc1L5HTIXQalyl9tt55Ocm4PVe5wRjJHCyiiV7UUl6lu92B
nR6jmJKs8S0Jm/HwprI8 6TzyxU66rpnlQYpE5/bKVp VdsdDhC8Oa3qnmJJVpGz
qpgHd1bn1OrxVtZworptelplacgWc7BmCNSJ8uWF4EV6HlDyTr5NiQJRBBMBCAA7
AhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAFiEErK3v6WgdYYSjWU3xNFO4Fs79
rW8FAlsNZEcCGQEACgkQNFO4Fs79rW9smg//UznUwGuepqkwkFlObrD4ruaQoDU7
GxrIszpyM9CQSauU3GeC0eYgaUwBi/a1G3sZJWGZZB0aMS4RA4 TJX1My57LvK5H
LFYlrqwpO1S9QJnv6mU3P1kudxDEp5E5HWpx7tP0XcpFbDPG3WZJcAECMaRAD4Zz
udJl6FXjPlV QeZZAZZC3YSPcGIhiytIqY9VC/OfBmtxYsawcL0jNq3x5uf6mKTB
gb997NC1smBDIASNK3OMtXsOpUDOldyGMpG2R 8MwK9w52Obrc1fWLvjQoq6XBqE
e5IyJgdLZhhYdW0AlJ16Shy6VjsRznX7rkhjpVYno6N4dACWUFElmjWCC60tQI3G
C/N1prb63cdSpN4YDwJ6TszKwLfGkFarwAMSgkJmERuTLl1vMLHne3ZIqiYR/Uyh
vChh/UKkjQx1r R6xmR69XWX pJi5dFwx/ZtVXb8EDZY93jAPvUHszKsm h7SeOR
IGwJ0gM3eF35oT4ouPqP8kupypax5vop93l7LWHwBFK3cBtB4pAsgYmSEh2x8In/
6ymv03idGsfqR8BJcxAmHbiCgSQ6BokxjJ6uh3Gm6TbEiUk7/WMezYvnK wNdKdQ
Tv8UznDTM5UqZVfr BVwGGPDAATVJZWMp5We7ulcfvOWRXtvnAJ/CcZjVfFF3JJt
wpZibzZUq05XQhGJAk4EEwEIADgWIQSsre/paB1hhKNZTfE0U7gWzv2tbwUCXhSL
fQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRA0U7gWzv2tb7/jD/0XLlWi
YvDvOD3robrzTpKuc yImXYcENeDhbAKgcSI5mIiM9VJy/AcgTjqfgFPfNVD5QZ
Ui8fMjIAYrGdQMt/A 8yRiFhOXldTU3cfAHexD47PP2zk1zG/O26nC 6bXSzr9E
TXNtmsp VjNhpp9SlmUWDhyqim0QkX b4ErzxLOsWvoWSsHiKqhUxWgW7ttb0S8F
FGVrK/ljnxm003jJT6j/brehRBlFRqmCYhZOUxNSuRZ1nO/ssl9irFYSOIibdjy3
adTY/fIMQ/WKu 3yyIypUPOH7CjfZW8WnlwGhSgAIF0jPH50Vg/yWCkldP6a34tj
HQz2bOkXCYxscwO2Nxb8nD23CHon/4ctLswTr5Fb4rWhFlVpiBXriqM/F3lEUKK
3DTzchPmaryS0o4pZQDsX/eNUmN/7IxumIbs632afYuY2CjuXVFZd6RzEOVevUJK
E7Ux0fapmwVnDfM5Oz9hFxg8o/ftjThAk98W 2sTdA5zpnKMSCblYm6mbRxfC0wu
2M1BMcQF0ynbNN860m/qywjZjEswO3xAuJQGH7RsbMdtwwIy0baFk29DMBUd7LVM
JDVBcJh6b365gfDoP5j5xp6jcr/D5I1edvn4cpnUpIGu6GvtCFDusVu1BvtBFrOe
B0g81u0fDlej3oB3BJlARDB eWPDxrzbiWIbm7kCDQRX2daHARAA4/D47hmOjxhL
EMSIwttiquprezK1VZSNQVRhRa2kYeLpaVhPIsoCbOTBujLtUg/CaaYRVhDqEY7c
clUfdZtBx3n1HGZb Diw9HLbw3dfRCc3fj 4nBp1nBEIkqPA08 ht72jAeWd5HSM
V03sO9na3TID4bu8AoUvPgsaMZecuYcVs4LI yrkjKMgBKj2eNMyZw64ICjAyxEq
PUZwH0pqPkJl1Iw MU2iaLy/k6yGNHEPsPVTT/KfAmDGjsKWtiOA5MPjOrcL4sf2
FIeCuMpdvAxtVnv3k biDzNkmInSRUdQwCc4qZRUIDS6btvJRuowk8ldOj6Uqd3s
o1pcNKu8BoKWfD/cEubryPcj8hT6lM/2I72UBmHF2jzZgiVYaFPxkIHgLBaDBooA
mb vK9H/n2pl5jESX5ES3lxRASk5t38mGD1wBXtj3PurUILWtApp/S8rHbnUJwvt
xrgr3yGC8 ONDpcN7QYGLcWqZte2jYDYqc w8tycSR3jlNiPw6DZ0lZdOlh3yhSe
Gs7xb8FxlAVJ5i9n9jg8UFCw5Zt8HVCk7LAaBsJCXFxA27wE8eoV73jS45MHRza
VNwSrXAuCvTSzWgfz7PIKcFvrGsb4G7K75AFSRPiQLBO3wawvJaBID5Ww8IoHvjd
h/3kPBtTL4nPvzcgZIjbdLtEKnvSJ/MAEQEAAYkCHwQYAQgACQUCV9nWhwIbDAAK
CRA0U7gWzv2tb5cwD/9ZSTj/8KdMrw3C8rBU9RrZWNC7WbajX3RRiARFMFunl Pi
WZXwU4JQESrFuUJnxrcrDG0gGfMTct87Vz5DzZjJ1JD0dpvMddExFnhERyqRty I
00gi0SrkxENt96APAV4rfGdvDJfr92aShdipHhYbmDxmz/1ctgBQlLj/DH5wuBwH
uIM1M6rGT0aWVHipSqhpW1M4uriqgxcONpkCXbX/uYZkNtAsS22cb7boRotWM8We
2nCI gXdWfUETglrlK7Y2Am48Mf7DRRePexH5rsCTpaDp1sksf ReCBFhwmTYLa
t//p6m2 JgSHmP15kjgA3H Lacesy1zkrKGQamV7Hq0ehel2zeInU6nXydYYbhQF
AmW6KxhNwxnRxSbShz1FNijcafzAIarNi85EUlq7LCCmSfQmUJk pAKbjVZHZq7S
i4rIYv7KltTnFfOALWKPG9c6VXtA7dcaX1Vre2Z5vqnDCLFULzfyRGQTGWVD73XG
v3SslV/NRoJqeEM7GBMUCSvRwCV2s5ezwkKX2sIw HA YeTRE6geF4Gw28Sp1oq7
Hid0gT1jq7amoSirDMfdPOxMtuxBfiSYLM1GxELyd42 19hwhdRnzdhEMuJSltHy
uEUM5JODuTwqqvvhoJTmNsK3ceiabfUUa7C4tNvlLskgV6RKmqZkKL4rarL2Wg==
=6/93
-----END PGP PUBLIC KEY BLOCK-----
When supported, I will use keyless signatures instead of my personal key, which will be documented in each repository.
Fingerprint: e49971685e8578886a46da7153682cf99376ab940bcd8dfd57a1ef0494e9bf9e
Public Key: cosign.pub
Contents
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELVJT2x9igd5vTfwoUWlD777vxjs4
OYZA7438XH2LD9aBT5IxNMmpD7eUwUdXwwtLPGrXl/O1p8uPhoigx/SVtw==
-----END PUBLIC KEY-----