1# Copyright (c) 2019-2024 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 21if(NOT FUZZ_LDFLAGS) 22 message(FATAL_ERROR "Please define FUZZ_LDFLAGS") 23endif() 24 25# fuzz_cred 26add_executable(fuzz_cred fuzz_cred.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 27set_target_properties(fuzz_cred PROPERTIES 28 LINK_FLAGS ${FUZZ_LDFLAGS} 29 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 30target_link_libraries(fuzz_cred fido2_shared) 31 32# fuzz_assert 33add_executable(fuzz_assert fuzz_assert.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 34set_target_properties(fuzz_assert PROPERTIES 35 LINK_FLAGS ${FUZZ_LDFLAGS} 36 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 37target_link_libraries(fuzz_assert fido2_shared) 38 39# fuzz_mgmt 40add_executable(fuzz_mgmt fuzz_mgmt.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 41set_target_properties(fuzz_mgmt PROPERTIES 42 LINK_FLAGS ${FUZZ_LDFLAGS} 43 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 44target_link_libraries(fuzz_mgmt fido2_shared) 45 46# fuzz_credman 47add_executable(fuzz_credman fuzz_credman.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 48set_target_properties(fuzz_credman PROPERTIES 49 LINK_FLAGS ${FUZZ_LDFLAGS} 50 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 51target_link_libraries(fuzz_credman fido2_shared) 52 53# fuzz_bio 54add_executable(fuzz_bio fuzz_bio.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 55set_target_properties(fuzz_bio PROPERTIES 56 LINK_FLAGS ${FUZZ_LDFLAGS} 57 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 58target_link_libraries(fuzz_bio fido2_shared) 59 60# fuzz_hid 61add_executable(fuzz_hid fuzz_hid.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 62set_target_properties(fuzz_hid PROPERTIES 63 LINK_FLAGS ${FUZZ_LDFLAGS} 64 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 65target_link_libraries(fuzz_hid fido2_shared) 66 67# fuzz_netlink 68add_executable(fuzz_netlink fuzz_netlink.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 69set_target_properties(fuzz_netlink PROPERTIES 70 LINK_FLAGS ${FUZZ_LDFLAGS} 71 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 72target_link_libraries(fuzz_netlink fido2_shared) 73 74# fuzz_largeblob 75add_executable(fuzz_largeblob fuzz_largeblob.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 76set_target_properties(fuzz_largeblob PROPERTIES 77 LINK_FLAGS ${FUZZ_LDFLAGS} 78 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 79target_link_libraries(fuzz_largeblob fido2_shared) 80 81# fuzz_pcsc 82add_executable(fuzz_pcsc fuzz_pcsc.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 83set_target_properties(fuzz_pcsc PROPERTIES 84 LINK_FLAGS ${FUZZ_LDFLAGS} 85 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 86target_link_libraries(fuzz_pcsc fido2_shared) 87 88# fuzz_attobj 89add_executable(fuzz_attobj fuzz_attobj.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) 90set_target_properties(fuzz_attobj PROPERTIES 91 LINK_FLAGS ${FUZZ_LDFLAGS} 92 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE}) 93target_link_libraries(fuzz_attobj fido2_shared) 94