1 BINALL=wpa_supplicant wpa_cli 2 3 ALL = $(BINALL) 4 ALL += systemd/wpa_supplicant.service 5 ALL += systemd/wpa_supplicant@.service 6 ALL += systemd/wpa_supplicant-nl80211@.service 7 ALL += systemd/wpa_supplicant-wired@.service 8 ALL += dbus/fi.w1.wpa_supplicant1.service 9 10 EXTRA_TARGETS=dynamic_eap_methods 11 12 CONFIG_FILE=.config 13 include ../src/build.rules 14 15 ifdef CONFIG_BUILD_PASN_SO 16 # add the dependency this way to allow CONFIG_BUILD_PASN_SO 17 # being set in the config which is read by build.rules 18 _all: libpasn.so 19 endif 20 21 ifdef CONFIG_BUILD_WPA_CLIENT_SO 22 # add the dependency this way to allow CONFIG_BUILD_WPA_CLIENT_SO 23 # being set in the config which is read by build.rules 24 _all: libwpa_client.so 25 endif 26 27 ifndef CONFIG_NO_WPA_PASSPHRASE 28 # add the dependency this way to allow CONFIG_NO_WPA_PASSPHRASE 29 # being set in the config which is read by build.rules 30 _all: wpa_passphrase 31 endif 32 33 ifdef LIBS 34 # If LIBS is set with some global build system defaults, clone those for 35 # LIBS_c and LIBS_p to cover wpa_passphrase and wpa_cli as well. 36 ifndef LIBS_c 37 LIBS_c := $(LIBS) 38 endif 39 ifndef LIBS_p 40 LIBS_p := $(LIBS) 41 endif 42 endif 43 44 export LIBDIR ?= /usr/local/lib 45 export INCDIR ?= /usr/local/include 46 export BINDIR ?= /usr/local/sbin 47 PKG_CONFIG ?= pkg-config 48 49 CFLAGS += $(EXTRA_CFLAGS) 50 CFLAGS += -I$(abspath ../src) 51 CFLAGS += -I$(abspath ../src/utils) 52 53 ifndef CONFIG_NO_GITVER 54 # Add VERSION_STR postfix for builds from a git repository 55 ifeq ($(wildcard ../.git),../.git) 56 GITVER := $(shell git describe --dirty=+) 57 ifneq ($(GITVER),) 58 CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\" 59 endif 60 endif 61 endif 62 63 ifdef CONFIG_TESTING_OPTIONS 64 CFLAGS += -DCONFIG_TESTING_OPTIONS 65 CONFIG_WPS_TESTING=y 66 CONFIG_TDLS_TESTING=y 67 NEED_AES_WRAP=y 68 endif 69 70 mkconfig: 71 @if [ -f .config ]; then \ 72 echo '.config exists - did not replace it'; \ 73 exit 1; \ 74 fi 75 echo CONFIG_DRIVER_HOSTAP=y >> .config 76 echo CONFIG_DRIVER_WEXT=y >> .config 77 78 $(DESTDIR)$(BINDIR)/%: % 79 install -D $(<) $(@) 80 81 install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL)) 82 $(MAKE) -C ../src install 83 ifndef CONFIG_NO_WPA_PASSPHRASE 84 install -D wpa_passphrase $(DESTDIR)/$(BINDIR)/wpa_passphrase 85 endif 86 87 ifdef CONFIG_BUILD_PASN_SO 88 install -m 0644 -D libpasn.so $(DESTDIR)/$(LIBDIR)/libpasn.so 89 endif 90 91 ifdef CONFIG_BUILD_WPA_CLIENT_SO 92 install -m 0644 -D libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so 93 install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h 94 endif 95 if ls eap_*.so >/dev/null 2>&1; then \ 96 install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \ 97 cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \ 98 ; fi 99 100 ifdef CONFIG_FIPS 101 CONFIG_NO_RANDOM_POOL= 102 endif 103 104 OBJS = config.o 105 OBJS += notify.o 106 OBJS += bss.o 107 OBJS += eap_register.o 108 OBJS += ../src/utils/common.o 109 OBJS += ../src/utils/config.o 110 OBJS += ../src/utils/wpa_debug.o 111 OBJS += ../src/utils/wpabuf.o 112 OBJS += ../src/utils/bitfield.o 113 OBJS += ../src/utils/ip_addr.o 114 OBJS += ../src/utils/crc32.o 115 OBJS += ../src/common/ptksa_cache.o 116 OBJS += ../src/rsn_supp/pmksa_cache.o 117 OBJS += twt.o 118 OBJS_p = wpa_passphrase.o 119 OBJS_p += ../src/utils/common.o 120 OBJS_p += ../src/utils/wpa_debug.o 121 OBJS_p += ../src/utils/wpabuf.o 122 OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o 123 OBJS_c += ../src/utils/wpa_debug.o 124 OBJS_c += ../src/utils/common.o 125 OBJS_c += ../src/common/cli.o 126 127 ifndef CONFIG_OS 128 ifdef CONFIG_NATIVE_WINDOWS 129 CONFIG_OS=win32 130 else 131 CONFIG_OS=unix 132 endif 133 endif 134 135 ifeq ($(CONFIG_OS), internal) 136 CFLAGS += -DOS_NO_C_LIB_DEFINES 137 endif 138 139 OBJS += ../src/utils/os_$(CONFIG_OS).o 140 OBJS_p += ../src/utils/os_$(CONFIG_OS).o 141 OBJS_c += ../src/utils/os_$(CONFIG_OS).o 142 143 ifdef CONFIG_WPA_TRACE 144 CFLAGS += -DWPA_TRACE 145 OBJS += ../src/utils/trace.o 146 OBJS_p += ../src/utils/trace.o 147 OBJS_c += ../src/utils/trace.o 148 OBJS_priv += ../src/utils/trace.o 149 LIBCTRL += ../src/utils/trace.o 150 LIBCTRLSO += ../src/utils/trace.c 151 LDFLAGS += -rdynamic 152 CFLAGS += -funwind-tables 153 ifdef CONFIG_WPA_TRACE_BFD 154 CFLAGS += -DPACKAGE="wpa_supplicant" -DWPA_TRACE_BFD 155 LIBS += -lbfd -ldl -liberty -lz 156 LIBS_p += -lbfd -ldl -liberty -lz 157 LIBS_c += -lbfd -ldl -liberty -lz 158 endif 159 endif 160 161 ifndef CONFIG_ELOOP 162 CONFIG_ELOOP=eloop 163 endif 164 OBJS += ../src/utils/$(CONFIG_ELOOP).o 165 OBJS_c += ../src/utils/$(CONFIG_ELOOP).o 166 167 ifndef CONFIG_OSX 168 ifeq ($(CONFIG_ELOOP), eloop) 169 # Using glibc < 2.17 requires -lrt for clock_gettime() 170 # OS X has an alternate implementation 171 LIBS += -lrt 172 LIBS_c += -lrt 173 LIBS_p += -lrt 174 endif 175 endif 176 177 ifdef CONFIG_ELOOP_POLL 178 CFLAGS += -DCONFIG_ELOOP_POLL 179 endif 180 181 ifdef CONFIG_ELOOP_EPOLL 182 CFLAGS += -DCONFIG_ELOOP_EPOLL 183 endif 184 185 ifdef CONFIG_ELOOP_KQUEUE 186 CFLAGS += -DCONFIG_ELOOP_KQUEUE 187 endif 188 189 ifdef CONFIG_EAPOL_TEST 190 CFLAGS += -Werror -DEAPOL_TEST 191 endif 192 193 ifdef CONFIG_CODE_COVERAGE 194 CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE 195 LIBS += -lgcov 196 LIBS_c += -lgcov 197 LIBS_p += -lgcov 198 endif 199 200 ifdef CONFIG_HT_OVERRIDES 201 CFLAGS += -DCONFIG_HT_OVERRIDES 202 endif 203 204 ifdef CONFIG_VHT_OVERRIDES 205 CFLAGS += -DCONFIG_VHT_OVERRIDES 206 endif 207 208 ifdef CONFIG_HE_OVERRIDES 209 CFLAGS += -DCONFIG_HE_OVERRIDES 210 endif 211 212 ifndef CONFIG_BACKEND 213 CONFIG_BACKEND=file 214 endif 215 216 ifeq ($(CONFIG_BACKEND), file) 217 OBJS += config_file.o 218 ifndef CONFIG_NO_CONFIG_BLOBS 219 NEED_BASE64=y 220 endif 221 CFLAGS += -DCONFIG_BACKEND_FILE 222 endif 223 224 ifeq ($(CONFIG_BACKEND), winreg) 225 OBJS += config_winreg.o 226 endif 227 228 ifeq ($(CONFIG_BACKEND), none) 229 OBJS += config_none.o 230 endif 231 232 ifdef CONFIG_NO_CONFIG_WRITE 233 CFLAGS += -DCONFIG_NO_CONFIG_WRITE 234 endif 235 236 ifdef CONFIG_NO_CONFIG_BLOBS 237 CFLAGS += -DCONFIG_NO_CONFIG_BLOBS 238 endif 239 240 ifdef CONFIG_NO_SCAN_PROCESSING 241 CFLAGS += -DCONFIG_NO_SCAN_PROCESSING 242 endif 243 244 ifdef CONFIG_SUITEB 245 CFLAGS += -DCONFIG_SUITEB 246 endif 247 248 ifdef CONFIG_SUITEB192 249 CFLAGS += -DCONFIG_SUITEB192 250 NEED_SHA384=y 251 endif 252 253 ifdef CONFIG_OCV 254 CFLAGS += -DCONFIG_OCV 255 OBJS += ../src/common/ocv.o 256 endif 257 258 ifdef CONFIG_IEEE80211R 259 CFLAGS += -DCONFIG_IEEE80211R 260 OBJS += ../src/rsn_supp/wpa_ft.o 261 endif 262 263 ifdef CONFIG_MESH 264 NEED_80211_COMMON=y 265 NEED_AES_SIV=y 266 CONFIG_SAE=y 267 CONFIG_AP=y 268 CFLAGS += -DCONFIG_MESH 269 OBJS += mesh.o 270 OBJS += mesh_mpm.o 271 OBJS += mesh_rsn.o 272 endif 273 274 ifdef CONFIG_SAE 275 CFLAGS += -DCONFIG_SAE 276 OBJS += ../src/common/sae.o 277 ifdef CONFIG_SAE_PK 278 CFLAGS += -DCONFIG_SAE_PK 279 NEED_AES_SIV=y 280 OBJS += ../src/common/sae_pk.o 281 endif 282 NEED_ECC=y 283 NEED_DH_GROUPS=y 284 NEED_HMAC_SHA256_KDF=y 285 NEED_DRAGONFLY=y 286 ifdef CONFIG_TESTING_OPTIONS 287 NEED_DH_GROUPS_ALL=y 288 endif 289 endif 290 291 ifdef CONFIG_DPP 292 CFLAGS += -DCONFIG_DPP 293 OBJS += ../src/common/dpp.o 294 OBJS += ../src/common/dpp_auth.o 295 OBJS += ../src/common/dpp_backup.o 296 OBJS += ../src/common/dpp_crypto.o 297 OBJS += ../src/common/dpp_pkex.o 298 OBJS += ../src/common/dpp_reconfig.o 299 OBJS += ../src/common/dpp_tcp.o 300 OBJS += dpp_supplicant.o 301 NEED_AES_SIV=y 302 NEED_HMAC_SHA256_KDF=y 303 NEED_HMAC_SHA384_KDF=y 304 NEED_HMAC_SHA512_KDF=y 305 NEED_SHA384=y 306 NEED_SHA512=y 307 NEED_ECC=y 308 NEED_JSON=y 309 NEED_GAS_SERVER=y 310 NEED_BASE64=y 311 NEED_ASN1=y 312 ifdef CONFIG_DPP2 313 CFLAGS += -DCONFIG_DPP2 314 endif 315 ifdef CONFIG_DPP3 316 CFLAGS += -DCONFIG_DPP3 317 endif 318 endif 319 320 ifdef CONFIG_NAN_USD 321 OBJS += ../src/common/nan_de.o 322 OBJS += nan_usd.o 323 CFLAGS += -DCONFIG_NAN_USD 324 endif 325 326 ifdef CONFIG_OWE 327 CFLAGS += -DCONFIG_OWE 328 NEED_ECC=y 329 NEED_HMAC_SHA256_KDF=y 330 NEED_HMAC_SHA384_KDF=y 331 NEED_HMAC_SHA512_KDF=y 332 NEED_SHA384=y 333 NEED_SHA512=y 334 endif 335 336 ifdef CONFIG_FILS 337 CFLAGS += -DCONFIG_FILS 338 NEED_SHA384=y 339 NEED_AES_SIV=y 340 ifdef CONFIG_FILS_SK_PFS 341 CFLAGS += -DCONFIG_FILS_SK_PFS 342 NEED_ECC=y 343 endif 344 endif 345 346 ifdef CONFIG_MBO 347 CONFIG_WNM=y 348 endif 349 350 ifdef CONFIG_BGSCAN_SIMPLE 351 CONFIG_WNM=y 352 endif 353 354 ifdef CONFIG_WNM 355 CFLAGS += -DCONFIG_WNM 356 OBJS += wnm_sta.o 357 endif 358 359 ifdef CONFIG_TDLS 360 CFLAGS += -DCONFIG_TDLS 361 OBJS += ../src/rsn_supp/tdls.o 362 endif 363 364 ifdef CONFIG_TDLS_TESTING 365 CFLAGS += -DCONFIG_TDLS_TESTING 366 endif 367 368 ifdef CONFIG_PMKSA_CACHE_EXTERNAL 369 CFLAGS += -DCONFIG_PMKSA_CACHE_EXTERNAL 370 endif 371 372 ifndef CONFIG_NO_WPA 373 OBJS += ../src/rsn_supp/wpa.o 374 OBJS += ../src/rsn_supp/preauth.o 375 OBJS += ../src/rsn_supp/wpa_ie.o 376 OBJS += ../src/common/wpa_common.o 377 NEED_AES=y 378 NEED_SHA1=y 379 NEED_MD5=y 380 NEED_RC4=y 381 else 382 CFLAGS += -DCONFIG_NO_WPA 383 ifeq ($(CONFIG_TLS), internal) 384 NEED_SHA1=y 385 NEED_MD5=y 386 endif 387 endif 388 389 ifdef CONFIG_IBSS_RSN 390 NEED_RSN_AUTHENTICATOR=y 391 CFLAGS += -DCONFIG_IBSS_RSN 392 CFLAGS += -DCONFIG_NO_VLAN 393 OBJS += ibss_rsn.o 394 endif 395 396 ifdef CONFIG_MATCH_IFACE 397 CFLAGS += -DCONFIG_MATCH_IFACE 398 endif 399 400 ifdef CONFIG_P2P 401 OBJS += p2p_supplicant.o 402 OBJS += p2p_supplicant_sd.o 403 OBJS += ../src/p2p/p2p.o 404 OBJS += ../src/p2p/p2p_utils.o 405 OBJS += ../src/p2p/p2p_parse.o 406 OBJS += ../src/p2p/p2p_build.o 407 OBJS += ../src/p2p/p2p_go_neg.o 408 OBJS += ../src/p2p/p2p_sd.o 409 OBJS += ../src/p2p/p2p_pd.o 410 OBJS += ../src/p2p/p2p_invitation.o 411 OBJS += ../src/p2p/p2p_dev_disc.o 412 OBJS += ../src/p2p/p2p_group.o 413 OBJS += ../src/ap/p2p_hostapd.o 414 CFLAGS += -DCONFIG_P2P 415 NEED_GAS=y 416 NEED_OFFCHANNEL=y 417 CONFIG_WPS=y 418 CONFIG_AP=y 419 ifdef CONFIG_P2P_STRICT 420 CFLAGS += -DCONFIG_P2P_STRICT 421 endif 422 ifdef CONFIG_WIFI_DISPLAY 423 CFLAGS += -DCONFIG_WIFI_DISPLAY 424 OBJS += wifi_display.o 425 endif 426 endif 427 428 ifdef CONFIG_PASN 429 CFLAGS += -DCONFIG_PASN 430 CFLAGS += -DCONFIG_PTKSA_CACHE 431 NEED_HMAC_SHA256_KDF=y 432 NEED_HMAC_SHA384_KDF=y 433 NEED_SHA256=y 434 NEED_SHA384=y 435 OBJS += ../src/pasn/pasn_initiator.o 436 OBJS += ../src/pasn/pasn_common.o 437 OBJS += pasn_supplicant.o 438 endif 439 440 ifdef CONFIG_HS20 441 OBJS += hs20_supplicant.o 442 CFLAGS += -DCONFIG_HS20 443 CONFIG_INTERWORKING=y 444 endif 445 446 ifdef CONFIG_INTERWORKING 447 OBJS += interworking.o 448 CFLAGS += -DCONFIG_INTERWORKING 449 NEED_GAS=y 450 endif 451 452 ifdef CONFIG_NO_ROAMING 453 CFLAGS += -DCONFIG_NO_ROAMING 454 endif 455 456 ifdef CONFIG_OPENSC_ENGINE_PATH 457 CFLAGS += -DCONFIG_OPENSC_ENGINE_PATH=\"$(CONFIG_OPENSC_ENGINE_PATH)\" 458 endif 459 460 ifdef CONFIG_NO_OPENSC_ENGINE_PATH 461 CFLAGS += -DCONFIG_OPENSC_ENGINE_PATH=NULL 462 endif 463 464 ifdef CONFIG_PKCS11_ENGINE_PATH 465 CFLAGS += -DCONFIG_PKCS11_ENGINE_PATH=\"$(CONFIG_PKCS11_ENGINE_PATH)\" 466 endif 467 468 ifdef CONFIG_NO_PKCS11_ENGINE_PATH 469 CFLAGS += -DCONFIG_PKCS11_ENGINE_PATH=NULL 470 endif 471 472 ifdef CONFIG_PKCS11_MODULE_PATH 473 CFLAGS += -DCONFIG_PKCS11_MODULE_PATH=\"$(CONFIG_PKCS11_MODULE_PATH)\" 474 endif 475 476 ifdef CONFIG_NO_PKCS11_MODULE_PATH 477 CFLAGS += -DCONFIG_PKCS11_MODULE_PATH=NULL 478 endif 479 480 ifdef CONFIG_NO_LOAD_DYNAMIC_EAP 481 CFLAGS += -DCONFIG_NO_LOAD_DYNAMIC_EAP 482 endif 483 484 ifdef CONFIG_NO_RRM 485 CFLAGS += -DCONFIG_NO_RRM 486 else 487 OBJS += rrm.o 488 ifdef CONFIG_AP 489 OBJS += ../src/ap/rrm.o 490 endif 491 OBJS += op_classes.o 492 endif 493 494 ifdef CONFIG_NO_WMM_AC 495 CFLAGS += -DCONFIG_NO_WMM_AC 496 else 497 OBJS += wmm_ac.o 498 endif 499 500 ifdef CONFIG_NO_ROBUST_AV 501 CFLAGS += -DCONFIG_NO_ROBUST_AV 502 else 503 OBJS += robust_av.o 504 endif 505 506 include ../src/drivers/drivers.mak 507 ifdef CONFIG_AP 508 OBJS_d += $(DRV_BOTH_OBJS) 509 CFLAGS += $(DRV_BOTH_CFLAGS) 510 LDFLAGS += $(DRV_BOTH_LDFLAGS) 511 LIBS += $(DRV_BOTH_LIBS) 512 else 513 NEED_AP_MLME= 514 OBJS_d += $(DRV_WPA_OBJS) 515 CFLAGS += $(DRV_WPA_CFLAGS) 516 LDFLAGS += $(DRV_WPA_LDFLAGS) 517 LIBS += $(DRV_WPA_LIBS) 518 endif 519 520 ifndef CONFIG_L2_PACKET 521 CONFIG_L2_PACKET=linux 522 endif 523 524 OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o 525 526 ifeq ($(CONFIG_L2_PACKET), pcap) 527 ifdef CONFIG_WINPCAP 528 CFLAGS += -DCONFIG_WINPCAP 529 LIBS += -lwpcap -lpacket 530 LIBS_w += -lwpcap 531 else 532 LIBS += -ldnet -lpcap 533 endif 534 endif 535 536 ifeq ($(CONFIG_L2_PACKET), winpcap) 537 LIBS += -lwpcap -lpacket 538 LIBS_w += -lwpcap 539 endif 540 541 ifeq ($(CONFIG_L2_PACKET), freebsd) 542 LIBS += -lpcap 543 endif 544 545 ifdef CONFIG_ERP 546 CFLAGS += -DCONFIG_ERP 547 NEED_HMAC_SHA256_KDF=y 548 endif 549 550 ifdef CONFIG_EAP_TLS 551 # EAP-TLS 552 ifeq ($(CONFIG_EAP_TLS), dyn) 553 CFLAGS += -DEAP_TLS_DYNAMIC 554 EAPDYN += eap_tls.so 555 else 556 CFLAGS += -DEAP_TLS 557 OBJS += ../src/eap_peer/eap_tls.o 558 endif 559 TLS_FUNCS=y 560 CONFIG_IEEE8021X_EAPOL=y 561 ifdef CONFIG_EAP_TLSV1_3 562 CFLAGS += -DEAP_TLSV1_3 563 endif 564 endif 565 566 ifdef CONFIG_EAP_UNAUTH_TLS 567 # EAP-UNAUTH-TLS 568 CFLAGS += -DEAP_UNAUTH_TLS 569 ifndef CONFIG_EAP_TLS 570 OBJS += ../src/eap_peer/eap_tls.o 571 TLS_FUNCS=y 572 endif 573 CONFIG_IEEE8021X_EAPOL=y 574 endif 575 576 ifdef CONFIG_EAP_PEAP 577 # EAP-PEAP 578 SRC_EAP_PEAP = ../src/eap_peer/eap_peap.c ../src/eap_common/eap_peap_common.c 579 ifeq ($(CONFIG_EAP_PEAP), dyn) 580 CFLAGS += -DEAP_PEAP_DYNAMIC 581 EAPDYN += eap_peap.so 582 else 583 CFLAGS += -DEAP_PEAP 584 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PEAP)) 585 endif 586 TLS_FUNCS=y 587 CONFIG_IEEE8021X_EAPOL=y 588 endif 589 590 ifdef CONFIG_EAP_TTLS 591 # EAP-TTLS 592 ifeq ($(CONFIG_EAP_TTLS), dyn) 593 CFLAGS += -DEAP_TTLS_DYNAMIC 594 EAPDYN += eap_ttls.so 595 else 596 CFLAGS += -DEAP_TTLS 597 OBJS += ../src/eap_peer/eap_ttls.o 598 endif 599 TLS_FUNCS=y 600 ifndef CONFIG_FIPS 601 MS_FUNCS=y 602 CHAP=y 603 endif 604 CONFIG_IEEE8021X_EAPOL=y 605 endif 606 607 ifdef CONFIG_EAP_MD5 608 # EAP-MD5 609 ifeq ($(CONFIG_EAP_MD5), dyn) 610 CFLAGS += -DEAP_MD5_DYNAMIC 611 EAPDYN += eap_md5.so 612 else 613 CFLAGS += -DEAP_MD5 614 OBJS += ../src/eap_peer/eap_md5.o 615 endif 616 CHAP=y 617 CONFIG_IEEE8021X_EAPOL=y 618 endif 619 620 # backwards compatibility for old spelling 621 ifdef CONFIG_MSCHAPV2 622 ifndef CONFIG_EAP_MSCHAPV2 623 CONFIG_EAP_MSCHAPV2=y 624 endif 625 endif 626 627 ifdef CONFIG_EAP_MSCHAPV2 628 # EAP-MSCHAPv2 629 SRC_EAP_MSCHAPV2 = ../src/eap_peer/eap_mschapv2.c ../src/eap_peer/mschapv2.c 630 ifeq ($(CONFIG_EAP_MSCHAPV2), dyn) 631 CFLAGS += -DEAP_MSCHAPv2_DYNAMIC 632 EAPDYN += eap_mschapv2.so 633 else 634 CFLAGS += -DEAP_MSCHAPv2 635 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_MSCHAPV2)) 636 endif 637 MS_FUNCS=y 638 CONFIG_IEEE8021X_EAPOL=y 639 endif 640 641 ifdef CONFIG_EAP_GTC 642 # EAP-GTC 643 ifeq ($(CONFIG_EAP_GTC), dyn) 644 CFLAGS += -DEAP_GTC_DYNAMIC 645 EAPDYN += eap_gtc.so 646 else 647 CFLAGS += -DEAP_GTC 648 OBJS += ../src/eap_peer/eap_gtc.o 649 endif 650 CONFIG_IEEE8021X_EAPOL=y 651 endif 652 653 ifdef CONFIG_EAP_OTP 654 # EAP-OTP 655 ifeq ($(CONFIG_EAP_OTP), dyn) 656 CFLAGS += -DEAP_OTP_DYNAMIC 657 EAPDYN += eap_otp.so 658 else 659 CFLAGS += -DEAP_OTP 660 OBJS += ../src/eap_peer/eap_otp.o 661 endif 662 CONFIG_IEEE8021X_EAPOL=y 663 endif 664 665 ifdef CONFIG_EAP_SIM 666 # EAP-SIM 667 ifeq ($(CONFIG_EAP_SIM), dyn) 668 CFLAGS += -DEAP_SIM_DYNAMIC 669 EAPDYN += eap_sim.so 670 else 671 CFLAGS += -DEAP_SIM 672 OBJS += ../src/eap_peer/eap_sim.o 673 endif 674 CONFIG_IEEE8021X_EAPOL=y 675 CONFIG_EAP_SIM_COMMON=y 676 NEED_AES_CBC=y 677 endif 678 679 ifdef CONFIG_EAP_LEAP 680 # EAP-LEAP 681 ifeq ($(CONFIG_EAP_LEAP), dyn) 682 CFLAGS += -DEAP_LEAP_DYNAMIC 683 EAPDYN += eap_leap.so 684 else 685 CFLAGS += -DEAP_LEAP 686 OBJS += ../src/eap_peer/eap_leap.o 687 endif 688 MS_FUNCS=y 689 CONFIG_IEEE8021X_EAPOL=y 690 endif 691 692 ifdef CONFIG_EAP_PSK 693 # EAP-PSK 694 SRC_EAP_PSK = ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c 695 ifeq ($(CONFIG_EAP_PSK), dyn) 696 CFLAGS += -DEAP_PSK_DYNAMIC 697 EAPDYN += eap_psk.so 698 else 699 CFLAGS += -DEAP_PSK 700 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PSK)) 701 endif 702 CONFIG_IEEE8021X_EAPOL=y 703 NEED_AES=y 704 NEED_AES_ENCBLOCK=y 705 NEED_AES_EAX=y 706 endif 707 708 ifdef CONFIG_EAP_AKA 709 # EAP-AKA 710 ifeq ($(CONFIG_EAP_AKA), dyn) 711 CFLAGS += -DEAP_AKA_DYNAMIC 712 EAPDYN += eap_aka.so 713 else 714 CFLAGS += -DEAP_AKA 715 OBJS += ../src/eap_peer/eap_aka.o 716 endif 717 CONFIG_IEEE8021X_EAPOL=y 718 CONFIG_EAP_SIM_COMMON=y 719 NEED_AES_CBC=y 720 endif 721 722 ifdef CONFIG_EAP_PROXY 723 CFLAGS += -DCONFIG_EAP_PROXY 724 OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o 725 include eap_proxy_$(CONFIG_EAP_PROXY).mak 726 CONFIG_IEEE8021X_EAPOL=y 727 endif 728 729 ifdef CONFIG_EAP_AKA_PRIME 730 # EAP-AKA' 731 ifeq ($(CONFIG_EAP_AKA_PRIME), dyn) 732 CFLAGS += -DEAP_AKA_PRIME_DYNAMIC 733 else 734 CFLAGS += -DEAP_AKA_PRIME 735 endif 736 endif 737 738 ifdef CONFIG_EAP_SIM_COMMON 739 OBJS += ../src/eap_common/eap_sim_common.o 740 NEED_AES=y 741 NEED_FIPS186_2_PRF=y 742 endif 743 744 ifdef CONFIG_EAP_FAST 745 # EAP-FAST 746 SRC_EAP_FAST = ../src/eap_peer/eap_fast.c ../src/eap_peer/eap_fast_pac.c 747 SRC_EAP_FAST += ../src/eap_common/eap_fast_common.c 748 ifeq ($(CONFIG_EAP_FAST), dyn) 749 CFLAGS += -DEAP_FAST_DYNAMIC 750 EAPDYN += eap_fast.so 751 else 752 CFLAGS += -DEAP_FAST 753 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_FAST)) 754 endif 755 TLS_FUNCS=y 756 CONFIG_IEEE8021X_EAPOL=y 757 NEED_T_PRF=y 758 endif 759 760 ifdef CONFIG_EAP_TEAP 761 # EAP-TEAP 762 SRC_EAP_TEAP = ../src/eap_peer/eap_teap.c ../src/eap_peer/eap_teap_pac.c 763 SRC_EAP_TEAP += ../src/eap_common/eap_teap_common.c 764 ifeq ($(CONFIG_EAP_TEAP), dyn) 765 CFLAGS += -DEAP_TEAP_DYNAMIC 766 EAPDYN += eap_teap.so 767 else 768 CFLAGS += -DEAP_TEAP 769 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_TEAP)) 770 endif 771 TLS_FUNCS=y 772 CONFIG_IEEE8021X_EAPOL=y 773 NEED_T_PRF=y 774 NEED_SHA384=y 775 NEED_TLS_PRF_SHA256=y 776 NEED_TLS_PRF_SHA384=y 777 endif 778 779 ifdef CONFIG_EAP_PAX 780 # EAP-PAX 781 SRC_EAP_PAX = ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c 782 ifeq ($(CONFIG_EAP_PAX), dyn) 783 CFLAGS += -DEAP_PAX_DYNAMIC 784 EAPDYN += eap_pax.so 785 else 786 CFLAGS += -DEAP_PAX 787 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_PAX)) 788 endif 789 CONFIG_IEEE8021X_EAPOL=y 790 endif 791 792 ifdef CONFIG_EAP_SAKE 793 # EAP-SAKE 794 SRC_EAP_SAKE = ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c 795 ifeq ($(CONFIG_EAP_SAKE), dyn) 796 CFLAGS += -DEAP_SAKE_DYNAMIC 797 EAPDYN += eap_sake.so 798 else 799 CFLAGS += -DEAP_SAKE 800 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_SAKE)) 801 endif 802 CONFIG_IEEE8021X_EAPOL=y 803 endif 804 805 ifdef CONFIG_EAP_GPSK 806 # EAP-GPSK 807 SRC_EAP_GPSK = ../src/eap_peer/eap_gpsk.c ../src/eap_common/eap_gpsk_common.c 808 ifeq ($(CONFIG_EAP_GPSK), dyn) 809 CFLAGS += -DEAP_GPSK_DYNAMIC 810 EAPDYN += eap_gpsk.so 811 else 812 CFLAGS += -DEAP_GPSK 813 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_GPSK)) 814 endif 815 CONFIG_IEEE8021X_EAPOL=y 816 ifdef CONFIG_EAP_GPSK_SHA256 817 CFLAGS += -DEAP_GPSK_SHA256 818 endif 819 endif 820 821 ifdef CONFIG_EAP_PWD 822 CFLAGS += -DEAP_PWD 823 ifeq ($(CONFIG_TLS), wolfssl) 824 CFLAGS += -DCONFIG_ECC 825 endif 826 OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o 827 CONFIG_IEEE8021X_EAPOL=y 828 NEED_ECC=y 829 NEED_DRAGONFLY=y 830 MS_FUNCS=y 831 endif 832 833 ifdef CONFIG_EAP_EKE 834 # EAP-EKE 835 SRC_EAP_EKE = ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c 836 ifeq ($(CONFIG_EAP_EKE), dyn) 837 CFLAGS += -DEAP_EKE_DYNAMIC 838 EAPDYN += eap_eke.so 839 else 840 CFLAGS += -DEAP_EKE 841 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_EKE)) 842 endif 843 CONFIG_IEEE8021X_EAPOL=y 844 NEED_DH_GROUPS=y 845 NEED_DH_GROUPS_ALL=y 846 NEED_AES_CBC=y 847 endif 848 849 ifdef CONFIG_WPS 850 # EAP-WSC 851 CFLAGS += -DCONFIG_WPS -DEAP_WSC 852 OBJS += wps_supplicant.o 853 OBJS += ../src/utils/uuid.o 854 OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o 855 OBJS += ../src/wps/wps.o 856 OBJS += ../src/wps/wps_common.o 857 OBJS += ../src/wps/wps_attr_parse.o 858 OBJS += ../src/wps/wps_attr_build.o 859 OBJS += ../src/wps/wps_attr_process.o 860 OBJS += ../src/wps/wps_dev_attr.o 861 OBJS += ../src/wps/wps_enrollee.o 862 OBJS += ../src/wps/wps_registrar.o 863 CONFIG_IEEE8021X_EAPOL=y 864 NEED_DH_GROUPS=y 865 NEED_BASE64=y 866 NEED_AES_CBC=y 867 NEED_MODEXP=y 868 869 ifdef CONFIG_WPS_NFC 870 CFLAGS += -DCONFIG_WPS_NFC 871 OBJS += ../src/wps/ndef.o 872 NEED_WPS_OOB=y 873 endif 874 875 ifdef NEED_WPS_OOB 876 CFLAGS += -DCONFIG_WPS_OOB 877 endif 878 879 ifdef CONFIG_WPS_ER 880 CONFIG_WPS_UPNP=y 881 CFLAGS += -DCONFIG_WPS_ER 882 OBJS += ../src/wps/wps_er.o 883 OBJS += ../src/wps/wps_er_ssdp.o 884 endif 885 886 ifdef CONFIG_WPS_UPNP 887 CFLAGS += -DCONFIG_WPS_UPNP 888 OBJS += ../src/wps/wps_upnp.o 889 OBJS += ../src/wps/wps_upnp_ssdp.o 890 OBJS += ../src/wps/wps_upnp_web.o 891 OBJS += ../src/wps/wps_upnp_event.o 892 OBJS += ../src/wps/wps_upnp_ap.o 893 OBJS += ../src/wps/upnp_xml.o 894 OBJS += ../src/wps/httpread.o 895 OBJS += ../src/wps/http_client.o 896 OBJS += ../src/wps/http_server.o 897 endif 898 899 ifdef CONFIG_WPS_STRICT 900 CFLAGS += -DCONFIG_WPS_STRICT 901 OBJS += ../src/wps/wps_validate.o 902 endif 903 904 ifdef CONFIG_WPS_TESTING 905 CFLAGS += -DCONFIG_WPS_TESTING 906 endif 907 908 ifdef CONFIG_WPS_REG_DISABLE_OPEN 909 CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN 910 endif 911 912 endif 913 914 ifdef CONFIG_EAP_IKEV2 915 # EAP-IKEv2 916 SRC_EAP_IKEV2 = ../src/eap_peer/eap_ikev2.c 917 SRC_EAP_IKEV2 += ../src/eap_peer/ikev2.c 918 SRC_EAP_IKEV2 += ../src/eap_common/eap_ikev2_common.c 919 SRC_EAP_IKEV2 += ../src/eap_common/ikev2_common.c 920 ifeq ($(CONFIG_EAP_IKEV2), dyn) 921 CFLAGS += -DEAP_IKEV2_DYNAMIC 922 EAPDYN += eap_ikev2.so 923 else 924 CFLAGS += -DEAP_IKEV2 925 OBJS += $(patsubst %.c, %.o, $(SRC_EAP_IKEV2)) 926 endif 927 CONFIG_IEEE8021X_EAPOL=y 928 NEED_DH_GROUPS=y 929 NEED_DH_GROUPS_ALL=y 930 NEED_MODEXP=y 931 NEED_CIPHER=y 932 endif 933 934 ifdef CONFIG_EAP_VENDOR_TEST 935 ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn) 936 CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC 937 EAPDYN += eap_vendor_test.so 938 else 939 CFLAGS += -DEAP_VENDOR_TEST 940 OBJS += ../src/eap_peer/eap_vendor_test.o 941 endif 942 CONFIG_IEEE8021X_EAPOL=y 943 endif 944 945 ifdef CONFIG_EAP_TNC 946 # EAP-TNC 947 CFLAGS += -DEAP_TNC 948 OBJS += ../src/eap_peer/eap_tnc.o 949 OBJS += ../src/eap_peer/tncc.o 950 NEED_BASE64=y 951 ifndef CONFIG_NATIVE_WINDOWS 952 ifndef CONFIG_DRIVER_BSD 953 LIBS += -ldl 954 endif 955 endif 956 endif 957 958 ifdef CONFIG_MACSEC 959 CFLAGS += -DCONFIG_MACSEC 960 CONFIG_IEEE8021X_EAPOL=y 961 NEED_AES_ENCBLOCK=y 962 NEED_AES_UNWRAP=y 963 NEED_AES_WRAP=y 964 OBJS += wpas_kay.o 965 OBJS += ../src/pae/ieee802_1x_cp.o 966 OBJS += ../src/pae/ieee802_1x_kay.o 967 OBJS += ../src/pae/ieee802_1x_key.o 968 OBJS += ../src/pae/ieee802_1x_secy_ops.o 969 ifdef CONFIG_AP 970 OBJS += ../src/ap/wpa_auth_kay.o 971 endif 972 endif 973 974 ifdef CONFIG_IEEE8021X_EAPOL 975 # IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication) 976 CFLAGS += -DIEEE8021X_EAPOL 977 OBJS += ../src/eapol_supp/eapol_supp_sm.o 978 OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o 979 NEED_EAP_COMMON=y 980 ifdef CONFIG_DYNAMIC_EAP_METHODS 981 CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS 982 LIBS += -ldl -rdynamic 983 endif 984 endif 985 986 ifdef CONFIG_AP 987 NEED_EAP_COMMON=y 988 NEED_RSN_AUTHENTICATOR=y 989 CFLAGS += -DCONFIG_AP 990 OBJS += ap.o 991 CFLAGS += -DCONFIG_NO_RADIUS 992 CFLAGS += -DCONFIG_NO_ACCOUNTING 993 CFLAGS += -DCONFIG_NO_VLAN 994 OBJS += ../src/ap/hostapd.o 995 OBJS += ../src/ap/wpa_auth_glue.o 996 OBJS += ../src/ap/utils.o 997 OBJS += ../src/ap/authsrv.o 998 OBJS += ../src/ap/ap_config.o 999 OBJS += ../src/ap/sta_info.o 1000 OBJS += ../src/ap/tkip_countermeasures.o 1001 OBJS += ../src/ap/ap_mlme.o 1002 OBJS += ../src/ap/ieee802_1x.o 1003 OBJS += ../src/eapol_auth/eapol_auth_sm.o 1004 OBJS += ../src/ap/ieee802_11_auth.o 1005 OBJS += ../src/ap/ieee802_11_shared.o 1006 OBJS += ../src/ap/drv_callbacks.o 1007 OBJS += ../src/ap/ap_drv_ops.o 1008 OBJS += ../src/ap/beacon.o 1009 OBJS += ../src/ap/bss_load.o 1010 OBJS += ../src/ap/eap_user_db.o 1011 OBJS += ../src/ap/neighbor_db.o 1012 OBJS += ../src/ap/ieee802_11_ht.o 1013 ifdef CONFIG_IEEE80211AC 1014 OBJS += ../src/ap/ieee802_11_vht.o 1015 endif 1016 ifdef CONFIG_IEEE80211AX 1017 OBJS += ../src/ap/ieee802_11_he.o 1018 endif 1019 ifdef CONFIG_IEEE80211BE 1020 OBJS += ../src/ap/ieee802_11_eht.o 1021 endif 1022 ifdef CONFIG_WNM_AP 1023 CFLAGS += -DCONFIG_WNM_AP 1024 OBJS += ../src/ap/wnm_ap.o 1025 endif 1026 ifdef CONFIG_MBO 1027 OBJS += ../src/ap/mbo_ap.o 1028 endif 1029 ifdef CONFIG_FILS 1030 OBJS += ../src/ap/fils_hlp.o 1031 endif 1032 ifdef CONFIG_CTRL_IFACE 1033 OBJS += ../src/ap/ctrl_iface_ap.o 1034 endif 1035 1036 CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY 1037 OBJS += ../src/eap_server/eap_server.o 1038 OBJS += ../src/eap_server/eap_server_identity.o 1039 OBJS += ../src/eap_server/eap_server_methods.o 1040 1041 ifdef CONFIG_IEEE80211AC 1042 CFLAGS += -DCONFIG_IEEE80211AC 1043 endif 1044 ifdef CONFIG_IEEE80211BE 1045 CONFIG_IEEE80211AX=y 1046 CFLAGS += -DCONFIG_IEEE80211BE 1047 endif 1048 ifdef CONFIG_IEEE80211AX 1049 CFLAGS += -DCONFIG_IEEE80211AX 1050 endif 1051 1052 ifdef NEED_AP_MLME 1053 OBJS += ../src/ap/wmm.o 1054 OBJS += ../src/ap/ap_list.o 1055 OBJS += ../src/ap/comeback_token.o 1056 OBJS += ../src/pasn/pasn_responder.o 1057 OBJS += ../src/ap/ieee802_11.o 1058 OBJS += ../src/ap/hw_features.o 1059 OBJS += ../src/ap/dfs.o 1060 CFLAGS += -DNEED_AP_MLME 1061 endif 1062 ifdef CONFIG_WPS 1063 CFLAGS += -DEAP_SERVER_WSC 1064 OBJS += ../src/ap/wps_hostapd.o 1065 OBJS += ../src/eap_server/eap_server_wsc.o 1066 endif 1067 ifdef CONFIG_DPP 1068 OBJS += ../src/ap/dpp_hostapd.o 1069 OBJS += ../src/ap/gas_query_ap.o 1070 NEED_AP_GAS_SERV=y 1071 endif 1072 ifdef CONFIG_NAN_USD 1073 OBJS += ../src/ap/nan_usd_ap.o 1074 endif 1075 ifdef CONFIG_INTERWORKING 1076 NEED_AP_GAS_SERV=y 1077 endif 1078 ifdef NEED_AP_GAS_SERV 1079 OBJS += ../src/ap/gas_serv.o 1080 endif 1081 ifdef CONFIG_HS20 1082 OBJS += ../src/ap/hs20.o 1083 endif 1084 endif 1085 1086 ifdef CONFIG_MBO 1087 OBJS += mbo.o 1088 CFLAGS += -DCONFIG_MBO 1089 NEED_GAS=y 1090 endif 1091 1092 ifdef NEED_RSN_AUTHENTICATOR 1093 CFLAGS += -DCONFIG_NO_RADIUS 1094 NEED_AES_WRAP=y 1095 OBJS += ../src/ap/wpa_auth.o 1096 OBJS += ../src/ap/wpa_auth_ie.o 1097 OBJS += ../src/ap/pmksa_cache_auth.o 1098 endif 1099 1100 ifdef CONFIG_ACS 1101 CFLAGS += -DCONFIG_ACS 1102 OBJS += ../src/ap/acs.o 1103 LIBS += -lm 1104 endif 1105 1106 ifdef CONFIG_PCSC 1107 # PC/SC interface for smartcards (USIM, GSM SIM) 1108 CFLAGS += -DPCSC_FUNCS 1109 OBJS += ../src/utils/pcsc_funcs.o 1110 ifdef CONFIG_NATIVE_WINDOWS 1111 #Once MinGW gets support for WinScard, -lwinscard could be used instead of the 1112 #dynamic symbol loading that is now used in pcsc_funcs.c 1113 #LIBS += -lwinscard 1114 CFLAGS += -I/usr/include/PCSC 1115 else 1116 ifdef CONFIG_OSX 1117 LIBS += -framework PCSC 1118 CFLAGS += -I/usr/include/PCSC 1119 else 1120 LIBS += $(shell $(PKG_CONFIG) --libs libpcsclite) 1121 CFLAGS += $(shell $(PKG_CONFIG) --cflags libpcsclite) 1122 endif 1123 endif 1124 endif 1125 1126 ifdef CONFIG_SIM_SIMULATOR 1127 CFLAGS += -DCONFIG_SIM_SIMULATOR 1128 NEED_MILENAGE=y 1129 endif 1130 1131 ifdef CONFIG_USIM_SIMULATOR 1132 CFLAGS += -DCONFIG_USIM_SIMULATOR 1133 NEED_MILENAGE=y 1134 endif 1135 1136 ifdef NEED_MILENAGE 1137 OBJS += ../src/crypto/milenage.o 1138 NEED_AES_ENCBLOCK=y 1139 endif 1140 1141 ifdef CONFIG_PKCS12 1142 CFLAGS += -DPKCS12_FUNCS 1143 endif 1144 1145 ifdef CONFIG_SMARTCARD 1146 CFLAGS += -DCONFIG_SMARTCARD 1147 endif 1148 1149 ifdef NEED_DRAGONFLY 1150 OBJS += ../src/common/dragonfly.o 1151 endif 1152 1153 ifdef MS_FUNCS 1154 OBJS += ../src/crypto/ms_funcs.o 1155 NEED_DES=y 1156 NEED_MD4=y 1157 endif 1158 1159 ifdef CHAP 1160 OBJS += ../src/eap_common/chap.o 1161 endif 1162 1163 ifdef TLS_FUNCS 1164 NEED_DES=y 1165 # Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, EAP_FAST, and 1166 # EAP_TEAP) 1167 OBJS += ../src/eap_peer/eap_tls_common.o 1168 ifndef CONFIG_FIPS 1169 NEED_TLS_PRF=y 1170 NEED_SHA1=y 1171 NEED_MD5=y 1172 endif 1173 endif 1174 1175 ifndef CONFIG_TLS 1176 CONFIG_TLS=openssl 1177 endif 1178 1179 ifdef CONFIG_TLSV11 1180 CFLAGS += -DCONFIG_TLSV11 1181 endif 1182 1183 ifdef CONFIG_TLSV12 1184 CFLAGS += -DCONFIG_TLSV12 1185 endif 1186 1187 ifdef CONFIG_RADIUS_TLS 1188 TLS_FUNCS=y 1189 endif 1190 1191 ifeq ($(CONFIG_TLS), wolfssl) 1192 ifdef TLS_FUNCS 1193 CFLAGS += -DWOLFSSL_DER_LOAD 1194 OBJS += ../src/crypto/tls_wolfssl.o 1195 endif 1196 OBJS += ../src/crypto/crypto_wolfssl.o 1197 OBJS_p += ../src/crypto/crypto_wolfssl.o 1198 ifdef NEED_FIPS186_2_PRF 1199 OBJS += ../src/crypto/fips_prf_wolfssl.o 1200 endif 1201 NEED_TLS_PRF_SHA256=y 1202 LIBS += -lwolfssl -lm 1203 LIBS_p += -lwolfssl -lm 1204 endif 1205 1206 ifeq ($(CONFIG_TLS), openssl) 1207 CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 1208 ifdef TLS_FUNCS 1209 CFLAGS += -DEAP_TLS_OPENSSL 1210 OBJS += ../src/crypto/tls_openssl.o 1211 OBJS += ../src/crypto/tls_openssl_ocsp.o 1212 LIBS += -lssl 1213 endif 1214 OBJS += ../src/crypto/crypto_openssl.o 1215 OBJS_p += ../src/crypto/crypto_openssl.o 1216 OBJS_priv += ../src/crypto/crypto_openssl.o 1217 ifdef NEED_FIPS186_2_PRF 1218 OBJS += ../src/crypto/fips_prf_openssl.o 1219 endif 1220 NEED_TLS_PRF_SHA256=y 1221 LIBS += -lcrypto 1222 LIBS_p += -lcrypto 1223 ifdef CONFIG_TLS_ADD_DL 1224 LIBS += -ldl 1225 LIBS_p += -ldl 1226 endif 1227 ifndef CONFIG_TLS_DEFAULT_CIPHERS 1228 CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW" 1229 endif 1230 CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" 1231 endif 1232 1233 ifeq ($(CONFIG_TLS), gnutls) 1234 ifndef CONFIG_CRYPTO 1235 # default to libgcrypt 1236 CONFIG_CRYPTO=gnutls 1237 endif 1238 ifdef TLS_FUNCS 1239 OBJS += ../src/crypto/tls_gnutls.o 1240 LIBS += -lgnutls -lgpg-error 1241 endif 1242 OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1243 OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1244 OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1245 ifdef NEED_FIPS186_2_PRF 1246 OBJS += ../src/crypto/fips_prf_internal.o 1247 SHA1OBJS += ../src/crypto/sha1-internal.o 1248 endif 1249 ifeq ($(CONFIG_CRYPTO), gnutls) 1250 LIBS += -lgcrypt 1251 LIBS_p += -lgcrypt 1252 CONFIG_INTERNAL_RC4=y 1253 CONFIG_INTERNAL_DH_GROUP5=y 1254 endif 1255 ifeq ($(CONFIG_CRYPTO), nettle) 1256 LIBS += -lnettle -lgmp 1257 LIBS_p += -lnettle -lgmp 1258 CONFIG_INTERNAL_RC4=y 1259 CONFIG_INTERNAL_DH_GROUP5=y 1260 endif 1261 endif 1262 1263 ifeq ($(CONFIG_TLS), internal) 1264 ifndef CONFIG_CRYPTO 1265 CONFIG_CRYPTO=internal 1266 endif 1267 ifdef TLS_FUNCS 1268 OBJS += ../src/crypto/crypto_internal-rsa.o 1269 OBJS += ../src/crypto/tls_internal.o 1270 OBJS += ../src/tls/tlsv1_common.o 1271 OBJS += ../src/tls/tlsv1_record.o 1272 OBJS += ../src/tls/tlsv1_cred.o 1273 OBJS += ../src/tls/tlsv1_client.o 1274 OBJS += ../src/tls/tlsv1_client_write.o 1275 OBJS += ../src/tls/tlsv1_client_read.o 1276 OBJS += ../src/tls/tlsv1_client_ocsp.o 1277 OBJS += ../src/tls/rsa.o 1278 OBJS += ../src/tls/x509v3.o 1279 OBJS += ../src/tls/pkcs1.o 1280 OBJS += ../src/tls/pkcs5.o 1281 OBJS += ../src/tls/pkcs8.o 1282 NEED_ASN1=y 1283 NEED_BASE64=y 1284 NEED_TLS_PRF=y 1285 ifdef CONFIG_TLSV12 1286 NEED_TLS_PRF_SHA256=y 1287 endif 1288 NEED_MODEXP=y 1289 NEED_CIPHER=y 1290 CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 1291 endif 1292 ifdef NEED_CIPHER 1293 NEED_DES=y 1294 OBJS += ../src/crypto/crypto_internal-cipher.o 1295 endif 1296 ifdef NEED_MODEXP 1297 OBJS += ../src/crypto/crypto_internal-modexp.o 1298 OBJS += ../src/tls/bignum.o 1299 endif 1300 ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1301 OBJS += ../src/crypto/crypto_libtomcrypt.o 1302 OBJS_p += ../src/crypto/crypto_libtomcrypt.o 1303 LIBS += -ltomcrypt -ltfm 1304 LIBS_p += -ltomcrypt -ltfm 1305 CONFIG_INTERNAL_SHA256=y 1306 CONFIG_INTERNAL_RC4=y 1307 CONFIG_INTERNAL_DH_GROUP5=y 1308 endif 1309 ifeq ($(CONFIG_CRYPTO), internal) 1310 OBJS += ../src/crypto/crypto_internal.o 1311 OBJS_p += ../src/crypto/crypto_internal.o 1312 NEED_AES_ENC=y 1313 CFLAGS += -DCONFIG_CRYPTO_INTERNAL 1314 ifdef CONFIG_INTERNAL_LIBTOMMATH 1315 CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 1316 ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 1317 CFLAGS += -DLTM_FAST 1318 endif 1319 else 1320 LIBS += -ltommath 1321 LIBS_p += -ltommath 1322 endif 1323 CONFIG_INTERNAL_AES=y 1324 CONFIG_INTERNAL_DES=y 1325 CONFIG_INTERNAL_SHA1=y 1326 CONFIG_INTERNAL_MD4=y 1327 CONFIG_INTERNAL_MD5=y 1328 CONFIG_INTERNAL_SHA256=y 1329 CONFIG_INTERNAL_SHA384=y 1330 CONFIG_INTERNAL_SHA512=y 1331 CONFIG_INTERNAL_RC4=y 1332 CONFIG_INTERNAL_DH_GROUP5=y 1333 endif 1334 ifeq ($(CONFIG_CRYPTO), cryptoapi) 1335 OBJS += ../src/crypto/crypto_cryptoapi.o 1336 OBJS_p += ../src/crypto/crypto_cryptoapi.o 1337 CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 1338 CONFIG_INTERNAL_SHA256=y 1339 CONFIG_INTERNAL_RC4=y 1340 endif 1341 endif 1342 1343 ifeq ($(CONFIG_TLS), linux) 1344 OBJS += ../src/crypto/crypto_linux.o 1345 OBJS_p += ../src/crypto/crypto_linux.o 1346 ifdef TLS_FUNCS 1347 OBJS += ../src/crypto/crypto_internal-rsa.o 1348 OBJS += ../src/crypto/tls_internal.o 1349 OBJS += ../src/tls/tlsv1_common.o 1350 OBJS += ../src/tls/tlsv1_record.o 1351 OBJS += ../src/tls/tlsv1_cred.o 1352 OBJS += ../src/tls/tlsv1_client.o 1353 OBJS += ../src/tls/tlsv1_client_write.o 1354 OBJS += ../src/tls/tlsv1_client_read.o 1355 OBJS += ../src/tls/tlsv1_client_ocsp.o 1356 OBJS += ../src/tls/rsa.o 1357 OBJS += ../src/tls/x509v3.o 1358 OBJS += ../src/tls/pkcs1.o 1359 OBJS += ../src/tls/pkcs5.o 1360 OBJS += ../src/tls/pkcs8.o 1361 NEED_ASN1=y 1362 NEED_BASE64=y 1363 NEED_TLS_PRF=y 1364 ifdef CONFIG_TLSV12 1365 NEED_TLS_PRF_SHA256=y 1366 endif 1367 NEED_MODEXP=y 1368 NEED_CIPHER=y 1369 CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 1370 endif 1371 ifdef NEED_MODEXP 1372 OBJS += ../src/crypto/crypto_internal-modexp.o 1373 OBJS += ../src/tls/bignum.o 1374 CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 1375 CFLAGS += -DLTM_FAST 1376 endif 1377 CONFIG_INTERNAL_DH_GROUP5=y 1378 ifdef NEED_FIPS186_2_PRF 1379 OBJS += ../src/crypto/fips_prf_internal.o 1380 OBJS += ../src/crypto/sha1-internal.o 1381 endif 1382 endif 1383 1384 ifeq ($(CONFIG_TLS), none) 1385 ifdef TLS_FUNCS 1386 OBJS += ../src/crypto/tls_none.o 1387 CFLAGS += -DEAP_TLS_NONE 1388 CONFIG_INTERNAL_AES=y 1389 CONFIG_INTERNAL_SHA1=y 1390 CONFIG_INTERNAL_MD5=y 1391 endif 1392 OBJS += ../src/crypto/crypto_none.o 1393 OBJS_p += ../src/crypto/crypto_none.o 1394 CONFIG_INTERNAL_SHA256=y 1395 CONFIG_INTERNAL_RC4=y 1396 endif 1397 1398 ifdef TLS_FUNCS 1399 ifdef CONFIG_SMARTCARD 1400 ifndef CONFIG_NATIVE_WINDOWS 1401 ifneq ($(CONFIG_L2_PACKET), freebsd) 1402 LIBS += -ldl 1403 endif 1404 endif 1405 endif 1406 endif 1407 1408 ifndef TLS_FUNCS 1409 OBJS += ../src/crypto/tls_none.o 1410 ifeq ($(CONFIG_TLS), internal) 1411 CONFIG_INTERNAL_AES=y 1412 CONFIG_INTERNAL_SHA1=y 1413 CONFIG_INTERNAL_MD5=y 1414 CONFIG_INTERNAL_RC4=y 1415 endif 1416 endif 1417 1418 AESOBJS = # none so far (see below) 1419 ifdef CONFIG_INTERNAL_AES 1420 AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o 1421 endif 1422 1423 ifneq ($(CONFIG_TLS), openssl) 1424 ifneq ($(CONFIG_TLS), wolfssl) 1425 NEED_INTERNAL_AES_WRAP=y 1426 endif 1427 endif 1428 ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP 1429 # Seems to be needed at least with BoringSSL 1430 NEED_INTERNAL_AES_WRAP=y 1431 CFLAGS += -DCONFIG_OPENSSL_INTERNAL_AES_WRAP 1432 endif 1433 ifdef CONFIG_FIPS 1434 # Have to use internal AES key wrap routines to use OpenSSL EVP since the 1435 # OpenSSL AES_wrap_key()/AES_unwrap_key() API is not available in FIPS mode. 1436 NEED_INTERNAL_AES_WRAP=y 1437 endif 1438 1439 ifdef NEED_INTERNAL_AES_WRAP 1440 ifneq ($(CONFIG_TLS), linux) 1441 AESOBJS += ../src/crypto/aes-unwrap.o 1442 endif 1443 endif 1444 ifdef NEED_AES_EAX 1445 AESOBJS += ../src/crypto/aes-eax.o 1446 NEED_AES_CTR=y 1447 endif 1448 ifdef NEED_AES_SIV 1449 AESOBJS += ../src/crypto/aes-siv.o 1450 NEED_AES_CTR=y 1451 endif 1452 ifdef NEED_AES_CTR 1453 AESOBJS += ../src/crypto/aes-ctr.o 1454 endif 1455 ifdef NEED_AES_ENCBLOCK 1456 AESOBJS += ../src/crypto/aes-encblock.o 1457 endif 1458 NEED_AES_ENC=y 1459 ifneq ($(CONFIG_TLS), openssl) 1460 ifneq ($(CONFIG_TLS), linux) 1461 ifneq ($(CONFIG_TLS), wolfssl) 1462 AESOBJS += ../src/crypto/aes-omac1.o 1463 endif 1464 endif 1465 endif 1466 ifdef NEED_AES_WRAP 1467 NEED_AES_ENC=y 1468 ifdef NEED_INTERNAL_AES_WRAP 1469 AESOBJS += ../src/crypto/aes-wrap.o 1470 endif 1471 endif 1472 ifdef NEED_AES_CBC 1473 NEED_AES_ENC=y 1474 ifneq ($(CONFIG_TLS), openssl) 1475 ifneq ($(CONFIG_TLS), linux) 1476 ifneq ($(CONFIG_TLS), wolfssl) 1477 AESOBJS += ../src/crypto/aes-cbc.o 1478 endif 1479 endif 1480 endif 1481 endif 1482 ifdef NEED_AES_ENC 1483 ifdef CONFIG_INTERNAL_AES 1484 AESOBJS += ../src/crypto/aes-internal-enc.o 1485 endif 1486 endif 1487 ifdef NEED_AES 1488 OBJS += $(AESOBJS) 1489 endif 1490 1491 ifdef NEED_SHA1 1492 ifneq ($(CONFIG_TLS), openssl) 1493 ifneq ($(CONFIG_TLS), linux) 1494 ifneq ($(CONFIG_TLS), gnutls) 1495 ifneq ($(CONFIG_TLS), wolfssl) 1496 SHA1OBJS += ../src/crypto/sha1.o 1497 endif 1498 endif 1499 endif 1500 endif 1501 SHA1OBJS += ../src/crypto/sha1-prf.o 1502 ifdef CONFIG_INTERNAL_SHA1 1503 SHA1OBJS += ../src/crypto/sha1-internal.o 1504 ifdef NEED_FIPS186_2_PRF 1505 SHA1OBJS += ../src/crypto/fips_prf_internal.o 1506 endif 1507 endif 1508 ifdef CONFIG_NO_WPA_PASSPHRASE 1509 CFLAGS += -DCONFIG_NO_PBKDF2 1510 else 1511 ifneq ($(CONFIG_TLS), openssl) 1512 ifneq ($(CONFIG_TLS), wolfssl) 1513 SHA1OBJS += ../src/crypto/sha1-pbkdf2.o 1514 endif 1515 endif 1516 endif 1517 ifdef NEED_T_PRF 1518 SHA1OBJS += ../src/crypto/sha1-tprf.o 1519 endif 1520 ifdef NEED_TLS_PRF 1521 SHA1OBJS += ../src/crypto/sha1-tlsprf.o 1522 endif 1523 endif 1524 1525 ifndef CONFIG_FIPS 1526 ifneq ($(CONFIG_TLS), openssl) 1527 ifneq ($(CONFIG_TLS), linux) 1528 ifneq ($(CONFIG_TLS), gnutls) 1529 ifneq ($(CONFIG_TLS), wolfssl) 1530 MD5OBJS += ../src/crypto/md5.o 1531 endif 1532 endif 1533 endif 1534 endif 1535 endif 1536 ifdef NEED_MD5 1537 ifdef CONFIG_INTERNAL_MD5 1538 MD5OBJS += ../src/crypto/md5-internal.o 1539 endif 1540 OBJS += $(MD5OBJS) 1541 OBJS_p += $(MD5OBJS) 1542 OBJS_priv += $(MD5OBJS) 1543 endif 1544 1545 ifdef NEED_MD4 1546 ifdef CONFIG_INTERNAL_MD4 1547 OBJS += ../src/crypto/md4-internal.o 1548 endif 1549 endif 1550 1551 DESOBJS = # none needed when not internal 1552 ifdef NEED_DES 1553 ifndef CONFIG_FIPS 1554 CFLAGS += -DCONFIG_DES 1555 endif 1556 ifdef CONFIG_INTERNAL_DES 1557 DESOBJS += ../src/crypto/des-internal.o 1558 endif 1559 endif 1560 1561 ifdef CONFIG_NO_RC4 1562 CFLAGS += -DCONFIG_NO_RC4 1563 endif 1564 1565 ifdef NEED_RC4 1566 ifdef CONFIG_INTERNAL_RC4 1567 ifndef CONFIG_NO_RC4 1568 OBJS += ../src/crypto/rc4.o 1569 endif 1570 endif 1571 endif 1572 1573 ifdef CONFIG_SAE 1574 ifdef NEED_SHA384 1575 # Need to add HMAC-SHA384 KDF as well, if SHA384 was enabled. 1576 NEED_HMAC_SHA384_KDF=y 1577 endif 1578 ifdef NEED_SHA512 1579 # Need to add HMAC-SHA512 KDF as well, if SHA512 was enabled. 1580 NEED_HMAC_SHA512_KDF=y 1581 endif 1582 endif 1583 1584 SHA256OBJS = # none by default 1585 CFLAGS += -DCONFIG_SHA256 1586 ifneq ($(CONFIG_TLS), openssl) 1587 ifneq ($(CONFIG_TLS), linux) 1588 ifneq ($(CONFIG_TLS), gnutls) 1589 ifneq ($(CONFIG_TLS), wolfssl) 1590 SHA256OBJS += ../src/crypto/sha256.o 1591 endif 1592 endif 1593 endif 1594 endif 1595 SHA256OBJS += ../src/crypto/sha256-prf.o 1596 ifdef CONFIG_INTERNAL_SHA256 1597 SHA256OBJS += ../src/crypto/sha256-internal.o 1598 endif 1599 ifdef CONFIG_INTERNAL_SHA384 1600 CFLAGS += -DCONFIG_INTERNAL_SHA384 1601 SHA256OBJS += ../src/crypto/sha384-internal.o 1602 endif 1603 ifdef CONFIG_INTERNAL_SHA512 1604 CFLAGS += -DCONFIG_INTERNAL_SHA512 1605 SHA256OBJS += ../src/crypto/sha512-internal.o 1606 endif 1607 ifdef NEED_TLS_PRF_SHA256 1608 SHA256OBJS += ../src/crypto/sha256-tlsprf.o 1609 endif 1610 ifdef NEED_TLS_PRF_SHA384 1611 SHA256OBJS += ../src/crypto/sha384-tlsprf.o 1612 endif 1613 ifdef NEED_HMAC_SHA256_KDF 1614 CFLAGS += -DCONFIG_HMAC_SHA256_KDF 1615 OBJS += ../src/crypto/sha256-kdf.o 1616 endif 1617 ifdef NEED_HMAC_SHA384_KDF 1618 CFLAGS += -DCONFIG_HMAC_SHA384_KDF 1619 OBJS += ../src/crypto/sha384-kdf.o 1620 endif 1621 ifdef NEED_HMAC_SHA512_KDF 1622 CFLAGS += -DCONFIG_HMAC_SHA512_KDF 1623 OBJS += ../src/crypto/sha512-kdf.o 1624 endif 1625 OBJS += $(SHA256OBJS) 1626 ifdef NEED_SHA384 1627 ifneq ($(CONFIG_TLS), openssl) 1628 ifneq ($(CONFIG_TLS), linux) 1629 ifneq ($(CONFIG_TLS), gnutls) 1630 ifneq ($(CONFIG_TLS), wolfssl) 1631 OBJS += ../src/crypto/sha384.o 1632 endif 1633 endif 1634 endif 1635 endif 1636 CFLAGS += -DCONFIG_SHA384 1637 OBJS += ../src/crypto/sha384-prf.o 1638 endif 1639 ifdef NEED_SHA512 1640 ifneq ($(CONFIG_TLS), openssl) 1641 ifneq ($(CONFIG_TLS), linux) 1642 ifneq ($(CONFIG_TLS), gnutls) 1643 ifneq ($(CONFIG_TLS), wolfssl) 1644 OBJS += ../src/crypto/sha512.o 1645 endif 1646 endif 1647 endif 1648 endif 1649 CFLAGS += -DCONFIG_SHA512 1650 OBJS += ../src/crypto/sha512-prf.o 1651 endif 1652 1653 ifdef NEED_ASN1 1654 OBJS += ../src/tls/asn1.o 1655 endif 1656 1657 ifdef NEED_DH_GROUPS 1658 OBJS += ../src/crypto/dh_groups.o 1659 endif 1660 ifdef NEED_DH_GROUPS_ALL 1661 CFLAGS += -DALL_DH_GROUPS 1662 endif 1663 ifdef CONFIG_INTERNAL_DH_GROUP5 1664 ifdef NEED_DH_GROUPS 1665 OBJS += ../src/crypto/dh_group5.o 1666 endif 1667 endif 1668 1669 ifdef NEED_ECC 1670 CFLAGS += -DCONFIG_ECC 1671 endif 1672 1673 ifdef CONFIG_NO_RANDOM_POOL 1674 CFLAGS += -DCONFIG_NO_RANDOM_POOL 1675 else 1676 ifdef CONFIG_GETRANDOM 1677 CFLAGS += -DCONFIG_GETRANDOM 1678 endif 1679 OBJS += ../src/crypto/random.o 1680 endif 1681 1682 ifdef CONFIG_CTRL_IFACE 1683 ifeq ($(CONFIG_CTRL_IFACE), y) 1684 ifdef CONFIG_NATIVE_WINDOWS 1685 CONFIG_CTRL_IFACE=named_pipe 1686 else 1687 CONFIG_CTRL_IFACE=unix 1688 endif 1689 endif 1690 CFLAGS += -DCONFIG_CTRL_IFACE 1691 ifeq ($(CONFIG_CTRL_IFACE), unix) 1692 CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 1693 OBJS += ../src/common/ctrl_iface_common.o 1694 endif 1695 ifeq ($(CONFIG_CTRL_IFACE), udp) 1696 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1697 endif 1698 ifeq ($(CONFIG_CTRL_IFACE), udp6) 1699 CONFIG_CTRL_IFACE=udp 1700 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1701 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 1702 endif 1703 ifeq ($(CONFIG_CTRL_IFACE), named_pipe) 1704 CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE 1705 endif 1706 ifeq ($(CONFIG_CTRL_IFACE), udp-remote) 1707 CONFIG_CTRL_IFACE=udp 1708 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1709 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 1710 endif 1711 ifeq ($(CONFIG_CTRL_IFACE), udp6-remote) 1712 CONFIG_CTRL_IFACE=udp 1713 CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1714 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 1715 CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 1716 endif 1717 OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o 1718 endif 1719 1720 ifdef CONFIG_CTRL_IFACE_DBUS_NEW 1721 CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW 1722 OBJS += dbus/dbus_dict_helpers.o 1723 OBJS += dbus/dbus_new_helpers.o 1724 OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o 1725 OBJS += dbus/dbus_common.o 1726 ifdef CONFIG_WPS 1727 OBJS += dbus/dbus_new_handlers_wps.o 1728 endif 1729 ifdef CONFIG_P2P 1730 OBJS += dbus/dbus_new_handlers_p2p.o 1731 endif 1732 ifndef DBUS_LIBS 1733 DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1) 1734 endif 1735 ifndef DBUS_INCLUDE 1736 DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1) 1737 endif 1738 ifdef CONFIG_CTRL_IFACE_DBUS_INTRO 1739 OBJS += dbus/dbus_new_introspect.o 1740 CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO 1741 endif 1742 CFLAGS += $(DBUS_INCLUDE) 1743 LIBS += $(DBUS_LIBS) 1744 endif 1745 1746 ifdef CONFIG_READLINE 1747 OBJS_c += ../src/utils/edit_readline.o 1748 LIBS_c += -lreadline -lncurses 1749 else 1750 ifdef CONFIG_WPA_CLI_EDIT 1751 OBJS_c += ../src/utils/edit.o 1752 else 1753 OBJS_c += ../src/utils/edit_simple.o 1754 endif 1755 endif 1756 1757 ifdef CONFIG_NATIVE_WINDOWS 1758 CFLAGS += -DCONFIG_NATIVE_WINDOWS 1759 LIBS += -lws2_32 -lgdi32 -lcrypt32 1760 LIBS_c += -lws2_32 1761 LIBS_p += -lws2_32 -lgdi32 1762 ifeq ($(CONFIG_CRYPTO), cryptoapi) 1763 LIBS_p += -lcrypt32 1764 endif 1765 endif 1766 1767 ifdef CONFIG_NO_STDOUT_DEBUG 1768 CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1769 ifndef CONFIG_CTRL_IFACE 1770 CFLAGS += -DCONFIG_NO_WPA_MSG 1771 endif 1772 endif 1773 1774 ifdef CONFIG_IPV6 1775 # for eapol_test only 1776 CFLAGS += -DCONFIG_IPV6 1777 endif 1778 1779 ifdef CONFIG_NO_LINUX_PACKET_SOCKET_WAR 1780 CFLAGS += -DCONFIG_NO_LINUX_PACKET_SOCKET_WAR 1781 endif 1782 1783 ifdef NEED_BASE64 1784 OBJS += ../src/utils/base64.o 1785 endif 1786 1787 ifdef NEED_SME 1788 OBJS += sme.o 1789 CFLAGS += -DCONFIG_SME 1790 endif 1791 1792 OBJS += ../src/common/ieee802_11_common.o 1793 OBJS += ../src/common/hw_features_common.o 1794 1795 ifdef NEED_EAP_COMMON 1796 OBJS += ../src/eap_common/eap_common.o 1797 endif 1798 1799 ifndef CONFIG_MAIN 1800 CONFIG_MAIN=main 1801 endif 1802 1803 ifdef CONFIG_DEBUG_SYSLOG 1804 CFLAGS += -DCONFIG_DEBUG_SYSLOG 1805 ifdef CONFIG_DEBUG_SYSLOG_FACILITY 1806 CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)" 1807 endif 1808 endif 1809 1810 ifdef CONFIG_DEBUG_LINUX_TRACING 1811 CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1812 endif 1813 1814 ifdef CONFIG_DEBUG_FILE 1815 CFLAGS += -DCONFIG_DEBUG_FILE 1816 endif 1817 1818 ifdef CONFIG_DELAYED_MIC_ERROR_REPORT 1819 CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT 1820 endif 1821 1822 ifdef CONFIG_FIPS 1823 CFLAGS += -DCONFIG_FIPS 1824 ifneq ($(CONFIG_TLS), openssl) 1825 ifneq ($(CONFIG_TLS), wolfssl) 1826 $(error CONFIG_FIPS=y requires CONFIG_TLS=openssl) 1827 endif 1828 endif 1829 endif 1830 1831 OBJS += $(SHA1OBJS) $(DESOBJS) 1832 1833 OBJS_p += $(SHA1OBJS) 1834 OBJS_p += $(SHA256OBJS) 1835 OBJS_priv += $(SHA1OBJS) 1836 1837 ifdef CONFIG_BGSCAN_SIMPLE 1838 CFLAGS += -DCONFIG_BGSCAN_SIMPLE 1839 OBJS += bgscan_simple.o 1840 NEED_BGSCAN=y 1841 endif 1842 1843 ifdef CONFIG_BGSCAN_LEARN 1844 CFLAGS += -DCONFIG_BGSCAN_LEARN 1845 OBJS += bgscan_learn.o 1846 NEED_BGSCAN=y 1847 endif 1848 1849 ifdef NEED_BGSCAN 1850 CFLAGS += -DCONFIG_BGSCAN 1851 OBJS += bgscan.o 1852 endif 1853 1854 ifdef CONFIG_AUTOSCAN_EXPONENTIAL 1855 CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL 1856 OBJS += autoscan_exponential.o 1857 NEED_AUTOSCAN=y 1858 endif 1859 1860 ifdef CONFIG_AUTOSCAN_PERIODIC 1861 CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC 1862 OBJS += autoscan_periodic.o 1863 NEED_AUTOSCAN=y 1864 endif 1865 1866 ifdef NEED_AUTOSCAN 1867 CFLAGS += -DCONFIG_AUTOSCAN 1868 OBJS += autoscan.o 1869 endif 1870 1871 ifdef CONFIG_EXT_PASSWORD_TEST 1872 OBJS += ../src/utils/ext_password_test.o 1873 CFLAGS += -DCONFIG_EXT_PASSWORD_TEST 1874 NEED_EXT_PASSWORD=y 1875 endif 1876 1877 ifdef CONFIG_EXT_PASSWORD_FILE 1878 OBJS += ../src/utils/ext_password_file.o 1879 CFLAGS += -DCONFIG_EXT_PASSWORD_FILE 1880 NEED_EXT_PASSWORD=y 1881 endif 1882 1883 ifdef NEED_EXT_PASSWORD 1884 OBJS += ../src/utils/ext_password.o 1885 CFLAGS += -DCONFIG_EXT_PASSWORD 1886 endif 1887 1888 ifdef NEED_GAS_SERVER 1889 OBJS += ../src/common/gas_server.o 1890 CFLAGS += -DCONFIG_GAS_SERVER 1891 NEED_GAS=y 1892 endif 1893 1894 ifdef NEED_GAS 1895 OBJS += ../src/common/gas.o 1896 OBJS += gas_query.o 1897 CFLAGS += -DCONFIG_GAS 1898 NEED_OFFCHANNEL=y 1899 endif 1900 1901 ifdef NEED_OFFCHANNEL 1902 OBJS += offchannel.o 1903 CFLAGS += -DCONFIG_OFFCHANNEL 1904 endif 1905 1906 ifdef NEED_JSON 1907 OBJS += ../src/utils/json.o 1908 CFLAGS += -DCONFIG_JSON 1909 endif 1910 1911 ifdef CONFIG_MODULE_TESTS 1912 CFLAGS += -DCONFIG_MODULE_TESTS 1913 OBJS += wpas_module_tests.o 1914 OBJS += ../src/utils/utils_module_tests.o 1915 OBJS += ../src/common/common_module_tests.o 1916 OBJS += ../src/crypto/crypto_module_tests.o 1917 ifdef CONFIG_WPS 1918 OBJS += ../src/wps/wps_module_tests.o 1919 endif 1920 endif 1921 1922 OBJS += ../src/drivers/driver_common.o 1923 OBJS_priv += ../src/drivers/driver_common.o 1924 1925 OBJS += wpa_supplicant.o events.o bssid_ignore.o wpas_glue.o scan.o 1926 OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o 1927 OBJS_t += ../src/radius/radius_client.o 1928 OBJS_t += ../src/radius/radius.o 1929 ifdef CONFIG_RADIUS_TLS 1930 CFLAGS += -DCONFIG_RADIUS_TLS 1931 endif 1932 OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o 1933 1934 OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o 1935 OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o 1936 1937 OBJS += $(CONFIG_MAIN).o 1938 1939 ifdef CONFIG_PRIVSEP 1940 OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o 1941 OBJS_priv += $(OBJS_l2) 1942 OBJS_priv += ../src/utils/os_$(CONFIG_OS).o 1943 OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o 1944 OBJS_priv += ../src/utils/common.o 1945 OBJS_priv += ../src/utils/wpa_debug.o 1946 OBJS_priv += ../src/utils/wpabuf.o 1947 OBJS_priv += wpa_priv.o 1948 ifdef CONFIG_DRIVER_NL80211 1949 OBJS_priv += ../src/common/ieee802_11_common.o 1950 endif 1951 OBJS += ../src/l2_packet/l2_packet_privsep.o 1952 OBJS += ../src/drivers/driver_privsep.o 1953 EXTRA_progs += wpa_priv 1954 else 1955 OBJS += $(OBJS_d) ../src/drivers/drivers.o 1956 OBJS += $(OBJS_l2) 1957 endif 1958 1959 ifdef CONFIG_NDIS_EVENTS_INTEGRATED 1960 CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED 1961 OBJS += ../src/drivers/ndis_events.o 1962 EXTRALIBS += -loleaut32 -lole32 -luuid 1963 ifdef PLATFORMSDKLIB 1964 EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib 1965 else 1966 EXTRALIBS += WbemUuid.Lib 1967 endif 1968 endif 1969 1970 ifdef CONFIG_FST 1971 CFLAGS += -DCONFIG_FST 1972 ifdef CONFIG_FST_TEST 1973 CFLAGS += -DCONFIG_FST_TEST 1974 endif 1975 FST_OBJS += ../src/fst/fst.o 1976 FST_OBJS += ../src/fst/fst_session.o 1977 FST_OBJS += ../src/fst/fst_iface.o 1978 FST_OBJS += ../src/fst/fst_group.o 1979 FST_OBJS += ../src/fst/fst_ctrl_aux.o 1980 ifdef CONFIG_CTRL_IFACE 1981 FST_OBJS += ../src/fst/fst_ctrl_iface.o 1982 endif 1983 OBJS += $(FST_OBJS) 1984 OBJS_t += $(FST_OBJS) 1985 OBJS_t2 += $(FST_OBJS) 1986 OBJS_nfc += $(FST_OBJS) 1987 endif 1988 1989 ifdef CONFIG_WEP 1990 CFLAGS += -DCONFIG_WEP 1991 endif 1992 1993 ifdef CONFIG_NO_TKIP 1994 CFLAGS += -DCONFIG_NO_TKIP 1995 endif 1996 1997 dynamic_eap_methods: $(EAPDYN) 1998 1999 _OBJS_VAR := OBJS_priv 2000 include ../src/objs.mk 2001 wpa_priv: $(BCHECK) $(OBJS_priv) 2002 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS) 2003 @$(E) " LD " $@ 2004 2005 _OBJS_VAR := OBJS 2006 include ../src/objs.mk 2007 wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs) 2008 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) 2009 @$(E) " LD " $@ 2010 2011 _OBJS_VAR := OBJS_t 2012 include ../src/objs.mk 2013 eapol_test: $(OBJS_t) 2014 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS) 2015 @$(E) " LD " $@ 2016 2017 _OBJS_VAR := OBJS_t2 2018 include ../src/objs.mk 2019 preauth_test: $(OBJS_t2) 2020 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS) 2021 @$(E) " LD " $@ 2022 2023 _OBJS_VAR := OBJS_p 2024 include ../src/objs.mk 2025 wpa_passphrase: $(OBJS_p) 2026 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) $(LIBS) 2027 @$(E) " LD " $@ 2028 2029 _OBJS_VAR := OBJS_c 2030 include ../src/objs.mk 2031 wpa_cli: $(OBJS_c) 2032 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c) 2033 @$(E) " LD " $@ 2034 2035 LIBCTRL += ../src/common/wpa_ctrl.o 2036 LIBCTRL += ../src/utils/os_$(CONFIG_OS).o 2037 LIBCTRL += ../src/utils/common.o 2038 LIBCTRL += ../src/utils/wpa_debug.o 2039 LIBCTRLSO += ../src/common/wpa_ctrl.c 2040 LIBCTRLSO += ../src/utils/os_$(CONFIG_OS).c 2041 LIBCTRLSO += ../src/utils/common.c 2042 LIBCTRLSO += ../src/utils/wpa_debug.c 2043 2044 _OBJS_VAR := LIBCTRL 2045 include ../src/objs.mk 2046 libwpa_client.a: $(LIBCTRL) 2047 $(Q)rm -f $@ 2048 $(Q)$(AR) crs $@ $? 2049 @$(E) " AR " $@ 2050 2051 libwpa_client.so: $(LIBCTRLSO) 2052 @$(E) " CC $@ ($^)" 2053 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -fPIC $^ 2054 2055 OBJS_wpatest := libwpa_test.o 2056 _OBJS_VAR := OBJS_wpatest 2057 include ../src/objs.mk 2058 libwpa_test1: $(OBJS_wpatest) libwpa_client.a 2059 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 $(OBJS_wpatest) libwpa_client.a $(LIBS_c) 2060 @$(E) " LD " $@ 2061 2062 libwpa_test2: $(OBJS_wpatest) libwpa_client.so 2063 $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 $(OBJS_wpatest) -L. -lwpa_client $(LIBS_c) 2064 @$(E) " LD " $@ 2065 2066 _OBJS_VAR := OBJS_nfc 2067 include ../src/objs.mk 2068 nfc_pw_token: $(OBJS_nfc) 2069 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS) 2070 @$(E) " LD " $@ 2071 2072 win_if_list: win_if_list.c 2073 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w) 2074 @$(E) " LD " $@ 2075 2076 eap_psk.so: $(SRC_EAP_PSK) 2077 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2078 -Deap_peer_psk_register=eap_peer_method_dynamic_init 2079 @$(E) " CC/LD " $@ 2080 2081 eap_pax.so: $(SRC_EAP_PAX) 2082 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2083 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2084 @$(E) " CC/LD " $@ 2085 2086 eap_peap.so: $(SRC_EAP_PEAP) 2087 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2088 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2089 @$(E) " CC/LD " $@ 2090 2091 eap_sake.so: $(SRC_EAP_SAKE) 2092 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2093 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2094 @$(E) " CC/LD " $@ 2095 2096 eap_ikev2.so: $(SRC_EAP_IKEV2) 2097 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2098 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2099 @$(E) " CC/LD " $@ 2100 2101 eap_eke.so: $(SRC_EAP_EKE) 2102 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2103 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2104 @$(E) " CC/LD " $@ 2105 2106 eap_mschapv2.so: $(SRC_EAP_MSCHAPV2) 2107 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2108 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2109 @$(E) " CC/LD " $@ 2110 2111 eap_fast.so: $(SRC_EAP_FAST) 2112 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2113 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2114 @$(E) " CC/LD " $@ 2115 2116 eap_teap.so: $(SRC_EAP_TEAP) 2117 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2118 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2119 @$(E) " CC/LD " $@ 2120 2121 eap_gpsk.so: $(SRC_EAP_GPSK) 2122 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 2123 -D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init 2124 @$(E) " CC/LD " $@ 2125 2126 %.so: ../src/eap_peer/%.c 2127 $(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \ 2128 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init 2129 @$(E) " CC/LD " $@ 2130 2131 %.service: %.service.in 2132 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ 2133 @$(E) " sed" $< 2134 2135 %@.service: %.service.arg.in 2136 $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ 2137 @$(E) " sed" $< 2138 2139 wpa_supplicant.exe: wpa_supplicant 2140 mv -f $< $@ 2141 wpa_cli.exe: wpa_cli 2142 mv -f $< $@ 2143 wpa_passphrase.exe: wpa_passphrase 2144 mv -f $< $@ 2145 win_if_list.exe: win_if_list 2146 mv -f $< $@ 2147 eapol_test.exe: eapol_test 2148 mv -f $< $@ 2149 2150 WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe 2151 2152 windows-bin: $(WINALL) 2153 $(STRIP) $(WINALL) 2154 2155 wpa_gui: 2156 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement" 2157 2158 wpa_gui-qt4/Makefile: 2159 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro 2160 2161 wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts 2162 lrelease wpa_gui-qt4/wpa_gui.pro 2163 2164 wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm 2165 $(MAKE) -C wpa_gui-qt4 2166 2167 FIPSDIR=/usr/local/ssl/fips-2.0 2168 FIPSLD=$(FIPSDIR)/bin/fipsld 2169 fips: 2170 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)" 2171 2172 .PHONY: lcov-html 2173 lcov-html: $(call BUILDOBJ,wpa_supplicant.gcda) 2174 lcov -c -d $(BUILDDIR) > lcov.info 2175 genhtml lcov.info --output-directory lcov-html 2176 2177 PASN_CFLAGS := $(CFLAGS) 2178 PASN_CFLAGS += -DCONFIG_PASN 2179 2180 LIBPASNSO := ../src/utils/$(CONFIG_ELOOP).c 2181 LIBPASNSO += ../src/utils/wpa_debug.c 2182 LIBPASNSO += ../src/utils/wpabuf.c 2183 LIBPASNSO += ../src/utils/os_$(CONFIG_OS).c 2184 LIBPASNSO += ../src/utils/config.c 2185 LIBPASNSO += ../src/utils/common.c 2186 2187 ifdef NEED_BASE64 2188 LIBPASNSO += ../src/utils/base64.c 2189 endif 2190 2191 ifdef CONFIG_WPA_TRACE 2192 LIBPASNSO += ../src/utils/trace.c 2193 endif 2194 2195 ifdef CONFIG_EXT_PASSWORD_FILE 2196 LIBPASNSO += ../src/utils/ext_password_file.c 2197 endif 2198 2199 ifdef CONFIG_EXT_PASSWORD_TEST 2200 LIBPASNSO += ../src/utils/ext_password_test.c 2201 endif 2202 2203 ifdef NEED_EXT_PASSWORD 2204 LIBPASNSO += ../src/utils/ext_password.c 2205 endif 2206 2207 ifdef CONFIG_SAE 2208 LIBPASNSO += ../src/common/sae.c 2209 endif 2210 2211 ifdef CONFIG_SAE_PK 2212 LIBPASNSO += ../src/common/sae_pk.c 2213 endif 2214 2215 ifndef CONFIG_NO_WPA 2216 LIBPASNSO += ../src/common/wpa_common.c 2217 endif 2218 2219 LIBPASNSO += ../src/common/ieee802_11_common.c 2220 2221 ifdef NEED_DRAGONFLY 2222 LIBPASNSO += ../src/common/dragonfly.c 2223 endif 2224 2225 LIBPASNSO += ../src/common/ptksa_cache.c 2226 LIBPASNSO += ../src/rsn_supp/pmksa_cache.c 2227 2228 ifndef CONFIG_NO_WPA 2229 LIBPASNSO += ../src/rsn_supp/wpa_ie.c 2230 endif 2231 2232 LIBPASNSO += ../src/ap/comeback_token.c 2233 LIBPASNSO += ../src/ap/pmksa_cache_auth.c 2234 2235 ifdef NEED_EAP_COMMON 2236 LIBPASNSO += ../src/eap_common/eap_common.c 2237 endif 2238 2239 ifdef CHAP 2240 LIBPASNSO += ../src/eap_common/chap.c 2241 endif 2242 2243 ifdef CONFIG_IEEE8021X_EAPOL 2244 LIBPASNSO += ../src/eap_peer/eap.c 2245 LIBPASNSO += ../src/eap_peer/eap_methods.c 2246 LIBPASNSO += ../src/eapol_supp/eapol_supp_sm.c 2247 endif 2248 2249 ifeq ($(CONFIG_TLS), wolfssl) 2250 LIBPASNSO += ../src/crypto/crypto_wolfssl.c 2251 ifdef TLS_FUNCS 2252 LIBPASNSO += ../src/crypto/tls_wolfssl.c 2253 NEED_TLS_PRF_SHA256=y 2254 LIBPASNSO += -lwolfssl -lm 2255 endif 2256 endif 2257 2258 ifeq ($(CONFIG_TLS), openssl) 2259 LIBPASNSO += ../src/crypto/crypto_openssl.c 2260 ifdef TLS_FUNCS 2261 LIBPASNSO += ../src/crypto/tls_openssl.c 2262 LIBPASNSO += -lssl -lcrypto 2263 NEED_TLS_PRF_SHA256=y 2264 endif 2265 endif 2266 2267 ifeq ($(CONFIG_TLS), gnutls) 2268 LIBPASNSO += ../src/crypto/crypto_$(CONFIG_CRYPTO).c 2269 ifdef TLS_FUNCS 2270 LIBPASNSO += ../src/crypto/tls_gnutls.c 2271 LIBPASNSO += -lgnutls -lgpg-error 2272 LIBPASNSO += -lgcrypt 2273 endif 2274 endif 2275 2276 ifdef NEED_TLS_PRF_SHA256 2277 LIBPASNSO += ../src/crypto/sha256-tlsprf.c 2278 endif 2279 2280 ifdef NEED_SHA512 2281 LIBPASNSO += ../src/crypto/sha512-prf.c 2282 endif 2283 2284 ifdef NEED_SHA384 2285 LIBPASNSO += ../src/crypto/sha384-prf.c 2286 endif 2287 2288 LIBPASNSO += ../src/crypto/sha256-prf.c 2289 2290 ifdef NEED_HMAC_SHA512_KDF 2291 LIBPASNSO += ../src/crypto/sha512-kdf.c 2292 endif 2293 2294 ifdef NEED_HMAC_SHA384_KDF 2295 LIBPASNSO += ../src/crypto/sha384-kdf.c 2296 endif 2297 2298 ifdef NEED_HMAC_SHA256_KDF 2299 LIBPASNSO += ../src/crypto/sha256-kdf.c 2300 endif 2301 2302 ifdef NEED_DH_GROUPS 2303 LIBPASNSO += ../src/crypto/dh_groups.c 2304 endif 2305 2306 ifdef NEED_AES_SIV 2307 LIBPASNSO += ../src/crypto/aes-siv.c 2308 endif 2309 2310 ifdef NEED_AES_CTR 2311 LIBPASNSO += ../src/crypto/aes-ctr.c 2312 endif 2313 2314 ifdef NEED_SHA1 2315 LIBPASNSO += ../src/crypto/sha1-prf.c 2316 ifdef NEED_TLS_PRF 2317 LIBPASNSO += ../src/crypto/sha1-tlsprf.c 2318 endif 2319 endif 2320 2321 LIBPASNSO += ../src/pasn/pasn_initiator.c 2322 LIBPASNSO += ../src/pasn/pasn_responder.c 2323 LIBPASNSO += ../src/pasn/pasn_common.c 2324 2325 libpasn.so: $(LIBPASNSO) 2326 @$(E) " CC $@ ($^)" 2327 $(Q)$(CC) $(LDFLAGS) -o $@ $(PASN_CFLAGS) -shared -fPIC -lcrypto $^ 2328 2329 clean: common-clean 2330 $(MAKE) -C ../src clean 2331 $(MAKE) -C dbus clean 2332 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov 2333 rm -f eap_*.so $(WINALL) eapol_test preauth_test 2334 rm -f wpa_priv 2335 rm -f nfc_pw_token 2336 rm -f lcov.info 2337 rm -rf lcov-html 2338 rm -f libwpa_client.a 2339 rm -f libpasn.so 2340 rm -f libwpa_client.so 2341 rm -f libwpa_test1 libwpa_test2 2342 rm -f wpa_passphrase 2343