]> gitweb.fluxo.info Git - keyringer.git/commitdiff
Custom keyid support
authorSilvio Rhatto <rhatto@riseup.net>
Tue, 22 Nov 2011 15:05:22 +0000 (13:05 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Tue, 22 Nov 2011 15:05:22 +0000 (13:05 -0200)
README
lib/keyringer/functions
share/keyringer/decrypt
share/keyringer/edit
share/keyringer/encrypt
share/keyringer/genpair
share/keyringer/recrypt

diff --git a/README b/README
index 8353610b134dfee39473abd42cae6c5dea005edb..585550a150085b2db4405e68de6b39c3edc65453 100644 (file)
--- a/README
+++ b/README
@@ -130,6 +130,14 @@ Configuration files, preferences and options
   3. Custom keyring options: $KEYRING_FOLDER/config/options: managed by
      "keyringer <keyring> options".
 
+Using a non-default OpenPGP key
+-------------------------------
+
+If you want to use a different key other than your default for a given
+keyringer, use
+
+    keyringer <keyring> preferences add KEYID=FINGERPRINT
+
 Notes
 -----
 
index 11d1b86b45ab2990523939eef98a93d7e5c79ef0..58f7ad1d056812af72b2af8094bf1339f2232224 100644 (file)
@@ -204,6 +204,12 @@ function keyringer_set_env {
     exit 1
   fi
 
+  if [ ! -z "$KEYID" ]; then
+    GPG="gpg -u $KEYID"
+  else
+    GPG="gpg"
+  fi
+
   # Check recipients file
   keyringer_check_recipients $SUBCOMMAND
 
index c0584f23af81fc40e9b379594a7168898682e4f3..adc11346a4de6e437df0c45704651740f3118256 100755 (executable)
@@ -11,4 +11,4 @@ source "$LIB" || exit 1
 keyringer_get_file "$2"
 
 # Decrypt
-gpg --quiet --use-agent -d "$KEYDIR/$FILE"
+$GPG --quiet --use-agent -d "$KEYDIR/$FILE"
index 47945f3b7d4ba1582cbda3e3052017042bfd7548..73a59d90e799fddcd9a9b343a5ce728d89a152da 100755 (executable)
@@ -17,7 +17,7 @@ echo "Make sure that $BASEDIR is atop of an encrypted volume."
 keyringer_set_tmpfile edit
 
 # Decrypt the information to the file
-gpg --yes -o "$TMPWORK" --use-agent -d "$KEYDIR/$FILE"
+$GPG --yes -o "$TMPWORK" --use-agent -d "$KEYDIR/$FILE"
 
 # Prompt
 echo "Press any key to open the decrypted data in $EDITOR, Ctrl-C to abort"
@@ -25,7 +25,7 @@ read key
 "$EDITOR" "$TMPWORK"
 
 # Encrypt again
-gpg --yes -o "$KEYDIR/$FILE" --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS") "$TMPWORK"
+$GPG --yes -o "$KEYDIR/$FILE" --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS") "$TMPWORK"
 
 # Remove temp file
 keyringer_unset_tmpfile "$TMPWORK"
index 8cbf72a0b1b0d8b20de493177096db3d6347b2db..709aac32867b2112f0df82d24ca2d0a22eef3e1f 100755 (executable)
@@ -18,7 +18,7 @@ if [ "$BASENAME" == "encrypt" ]; then
   echo "Type your message and finish your input with EOF (Ctrl-D)."
 fi
 
-gpg --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS") - > "$KEYDIR/$FILE"
+$GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS") - > "$KEYDIR/$FILE"
 
 # Stage
 if [ -d "$BASEDIR/.git" ]; then
index 065111ebddd7cbb0e7eaa1682682301a18e626ab..a5b06cca295ad32930f0e0ec26208bcf8ac8e16a 100755 (executable)
@@ -52,7 +52,7 @@ function genpair_gpg {
   # TODO: insert random bytes
   # TODO: custom Name-Comment and Name-Email
   # TODO: allow for empty passphrases
-  gpg --homedir "$TMPWORK" --gen-key --batch <<EOF
+  $GPG --homedir "$TMPWORK" --gen-key --batch <<EOF
     Key-Type: RSA
     Key-Length: 4096
     Subkey-Type: ELG-E
@@ -66,9 +66,9 @@ EOF
 
   # Encrypt the result
   echo "Encrypting secret key into keyringer..."
-  gpg --armor --homedir "$TMPWORK" --export-secret-keys | keyringer_exec encrypt "$BASEDIR" "$FILE"
+  $GPG --armor --homedir "$TMPWORK" --export-secret-keys | keyringer_exec encrypt "$BASEDIR" "$FILE"
   echo "Encrypting public key into keyringer..."
-  gpg --armor --homedir "$TMPWORK" --export             | keyringer_exec encrypt "$BASEDIR" "$FILE.pub"
+  $GPG --armor --homedir "$TMPWORK" --export             | keyringer_exec encrypt "$BASEDIR" "$FILE.pub"
   echo "Encrypting passphrase into keyringer..."
   echo "Passphrase for $FILE: $passphrase"              | keyringer_exec encrypt "$BASEDIR" "$FILE.passwd"
 
@@ -76,8 +76,8 @@ EOF
   if [ ! -z "$OUTFILE" ]; then
     mkdir -p `dirname $OUTFILE`
     printf "Saving copies at %s and %s.pub\n" "$OUTFILE" "$OUTFILE"
-    gpg --armor --homedir "$TMPWORK" --export-secret-keys > "$OUTFILE"
-    gpg --armor --homedir "$TMPWORK" --export             > "$OUTFILE.pub"
+    $GPG --armor --homedir "$TMPWORK" --export-secret-keys > "$OUTFILE"
+    $GPG --armor --homedir "$TMPWORK" --export             > "$OUTFILE.pub"
   fi
 
   echo "Done"  
index dac703a6e9c3d638c1f0a004877c69d8053867e9..a8f52679c05b15a7d410ddee260d869e5b2ee939 100755 (executable)
@@ -12,7 +12,7 @@ function keyringer_recrypt {
   keyringer_get_file "$1"
 
   # Recrypt
-  gpg --use-agent -d "$KEYDIR/$FILE" | gpg --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS") > "$KEYDIR/$FILE"
+  $GPG --use-agent -d "$KEYDIR/$FILE" | $GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS") > "$KEYDIR/$FILE"
 }
 
 if [ ! -z "$2" ]; then