1# Copyright (c) 2019-2023 Yubico AB. All rights reserved. 2# Use of this source code is governed by a BSD-style 3# license that can be found in the LICENSE file. 4# SPDX-License-Identifier: BSD-2-Clause 5 6list(APPEND COMPAT_SOURCES 7 ../openbsd-compat/strlcpy.c 8 ../openbsd-compat/strlcat.c 9) 10 11list(APPEND COMMON_SOURCES 12 libfuzzer.c 13 mutator_aux.c 14) 15 16# XXX: OSS-Fuzz require linking using CXX 17set(FUZZ_LINKER_LANGUAGE "C" CACHE STRING "Linker language for fuzz harnesses") 18mark_as_advanced(FUZZ_LINKER_LANGUAGE) 19enable_language(${FUZZ_LINKER_LANGUAGE}) 20 21# fuzz_cred 22add_executable(fuzz_cred fuzz_cred.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 23set_target_properties(fuzz_cred PROPERTIES 24 LINK_FLAGS ${FUZZ_LDFLAGS} 25 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 26target_link_libraries(fuzz_cred fido2_shared) 27 28# fuzz_assert 29add_executable(fuzz_assert fuzz_assert.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 30set_target_properties(fuzz_assert PROPERTIES 31 LINK_FLAGS ${FUZZ_LDFLAGS} 32 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 33target_link_libraries(fuzz_assert fido2_shared) 34 35# fuzz_mgmt 36add_executable(fuzz_mgmt fuzz_mgmt.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 37set_target_properties(fuzz_mgmt PROPERTIES 38 LINK_FLAGS ${FUZZ_LDFLAGS} 39 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 40target_link_libraries(fuzz_mgmt fido2_shared) 41 42# fuzz_credman 43add_executable(fuzz_credman fuzz_credman.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 44set_target_properties(fuzz_credman PROPERTIES 45 LINK_FLAGS ${FUZZ_LDFLAGS} 46 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 47target_link_libraries(fuzz_credman fido2_shared) 48 49# fuzz_bio 50add_executable(fuzz_bio fuzz_bio.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 51set_target_properties(fuzz_bio PROPERTIES 52 LINK_FLAGS ${FUZZ_LDFLAGS} 53 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 54target_link_libraries(fuzz_bio fido2_shared) 55 56# fuzz_hid 57add_executable(fuzz_hid fuzz_hid.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 58set_target_properties(fuzz_hid PROPERTIES 59 LINK_FLAGS ${FUZZ_LDFLAGS} 60 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 61target_link_libraries(fuzz_hid fido2_shared) 62 63# fuzz_netlink 64add_executable(fuzz_netlink fuzz_netlink.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 65set_target_properties(fuzz_netlink PROPERTIES 66 LINK_FLAGS ${FUZZ_LDFLAGS} 67 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 68target_link_libraries(fuzz_netlink fido2_shared) 69 70# fuzz_largeblob 71add_executable(fuzz_largeblob fuzz_largeblob.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 72set_target_properties(fuzz_largeblob PROPERTIES 73 LINK_FLAGS ${FUZZ_LDFLAGS} 74 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 75target_link_libraries(fuzz_largeblob fido2_shared) 76 77# fuzz_pcsc 78add_executable(fuzz_pcsc fuzz_pcsc.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 79set_target_properties(fuzz_pcsc PROPERTIES 80 LINK_FLAGS ${FUZZ_LDFLAGS} 81 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 82target_link_libraries(fuzz_pcsc fido2_shared) 83