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
6 list(APPEND COMPAT_SOURCES
7 ../openbsd-compat/strlcpy.c
8 ../openbsd-compat/strlcat.c
11 list(APPEND COMMON_SOURCES
16 # XXX: OSS-Fuzz require linking using CXX
17 set(FUZZ_LINKER_LANGUAGE "C" CACHE STRING "Linker language for fuzz harnesses")
18 mark_as_advanced(FUZZ_LINKER_LANGUAGE)
19 enable_language(${FUZZ_LINKER_LANGUAGE})
22 add_executable(fuzz_cred fuzz_cred.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
23 set_target_properties(fuzz_cred PROPERTIES
24 LINK_FLAGS ${FUZZ_LDFLAGS}
25 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
26 target_link_libraries(fuzz_cred fido2_shared)
29 add_executable(fuzz_assert fuzz_assert.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
30 set_target_properties(fuzz_assert PROPERTIES
31 LINK_FLAGS ${FUZZ_LDFLAGS}
32 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
33 target_link_libraries(fuzz_assert fido2_shared)
36 add_executable(fuzz_mgmt fuzz_mgmt.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
37 set_target_properties(fuzz_mgmt PROPERTIES
38 LINK_FLAGS ${FUZZ_LDFLAGS}
39 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
40 target_link_libraries(fuzz_mgmt fido2_shared)
43 add_executable(fuzz_credman fuzz_credman.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
44 set_target_properties(fuzz_credman PROPERTIES
45 LINK_FLAGS ${FUZZ_LDFLAGS}
46 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
47 target_link_libraries(fuzz_credman fido2_shared)
50 add_executable(fuzz_bio fuzz_bio.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
51 set_target_properties(fuzz_bio PROPERTIES
52 LINK_FLAGS ${FUZZ_LDFLAGS}
53 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
54 target_link_libraries(fuzz_bio fido2_shared)
57 add_executable(fuzz_hid fuzz_hid.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
58 set_target_properties(fuzz_hid PROPERTIES
59 LINK_FLAGS ${FUZZ_LDFLAGS}
60 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
61 target_link_libraries(fuzz_hid fido2_shared)
64 add_executable(fuzz_netlink fuzz_netlink.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
65 set_target_properties(fuzz_netlink PROPERTIES
66 LINK_FLAGS ${FUZZ_LDFLAGS}
67 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
68 target_link_libraries(fuzz_netlink fido2_shared)
71 add_executable(fuzz_largeblob fuzz_largeblob.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
72 set_target_properties(fuzz_largeblob PROPERTIES
73 LINK_FLAGS ${FUZZ_LDFLAGS}
74 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
75 target_link_libraries(fuzz_largeblob fido2_shared)
78 add_executable(fuzz_pcsc fuzz_pcsc.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
79 set_target_properties(fuzz_pcsc PROPERTIES
80 LINK_FLAGS ${FUZZ_LDFLAGS}
81 LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
82 target_link_libraries(fuzz_pcsc fido2_shared)