all repos — dotfiles @ 6f4741e9778e50f32dac1c4eddaf3a8d12cf2721

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
 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