Crypt/GPG.php
public function encryptAndSignFile(
        $filename,
        $signedFile = null,
        $armor = self::ARMOR_ASCII
    ) {
        return $this->_encryptAndSign($filename, true, $signedFile, $armor);
    }
public function encryptAndSignFile(
        $filename,
        $signedFile = null,
        $armor = self::ARMOR_ASCII
    ) {
        return $this->_encryptAndSign($filename, true, $signedFile, $armor);
    }
Encrypts and signs a file

The file is encrypted and signed in a single pass.

NOTE: Until GnuPG version 1.4.10, it was not possible to verify
encrypted-signed files without decrypting them at the same time. If you
try to use {@link Crypt_GPG::verify()} method on encrypted-signed files
with earlier GnuPG versions, you will get an error. Please use
{@link Crypt_GPG::decryptAndVerifyFile()} to verify encrypted-signed
files.

@param string  $filename   the name of the file containing the data to
be encrypted and signed.
@param string  $signedFile optional. The name of the file in which the
encrypted, signed data should be stored. If
null or unspecified, the encrypted, signed
data is returned as a string.
@param boolean $armor      optional. If true, ASCII armored data is
returned; otherwise, binary data is returned.
Defaults to true.

@return void|string if the <kbd>$signedFile</kbd> parameter is null, a
string containing the encrypted, signed data is
returned.

@throws Crypt_GPG_KeyNotFoundException if no encryption key is specified
or if no signing key is specified. See
{@link Crypt_GPG::addEncryptKey()} and
{@link Crypt_GPG::addSignKey()}.

@throws Crypt_GPG_BadPassphraseException if a specified passphrase is
incorrect or if a required passphrase is not specified.

@throws Crypt_GPG_FileException if the output file is not writeable or
if the input file is not readable.

@throws Crypt_GPG_Exception if an unknown or unexpected error occurs.
Use the <kbd>debug</kbd> option and file a bug report if these
exceptions occur.

@see Crypt_GPG::decryptAndVerifyFile()