forked from Mirrors/keyoxide-web
Merge branch 'dev' into redesign
This commit is contained in:
commit
64180b2355
8 changed files with 194 additions and 19 deletions
|
@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [2.5.0] - 2021-03-09
|
||||||
|
### Added
|
||||||
|
- IRC service provider
|
||||||
|
- Matrix service provider
|
||||||
|
### Fixed
|
||||||
|
- Gracefully handle fetching non-existing guides
|
||||||
|
|
||||||
## [2.4.2] - 2021-03-02
|
## [2.4.2] - 2021-03-02
|
||||||
### Fixed
|
### Fixed
|
||||||
- Twitter claim verification
|
- Twitter claim verification
|
||||||
|
|
67
content/guides/irc.md
Normal file
67
content/guides/irc.md
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
# Adding an IRC proof
|
||||||
|
|
||||||
|
Let's add a decentralized IRC proof to your OpenPGP keys.
|
||||||
|
|
||||||
|
[[toc]]
|
||||||
|
|
||||||
|
### Add a property to your IRC taxonomy
|
||||||
|
|
||||||
|
After logging in into the IRC server with your registered nickname, send the
|
||||||
|
following message (make sure to replace FINGERPRINT):
|
||||||
|
|
||||||
|
```
|
||||||
|
/msg NickServ SET PROPERTY KEY openpgp4fpr:FINGERPRINT
|
||||||
|
```
|
||||||
|
|
||||||
|
To check whether successful, send (make sure to replace NICK):
|
||||||
|
|
||||||
|
```
|
||||||
|
/msg NickServ TAXONOMY NICK
|
||||||
|
```
|
||||||
|
|
||||||
|
To add more fingerprints, send:
|
||||||
|
|
||||||
|
```
|
||||||
|
/msg NickServ SET PROPERTY KEY2 openpgp4fpr:FINGERPRINT
|
||||||
|
```
|
||||||
|
|
||||||
|
### Update the PGP key
|
||||||
|
|
||||||
|
First, edit the key (make sure to replace FINGERPRINT):
|
||||||
|
|
||||||
|
```
|
||||||
|
gpg --edit-key FINGERPRINT
|
||||||
|
```
|
||||||
|
|
||||||
|
Add a new notation:
|
||||||
|
|
||||||
|
```
|
||||||
|
notation
|
||||||
|
```
|
||||||
|
|
||||||
|
Enter the notation (make sure to replace IRC_SERVER and NICK):
|
||||||
|
|
||||||
|
```
|
||||||
|
proof@metacode.biz=irc://IRC_SERVER/NICK
|
||||||
|
```
|
||||||
|
|
||||||
|
So, for user `foo` on the freenode server, this would be:
|
||||||
|
|
||||||
|
```
|
||||||
|
proof@metacode.biz=irc://chat.freenode.net/foo
|
||||||
|
```
|
||||||
|
|
||||||
|
Save the key:
|
||||||
|
|
||||||
|
```
|
||||||
|
save
|
||||||
|
```
|
||||||
|
|
||||||
|
Upload the key to WKD or use the following command to upload the key to
|
||||||
|
[keys.openpgp.org](https://keys.openpgp.org) (make sure to replace FINGERPRINT):
|
||||||
|
|
||||||
|
```
|
||||||
|
gpg --keyserver hkps://keys.openpgp.org --send-keys FINGERPRINT
|
||||||
|
```
|
||||||
|
|
||||||
|
And you're done! Reload your profile page, it should now show an IRC account.
|
69
content/guides/matrix.md
Normal file
69
content/guides/matrix.md
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
# Adding a Matrix proof
|
||||||
|
|
||||||
|
Let's add a decentralized Matrix proof to your OpenPGP keys.
|
||||||
|
|
||||||
|
[[toc]]
|
||||||
|
|
||||||
|
### Sending a proof message
|
||||||
|
|
||||||
|
After logging in into Matrix, join the
|
||||||
|
[#doipver:matrix.org](https://matrix.to/#/#doipver:matrix.org) room and send the
|
||||||
|
following message (make sure to replace FINGERPRINT)
|
||||||
|
|
||||||
|
```
|
||||||
|
[Verifying my OpenPGP key: openpgp4fpr:FINGERPRINT]
|
||||||
|
```
|
||||||
|
|
||||||
|
Click on "View Source" for that message, you should now see the value for
|
||||||
|
`room_id` and `event_id`.
|
||||||
|
|
||||||
|
The value for `room_id` should be `!dBfQZxCoGVmSTujfiv:matrix.org`. The value
|
||||||
|
for `event_id` is unique to your message.
|
||||||
|
|
||||||
|
If your Matrix client does not support "View Source", choose "Share" or
|
||||||
|
"Permalink". The URL obtained should look like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://matrix.to/#/ROOM_ID/EVENT_ID?via=...
|
||||||
|
```
|
||||||
|
|
||||||
|
### Update the PGP key
|
||||||
|
|
||||||
|
First, edit the key (make sure to replace FINGERPRINT):
|
||||||
|
|
||||||
|
```
|
||||||
|
gpg --edit-key FINGERPRINT
|
||||||
|
```
|
||||||
|
|
||||||
|
Add a new notation:
|
||||||
|
|
||||||
|
```
|
||||||
|
notation
|
||||||
|
```
|
||||||
|
|
||||||
|
Enter the notation (make sure to replace USER_ID, ROOM_ID, EVENT_ID):
|
||||||
|
|
||||||
|
```
|
||||||
|
proof@metacode.biz=matrix:u/USER_ID?org.keyoxide.r=ROOM_ID&org.keyoxide.e=EVENT_ID
|
||||||
|
```
|
||||||
|
|
||||||
|
So, for user `@foo:matrix.org`, this would be:
|
||||||
|
|
||||||
|
```
|
||||||
|
proof@metacode.biz=matrix:u/@foo:matrix.org?org.keyoxide.r=!dBfQZxCoGVmSTujfiv:matrix.org&org.keyoxide.e=$3dVX1nv3lmwnKxc0mgto_Sf-REVr45Z6G7LWLWal10w
|
||||||
|
```
|
||||||
|
|
||||||
|
Save the key:
|
||||||
|
|
||||||
|
```
|
||||||
|
save
|
||||||
|
```
|
||||||
|
|
||||||
|
Upload the key to WKD or use the following command to upload the key to
|
||||||
|
[keys.openpgp.org](https://keys.openpgp.org) (make sure to replace FINGERPRINT):
|
||||||
|
|
||||||
|
```
|
||||||
|
gpg --keyserver hkps://keys.openpgp.org --send-keys FINGERPRINT
|
||||||
|
```
|
||||||
|
|
||||||
|
And you're done! Reload your profile page, it should now show a Matrix account.
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "keyoxide-web",
|
"name": "keyoxide-web",
|
||||||
"version": "2.4.2",
|
"version": "2.5.0",
|
||||||
"description": "A modern, secure and privacy-friendly platform to establish your decentralized online identity",
|
"description": "A modern, secure and privacy-friendly platform to establish your decentralized online identity",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bent": "^7.3.12",
|
"bent": "^7.3.12",
|
||||||
"doipjs": "^0.10.5",
|
"doipjs": "^0.11.2",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"express-validator": "^6.8.0",
|
"express-validator": "^6.8.0",
|
||||||
|
|
|
@ -81,18 +81,15 @@ router.get('/guides', (req, res) => {
|
||||||
|
|
||||||
router.get('/guides/:guideId', (req, res) => {
|
router.get('/guides/:guideId', (req, res) => {
|
||||||
let env = {};
|
let env = {};
|
||||||
let rawContent
|
fs.readFile(`./content/guides/${req.params.guideId}.md`, "utf8", (err, data) => {
|
||||||
try {
|
if (err) {
|
||||||
rawContent = fs.readFileSync(`./content/guides/${req.params.guideId}.md`, "utf8", (err, data) => {
|
res.render(`404`);
|
||||||
if (err) throw err;
|
return
|
||||||
return data;
|
}
|
||||||
});
|
|
||||||
} catch (error) {
|
const content = md.render(data, env);
|
||||||
res.render(`404`)
|
res.render(`long-form-content`, { title: `${env.title} - Keyoxide`, content: content });
|
||||||
return
|
});
|
||||||
}
|
|
||||||
const content = md.render(rawContent, env);
|
|
||||||
res.render(`long-form-content`, { title: `${env.title}`, content: content });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|
|
@ -1431,7 +1431,7 @@ if (elUtilProfileURL) {
|
||||||
|
|
||||||
function capitalizeLetteredServices(serviceName) {
|
function capitalizeLetteredServices(serviceName) {
|
||||||
const servName = serviceName.toLowerCase();
|
const servName = serviceName.toLowerCase();
|
||||||
if (servName === 'dns' || servName === 'xmpp') {
|
if (servName === 'dns' || servName === 'xmpp' || servName === 'irc') {
|
||||||
return servName.toUpperCase();
|
return servName.toUpperCase();
|
||||||
}
|
}
|
||||||
return serviceName;
|
return serviceName;
|
||||||
|
|
|
@ -40,8 +40,12 @@ block content
|
||||||
br
|
br
|
||||||
a(href='/guides/hackernews') Hackernews
|
a(href='/guides/hackernews') Hackernews
|
||||||
br
|
br
|
||||||
|
a(href='/guides/irc') IRC
|
||||||
|
br
|
||||||
a(href='/guides/lobsters') Lobste.rs
|
a(href='/guides/lobsters') Lobste.rs
|
||||||
br
|
br
|
||||||
|
a(href='/guides/matrix') Matrix
|
||||||
|
br
|
||||||
a(href='/guides/mastodon') Mastodon
|
a(href='/guides/mastodon') Mastodon
|
||||||
br
|
br
|
||||||
a(href='/guides/owncast') Owncast
|
a(href='/guides/owncast') Owncast
|
||||||
|
|
39
yarn.lock
39
yarn.lock
|
@ -780,6 +780,11 @@ decamelize@^1.2.0:
|
||||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||||
|
|
||||||
|
decode-uri-component@^0.2.0:
|
||||||
|
version "0.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
||||||
|
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
||||||
|
|
||||||
decompress-response@^3.3.0:
|
decompress-response@^3.3.0:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
|
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
|
||||||
|
@ -872,16 +877,17 @@ doctypes@^1.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9"
|
resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9"
|
||||||
integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=
|
integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=
|
||||||
|
|
||||||
doipjs@^0.10.5:
|
doipjs@^0.11.2:
|
||||||
version "0.10.5"
|
version "0.11.2"
|
||||||
resolved "https://registry.yarnpkg.com/doipjs/-/doipjs-0.10.5.tgz#df82dd70aff2903eddd7262e63f4e80ef4a9eb49"
|
resolved "https://registry.yarnpkg.com/doipjs/-/doipjs-0.11.2.tgz#150e5fbce97536ad2570b492ee25ab42b0e2a9f9"
|
||||||
integrity sha512-uFgt7rL5Olq2ByTDhjWNBlnWFsQAx6x5pJfDicnioJVNPFXcSdT2PFejfZGUTAfyI/1q3NWpSDn+vuPiR5udHg==
|
integrity sha512-UZJegmUvMBJS5luh2a64JOVMGO80KdkGY7I9noxr5rmwuiSNzhSy5571DY1z2vacYOrZ1xpxUnlzB0bC9+NiNg==
|
||||||
dependencies:
|
dependencies:
|
||||||
bent "^7.3.12"
|
bent "^7.3.12"
|
||||||
browserify "^17.0.0"
|
browserify "^17.0.0"
|
||||||
merge-options "^3.0.3"
|
merge-options "^3.0.3"
|
||||||
openpgp "^4.10.9"
|
openpgp "^4.10.9"
|
||||||
prettier "^2.1.2"
|
prettier "^2.1.2"
|
||||||
|
query-string "^6.14.1"
|
||||||
valid-url "^1.0.9"
|
valid-url "^1.0.9"
|
||||||
|
|
||||||
domain-browser@^1.2.0:
|
domain-browser@^1.2.0:
|
||||||
|
@ -1093,6 +1099,11 @@ fill-range@^7.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
to-regex-range "^5.0.1"
|
to-regex-range "^5.0.1"
|
||||||
|
|
||||||
|
filter-obj@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
|
||||||
|
integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs=
|
||||||
|
|
||||||
finalhandler@~1.1.2:
|
finalhandler@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
|
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
|
||||||
|
@ -2310,6 +2321,16 @@ qs@6.7.0:
|
||||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
|
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
|
||||||
integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
|
integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
|
||||||
|
|
||||||
|
query-string@^6.14.1:
|
||||||
|
version "6.14.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a"
|
||||||
|
integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==
|
||||||
|
dependencies:
|
||||||
|
decode-uri-component "^0.2.0"
|
||||||
|
filter-obj "^1.1.0"
|
||||||
|
split-on-first "^1.0.0"
|
||||||
|
strict-uri-encode "^2.0.0"
|
||||||
|
|
||||||
querystring-es3@~0.2.0:
|
querystring-es3@~0.2.0:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
|
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
|
||||||
|
@ -2569,6 +2590,11 @@ source-map@~0.5.3:
|
||||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
|
||||||
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
|
||||||
|
|
||||||
|
split-on-first@^1.0.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
|
||||||
|
integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
|
||||||
|
|
||||||
sprintf-js@~1.0.2:
|
sprintf-js@~1.0.2:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||||
|
@ -2613,6 +2639,11 @@ stream-splicer@^2.0.0:
|
||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
readable-stream "^2.0.2"
|
readable-stream "^2.0.2"
|
||||||
|
|
||||||
|
strict-uri-encode@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
|
||||||
|
integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
|
||||||
|
|
||||||
string-replace-middleware@^1.0.2:
|
string-replace-middleware@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/string-replace-middleware/-/string-replace-middleware-1.0.2.tgz#aa6a2f55322515d17e32b2f76327b777fb5c89f2"
|
resolved "https://registry.yarnpkg.com/string-replace-middleware/-/string-replace-middleware-1.0.2.tgz#aa6a2f55322515d17e32b2f76327b777fb5c89f2"
|
||||||
|
|
Loading…
Reference in a new issue