Add pleroma identity proof

This commit is contained in:
Yarmo Mackenbach 2020-07-07 08:14:57 +02:00
parent e6a62d453d
commit 70486f418c
5 changed files with 52 additions and 5 deletions

View file

@ -6,7 +6,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Added
- Added discourse identity proof
- Discourse identity proof
- Pleroma identity proof
## [0.1.0] - 2020-07-05
### Added

View file

@ -514,7 +514,7 @@ async function verifyProof(url, fingerprint) {
output.display = `${match[1]}@${match[2]}`;
}
// Catchall
// Mastodon
// Fediverse
try {
response = await fetch(url, {
headers: {
@ -530,14 +530,26 @@ async function verifyProof(url, fingerprint) {
match = url.match(/https:\/\/(.*)\/@(.*)/);
json.attachment.forEach((item, i) => {
if (item.value.toUpperCase() === fingerprint.toUpperCase()) {
output.type = "mastodon";
output.display = `@${match[2]}@${[match[1]]}`;
output.type = "fediverse";
output.display = `@${json.preferredUsername}@${[match[1]]}`;
output.proofUrlFetch = json.url;
output.isVerified = true;
}
});
}
return output;
if (!output.type && 'summary' in json) {
match = url.match(/https:\/\/(.*)\/users\/(.*)/);
reVerify = new RegExp(`[Verifying my OpenPGP key: openpgp4fpr:${fingerprint}]`, 'i');
if (reVerify.test(json.summary)) {
output.type = "fediverse";
output.display = `@${json.preferredUsername}@${[match[1]]}`;
output.proofUrlFetch = json.url;
output.isVerified = true;
}
}
if (output.type) {
return output;
}
} catch (e) {
console.warn(e);
}
@ -568,6 +580,8 @@ async function verifyProof(url, fingerprint) {
} catch (e) {
console.warn(e);
}
// Return output without confirmed proof
return output;
}

View file

@ -19,6 +19,7 @@
<h3>Adding proofs</h3>
<a href="/guides/dns">Adding a DNS proof</a><br>
<a href="/guides/mastodon">Adding a Mastodon proof</a><br>
<a href="/guides/pleroma">Adding a Pleroma proof</a><br>
<a href="/guides/twitter">Adding a Twitter proof</a><br>
<a href="/guides/lobsters">Adding a Lobste.rs proof</a><br>
<a href="/guides/hackernews">Adding a Hackernews proof</a><br>

View file

@ -0,0 +1,30 @@
<p>Let's add a decentralized Pleroma proof to your OpenPGP keys.</p>
<h3>Update the Pleroma account</h3>
<p>Log in to your Pleroma instance and add the following lines to your <strong>Bio</strong> (make sure to replace FINGERPRINT):</p>
<code>This is an OpenPGP proof that connects my OpenPGP key to this Pleroma account.
For details check out https://keyoxide.org/guides/openpgp-proofs
<br><br>[Verifying my OpenPGP key: openpgp4fpr:FINGERPRINT]
</code>
<h3>Update the PGP key</h3>
<p>First, edit the key (make sure to replace FINGERPRINT):</p>
<code>gpg --edit-key FINGERPRINT</code>
<p>Add a new notation:</p>
<code>notation</code>
<p>Enter the notation (make sure to update the link):</p>
<code>proof@metacode.biz=https://INSTANCE.ORG/users/@USERNAME</code>
<p>Please note that the <strong>/users/</strong> part of the URL is mandatory for the proof to work.</p>
<p>Save the key:</p>
<code>save</code>
<p>Upload the key to WKD or <a href="https://keys.openpgp.org">keys.openpgp.org</a> (make sure to replace FINGERPRINT):</p>
<code>gpg --send-keys FINGERPRINT</code>
<p>And you're done! Reload your profile page, it should now show a verified Fediverse account (Pleroma is part of the <a href="#https://en.wikipedia.org/wiki/Fediverse">Fediverse</a>).</p>

View file

@ -0,0 +1 @@
Adding a pleroma proof