verify_krb5_conf: sort entries, remove duplicates
Change-Id: I23dc60b4c48bcf08ed9ad687ee792366b25db3d7
This commit is contained in:
		| @@ -409,20 +409,20 @@ struct entry libdefaults_entries[] = { | ||||
|     { "kdc_timeout", krb5_config_string, check_time, 0 }, | ||||
|     { "kdc_timesync", krb5_config_string, check_boolean, 0 }, | ||||
|     { "log_utc", krb5_config_string, check_boolean, 0 }, | ||||
|     { "max_retries", krb5_config_string, check_time, 0 }, | ||||
|     { "maxretries", krb5_config_string, check_numeric, 0 }, | ||||
|     { "no-addresses", krb5_config_string, check_boolean, 0 }, | ||||
|     { "proxiable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "renew_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "scan_interfaces", krb5_config_string, check_boolean, 0 }, | ||||
|     { "srv_lookup", krb5_config_string, check_boolean, 0 }, | ||||
|     { "srv_try_txt", krb5_config_string, check_boolean, 0 }, | ||||
|     { "ticket_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "time_format", krb5_config_string, NULL, 0 }, | ||||
|     { "transited_realms_reject", krb5_config_string, NULL, 0 }, | ||||
|     { "no-addresses", krb5_config_string, check_boolean, 0 }, | ||||
|     { "v4_instance_resolve", krb5_config_string, check_boolean, 0 }, | ||||
|     { "v4_name_convert", krb5_config_list, v4_name_convert_entries, 0 }, | ||||
|     { "verify_ap_req_nofail", krb5_config_string, check_boolean, 0 }, | ||||
|     { "max_retries", krb5_config_string, check_time, 0 }, | ||||
|     { "renew_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "proxiable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "warn_pwexpire", krb5_config_string, check_time, 0 }, | ||||
|     /* MIT stuff */ | ||||
|     { "permitted_enctypes", krb5_config_string, mit_entry, 0 }, | ||||
| @@ -434,45 +434,49 @@ struct entry libdefaults_entries[] = { | ||||
| struct entry appdefaults_entries[] = { | ||||
|     { "afslog", krb5_config_string, check_boolean, 0 }, | ||||
|     { "afs-use-524", krb5_config_string, check_524, 0 }, | ||||
|     { "encrypt", krb5_config_string, check_boolean, 0 }, | ||||
|     { "forward", krb5_config_string, check_boolean, 0 }, | ||||
|     { "forwardable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "proxiable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "ticket_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "renew_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "no-addresses", krb5_config_string, check_boolean, 0 }, | ||||
|     { "krb4_get_tickets", krb5_config_string, check_boolean, 0 }, | ||||
|     { "pkinit_anchors", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_win2k", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_win2k_require_binding", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_require_eku", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_require_krbtgt_otherName", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_require_hostname_match", krb5_config_string, NULL, 0 }, | ||||
| #if 0 | ||||
|     { "anonymous", krb5_config_string, check_boolean, 0 }, | ||||
| #endif | ||||
|     { "encrypt", krb5_config_string, check_boolean, 0 }, | ||||
|     { "forward", krb5_config_string, check_boolean, 0 }, | ||||
|     { "forwardable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "krb4_get_tickets", krb5_config_string, check_boolean, 0 }, | ||||
|     { "proxiable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "renew_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "no-addresses", krb5_config_string, check_boolean, 0 }, | ||||
|     { "pkinit_anchors", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_require_eku", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_require_hostname_match", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_require_krbtgt_otherName", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_win2k", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_win2k_require_binding", krb5_config_string, NULL, 0 }, | ||||
|     { "ticket_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "", krb5_config_list, appdefaults_entries, 0 }, | ||||
|     { NULL, 0, NULL, 0 } | ||||
| }; | ||||
|  | ||||
| struct entry realms_entries[] = { | ||||
|     { "forwardable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "proxiable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "ticket_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "renew_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "warn_pwexpire", krb5_config_string, check_time, 0 }, | ||||
|     { "kdc", krb5_config_string, check_host, 0 }, | ||||
|     { "admin_server", krb5_config_string, check_host, 0 }, | ||||
|     { "default_domain", krb5_config_string, NULL, 0 }, | ||||
|     { "forwardable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "kdc", krb5_config_string, check_host, 0 }, | ||||
|     { "kpasswd_server", krb5_config_string, check_host, 0 }, | ||||
|     { "krb524_server", krb5_config_string, check_host, 0 }, | ||||
|     { "v4_name_convert", krb5_config_list, v4_name_convert_entries, 0 }, | ||||
|     { "v4_instance_convert", krb5_config_list, all_strings, 0 }, | ||||
|     { "proxiable", krb5_config_string, check_boolean, 0 }, | ||||
|     { "renew_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "ticket_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "v4_domains", krb5_config_string, NULL, 0 }, | ||||
|     { "default_domain", krb5_config_string, NULL, 0 }, | ||||
|     { "v4_instance_convert", krb5_config_list, all_strings, 0 }, | ||||
|     { "v4_name_convert", krb5_config_list, v4_name_convert_entries, 0 }, | ||||
|     { "warn_pwexpire", krb5_config_string, check_time, 0 }, | ||||
|     { "win2k_pkinit", krb5_config_string, NULL, 0 }, | ||||
|  | ||||
|     /* MIT stuff */ | ||||
|     { "admin_keytab", krb5_config_string, mit_entry, 0 }, | ||||
|     { "acl_file", krb5_config_string, mit_entry, 0 }, | ||||
|     { "database_name", krb5_config_string, mit_entry, 0 }, | ||||
|     { "default_principal_expiration", krb5_config_string, mit_entry, 0 }, | ||||
|     { "default_principal_flags", krb5_config_string, mit_entry, 0 }, | ||||
|     { "dict_file", krb5_config_string, mit_entry, 0 }, | ||||
|     { "kadmind_port", krb5_config_string, mit_entry, 0 }, | ||||
|     { "kpasswd_port", krb5_config_string, mit_entry, 0 }, | ||||
| @@ -481,10 +485,7 @@ struct entry realms_entries[] = { | ||||
|     { "key_stash_file", krb5_config_string, mit_entry, 0 }, | ||||
|     { "max_life", krb5_config_string, mit_entry, 0 }, | ||||
|     { "max_renewable_life", krb5_config_string, mit_entry, 0 }, | ||||
|     { "default_principal_expiration", krb5_config_string, mit_entry, 0 }, | ||||
|     { "default_principal_flags", krb5_config_string, mit_entry, 0 }, | ||||
|     { "supported_enctypes", krb5_config_string, mit_entry, 0 }, | ||||
|     { "database_name", krb5_config_string, mit_entry, 0 }, | ||||
|     { NULL, 0, NULL, 0 } | ||||
| }; | ||||
|  | ||||
| @@ -495,58 +496,57 @@ struct entry realms_foobar[] = { | ||||
|  | ||||
|  | ||||
| struct entry kdc_database_entries[] = { | ||||
|     { "realm", krb5_config_string, NULL, 0 }, | ||||
|     { "dbname", krb5_config_string, NULL, 0 }, | ||||
|     { "mkey_file", krb5_config_string, NULL, 0 }, | ||||
|     { "acl_file", krb5_config_string, NULL, 0 }, | ||||
|     { "dbname", krb5_config_string, NULL, 0 }, | ||||
|     { "log_file", krb5_config_string, NULL, 0 }, | ||||
|     { "mkey_file", krb5_config_string, NULL, 0 }, | ||||
|     { "realm", krb5_config_string, NULL, 0 }, | ||||
|     { NULL, 0, NULL, 0 } | ||||
| }; | ||||
|  | ||||
| struct entry kdc_entries[] = { | ||||
|     { "addresses", krb5_config_string, NULL, 0 }, | ||||
|     { "allow-anonymous", krb5_config_string, check_boolean, 0 }, | ||||
|     { "allow-null-ticket-addresses", krb5_config_string, check_boolean, 0 }, | ||||
|     { "check-ticket-addresses", krb5_config_string, check_boolean, 0 }, | ||||
|     { "database", krb5_config_list, kdc_database_entries, 0 }, | ||||
|     { "digests_allowed", krb5_config_string, NULL, 0 }, | ||||
|     { "enable-524", krb5_config_string, check_boolean, 0 }, | ||||
|     { "enable-digest", krb5_config_string, check_boolean, 0 }, | ||||
|     { "enable-kaserver", krb5_config_string, check_boolean, 1 }, | ||||
|     { "enable-kerberos4", krb5_config_string, check_boolean, 0 }, | ||||
|     { "enable-http", krb5_config_string, check_boolean, 0 }, | ||||
|     { "enable-pkinit", krb5_config_string, check_boolean, 0 }, | ||||
|     { "encode_as_rep_as_tgs_rep", krb5_config_string, check_boolean, 0 }, | ||||
|     { "hdb-ldap-create-base", krb5_config_string, NULL, 0 }, | ||||
|     { "kdc_warn_pwexpire", krb5_config_string, check_time, 0 }, | ||||
|     { "key-file", krb5_config_string, NULL, 0 }, | ||||
|     { "kx509_ca", krb5_config_string, NULL, 0 }, | ||||
|     { "kx509_include_pkinit_san", krb5_config_string, check_boolean, 0 }, | ||||
|     { "logging", krb5_config_string, check_log, 0 }, | ||||
|     { "max-request", krb5_config_string, check_bytes, 0 }, | ||||
|     { "require-preauth", krb5_config_string, check_boolean, 0 }, | ||||
|     { "ports", krb5_config_string, NULL, 0 }, | ||||
|     { "addresses", krb5_config_string, NULL, 0 }, | ||||
|     { "enable-kerberos4", krb5_config_string, check_boolean, 0 }, | ||||
|     { "enable-524", krb5_config_string, check_boolean, 0 }, | ||||
|     { "enable-http", krb5_config_string, check_boolean, 0 }, | ||||
|     { "check-ticket-addresses", krb5_config_string, check_boolean, 0 }, | ||||
|     { "allow-null-ticket-addresses", krb5_config_string, check_boolean, 0 }, | ||||
|     { "allow-anonymous", krb5_config_string, check_boolean, 0 }, | ||||
|     { "v4_realm", krb5_config_string, NULL, 0 }, | ||||
|     { "enable-kaserver", krb5_config_string, check_boolean, 1 }, | ||||
|     { "encode_as_rep_as_tgs_rep", krb5_config_string, check_boolean, 0 }, | ||||
|     { "kdc_warn_pwexpire", krb5_config_string, check_time, 0 }, | ||||
|     { "use_2b", krb5_config_list, NULL, 0 }, | ||||
|     { "enable-pkinit", krb5_config_string, check_boolean, 0 }, | ||||
|     { "pkinit_identity", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_anchors", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_pool", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_revoke", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_kdc_ocsp", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_principal_in_certificate", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_dh_min_bits", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_allow_proxy_certificate", krb5_config_string, NULL, 0 }, | ||||
|     { "hdb-ldap-create-base", krb5_config_string, NULL, 0 }, | ||||
|     { "v4-realm", krb5_config_string, NULL, 0 }, | ||||
|     { "enable-digest", krb5_config_string, check_boolean, 0 }, | ||||
|     { "digests_allowed", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_anchors", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_dh_min_bits", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_identity", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_kdc_ocsp", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_pool", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_principal_in_certificate", krb5_config_string, NULL, 0 }, | ||||
|     { "pkinit_revoke", krb5_config_string, NULL, 0 }, | ||||
|     { "ports", krb5_config_string, NULL, 0 }, | ||||
|     { "require_initial_kca_tickets", krb5_config_string, check_boolean, 0 }, | ||||
|     { "kx509_include_pkinit_san", krb5_config_string, check_boolean, 0 }, | ||||
|     { "kx509_ca", krb5_config_string, NULL, 0 }, | ||||
|     { "require-preauth", krb5_config_string, check_boolean, 0 }, | ||||
|     { "use_2b", krb5_config_list, NULL, 0 }, | ||||
|     { "v4_realm", krb5_config_string, NULL, 0 }, | ||||
|     { NULL, 0, NULL, 0 } | ||||
| }; | ||||
|  | ||||
| struct entry kadmin_entries[] = { | ||||
|     { "password_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "default_keys", krb5_config_string, NULL, 0 }, | ||||
|     { "use_v4_salt", krb5_config_string, NULL, 0 }, | ||||
|     { "password_lifetime", krb5_config_string, check_time, 0 }, | ||||
|     { "require-preauth", krb5_config_string, check_boolean, 0 }, | ||||
|     { "save-password", krb5_config_string, check_boolean, 0 }, | ||||
|     { "use_v4_salt", krb5_config_string, NULL, 0 }, | ||||
|     { NULL, 0, NULL, 0 } | ||||
| }; | ||||
| struct entry log_strings[] = { | ||||
| @@ -568,25 +568,26 @@ struct entry capaths_entries[] = { | ||||
| }; | ||||
|  | ||||
| struct entry password_quality_entries[] = { | ||||
|     { "policies", krb5_config_string, NULL, 0 }, | ||||
|     { "external_program", krb5_config_string, NULL, 0 }, | ||||
|     { "min_classes", krb5_config_string, check_numeric, 0 }, | ||||
|     { "min_length", krb5_config_string, check_numeric, 0 }, | ||||
|     { "policies", krb5_config_string, NULL, 0 }, | ||||
|     { "", krb5_config_list, all_strings, 0 }, | ||||
|     { NULL, 0, NULL, 0 } | ||||
| }; | ||||
|  | ||||
| struct entry toplevel_sections[] = { | ||||
|     { "libdefaults" , krb5_config_list, libdefaults_entries, 0 }, | ||||
|     { "realms", krb5_config_list, realms_foobar, 0 }, | ||||
|     { "domain_realm", krb5_config_list, all_strings, 0 }, | ||||
|     { "logging", krb5_config_list, log_strings, 0 }, | ||||
|     { "kdc", krb5_config_list, kdc_entries, 0 }, | ||||
|     { "kadmin", krb5_config_list, kadmin_entries, 0 }, | ||||
|     { "appdefaults", krb5_config_list, appdefaults_entries, 0 }, | ||||
|     { "gssapi", krb5_config_list, NULL, 0 }, | ||||
|     { "capaths", krb5_config_list, capaths_entries, 0 }, | ||||
|     { "domain_realm", krb5_config_list, all_strings, 0 }, | ||||
|     { "gssapi", krb5_config_list, NULL, 0 }, | ||||
|     { "kadmin", krb5_config_list, kadmin_entries, 0 }, | ||||
|     { "kdc", krb5_config_list, kdc_entries, 0 }, | ||||
|     { "libdefaults" , krb5_config_list, libdefaults_entries, 0 }, | ||||
|     { "logging", krb5_config_list, log_strings, 0 }, | ||||
|     { "password_quality", krb5_config_list, password_quality_entries, 0 }, | ||||
|     { "realms", krb5_config_list, realms_foobar, 0 }, | ||||
|  | ||||
|     /* MIT stuff */ | ||||
|     { "kdcdefaults", krb5_config_list, kdcdefaults_entries, 0 }, | ||||
|     { NULL, 0, NULL, 0 } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jeffrey Altman
					Jeffrey Altman