• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/wpa/src/common/

Lines Matching defs:bi

823 static int dpp_clone_uri(struct dpp_bootstrap_info *bi, const char *uri)
825 bi->uri = os_strdup(uri);
826 return bi->uri ? 0 : -1;
830 int dpp_parse_uri_chan_list(struct dpp_bootstrap_info *bi,
859 } else if (bi->num_freq == DPP_BOOTSTRAP_MAX_FREQ) {
862 bi->num_freq = 0;
865 bi->freq[bi->num_freq++] = freq;
882 int dpp_parse_uri_mac(struct dpp_bootstrap_info *bi, const char *mac)
887 if (hwaddr_aton2(mac, bi->mac_addr) < 0) {
892 wpa_printf(MSG_DEBUG, "DPP: URI mac: " MACSTR, MAC2STR(bi->mac_addr));
898 int dpp_parse_uri_info(struct dpp_bootstrap_info *bi, const char *info)
908 bi->info = os_malloc(end - info + 1);
909 if (!bi->info)
911 os_memcpy(bi->info, info, end - info);
912 bi->info[end - info] = '\0';
913 wpa_printf(MSG_DEBUG, "DPP: URI(information): %s", bi->info);
914 if (!dpp_uri_valid_info(bi->info)) {
953 static int dpp_parse_uri_pk(struct dpp_bootstrap_info *bi, const char *info)
993 bi->pubkey_hash) < 0) {
999 bi->pubkey_hash, SHA256_MAC_LEN);
1073 bi->curve = dpp_get_curve_oid(poid);
1074 if (!bi->curve) {
1084 bi->pubkey = pkey;
1098 struct dpp_bootstrap_info *bi;
1140 bi = os_zalloc(sizeof(*bi));
1141 if (!bi)
1144 if (dpp_clone_uri(bi, uri) < 0 ||
1145 dpp_parse_uri_chan_list(bi, chan_list) < 0 ||
1146 dpp_parse_uri_mac(bi, mac) < 0 ||
1147 dpp_parse_uri_info(bi, info) < 0 ||
1148 dpp_parse_uri_pk(bi, pk) < 0) {
1149 dpp_bootstrap_info_free(bi);
1150 bi = NULL;
1153 return bi;
1159 struct dpp_bootstrap_info *bi;
1161 bi = dpp_parse_uri(uri);
1162 if (bi)
1163 bi->type = DPP_BOOTSTRAP_QR_CODE;
1164 return bi;
1428 int dpp_bootstrap_key_hash(struct dpp_bootstrap_info *bi)
1435 der = dpp_bootstrap_key_der(bi->pubkey);
1443 res = sha256_vector(1, addr, len, bi->pubkey_hash);
1447 wpa_hexdump(MSG_DEBUG, "DPP: Public key hash", bi->pubkey_hash,
1454 char * dpp_keygen(struct dpp_bootstrap_info *bi, const char *curve,
1465 bi->curve = &dpp_curves[0];
1467 bi->curve = dpp_get_curve_name(curve);
1468 if (!bi->curve) {
1475 bi->pubkey = dpp_set_keypair(&bi->curve, privkey, privkey_len);
1477 bi->pubkey = dpp_gen_keypair(bi->curve);
1478 if (!bi->pubkey)
1480 bi->own = 1;
1482 der = dpp_bootstrap_key_der(bi->pubkey);
1490 res = sha256_vector(1, addr, &len, bi->pubkey_hash);
1495 wpa_hexdump(MSG_DEBUG, "DPP: Public key hash", bi->pubkey_hash,
2183 struct dpp_bootstrap_info *bi;
2190 bi = os_zalloc(sizeof(*bi));
2191 if (!bi)
2193 bi->type = DPP_BOOTSTRAP_QR_CODE;
2194 pk = dpp_keygen(bi, auth->peer_bi->curve->name, NULL, 0);
2200 bi->uri = os_malloc(len + 1);
2201 if (!bi->uri)
2203 os_snprintf(bi->uri, len + 1, "DPP:K:%s;;", pk);
2206 bi->uri);
2208 auth->tmp_own_bi = auth->own_bi = bi;
2215 dpp_bootstrap_info_free(bi);
7038 struct dpp_pkex * dpp_pkex_init(void *msg_ctx, struct dpp_bootstrap_info *bi,
7058 pkex->own_bi = bi;
7253 struct dpp_bootstrap_info *bi,
7262 const struct dpp_curve_params *curve = bi->curve;
7276 if (bi->pkex_t >= PKEX_COUNTER_T_LIMIT) {
7316 pkex->own_bi = bi;
7359 bi->pkex_t++;
7368 pkex->t = bi->pkex_t;
7370 pkex->own_bi = bi;
8349 struct dpp_bootstrap_info *bi;
8352 dl_list_for_each(bi, &dpp->bootstrap, struct dpp_bootstrap_info, list) {
8353 if (bi->id > max_id)
8354 max_id = bi->id;
8362 struct dpp_bootstrap_info *bi, *tmp;
8368 dl_list_for_each_safe(bi, tmp, &dpp->bootstrap,
8370 if (id && bi->id != id)
8373 dl_list_del(&bi->list);
8374 dpp_bootstrap_info_free(bi);
8386 struct dpp_bootstrap_info *bi;
8391 bi = dpp_parse_qr_code(uri);
8392 if (!bi)
8395 bi->id = dpp_next_id(dpp);
8396 dl_list_add(&dpp->bootstrap, &bi->list);
8397 return bi;
8409 struct dpp_bootstrap_info *bi;
8414 bi = os_zalloc(sizeof(*bi));
8415 if (!bi)
8419 bi->type = DPP_BOOTSTRAP_QR_CODE;
8421 bi->type = DPP_BOOTSTRAP_PKEX;
8439 pk = dpp_keygen(bi, curve, privkey, privkey_len);
8445 if (dpp_parse_uri_chan_list(bi, chan) < 0)
8450 if (dpp_parse_uri_mac(bi, mac) < 0)
8455 if (dpp_parse_uri_info(bi, info) < 0)
8460 bi->uri = os_malloc(len + 1);
8461 if (!bi->uri)
8463 os_snprintf(bi->uri, len + 1, "DPP:%s%s%s%s%s%s%s%s%sK:%s;;",
8468 bi->id = dpp_next_id(dpp);
8469 dl_list_add(&dpp->bootstrap, &bi->list);
8470 ret = bi->id;
8471 bi = NULL;
8480 dpp_bootstrap_info_free(bi);
8488 struct dpp_bootstrap_info *bi;
8493 dl_list_for_each(bi, &dpp->bootstrap, struct dpp_bootstrap_info, list) {
8494 if (bi->id == id)
8495 return bi;
8521 struct dpp_bootstrap_info *bi;
8523 bi = os_zalloc(sizeof(*bi));
8524 if (!bi)
8526 bi->id = dpp_next_id(dpp);
8527 bi->type = DPP_BOOTSTRAP_PKEX;
8528 os_memcpy(bi->mac_addr, peer, ETH_ALEN);
8529 bi->num_freq = 1;
8530 bi->freq[0] = freq;
8531 bi->curve = pkex->own_bi->curve;
8532 bi->pubkey = pkex->peer_bootstrap_key;
8534 if (dpp_bootstrap_key_hash(bi) < 0) {
8535 dpp_bootstrap_info_free(bi);
8539 dl_list_add(&dpp->bootstrap, &bi->list);
8540 return bi;
8546 struct dpp_bootstrap_info *bi;
8548 bi = dpp_bootstrap_get_id(dpp, id);
8549 if (!bi)
8551 return bi->uri;
8558 struct dpp_bootstrap_info *bi;
8561 bi = dpp_bootstrap_get_id(dpp, id);
8562 if (!bi)
8564 wpa_snprintf_hex(pkhash, sizeof(pkhash), bi->pubkey_hash,
8572 dpp_bootstrap_type_txt(bi->type),
8573 MAC2STR(bi->mac_addr),
8574 bi->info ? bi->info : "",
8575 bi->num_freq,
8576 bi->curve->name,
8586 struct dpp_bootstrap_info *bi;
8593 dl_list_for_each(bi, &dpp->bootstrap, struct dpp_bootstrap_info, list) {
8594 if (!*own_bi && bi->own &&
8595 os_memcmp(bi->pubkey_hash, r_bootstrap,
8599 *own_bi = bi;
8602 if (!*peer_bi && !bi->own &&
8603 os_memcmp(bi->pubkey_hash, i_bootstrap,
8607 *peer_bi = bi;