head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC4:1.1.1.6
	netbsd-11-0-RC3:1.1.1.6
	netbsd-11-0-RC2:1.1.1.6
	netbsd-11-0-RC1:1.1.1.6
	perseant-exfatfs-base-20250801:1.1.1.6
	netbsd-11:1.1.1.6.0.2
	netbsd-11-base:1.1.1.6
	libfido2-1-16-0:1.1.1.6
	netbsd-10-1-RELEASE:1.1.1.4.2.1
	perseant-exfatfs-base-20240630:1.1.1.5
	perseant-exfatfs:1.1.1.5.0.2
	perseant-exfatfs-base:1.1.1.5
	netbsd-10-0-RELEASE:1.1.1.4.2.1
	netbsd-10-0-RC6:1.1.1.4.2.1
	netbsd-10-0-RC5:1.1.1.4.2.1
	netbsd-10-0-RC4:1.1.1.4.2.1
	netbsd-10-0-RC3:1.1.1.4.2.1
	netbsd-10-0-RC2:1.1.1.4.2.1
	netbsd-10-0-RC1:1.1.1.4.2.1
	libfido2-1-13-0:1.1.1.5
	netbsd-10:1.1.1.4.0.2
	netbsd-10-base:1.1.1.4
	libfido2-1-8-0:1.1.1.4
	libfido2-1-7-0:1.1.1.3
	cjep_sun2x-base1:1.1.1.2
	cjep_sun2x:1.1.1.2.0.4
	cjep_sun2x-base:1.1.1.2
	cjep_staticlib_x-base1:1.1.1.2
	cjep_staticlib_x:1.1.1.2.0.2
	cjep_staticlib_x-base:1.1.1.2
	libfido2-1-5-0:1.1.1.2
	phil-wifi-20200421:1.1.1.1
	phil-wifi:1.1.1.1.0.2
	phil-wifi-20200411:1.1.1.1
	phil-wifi-20200406:1.1.1.1
	libfido2-f6ab2ce65745f7f3b1bee7481623de5eaac28bb0:1.1.1.1
	YUBICO:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2020.03.03.00.11.47;	author christos;	state Exp;
branches
	1.1.1.1;
next	;
commitid	C3h02fnbEJ614TYB;

1.1.1.1
date	2020.03.03.00.11.47;	author christos;	state Exp;
branches
	1.1.1.1.2.1;
next	1.1.1.2;
commitid	C3h02fnbEJ614TYB;

1.1.1.2
date	2020.12.04.18.09.13;	author christos;	state Exp;
branches;
next	1.1.1.3;
commitid	NXNOgGFBKmoV8syC;

1.1.1.3
date	2021.06.17.00.38.07;	author christos;	state Exp;
branches;
next	1.1.1.4;
commitid	lSpmBnkrCXrM3qXC;

1.1.1.4
date	2021.09.24.12.43.29;	author christos;	state Exp;
branches
	1.1.1.4.2.1;
next	1.1.1.5;
commitid	eXrO77i4D6SPTcaD;

1.1.1.5
date	2023.08.11.22.58.19;	author christos;	state Exp;
branches
	1.1.1.5.2.1;
next	1.1.1.6;
commitid	J0htdkgUi8KBfqAE;

1.1.1.6
date	2025.06.02.13.59.54;	author christos;	state Exp;
branches;
next	;
commitid	egKRHPpEJiaY0kXF;

1.1.1.1.2.1
date	2020.03.03.00.11.47;	author martin;	state dead;
branches;
next	1.1.1.1.2.2;
commitid	X01YhRUPVUDaec4C;

1.1.1.1.2.2
date	2020.04.13.07.46.08;	author martin;	state Exp;
branches;
next	;
commitid	X01YhRUPVUDaec4C;

1.1.1.4.2.1
date	2023.09.05.17.11.35;	author martin;	state Exp;
branches;
next	;
commitid	8EjKQJ0WqKD2xBDE;

1.1.1.5.2.1
date	2025.08.02.05.21.51;	author perseant;	state Exp;
branches;
next	;
commitid	23j6GFaDws3O875G;


desc
@@


1.1
log
@Initial revision
@
text
@# Copyright (c) 2018 Yubico AB. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

find_program(MANDOC_PATH mandoc)
message(STATUS "MANDOC_PATH: ${MANDOC_PATH}")

if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
	find_program(GZIP_PATH gzip)
	message(STATUS "GZIP_PATH: ${GZIP_PATH}")
endif()

list(APPEND MAN_SOURCES
	eddsa_pk_new.3
	es256_pk_new.3
	fido2-assert.1
	fido2-cred.1
	fido2-token.1
	fido_init.3
	fido_assert_new.3
	fido_assert_allow_cred.3
	fido_assert_set_authdata.3
	fido_assert_verify.3
	fido_bio_dev_get_info.3
	fido_bio_enroll_new.3
	fido_bio_info_new.3
	fido_bio_template.3
	fido_cbor_info_new.3
	fido_cred_new.3
	fido_cred_exclude.3
	fido_credman_metadata_new.3
	fido_cred_set_authdata.3
	fido_cred_verify.3
	fido_dev_get_assert.3
	fido_dev_info_manifest.3
	fido_dev_make_cred.3
	fido_dev_open.3
	fido_dev_set_io_functions.3
	fido_dev_set_pin.3
	fido_strerr.3
	rs256_pk_new.3
)

list(APPEND MAN_ALIAS
	eddsa_pk_new eddsa_pk_free
	eddsa_pk_new eddsa_pk_from_ptr
	eddsa_pk_new eddsa_pk_to_EVP_PKEY
	es256_pk_new es256_pk_free
	es256_pk_new es256_pk_from_EC_KEY
	es256_pk_new es256_pk_from_ptr
	es256_pk_new es256_pk_to_EVP_PKEY
	fido_assert_new fido_assert_authdata_len
	fido_assert_new fido_assert_authdata_ptr
	fido_assert_new fido_assert_clientdata_hash_len
	fido_assert_new fido_assert_clientdata_hash_ptr
	fido_assert_new fido_assert_count
	fido_assert_new fido_assert_free
	fido_assert_new fido_assert_hmac_secret_len
	fido_assert_new fido_assert_hmac_secret_ptr
	fido_assert_new fido_assert_sigcount
	fido_assert_new fido_assert_sig_len
	fido_assert_new fido_assert_sig_ptr
	fido_assert_new fido_assert_user_display_name
	fido_assert_new fido_assert_user_icon
	fido_assert_new fido_assert_user_id_len
	fido_assert_new fido_assert_user_id_ptr
	fido_assert_new fido_assert_user_name
	fido_assert_set_authdata fido_assert_set_clientdata_hash
	fido_assert_set_authdata fido_assert_set_count
	fido_assert_set_authdata fido_assert_set_extensions
	fido_assert_set_authdata fido_assert_set_hmac_salt
	fido_assert_set_authdata fido_assert_set_rp
	fido_assert_set_authdata fido_assert_set_sig
	fido_assert_set_authdata fido_assert_set_up
	fido_assert_set_authdata fido_assert_set_uv
	fido_bio_dev_get_info fido_bio_dev_enroll_begin
	fido_bio_dev_get_info fido_bio_dev_enroll_cancel
	fido_bio_dev_get_info fido_bio_dev_enroll_continue
	fido_bio_dev_get_info fido_bio_dev_enroll_remove
	fido_bio_dev_get_info fido_bio_dev_get_template_array
	fido_bio_dev_get_info fido_bio_dev_set_template_name
	fido_bio_enroll_new fido_bio_enroll_free
	fido_bio_enroll_new fido_bio_enroll_last_status
	fido_bio_enroll_new fido_bio_enroll_remaining_samples
	fido_bio_info_new fido_bio_info_free
	fido_bio_info_new fido_bio_info_max_samples
	fido_bio_info_new fido_bio_info_type
	fido_bio_template fido_bio_template_array_count
	fido_bio_template fido_bio_template_array_free
	fido_bio_template fido_bio_template_array_new
	fido_bio_template fido_bio_template_free
	fido_bio_template fido_bio_template_id_len
	fido_bio_template fido_bio_template_id_ptr
	fido_bio_template fido_bio_template_name
	fido_bio_template fido_bio_template_new
	fido_bio_template fido_bio_template_set_id
	fido_bio_template fido_bio_template_set_name
	fido_cbor_info_new fido_cbor_info_aaguid_len 
	fido_cbor_info_new fido_cbor_info_aaguid_ptr 
	fido_cbor_info_new fido_cbor_info_extensions_len 
	fido_cbor_info_new fido_cbor_info_extensions_ptr 
	fido_cbor_info_new fido_cbor_info_free 
	fido_cbor_info_new fido_cbor_info_maxmsgsiz
	fido_cbor_info_new fido_cbor_info_options_len 
	fido_cbor_info_new fido_cbor_info_options_name_ptr 
	fido_cbor_info_new fido_cbor_info_options_value_ptr 
	fido_cbor_info_new fido_cbor_info_protocols_len 
	fido_cbor_info_new fido_cbor_info_protocols_ptr 
	fido_cbor_info_new fido_cbor_info_versions_len 
	fido_cbor_info_new fido_cbor_info_versions_ptr 
	fido_cbor_info_new fido_dev_get_cbor_info 
	fido_cred_new fido_cred_authdata_len
	fido_cred_new fido_cred_authdata_ptr
	fido_cred_new fido_cred_clientdata_hash_len
	fido_cred_new fido_cred_clientdata_hash_ptr
	fido_cred_new fido_cred_fmt
	fido_cred_new fido_cred_free
	fido_cred_new fido_cred_id_len
	fido_cred_new fido_cred_id_ptr
	fido_cred_new fido_cred_prot
	fido_cred_new fido_cred_pubkey_len
	fido_cred_new fido_cred_pubkey_ptr
	fido_cred_new fido_cred_sig_len
	fido_cred_new fido_cred_sig_ptr
	fido_cred_new fido_cred_x5c_len
	fido_cred_new fido_cred_x5c_ptr
	fido_credman_metadata_new fido_credman_del_dev_rk
	fido_credman_metadata_new fido_credman_get_dev_metadata
	fido_credman_metadata_new fido_credman_get_dev_rk
	fido_credman_metadata_new fido_credman_get_dev_rp
	fido_credman_metadata_new fido_credman_metadata_free
	fido_credman_metadata_new fido_credman_rk
	fido_credman_metadata_new fido_credman_rk_count
	fido_credman_metadata_new fido_credman_rk_existing
	fido_credman_metadata_new fido_credman_rk_free
	fido_credman_metadata_new fido_credman_rk_new
	fido_credman_metadata_new fido_credman_rk_remaining
	fido_credman_metadata_new fido_credman_rp_count
	fido_credman_metadata_new fido_credman_rp_free
	fido_credman_metadata_new fido_credman_rp_id
	fido_credman_metadata_new fido_credman_rp_id_hash_len
	fido_credman_metadata_new fido_credman_rp_id_hash_ptr
	fido_credman_metadata_new fido_credman_rp_name
	fido_credman_metadata_new fido_credman_rp_new
	fido_cred_set_authdata fido_cred_set_authdata_raw
	fido_cred_set_authdata fido_cred_set_clientdata_hash
	fido_cred_set_authdata fido_cred_set_extensions
	fido_cred_set_authdata fido_cred_set_fmt
	fido_cred_set_authdata fido_cred_set_prot
	fido_cred_set_authdata fido_cred_set_rk
	fido_cred_set_authdata fido_cred_set_rp
	fido_cred_set_authdata fido_cred_set_sig
	fido_cred_set_authdata fido_cred_set_type
	fido_cred_set_authdata fido_cred_set_user
	fido_cred_set_authdata fido_cred_set_uv
	fido_cred_set_authdata fido_cred_set_x509
	fido_dev_info_manifest fido_dev_info_free
	fido_dev_info_manifest fido_dev_info_manufacturer_string
	fido_dev_info_manifest fido_dev_info_new
	fido_dev_info_manifest fido_dev_info_path
	fido_dev_info_manifest fido_dev_info_product
	fido_dev_info_manifest fido_dev_info_product_string
	fido_dev_info_manifest fido_dev_info_ptr
	fido_dev_info_manifest fido_dev_info_vendor
	fido_dev_open fido_dev_build
	fido_dev_open fido_dev_cancel
	fido_dev_open fido_dev_close
	fido_dev_open fido_dev_flags
	fido_dev_open fido_dev_force_fido2
	fido_dev_open fido_dev_force_u2f
	fido_dev_open fido_dev_free
	fido_dev_open fido_dev_is_fido2
	fido_dev_open fido_dev_major
	fido_dev_open fido_dev_minor
	fido_dev_open fido_dev_new
	fido_dev_open fido_dev_protocol
	fido_dev_set_pin fido_dev_get_retry_count
	fido_dev_set_pin fido_dev_reset
	rs256_pk_new rs256_pk_free
	rs256_pk_new rs256_pk_from_ptr
	rs256_pk_new rs256_pk_from_RSA
	rs256_pk_new rs256_pk_to_EVP_PKEY
)

list(LENGTH MAN_ALIAS MAN_ALIAS_LEN)
math(EXPR MAN_ALIAS_MAX "${MAN_ALIAS_LEN} - 2")

# man_copy
foreach(f ${MAN_SOURCES})
	add_custom_command(OUTPUT ${f}
		COMMAND cp -f ${CMAKE_SOURCE_DIR}/man/${f} .
		DEPENDS ${f})
	list(APPEND COPY_FILES ${f})
endforeach()

# man_lint
foreach(f ${MAN_SOURCES})
	add_custom_command(OUTPUT ${f}.lint
		COMMAND mandoc -T lint -W warning ${f} > ${f}.lint
		DEPENDS ${f})
	list(APPEND LINT_FILES ${f}.lint)
endforeach()

# man_html
foreach(f ${MAN_SOURCES})
	string(REGEX REPLACE ".[13]" "" g ${f})
	add_custom_command(OUTPUT ${g}.html
		COMMAND mandoc -T html -O man="%N.html",style=style.css -I os="Yubico AB" ${f} > ${g}.html
		DEPENDS ${f})
	list(APPEND HTML_FILES ${g}.html)
endforeach()

# man_html_partial
foreach(f ${MAN_SOURCES})
	string(REGEX REPLACE ".[13]" "" g ${f})
	add_custom_command(OUTPUT ${g}.partial
		COMMAND cat ${CMAKE_SOURCE_DIR}/man/dyc.css > ${g}.partial
		COMMAND mandoc -T html -O man="%N.html",fragment ${f} >> ${g}.partial
		DEPENDS ${f})
	list(APPEND HTML_PARTIAL_FILES ${g}.partial)
endforeach()

# man_gzip
foreach(f ${MAN_SOURCES})
	add_custom_command(OUTPUT ${f}.gz
		COMMAND gzip -c ${f} > ${f}.gz
		DEPENDS ${f})
	list(APPEND GZ_FILES ${f}.gz)
endforeach()

macro(define_symlink_target NAME EXT)
	foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
		math(EXPR j "${i} + 1")
		list(GET MAN_ALIAS ${i} SRC)
		list(GET MAN_ALIAS ${j} DST)
		add_custom_command(OUTPUT ${DST}.${EXT}
			COMMAND ln -sf ${SRC}.${EXT} ${DST}.${EXT})
		list(APPEND ${NAME}_LINK_FILES ${DST}.${EXT})
	endforeach()
	add_custom_target(${NAME} DEPENDS ${${NAME}_LINK_FILES})
endmacro()

add_custom_target(man_copy DEPENDS ${COPY_FILES})
add_custom_target(man_lint DEPENDS ${LINT_FILES})
add_custom_target(man_html DEPENDS ${HTML_FILES})
add_custom_target(man_html_partial DEPENDS ${HTML_PARTIAL_FILES})
add_custom_target(man_gzip DEPENDS ${GZ_FILES})

define_symlink_target(man_symlink 3)
define_symlink_target(man_symlink_html html)
define_symlink_target(man_symlink_html_partial partial)
define_symlink_target(man_symlink_gzip 3.gz)

add_dependencies(man_symlink man_copy)
add_dependencies(man_lint man_symlink)
add_dependencies(man_html man_lint)
add_dependencies(man_symlink_html man_html)
add_dependencies(man_html_partial man_lint)
add_dependencies(man_symlink_html_partial man_html_partial)
add_custom_target(man ALL)

if(MANDOC_PATH)
	add_dependencies(man man_symlink_html)
	add_dependencies(man_gzip man_lint)
	install(FILES ${CMAKE_SOURCE_DIR}/man/style.css
		DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")
	foreach(f ${MAN_SOURCES})
		string(REGEX REPLACE ".[13]" "" f ${f})
		install(FILES ${CMAKE_BINARY_DIR}/man/${f}.html
			DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")
	endforeach()
	foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
		math(EXPR j "${i} + 1")
		list(GET MAN_ALIAS ${j} DST)
		install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.html
			DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")
	endforeach()
endif()

if(GZIP_PATH)
	add_dependencies(man_gzip man_copy)
	add_dependencies(man_symlink_gzip man_gzip)
	add_dependencies(man man_symlink_gzip)
	foreach(f ${MAN_SOURCES})
		if (${f} MATCHES ".1$")
			install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz
				DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
		elseif(${f} MATCHES ".3$")
			install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz
				DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
		endif()
	endforeach()
	foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
		math(EXPR j "${i} + 1")
		list(GET MAN_ALIAS ${j} DST)
		install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3.gz
			DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
	endforeach()
elseif(NOT MSVC)
	add_dependencies(man man_symlink)
	foreach(f ${MAN_SOURCES})
		if (${f} MATCHES ".1$")
			install(FILES ${CMAKE_BINARY_DIR}/man/${f}
				DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
		elseif(${f} MATCHES ".3$")
			install(FILES ${CMAKE_BINARY_DIR}/man/${f}
				DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
		endif()
	endforeach()
	foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
		math(EXPR j "${i} + 1")
		list(GET MAN_ALIAS ${j} DST)
		install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3
			DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
	endforeach()
endif()
@


1.1.1.1
log
@Import Yubico's libfido2 from https://github.com/Yubico/libfido2.git
@
text
@@


1.1.1.2
log
@Version 1.5.0 (2020-09-01)
    hid_linux: return FIDO_OK if no devices are found.
    hid_osx:
        repair communication with U2F tokens, gh#166;
        reliability fixes.
    fido2-{assert,cred}: new options to explicitly toggle UP, UV.
    Support for configurable report lengths.
    New API calls:
        fido_cbor_info_maxcredcntlst;
        fido_cbor_info_maxcredidlen;
        fido_cred_aaguid_len;
        fido_cred_aaguid_ptr;
        fido_dev_get_touch_begin;
        fido_dev_get_touch_status.
    Use COSE_ECDH_ES256 with CTAP_CBOR_CLIENT_PIN; gh#154.
    Allow CTAP messages up to 2048 bytes; gh#171.
    Ensure we only list USB devices by default.
Version 1.4.0 (2020-04-15)
    hid_hidapi: hidapi backend; enable with -DUSE_HIDAPI=1.
    Fall back to U2F if the key claims to, but does not support FIDO2.
    FIDO2 credential protection (credprot) support.
    New API calls:
        fido_cbor_info_fwversion;
        fido_cred_prot;
        fido_cred_set_prot;
        fido_dev_set_transport_functions;
        fido_set_log_handler.
    Support for FreeBSD.
    Support for C++.
    Support for MSYS.
    Fixed EdDSA and RSA self-attestation.
Version 1.3.1 (2020-02-19)
    fix zero-ing of le1 and le2 when talking to a U2F device.
    dropping sk-libfido2 middleware, please find it in the openssh tree.
@
text
@d6 1
a6 1
find_program(GZIP_PATH gzip)
d8 4
a11 2
message(STATUS "MANDOC_PATH: ${MANDOC_PATH}")
message(STATUS "GZIP_PATH: ${GZIP_PATH}")
a34 1
	fido_dev_get_touch_begin.3
a56 1
	fido_assert_new fido_assert_flags
a59 3
	fido_assert_new fido_assert_id_len
	fido_assert_new fido_assert_id_ptr
	fido_assert_new fido_assert_rp_id
d98 5
a102 5
	fido_cbor_info_new fido_cbor_info_aaguid_len
	fido_cbor_info_new fido_cbor_info_aaguid_ptr
	fido_cbor_info_new fido_cbor_info_extensions_len
	fido_cbor_info_new fido_cbor_info_extensions_ptr
	fido_cbor_info_new fido_cbor_info_free
d104 8
a111 11
	fido_cbor_info_new fido_cbor_info_maxcredcntlst;
	fido_cbor_info_new fido_cbor_info_maxcredidlen;
	fido_cbor_info_new fido_cbor_info_fwversion
	fido_cbor_info_new fido_cbor_info_options_len
	fido_cbor_info_new fido_cbor_info_options_name_ptr
	fido_cbor_info_new fido_cbor_info_options_value_ptr
	fido_cbor_info_new fido_cbor_info_protocols_len
	fido_cbor_info_new fido_cbor_info_protocols_ptr
	fido_cbor_info_new fido_cbor_info_versions_len
	fido_cbor_info_new fido_cbor_info_versions_ptr
	fido_cbor_info_new fido_dev_get_cbor_info
a115 2
	fido_cred_new fido_cred_display_name
	fido_cred_new fido_cred_flags
a119 2
	fido_cred_new fido_cred_aaguid_len
	fido_cred_new fido_cred_aaguid_ptr
a122 2
	fido_cred_new fido_cred_rp_id
	fido_cred_new fido_cred_rp_name
a124 4
	fido_cred_new fido_cred_type
	fido_cred_new fido_cred_user_name
	fido_cred_new fido_cred_user_id_len
	fido_cred_new fido_cred_user_id_ptr
a172 2
	fido_dev_open fido_dev_supports_cred_prot
	fido_dev_open fido_dev_supports_pin
d226 1
a226 1
		COMMAND gzip -cn ${f} > ${f}.gz
@


1.1.1.3
log
@Import libfido2 1.7.0; changes:

Version 1.7.0 (2021-03-29)
- New dependency on zlib.
- Fixed musl build; gh#259.
- hid_win: detect devices with vendor or product IDs > 0x7fff; gh#264.
- Support for FIDO 2.1 authenticator configuration.
- Support for FIDO 2.1 UV token permissions.
- Support for FIDO 2.1 "credBlobs" and "largeBlobs" extensions.
- New API calls:
    fido_assert_blob_len;
    fido_assert_blob_ptr;
    fido_assert_largeblob_key_len;
    fido_assert_largeblob_key_ptr;
    fido_assert_set_hmac_secret;
    fido_cbor_info_maxcredbloblen;
    fido_cred_largeblob_key_len;
    fido_cred_largeblob_key_ptr;
    fido_cred_set_blob;
    fido_dev_enable_entattest;
    fido_dev_force_pin_change;
    fido_dev_has_uv;
    fido_dev_largeblob_get;
    fido_dev_largeblob_get_array;
    fido_dev_largeblob_remove;
    fido_dev_largeblob_set;
    fido_dev_largeblob_set_array;
    fido_dev_set_pin_minlen;
    fido_dev_set_sigmask;
    fido_dev_supports_credman;
    fido_dev_supports_permissions;
    fido_dev_supports_uv;
    fido_dev_toggle_always_uv.
- New fido_init flag to disable fido_dev_open's U2F fallback; gh#282.
- Experimental NFC support on Linux; enable with -DNFC_LINUX.

Version 1.6.0 (2020-12-22)
- Fix OpenSSL 1.0 and Cygwin builds.
- hid_linux: fix build on 32-bit systems.
- hid_osx: allow reads from spawned threads.
- Documentation and reliability fixes.
- New API calls:
    fido_cred_authdata_raw_len;
    fido_cred_authdata_raw_ptr;
    fido_cred_sigcount;
    fido_dev_get_uv_retry_count;
    fido_dev_supports_credman.
- Hardened Windows build.
- Native FreeBSD and NetBSD support.
- Use CTAP2 canonical CBOR when combining hmac-secret and credProtect.
@
text
@a31 1
	fido_dev_enable_entattest.3
a34 1
	fido_dev_largeblob_get.3
a52 2
	fido_assert_new fido_assert_blob_len
	fido_assert_new fido_assert_blob_ptr
a61 2
	fido_assert_new fido_assert_largeblob_key_len
	fido_assert_new fido_assert_largeblob_key_ptr
a74 1
	fido_assert_set_authdata fido_assert_set_hmac_secret
a106 1
	fido_cbor_info_new fido_cbor_info_maxcredbloblen
a119 2
	fido_cred_new fido_cred_authdata_raw_len
	fido_cred_new fido_cred_authdata_raw_ptr
a123 1
	fido_cred_new fido_cred_sigcount
a129 2
	fido_cred_new fido_cred_largeblob_key_len
	fido_cred_new fido_cred_largeblob_key_ptr
a161 1
	fido_cred_set_authdata fido_cred_set_blob
a172 4
	fido_dev_enable_entattest fido_dev_toggle_always_uv
	fido_dev_enable_entattest fido_dev_force_pin_change
	fido_dev_enable_entattest fido_dev_set_pin_minlen
	fido_dev_get_touch_begin fido_dev_get_touch_status
d189 2
a194 5
	fido_dev_open fido_dev_supports_cred_prot
	fido_dev_open fido_dev_supports_credman
	fido_dev_open fido_dev_supports_pin
	fido_dev_open fido_dev_supports_uv
	fido_dev_open fido_dev_has_uv
a195 1
	fido_dev_set_pin fido_dev_get_uv_retry_count
a196 5
	fido_dev_set_io_functions fido_dev_set_sigmask
	fido_dev_largeblob_get fido_dev_largeblob_set
	fido_dev_largeblob_get fido_dev_largeblob_remove
	fido_dev_largeblob_get fido_dev_largeblob_get_array
	fido_dev_largeblob_get fido_dev_largeblob_set_array
@


1.1.1.4
log
@Import libfido2 1.8.0

* Version 1.8.0 (2021-07-22)
 ** Dropped 'Requires.private' entry from pkg-config file.
 ** Better support for FIDO 2.1 authenticators.
 ** Support for Windows's native webauthn API.
 ** Support for attestation format 'none'.
 ** New API calls:
  - fido_assert_set_clientdata;
  - fido_cbor_info_algorithm_cose;
  - fido_cbor_info_algorithm_count;
  - fido_cbor_info_algorithm_type;
  - fido_cbor_info_transports_len;
  - fido_cbor_info_transports_ptr;
  - fido_cred_set_clientdata;
  - fido_cred_set_id;
  - fido_credman_set_dev_rk;
  - fido_dev_is_winhello.
 ** fido2-token: new -Sc option to update a resident credential.
 ** Documentation and reliability fixes.
 ** HID access serialisation on Linux.
@
text
@a76 1
	fido_assert_set_authdata fido_assert_set_clientdata
a109 3
	fido_cbor_info_new fido_cbor_info_algorithm_cose
	fido_cbor_info_new fido_cbor_info_algorithm_count
	fido_cbor_info_new fido_cbor_info_algorithm_type
a122 2
	fido_cbor_info_new fido_cbor_info_transports_len
	fido_cbor_info_new fido_cbor_info_transports_ptr
a173 1
	fido_credman_metadata_new fido_credman_set_dev_rk
a175 1
	fido_cred_set_authdata fido_cred_set_clientdata
a178 1
	fido_cred_set_authdata fido_cred_set_id
a206 1
	fido_dev_open fido_dev_is_winhello
@


1.1.1.4.2.1
log
@Pull up following revision(s) (requested by riastradh in ticket #345):

	external/bsd/libfido2/dist/fuzz/clock.c         up to 1.1.1.1
	external/bsd/libfido2/dist/fuzz/fuzz_pcsc.c     up to 1.1.1.1
	external/bsd/libfido2/dist/fuzz/pcsc.c          up to 1.1.1.1
	external/bsd/libfido2/dist/man/check.sh         up to 1.1.1.1
	external/bsd/libfido2/dist/man/es384_pk_new.3   up to 1.1.1.1
	external/bsd/libfido2/dist/openbsd-compat/bsd-asprintf.c up to 1.1.1.1
	external/bsd/libfido2/dist/openbsd-compat/strsep.c up to 1.1.1.1
	external/bsd/libfido2/dist/regress/compress.c   up to 1.1.1.1
	external/bsd/libfido2/dist/regress/eddsa.c      up to 1.1.1.1
	external/bsd/libfido2/dist/regress/es256.c      up to 1.1.1.1
	external/bsd/libfido2/dist/regress/es384.c      up to 1.1.1.1
	external/bsd/libfido2/dist/regress/rs256.c      up to 1.1.1.1
	external/bsd/libfido2/dist/src/fido/es384.h     up to 1.1.1.1
	external/bsd/libfido2/dist/src/es384.c          up to 1.1.1.1
	external/bsd/libfido2/dist/src/fallthrough.h    up to 1.1.1.1
	external/bsd/libfido2/dist/src/nfc.c            up to 1.1.1.1
	external/bsd/libfido2/dist/src/pcsc.c           up to 1.1.1.1
	external/bsd/libfido2/dist/src/rs1.c            up to 1.1.1.1
	external/bsd/libfido2/dist/src/time.c           up to 1.1.1.1
	external/bsd/libfido2/dist/src/touch.c          up to 1.1.1.1
	external/bsd/libfido2/dist/src/tpm.c            up to 1.1.1.1
	external/bsd/libfido2/dist/src/types.c          up to 1.1.1.1
	external/bsd/libfido2/dist/src/util.c           up to 1.1.1.1
	external/bsd/libfido2/dist/src/webauthn.h       up to 1.1.1.1
	external/bsd/libfido2/dist/windows/const.ps1    up to 1.1.1.1
	external/bsd/libfido2/dist/windows/cygwin.gpg   up to 1.1.1.1
	external/bsd/libfido2/dist/windows/cygwin.ps1   up to 1.1.1.1
	external/bsd/libfido2/dist/windows/release.ps1  up to 1.1.1.1
	external/bsd/libfido2/dist/SECURITY.md          up to 1.1.1.1
	external/bsd/libfido2/dist/openbsd-compat/hkdf.c delete
	external/bsd/libfido2/dist/openbsd-compat/hkdf.h delete
	external/bsd/libfido2/dist/CMakeLists.txt       up to 1.1.1.5
	external/bsd/libfido2/dist/LICENSE              up to 1.1.1.3
	external/bsd/libfido2/dist/NEWS                 up to 1.1.1.5
	external/bsd/libfido2/dist/README.adoc          up to 1.1.1.5
	external/bsd/libfido2/dist/examples/CMakeLists.txt up to 1.1.1.4
	external/bsd/libfido2/dist/examples/README.adoc up to 1.1.1.5
	external/bsd/libfido2/dist/examples/assert.c    up to 1.1.1.4
	external/bsd/libfido2/dist/examples/cred.c      up to 1.1.1.5
	external/bsd/libfido2/dist/examples/extern.h    up to 1.1.1.3
	external/bsd/libfido2/dist/examples/info.c      up to 1.1.1.5
	external/bsd/libfido2/dist/examples/manifest.c  up to 1.1.1.4
	external/bsd/libfido2/dist/examples/reset.c     up to 1.1.1.4
	external/bsd/libfido2/dist/examples/retries.c   up to 1.1.1.4
	external/bsd/libfido2/dist/examples/select.c    up to 1.1.1.3
	external/bsd/libfido2/dist/examples/setpin.c    up to 1.1.1.4
	external/bsd/libfido2/dist/examples/util.c      up to 1.1.1.4
	external/bsd/libfido2/dist/fuzz/CMakeLists.txt  up to 1.1.1.4
	external/bsd/libfido2/dist/fuzz/Dockerfile      up to 1.1.1.4
	external/bsd/libfido2/dist/fuzz/Makefile        up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/README          up to 1.1.1.4
	external/bsd/libfido2/dist/fuzz/build-coverage  up to 1.1.1.4
	external/bsd/libfido2/dist/fuzz/dummy.h         up to 1.1.1.3
	external/bsd/libfido2/dist/fuzz/export.gnu      up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/functions.txt   up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/fuzz_assert.c   up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/fuzz_bio.c      up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/fuzz_cred.c     up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/fuzz_credman.c  up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/fuzz_hid.c      up to 1.1.1.3
	external/bsd/libfido2/dist/fuzz/fuzz_largeblob.c up to 1.1.1.2
	external/bsd/libfido2/dist/fuzz/fuzz_mgmt.c     up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/fuzz_netlink.c  up to 1.1.1.2
	external/bsd/libfido2/dist/fuzz/libfuzzer.c     up to 1.1.1.3
	external/bsd/libfido2/dist/fuzz/mutator_aux.c   up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/mutator_aux.h   up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/preload-fuzz.c  up to 1.1.1.2
	external/bsd/libfido2/dist/fuzz/preload-snoop.c up to 1.1.1.2
	external/bsd/libfido2/dist/fuzz/report.tgz      up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/summary.txt     up to 1.1.1.5
	external/bsd/libfido2/dist/fuzz/udev.c          up to 1.1.1.2
	external/bsd/libfido2/dist/fuzz/wiredata_fido2.h up to 1.1.1.3
	external/bsd/libfido2/dist/fuzz/wiredata_u2f.h  up to 1.1.1.2
	external/bsd/libfido2/dist/fuzz/wrap.c          up to 1.1.1.3
	external/bsd/libfido2/dist/fuzz/wrapped.sym     up to 1.1.1.4
	external/bsd/libfido2/dist/man/CMakeLists.txt   up to 1.1.1.5
	external/bsd/libfido2/dist/man/eddsa_pk_new.3   up to 1.1.1.2
	external/bsd/libfido2/dist/man/es256_pk_new.3   up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido2-assert.1   up to 1.1.1.5
	external/bsd/libfido2/dist/man/fido2-cred.1     up to 1.1.1.5
	external/bsd/libfido2/dist/man/fido2-token.1    up to 1.1.1.5
	external/bsd/libfido2/dist/man/fido_assert_allow_cred.3 up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido_assert_new.3 up to 1.1.1.5
	external/bsd/libfido2/dist/man/fido_assert_set_authdata.3 up to 1.1.1.4
	external/bsd/libfido2/dist/man/fido_assert_verify.3 up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido_bio_dev_get_info.3 up to 1.1.1.4
	external/bsd/libfido2/dist/man/fido_bio_enroll_new.3 up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido_bio_info_new.3 up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido_bio_template.3 up to 1.1.1.4
	external/bsd/libfido2/dist/man/fido_cbor_info_new.3 up to 1.1.1.5
	external/bsd/libfido2/dist/man/fido_cred_exclude.3 up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido_cred_new.3  up to 1.1.1.4
	external/bsd/libfido2/dist/man/fido_cred_set_authdata.3 up to 1.1.1.4
	external/bsd/libfido2/dist/man/fido_cred_verify.3 up to 1.1.1.4
	external/bsd/libfido2/dist/man/fido_credman_metadata_new.3 up to 1.1.1.5
	external/bsd/libfido2/dist/man/fido_dev_enable_entattest.3 up to 1.1.1.3
	external/bsd/libfido2/dist/man/fido_dev_get_assert.3 up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido_dev_get_touch_begin.3 up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido_dev_info_manifest.3 up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido_dev_largeblob_get.3 up to 1.1.1.2
	external/bsd/libfido2/dist/man/fido_dev_make_cred.3 up to 1.1.1.3
	external/bsd/libfido2/dist/man/fido_dev_open.3  up to 1.1.1.5
	external/bsd/libfido2/dist/man/fido_dev_set_io_functions.3 up to 1.1.1.3
	external/bsd/libfido2/dist/man/fido_dev_set_pin.3 up to 1.1.1.3
	external/bsd/libfido2/dist/man/fido_init.3      up to 1.1.1.3
	external/bsd/libfido2/dist/man/fido_strerr.3    up to 1.1.1.2
	external/bsd/libfido2/dist/man/rs256_pk_new.3   up to 1.1.1.2
	external/bsd/libfido2/dist/openbsd-compat/clock_gettime.c up to 1.1.1.2
	external/bsd/libfido2/dist/openbsd-compat/endian_win32.c up to 1.1.1.2
	external/bsd/libfido2/dist/openbsd-compat/openbsd-compat.h up to 1.1.1.4
	external/bsd/libfido2/dist/regress/CMakeLists.txt up to 1.1.1.2
	external/bsd/libfido2/dist/regress/assert.c     up to 1.1.1.4
	external/bsd/libfido2/dist/regress/cred.c       up to 1.1.1.5
	external/bsd/libfido2/dist/regress/dev.c        up to 1.1.1.3
	external/bsd/libfido2/dist/src/CMakeLists.txt   up to 1.1.1.5
	external/bsd/libfido2/dist/src/aes256.c         up to 1.1.1.3
	external/bsd/libfido2/dist/src/assert.c         up to 1.3
	external/bsd/libfido2/dist/src/authkey.c        up to 1.1.1.3
	external/bsd/libfido2/dist/src/bio.c            up to 1.1.1.4
	external/bsd/libfido2/dist/src/blob.c           up to 1.1.1.3
	external/bsd/libfido2/dist/src/blob.h           up to 1.1.1.3
	external/bsd/libfido2/dist/src/buf.c            up to 1.1.1.3
	external/bsd/libfido2/dist/src/cbor.c           up to 1.1.1.5
	external/bsd/libfido2/dist/src/compress.c       up to 1.1.1.2
	external/bsd/libfido2/dist/src/config.c         up to 1.1.1.3
	external/bsd/libfido2/dist/src/cred.c           up to 1.3
	external/bsd/libfido2/dist/src/credman.c        up to 1.1.1.5
	external/bsd/libfido2/dist/src/dev.c            up to 1.1.1.5
	external/bsd/libfido2/dist/src/diff_exports.sh  up to 1.1.1.3
	external/bsd/libfido2/dist/src/ecdh.c           up to 1.1.1.3
	external/bsd/libfido2/dist/src/eddsa.c          up to 1.1.1.4
	external/bsd/libfido2/dist/src/err.c            up to 1.1.1.4
	external/bsd/libfido2/dist/src/es256.c          up to 1.1.1.4
	external/bsd/libfido2/dist/src/export.gnu       up to 1.1.1.5
	external/bsd/libfido2/dist/src/export.llvm      up to 1.1.1.5
	external/bsd/libfido2/dist/src/export.msvc      up to 1.1.1.5
	external/bsd/libfido2/dist/src/extern.h         up to 1.1.1.5
	external/bsd/libfido2/dist/src/fido.h           up to 1.1.1.5
	external/bsd/libfido2/dist/src/hid.c            up to 1.1.1.4
	external/bsd/libfido2/dist/src/hid_freebsd.c    up to 1.1.1.2
	external/bsd/libfido2/dist/src/hid_hidapi.c     up to 1.1.1.4
	external/bsd/libfido2/dist/src/hid_linux.c      up to 1.1.1.5
	external/bsd/libfido2/dist/src/hid_netbsd.c     up to 1.4
	external/bsd/libfido2/dist/src/hid_openbsd.c    up to 1.1.1.4
	external/bsd/libfido2/dist/src/hid_osx.c        up to 1.1.1.4
	external/bsd/libfido2/dist/src/hid_unix.c       up to 1.1.1.2
	external/bsd/libfido2/dist/src/hid_win.c        up to 1.1.1.4
	external/bsd/libfido2/dist/src/info.c           up to 1.1.1.5
	external/bsd/libfido2/dist/src/io.c             up to 1.1.1.5
	external/bsd/libfido2/dist/src/iso7816.c        up to 1.1.1.4
	external/bsd/libfido2/dist/src/iso7816.h        up to 1.1.1.3
	external/bsd/libfido2/dist/src/largeblob.c      up to 1.1.1.3
	external/bsd/libfido2/dist/src/log.c            up to 1.1.1.4
	external/bsd/libfido2/dist/src/netlink.c        up to 1.1.1.2
	external/bsd/libfido2/dist/src/netlink.h        up to 1.1.1.2
	external/bsd/libfido2/dist/src/nfc_linux.c      up to 1.1.1.2
	external/bsd/libfido2/dist/src/packed.h         up to 1.1.1.2
	external/bsd/libfido2/dist/src/pin.c            up to 1.1.1.5
	external/bsd/libfido2/dist/src/random.c         up to 1.1.1.2
	external/bsd/libfido2/dist/src/reset.c          up to 1.1.1.3
	external/bsd/libfido2/dist/src/rs256.c          up to 1.1.1.3
	external/bsd/libfido2/dist/src/u2f.c            up to 1.1.1.5
	external/bsd/libfido2/dist/src/winhello.c       up to 1.1.1.2
	external/bsd/libfido2/dist/src/fido/bio.h       up to 1.1.1.2
	external/bsd/libfido2/dist/src/fido/config.h    up to 1.1.1.2
	external/bsd/libfido2/dist/src/fido/credman.h   up to 1.1.1.3
	external/bsd/libfido2/dist/src/fido/eddsa.h     up to 1.1.1.2
	external/bsd/libfido2/dist/src/fido/err.h       up to 1.1.1.4
	external/bsd/libfido2/dist/src/fido/es256.h     up to 1.1.1.2
	external/bsd/libfido2/dist/src/fido/param.h     up to 1.1.1.4
	external/bsd/libfido2/dist/src/fido/rs256.h     up to 1.1.1.2
	external/bsd/libfido2/dist/src/fido/types.h     up to 1.1.1.5
	external/bsd/libfido2/dist/tools/CMakeLists.txt up to 1.1.1.4
	external/bsd/libfido2/dist/tools/assert_get.c   up to 1.1.1.4
	external/bsd/libfido2/dist/tools/assert_verify.c up to 1.1.1.4
	external/bsd/libfido2/dist/tools/base64.c       up to 1.1.1.3
	external/bsd/libfido2/dist/tools/bio.c          up to 1.1.1.3
	external/bsd/libfido2/dist/tools/config.c       up to 1.1.1.2
	external/bsd/libfido2/dist/tools/cred_make.c    up to 1.1.1.4
	external/bsd/libfido2/dist/tools/cred_verify.c  up to 1.1.1.3
	external/bsd/libfido2/dist/tools/credman.c      up to 1.1.1.5
	external/bsd/libfido2/dist/tools/extern.h       up to 1.1.1.5
	external/bsd/libfido2/dist/tools/fido2-assert.c up to 1.1.1.4
	external/bsd/libfido2/dist/tools/fido2-attach.sh up to 1.1.1.2
	external/bsd/libfido2/dist/tools/fido2-cred.c   up to 1.1.1.4
	external/bsd/libfido2/dist/tools/fido2-detach.sh up to 1.1.1.2
	external/bsd/libfido2/dist/tools/fido2-token.c  up to 1.1.1.5
	external/bsd/libfido2/dist/tools/fido2-unprot.sh up to 1.1.1.2
	external/bsd/libfido2/dist/tools/include_check.sh up to 1.1.1.3
	external/bsd/libfido2/dist/tools/largeblob.c    up to 1.1.1.2
	external/bsd/libfido2/dist/tools/pin.c          up to 1.1.1.3
	external/bsd/libfido2/dist/tools/test.sh        up to 1.1.1.4
	external/bsd/libfido2/dist/tools/token.c        up to 1.1.1.5
	external/bsd/libfido2/dist/tools/util.c         up to 1.4
	external/bsd/libfido2/dist/udev/70-u2f.rules    up to 1.1.1.4
	external/bsd/libfido2/dist/udev/CMakeLists.txt  up to 1.1.1.2
	external/bsd/libfido2/dist/udev/check.sh        up to 1.1.1.2
	external/bsd/libfido2/dist/udev/fidodevs        up to 1.1.1.3
	external/bsd/libfido2/dist/udev/genrules.awk    up to 1.1.1.2
	external/bsd/libfido2/dist/windows/build.ps1    up to 1.1.1.5
	distrib/sets/lists/man/mi: revision 1.1763
	distrib/sets/lists/debug/shl.mi: revision 1.321
	external/bsd/libfido2/lib/Makefile: revision 1.11
	distrib/sets/lists/comp/mi: revision 1.2447
	distrib/sets/lists/comp/mi: revision 1.2448
	distrib/sets/lists/base/shl.mi: revision 1.960

libfido2: Update from 1.8.0 to 1.13.0.
@
text
@d1 1
a1 1
# Copyright (c) 2018-2022 Yubico AB. All rights reserved.
a3 1
# SPDX-License-Identifier: BSD-2-Clause
a13 1
	es384_pk_new.3
a46 1
	eddsa_pk_new eddsa_pk_from_EVP_PKEY
a50 1
	es256_pk_new es256_pk_from_EVP_PKEY
a52 6
	es384_pk_new es384_pk_free
	es384_pk_new es384_pk_from_EC_KEY
	es384_pk_new es384_pk_from_EVP_PKEY
	es384_pk_new es384_pk_from_ptr
	es384_pk_new es384_pk_to_EVP_PKEY
	fido_assert_allow_cred fido_assert_empty_allow_list
a76 1
	fido_assert_set_authdata fido_assert_set_authdata_raw
a113 3
	fido_cbor_info_new fido_cbor_info_certs_len
	fido_cbor_info_new fido_cbor_info_certs_name_ptr
	fido_cbor_info_new fido_cbor_info_certs_value_ptr
d117 4
a121 8
	fido_cbor_info_new fido_cbor_info_maxcredbloblen
	fido_cbor_info_new fido_cbor_info_maxcredcntlst
	fido_cbor_info_new fido_cbor_info_maxcredidlen
	fido_cbor_info_new fido_cbor_info_maxlargeblob
	fido_cbor_info_new fido_cbor_info_maxmsgsiz
	fido_cbor_info_new fido_cbor_info_maxrpid_minpinlen
	fido_cbor_info_new fido_cbor_info_minpinlen
	fido_cbor_info_new fido_cbor_info_new_pin_required
a126 1
	fido_cbor_info_new fido_cbor_info_rk_remaining
a128 2
	fido_cbor_info_new fido_cbor_info_uv_attempts
	fido_cbor_info_new fido_cbor_info_uv_modality
a131 5
	fido_cred_exclude fido_cred_empty_exclude_list
	fido_cred_new fido_cred_aaguid_len
	fido_cred_new fido_cred_aaguid_ptr
	fido_cred_new fido_cred_attstmt_len
	fido_cred_new fido_cred_attstmt_ptr
d140 1
d145 2
a148 1
	fido_cred_new fido_cred_pin_minlen
a153 1
	fido_cred_new fido_cred_sigcount
d157 1
a159 1
	fido_cred_new fido_cred_user_name
a161 1
	fido_cred_verify fido_cred_verify_self
a180 1
	fido_cred_set_authdata fido_cred_set_attstmt
a187 1
	fido_cred_set_authdata fido_cred_set_pin_minlen
a198 1
	fido_dev_enable_entattest fido_dev_set_pin_minlen_rpid
a206 1
	fido_dev_info_manifest fido_dev_info_set
a214 2
	fido_dev_open fido_dev_has_pin
	fido_dev_open fido_dev_has_uv
a219 2
	fido_dev_open fido_dev_new_with_info
	fido_dev_open fido_dev_open_with_info
a222 1
	fido_dev_open fido_dev_supports_permissions
d225 1
a228 1
	fido_dev_set_io_functions fido_dev_io_handle
a229 2
	fido_dev_set_io_functions fido_dev_set_timeout
	fido_dev_set_io_functions fido_dev_set_transport_functions
a233 1
	fido_init fido_set_log_handler
a235 1
	rs256_pk_new rs256_pk_from_EVP_PKEY
d246 1
a246 1
		COMMAND cp -f ${PROJECT_SOURCE_DIR}/man/${f} .
d261 1
a261 1
	string(REGEX REPLACE "\\.[13]$" "" g ${f})
d270 1
a270 1
	string(REGEX REPLACE "\\.[13]$" "" g ${f})
d272 1
a272 1
		COMMAND cat ${PROJECT_SOURCE_DIR}/man/dyc.css > ${g}.partial
d320 1
a320 1
	install(FILES ${PROJECT_SOURCE_DIR}/man/style.css
d323 2
a324 2
		string(REGEX REPLACE "\\.[13]$" "" f ${f})
		install(FILES ${PROJECT_BINARY_DIR}/man/${f}.html
d330 1
a330 1
		install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.html
d341 1
a341 1
			install(FILES ${PROJECT_BINARY_DIR}/man/${f}.gz
d344 1
a344 1
			install(FILES ${PROJECT_BINARY_DIR}/man/${f}.gz
d351 1
a351 1
		install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.3.gz
d358 1
a358 1
			install(FILES ${PROJECT_BINARY_DIR}/man/${f}
d361 1
a361 1
			install(FILES ${PROJECT_BINARY_DIR}/man/${f}
d368 1
a368 1
		install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.3
@


1.1.1.5
log
@Import libfido2 1.13.0 (old one was 1.8.0)

* Version 1.13.0 (2023-02-20)
 ** Support for linking against OpenSSL on Windows; gh#668.
 ** New API calls:
  - fido_assert_empty_allow_list;
  - fido_cred_empty_exclude_list.
 ** fido2-token: fix issue when listing large blobs.
 ** Improved support for different fuzzing engines.

* Version 1.12.0 (2022-09-22)
 ** Support for COSE_ES384.
 ** Support for hidraw(4) on FreeBSD; gh#597.
 ** Improved support for FIDO 2.1 authenticators.
 ** New API calls:
  - es384_pk_free;
  - es384_pk_from_EC_KEY;
  - es384_pk_from_EVP_PKEY;
  - es384_pk_from_ptr;
  - es384_pk_new;
  - es384_pk_to_EVP_PKEY;
  - fido_cbor_info_certs_len;
  - fido_cbor_info_certs_name_ptr;
  - fido_cbor_info_certs_value_ptr;
  - fido_cbor_info_maxrpid_minpinlen;
  - fido_cbor_info_minpinlen;
  - fido_cbor_info_new_pin_required;
  - fido_cbor_info_rk_remaining;
  - fido_cbor_info_uv_attempts;
  - fido_cbor_info_uv_modality.
 ** Documentation and reliability fixes.

* Version 1.11.0 (2022-05-03)
 ** Experimental PCSC support; enable with -DUSE_PCSC.
 ** Improved OpenSSL 3.0 compatibility.
 ** Use RFC1951 raw deflate to compress CTAP 2.1 largeBlobs.
 ** winhello: advertise "uv" instead of "clientPin".
 ** winhello: support hmac-secret in fido_dev_get_assert().
 ** New API calls:
  - fido_cbor_info_maxlargeblob.
 ** Documentation and reliability fixes.
 ** Separate build and regress targets.

* Version 1.10.0 (2022-01-17)
 ** hid_osx: handle devices with paths > 511 bytes; gh#462.
 ** bio: fix CTAP2 canonical CBOR encoding in fido_bio_dev_enroll_*(); gh#480.
 ** winhello: fallback to GetTopWindow() if GetForegroundWindow() fails.
 ** winhello: fallback to hid_win.c if webauthn.dll isn't available.
 ** New API calls:
  - fido_dev_info_set;
  - fido_dev_io_handle;
  - fido_dev_new_with_info;
  - fido_dev_open_with_info.
 ** Cygwin and NetBSD build fixes.
 ** Documentation and reliability fixes.
 ** Support for TPM 2.0 attestation of COSE_ES256 credentials.

* Version 1.9.0 (2021-10-27)
 ** Enabled NFC support on Linux.
 ** Added OpenSSL 3.0 compatibility.
 ** Removed OpenSSL 1.0 compatibility.
 ** Support for FIDO 2.1 "minPinLength" extension.
 ** Support for COSE_EDDSA, COSE_ES256, and COSE_RS1 attestation.
 ** Support for TPM 2.0 attestation.
 ** Support for device timeouts; see fido_dev_set_timeout().
 ** New API calls:
  - es256_pk_from_EVP_PKEY;
  - fido_cred_attstmt_len;
  - fido_cred_attstmt_ptr;
  - fido_cred_pin_minlen;
  - fido_cred_set_attstmt;
  - fido_cred_set_pin_minlen;
  - fido_dev_set_pin_minlen_rpid;
  - fido_dev_set_timeout;
  - rs256_pk_from_EVP_PKEY.
 ** Reliability and portability fixes.
 ** Better handling of HID devices without identification strings; gh#381.
 ** Fixed detection of Windows's native webauthn API; gh#382.
@
text
@d1 1
a1 1
# Copyright (c) 2018-2022 Yubico AB. All rights reserved.
a3 1
# SPDX-License-Identifier: BSD-2-Clause
a13 1
	es384_pk_new.3
a46 1
	eddsa_pk_new eddsa_pk_from_EVP_PKEY
a50 1
	es256_pk_new es256_pk_from_EVP_PKEY
a52 6
	es384_pk_new es384_pk_free
	es384_pk_new es384_pk_from_EC_KEY
	es384_pk_new es384_pk_from_EVP_PKEY
	es384_pk_new es384_pk_from_ptr
	es384_pk_new es384_pk_to_EVP_PKEY
	fido_assert_allow_cred fido_assert_empty_allow_list
a76 1
	fido_assert_set_authdata fido_assert_set_authdata_raw
a113 3
	fido_cbor_info_new fido_cbor_info_certs_len
	fido_cbor_info_new fido_cbor_info_certs_name_ptr
	fido_cbor_info_new fido_cbor_info_certs_value_ptr
d117 4
a121 8
	fido_cbor_info_new fido_cbor_info_maxcredbloblen
	fido_cbor_info_new fido_cbor_info_maxcredcntlst
	fido_cbor_info_new fido_cbor_info_maxcredidlen
	fido_cbor_info_new fido_cbor_info_maxlargeblob
	fido_cbor_info_new fido_cbor_info_maxmsgsiz
	fido_cbor_info_new fido_cbor_info_maxrpid_minpinlen
	fido_cbor_info_new fido_cbor_info_minpinlen
	fido_cbor_info_new fido_cbor_info_new_pin_required
a126 1
	fido_cbor_info_new fido_cbor_info_rk_remaining
a128 2
	fido_cbor_info_new fido_cbor_info_uv_attempts
	fido_cbor_info_new fido_cbor_info_uv_modality
a131 5
	fido_cred_exclude fido_cred_empty_exclude_list
	fido_cred_new fido_cred_aaguid_len
	fido_cred_new fido_cred_aaguid_ptr
	fido_cred_new fido_cred_attstmt_len
	fido_cred_new fido_cred_attstmt_ptr
d140 1
d145 2
a148 1
	fido_cred_new fido_cred_pin_minlen
a153 1
	fido_cred_new fido_cred_sigcount
d157 1
a159 1
	fido_cred_new fido_cred_user_name
a161 1
	fido_cred_verify fido_cred_verify_self
a180 1
	fido_cred_set_authdata fido_cred_set_attstmt
a187 1
	fido_cred_set_authdata fido_cred_set_pin_minlen
a198 1
	fido_dev_enable_entattest fido_dev_set_pin_minlen_rpid
a206 1
	fido_dev_info_manifest fido_dev_info_set
a214 2
	fido_dev_open fido_dev_has_pin
	fido_dev_open fido_dev_has_uv
a219 2
	fido_dev_open fido_dev_new_with_info
	fido_dev_open fido_dev_open_with_info
a222 1
	fido_dev_open fido_dev_supports_permissions
d225 1
a228 1
	fido_dev_set_io_functions fido_dev_io_handle
a229 2
	fido_dev_set_io_functions fido_dev_set_timeout
	fido_dev_set_io_functions fido_dev_set_transport_functions
a233 1
	fido_init fido_set_log_handler
a235 1
	rs256_pk_new rs256_pk_from_EVP_PKEY
d246 1
a246 1
		COMMAND cp -f ${PROJECT_SOURCE_DIR}/man/${f} .
d261 1
a261 1
	string(REGEX REPLACE "\\.[13]$" "" g ${f})
d270 1
a270 1
	string(REGEX REPLACE "\\.[13]$" "" g ${f})
d272 1
a272 1
		COMMAND cat ${PROJECT_SOURCE_DIR}/man/dyc.css > ${g}.partial
d320 1
a320 1
	install(FILES ${PROJECT_SOURCE_DIR}/man/style.css
d323 2
a324 2
		string(REGEX REPLACE "\\.[13]$" "" f ${f})
		install(FILES ${PROJECT_BINARY_DIR}/man/${f}.html
d330 1
a330 1
		install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.html
d341 1
a341 1
			install(FILES ${PROJECT_BINARY_DIR}/man/${f}.gz
d344 1
a344 1
			install(FILES ${PROJECT_BINARY_DIR}/man/${f}.gz
d351 1
a351 1
		install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.3.gz
d358 1
a358 1
			install(FILES ${PROJECT_BINARY_DIR}/man/${f}
d361 1
a361 1
			install(FILES ${PROJECT_BINARY_DIR}/man/${f}
d368 1
a368 1
		install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.3
@


1.1.1.5.2.1
log
@Sync with HEAD
@
text
@a64 2
	fido_assert_new fido_assert_authdata_raw_len
	fido_assert_new fido_assert_authdata_raw_ptr
a97 1
	fido_assert_set_authdata fido_assert_set_winhello_appid
a164 1
	fido_cred_new fido_cred_entattest
a185 3
	fido_cred_new fido_cred_x5c_list_count
	fido_cred_new fido_cred_x5c_list_len
	fido_cred_new fido_cred_x5c_list_ptr
a207 1
	fido_cred_set_authdata fido_cred_set_attobj
a211 1
	fido_cred_set_authdata fido_cred_set_entattest
d393 1
a393 1
else()
@


1.1.1.6
log
@Import libfido2-1.16.0 (previous was 1.13.0)
Changes:

Version 1.16.0 (2025-05-06)

    Added support for enterprise attestation.
    Improved handling of invalid key handles in U2F key lookup; gh#819.
    Fixed issue where storing small CTAP 2.1 largeBlobs failed; gh#826.
    Fixed APDU chaining issues for certain authenticators; gh#818, gh#855.
    Improved documentation and examples.

    New API calls:
	fido_cred_entattest;
	fido_cred_set_entattest.

Version 1.15.0 (2024-06-13)

    1.15.0 will be the last release to support OpenSSL 1.1.

    bio, credman: improved CTAP 2.1 support.
    hid_osx: fix issue where fido_hid_read() may block unnecessarily; gh#757.
    fido2-token -I: print maxcredbloblen.
    hid_linux: improved support for uhid devices.

    New API calls:
	fido_cred_set_attobj;
	fido_cred_x5c_list_count;
	fido_cred_x5c_list_len;
	fido_cred_x5c_list_ptr.

Version 1.14.0 (2023-11-13)

    fido2-cred -M, fido2-token -G: support raw client data via -w flag.

    winhello: support U2F AppID extension for assertions.
    winhello: fix restrictive parsing of the hmac-secret on assertions.
    winhello: translate NTE_USER_CANCELLED to FIDO_ERR_OPERATION_DENIED; gh#685.

    New API calls:
	fido_assert_authdata_raw_len;
	fido_assert_authdata_raw_ptr;
	fido_assert_set_winhello_appid.
@
text
@a64 2
	fido_assert_new fido_assert_authdata_raw_len
	fido_assert_new fido_assert_authdata_raw_ptr
a97 1
	fido_assert_set_authdata fido_assert_set_winhello_appid
a164 1
	fido_cred_new fido_cred_entattest
a185 3
	fido_cred_new fido_cred_x5c_list_count
	fido_cred_new fido_cred_x5c_list_len
	fido_cred_new fido_cred_x5c_list_ptr
a207 1
	fido_cred_set_authdata fido_cred_set_attobj
a211 1
	fido_cred_set_authdata fido_cred_set_entattest
d393 1
a393 1
else()
@


1.1.1.1.2.1
log
@file CMakeLists.txt was added on branch phil-wifi on 2020-04-13 07:46:08 +0000
@
text
@d1 316
@


1.1.1.1.2.2
log
@Mostly merge changes from HEAD upto 20200411
@
text
@a0 316
# Copyright (c) 2018 Yubico AB. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

find_program(MANDOC_PATH mandoc)
message(STATUS "MANDOC_PATH: ${MANDOC_PATH}")

if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
	find_program(GZIP_PATH gzip)
	message(STATUS "GZIP_PATH: ${GZIP_PATH}")
endif()

list(APPEND MAN_SOURCES
	eddsa_pk_new.3
	es256_pk_new.3
	fido2-assert.1
	fido2-cred.1
	fido2-token.1
	fido_init.3
	fido_assert_new.3
	fido_assert_allow_cred.3
	fido_assert_set_authdata.3
	fido_assert_verify.3
	fido_bio_dev_get_info.3
	fido_bio_enroll_new.3
	fido_bio_info_new.3
	fido_bio_template.3
	fido_cbor_info_new.3
	fido_cred_new.3
	fido_cred_exclude.3
	fido_credman_metadata_new.3
	fido_cred_set_authdata.3
	fido_cred_verify.3
	fido_dev_get_assert.3
	fido_dev_info_manifest.3
	fido_dev_make_cred.3
	fido_dev_open.3
	fido_dev_set_io_functions.3
	fido_dev_set_pin.3
	fido_strerr.3
	rs256_pk_new.3
)

list(APPEND MAN_ALIAS
	eddsa_pk_new eddsa_pk_free
	eddsa_pk_new eddsa_pk_from_ptr
	eddsa_pk_new eddsa_pk_to_EVP_PKEY
	es256_pk_new es256_pk_free
	es256_pk_new es256_pk_from_EC_KEY
	es256_pk_new es256_pk_from_ptr
	es256_pk_new es256_pk_to_EVP_PKEY
	fido_assert_new fido_assert_authdata_len
	fido_assert_new fido_assert_authdata_ptr
	fido_assert_new fido_assert_clientdata_hash_len
	fido_assert_new fido_assert_clientdata_hash_ptr
	fido_assert_new fido_assert_count
	fido_assert_new fido_assert_free
	fido_assert_new fido_assert_hmac_secret_len
	fido_assert_new fido_assert_hmac_secret_ptr
	fido_assert_new fido_assert_sigcount
	fido_assert_new fido_assert_sig_len
	fido_assert_new fido_assert_sig_ptr
	fido_assert_new fido_assert_user_display_name
	fido_assert_new fido_assert_user_icon
	fido_assert_new fido_assert_user_id_len
	fido_assert_new fido_assert_user_id_ptr
	fido_assert_new fido_assert_user_name
	fido_assert_set_authdata fido_assert_set_clientdata_hash
	fido_assert_set_authdata fido_assert_set_count
	fido_assert_set_authdata fido_assert_set_extensions
	fido_assert_set_authdata fido_assert_set_hmac_salt
	fido_assert_set_authdata fido_assert_set_rp
	fido_assert_set_authdata fido_assert_set_sig
	fido_assert_set_authdata fido_assert_set_up
	fido_assert_set_authdata fido_assert_set_uv
	fido_bio_dev_get_info fido_bio_dev_enroll_begin
	fido_bio_dev_get_info fido_bio_dev_enroll_cancel
	fido_bio_dev_get_info fido_bio_dev_enroll_continue
	fido_bio_dev_get_info fido_bio_dev_enroll_remove
	fido_bio_dev_get_info fido_bio_dev_get_template_array
	fido_bio_dev_get_info fido_bio_dev_set_template_name
	fido_bio_enroll_new fido_bio_enroll_free
	fido_bio_enroll_new fido_bio_enroll_last_status
	fido_bio_enroll_new fido_bio_enroll_remaining_samples
	fido_bio_info_new fido_bio_info_free
	fido_bio_info_new fido_bio_info_max_samples
	fido_bio_info_new fido_bio_info_type
	fido_bio_template fido_bio_template_array_count
	fido_bio_template fido_bio_template_array_free
	fido_bio_template fido_bio_template_array_new
	fido_bio_template fido_bio_template_free
	fido_bio_template fido_bio_template_id_len
	fido_bio_template fido_bio_template_id_ptr
	fido_bio_template fido_bio_template_name
	fido_bio_template fido_bio_template_new
	fido_bio_template fido_bio_template_set_id
	fido_bio_template fido_bio_template_set_name
	fido_cbor_info_new fido_cbor_info_aaguid_len 
	fido_cbor_info_new fido_cbor_info_aaguid_ptr 
	fido_cbor_info_new fido_cbor_info_extensions_len 
	fido_cbor_info_new fido_cbor_info_extensions_ptr 
	fido_cbor_info_new fido_cbor_info_free 
	fido_cbor_info_new fido_cbor_info_maxmsgsiz
	fido_cbor_info_new fido_cbor_info_options_len 
	fido_cbor_info_new fido_cbor_info_options_name_ptr 
	fido_cbor_info_new fido_cbor_info_options_value_ptr 
	fido_cbor_info_new fido_cbor_info_protocols_len 
	fido_cbor_info_new fido_cbor_info_protocols_ptr 
	fido_cbor_info_new fido_cbor_info_versions_len 
	fido_cbor_info_new fido_cbor_info_versions_ptr 
	fido_cbor_info_new fido_dev_get_cbor_info 
	fido_cred_new fido_cred_authdata_len
	fido_cred_new fido_cred_authdata_ptr
	fido_cred_new fido_cred_clientdata_hash_len
	fido_cred_new fido_cred_clientdata_hash_ptr
	fido_cred_new fido_cred_fmt
	fido_cred_new fido_cred_free
	fido_cred_new fido_cred_id_len
	fido_cred_new fido_cred_id_ptr
	fido_cred_new fido_cred_prot
	fido_cred_new fido_cred_pubkey_len
	fido_cred_new fido_cred_pubkey_ptr
	fido_cred_new fido_cred_sig_len
	fido_cred_new fido_cred_sig_ptr
	fido_cred_new fido_cred_x5c_len
	fido_cred_new fido_cred_x5c_ptr
	fido_credman_metadata_new fido_credman_del_dev_rk
	fido_credman_metadata_new fido_credman_get_dev_metadata
	fido_credman_metadata_new fido_credman_get_dev_rk
	fido_credman_metadata_new fido_credman_get_dev_rp
	fido_credman_metadata_new fido_credman_metadata_free
	fido_credman_metadata_new fido_credman_rk
	fido_credman_metadata_new fido_credman_rk_count
	fido_credman_metadata_new fido_credman_rk_existing
	fido_credman_metadata_new fido_credman_rk_free
	fido_credman_metadata_new fido_credman_rk_new
	fido_credman_metadata_new fido_credman_rk_remaining
	fido_credman_metadata_new fido_credman_rp_count
	fido_credman_metadata_new fido_credman_rp_free
	fido_credman_metadata_new fido_credman_rp_id
	fido_credman_metadata_new fido_credman_rp_id_hash_len
	fido_credman_metadata_new fido_credman_rp_id_hash_ptr
	fido_credman_metadata_new fido_credman_rp_name
	fido_credman_metadata_new fido_credman_rp_new
	fido_cred_set_authdata fido_cred_set_authdata_raw
	fido_cred_set_authdata fido_cred_set_clientdata_hash
	fido_cred_set_authdata fido_cred_set_extensions
	fido_cred_set_authdata fido_cred_set_fmt
	fido_cred_set_authdata fido_cred_set_prot
	fido_cred_set_authdata fido_cred_set_rk
	fido_cred_set_authdata fido_cred_set_rp
	fido_cred_set_authdata fido_cred_set_sig
	fido_cred_set_authdata fido_cred_set_type
	fido_cred_set_authdata fido_cred_set_user
	fido_cred_set_authdata fido_cred_set_uv
	fido_cred_set_authdata fido_cred_set_x509
	fido_dev_info_manifest fido_dev_info_free
	fido_dev_info_manifest fido_dev_info_manufacturer_string
	fido_dev_info_manifest fido_dev_info_new
	fido_dev_info_manifest fido_dev_info_path
	fido_dev_info_manifest fido_dev_info_product
	fido_dev_info_manifest fido_dev_info_product_string
	fido_dev_info_manifest fido_dev_info_ptr
	fido_dev_info_manifest fido_dev_info_vendor
	fido_dev_open fido_dev_build
	fido_dev_open fido_dev_cancel
	fido_dev_open fido_dev_close
	fido_dev_open fido_dev_flags
	fido_dev_open fido_dev_force_fido2
	fido_dev_open fido_dev_force_u2f
	fido_dev_open fido_dev_free
	fido_dev_open fido_dev_is_fido2
	fido_dev_open fido_dev_major
	fido_dev_open fido_dev_minor
	fido_dev_open fido_dev_new
	fido_dev_open fido_dev_protocol
	fido_dev_set_pin fido_dev_get_retry_count
	fido_dev_set_pin fido_dev_reset
	rs256_pk_new rs256_pk_free
	rs256_pk_new rs256_pk_from_ptr
	rs256_pk_new rs256_pk_from_RSA
	rs256_pk_new rs256_pk_to_EVP_PKEY
)

list(LENGTH MAN_ALIAS MAN_ALIAS_LEN)
math(EXPR MAN_ALIAS_MAX "${MAN_ALIAS_LEN} - 2")

# man_copy
foreach(f ${MAN_SOURCES})
	add_custom_command(OUTPUT ${f}
		COMMAND cp -f ${CMAKE_SOURCE_DIR}/man/${f} .
		DEPENDS ${f})
	list(APPEND COPY_FILES ${f})
endforeach()

# man_lint
foreach(f ${MAN_SOURCES})
	add_custom_command(OUTPUT ${f}.lint
		COMMAND mandoc -T lint -W warning ${f} > ${f}.lint
		DEPENDS ${f})
	list(APPEND LINT_FILES ${f}.lint)
endforeach()

# man_html
foreach(f ${MAN_SOURCES})
	string(REGEX REPLACE ".[13]" "" g ${f})
	add_custom_command(OUTPUT ${g}.html
		COMMAND mandoc -T html -O man="%N.html",style=style.css -I os="Yubico AB" ${f} > ${g}.html
		DEPENDS ${f})
	list(APPEND HTML_FILES ${g}.html)
endforeach()

# man_html_partial
foreach(f ${MAN_SOURCES})
	string(REGEX REPLACE ".[13]" "" g ${f})
	add_custom_command(OUTPUT ${g}.partial
		COMMAND cat ${CMAKE_SOURCE_DIR}/man/dyc.css > ${g}.partial
		COMMAND mandoc -T html -O man="%N.html",fragment ${f} >> ${g}.partial
		DEPENDS ${f})
	list(APPEND HTML_PARTIAL_FILES ${g}.partial)
endforeach()

# man_gzip
foreach(f ${MAN_SOURCES})
	add_custom_command(OUTPUT ${f}.gz
		COMMAND gzip -c ${f} > ${f}.gz
		DEPENDS ${f})
	list(APPEND GZ_FILES ${f}.gz)
endforeach()

macro(define_symlink_target NAME EXT)
	foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
		math(EXPR j "${i} + 1")
		list(GET MAN_ALIAS ${i} SRC)
		list(GET MAN_ALIAS ${j} DST)
		add_custom_command(OUTPUT ${DST}.${EXT}
			COMMAND ln -sf ${SRC}.${EXT} ${DST}.${EXT})
		list(APPEND ${NAME}_LINK_FILES ${DST}.${EXT})
	endforeach()
	add_custom_target(${NAME} DEPENDS ${${NAME}_LINK_FILES})
endmacro()

add_custom_target(man_copy DEPENDS ${COPY_FILES})
add_custom_target(man_lint DEPENDS ${LINT_FILES})
add_custom_target(man_html DEPENDS ${HTML_FILES})
add_custom_target(man_html_partial DEPENDS ${HTML_PARTIAL_FILES})
add_custom_target(man_gzip DEPENDS ${GZ_FILES})

define_symlink_target(man_symlink 3)
define_symlink_target(man_symlink_html html)
define_symlink_target(man_symlink_html_partial partial)
define_symlink_target(man_symlink_gzip 3.gz)

add_dependencies(man_symlink man_copy)
add_dependencies(man_lint man_symlink)
add_dependencies(man_html man_lint)
add_dependencies(man_symlink_html man_html)
add_dependencies(man_html_partial man_lint)
add_dependencies(man_symlink_html_partial man_html_partial)
add_custom_target(man ALL)

if(MANDOC_PATH)
	add_dependencies(man man_symlink_html)
	add_dependencies(man_gzip man_lint)
	install(FILES ${CMAKE_SOURCE_DIR}/man/style.css
		DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")
	foreach(f ${MAN_SOURCES})
		string(REGEX REPLACE ".[13]" "" f ${f})
		install(FILES ${CMAKE_BINARY_DIR}/man/${f}.html
			DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")
	endforeach()
	foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
		math(EXPR j "${i} + 1")
		list(GET MAN_ALIAS ${j} DST)
		install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.html
			DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")
	endforeach()
endif()

if(GZIP_PATH)
	add_dependencies(man_gzip man_copy)
	add_dependencies(man_symlink_gzip man_gzip)
	add_dependencies(man man_symlink_gzip)
	foreach(f ${MAN_SOURCES})
		if (${f} MATCHES ".1$")
			install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz
				DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
		elseif(${f} MATCHES ".3$")
			install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz
				DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
		endif()
	endforeach()
	foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
		math(EXPR j "${i} + 1")
		list(GET MAN_ALIAS ${j} DST)
		install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3.gz
			DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
	endforeach()
elseif(NOT MSVC)
	add_dependencies(man man_symlink)
	foreach(f ${MAN_SOURCES})
		if (${f} MATCHES ".1$")
			install(FILES ${CMAKE_BINARY_DIR}/man/${f}
				DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
		elseif(${f} MATCHES ".3$")
			install(FILES ${CMAKE_BINARY_DIR}/man/${f}
				DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
		endif()
	endforeach()
	foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
		math(EXPR j "${i} + 1")
		list(GET MAN_ALIAS ${j} DST)
		install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3
			DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
	endforeach()
endif()
@


