X-Git-Url: http://git.sthu.org/?a=blobdiff_plain;f=caff%2Fcaff;h=cfb7d09e9e3eeca8a515b3e771d3df3694146ba4;hb=415853a798c69ae8a5bbd1579f0f5d2b8d1cfa41;hp=8c6e7e6a663186e481de4c4bb8402d4491de55fa;hpb=ec1689f1364895809f761ffb21ec6af7e9a445f8;p=pgp-tools.git diff --git a/caff/caff b/caff/caff index 8c6e7e6..cfb7d09 100755 --- a/caff/caff +++ b/caff/caff @@ -164,9 +164,9 @@ is set to. Path to your secret keyring. Default: B<$HOME/.gnupg/secring.gpg>. -=item B [keyid] +=item B [list of keyids] -An additional keyid to encrypt messages to. Default: none. +Additional keyids to encrypt messages to. Default: none. =item B [string] @@ -203,6 +203,10 @@ This is useful for offline signing. Default: B<0>. Don't export UIDs by default, on which your latest signature is older than this age. Default: B<24*60*60> (i.e. one day). +=item B [string] + +Select the key that is used for signing, in case you have more than one key. + =head2 Mail settings =item B [boolean] @@ -376,26 +380,36 @@ sub generate_config() { ($Cgecos,$Cemail,$Ckeys) = ('#','#','#'); }; - return < # -# if you have a v4 key, it will simply be the last 16 digits of +# If you have a v4 key, it will simply be the last 16 digits of # your fingerprint. # # Example: -# \$CONFIG{'keyid'} = [ qw{FEDCBA9876543210} ]; +# \$CONFIG{'keyid'} = [ qw{FEDCBA9876543210} ]; # or, if you have more than one key: -# \$CONFIG{'keyid'} = [ qw{0123456789ABCDEF 89ABCDEF76543210} ]; +# \$CONFIG{'keyid'} = [ qw{0123456789ABCDEF 89ABCDEF76543210} ]; +$Ckeys\$CONFIG{'keyid'} = [ qw{@keys} ]; + +# Additionally encrypt messages sent to these keyids +#\$CONFIG{'also-encrypt-to'} = [ qw{@keys} ]; -$Ckeys\$CONFIG{'keyid'} = [ qw{@keys} ]; +# Mail template to use for the encrypted part +#\$CONFIG{'mail-template'} = << 'EOM'; EOT + + $template .= "#$_" foreach ; + $template .= "#EOM\n"; + return $template; }; sub check_executable($$) { @@ -452,28 +466,9 @@ sub load_config() { $CONFIG{'key-files'} = () unless defined $CONFIG{'key-files'}; $CONFIG{'mailer-send'} = [] unless defined $CONFIG{'mailer-send'}; die ("$PROGRAM_NAME: mailer-send is not an array ref in $config.\n") unless (ref $CONFIG{'mailer-send'} eq 'ARRAY'); - $CONFIG{'mail-template'} = <<'EOM' unless defined $CONFIG{'mail-template'}; -Hi, - -please find attached the user id{(scalar @uids >= 2 ? 's' : '')}. -{foreach $uid (@uids) { - $OUT .= "\t".$uid."\n"; -};} of your key {$key} signed by me. - -Note that I did not upload your key to any keyservers. -If you have multiple user ids, I sent the signature for each user id -separately to that user id's associated email address. You can import -the signatures by running each through `gpg --import`. - -If you want this new signature to be available to others, please upload -it yourself. With GnuPG this can be done using - gpg --keyserver subkeys.pgp.net --send-key {$key} - -If you have any questions, don't hesitate to ask. - -Regards, -{$owner} -EOM + unless (defined $CONFIG{'mail-template'}) { + $CONFIG{'mail-template'} .= $_ foreach ; + } }; sub make_gpg_fds() { @@ -762,7 +757,14 @@ sub send_mail($$$@) { $gpg->options->meta_interactive( 0 ); my ($inputfd, $stdoutfd, $stderrfd, $statusfd, $handles) = make_gpg_fds(); $gpg->options->push_recipients( $key_id ); - $gpg->options->push_recipients( $CONFIG{'also-encrypt-to'} ) if defined $CONFIG{'also-encrypt-to'}; + if (defined $CONFIG{'also-encrypt-to'}) { + if (ref($CONFIG{'also-encrypt-to'})) { + $gpg->options->push_recipients($_) + foreach @{$CONFIG{'also-encrypt-to'}}; + } else { # old syntax + $gpg->options->push_recipients($CONFIG{'also-encrypt-to'}); + } + } my $pid = $gpg->encrypt(handles => $handles); my ($stdout, $stderr, $status) = readwrite_gpg($message, $inputfd, $stdoutfd, $stderrfd, $statusfd); waitpid $pid, 0; @@ -891,13 +893,18 @@ if ($params->{'version'}) { }; usage(\*STDERR, 1) unless scalar @ARGV >= 1; +$CONFIG{'local-user'} = $params->{'local-user'} if defined $params->{'local-user'}; +$CONFIG{'no-download'} = $params->{'no-download'} if defined $params->{'no-download'}; +$CONFIG{'no-mail'} = $params->{'no-mail'} if defined $params->{'no-mail'}; +$CONFIG{'mail'} = $params->{'mail'} if defined $params->{'mail'}; +$CONFIG{'no-sign'} = $params->{'no-sign'} if defined $params->{'no-sign'}; +push @{$CONFIG{'key-files'}}, @{$params->{'key-files'}} if defined $params->{'key-files'}; - -if ($params->{'local-user'}) { - $USER = $params->{'local-user'}; +if ($CONFIG{'local-user'}) { + $USER = $CONFIG{'local-user'}; $USER =~ s/^0x//i; unless ($USER =~ /^([A-F0-9]{8}|[A-F0-9]{16}|[A-F0-9]{40})$/i) { - print STDERR "-u $USER is not a keyid.\n"; + print STDERR "Local-user $USER is not a keyid.\n"; usage(\*STDERR, 1); }; $USER = uc($USER); @@ -916,13 +923,6 @@ for my $keyid (@ARGV) { push @KEYIDS, uc($keyid); }; -$CONFIG{'no-download'} = $params->{'no-download'} if defined $params->{'no-download'}; -$CONFIG{'no-mail'} = $params->{'no-mail'} if defined $params->{'no-mail'}; -$CONFIG{'mail'} = $params->{'mail'} if defined $params->{'mail'}; -$CONFIG{'no-sign'} = $params->{'no-sign'} if defined $params->{'no-sign'}; -push @{$CONFIG{'key-files'}}, @{$params->{'key-files'}} if defined $params->{'key-files'}; - - ################# # import own keys ################# @@ -1299,3 +1299,29 @@ for my $keyid (@keyids_ok) { }; }; + +########################### +# the default mail template +########################### + +__DATA__ +Hi, + +please find attached the user id{(scalar @uids >= 2 ? 's' : '')} +{foreach $uid (@uids) { + $OUT .= "\t".$uid."\n"; +};}of your key {$key} signed by me. + +If you have multiple user ids, I sent the signature for each user id +separately to that user id's associated email address. You can import +the signatures by running each through `gpg --import`. + +Note that I did not upload your key to any keyservers. If you want this +new signature to be available to others, please upload it yourself. +With GnuPG this can be done using + gpg --keyserver subkeys.pgp.net --send-key {$key} + +If you have any questions, don't hesitate to ask. + +Regards, +{$owner}