.local/bin/backup-secret-key (view raw)
1#!/bin/sh
2
3ERR_1_MSG="Please specify valid uid or keyid."
4QRENCODE_FLAGS="-8 -l H"
5
6[ -z $1 ] && ( echo $ERR_1_MSG && exit 1 )
7
8gpg -K $1 > /dev/null || ( echo $ERR_1_MSG && exit 1 )
9
10export_secret() {
11 gpg --export-secret-keys $1 \
12 | paperkey --output-type raw
13}
14
15export_public() {
16 gpg --export $1
17}
18
19qr_png_prettify () {
20 OUTPUT_TITLE="$1 paperkey backup $(date +"%F %T")"
21 montage -pointsize 18 \
22 -title "$OUTPUT_TITLE" \
23 -label pubkey "$2" \
24 -label seckey "$3" \
25 -mode concatenate \
26 backup.png
27}
28
29qr_png () {
30 QRENCODE_FLAGS="${QRENCODE_FLAGS} -t png -s 10"
31 QRENCODE_PUBKEY_FLAGS="${QRENCODE_FLAGS} -o $1-pubkey.png"
32 QRENCODE_SECKEY_FLAGS="${QRENCODE_FLAGS} -o $1-seckey.png"
33
34 export_secret $1 | qrencode $QRENCODE_SECKEY_FLAGS
35 export_public $1 | qrencode $QRENCODE_PUBKEY_FLAGS
36
37 qr_png_prettify $1 "$1-pubkey.png" "$1-seckey.png"
38
39 rm "$1-pubkey.png" "$1-seckey.png"
40}
41
42qr_utf8 () {
43 QRENCODE_FLAGS="${QRENCODE_FLAGS} -t UTF8 -o -"
44
45 echo "$1 secret paperkey"
46 export_secret $1 | qrencode $QRENCODE_FLAGS
47 echo "$1 public key"
48 export_public $1 | qrencode $QRENCODE_FLAGS
49}
50
51case $2 in
52 "png" ) qr_png $1 ;;
53 * ) qr_utf8 $1 ;;
54esac
55