gpg-zip : passphrase as parameter for scripts

Arno Steffen arno.steffen at googlemail.com
Tue Apr 5 16:01:08 CEST 2011


This gpg-zip is some shell script, which is installed together with
gpg to handle not just files, but to pack them.
I am not expert enough to check or change that script:

#!/bin/sh

# gpg-archive - gpg-ized tar using the same format as PGP's PGP Zip.
# Copyright (C) 2005 Free Software Foundation, Inc.
#
# This file is part of GnuPG.
#
# GnuPG 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 3 of the License, or
# (at your option) any later version.
#
# GnuPG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
# Despite the name, PGP Zip format is actually an OpenPGP-wrapped tar
# file.  To be compatible with PGP itself, this must be a USTAR format
# tar file.  Unclear on whether there is a distinction here between
# the GNU or POSIX variant of USTAR.

VERSION=1.4.10
TAR=/bin/tar
GPG=gpg

usage="\
Usage: gpg-zip [--help] [--version] [--encrypt] [--decrypt] [--symmetric]
       [--list-archive] [--output FILE] [--gpg GPG] [--gpg-args ARGS]
       [--tar TAR] [--tar-args ARGS] filename1 [filename2, ...]
       directory1 [directory2, ...]

Encrypt or sign files into an archive."

while test $# -gt 0 ; do
  case $1 in
    -h | --help | --h*)
      echo "$usage"
      exit 0
      ;;
    --list-archive)
      list=yes
      create=no
      unpack=no
      shift
      ;;
    --encrypt | -e)
      gpg_args="$gpg_args --encrypt"
      list=no
      create=yes
      unpack=no
      shift
      ;;
    --decrypt | -d)
      gpg_args="$gpg_args --decrypt"
      list=no
      create=no
      unpack=yes
      shift
      ;;
    --symmetric | -c)
      gpg_args="$gpg_args --symmetric"
      list=no
      create=yes
      unpack=no
      shift
      ;;
    --sign | -s)
      gpg_args="$gpg_args --sign"
      list=no
      create=yes
      unpack=no
      shift
      ;;
    --recipient | -r)
      gpg_args="$gpg_args --recipient $2"
      shift
      shift
      ;;
    --local-user | -u)
      gpg_args="$gpg_args --local-user $2"
      shift
      shift
      ;;
    --output | -o)
      gpg_args="$gpg_args --output $2"
      shift
      shift
      ;;
    --version)
      echo "gpg-zip (GnuPG) $VERSION"
      exit 0
      ;;
    --gpg)
      GPG=$1
      shift
      ;;
    --gpg-args)
      gpg_args="$gpg_args $2"
      shift
      shift
      ;;
    --tar)
      TAR=$1
      shift
      ;;
    --tar-args)
      tar_args="$tar_args $2"
      shift
      shift
      ;;
    --)
      shift
      break
      ;;
    -*)
      echo "$usage" 1>&2
      exit 1
      ;;
    *)
      break
      ;;
  esac
done

if test x$create = xyes ; then
#   echo "$TAR -cf - "$@" | $GPG --set-filename x.tar $gpg_args" 1>&2
   $TAR -cf - "$@" | $GPG --set-filename x.tar $gpg_args
elif test x$list = xyes ; then
#   echo "cat \"$1\" | $GPG $gpg_args | $TAR $tar_args -tf -" 1>&2
   cat "$1" | $GPG $gpg_args | $TAR $tar_args -tf -
elif test x$unpack = xyes ; then
#   echo "cat \"$1\" | $GPG $gpg_args | $TAR $tar_args -xvf -" 1>&2
   cat "$1" | $GPG $gpg_args | $TAR $tar_args -xvf -
else
   echo "$usage" 1>&2
   exit 1
fi




2011/4/4 Lee Elcocks <l_elcocks at hotmail.co.uk>:
> i dont know of this command --gpg-args, and by the looks of it, neither does
> GPG (that's what the errors telling you)
>
>
> echo passphrase| gpg-zip --gpg-args --passphrase-fd -o test.gpg -s
>
> The line should be
>
> echo passphrase| gpg-zip --gpg-args --passphrase-fd 0
>
> I also dont know of gpg-zip, and neither does GPG, thats what the error is
> telling you.
>
>
>
>
>
>> Date: Mon, 4 Apr 2011 16:43:08 +0200
>> Subject: Re: gpg-zip : passphrase as parameter for scripts
>> From: arno.steffen at googlemail.com
>> To: l_elcocks at hotmail.co.uk
>>
>> 2011/4/4 Lee Elcocks <l_elcocks at hotmail.co.uk>:
>> > Try also using --batch when automating.
>> >
>> >> Date: Mon, 4 Apr 2011 03:02:08 -0700
>> >> From: arno.steffen at googlemail.com
>> >> To: gnupg-users at gnupg.org
>> >> Subject: gpg-zip : passphrase as parameter for scripts
>> >>
>> >>
>> >> I am using in a script, with more than one of this kind of lines:
>> >>
>> >> #!/bin/sh
>> >> /usr/local/bin/gpg-zip -o /opt/u1.tar.gpg -s /opt/1*
>> >> /usr/local/bin/gpg-zip -o /opt/u2.tar.gpg -s /opt/2*
>> >> ...
>> >>
>> >> I have to answer every line with question for passphrase. This sucks.
>> >>
>> >> I have seen there is a parameter --gpg-args where I can pass args to
>> >> gpg.
>> >> But I don't get this working with some kind of
>> >>
>> >> echo 'passphrase' | gpg-zip --gpg-args --passphrase-fd -o ... - s
>> >>
>> >> Anybody an idea how this is working?
>> >>
>> >> Best regards
>> >> Arno
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> >> http://old.nabble.com/gpg-zip-%3A-passphrase-as-parameter-for-scripts-tp31312954p31312954.html
>> >> Sent from the GnuPG - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >> _______________________________________________
>> >> Gnupg-users mailing list
>> >> Gnupg-users at gnupg.org
>> >> http://lists.gnupg.org/mailman/listinfo/gnupg-users
>> >
>>
>> This all doesn't seems to help:
>>
>> $echo passphrase| gpg-zip -o test.gpg -s comp_prod_build.sh --gpg-args
>> --passphrase-fd 0
>> /bin/tar: Unknown Option „--gpg-args“
>> „tar --help“ oder „tar --usage“ gives further Informationen.
>>
>>
>> $echo passphrase| gpg-zip --gpg-args --passphrase-fd -o test.gpg -s
>> comp_prod_build.sh
>> Reading passphrase from file descriptor 0
>> Call: gpg [Optionen] [Dateiname]
>>
>>
>> $ echo SensoPart| gpg-zip --gpg-args --passphrase-fd 0 -o test.gpg -s *
>> Usage: gpg-zip [--help] [--version] [--encrypt] [--decrypt] [--symmetric]
>> [--list-archive] [--output FILE] [--gpg GPG] [--gpg-args ARGS]
>> [--tar TAR] [--tar-args ARGS] filename1 [filename2, ...]
>> directory1 [directory2, ...]
>> Encrypt or sign files into an archive.
>



More information about the Gnupg-users mailing list