chiark / gitweb /
pubkeyop.in: New script for doing stuff with public keys.
[distorted-keys] / ktype.gnupg
index 8a8e764da7911e734da670d3571277cfb574f84b..18a17a9ec84ea2edeaea842e27617efe16732fad 100644 (file)
@@ -56,10 +56,9 @@ EOF
 : ${kprop_realname=%{realname\}} ${kprop_email=%{email\}}
 : ${kprop_comment=%{comment-nil\}}
 
-k_generate () {
-  base=$1 nub=$2
+initdir () {
+  base=$1
 
-  makenub >"$nub"
   prefs="$kprop_cipher_prefs $kprop_digest_prefs $kprop_compress_prefs"
 
   case ${kprop_s2k_cipher+t} in
@@ -87,6 +86,13 @@ personal-digest-preferences $kprop_digest_prefs
 personal-compress-preferences $kprop_compress_prefs
 default-preference-list $prefs
 EOF
+}
+
+k_generate () {
+  base=$1 nub=$2
+
+  makenub >"$nub"
+  initdir "$base"
 
   { cat <<EOF
 Key-Type: $kprop_main_type
@@ -121,6 +127,15 @@ EOF
   run_gnupg "$base" --export --armor --output="$base/pub"
 }
 
+k_import () {
+  base=$1
+
+  initdir "$base"
+  run_gnupg "$base" --import "$base/pub"
+  run_gnupg "$base" --fingerprint --with-colons | \
+    grep '^fpr:' | cut -d: -f10 >"$base/fpr"
+}
+
 k_encrypt () {
   base=$1
   run_gnupg "$base" --encrypt --armor --recipient=$(cat "$base/fpr")