def process_file_autodetect(self, data, name):
        """
        Processes a single file - format autodetection
        :param data:
        :param name:
        :return:
        """
        is_ssh_file = startswith(data, 'ssh-rsa') or contains(data, 'ssh-rsa ')
        is_pgp_file = startswith(data, '-----BEGIN PGP')
        is_pkcs7_file = startswith(data, '-----BEGIN PKCS7')
        is_pem_file = startswith(data, '-----BEGIN') and not is_pgp_file
        is_ldiff_file = contains(data, 'binary::')

        is_pgp = is_pgp_file or (self.file_matches_extensions(name, ['pgp', 'gpg', 'key', 'pub', 'asc'])
                                 and not is_ssh_file
                                 and not is_pem_file)
        is_pgp |= self.args.file_pgp

        is_crt_ext = self.file_matches_extensions(name, ['der', 'crt', 'cer', 'cert', 'x509', 'key', 'pub', 'ca'])

        is_pem = self.file_matches_extensions(name, 'pem') or is_pem_file
        is_pem |= self.args.file_pem

        is_der = not is_pem and not is_ssh_file and not is_pgp_file and is_crt_ext
        is_der |= self.args.file_der

        is_ssh = self.file_matches_extensions(name, ['ssh', 'pub']) or is_ssh_file
        is_ssh |= self.args.file_ssh

        is_apk = self.file_matches_extensions(name, 'apk')

        is_mod = self.file_matches_extensions(name, ['txt', 'mod', 'mods', 'moduli'])
        is_mod |= not is_pem and not is_der and not is_pgp and not is_ssh_file and not is_apk
        is_mod |= self.args.file_mod

        is_json = self.file_matches_extensions(name, ['json', 'js']) or startswith(data, '{') or startswith(data, '[')
        is_json |= self.args.file_json

        is_ldiff = self.file_matches_extensions(name, ['ldiff', 'ldap']) or is_ldiff_file
        is_ldiff |= self.args.file_ldiff

        is_jks = self.file_matches_extensions(name, ['jks', 'bks'])
        is_pkcs7 = self.file_matches_extensions(name, ['pkcs7', 'p7s', 'p7'])
        is_pkcs7 |= is_pkcs7_file
        is_pkcs7 |= self.args.file_pkcs7

        det = is_pem or is_der or is_pgp or is_ssh or is_mod or is_json or is_apk or is_ldiff or is_jks
        ret = []
        if is_pem:
            logger.debug('processing %s as PEM' % name)
            ret.append(self.process_pem(data, name))

        if is_der:
            logger.debug('processing %s as DER' % name)
            ret.append(self.process_der(data, name))

        if is_pgp:
            logger.debug('processing %s as PGP' % name)
            ret.append(self.process_pgp(data, name))

        if is_ssh:
            logger.debug('processing %s as SSH' % name)
            ret.append(self.process_ssh(data, name))

        if is_json:
            logger.debug('processing %s as JSON' % name)
            ret.append(self.process_json(data, name))

        if is_apk:
            logger.debug('processing %s as APK' % name)
            ret.append(self.process_apk(data, name))

        if is_mod:
            logger.debug('processing %s as MOD' % name)
            ret.append(self.process_mod(data, name))

        if is_ldiff:
            logger.debug('processing %s as LDIFF' % name)
            ret.append(self.process_ldiff(data, name))

        if is_jks:
            logger.debug('processing %s as JKS' % name)
            ret.append(self.process_jks(data, name))

        if is_pkcs7:
            logger.debug('processing %s as PKCS7' % name)
            ret.append(self.process_pkcs7(data, name))

        if not det:
            logger.debug('Undetected (skipped) file: %s' % name)
        return ret
Processes a single file - format autodetection
        :param data:
        :param name:
        :return: