blob: 2c98cc8b38e08fdf2ec0d67fb8f044906c26d807 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#!/usr/bin/env sh
die() {
echo "$@";
exit 1;
}
help() {
cat << EOF
A helper script to add an gpg key to the wkd.
USAGE:
mk_key KEY_ID KEY_EMAIL_DOMAIN KEY_HASH
OPTIONS:
--help | -h
Display this help and exit.
ARGUMENTS:
KEY_ID := [[ gpg --list-keys --with-colons | awk -F: '/^uid:/ { print \$10 }' ]]
The key to use, as specified by the key id.
KEY_EMAIL_DOMAIN
The email domain of this key. For example 'key@example.org' would
have an KEY_EMAIL_DOMAIN of 'example.org'.
KEY_HASH
This is the hashed name of the key as specified in the WKD spec.
Get this by running: 'gpg --with-wkd-hash --list-keys <KEY_ID>'.
EOF
}
add() {
key_id="$1";
key_email="$2";
key_hash="$3";
cd "$(git rev-parse --show-toplevel)" || die "No source dir!"
dir="./src/.well-known/openpgpkey/$key_email/hu"
full_key_id="$(gpg --list-keys --with-colons "$key_id" | awk -F: '/^uid:/ { print $10 }' | tail -n 1)"
mkdir --parents "$dir"
gpg --no-armor --export "$key_id" > "$dir/$key_hash" &&
printf "%s%s%s%s\n" '`' "$dir/$key_hash" '`' " -> $full_key_id" >> stored_keys.md &&
echo "Key export done!";
}
for arg in "$@"; do
case "$arg" in
"--help" | "-h")
help;
exit 0;
;;
esac
done
key_id="$1";
key_email="$2";
key_hash="$3";
shift 3
[ -z "$key_id" ] && die "No KEY_ID specified, see '--help'!"
[ -z "$key_email" ] && die "No KEY_EMAIL_DOMAIN specified, see '--help'!"
[ -z "$key_hash" ] && die "No KEY_HASH specified, see '--help'!"
[ -n "$*" ] && die "The arguments '$*' are not recognized; see '--help' for a list!"
add "$key_id" "$key_email" "$key_hash"
# vim: ft=sh
|