[file(s)]
Guncat was designed to tackle a problem encountered with (partially) PGP encrypted files (which may be encountered in, e.g., mailboxes). Tools to process text-files (like grep(1), or less(1)) may be used to process those files, but standard tools like cat(1) leave PGP encrypted sections within such files as-is. As a consequence, browsing the `real' contents (i.e., clear-text sections and the unencrypted contents of PGP encrypted sections) of those files is difficult.
Guncat acts comparably to cat, but unencrypts encrypted sections encountered in the files processed by guncat, copying the unencrypted information to guncat's standard output stream, which may thereupon be processed by other tools.
PGP/GPG encrypted sections are surrounded by
-----BEGIN PGP MESSAGE-----and
-----END PGP MESSAGE-----markers. Whenever guncat encounters such sections they will be processed by gpg(1). Gpg needs a passphrase to unencrypt such sections. The required passphrase may be provided to guncat, which then forwards the passphrase to gpg.
When providing an incorrect passphrase to guncat two additional attempts to provide the correct passphrase are provided. If the third attempt also fails, guncat terminates. Furthermore, when an incorrect passphrase is provided, the currently processed file must be reset to the beginning of the encrypted section. This implies that the processed file must be seekable. If the file does not support seeking operations then guncat also terminates.
Guncat returns 0 to the operating system unless an error occurs (0 is also
returned when the option --show-gpg
) is specified.
When no file arguments are provided (or when - is provided) the standard input stream is processed.
When option --passphrase
is specified the first line of the first file
that is processed is read as the passphrase to use. When a thus specified
passphrase is incorrect, guncat terminates.
Any other argument is considered a file (path specifications are allowed) to be processed in sequence by guncat.
If an argument does not refer to a readable file, guncat terminates with an error message.
Where available, single letter options are listed between parentheses following their associated long-option variants. Single letter options require arguments if their associated long options require arguments as well.
--errors-OK
the input s continue
to be processed even if gpg returns a non-zero exit value.
path
/usr/bin/gpg
)
path
(-m)
option
(-m)option
to gpg's call. If the option contains blanks, surround
option
by single or double quotes. Option gpg-option
may
repeatedly be specified.
--passphrase
can be specified to read the passphrase from the
first line of the first input stream that is read by guncat. In that case
the input stream's first line is (of course) not written to the output
stream. When the --passphrase
option is specified and the provided
password is incorrect, guncat terminates.
seconds
(-T)--time-limit
is used to specify the max. time in seconds
that gpg is allowed to run while decrypting a single encrypted
section. By default no time limit is used. This option is useful when
the file to process might contain errors in encrypted sections (like a
missing END PGP MESSAGE
line).
--no-tty
is not specified when calling gpg. By default it is
specified.
[0-2]
--quiet
is specified; with --verbose 0
gpg's option
--no-verbose
is specified; otherwise --verbose
is specified
once or twice.
cat(1), gpg(1), grep(1), less(1).
https://fbb-git.gitlab.io/guncat/