def encrypt_file(self, data_file, recipients, sign_key=None, passphrase=None,
                     always_trust=False, output_filename=None, binary=False, symmetric=False):
        '''
        Sign/Encrypt file

        :param data_file: File-like object containing data
        :param recipients: Single key ID or list of mutiple IDs. Will be ignored if symmetric
        :param sign_key: Key for signing data before encryption. No sign will be made when not given
        :param passphrase: Password for key or symmetric cipher
        :param always_trust: Skip key validation and assume that used keys are always fully trusted
        :param output_filename: Encrypted data will be written to file when not None
        :param binary: If false, create ASCII armored output
        :param symmetric: Encrypt with symmetric cipher only
        :rtype: EncryptResult
        '''
        if symmetric:
            args = ['--symmetric']
        else:
            args = ['--encrypt']
            for recipient in make_list(recipients):
                args += ('--recipient', recipient)
        if not binary:
            args.append('--armor')
        if output_filename:
            if os.path.exists(output_filename):
                # to avoid overwrite confirmation message
                os.remove(output_filename)
            args += ('--output', output_filename)
        if sign_key:
            args += ('--sign', '--local-user', sign_key)
        if always_trust:
            #args.append ('--always-trust')
            args += ('--trust-model', 'always')
        return self.execute(EncryptResult(), args, passphrase if passphrase is not None else '', data_file, True)
Sign/Encrypt file

        :param data_file: File-like object containing data
        :param recipients: Single key ID or list of mutiple IDs. Will be ignored if symmetric
        :param sign_key: Key for signing data before encryption. No sign will be made when not given
        :param passphrase: Password for key or symmetric cipher
        :param always_trust: Skip key validation and assume that used keys are always fully trusted
        :param output_filename: Encrypted data will be written to file when not None
        :param binary: If false, create ASCII armored output
        :param symmetric: Encrypt with symmetric cipher only
        :rtype: EncryptResult