def check_idp_settings(self, settings):
    '\n        Checks the IdP settings info.\n        :param settings: Dict with settings data\n        :type settings: dict\n        :returns: Errors found on the IdP settings data\n        :rtype: list\n        '
    assert isinstance(settings, dict)
    errors = []
    if ((not isinstance(settings, dict)) or (len(settings) == 0)):
        errors.append('invalid_syntax')
    elif (not settings.get('idp')):
        errors.append('idp_not_found')
    else:
        idp = settings['idp']
        if (not idp.get('entityId')):
            errors.append('idp_entityId_not_found')
        if (not idp.get('singleSignOnService', {}).get('url')):
            errors.append('idp_sso_not_found')
        elif (not validate_url(idp['singleSignOnService']['url'])):
            errors.append('idp_sso_url_invalid')
        slo_url = idp.get('singleLogoutService', {}).get('url')
        if (slo_url and (not validate_url(slo_url))):
            errors.append('idp_slo_url_invalid')
        if ('security' in settings):
            security = settings['security']
            exists_x509 = bool(idp.get('x509cert'))
            exists_fingerprint = bool(idp.get('certFingerprint'))
            exists_multix509sign = (('x509certMulti' in idp) and ('signing' in idp['x509certMulti']) and idp['x509certMulti']['signing'])
            exists_multix509enc = (('x509certMulti' in idp) and ('encryption' in idp['x509certMulti']) and idp['x509certMulti']['encryption'])
            want_assert_sign = bool(security.get('wantAssertionsSigned'))
            want_mes_signed = bool(security.get('wantMessagesSigned'))
            nameid_enc = bool(security.get('nameIdEncrypted'))
            if ((want_assert_sign or want_mes_signed) and (not (exists_x509 or exists_fingerprint or exists_multix509sign))):
                errors.append('idp_cert_or_fingerprint_not_found_and_required')
            if (nameid_enc and (not (exists_x509 or exists_multix509enc))):
                errors.append('idp_cert_not_found_and_required')
    return errors
Checks the IdP settings info.
:param settings: Dict with settings data
:type settings: dict
:returns: Errors found on the IdP settings data
:rtype: list
def check_idp_settings(self, settings):
    '\n        Checks the IdP settings info.\n        :param settings: Dict with settings data\n        :type settings: dict\n        :returns: Errors found on the IdP settings data\n        :rtype: list\n        '
    assert isinstance(settings, dict)
    errors = []
    if ((not isinstance(settings, dict)) or (len(settings) == 0)):
        errors.append('invalid_syntax')
    elif (not settings.get('idp')):
        errors.append('idp_not_found')
    else:
        idp = settings['idp']
        if (not idp.get('entityId')):
            errors.append('idp_entityId_not_found')
        if (not idp.get('singleSignOnService', {}).get('url')):
            errors.append('idp_sso_not_found')
        elif (not validate_url(idp['singleSignOnService']['url'])):
            errors.append('idp_sso_url_invalid')
        slo_url = idp.get('singleLogoutService', {}).get('url')
        if (slo_url and (not validate_url(slo_url))):
            errors.append('idp_slo_url_invalid')
        if ('security' in settings):
            security = settings['security']
            exists_x509 = bool(idp.get('x509cert'))
            exists_fingerprint = bool(idp.get('certFingerprint'))
            exists_multix509sign = (('x509certMulti' in idp) and ('signing' in idp['x509certMulti']) and idp['x509certMulti']['signing'])
            exists_multix509enc = (('x509certMulti' in idp) and ('encryption' in idp['x509certMulti']) and idp['x509certMulti']['encryption'])
            want_assert_sign = bool(security.get('wantAssertionsSigned'))
            want_mes_signed = bool(security.get('wantMessagesSigned'))
            nameid_enc = bool(security.get('nameIdEncrypted'))
            if ((want_assert_sign or want_mes_signed) and (not (exists_x509 or exists_fingerprint or exists_multix509sign))):
                errors.append('idp_cert_or_fingerprint_not_found_and_required')
            if (nameid_enc and (not (exists_x509 or exists_multix509enc))):
                errors.append('idp_cert_not_found_and_required')
    return errors