Skip to content

Commit 2c13cbc

Browse files
committed
Merge tag 'tags/1.15.0'
release 1.15.0
2 parents 52bb909 + f87c19c commit 2c13cbc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+1415
-326
lines changed

.actions/build-bsd

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ cat > "${MANIFEST}" <<- EOF
1515
image: ${IMAGE}
1616
packages:
1717
- cmake
18-
- llvm
18+
- llvm${LLVM_VERSION:+%${LLVM_VERSION}}
1919
- pcsc-lite
2020
EOF
2121

@@ -38,7 +38,7 @@ tasks:
3838
else
3939
SUDO=sudo
4040
fi
41-
SCAN="/usr/local/bin/scan-build --use-cc=/usr/bin/cc --status-bugs"
41+
SCAN="/usr/local/bin/scan-build${LLVM_VERSION:+-${LLVM_VERSION}} --use-cc=/usr/bin/cc --status-bugs"
4242
cd libfido2
4343
for T in Debug Release; do
4444
mkdir build-\$T

.actions/build-linux-i686-w64-mingw32-gcc

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/sh -eux
22

3-
# Copyright (c) 2022-2023 Yubico AB. All rights reserved.
3+
# Copyright (c) 2022-2024 Yubico AB. All rights reserved.
44
# Use of this source code is governed by a BSD-style
55
# license that can be found in the LICENSE file.
66
# SPDX-License-Identifier: BSD-2-Clause
@@ -23,7 +23,7 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
2323
EOF
2424

2525
# Build and install libcbor.
26-
git clone --depth=1 https://github.com/pjk/libcbor -b v0.10.1
26+
git clone --depth=1 https://github.com/pjk/libcbor -b v0.11.0
2727
cd libcbor
2828
mkdir build
2929
(cd build && cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/mingw.cmake \
@@ -42,7 +42,7 @@ sudo make install_sw
4242
cd ..
4343

4444
# Build and install zlib.
45-
git clone --depth=1 https://github.com/madler/zlib -b v1.3
45+
git clone --depth=1 https://github.com/madler/zlib -b v1.3.1
4646
cd zlib
4747
make -fwin32/Makefile.gcc PREFIX=i686-w64-mingw32-
4848
sudo make -fwin32/Makefile.gcc PREFIX=i686-w64-mingw32- DESTDIR=/fakeroot \

.actions/build-linux-openssl3-clang

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/sh -eux
22

3-
# Copyright (c) 2022 Yubico AB. All rights reserved.
3+
# Copyright (c) 2022-2024 Yubico AB. All rights reserved.
44
# Use of this source code is governed by a BSD-style
55
# license that can be found in the LICENSE file.
66
# SPDX-License-Identifier: BSD-2-Clause
@@ -12,8 +12,8 @@ FAKEROOT="$(mktemp -d)"
1212
# Check exports.
1313
(cd src && ./diff_exports.sh)
1414

15-
# Build and install OpenSSL 3.0.12.
16-
git clone --branch openssl-3.0.12 \
15+
# Build and install OpenSSL 3.0.14.
16+
git clone --branch openssl-3.0.14 \
1717
--depth=1 https://github.com/openssl/openssl
1818
cd openssl
1919
./Configure linux-x86_64-clang --prefix="${FAKEROOT}" \

.actions/build-linux-openssl3-gcc

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
#!/bin/sh -eux
22

3-
# Copyright (c) 2022 Yubico AB. All rights reserved.
3+
# Copyright (c) 2022-2024 Yubico AB. All rights reserved.
44
# Use of this source code is governed by a BSD-style
55
# license that can be found in the LICENSE file.
66
# SPDX-License-Identifier: BSD-2-Clause
77

88
${CC} --version
99
FAKEROOT="$(mktemp -d)"
1010

11-
# Build and install OpenSSL 3.0.12.
12-
git clone --branch openssl-3.0.12 \
11+
# Build and install OpenSSL 3.0.14.
12+
git clone --branch openssl-3.0.14 \
1313
--depth=1 https://github.com/openssl/openssl
1414
cd openssl
1515
./Configure linux-x86_64 --prefix="${FAKEROOT}" \

.actions/build-linux-openssl3-i686-w64-mingw32-gcc

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/sh -eux
22

3-
# Copyright (c) 2022-2023 Yubico AB. All rights reserved.
3+
# Copyright (c) 2022-2024 Yubico AB. All rights reserved.
44
# Use of this source code is governed by a BSD-style
55
# license that can be found in the LICENSE file.
66
# SPDX-License-Identifier: BSD-2-Clause
@@ -23,7 +23,7 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
2323
EOF
2424

2525
# Build and install libcbor.
26-
git clone --depth=1 https://github.com/pjk/libcbor -b v0.10.1
26+
git clone --depth=1 https://github.com/pjk/libcbor -b v0.11.0
2727
cd libcbor
2828
mkdir build
2929
(cd build && cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/mingw.cmake \
@@ -32,8 +32,8 @@ make -j"$(nproc)" -C build
3232
sudo make -C build install
3333
cd ..
3434

35-
# Build and install OpenSSL 3.0.11.
36-
git clone --branch openssl-3.0.12 \
35+
# Build and install OpenSSL 3.0.14.
36+
git clone --branch openssl-3.0.14 \
3737
--depth=1 https://github.com/openssl/openssl
3838
cd openssl
3939
./Configure mingw --prefix=/fakeroot --openssldir=/fakeroot/openssl \
@@ -43,7 +43,7 @@ sudo make install_sw
4343
cd ..
4444

4545
# Build and install zlib.
46-
git clone --depth=1 https://github.com/madler/zlib -b v1.3
46+
git clone --depth=1 https://github.com/madler/zlib -b v1.3.1
4747
cd zlib
4848
make -fwin32/Makefile.gcc PREFIX=i686-w64-mingw32-
4949
sudo make -fwin32/Makefile.gcc PREFIX=i686-w64-mingw32- DESTDIR=/fakeroot \

.actions/fuzz-linux

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
#!/bin/sh -eux
22

3-
# Copyright (c) 2020-2022 Yubico AB. All rights reserved.
3+
# Copyright (c) 2020-2024 Yubico AB. All rights reserved.
44
# Use of this source code is governed by a BSD-style
55
# license that can be found in the LICENSE file.
66
# SPDX-License-Identifier: BSD-2-Clause
77

88
LIBCBOR_URL="https://github.com/pjk/libcbor"
9-
LIBCBOR_TAG="v0.10.2"
9+
LIBCBOR_TAG="v0.11.0"
1010
LIBCBOR_ASAN="address alignment bounds"
1111
LIBCBOR_MSAN="memory"
1212
OPENSSL_URL="https://github.com/openssl/openssl"
13-
OPENSSL_TAG="openssl-3.0.12"
13+
OPENSSL_TAG="openssl-3.0.14"
1414
ZLIB_URL="https://github.com/madler/zlib"
15-
ZLIB_TAG="v1.3"
15+
ZLIB_TAG="v1.3.1"
1616
ZLIB_ASAN="address alignment bounds undefined"
1717
ZLIB_MSAN="memory"
1818
FIDO2_ASAN="address bounds fuzzer-no-link implicit-conversion leak"
@@ -63,6 +63,7 @@ git clone --depth=1 "${OPENSSL_URL}" -b "${OPENSSL_TAG}"
6363
cd openssl
6464
./Configure linux-x86_64-clang "enable-$1" --prefix="${FAKEROOT}" \
6565
--openssldir="${FAKEROOT}/openssl" --libdir=lib
66+
make -j"$(nproc)" build_sw
6667
make install_sw
6768
cd -
6869

@@ -71,7 +72,7 @@ git clone --depth=1 "${ZLIB_URL}" -b "${ZLIB_TAG}"
7172
cd zlib
7273
CFLAGS="${ZLIB_CFLAGS}" LDFLAGS="${ZLIB_CFLAGS}" ./configure \
7374
--prefix="${FAKEROOT}"
74-
make install
75+
make -j"$(nproc)" install
7576
cd -
7677

7778
# libfido2
@@ -87,7 +88,7 @@ mkdir corpus
8788
curl -s https://storage.googleapis.com/yubico-libfido2/corpus.tgz |
8889
tar -C corpus -zxf -
8990
export UBSAN_OPTIONS ASAN_OPTIONS MSAN_OPTIONS
90-
for f in assert bio cred credman hid largeblob mgmt netlink pcsc; do
91+
for f in assert attobj bio cred credman hid largeblob mgmt netlink pcsc; do
9192
build/fuzz/fuzz_${f} -use_value_profile=1 -reload=30 -print_pcs=1 \
9293
-print_funcs=30 -timeout=10 -runs=1 corpus/fuzz_${f}
9394
done

.github/workflows/alpine_builds.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ on:
1616

1717
jobs:
1818
build:
19-
runs-on: ubuntu-20.04
19+
runs-on: ubuntu-22.04
2020
container: alpine:latest
2121
strategy:
2222
fail-fast: false

.github/workflows/bsd_builds.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ jobs:
1818
strategy:
1919
fail-fast: false
2020
matrix:
21-
image: [freebsd/13.x, openbsd/7.2]
21+
include:
22+
- { image: freebsd/14.x }
23+
- { image: openbsd/7.4, llvm_version: 16 }
2224
steps:
2325
- uses: actions/checkout@v4
2426
- name: dependencies
@@ -27,6 +29,7 @@ jobs:
2729
sudo apt install -q -y curl jq
2830
- name: build
2931
env:
32+
LLVM_VERSION: ${{ matrix.llvm_version }}
3033
IMAGE: ${{ matrix.image }}
3134
SOURCEHUT_TOKEN: ${{ secrets.SOURCEHUT_TOKEN }}
3235
run: ./.actions/build-bsd

.github/workflows/cifuzz_oss.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ on:
1717
jobs:
1818
fuzzing:
1919
if: github.repository == 'Yubico/libfido2'
20-
runs-on: ubuntu-20.04
20+
runs-on: ubuntu-22.04
2121
strategy:
2222
fail-fast: false
2323
matrix:

.github/workflows/linux_builds.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ jobs:
2626
- { os: ubuntu-22.04, cc: gcc-10 }
2727
- { os: ubuntu-22.04, cc: gcc-11 }
2828
- { os: ubuntu-22.04, cc: gcc-12 }
29-
- { os: ubuntu-22.04, cc: clang-13 }
30-
- { os: ubuntu-22.04, cc: clang-14 }
3129
- { os: ubuntu-22.04, cc: clang-15 }
3230
- { os: ubuntu-22.04, cc: clang-16 }
31+
- { os: ubuntu-22.04, cc: clang-17 }
32+
- { os: ubuntu-22.04, cc: clang-18 }
3333
- { os: ubuntu-20.04, cc: i686-w64-mingw32-gcc-9 }
3434
- { os: ubuntu-22.04, cc: i686-w64-mingw32-gcc-10 }
3535
steps:

.github/workflows/linux_fuzz.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
fail-fast: false
2222
matrix:
2323
os: [ ubuntu-22.04 ]
24-
cc: [ clang-16 ]
24+
cc: [ clang-18 ]
2525
sanitizer: [ asan, msan ]
2626
steps:
2727
- uses: actions/checkout@v4

.github/workflows/macos_builds.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@ jobs:
2020
strategy:
2121
fail-fast: false
2222
matrix:
23-
os: [ macos-13, macos-12 ]
23+
os: [ macos-14, macos-13, macos-12 ]
2424
cc: [ clang ]
2525
steps:
2626
- uses: actions/checkout@v4
2727
- name: dependencies
28+
env:
29+
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
2830
run: brew install libcbor llvm mandoc openssl@3.0 pkg-config zlib
2931
- name: build
3032
env:

.github/workflows/openssl3.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ jobs:
2222
matrix:
2323
include:
2424
- os: ubuntu-22.04
25-
cc: gcc-11
25+
cc: gcc-12
2626
- os: ubuntu-22.04
27-
cc: clang-16
27+
cc: clang-18
2828
- os: ubuntu-22.04
2929
cc: i686-w64-mingw32-gcc-10
3030
steps:

CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
2929
set(CMAKE_COLOR_MAKEFILE OFF)
3030
set(CMAKE_VERBOSE_MAKEFILE ON)
3131
set(FIDO_MAJOR "1")
32-
set(FIDO_MINOR "14")
32+
set(FIDO_MINOR "15")
3333
set(FIDO_PATCH "0")
3434
set(FIDO_VERSION ${FIDO_MAJOR}.${FIDO_MINOR}.${FIDO_PATCH})
3535

@@ -487,7 +487,7 @@ endif()
487487
if(BUILD_TOOLS)
488488
add_subdirectory(tools)
489489
endif()
490-
if(BUILD_MANPAGES)
490+
if(BUILD_MANPAGES AND NOT MSVC)
491491
add_subdirectory(man)
492492
endif()
493493

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2018-2023 Yubico AB. All rights reserved.
1+
Copyright (c) 2018-2024 Yubico AB. All rights reserved.
22

33
Redistribution and use in source and binary forms, with or without
44
modification, are permitted provided that the following conditions are

NEWS

+15-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
1+
* Version 1.15.0 (2024-06-13)
2+
** 1.15.0 will be the last release to support OpenSSL 1.1.
3+
** bio, credman: improved CTAP 2.1 support.
4+
** hid_osx: fix issue where fido_hid_read() may block unnecessarily; gh#757.
5+
** fido2-token -I: print maxcredbloblen.
6+
** hid_linux: improved support for uhid devices.
7+
** New API calls:
8+
- fido_cred_set_attobj;
9+
- fido_cred_x5c_list_count;
10+
- fido_cred_x5c_list_len;
11+
- fido_cred_x5c_list_ptr.
12+
113
* Version 1.14.0 (2023-11-13)
214
** fido2-cred -M, fido2-token -G: support raw client data via -w flag.
315
** winhello: support U2F AppID extension for assertions.
416
** winhello: fix restrictive parsing of the hmac-secret on assertions.
517
** winhello: translate NTE_USER_CANCELLED to FIDO_ERR_OPERATION_DENIED; gh#685.
618
** New API calls:
7-
** fido_assert_authdata_raw_len;
8-
** fido_assert_authdata_raw_ptr;
9-
** fido_assert_set_winhello_appid.
19+
- fido_assert_authdata_raw_len;
20+
- fido_assert_authdata_raw_ptr;
21+
- fido_assert_set_winhello_appid.
1022

1123
* Version 1.13.0 (2023-02-20)
1224
** Support for linking against OpenSSL on Windows; gh#668.

README.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ is also available.
3838

3939
=== Releases
4040

41-
The current release of *libfido2* is 1.14.0. Signed release tarballs are
41+
The current release of *libfido2* is 1.15.0. Signed release tarballs are
4242
available at Yubico's
4343
https://developers.yubico.com/libfido2/Releases[release page].
4444

SECURITY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
To report security issues in libfido2, please contact security@yubico.com.
44
A PGP public key can be found at
5-
https://www.yubico.com/support/security-advisories/issue-rating-system/.
5+
https://www.yubico.com/support/issue-rating-system/.

fuzz/CMakeLists.txt

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2019-2023 Yubico AB. All rights reserved.
1+
# Copyright (c) 2019-2024 Yubico AB. All rights reserved.
22
# Use of this source code is governed by a BSD-style
33
# license that can be found in the LICENSE file.
44
# SPDX-License-Identifier: BSD-2-Clause
@@ -80,3 +80,10 @@ set_target_properties(fuzz_pcsc PROPERTIES
8080
LINK_FLAGS ${FUZZ_LDFLAGS}
8181
LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
8282
target_link_libraries(fuzz_pcsc fido2_shared)
83+
84+
# fuzz_attobj
85+
add_executable(fuzz_attobj fuzz_attobj.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
86+
set_target_properties(fuzz_attobj PROPERTIES
87+
LINK_FLAGS ${FUZZ_LDFLAGS}
88+
LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
89+
target_link_libraries(fuzz_attobj fido2_shared)

fuzz/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ RUN apk -q update
1010
RUN apk add build-base clang clang-analyzer cmake compiler-rt coreutils
1111
RUN apk add eudev-dev git linux-headers llvm openssl-dev pcsc-lite-dev
1212
RUN apk add sudo tar zlib-dev
13-
RUN git clone --branch v0.10.2 --depth=1 https://github.com/PJK/libcbor
13+
RUN git clone --branch v0.11.0 --depth=1 https://github.com/PJK/libcbor
1414
RUN git clone --depth=1 https://github.com/yubico/libfido2
1515
WORKDIR /libfido2
1616
RUN ./fuzz/build-coverage /libcbor /libfido2

fuzz/Makefile

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
# license that can be found in the LICENSE file.
44
# SPDX-License-Identifier: BSD-2-Clause
55

6-
IMAGE := libfido2-coverage:1.14.0
6+
IMAGE := libfido2-coverage:1.15.0
77
RUNNER := libfido2-runner
88
PROFDATA := llvm-profdata
99
COV := llvm-cov
10-
TARGETS := fuzz_assert fuzz_bio fuzz_cred fuzz_credman fuzz_hid \
11-
fuzz_largeblob fuzz_netlink fuzz_mgmt fuzz_pcsc
10+
TARGETS := fuzz_assert fuzz_attobj fuzz_bio fuzz_cred fuzz_credman \
11+
fuzz_hid fuzz_largeblob fuzz_netlink fuzz_mgmt fuzz_pcsc
1212
CORPORA := $(foreach f,${TARGETS},${f}/corpus)
1313
MINIFY := $(foreach f,${TARGETS},/minify/${f}/corpus)
1414
REMOTE := gs://libfido2-corpus.clusterfuzz-external.appspot.com

fuzz/export.gnu

+4
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@
166166
fido_cred_rp_id;
167167
fido_cred_rp_name;
168168
fido_cred_set_attstmt;
169+
fido_cred_set_attobj;
169170
fido_cred_set_authdata;
170171
fido_cred_set_authdata_raw;
171172
fido_cred_set_blob;
@@ -193,6 +194,9 @@
193194
fido_cred_verify;
194195
fido_cred_verify_self;
195196
fido_cred_x5c_len;
197+
fido_cred_x5c_list_count;
198+
fido_cred_x5c_list_len;
199+
fido_cred_x5c_list_ptr;
196200
fido_cred_x5c_ptr;
197201
fido_dev_build;
198202
fido_dev_cancel;

0 commit comments

Comments
 (0)