X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=common-src%2Famgpgcrypt.pl;h=8795dd59037e5dc2a74a00327863ede7dcb180c5;hb=HEAD;hp=e746c0e54db7e647d1ef48cba292b71f4194f0a8;hpb=2627875b7d18858bc1f9f7652811e4d8c15a23eb;p=debian%2Famanda diff --git a/common-src/amgpgcrypt.pl b/common-src/amgpgcrypt.pl index e746c0e..8795dd5 100755 --- a/common-src/amgpgcrypt.pl +++ b/common-src/amgpgcrypt.pl @@ -1,10 +1,11 @@ #!@PERL@ -w # -# Copyright (c) 2005-2008 Zmanda Inc. All Rights Reserved. +# Copyright (c) 2007-2012 Zmanda, Inc. All Rights Reserved. # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published -# by the Free Software Foundation. +# 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. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY @@ -15,7 +16,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# Contact information: Zmanda Inc, 465 S Mathlida Ave, Suite 300 +# Contact information: Zmanda Inc, 465 S. Mathilda Ave., Suite 300 # Sunnyvale, CA 94086, USA, or: http://www.zmanda.com # @@ -46,13 +47,37 @@ $ENV{'PATH'} = '/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin:/opt/csw/bin'; $ENV{'GNUPGHOME'} = "$AMANDA_HOME/.gnupg"; +sub do_gpg_agent() { + my $path=`which gpg-agent 2>/dev/null`; + chomp $path; + if (-x $path) { + return "gpg-agent --daemon --"; + } + return "" +} + +sub which_gpg() { + my $path=`which gpg2 2>/dev/null`; + if (!$path) { + $path=`which gpg 2>/dev/null`; + } + if (!$path) { + die("no gpg or gpg2"); + } + chomp $path; + return $path; +} + sub encrypt() { -# system "gpg --armor --encrypt --recipient $AMANDA"; - system "gpg --batch --disable-mdc --encrypt --cipher-algo AES256 --recipient $AMANDA"; + my $gpg_agent_cmd = do_gpg_agent(); + my $gpg = which_gpg(); + system "$gpg_agent_cmd $gpg --batch --disable-mdc --encrypt --cipher-algo AES256 --recipient $AMANDA"; } sub decrypt() { - system "gpg --batch --quiet --no-mdc-warning --secret-keyring $AM_PRIV --decrypt --passphrase-fd 3 3<$AM_PASS"; + my $gpg_agent_cmd = do_gpg_agent(); + my $gpg = which_gpg(); + system "$gpg_agent_cmd $gpg --batch --quiet --no-mdc-warning --secret-keyring $AM_PRIV --decrypt --passphrase-fd 3 3<$AM_PASS"; } sub my_sig_catcher {