add-gpg-key — add a GPG/PGP key to keyring
Attribute | Pos. | Req. | Default | Description |
---|---|---|---|---|
name | Yes | Name of the CGI variable where the key text can be found. | ||
text |
GPG/PGP key text, specified in-place. If defined, takes precedence over the
CGI variable pointed to by the name= attribute.
|
|||
return_id | 0 | Return key ID upon import? | ||
success |
1
|
Value to return if key import action succeeds. | ||
failure |
undef
|
Value to return if key import action fails. | ||
interpolate | 0 | interpolate output? | ||
hide | 0 | Hide the tag return value? |
This tag imports a GPG/PGP key into the keyring.
Key text can either be specified in-place, or a name of the CGI variable containing the key text can be provided.
Example: Importing a key by specifying CGI variable containing key text
[add-gpg-key name=pgpkeytext return_id=1 failure=FAILED]
Example: Importing a key by specifying key text in-place
[add-gpg-key text="[value pgpkeytext]" return_id=1 failure=FAILED]
Interchange 5.9.0:
Source: code/UI_Tag/add_gpg_key.coretag
Lines: 67
# Copyright 2002-2007 Interchange Development Group and others # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. See the LICENSE file for details. # # $Id: add_gpg_key.coretag,v 1.6 2007-03-30 23:40:54 pajamian Exp $ UserTag add-gpg-key Order name UserTag add-gpg-key addAttr UserTag add-gpg-key Version $Revision: 1.6 $ UserTag add-gpg-key Routine <<EOR sub { my ($name, $opt) = @_; my $gpgexe = $Global::Variable->{GPG_PATH} || 'gpg'; my $outfile = "$Vend::Cfg->{ScratchDir}/$Vend::Session->{id}.gpg_results"; my $flags = "--import --batch 2> $outfile"; #::logDebug("gpg_add flags=$flags"); my $keytext = $opt->{text} || $CGI::values{$name}; $keytext =~ s/^\s+//; $keytext =~ s/\s+$//; open(GPGIMP, "| $gpgexe $flags") or die "Can't fork: $!"; print GPGIMP $keytext; close GPGIMP; if($?) { $::Scratch->{ui_failure} = ::errmsg("Failed GPG key import."); return defined $opt->{failure} ? $opt->{failure} : undef; } else { my $keylist = `$gpgexe --list-keys`; $::Scratch->{ui_message} = ::errmsg( "GPG key imported successfully.<PRE>\n%s\n</PRE>", $keylist, ); } if($opt->{return_id}) { open(GETGPGID, "< $outfile") or do { ::logGlobal("GPG key ID read -- can't read %s: %s", $outfile, $!); return undef; }; my $id; while(<GETGPGID>) { next unless /\bkey\s+(\w+)\s*:\s+(public\s+key|)(.*)(imported|not\s+changed)/i; $id = $1; last; } close GETGPGID; return $id || 'Failed ID get?'; } elsif (defined $opt->{success}) { return $opt->{success}; } else { return 1; } } EOR