docs: 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)