all repos — dotfiles @ 161c344bf8f0d64fb44d1f6480de7141239d50dc

personal dotfiles

.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