-
Notifications
You must be signed in to change notification settings - Fork 34
/
qr2asc.sh
executable file
·61 lines (55 loc) · 1.46 KB
/
qr2asc.sh
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
#!/bin/bash
#####
#
# Author: Kevin Douglas <[email protected]>
#
# Simple command line script to restore ascii armor gpg keys from a QR image.
# You can use the following commands to import your restored keys:
#
# gpg --import pgp-public-keys.asc
# gpg --import pgp-private-keys.asc
#
# This script will allow you to convert QR images created with asc2qr.sh
# info an ascii armor pgp key.
#
# This script depends on the following libraries/applications:
#
# libqrencode (http://fukuchi.org/works/qrencode/)
# zbar (http://zbar.sourceforge.net)
#
# If you need to backup or restore binary keys, see this link to get started:
#
# https://gist.github.com/joostrijneveld/59ab61faa21910c8434c#file-gpg2qrcodes-sh
#
#####
# Name of the output key after decoding
output_key_name="mykey.asc"
# Argument/usage check
if [ $# -lt 1 ]; then
echo "usage: `basename ${0}` <QR image 1> [QR image 2] [...]"
exit 1
fi
# For each image on the command line, decode it into text
chunks=()
index=1
for img in "$@"; do
if [ ! -f "${img}" ]; then
echo "image file not found: '${img}'"
exit 1
fi
asc_key="${tmp_file}.${index}"
echo "decoding ${img}"
chunk=$( zbarimg --raw --set disable --set qrcode.enable "${img}" 2>/dev/null )
if [ $? -ne 0 ]; then
echo "failed to decode QR image"
exit 2
fi
chunks+=("${chunk}")
index=$((index+1))
done
asc_key=""
for c in "${chunks[@]}"; do
asc_key+="${c}"
done
echo "creating ${output_key_name}"
echo "${asc_key}" > ${output_key_name}