EnglishFrenchSpanish

OnWorks favicon

gpgwrap - Online in the Cloud

Run gpgwrap in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command gpgwrap that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


gpgwrap - a small wrapper for gpg

SYNOPSIS


gpgwrap -V

gpgwrap -P [-v] [-i] [-a] [-p <file>]

gpgwrap -F [-v] [-i] [-a] [-c] [-p <file>] [-o <name>] [--] <file> [<file> ... ]

gpgwrap [-v] [-i] [-a] [-p <file>] [-o <name>] [--] gpg [gpg options]

DESCRIPTION


The GNU Privacy Guard (gpg) supplies the option --passphrase-fd. This instructs gpg to
read the passphrase from the given file descriptor. Usually this file descriptor is opened
before gpg is executed via execvp(3). Exactly that is what gpgwrap is doing. The
passphrase may be passed to gpgwrap in 4 ways:

* as file path, whereat the passphrase is stored as plain text in the file

* it is piped from another program to the stdin of gpgwrap

* through the GPGWRAP_PASSPHRASE environment variable

* gpgwrap prompts for it

With no precautions the first point undermines the secure infrastructure gpg provides. But
in pure batch oriented environments this may be what you want. Otherwise if you are
willing to enter passphrases once and don't want them to be stored as plain text in a file
gpg-agent is what you are looking for. Another security objection could be the use of the
environment variable GPGWRAP_PASSPHRASE which contains the passphrase and may be read by
other processes of the same user.

OPTIONS


-V, --version
Print out version and exit.

-P, --print
Get the passphrase and print it mangled to stdout.

-F, --file
Read gpg commands from the given files. If <file> is - it is read from stdin.
Exactly one command per line is expected. The given line is handled in the
following way:

* In the first place the passphrase is mangled. This means that unusual characters
are replaced by their backslash escaped octal numbers.

* Secondly the mangled passphrase is stored in the environment variable
GPGWRAP_PASSPHRASE.

* "exec gpgwrap -- " is prepended to each line, before the result is passed as
argument to "sh -c".

-h, --help
Print out usage information.

-v, --verbose
Increase verbosity level.

-i, --interactive
Always prompt for passphrase (ignores -p and the environment variable).

-a, --ask-twice
Ask twice if prompting for a passphrase.

-c, --check-exit-code
While reading gpg commands from a file, gpgwrap ignores per default the exit code
of its child processes. This option enables the check of the exit code. If a child
terminates abnormal or with an exit code not equal 0 gpgwrap stops immediately and
does return with this exit code. See also section BUGS.

-p <file>, --passphrase-file <file>
Read passphrase from <file>. If <file> is - it is read from stdin. The passphrase
is expected to be in plain text. If this option is not given the passphrase will
be taken either from the environment variable GPGWRAP_PASSPHRASE or it will be
prompted on the controlling tty if the environment variable is not set.

-o <name>, --option-name <name>
Specify the name of the "--passphrase-fd" option understood by the program to be
executed. This is useful if you want to use gpgwrap in combination with other
programs than gpg.

LIMITATIONS


The given passphrase is subject to several limitations depending on the way it was passed
to gpgwrap:

* There is a size limitation: the passphrase should be not larger than some
kilobytes (examine the source code for the exact limit).

* gpgwrap allows you to use all characters in a passphrase even \000, but this does
not mean that gpg will accept it. gpg may reject your passphrase or may only read
a part of it, if it contains characters like \012 (in C also known as \n).

* If you set the environment variable GPGWRAP_PASSPHRASE you should take special
care with the backslash character, because gpgwrap uses backslash to escape octal
numbers, (see option -F). Therefore write backslash itself as octal number: \134.

EXAMPLES


1.
gpgwrap -p /path/to/a/secret/file \
gpg -c -z 0 --batch --no-tty \
--cipher-algo blowfish < infile > outfile

Read passphrase from /path/to/a/secret/file and execute gpg to do symmetric
encryption of infile and write it to outfile.

2.
gpgwrap -i -a \
gpg -c -z 0 --batch --no-tty \
--cipher-algo blowfish < infile > outfile

Same as above except that gpgwrap prompts twice for the passphrase.

3.
gpgwrap -F -i - <<EOL
gpg --decrypt --batch --no-tty < "$HOME/infile1" > "$HOME/outfile1"
gpg --decrypt --batch --no-tty < "$HOME/infile2" > "$HOME/outfile2"
gpg --decrypt --batch --no-tty < "$HOME/infile3" > "$HOME/outfile3"
gpg --decrypt --batch --no-tty < "$HOME/infile4" > "$HOME/outfile4"
EOL

gpgwrap prompts for the passphrase and executes four instances of gpg to decrypt
the given files.

4.
GPGWRAP_PASSPHRASE="mysecretpassphrase"
export GPGWRAP_PASSPHRASE
gpgwrap -F -c -v /tmp/cmdfile1 - /tmp/cmdfile2 <<EOL
gpg --decrypt --batch --no-tty < "$HOME/infile1" > "$HOME/outfile1"
gpg --decrypt --batch --no-tty < "$HOME/infile2" > "$HOME/outfile2"
gpg --decrypt --batch --no-tty < "$HOME/infile3" > "$HOME/outfile3"
gpg --decrypt --batch --no-tty < "$HOME/infile4" > "$HOME/outfile4"
EOL

Same as above except that gpgwrap gets the passphrase via the environment
variable, reads commands additionally from other files and checks the exit code of
every gpg instance. This means if one gpg command has a non zero exit code, no
further commands are executed. Furthermore gpgwrap produces verbose output.

5.
GPGWRAP_PASSPHRASE="$(gpgwrap -P -i -a)"
export GPGWRAP_PASSPHRASE

find . -maxdepth 1 -type f |
while read FILE; do
FILE2="$FILE.bz2.gpg"
bzip2 -c "$FILE" |
gpgwrap gpg -c -z 0 --batch --no-tty \
--cipher-algo blowfish > "$FILE2" &&
touch -r "$FILE" "$FILE2" &&
rm -f "$FILE"
done

Read in passphrase, compress all files in the current directory, encrypt them and
keep date from original file.

6.
find . -maxdepth 1 -type f -name '*.bz2.gpg' |
awk '{
printf("gpg --decrypt --batch --no-tty --quiet ");
printf("--no-secmem-warning < %s\n", $0);
}' |
gpgwrap -F -i -c - |
bzip2 -d -c - |
grep -i 'data'

Decrypt all *.bz2.gpg files in the current directory, decompress them and print
out all occurances of data. If you pipe the result to less you get into trouble
because gpgwrap and less try to read from the TTY at the same time. In such a case
it is better to use the environment variable to give the passphrase (the example
above shows how to do this).

7.
GPGWRAP_PASSPHRASE="$(gpgwrap -P -i -a)"
export GPGWRAP_PASSPHRASE

gpgwrap -P |
ssh -C -x -P -l user host "
GPGWRAP_PASSPHRASE=\"\$(cat)\"
...
"

Prompt for a passphrase twice and write it to the GPGWRAP_PASSPHRASE environment
variable.

8.
echo -n "Passphrase: "
stty -echo
read GPGWRAP_PASSPHRASE
echo
stty echo
export GPGWRAP_PASSPHRASE

Another way to prompt manually for the passphrase. It was needed in combination
with older versions of gpgwrap, because they did not upport -P. Be aware that with
this method no automatic conversion to backslash escaped octal numbers takes
place.

9.
echo "mysecretpassphrase" |
gpg --batch --no-tty --passphrase-fd 0 \
--output outfile --decrypt infile

Cheap method to give passphrase to gpg without gpgwrap. Note that you can't use
stdin to pass a file to gpg, because stdin is already used for the passphrase.

10.
gpg --batch --no-tty \
--passphrase-fd 3 3< /path/to/a/secret/file \
< infile > outfile

This is a more advanced method to give the passphrase, it is equivalent to Option
-p of gpgwrap. This example should at least work with the bash.

11.
gpg --batch --no-tty --passphrase-fd 3 \
3< <(echo "mysecretpassphrase") \
< infile > outfile

Like above, but the passphrase is given directly. This example should at least
work with the bash.

Use gpgwrap online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    GenX
    GenX
    GenX is a scientific program to refine
    x-ray refelcetivity, neutron
    reflectivity and surface x-ray
    diffraction data using the differential
    evolution algorithm....
    Download GenX
  • 2
    pspp4windows
    pspp4windows
    PSPP is a program for statistical
    analysis of sampled data. It is a free
    replacement for the proprietary program
    SPSS. PSPP has both text-based and
    graphical us...
    Download pspp4windows
  • 3
    Git Extensions
    Git Extensions
    Git Extensions is a standalone UI tool
    for managing Git repositories. It also
    integrates with Windows Explorer and
    Microsoft Visual Studio
    (2015/2017/2019). Th...
    Download Git Extensions
  • 4
    eSpeak: speech synthesis
    eSpeak: speech synthesis
    Text to Speech engine for English and
    many other languages. Compact size with
    clear but artificial pronunciation.
    Available as a command-line program with
    many ...
    Download eSpeak: speech synthesis
  • 5
    Sky Chart / Cartes du Ciel
    Sky Chart / Cartes du Ciel
    SkyChart is a software to draw chart of
    the night sky for the amateur astronomer
    from a bunch of stars and nebulae
    catalogs. See main web page for full
    download...
    Download Sky Chart / Cartes du Ciel
  • 6
    GSmartControl
    GSmartControl
    GSmartControl is a graphical user
    interface for smartctl. It allows you to
    inspect the hard disk and solid-state
    drive SMART data to determine its
    health, as w...
    Download GSmartControl
  • More »

Linux commands

  • 1
    abc2abc
    abc2abc
    abc2abc - a simple abc
    checker/re-formatter/transposer ...
    Run abc2abc
  • 2
    abc2ly
    abc2ly
    abc2ly - manual page for abc2ly
    (LilyPond) 2.18.2 ...
    Run abc2ly
  • 3
    coqmktop
    coqmktop
    coqmktop - The Coq Proof Assistant
    user-tactics linker ...
    Run coqmktop
  • 4
    coqtop
    coqtop
    coqtop - The Coq Proof Assistant
    toplevel system ...
    Run coqtop
  • 5
    g.copygrass
    g.copygrass
    g.copy - Copies available data files in
    the current mapset search path to the
    user�s current mapset. KEYWORDS:
    general, map management ...
    Run g.copygrass
  • 6
    g.dirsepsgrass
    g.dirsepsgrass
    g.dirseps - Internal GRASS utility for
    converting directory separator
    characters. Converts any directory
    separator characters in the input string
    to or from na...
    Run g.dirsepsgrass
  • More »

Ad