(self, file, default_key=None, passphrase=None,
                   clearsign=True, detach=False, binary=False,
                   digest_algo='SHA512')
return result
Create a signature for a file.

        :param file: The file stream (i.e. it's already been open()'d) to sign.
        :param str default_key: The key to sign with.
        :param str passphrase: The passphrase to pipe to stdin.
        :param bool clearsign: If True, create a cleartext signature.
        :param bool detach: If True, create a detached signature.
        :param bool binary: If True, do not ascii armour the output.
        :param str digest_algo: The hash digest to use. Again, to see which
                                hashes your GnuPG is capable of using, do:
                                ``$ gpg --with-colons --list-config
                                digestname``. The default, if unspecified, is
                                ``'SHA512'``.
Create a signature for a file.
Create a signature for a file .
def _sign_file(self, file, default_key=None, passphrase=None,
                   clearsign=True, detach=False, binary=False,
                   digest_algo='SHA512'):
        """Create a signature for a file.

        :param file: The file stream (i.e. it's already been open()'d) to sign.
        :param str default_key: The key to sign with.
        :param str passphrase: The passphrase to pipe to stdin.
        :param bool clearsign: If True, create a cleartext signature.
        :param bool detach: If True, create a detached signature.
        :param bool binary: If True, do not ascii armour the output.
        :param str digest_algo: The hash digest to use. Again, to see which
                                hashes your GnuPG is capable of using, do:
                                ``$ gpg --with-colons --list-config
                                digestname``. The default, if unspecified, is
                                ``'SHA512'``.
        """
        log.debug("_sign_file():")
        if binary:
            log.info("Creating binary signature for file %s" % file)
            args = ['--sign']
        else:
            log.info("Creating ascii-armoured signature for file %s" % file)
            args = ['--sign --armor']

        if clearsign:
            args.append("--clearsign")
            if detach:
                log.warn("Cannot use both --clearsign and --detach-sign.")
                log.warn("Using default GPG behaviour: --clearsign only.")
        elif detach and not clearsign:
            args.append("--detach-sign")

        if default_key:
            args.append(str("--default-key %s" % default_key))

        args.append(str("--digest-algo %s" % digest_algo))

        ## We could use _handle_io here except for the fact that if the
        ## passphrase is bad, gpg bails and you can't write the message.
        result = self._result_map['sign'](self)

        ## If the passphrase is an empty string, the message up to and
        ## including its first newline will be cut off before making it to the
        ## GnuPG process. Therefore, if the passphrase='' or passphrase=b'',
        ## we set passphrase=None.  See Issue #82:
        ## https://github.com/isislovecruft/python-gnupg/issues/82
        if _util._is_string(passphrase):
            passphrase = passphrase if len(passphrase) > 0 else None
        elif _util._is_bytes(passphrase):
            passphrase = s(passphrase) if len(passphrase) > 0 else None
        else:
            passphrase = None

        proc = self._open_subprocess(args, passphrase is not None)
        try:
            if passphrase:
                _util._write_passphrase(proc.stdin, passphrase, self._encoding)
            writer = _util._threaded_copy_data(file, proc.stdin)
        except IOError as ioe:
            log.exception("Error writing message: %s" % str(ioe))
            writer = None
        self._collect_output(proc, result, writer, proc.stdin)
        return result
def _sign_file ( self , file , default_key = None , passphrase = None , clearsign = True , detach = False , binary = False , digest_algo = 'SHA512' ) : log . debug ( "_sign_file():" ) if binary : log . info ( "Creating binary signature for file %s" % file ) args = [ '--sign' ] else : log . info ( "Creating ascii-armoured signature for file %s" % file ) args = [ '--sign --armor' ] if clearsign : args . append ( "--clearsign" ) if detach : log . warn ( "Cannot use both --clearsign and --detach-sign." ) log . warn ( "Using default GPG behaviour: --clearsign only." ) elif detach and not clearsign : args . append ( "--detach-sign" ) if default_key : args . append ( str ( "--default-key %s" % default_key ) ) args . append ( str ( "--digest-algo %s" % digest_algo ) ) ## We could use _handle_io here except for the fact that if the ## passphrase is bad, gpg bails and you can't write the message. result = self . _result_map [ 'sign' ] ( self ) ## If the passphrase is an empty string, the message up to and ## including its first newline will be cut off before making it to the ## GnuPG process. Therefore, if the passphrase='' or passphrase=b'', ## we set passphrase=None.  See Issue #82: ## https://github.com/isislovecruft/python-gnupg/issues/82 if _util . _is_string ( passphrase ) : passphrase = passphrase if len ( passphrase ) > 0 else None elif _util . _is_bytes ( passphrase ) : passphrase = s ( passphrase ) if len ( passphrase ) > 0 else None else : passphrase = None proc = self . _open_subprocess ( args , passphrase is not None ) try : if passphrase : _util . _write_passphrase ( proc . stdin , passphrase , self . _encoding ) writer = _util . _threaded_copy_data ( file , proc . stdin ) except IOError as ioe : log . exception ( "Error writing message: %s" % str ( ioe ) ) writer = None self . _collect_output ( proc , result , writer , proc . stdin ) return result