Add decrypt_bytes() and verify_bytes().
Create the encrypted test input with:
$ echo 'Success!' | gpg --no-verbose --quiet --batch --output -
--armor --textmode --encrypt --always-trust
--recipient pgp-mime@invalid.com
Create the signed and encrypted test input with:
$ echo 'Success!' | gpg --no-verbose --quiet --batch --output -
--armor --textmode --sign --encrypt --always-trust
--local-user pgp-mime@invalid.com --recipient pgp-mime@invalid.com
Created the detached signature test input with:
$ echo 'Success!' | gpg --no-verbose --quiet --batch --output -
--armor --textmode --detach-sign --always-trust
--local-user pgp-mime@invalid.com
Verification with a detached signature is the tricky bit. We are
piping the signed data in via stdout. To avoid opening a temporary
file, we need to pipe the signature in through another pipe. The new
`thread_pipe()` function opens that pipe, and spawns a thread writing
the signature data, and the `--enable-special-filenames` option lets
us specify the read-descriptor with the `-&n` syntax.
The threading avoids deadlocking with `execute()`'s `communicate()`
call, and makes cleanup of the write-descriptor easier.