.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
6echo $@
7
8[ -z $1 ] && echo $ERR_1_MSG && exit 1
9
10gpg -K $1 > /dev/null || ( echo $ERR_1_MSG && exit 1 )
11
12usage () {
13 echo "$0 GPG_KEYID|GPG_UID [OUTPUT_TYPE]"
14 exit 2
15}
16
17export_secret() {
18 gpg --export-secret-keys $1 \
19 | paperkey --output-type raw
20}
21
22export_public() {
23 gpg --export $1
24}
25
26qr_png_prettify () {
27 OUTPUT_TITLE="$1 paperkey backup $(date +"%F %T")"
28 montage -pointsize 18 \
29 -title "$OUTPUT_TITLE" \
30 -label pubkey "$2" \
31 -label seckey "$3" \
32 -mode concatenate \
33 "$1-backup.png"
34}
35
36qr_png () {
37 QRENCODE_FLAGS="${QRENCODE_FLAGS} -t png -s 10"
38 QRENCODE_PUBKEY_FLAGS="${QRENCODE_FLAGS} -o $1-pubkey.png"
39 QRENCODE_SECKEY_FLAGS="${QRENCODE_FLAGS} -o $1-seckey.png"
40
41 export_secret $1 | qrencode $QRENCODE_SECKEY_FLAGS
42 export_public $1 | qrencode $QRENCODE_PUBKEY_FLAGS
43
44 qr_png_prettify $1 "$1-pubkey.png" "$1-seckey.png"
45
46 rm "$1-pubkey.png" "$1-seckey.png"
47}
48
49qr_utf8 () {
50 QRENCODE_FLAGS="${QRENCODE_FLAGS} -t UTF8 -o -"
51
52 echo "$1 secret paperkey"
53 export_secret $1 | qrencode $QRENCODE_FLAGS
54 echo "$1 public key"
55 export_public $1 | qrencode $QRENCODE_FLAGS
56}
57
58case $2 in
59 "png" ) qr_png $1 ;;
60 * ) qr_utf8 $1 ;;
61esac
62