Lines Matching refs:conf

3497 	struct dpp_configuration *conf;  in dpp_configuration_alloc()  local
3501 conf = os_zalloc(sizeof(*conf)); in dpp_configuration_alloc()
3502 if (!conf) in dpp_configuration_alloc()
3512 conf->akm = DPP_AKM_PSK; in dpp_configuration_alloc()
3514 conf->akm = DPP_AKM_SAE; in dpp_configuration_alloc()
3517 conf->akm = DPP_AKM_PSK_SAE; in dpp_configuration_alloc()
3520 conf->akm = DPP_AKM_SAE_DPP; in dpp_configuration_alloc()
3523 conf->akm = DPP_AKM_PSK_SAE_DPP; in dpp_configuration_alloc()
3525 conf->akm = DPP_AKM_DPP; in dpp_configuration_alloc()
3529 return conf; in dpp_configuration_alloc()
3531 dpp_configuration_free(conf); in dpp_configuration_alloc()
3570 int dpp_configuration_valid(const struct dpp_configuration *conf) in dpp_configuration_valid() argument
3572 if (conf->ssid_len == 0) in dpp_configuration_valid()
3574 if (dpp_akm_psk(conf->akm) && !conf->passphrase && !conf->psk_set) in dpp_configuration_valid()
3576 if (dpp_akm_sae(conf->akm) && !conf->passphrase) in dpp_configuration_valid()
3582 void dpp_configuration_free(struct dpp_configuration *conf) in dpp_configuration_free() argument
3584 if (!conf) in dpp_configuration_free()
3586 str_clear_free(conf->passphrase); in dpp_configuration_free()
3587 os_free(conf->group_id); in dpp_configuration_free()
3588 bin_clear_free(conf, sizeof(*conf)); in dpp_configuration_free()
3597 struct dpp_configuration *conf = NULL; in dpp_configuration_parse_helper() local
3605 conf = conf_sta; in dpp_configuration_parse_helper()
3614 conf = conf_ap; in dpp_configuration_parse_helper()
3617 if (!conf) in dpp_configuration_parse_helper()
3624 conf->ssid_len = end ? (size_t) (end - pos) : os_strlen(pos); in dpp_configuration_parse_helper()
3625 conf->ssid_len /= 2; in dpp_configuration_parse_helper()
3626 if (conf->ssid_len > sizeof(conf->ssid) || in dpp_configuration_parse_helper()
3627 hexstr2bin(pos, conf->ssid, conf->ssid_len) < 0) in dpp_configuration_parse_helper()
3632 os_memcpy(conf->ssid, "test", 4); in dpp_configuration_parse_helper()
3633 conf->ssid_len = 4; in dpp_configuration_parse_helper()
3646 conf->ssid_charset = atoi(pos + 14); in dpp_configuration_parse_helper()
3659 conf->passphrase = os_zalloc(pass_len + 1); in dpp_configuration_parse_helper()
3660 if (!conf->passphrase || in dpp_configuration_parse_helper()
3661 hexstr2bin(pos, (u8 *) conf->passphrase, pass_len) < 0) in dpp_configuration_parse_helper()
3668 if (hexstr2bin(pos, conf->psk, PMK_LEN) < 0) in dpp_configuration_parse_helper()
3670 conf->psk_set = 1; in dpp_configuration_parse_helper()
3680 conf->group_id = os_malloc(group_id_len + 1); in dpp_configuration_parse_helper()
3681 if (!conf->group_id) in dpp_configuration_parse_helper()
3683 os_memcpy(conf->group_id, pos, group_id_len); in dpp_configuration_parse_helper()
3684 conf->group_id[group_id_len] = '\0'; in dpp_configuration_parse_helper()
3695 conf->netaccesskey_expiry = val; in dpp_configuration_parse_helper()
3698 if (!dpp_configuration_valid(conf)) in dpp_configuration_parse_helper()
3757 struct dpp_configurator *conf; in dpp_configurator_get_id() local
3762 dl_list_for_each(conf, &dpp->configurator, in dpp_configurator_get_id()
3764 if (conf->id == id) in dpp_configurator_get_id()
3765 return conf; in dpp_configurator_get_id()
3785 auth->conf = dpp_configurator_get_id(dpp, atoi(pos)); in dpp_set_configurator()
3786 if (!auth->conf) { in dpp_set_configurator()
3830 struct dpp_config_obj *conf = &auth->conf_obj[i]; in dpp_auth_deinit() local
3832 os_free(conf->connector); in dpp_auth_deinit()
3833 wpabuf_free(conf->c_sign_key); in dpp_auth_deinit()
3848 struct dpp_configuration *conf, size_t tailroom) in dpp_build_conf_start() argument
3874 if (((!conf->ssid_charset || auth->peer_version < 2) && in dpp_build_conf_start()
3875 json_add_string_escape(buf, "ssid", conf->ssid, in dpp_build_conf_start()
3876 conf->ssid_len) < 0) || in dpp_build_conf_start()
3877 ((conf->ssid_charset && auth->peer_version >= 2) && in dpp_build_conf_start()
3878 json_add_base64url(buf, "ssid64", conf->ssid, in dpp_build_conf_start()
3879 conf->ssid_len) < 0)) { in dpp_build_conf_start()
3883 if (conf->ssid_charset > 0) { in dpp_build_conf_start()
3885 json_add_int(buf, "ssid_charset", conf->ssid_charset); in dpp_build_conf_start()
3930 struct dpp_configuration *conf) in dpp_build_legacy_cred_params() argument
3932 if (conf->passphrase && os_strlen(conf->passphrase) < 64) { in dpp_build_legacy_cred_params()
3933 json_add_string_escape(buf, "pass", conf->passphrase, in dpp_build_legacy_cred_params()
3934 os_strlen(conf->passphrase)); in dpp_build_legacy_cred_params()
3935 } else if (conf->psk_set) { in dpp_build_legacy_cred_params()
3936 char psk[2 * sizeof(conf->psk) + 1]; in dpp_build_legacy_cred_params()
3939 conf->psk, sizeof(conf->psk)); in dpp_build_legacy_cred_params()
3986 struct dpp_configuration *conf) in dpp_build_conf_obj_dpp() argument
4004 if (!auth->conf) { in dpp_build_conf_obj_dpp()
4009 curve = auth->conf->curve; in dpp_build_conf_obj_dpp()
4010 akm = conf->akm; in dpp_build_conf_obj_dpp()
4022 if (conf->group_id) in dpp_build_conf_obj_dpp()
4023 extra_len += os_strlen(conf->group_id); in dpp_build_conf_obj_dpp()
4047 conf->group_id ? conf->group_id : "*"); in dpp_build_conf_obj_dpp()
4049 json_add_string(dppcon, "netRole", dpp_netrole_str(conf->netrole)); in dpp_build_conf_obj_dpp()
4061 if (conf->netaccesskey_expiry) { in dpp_build_conf_obj_dpp()
4065 if (os_gmtime(conf->netaccesskey_expiry, &tm) < 0) { in dpp_build_conf_obj_dpp()
4087 json_add_string(jws_prot_hdr, "kid", auth->conf->kid); in dpp_build_conf_obj_dpp()
4109 if (crypto_ecdsa_get_sign(hash, r, s, auth->conf->csign, curve->hash_len) < 0) in dpp_build_conf_obj_dpp()
4128 tailroom += 2 * curve->prime_len * 4 / 3 + os_strlen(auth->conf->kid); in dpp_build_conf_obj_dpp()
4132 buf = dpp_build_conf_start(auth, conf, tailroom); in dpp_build_conf_obj_dpp()
4144 dpp_build_legacy_cred_params(buf, conf); in dpp_build_conf_obj_dpp()
4155 if (dpp_build_jwk(buf, "csign", auth->conf->csign, auth->conf->kid, in dpp_build_conf_obj_dpp()
4191 struct dpp_configuration *conf) in dpp_build_conf_obj_legacy() argument
4196 buf = dpp_build_conf_start(auth, conf, 1000); in dpp_build_conf_obj_legacy()
4200 if (auth->akm_use_selector && dpp_akm_ver2(conf->akm)) in dpp_build_conf_obj_legacy()
4201 akm_str = dpp_akm_selector_str(conf->akm); in dpp_build_conf_obj_legacy()
4203 akm_str = dpp_akm_str(conf->akm); in dpp_build_conf_obj_legacy()
4207 dpp_build_legacy_cred_params(buf, conf); in dpp_build_conf_obj_legacy()
4222 struct dpp_configuration *conf = NULL; in dpp_build_conf_obj() local
4236 conf = auth->conf_sta; in dpp_build_conf_obj()
4238 conf = auth->conf_ap; in dpp_build_conf_obj()
4241 conf = auth->conf2_sta; in dpp_build_conf_obj()
4243 conf = auth->conf2_ap; in dpp_build_conf_obj()
4245 if (!conf) { in dpp_build_conf_obj()
4253 if (dpp_akm_dpp(conf->akm)) in dpp_build_conf_obj()
4254 return dpp_build_conf_obj_dpp(auth, conf); in dpp_build_conf_obj()
4255 return dpp_build_conf_obj_legacy(auth, conf); in dpp_build_conf_obj()
4263 struct wpabuf *conf, *conf2 = NULL; in dpp_build_conf_resp() local
4271 conf = dpp_build_conf_obj(auth, netrole, 0); in dpp_build_conf_resp()
4272 if (conf) { in dpp_build_conf_resp()
4274 (u8 *)wpabuf_head(conf), wpabuf_len(conf)); in dpp_build_conf_resp()
4277 status = conf ? DPP_STATUS_OK : DPP_STATUS_CONFIGURE_FAILURE; in dpp_build_conf_resp()
4282 if (conf) in dpp_build_conf_resp()
4283 clear_len += 4 + wpabuf_len(conf); in dpp_build_conf_resp()
4331 if (conf) { in dpp_build_conf_resp()
4333 wpabuf_put_le16(clear, wpabuf_len(conf)); in dpp_build_conf_resp()
4334 wpabuf_put_buf(clear, conf); in dpp_build_conf_resp()
4398 wpabuf_free(conf); in dpp_build_conf_resp()
4620 static int dpp_parse_cred_legacy(struct dpp_config_obj *conf, in dpp_parse_cred_legacy() argument
4637 os_strlcpy(conf->passphrase, pass->string, in dpp_parse_cred_legacy()
4638 sizeof(conf->passphrase)); in dpp_parse_cred_legacy()
4640 if (dpp_akm_sae(conf->akm) && !dpp_akm_psk(conf->akm)) { in dpp_parse_cred_legacy()
4646 hexstr2bin(psk_hex->string, conf->psk, PMK_LEN) < 0) { in dpp_parse_cred_legacy()
4651 conf->psk, PMK_LEN); in dpp_parse_cred_legacy()
4652 conf->psk_set = 1; in dpp_parse_cred_legacy()
4658 if (dpp_akm_sae(conf->akm) && !conf->passphrase[0]) { in dpp_parse_cred_legacy()
4833 struct dpp_config_obj *conf, in dpp_parse_connector() argument
4960 static void dpp_copy_csign(struct dpp_config_obj *conf, struct crypto_key *csign) in dpp_copy_csign() argument
4968 wpabuf_free(conf->c_sign_key); in dpp_copy_csign()
4969 conf->c_sign_key = wpabuf_alloc_copy(der, der_len); in dpp_copy_csign()
4974 struct dpp_config_obj *conf) in dpp_copy_netaccesskey() argument
5110 struct dpp_config_obj *conf, in dpp_parse_cred_dpp() argument
5122 if (dpp_akm_psk(conf->akm) || dpp_akm_sae(conf->akm)) { in dpp_parse_cred_dpp()
5125 if (dpp_parse_cred_legacy(conf, cred) < 0) in dpp_parse_cred_dpp()
5164 if (dpp_parse_connector(auth, conf, in dpp_parse_cred_dpp()
5170 os_free(conf->connector); in dpp_parse_cred_dpp()
5171 conf->connector = os_strdup(signed_connector); in dpp_parse_cred_dpp()
5173 dpp_copy_csign(conf, csign_pub); in dpp_parse_cred_dpp()
5174 dpp_copy_netaccesskey(auth, conf); in dpp_parse_cred_dpp()
5284 struct dpp_config_obj *conf; in dpp_parse_conf_obj() local
5343 conf = &auth->conf_obj[auth->num_conf_obj++]; in dpp_parse_conf_obj()
5346 conf->ssid_len = wpabuf_len(ssid64); in dpp_parse_conf_obj()
5347 os_memcpy(conf->ssid, wpabuf_head(ssid64), conf->ssid_len); in dpp_parse_conf_obj()
5349 conf->ssid_len = os_strlen(token->string); in dpp_parse_conf_obj()
5350 os_memcpy(conf->ssid, token->string, conf->ssid_len); in dpp_parse_conf_obj()
5355 conf->ssid_charset = token->number; in dpp_parse_conf_obj()
5357 conf->ssid_charset); in dpp_parse_conf_obj()
5371 conf->akm = dpp_akm_from_str(token->string); in dpp_parse_conf_obj()
5373 if (dpp_akm_legacy(conf->akm)) { in dpp_parse_conf_obj()
5374 if (dpp_parse_cred_legacy(conf, cred) < 0) in dpp_parse_conf_obj()
5376 } else if (dpp_akm_dpp(conf->akm)) { in dpp_parse_conf_obj()
5377 if (dpp_parse_cred_dpp(auth, conf, cred) < 0) in dpp_parse_conf_obj()
5499 void dpp_configurator_free(struct dpp_configurator *conf) in dpp_configurator_free() argument
5501 if (!conf) in dpp_configurator_free()
5503 crypto_ec_free_key(conf->csign); in dpp_configurator_free()
5504 os_free(conf->kid); in dpp_configurator_free()
5505 os_free(conf); in dpp_configurator_free()
5509 int dpp_configurator_get_key(const struct dpp_configurator *conf, char *buf, in dpp_configurator_get_key() argument
5515 if (!conf->csign) in dpp_configurator_get_key()
5518 crypto_ec_get_priv_key_der(conf->csign, &key, &keylen); in dpp_configurator_get_key()
5533 struct dpp_configurator *conf; in dpp_keygen_configurator() local
5539 conf = os_zalloc(sizeof(*conf)); in dpp_keygen_configurator()
5540 if (!conf) in dpp_keygen_configurator()
5544 conf->curve = &dpp_curves[0]; in dpp_keygen_configurator()
5546 conf->curve = dpp_get_curve_name(curve); in dpp_keygen_configurator()
5547 if (!conf->curve) { in dpp_keygen_configurator()
5550 os_free(conf); in dpp_keygen_configurator()
5555 conf->csign = dpp_set_keypair(&conf->curve, privkey, in dpp_keygen_configurator()
5558 conf->csign = dpp_gen_keypair(conf->curve); in dpp_keygen_configurator()
5559 if (!conf->csign) in dpp_keygen_configurator()
5561 conf->own = 1; in dpp_keygen_configurator()
5563 csign_pub = dpp_get_pubkey_point(conf->csign, 1); in dpp_keygen_configurator()
5578 conf->kid = base64_url_encode(kid_hash, sizeof(kid_hash), NULL); in dpp_keygen_configurator()
5579 if (!conf->kid) in dpp_keygen_configurator()
5583 return conf; in dpp_keygen_configurator()
5585 dpp_configurator_free(conf); in dpp_keygen_configurator()
5586 conf = NULL; in dpp_keygen_configurator()
5597 if (!auth->conf) { in dpp_configurator_own_config()
5621 dpp_copy_csign(&auth->conf_obj[0], auth->conf->csign); in dpp_configurator_own_config()
6273 struct dpp_configurator *conf; in dpp_next_configurator_id() local
6276 dl_list_for_each(conf, &dpp->configurator, struct dpp_configurator, in dpp_next_configurator_id()
6278 if (conf->id > max_id) in dpp_next_configurator_id()
6279 max_id = conf->id; in dpp_next_configurator_id()
6292 struct dpp_configurator *conf = NULL; in dpp_configurator_add() local
6305 conf = dpp_keygen_configurator(curve, privkey, privkey_len); in dpp_configurator_add()
6306 if (!conf) in dpp_configurator_add()
6309 conf->id = dpp_next_configurator_id(dpp); in dpp_configurator_add()
6310 dl_list_add(&dpp->configurator, &conf->list); in dpp_configurator_add()
6311 ret = conf->id; in dpp_configurator_add()
6312 conf = NULL; in dpp_configurator_add()
6317 dpp_configurator_free(conf); in dpp_configurator_add()
6324 struct dpp_configurator *conf, *tmp; in dpp_configurator_del() local
6330 dl_list_for_each_safe(conf, tmp, &dpp->configurator, in dpp_configurator_del()
6332 if (id && conf->id != id) in dpp_configurator_del()
6335 dl_list_del(&conf->list); in dpp_configurator_del()
6336 dpp_configurator_free(conf); in dpp_configurator_del()
6364 struct dpp_configurator *conf; in dpp_configurator_get_key_id() local
6366 conf = dpp_configurator_get_id(dpp, id); in dpp_configurator_get_key_id()
6367 if (!conf) in dpp_configurator_get_key_id()
6370 return dpp_configurator_get_key(conf, buf, buflen); in dpp_configurator_get_key_id()