mirror of
https://github.com/sunknudsen/privacy-guides.git
synced 2025-02-23 01:03:59 +00:00
Implemented duplicate feature
This commit is contained in:
parent
4b0273549f
commit
fd7da45d10
@ -759,7 +759,8 @@ $ qr-clone.sh --help
|
||||
Usage: qr-clone.sh [options]
|
||||
|
||||
Options:
|
||||
-h, --help display help for command
|
||||
--duplicate duplicate content
|
||||
-h, --help display help for command
|
||||
|
||||
$ qr-clone.sh
|
||||
Scan QR code…
|
||||
|
@ -111,21 +111,21 @@ if ! mount | grep $usb > /dev/null; then
|
||||
sudo mount $dev $usb -o uid=pi,gid=pi
|
||||
fi
|
||||
|
||||
if [ "$create_bip39_mnemonic" = true ]; then
|
||||
if [ -z "$duplicate" ] && [ "$create_bip39_mnemonic" = true ]; then
|
||||
printf "%s\n" "Creating BIP39 mnemonic…"
|
||||
secret=$(python3 $basedir/create-bip39-mnemonic.py)
|
||||
echo $secret
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
if [ "$create_electrum_mnemonic" = true ]; then
|
||||
if [ -z "$duplicate" ] && [ "$create_electrum_mnemonic" = true ]; then
|
||||
printf "%s\n" "Creating Electrum mnemonic…"
|
||||
secret=$(electrum make_seed --nbits 264 --offline)
|
||||
echo $secret
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
if [ -z "$secret" ]; then
|
||||
if [ -z "$duplicate" ] && [ -z "$secret" ]; then
|
||||
tput sc
|
||||
printf "$bold%s$normal\n" "Type secret and press enter, then ctrl-d"
|
||||
readarray -t secret_array
|
||||
@ -141,7 +141,7 @@ if [ -z "$secret" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$validate_bip39_mnemonic" = true ]; then
|
||||
if [ -z "$duplicate" ] && [ "$validate_bip39_mnemonic" = true ]; then
|
||||
printf "%s\n" "Validating if secret is valid BIP39 mnemonic…"
|
||||
if ! echo -n "$secret" | python3 $basedir/validate-bip39-mnemonic.py; then
|
||||
printf "$bold$red%s$normal\n" "Invalid BIP39 mnemonic"
|
||||
@ -149,9 +149,13 @@ if [ "$validate_bip39_mnemonic" = true ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$shamir_secret_sharing" ] || ([ "$shamir_secret_sharing" = true ] && [ -z "$no_encryption" ]); then
|
||||
encrypted_secret=$(echo -n "$secret" | gpg --s2k-mode 3 --s2k-count 65011712 --s2k-digest-algo sha512 --cipher-algo AES256 --symmetric --armor)
|
||||
gpg-connect-agent reloadagent /bye > /dev/null 2>&1
|
||||
if [ "$duplicate" = true ] && [ -n "$encrypted_secret" ]; then
|
||||
printf "%s\n" "Duplicating encrypted secret…"
|
||||
else
|
||||
if [ -z "$shamir_secret_sharing" ] || ([ "$shamir_secret_sharing" = true ] && [ -z "$no_encryption" ]); then
|
||||
encrypted_secret=$(echo -n "$secret" | gpg --s2k-mode 3 --s2k-count 65011712 --s2k-digest-algo sha512 --cipher-algo AES256 --symmetric --armor)
|
||||
gpg-connect-agent reloadagent /bye > /dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$shamir_secret_sharing" = true ]; then
|
||||
|
@ -1,16 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEqYzNEiJDZVsm+vthH6dnhiu9EwUFAmB4b8oACgkQH6dnhiu9
|
||||
EwXU8hAAjniLPGQulMSmilV8/02BC0FWHHNzYS1m1KlvQ5IYCCUYwFttoVMv7/ME
|
||||
dLnGJdJ6I9bMQwa/AzjkgP5qKCY0PAiNKy3QrqFegyxyU1lWSPzHxCUg/1IdtCee
|
||||
95LKynPm+OuMJDespNPYCJgBlgIR5qrXSstUKL7vLFso8joUVig7W9aGkZ/Fw9ZW
|
||||
oXYnzod+KSuqGN3Zoplm2NzSxpAxjFJnSvM8f91Ht5CB1LgR3TdZNczMEe1r8+0D
|
||||
P/SAQYmD0HsvEFibcHeFQ4PO3x8plPWv+J8U6yK6dZdUhGKNCjdIDzLEpciLlMvZ
|
||||
9knBN0UhJ4kijVtFTDqqkiqjteeLr/ODrn1yV3EC179n5bzcDvXQTYy2MGMhUrU3
|
||||
uprrCZpjrfLXXG8PkTR7E2OEJnyiZADp2rYoJ6TiXFJI4oZz644N1X1N9euTnxyA
|
||||
BzZmpP3XR46t8gi0P66n0HCzumeopHTE5I20GISvNVfUFNUVOze1Cfm7SPtf3nNg
|
||||
CLqGcQtbcKotMsLnBs7w4wLV72f5K2VauVuwXsUkx7GT0xALUEC7846DF1NlZ5Dr
|
||||
fjTCjXgib3VDIh6wYLxEpKcNLuZqVxdh9k92aA3hHg7eHhJyzMp1S+iC38HaxKbb
|
||||
sbeAiqS1NH1MdznhJaSTwzMLIQGk1BRwmADHcAu8l52th9YLvYM=
|
||||
=MSRZ
|
||||
iQIzBAABCgAdFiEEqYzNEiJDZVsm+vthH6dnhiu9EwUFAmB4hZcACgkQH6dnhiu9
|
||||
EwWtixAAtExvLc25xi20ahxm1xdQ1nl0r0E0vglXMdcTW+JIYxDKX2u5PqwM2hE9
|
||||
ijdjd49uAuwoukIfRPHHLzlqT1Cmne/wANIphFUTK6utdN5VqjvwIb3riyy4UhlM
|
||||
XcfIzFcKBq054Kly41CiyTF0s4620glWziR9zENJEFNszPx8vZg7KMtVke0tVFrG
|
||||
DD3NgxG5RnyCrZ1VxMqI/VW6jY+GumFQf/8NT4KUi5fI0NjNvKhRruUMWfh4zHpc
|
||||
mC3uZr42DaUSB6NK3QN9ImSEUy4idXeYGGL33CXj0jVhp0cG51TGLM45IKTOI3WU
|
||||
vbE3byjlH/D8qZ+JR1eqvcotn2ZLGMnSP9Eo97JcJN0phVgGyYTdoYP0tukyuNeQ
|
||||
yjWFvu+9DKGkpmg8uYr5e5JSoeI5zT1B0ItGCKhrYMg7vuV5bnfPUiqJwy9UxJVb
|
||||
BCEyvXL9aeX7AgoKlIzYXJNzz7OHZvB4gvCt5kZpCKIu1fn0zvCEBGRHsorW48+d
|
||||
u+3GcS8DnPukEJdPid6O4vso74FlCtw9E29i610comMeqqNY1XeIWXxfVlQd3dX3
|
||||
/HV085Kmbekg/uWtNmqqHoqfnaM1Ik9hA429ewGh1pBeHhjU/YDb4DuCMOvS+cwU
|
||||
3mtQ9UGTVmM//ghUkLd0sSLoC/oVBWxlaTAxeerEcZqtSm1jWZA=
|
||||
=jcbd
|
||||
-----END PGP SIGNATURE-----
|
||||
|
@ -11,9 +11,14 @@ while [[ $# -gt 0 ]]; do
|
||||
"Usage: qr-clone.sh [options]" \
|
||||
"" \
|
||||
"Options:" \
|
||||
" -h, --help display help for command"
|
||||
" --duplicate duplicate content" \
|
||||
" -h, --help display help for command"
|
||||
exit 0
|
||||
;;
|
||||
--duplicate)
|
||||
duplicate=true
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
positional+=("$1")
|
||||
shift
|
||||
@ -23,19 +28,24 @@ done
|
||||
|
||||
set -- "${positional[@]}"
|
||||
|
||||
bold=$(tput bold)
|
||||
normal=$(tput sgr0)
|
||||
|
||||
tput reset
|
||||
|
||||
printf "%s\n" "Restoring…"
|
||||
|
||||
printf "%s\n" "Type qr-restore.sh options and press enter (see “qr-restore.sh --help”)"
|
||||
read -r qr_restore_options
|
||||
if [ -z "$duplicate" ]; then
|
||||
printf "$bold%s$normal\n" "Type qr-restore.sh options and press enter (see “qr-restore.sh --help”)"
|
||||
read -r qr_restore_options
|
||||
fi
|
||||
|
||||
. qr-restore.sh $qr_restore_options
|
||||
|
||||
if [ -n "$secret" ]; then
|
||||
if [ -n "$secret" ] || [ -n "$encrypted_secret" ]; then
|
||||
printf "%s\n" "Backing up…"
|
||||
|
||||
printf "%s\n" "Type qr-backup.sh options and press enter (see “qr-backup.sh --help”)"
|
||||
printf "$bold%s$normal\n" "Type qr-backup.sh options and press enter (see “qr-backup.sh --help”)"
|
||||
read -r qr_backup_options
|
||||
|
||||
. qr-backup.sh $qr_backup_options
|
||||
|
@ -1,16 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEqYzNEiJDZVsm+vthH6dnhiu9EwUFAmB4b80ACgkQH6dnhiu9
|
||||
EwV4oA//WxF7IbBueNKVZgRa/oGBRMzHKwDUTPg6HIScS+MqJ3oyKJDpWJ/UhsE5
|
||||
XB06yR1GEwP9bTHFBCHiGNOYJHml0wS4dhlUtWFWnfGBFIOm07/LbBcHH9uTCIno
|
||||
YVv8dhrGRwamxJh/AyfU7MCjJcsgaVniakJsX7L/OgPJymuH4ympNNjvH2Dy0AzV
|
||||
mLJ4380zMEs09/aCIFnSEOxzjqjwJmtQF9ZZKiJs+rYP7PkuNmJGBSPWCF2ErJCY
|
||||
NaQVfUrco7zFepjMNn3GSNUyBoU31wlUf/blmPHynYJ/NJR3R84x78J7K8S39ShW
|
||||
1/xlf6dkto9pYVU4NMq0bt7PVgOImKK9FORZG3kJJu1l57RmiZ5lVcmVkrEi+6LY
|
||||
8wnLr7aYfXkwas+wzE/IBc7b5Zms4bjyv7dFkf3uCZwgyIqHdOOc4/ErUfGUyKVG
|
||||
eCh+LqUEUzpDDDjVAC+jFOR8Mi2ES+AjAgbb0URDAqO1owILQdiTmo0oMHrQ+x47
|
||||
G6GqEAuaETOkk3+CgX6E7B7gn3AYVyX6IMP9h6ESsGWoS+TVrYeSqrxaprgnqjCd
|
||||
tMxvr0zAGVInyPjKg3XDxEQjkDq9BWwEPLElq9pk6jaYrgwQchonKQUFBSP5oiQs
|
||||
sENAaTQhI8LyQDdPPyNckT7uyzc7VfUtROn5qZsFqawKxvBBrdU=
|
||||
=qPkK
|
||||
iQIzBAABCgAdFiEEqYzNEiJDZVsm+vthH6dnhiu9EwUFAmB4hZoACgkQH6dnhiu9
|
||||
EwUgRA//Y8lBVFesXa9T/cJElyV/E3xQOpKvQ5xaxl5gPVyVwu0zzZjPFEJ+rzNn
|
||||
vHNTWpDFCqhznglQGSNDDpLW29yaMay2iujQBTFjI7P74cqST+M0hnly3UMiqQ0u
|
||||
PLmT54hnmpEeZGVsumkN3fvzOPZ7x5d9k5niJ0KJWAlwypspzB/i6dHumjKZYkHz
|
||||
Ji6SrIOzxd2fBfMN0Y6w5z966UCekWUhTkXCfvLPzWcc8zitOZfdh7Ahs6jjHv1w
|
||||
jCwkSlVWuDHPLaKESyXrsrbU2zQif+FHU6QkudJqK9ewD2hR6Vm0juYSPqNPw3k6
|
||||
ByBQXYYOglKlrvKXQ4kvPTuU1bpjwmG1OhLLquOE3aWHoN73UBB4bNYAJ8+onJjQ
|
||||
XSvm3KYpGGec/3j96qe5IH+deYpyWmAPVWpA1Dnw0iRMy/OPhe+o/wAaz92tVaSP
|
||||
Ijv/absAlKSxFJceSgoKF0gYHuLVtzDjLkgtnBtH7FUKdISDCSMyAfXXwcXJNcwT
|
||||
1JARusrnWE+FsE2FpFs9RsDv0hRzSV2N/+GuGkBsLRxXjDsGYj/EAwb75UcHQG7s
|
||||
uGcuLyDgQV97VDs+5sD9Tqp07kUJ93nk5fRRSJNz8srGDhxDntO3eEqsPSo5hnnO
|
||||
OuGmF8NyirJkizR41WJNk2O3s14UMa2ag1r0HxUrAiezvgCL3yw=
|
||||
=mqR/
|
||||
-----END PGP SIGNATURE-----
|
||||
|
@ -62,7 +62,7 @@ scan_qr_code () {
|
||||
printf "%s: $bold%s$normal\n" "SHA512 short hash" "$data_short_hash"
|
||||
}
|
||||
|
||||
if [ "$shamir_secret_sharing" = true ]; then
|
||||
if [ -z "$duplicate" ] && [ "$shamir_secret_sharing" = true ]; then
|
||||
for share_number in $(seq 1 $share_threshold); do
|
||||
printf "$bold%s$normal" "Prepare share $share_number or $share_threshold and press enter"
|
||||
read -r confirmation
|
||||
@ -74,31 +74,32 @@ else
|
||||
scan_qr_code encrypted_secret
|
||||
fi
|
||||
|
||||
printf "$bold$red%s$normal\n" "Show secret? (y or n)? "
|
||||
if [ -z "$duplicate" ]; then
|
||||
printf "$bold$red%s$normal\n" "Show secret? (y or n)? "
|
||||
read -r answer
|
||||
if [ "$answer" = "y" ]; then
|
||||
if [[ "$encrypted_secret" =~ "-----BEGIN PGP MESSAGE-----" ]]; then
|
||||
secret=$(echo -e "$encrypted_secret" | gpg --decrypt)
|
||||
else
|
||||
secret=$encrypted_secret
|
||||
fi
|
||||
|
||||
read -r answer
|
||||
if [ "$answer" = "y" ]; then
|
||||
if [[ "$encrypted_secret" =~ "-----BEGIN PGP MESSAGE-----" ]]; then
|
||||
secret=$(echo -e "$encrypted_secret" | gpg --decrypt)
|
||||
else
|
||||
secret=$encrypted_secret
|
||||
fi
|
||||
|
||||
if [ "$word_list" = true ]; then
|
||||
printf "%s\n" "Secret:"
|
||||
array=($secret)
|
||||
last_index=$(echo "${#array[@]} - 1" | bc)
|
||||
for index in ${!array[@]}; do
|
||||
position=$(($index + 1))
|
||||
printf "%d. $bold%s$normal" "$position" "${array[$index]}"
|
||||
if [ $index -lt $last_index ]; then
|
||||
printf " "
|
||||
fi
|
||||
done
|
||||
printf "\n"
|
||||
else
|
||||
printf "%s\n" "Secret:"
|
||||
echo "$bold$secret$normal"
|
||||
if [ "$word_list" = true ]; then
|
||||
printf "%s\n" "Secret:"
|
||||
array=($secret)
|
||||
last_index=$(echo "${#array[@]} - 1" | bc)
|
||||
for index in ${!array[@]}; do
|
||||
position=$(($index + 1))
|
||||
printf "%d. $bold%s$normal" "$position" "${array[$index]}"
|
||||
if [ $index -lt $last_index ]; then
|
||||
printf " "
|
||||
fi
|
||||
done
|
||||
printf "\n"
|
||||
else
|
||||
printf "%s\n" "Secret:"
|
||||
echo "$bold$secret$normal"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEqYzNEiJDZVsm+vthH6dnhiu9EwUFAmB4b9AACgkQH6dnhiu9
|
||||
EwWL5w//ae+DA9VEF1pg/uQONGVDretYRo1rzJUFPT22U/ZmyOQHKG+SXGEfYizy
|
||||
LroEE9M98rqZHVDxA6WRZKFPQs/aNRggE6Qk8T3krzz/oebOenXV1N1Z7ZQH2gxj
|
||||
YJjaqM0Fw9UCRgPThfUdEpS652vyVjfAAwbwHkI+6flMDGV+TdM+5Fuy3XXXEhiG
|
||||
Yk4+rsGeRMf6MBFGqNI9urE9iSnRvw7S4joJNmazq9z6Adr/v2OFWHuWURFnUKzy
|
||||
rvE0frvGeAPzgxR/fnb5Tg4+1HR8p9UYTBo3/Krrv6mSMWrmsKdwADf2TO2hzC1b
|
||||
pGz7bjeZaYOyeJq8BB7ak/idn7DBk9DsbAs06HI3FyxIQcHZcW9XTihl5e7k7w+O
|
||||
NbPDNI20PgKCT7CII6U3Rs6LLyHCwsdyxmws70y3wmOQGSYE5bUtAFvCXn0jFpf2
|
||||
Aj82NsKanbhsgD15zokbrFwNFHNggQzxMSgRDwMhzbzhslCH580EkEynwR7KR0H1
|
||||
KR6ZAlL0vvXiTQ+QzWRwVjhRTpSps+yprX3ARTqehzgfTu8LXEUY0XLxtCpI9DFj
|
||||
zUBZkIpKKIWq7kaV85QyOMTFBW4oQJzo6jCo75HCznmPjKNQpmW9KMpTGR7PzmLb
|
||||
6/jJkW5wsw2AT24sytJ73R9Nsfp1UxzXM+o3nGHWFc/orn4OQhU=
|
||||
=VApF
|
||||
iQIzBAABCgAdFiEEqYzNEiJDZVsm+vthH6dnhiu9EwUFAmB4hZ0ACgkQH6dnhiu9
|
||||
EwW4ZhAAiHRDKjWgepGMlskT4AIOd9IyZGJ9S27p4ShZvRuEB6RWQVSP8I9Nrxdo
|
||||
RV1cHcvecnUrWSDUZeS17R6+qQnqoHwwd8MhrJTTa2vizLQBhfJerhXrPLyDP7C7
|
||||
vkhWDiKY6Bf47JykMTmXCFIZanpv3xppON7aNjDG/HhQ++MVaZitYCAzt5sHltFH
|
||||
/7o62gvEx/QM2MNnEOvwS3mUI+LqVmtzs39NO+FsbFgxBw2LaCbQZTCWUk5WXrZ5
|
||||
b8rUb1IfEhT8g+XljUTws95p4QlYOBadVLedKKC5COHWWfjwZQlKgfZWcTr1hKWL
|
||||
FTWTLwRb5bxaGelky6Sm9Lk9vrxkG4WKhBBySVBJo14XNK0nCXLTkL3RZuECGvDF
|
||||
TVXxJvSVI/OAbVeHCVmcyJy++mAcxQeUjRcWfTucMm0ISa1YHEA4L0utsDSPI1Ct
|
||||
hSb1jmuJIb7lMMRtiPmhrWod2/LxJSA5d3fLvfRTz+JyggmfC5idHTYUEk72jpPh
|
||||
XzugZl3lNOkMxB4LCWJcWadLx+H75AdVzZeYbZ5G1w+kiWSg5AKaqx436+ryVhAd
|
||||
Pb2K2gYHoNXMnmpBlOdRmtzgePKSFNgtUCu4LkLWddZqzAHt8GYJo+0YnZ2rfGYl
|
||||
6ylanmeFLCR3aDU90qCwNokNc93Sqp9fE8Vjc9GsNwwcpV0eV/4=
|
||||
=IKBO
|
||||
-----END PGP SIGNATURE-----
|
||||
|
@ -1,16 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEqYzNEiJDZVsm+vthH6dnhiu9EwUFAmB4b9IACgkQH6dnhiu9
|
||||
EwUzFhAAnz+mC1SKOS24bgPqtD2a22T0NmQ3N1SHRL9JIu79TvIUHkpAy8HN/ctH
|
||||
+DY7+A4266vf6HU79gnwbn2D2l75KqIn/O+J3LEGk4JUWgQTMbB6MMrZeGHKy0gX
|
||||
evVkdrADpdi158TVD2YzzclOU3SBbU1FCK6SiIq1mB7k0Ryd+rbHcX6ChBvmMAtS
|
||||
5OmpHok+NkpQ/oSLb6sqnd/EXf4s+6HmKHfbmnhGMr3TyXeSS8Vt3RzxEfFD/WfY
|
||||
9BGfZkdY70V+gxVWk06gFjS7491EVO+z7YrETrvYVmy88qUdPhJOW4kgf3L1xxN4
|
||||
aCyeduhJPpZfgAZ2PAn4jzOpZDbQZOGu9koWjII5hY0VEK0V+N4TTr2gHwMcA8Qp
|
||||
Gcrbp5sri5rHoqo1fXRw+C/1F++lprVe890Qhr6viE4YeU2AIL7AuB8+SJi/Xk9w
|
||||
lZvwZ6ckJ/xd76BASXwG5aOU3cHdb+0MFDDwtG4Rpf1LDq171OttNspaWa76nVur
|
||||
s5vB4oX8PUbtMraqbdBMAFoq94cBeeT9mO2Cb/JfxcanmH04Jw8gO0xI90ofX5Dx
|
||||
9tuMVR97HHSK3yl1ddMRFLuyO1+yofOh8XYH0abTNeerH5M/IItPZpZRMyGfU3W4
|
||||
4huhGfX8XYYpKKhuaMmE0ZHPHMRRKJqcwlqdJxk87UK68JSUbkQ=
|
||||
=BBuj
|
||||
iQIzBAABCgAdFiEEqYzNEiJDZVsm+vthH6dnhiu9EwUFAmB4haAACgkQH6dnhiu9
|
||||
EwVeNA//Yz7KqK887qZyz9BcttZypKbeIrFneBiGM3A55iR3Yws5NFsFfLOH6BZo
|
||||
KBkRHlFGyQWgWtev183TIhvkg1rbqQ0oGk+NQyLfWeAgxFVwLB4cXH/3MLahKZeq
|
||||
BvP9IEBNBdjMjJX3jpMqex4AKPwj3/cEMI2XUAIM8GKJkFF7N5hXCzOK0ACfbMSe
|
||||
lSZYtmarA/tjimtrNM1Bb3XsdohsbdZebzfTQdfSrch/Q0NO8j+FXlQ0Eo9CpX60
|
||||
HSvD9/z5V4J2jhgudSv9H1IHdp4/ISpRoeETnNOc20Pglpp3anCU66tASsKpUsBl
|
||||
T11R5T1cxBbCByolSnvZynkDApvlYx686VO38t5PjXH2Od5xHB18iA3y0/0JtGTK
|
||||
4kPfUdOp0wbJkwaSbAaTTTAVHgiD3nHYiYmcLf6ZVwqDMaYWJcQvp0aYxZfw2Z8X
|
||||
iU6zdU5CY58BIVJya2e8X6LVUQrpT+oBFtmaPR3Ax5CUIRvx4v95zGfTiRfO4cKl
|
||||
HPIeLP+ankYu1eKxdNHRLNh/cNTO8nrFd9yiGFJumss+xaFfjEqLsNWn+ZbR+Cpx
|
||||
jprd+jWJ6eKMPq0W3IewahMGZeWeP0VZxc4MwmqQdV2deqv39BzLyKsQzGzO8940
|
||||
WWiCpRtEABTnfT6kw3pLxW9PKG9RYkbJ3EseeWmQP2PAG+kWxXw=
|
||||
=R1pv
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Loading…
x
Reference in New Issue
Block a user