From cd0b1b947d7afe02b6deaa176ae6767f25818f1b Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Wed, 26 Apr 2023 12:39:46 -0400 Subject: [PATCH] Vendor import of libfido2 1.11.0 --- CMakeLists.txt | 65 ++++-- NEWS | 11 + README.adoc | 123 +++++++--- examples/CMakeLists.txt | 11 - examples/info.c | 15 +- examples/select.c | 4 +- examples/setpin.c | 2 +- fuzz/CMakeLists.txt | 6 + fuzz/Dockerfile | 16 +- fuzz/Makefile | 25 +- fuzz/dummy.h | 4 +- fuzz/export.gnu | 14 +- fuzz/functions.txt | 242 +++++++++++--------- fuzz/fuzz_mgmt.c | 5 +- fuzz/fuzz_pcsc.c | 266 ++++++++++++++++++++++ fuzz/mutator_aux.c | 9 +- fuzz/mutator_aux.h | 12 +- fuzz/pcsc.c | 152 +++++++++++++ fuzz/report.tgz | Bin 323706 -> 341098 bytes fuzz/summary.txt | 64 +++--- fuzz/wiredata_fido2.h | 76 ++++++- fuzz/wrap.c | 51 ++++- fuzz/wrapped.sym | 9 + man/CMakeLists.txt | 27 +-- man/fido2-token.1 | 24 +- man/fido_assert_new.3 | 6 +- man/fido_assert_set_authdata.3 | 6 +- man/fido_cbor_info_new.3 | 13 +- man/fido_dev_enable_entattest.3 | 4 +- man/fido_dev_info_manifest.3 | 4 +- openbsd-compat/bsd-asprintf.c | 88 ++++++++ openbsd-compat/openbsd-compat.h | 4 + regress/CMakeLists.txt | 39 +++- regress/assert.c | 13 +- regress/compress.c | 267 ++++++++++++++++++++++ regress/cred.c | 14 +- regress/dev.c | 42 +++- regress/eddsa.c | 158 +++++++++++++ regress/es256.c | 198 ++++++++++++++++ regress/rs256.c | 200 ++++++++++++++++ src/CMakeLists.txt | 22 +- src/compress.c | 144 ++++++++++-- src/dev.c | 228 +++---------------- src/eddsa.c | 11 + src/es256.c | 65 ++++-- src/export.gnu | 3 +- src/export.llvm | 3 +- src/export.msvc | 3 +- src/extern.h | 22 +- src/fido.h | 5 +- src/fido/types.h | 31 +-- src/hid_freebsd.c | 8 +- src/hid_openbsd.c | 100 ++++---- src/hid_osx.c | 25 +- src/info.c | 8 + src/nfc.c | 320 ++++++++++++++++++++++++++ src/nfc_linux.c | 374 ++++-------------------------- src/pcsc.c | 389 ++++++++++++++++++++++++++++++++ src/rs1.c | 2 +- src/rs256.c | 28 ++- src/touch.c | 108 +++++++++ src/util.c | 30 +++ src/webauthn.h | 75 +++++- src/winhello.c | 90 +++++++- tools/CMakeLists.txt | 7 - tools/token.c | 9 + udev/70-u2f.rules | 3 + udev/fidodevs | 1 + windows/build.ps1 | 26 +-- windows/const.ps1 | 6 +- windows/cygwin.ps1 | 1 + windows/release.ps1 | 20 +- 72 files changed, 3466 insertions(+), 990 deletions(-) create mode 100644 fuzz/fuzz_pcsc.c create mode 100644 fuzz/pcsc.c create mode 100644 openbsd-compat/bsd-asprintf.c create mode 100644 regress/compress.c create mode 100644 regress/eddsa.c create mode 100644 regress/es256.c create mode 100644 regress/rs256.c create mode 100644 src/nfc.c create mode 100644 src/pcsc.c create mode 100644 src/touch.c create mode 100644 src/util.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 11a51ac5a64..2f10727d40e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2018-2021 Yubico AB. All rights reserved. +# Copyright (c) 2018-2022 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. @@ -28,18 +28,19 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_COLOR_MAKEFILE OFF) set(CMAKE_VERBOSE_MAKEFILE ON) set(FIDO_MAJOR "1") -set(FIDO_MINOR "10") +set(FIDO_MINOR "11") set(FIDO_PATCH "0") set(FIDO_VERSION ${FIDO_MAJOR}.${FIDO_MINOR}.${FIDO_PATCH}) option(BUILD_EXAMPLES "Build example programs" ON) option(BUILD_MANPAGES "Build man pages" ON) -option(BUILD_SHARED_LIBS "Build the shared library" ON) -option(BUILD_STATIC_LIBS "Build the static library" ON) +option(BUILD_SHARED_LIBS "Build a shared library" ON) +option(BUILD_STATIC_LIBS "Build a static library" ON) option(BUILD_TOOLS "Build tool programs" ON) option(FUZZ "Enable fuzzing instrumentation" OFF) option(LIBFUZZER "Build libfuzzer harnesses" OFF) option(USE_HIDAPI "Use hidapi as the HID backend" OFF) +option(USE_PCSC "Enable experimental PCSC support" OFF) option(USE_WINHELLO "Abstract Windows Hello as a FIDO device" ON) option(NFC_LINUX "Enable NFC support on Linux" ON) @@ -91,6 +92,7 @@ check_include_files(sys/random.h HAVE_SYS_RANDOM_H) check_include_files(unistd.h HAVE_UNISTD_H) check_symbol_exists(arc4random_buf stdlib.h HAVE_ARC4RANDOM_BUF) +check_symbol_exists(asprintf stdio.h HAVE_ASPRINTF) check_symbol_exists(clock_gettime time.h HAVE_CLOCK_GETTIME) check_symbol_exists(explicit_bzero string.h HAVE_EXPLICIT_BZERO) check_symbol_exists(freezero stdlib.h HAVE_FREEZERO) @@ -116,6 +118,7 @@ try_compile(HAVE_POSIX_IOCTL list(APPEND CHECK_VARIABLES HAVE_ARC4RANDOM_BUF + HAVE_ASPRINTF HAVE_CBOR_H HAVE_CLOCK_GETTIME HAVE_ENDIAN_H @@ -166,8 +169,8 @@ if(MSVC) "building under msvc") endif() set(CBOR_LIBRARIES cbor) - set(ZLIB_LIBRARIES zlib) - set(CRYPTO_LIBRARIES crypto-47) + set(ZLIB_LIBRARIES zlib1) + set(CRYPTO_LIBRARIES crypto-49) set(MSVC_DISABLED_WARNINGS_LIST "C4152" # nonstandard extension used: function/data pointer # conversion in expression; @@ -237,6 +240,17 @@ else() add_compile_options(-Wno-unused-parameter) endif() + if(FUZZ) + set(USE_PCSC ON) + add_definitions(-DFIDO_FUZZ) + endif() + + # If building with PCSC, look for pcsc-lite. + if(USE_PCSC AND NOT (APPLE OR CYGWIN OR MSYS OR MINGW)) + pkg_search_module(PCSC libpcsclite REQUIRED) + set(PCSC_LIBRARIES pcsclite) + endif() + if(USE_HIDAPI) add_definitions(-DUSE_HIDAPI) pkg_search_module(HIDAPI hidapi${HIDAPI_SUFFIX} REQUIRED) @@ -244,7 +258,7 @@ else() endif() if(NFC_LINUX) - add_definitions(-DNFC_LINUX) + add_definitions(-DUSE_NFC) endif() if(WIN32) @@ -285,10 +299,6 @@ else() add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) endif() - if(FUZZ) - add_definitions(-DFIDO_FUZZ) - endif() - if(LIBFUZZER) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=fuzzer-no-link") endif() @@ -309,6 +319,10 @@ elseif(WIN32) endif() add_definitions(-DTLS=${TLS}) +if(USE_PCSC) + add_definitions(-DUSE_PCSC) +endif() + # export list if(APPLE AND (CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")) @@ -345,16 +359,18 @@ else() " /def:\"${CMAKE_CURRENT_SOURCE_DIR}/src/export.msvc\"") endif() -include_directories(${CMAKE_SOURCE_DIR}/src) +include_directories(${PROJECT_SOURCE_DIR}/src) include_directories(${CBOR_INCLUDE_DIRS}) include_directories(${CRYPTO_INCLUDE_DIRS}) include_directories(${HIDAPI_INCLUDE_DIRS}) +include_directories(${PCSC_INCLUDE_DIRS}) include_directories(${UDEV_INCLUDE_DIRS}) include_directories(${ZLIB_INCLUDE_DIRS}) link_directories(${CBOR_LIBRARY_DIRS}) link_directories(${CRYPTO_LIBRARY_DIRS}) link_directories(${HIDAPI_LIBRARY_DIRS}) +link_directories(${PCSC_LIBRARY_DIRS}) link_directories(${UDEV_LIBRARY_DIRS}) link_directories(${ZLIB_LIBRARY_DIRS}) @@ -372,9 +388,14 @@ message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}") message(STATUS "CMAKE_C_COMPILER_ID: ${CMAKE_C_COMPILER_ID}") message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") +message(STATUS "CMAKE_CROSSCOMPILING: ${CMAKE_CROSSCOMPILING}") +message(STATUS "CMAKE_GENERATOR_PLATFORM: ${CMAKE_GENERATOR_PLATFORM}") +message(STATUS "CMAKE_HOST_SYSTEM_NAME: ${CMAKE_HOST_SYSTEM_NAME}") +message(STATUS "CMAKE_HOST_SYSTEM_PROCESSOR: ${CMAKE_HOST_SYSTEM_PROCESSOR}") message(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}") message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") message(STATUS "CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}") +message(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") message(STATUS "CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}") message(STATUS "CRYPTO_INCLUDE_DIRS: ${CRYPTO_INCLUDE_DIRS}") message(STATUS "CRYPTO_LIBRARIES: ${CRYPTO_LIBRARIES}") @@ -392,6 +413,10 @@ if(USE_HIDAPI) message(STATUS "HIDAPI_LIBRARY_DIRS: ${HIDAPI_LIBRARY_DIRS}") message(STATUS "HIDAPI_VERSION: ${HIDAPI_VERSION}") endif() +message(STATUS "PCSC_INCLUDE_DIRS: ${PCSC_INCLUDE_DIRS}") +message(STATUS "PCSC_LIBRARIES: ${PCSC_LIBRARIES}") +message(STATUS "PCSC_LIBRARY_DIRS: ${PCSC_LIBRARY_DIRS}") +message(STATUS "PCSC_VERSION: ${PCSC_VERSION}") message(STATUS "LIBFUZZER: ${LIBFUZZER}") message(STATUS "TLS: ${TLS}") message(STATUS "UDEV_INCLUDE_DIRS: ${UDEV_INCLUDE_DIRS}") @@ -400,10 +425,22 @@ message(STATUS "UDEV_LIBRARY_DIRS: ${UDEV_LIBRARY_DIRS}") message(STATUS "UDEV_RULES_DIR: ${UDEV_RULES_DIR}") message(STATUS "UDEV_VERSION: ${UDEV_VERSION}") message(STATUS "USE_HIDAPI: ${USE_HIDAPI}") +message(STATUS "USE_PCSC: ${USE_PCSC}") message(STATUS "USE_WINHELLO: ${USE_WINHELLO}") message(STATUS "NFC_LINUX: ${NFC_LINUX}") +if(BUILD_SHARED_LIBS) + set(_FIDO2_LIBRARY fido2_shared) +elseif(BUILD_STATIC_LIBS) + set(_FIDO2_LIBRARY fido2) +else() + message(FATAL_ERROR "Nothing to build (BUILD_*_LIBS=OFF)") +endif() + +enable_testing() + subdirs(src) +subdirs(regress) if(BUILD_EXAMPLES) subdirs(examples) endif() @@ -415,10 +452,6 @@ if(BUILD_MANPAGES) endif() if(NOT WIN32) - if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT FUZZ) - enable_testing() - subdirs(regress) - endif() if(FUZZ) subdirs(fuzz) endif() diff --git a/NEWS b/NEWS index a48b685156c..f5bd414297d 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,14 @@ +* 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. diff --git a/README.adoc b/README.adoc index 114cc5eed76..c9cdafb5fea 100644 --- a/README.adoc +++ b/README.adoc @@ -7,7 +7,7 @@ image:https://github.com/yubico/libfido2/workflows/fuzzer/badge.svg["Fuzz Status image:https://oss-fuzz-build-logs.storage.googleapis.com/badges/libfido2.svg["Fuzz Status (oss-fuzz)", link="https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:libfido2"] *libfido2* provides library functionality and command-line tools to -communicate with a FIDO device over USB, and to verify attestation and +communicate with a FIDO device over USB or NFC, and to verify attestation and assertion signatures. *libfido2* supports the FIDO U2F (CTAP 1) and FIDO2 (CTAP 2) protocols. @@ -23,8 +23,6 @@ file for the full license text. *libfido2* is known to work on Linux, macOS, Windows, OpenBSD, and FreeBSD. -NFC support is available on Linux and Windows. - === Documentation Documentation is available in troff and HTML formats. An @@ -38,19 +36,29 @@ is also available. * Perl: https://github.com/jacquesg/p5-FIDO-Raw[p5-FIDO-Raw] * Rust: https://github.com/PvdBerg1998/libfido2[libfido2] +=== Releases + +The current release of *libfido2* is 1.11.0. Signed release tarballs are +available at Yubico's +https://developers.yubico.com/libfido2/Releases[release page]. + +=== Dependencies + +*libfido2* depends on https://github.com/pjk/libcbor[libcbor], +https://www.openssl.org[OpenSSL] 1.1 or newer, and https://zlib.net[zlib]. +On Linux, libudev +(part of https://www.freedesktop.org/wiki/Software/systemd[systemd]) is also +required. + === Installation -==== Releases +==== Fedora 35 and 34 -The current release of *libfido2* is 1.10.0. Please consult Yubico's -https://developers.yubico.com/libfido2/Releases[release page] for source -and binary releases. + $ sudo dnf install libfido2 libfido2-devel fido2-tools -==== Ubuntu 20.04 (Focal) +==== Ubuntu 22.04 (Jammy) and 20.04 (Focal) - $ sudo apt install libfido2-1 - $ sudo apt install libfido2-dev - $ sudo apt install libfido2-doc + $ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools Alternatively, newer versions of *libfido2* are available in Yubico's PPA. Follow the instructions for Ubuntu 18.04 (Bionic) below. @@ -60,33 +68,10 @@ Follow the instructions for Ubuntu 18.04 (Bionic) below. $ sudo apt install software-properties-common $ sudo apt-add-repository ppa:yubico/stable $ sudo apt update - $ sudo apt install libfido2-dev + $ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools -==== macOS - - $ brew install libfido2 - -Or from source, on UNIX-like systems: - - $ cmake -B build - $ make -C build - $ sudo make -C build install - -Depending on the platform, -https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] may need to -be installed, or the PKG_CONFIG_PATH environment variable set. - -*libfido2* depends on https://github.com/pjk/libcbor[libcbor], -https://www.openssl.org[OpenSSL] 1.1 or newer, and https://zlib.net[zlib]. -On Linux, libudev -(part of https://www.freedesktop.org/wiki/Software/systemd[systemd]) is also -required. - -For complete, OS-specific installation instructions, please refer to the -`.actions/` (Linux, macOS) and `windows/` directories. - -On Linux, you will need to add a udev rule to be able to access the FIDO -device, or run as root. For example, the udev rule may contain the following: +On Linux, you may need to add a udev rule to be able to access the FIDO +device. For example, the udev rule may contain the following: ---- #udev rule for allowing HID access to Yubico devices for FIDO support. @@ -94,3 +79,67 @@ device, or run as root. For example, the udev rule may contain the following: KERNEL=="hidraw*", SUBSYSTEM=="hidraw", \ MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="1050" ---- + +==== macOS + + $ brew install libfido2 + +==== Windows + +Please consult Yubico's +https://developers.yubico.com/libfido2/Releases[release page] for ARM, ARM64, +Win32, and Win64 artefacts. + +=== Building from source + +On UNIX-like systems: + + $ cmake -B build + $ make -C build + $ sudo make -C build install + +Depending on the platform, +https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] may need to +be installed, or the PKG_CONFIG_PATH environment variable set. For complete, +OS-specific build instructions, please refer to the `.actions/` +(Linux, macOS, BSD) and `windows/` directories. + +=== Build-time Customisation + +*libfido2* supports a number of CMake options. Some of the options require +additional dependencies. Options that are disabled by default are not +officially supported. + +[%autowidth.stretch] +|=== +|*Option* |*Description* |*Default* +| BUILD_EXAMPLES | Build example programs | ON +| BUILD_MANPAGES | Build man pages | ON +| BUILD_SHARED_LIBS | Build a shared library | ON +| BUILD_STATIC_LIBS | Build a static library | ON +| BUILD_TOOLS | Build auxiliary tools | ON +| FUZZ | Enable fuzzing instrumentation | OFF +| LIBFUZZER | Build libfuzzer harnesses | OFF +| NFC_LINUX | Enable netlink NFC support on Linux | ON +| USE_HIDAPI | Use hidapi as the HID backend | OFF +| USE_PCSC | Enable experimental PCSC support | OFF +| USE_WINHELLO | Abstract Windows Hello as a FIDO device | ON +|=== + +The USE_HIDAPI option requires https://github.com/libusb/hidapi[hidapi]. The +USE_PCSC option requires https://github.com/LudovicRousseau/PCSC[pcsc-lite] on +Linux. + +=== Development + +Please use https://github.com/Yubico/libfido2/discussions[GitHub Discussions] +to ask questions and suggest features, and +https://github.com/Yubico/libfido2/pulls[GitHub pull-requests] for code +contributions. + +=== Reporting bugs + +Please use https://github.com/Yubico/libfido2/issues[GitHub Issues] to report +bugs. To report security issues, please contact security@yubico.com. A PGP +public key can be found at +https://www.yubico.com/support/security-advisories/issue-rating-system/. diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index ad3d44faad6..e558b620fd6 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -13,17 +13,6 @@ if(WIN32 AND BUILD_SHARED_LIBS AND NOT CYGWIN AND NOT MSYS) list(APPEND COMPAT_SOURCES ../openbsd-compat/posix_win.c) endif() -# set the library to link against -if(BUILD_STATIC_LIBS) - # drop -rdynamic - set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") - set(_FIDO2_LIBRARY fido2) -elseif(BUILD_SHARED_LIBS) - set(_FIDO2_LIBRARY fido2_shared) -else() - set(_FIDO2_LIBRARY ${CRYPTO_LIBRARIES} fido2) -endif() - # enable -Wconversion -Wsign-conversion if(NOT MSVC) set_source_files_properties(assert.c cred.c info.c manifest.c reset.c diff --git a/examples/info.c b/examples/info.c index 72b786a8bd8..1098580eec6 100644 --- a/examples/info.c +++ b/examples/info.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 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. */ @@ -182,6 +182,16 @@ print_maxcredidlen(uint64_t maxcredidlen) printf("maxcredlen: %d\n", (int)maxcredidlen); } +/* + * Auxiliary function to print the maximum size of an authenticator's + * serialized largeBlob array. + */ +static void +print_maxlargeblob(uint64_t maxlargeblob) +{ + printf("maxlargeblob: %d\n", (int)maxlargeblob); +} + /* * Auxiliary function to print an authenticator's firmware version on stdout. */ @@ -264,6 +274,9 @@ getinfo(const char *path) /* print maximum length of a credential ID */ print_maxcredidlen(fido_cbor_info_maxcredidlen(ci)); + /* print maximum length of largeBlob array */ + print_maxlargeblob(fido_cbor_info_maxlargeblob(ci)); + /* print firmware version */ print_fwversion(fido_cbor_info_fwversion(ci)); diff --git a/examples/select.c b/examples/select.c index 6ede9b490a9..05f6a331fd4 100644 --- a/examples/select.c +++ b/examples/select.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 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. */ @@ -23,7 +23,7 @@ nanosleep(const struct timespec *rqtp, struct timespec *rmtp) return (-1); } - Sleep(rqtp->tv_nsec / 1000000); + Sleep((DWORD)(rqtp->tv_sec * 1000) + (DWORD)(rqtp->tv_nsec / 1000000)); return (0); } diff --git a/examples/setpin.c b/examples/setpin.c index 4b9e792769d..7fa0dcc764f 100644 --- a/examples/setpin.c +++ b/examples/setpin.c @@ -29,7 +29,7 @@ setpin(const char *path, const char *pin, const char *oldpin) errx(1, "fido_dev_open: %s (0x%x)", fido_strerr(r), r); if ((r = fido_dev_set_pin(dev, pin, oldpin)) != FIDO_OK) - errx(1, "fido_setpin: %s (0x%x)", fido_strerr(r), r); + errx(1, "fido_dev_set_pin: %s (0x%x)", fido_strerr(r), r); if ((r = fido_dev_close(dev)) != FIDO_OK) errx(1, "fido_dev_close: %s (0x%x)", fido_strerr(r), r); diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt index b1eebd55481..4b6fdfbfca4 100644 --- a/fuzz/CMakeLists.txt +++ b/fuzz/CMakeLists.txt @@ -61,3 +61,9 @@ add_executable(fuzz_largeblob fuzz_largeblob.c ${COMMON_SOURCES} ${COMPAT_SOURCE target_compile_options(fuzz_largeblob PRIVATE ${FUZZ_LDFLAGS}) set_target_properties(fuzz_largeblob PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) target_link_libraries(fuzz_largeblob fido2_shared) + +# fuzz_pcsc +add_executable(fuzz_pcsc fuzz_pcsc.c ${COMMON_SOURCES} ${COMPAT_SOURCES}) +target_compile_options(fuzz_pcsc PRIVATE ${FUZZ_LDFLAGS}) +set_target_properties(fuzz_pcsc PROPERTIES LINK_FLAGS ${FUZZ_LDFLAGS}) +target_link_libraries(fuzz_pcsc fido2_shared) diff --git a/fuzz/Dockerfile b/fuzz/Dockerfile index aefe1980ada..a899df2c3dd 100644 --- a/fuzz/Dockerfile +++ b/fuzz/Dockerfile @@ -1,12 +1,16 @@ -# Copyright (c) 2019-2021 Yubico AB. All rights reserved. +# Copyright (c) 2019-2022 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. FROM ubuntu:focal ENV DEBIAN_FRONTEND=noninteractive +ENV CC=clang-14 +ENV CXX=clang++-14 RUN apt-get update -RUN apt-get install -y clang-12 cmake git libssl-dev libudev-dev make pkg-config -RUN apt-get install -y zlib1g-dev -RUN git clone --branch v0.9.0 https://github.com/PJK/libcbor -RUN git clone https://github.com/yubico/libfido2 -RUN CC=clang-12 CXX=clang++-12 /libfido2/fuzz/build-coverage /libcbor /libfido2 +RUN apt-get install -y cmake git libssl-dev libudev-dev make pkg-config +RUN apt-get install -y libpcsclite-dev zlib1g-dev software-properties-common +RUN git clone --branch v0.9.0 --depth=1 https://github.com/PJK/libcbor +RUN git clone --depth=1 https://github.com/yubico/libfido2 +WORKDIR /libfido2 +RUN ./.actions/setup_clang "${CC}" +RUN ./fuzz/build-coverage /libcbor /libfido2 diff --git a/fuzz/Makefile b/fuzz/Makefile index ce3fee73c69..6abf59c3e69 100644 --- a/fuzz/Makefile +++ b/fuzz/Makefile @@ -1,13 +1,13 @@ -# Copyright (c) 2019-2021 Yubico AB. All rights reserved. +# Copyright (c) 2019-2022 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. -IMAGE := libfido2-coverage:1.10.0 +IMAGE := libfido2-coverage:1.11.2 RUNNER := libfido2-runner -PROFDATA := llvm-profdata-12 -COV := llvm-cov-12 +PROFDATA := llvm-profdata-14 +COV := llvm-cov-14 TARGETS := fuzz_assert fuzz_bio fuzz_cred fuzz_credman fuzz_hid \ - fuzz_largeblob fuzz_netlink fuzz_mgmt + fuzz_largeblob fuzz_netlink fuzz_mgmt fuzz_pcsc CORPORA := $(foreach f,${TARGETS},${f}/corpus) MINIFY := $(foreach f,${TARGETS},/minify/${f}/corpus) REMOTE := gs://libfido2-corpus.clusterfuzz-external.appspot.com @@ -24,7 +24,7 @@ run: build sync: run tar Ccf .. - src fuzz | docker exec -i ${RUNNER} tar Cxf /libfido2 - - docker exec ${RUNNER} make -C libfido2/build + docker exec ${RUNNER} make -C /libfido2/build corpus: sync docker exec ${RUNNER} /bin/sh -c 'cd /libfido2/fuzz && rm -rf ${TARGETS}' @@ -45,23 +45,24 @@ corpus.tgz-: ${MINIFY} profdata: run docker exec ${RUNNER} /bin/sh -c 'rm -f /$@ && ${PROFDATA} \ - merge -sparse profraw/* -o $@' + merge -sparse /profraw/* -o /$@' report.tgz: profdata docker exec ${RUNNER} /bin/sh -c 'rm -rf /report && mkdir /report && \ ${COV} show -format=html -tab-size=8 -instr-profile=/$< \ - --show-branch-summary=false -output-dir=/report \ - /libfido2/build/src/libfido2.so' + -ignore-filename-regex=pcsclite.h --show-branch-summary=false \ + -output-dir=/report /libfido2/build/src/libfido2.so' docker exec -i ${RUNNER} tar Czcf / - report > $@ summary.txt: profdata docker exec ${RUNNER} ${COV} report -use-color=false \ - --show-branch-summary=false /libfido2/build/src/libfido2.so \ - -instr-profile=/$< > $@ + -ignore-filename-regex=pcsclite.h --show-branch-summary=false \ + /libfido2/build/src/libfido2.so -instr-profile=/$< > $@ functions.txt: profdata docker exec ${RUNNER} /bin/sh -c '${COV} report -use-color=false \ - -show-functions --show-branch-summary=false -instr-profile=/$< \ + -ignore-filename-regex=pcsclite.h -show-functions \ + --show-branch-summary=false -instr-profile=/$< \ /libfido2/build/src/libfido2.so /libfido2/src/*.[ch]' > $@ clean: run diff --git a/fuzz/dummy.h b/fuzz/dummy.h index 95744eba634..b0225440e5d 100644 --- a/fuzz/dummy.h +++ b/fuzz/dummy.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 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. */ @@ -18,6 +18,8 @@ const char dummy_rp_name[] = "sweet home localhost"; const char dummy_user_icon[] = "an icon"; const char dummy_user_name[] = "john smith"; const char dummy_user_nick[] = "jsmith"; +const char dummy_pcsc_list[] = "reader1\0reader2\0reader3\0\0"; +const char dummy_pcsc_path[] = "pcsc://slot7"; const uint8_t dummy_id[] = { 0x5e, 0xd2 }; const uint8_t dummy_user_id[] = { diff --git a/fuzz/export.gnu b/fuzz/export.gnu index cac142ae970..0ce72434fbd 100644 --- a/fuzz/export.gnu +++ b/fuzz/export.gnu @@ -85,10 +85,11 @@ fido_cbor_info_extensions_len; fido_cbor_info_extensions_ptr; fido_cbor_info_free; - fido_cbor_info_maxmsgsiz; fido_cbor_info_maxcredbloblen; fido_cbor_info_maxcredcntlst; fido_cbor_info_maxcredidlen; + fido_cbor_info_maxlargeblob; + fido_cbor_info_maxmsgsiz; fido_cbor_info_fwversion; fido_cbor_info_new; fido_cbor_info_options_len; @@ -212,6 +213,7 @@ fido_dev_protocol; fido_dev_reset; fido_dev_set_io_functions; + fido_dev_set_pcsc; fido_dev_set_pin; fido_dev_set_pin_minlen; fido_dev_set_pin_minlen_rpid; @@ -237,6 +239,13 @@ fido_nl_get_nfc_target; fido_nl_new; fido_nl_power_nfc; + fido_pcsc_close; + fido_pcsc_manifest; + fido_pcsc_open; + fido_pcsc_read; + fido_pcsc_rx; + fido_pcsc_tx; + fido_pcsc_write; fido_set_log_handler; fido_strerr; rs256_pk_free; @@ -246,8 +255,11 @@ rs256_pk_new; rs256_pk_to_EVP_PKEY; prng_init; + prng_up; fuzz_clock_reset; set_netlink_io_functions; + set_pcsc_parameters; + set_pcsc_io_functions; set_udev_parameters; uniform_random; local: diff --git a/fuzz/functions.txt b/fuzz/functions.txt index 946682d07d0..9c1a03cffb0 100644 --- a/fuzz/functions.txt +++ b/fuzz/functions.txt @@ -1,16 +1,16 @@ File '/libfido2/src/aes256.c': Name Regions Miss Cover Lines Miss Cover -------------------------------------------------------------------------------------------------------- -aes256_cbc_enc 3 0 100.00% 4 0 100.00% -aes256_cbc_dec 3 0 100.00% 4 0 100.00% +aes256_cbc_enc 4 0 100.00% 4 0 100.00% +aes256_cbc_dec 4 0 100.00% 4 0 100.00% aes256_gcm_enc 1 0 100.00% 3 0 100.00% aes256_gcm_dec 1 0 100.00% 3 0 100.00% aes256.c:aes256_cbc_fips 26 2 92.31% 42 7 83.33% aes256.c:aes256_cbc 29 1 96.55% 36 3 91.67% aes256.c:aes256_cbc_proto1 1 0 100.00% 5 0 100.00% -aes256.c:aes256_gcm 51 1 98.04% 60 4 93.33% +aes256.c:aes256_gcm 52 1 98.08% 60 4 93.33% -------------------------------------------------------------------------------------------------------- -TOTAL 115 4 96.52% 157 14 91.08% +TOTAL 118 4 96.61% 157 14 91.08% File '/libfido2/src/assert.c': Name Regions Miss Cover Lines Miss Cover @@ -18,7 +18,7 @@ Name Regions Miss Cover Lines Miss fido_dev_get_assert 40 0 100.00% 35 0 100.00% fido_check_flags 13 0 100.00% 15 0 100.00% fido_get_signed_hash 36 0 100.00% 46 0 100.00% -fido_assert_verify 48 4 91.67% 67 5 92.54% +fido_assert_verify 48 4 91.67% 67 7 89.55% fido_assert_set_clientdata 12 12 0.00% 11 11 0.00% fido_assert_set_clientdata_hash 8 0 100.00% 6 0 100.00% fido_assert_set_hmac_salt 10 0 100.00% 6 0 100.00% @@ -26,7 +26,7 @@ fido_assert_set_hmac_secret 12 12 0.00% 7 7 fido_assert_set_rp 12 0 100.00% 11 0 100.00% fido_assert_allow_cred 13 2 84.62% 22 3 86.36% fido_assert_set_extensions 14 0 100.00% 10 0 100.00% -fido_assert_set_options 6 6 0.00% 5 5 0.00% +fido_assert_set_options 8 8 0.00% 5 5 0.00% fido_assert_set_up 2 0 100.00% 4 0 100.00% fido_assert_set_uv 2 0 100.00% 4 0 100.00% fido_assert_clientdata_hash_ptr 1 0 100.00% 3 0 100.00% @@ -72,7 +72,7 @@ assert.c:check_extensions 5 0 100.00% 9 0 assert.c:fido_assert_reset_extattr 1 0 100.00% 5 0 100.00% assert.c:fido_assert_clean_authdata 1 0 100.00% 5 0 100.00% ----------------------------------------------------------------------------------------------------------------- -TOTAL 563 40 92.90% 694 40 94.24% +TOTAL 565 42 92.57% 694 42 93.95% File '/libfido2/src/authkey.c': Name Regions Miss Cover Lines Miss Cover @@ -88,10 +88,10 @@ TOTAL 44 0 100.00% 59 0 File '/libfido2/src/bio.c': Name Regions Miss Cover Lines Miss Cover ----------------------------------------------------------------------------------------------------------------- -fido_bio_dev_get_template_array 5 2 60.00% 6 0 100.00% +fido_bio_dev_get_template_array 5 2 60.00% 6 1 83.33% fido_bio_dev_set_template_name 7 0 100.00% 6 0 100.00% -fido_bio_dev_enroll_begin 25 2 92.00% 31 0 100.00% -fido_bio_dev_enroll_continue 5 2 60.00% 6 0 100.00% +fido_bio_dev_enroll_begin 25 2 92.00% 31 1 96.77% +fido_bio_dev_enroll_continue 5 2 60.00% 6 1 83.33% fido_bio_dev_enroll_cancel 1 1 0.00% 4 4 0.00% fido_bio_dev_enroll_remove 1 0 100.00% 4 0 100.00% fido_bio_dev_get_info 1 0 100.00% 4 0 100.00% @@ -138,7 +138,7 @@ bio.c:bio_reset_template_array 4 0 100.00% 7 0 bio.c:bio_reset_template 1 0 100.00% 5 0 100.00% bio.c:bio_reset_enroll 3 0 100.00% 6 0 100.00% ----------------------------------------------------------------------------------------------------------------- -TOTAL 419 20 95.23% 559 21 96.24% +TOTAL 419 20 95.23% 559 24 95.71% File '/libfido2/src/blob.c': Name Regions Miss Cover Lines Miss Cover @@ -187,9 +187,9 @@ cbor_encode_str_array 18 0 100.00% 19 0 cbor_encode_cred_ext 55 0 100.00% 50 0 100.00% cbor_encode_cred_opt 13 0 100.00% 11 0 100.00% cbor_encode_assert_opt 13 0 100.00% 11 0 100.00% -cbor_encode_pin_auth 20 1 95.00% 22 3 86.36% +cbor_encode_pin_auth 21 1 95.24% 22 3 86.36% cbor_encode_pin_opt 4 0 100.00% 8 0 100.00% -cbor_encode_change_pin_auth 31 1 96.77% 36 3 91.67% +cbor_encode_change_pin_auth 32 1 96.88% 36 3 91.67% cbor_encode_assert_ext 33 0 100.00% 32 0 100.00% cbor_decode_fmt 13 0 100.00% 15 0 100.00% cbor_decode_pubkey 21 1 95.24% 30 2 93.33% @@ -200,7 +200,7 @@ cbor_decode_uint64 4 0 100.00% 8 0 cbor_decode_cred_id 8 0 100.00% 9 0 100.00% cbor_decode_user 8 0 100.00% 9 0 100.00% cbor_decode_rp_entity 8 0 100.00% 9 0 100.00% -cbor_build_uint 10 1 90.00% 9 2 77.78% +cbor_build_uint 10 1 90.00% 9 1 88.89% cbor_array_append 17 0 100.00% 21 0 100.00% cbor_array_drop 18 2 88.89% 17 3 82.35% cbor.c:ctap_check_cbor 28 0 100.00% 26 0 100.00% @@ -222,16 +222,18 @@ cbor.c:decode_cred_id_entry 10 0 100.00% 19 0 cbor.c:decode_user_entry 25 0 100.00% 35 0 100.00% cbor.c:decode_rp_entity_entry 15 0 100.00% 25 0 100.00% ------------------------------------------------------------------------------------------------------------------ -TOTAL 1047 23 97.80% 1237 46 96.28% +TOTAL 1049 23 97.81% 1237 45 96.36% File '/libfido2/src/compress.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------ fido_compress 1 0 100.00% 3 0 100.00% -fido_uncompress 1 0 100.00% 3 0 100.00% -compress.c:do_compress 32 4 87.50% 22 3 86.36% +fido_uncompress 6 0 100.00% 5 0 100.00% +compress.c:rfc1951_deflate 33 2 93.94% 47 3 93.62% +compress.c:rfc1950_inflate 27 2 92.59% 22 4 81.82% +compress.c:rfc1951_inflate 38 10 73.68% 45 17 62.22% ------------------------------------------------------------------------------------------------------------------ -TOTAL 34 4 88.24% 28 3 89.29% +TOTAL 105 14 86.67% 122 24 80.33% File '/libfido2/src/config.c': Name Regions Miss Cover Lines Miss Cover @@ -255,8 +257,8 @@ Name Regions Miss Cover Lines Mis ------------------------------------------------------------------------------------------------------------------- fido_dev_make_cred 12 0 100.00% 10 0 100.00% fido_check_rp_id 4 0 100.00% 11 0 100.00% -fido_cred_verify 56 2 96.43% 72 5 93.06% -fido_cred_verify_self 58 4 93.10% 83 5 93.98% +fido_cred_verify 56 2 96.43% 72 4 94.44% +fido_cred_verify_self 58 4 93.10% 83 7 91.57% fido_cred_new 1 0 100.00% 3 0 100.00% fido_cred_reset_tx 1 0 100.00% 19 0 100.00% fido_cred_reset_rx 1 0 100.00% 7 0 100.00% @@ -273,13 +275,13 @@ fido_cred_set_clientdata_hash 8 0 100.00% 6 fido_cred_set_rp 18 0 100.00% 22 0 100.00% fido_cred_set_user 32 0 100.00% 41 0 100.00% fido_cred_set_extensions 16 0 100.00% 10 0 100.00% -fido_cred_set_options 6 6 0.00% 5 5 0.00% +fido_cred_set_options 8 8 0.00% 5 5 0.00% fido_cred_set_rk 2 0 100.00% 4 0 100.00% fido_cred_set_uv 2 0 100.00% 4 0 100.00% fido_cred_set_prot 21 0 100.00% 14 0 100.00% fido_cred_set_pin_minlen 7 0 100.00% 8 0 100.00% fido_cred_set_blob 13 2 84.62% 8 1 87.50% -fido_cred_set_fmt 20 4 80.00% 12 1 91.67% +fido_cred_set_fmt 20 4 80.00% 12 2 83.33% fido_cred_set_type 17 0 100.00% 7 0 100.00% fido_cred_type 1 0 100.00% 3 0 100.00% fido_cred_flags 1 0 100.00% 3 0 100.00% @@ -319,11 +321,11 @@ cred.c:fido_dev_make_cred_rx 29 0 100.00% 32 cred.c:parse_makecred_reply 14 0 100.00% 27 0 100.00% cred.c:check_extensions 2 0 100.00% 6 0 100.00% cred.c:get_signed_hash_u2f 27 0 100.00% 26 0 100.00% -cred.c:verify_attstmt 23 2 91.30% 40 5 87.50% +cred.c:verify_attstmt 23 2 91.30% 40 6 85.00% cred.c:fido_cred_clean_authdata 1 0 100.00% 8 0 100.00% cred.c:fido_cred_clean_attstmt 1 0 100.00% 8 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 632 34 94.62% 830 36 95.66% +TOTAL 634 36 94.32% 830 39 95.30% File '/libfido2/src/credman.c': Name Regions Miss Cover Lines Miss Cover @@ -334,15 +336,15 @@ fido_credman_del_dev_rk 1 0 100.00% 4 fido_credman_get_dev_rp 1 0 100.00% 4 0 100.00% fido_credman_set_dev_rk 1 0 100.00% 4 0 100.00% fido_credman_rk_new 1 0 100.00% 3 0 100.00% -fido_credman_rk_free 6 1 83.33% 8 0 100.00% +fido_credman_rk_free 6 1 83.33% 8 1 87.50% fido_credman_rk_count 1 0 100.00% 3 0 100.00% fido_credman_rk 4 0 100.00% 5 0 100.00% fido_credman_metadata_new 1 0 100.00% 3 0 100.00% -fido_credman_metadata_free 6 1 83.33% 7 0 100.00% +fido_credman_metadata_free 6 1 83.33% 7 1 85.71% fido_credman_rk_existing 1 0 100.00% 3 0 100.00% fido_credman_rk_remaining 1 0 100.00% 3 0 100.00% fido_credman_rp_new 1 0 100.00% 3 0 100.00% -fido_credman_rp_free 6 1 83.33% 8 0 100.00% +fido_credman_rp_free 6 1 83.33% 8 1 87.50% fido_credman_rp_count 1 0 100.00% 3 0 100.00% fido_credman_rp_id 4 0 100.00% 5 0 100.00% fido_credman_rp_name 4 0 100.00% 5 0 100.00% @@ -369,21 +371,17 @@ credman.c:credman_set_dev_rk_wait 11 0 100.00% 8 credman.c:credman_reset_rk 4 0 100.00% 9 0 100.00% credman.c:credman_reset_rp 4 0 100.00% 12 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 382 10 97.38% 518 15 97.10% +TOTAL 382 10 97.38% 518 18 96.53% File '/libfido2/src/dev.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- -fido_dev_register_manifest_func 10 2 80.00% 14 3 78.57% -fido_dev_unregister_manifest_func 7 7 0.00% 11 11 0.00% -fido_dev_info_manifest 22 4 81.82% 24 0 100.00% +fido_dev_info_manifest 2 0 100.00% 11 0 100.00% fido_dev_open_with_info 5 5 0.00% 6 6 0.00% -fido_dev_open 5 1 80.00% 19 12 36.84% -fido_dev_close 9 2 77.78% 8 0 100.00% +fido_dev_open 13 6 53.85% 16 6 62.50% +fido_dev_close 9 2 77.78% 8 1 87.50% fido_dev_set_sigmask 18 18 0.00% 11 11 0.00% fido_dev_cancel 11 0 100.00% 8 0 100.00% -fido_dev_get_touch_begin 50 0 100.00% 59 0 100.00% -fido_dev_get_touch_status 17 0 100.00% 20 0 100.00% fido_dev_set_io_functions 18 4 77.78% 14 6 57.14% fido_dev_set_transport_functions 6 2 66.67% 9 3 66.67% fido_dev_io_handle 1 1 0.00% 3 3 0.00% @@ -410,17 +408,17 @@ fido_dev_force_fido2 2 2 0.00% 3 fido_dev_get_pin_protocol 11 0 100.00% 7 0 100.00% fido_dev_maxmsgsize 1 0 100.00% 3 0 100.00% fido_dev_set_timeout 6 2 66.67% 6 1 83.33% -dev.c:find_manifest_func_node 5 0 100.00% 8 0 100.00% +dev.c:run_manifest 10 0 100.00% 13 0 100.00% dev.c:fido_dev_open_wait 10 0 100.00% 7 0 100.00% dev.c:fido_dev_open_tx 56 15 73.21% 56 26 53.57% dev.c:set_random_report_len 11 0 100.00% 6 0 100.00% dev.c:fido_dev_open_rx 36 1 97.22% 53 1 98.11% dev.c:fido_dev_set_flags 1 0 100.00% 5 0 100.00% dev.c:fido_dev_set_extension_flags 7 0 100.00% 7 0 100.00% -dev.c:fido_dev_set_option_flags 29 0 100.00% 18 0 100.00% +dev.c:fido_dev_set_option_flags 31 0 100.00% 20 0 100.00% dev.c:fido_dev_set_protocol_flags 11 0 100.00% 17 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 421 79 81.24% 491 105 78.62% +TOTAL 332 71 78.61% 378 86 77.25% File '/libfido2/src/ecdh.c': Name Regions Miss Cover Lines Miss Cover @@ -438,15 +436,15 @@ Name Regions Miss Cover Lines Mis eddsa_pk_decode 8 0 100.00% 9 0 100.00% eddsa_pk_new 1 0 100.00% 3 0 100.00% eddsa_pk_free 6 0 100.00% 7 0 100.00% -eddsa_pk_from_ptr 6 0 100.00% 6 0 100.00% +eddsa_pk_from_ptr 10 0 100.00% 12 0 100.00% eddsa_pk_to_EVP_PKEY 3 0 100.00% 7 0 100.00% -eddsa_pk_from_EVP_PKEY 14 0 100.00% 10 0 100.00% +eddsa_pk_from_EVP_PKEY 18 2 88.89% 12 1 91.67% eddsa_verify_sig 19 2 89.47% 30 6 80.00% eddsa_pk_verify_sig 7 1 85.71% 13 2 84.62% eddsa.c:decode_pubkey_point 8 0 100.00% 11 0 100.00% eddsa.c:decode_coord 8 0 100.00% 10 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 80 3 96.25% 106 8 92.45% +TOTAL 88 5 94.32% 114 9 92.11% File '/libfido2/src/err.c': Name Regions Miss Cover Lines Miss Cover @@ -464,21 +462,21 @@ es256_sk_new 1 0 100.00% 3 es256_sk_free 6 0 100.00% 7 0 100.00% es256_pk_new 1 0 100.00% 3 0 100.00% es256_pk_free 6 0 100.00% 7 0 100.00% -es256_pk_from_ptr 11 0 100.00% 10 0 100.00% +es256_pk_from_ptr 15 0 100.00% 17 0 100.00% es256_pk_set_x 1 0 100.00% 4 0 100.00% es256_pk_set_y 1 0 100.00% 4 0 100.00% -es256_sk_create 39 0 100.00% 41 0 100.00% -es256_pk_to_EVP_PKEY 42 0 100.00% 54 0 100.00% -es256_pk_from_EC_KEY 38 0 100.00% 36 0 100.00% -es256_pk_from_EVP_PKEY 7 2 71.43% 7 0 100.00% -es256_sk_to_EVP_PKEY 28 0 100.00% 40 0 100.00% -es256_derive_pk 25 0 100.00% 30 0 100.00% +es256_sk_create 39 0 100.00% 40 0 100.00% +es256_pk_to_EVP_PKEY 42 0 100.00% 53 0 100.00% +es256_pk_from_EC_KEY 42 2 95.24% 47 4 91.49% +es256_pk_from_EVP_PKEY 8 2 75.00% 7 1 85.71% +es256_sk_to_EVP_PKEY 28 0 100.00% 39 0 100.00% +es256_derive_pk 25 0 100.00% 29 0 100.00% es256_verify_sig 12 2 83.33% 19 5 73.68% es256_pk_verify_sig 7 1 85.71% 13 2 84.62% es256.c:decode_pubkey_point 9 0 100.00% 13 0 100.00% es256.c:decode_coord 8 0 100.00% 10 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 306 5 98.37% 358 7 98.04% +TOTAL 315 7 97.78% 372 12 96.77% File '/libfido2/src/extern.h': Name Regions Miss Cover Lines Miss Cover @@ -511,7 +509,7 @@ TOTAL 87 2 97.70% 145 File '/libfido2/src/hid_linux.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- -fido_hid_manifest 35 4 88.57% 41 1 97.56% +fido_hid_manifest 35 4 88.57% 41 2 95.12% fido_hid_open 27 27 0.00% 40 40 0.00% fido_hid_close 3 3 0.00% 6 6 0.00% fido_hid_set_sigmask 2 2 0.00% 6 6 0.00% @@ -526,15 +524,15 @@ hid_linux.c:parse_uevent 12 0 100.00% 24 hid_linux.c:get_usb_attr 1 0 100.00% 3 0 100.00% hid_linux.c:get_report_descriptor 14 1 92.86% 17 3 82.35% ------------------------------------------------------------------------------------------------------------------- -TOTAL 173 68 60.69% 250 104 58.40% +TOTAL 173 68 60.69% 250 105 58.00% File '/libfido2/src/hid_unix.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_hid_unix_open 18 11 38.89% 22 14 36.36% -fido_hid_unix_wait 10 9 10.00% 21 10 52.38% +fido_hid_unix_wait 11 10 9.09% 21 12 42.86% ------------------------------------------------------------------------------------------------------------------- -TOTAL 28 20 28.57% 43 24 44.19% +TOTAL 29 21 27.59% 43 26 39.53% File '/libfido2/src/info.c': Name Regions Miss Cover Lines Miss Cover @@ -559,6 +557,7 @@ fido_cbor_info_maxcredbloblen 1 0 100.00% 3 fido_cbor_info_maxmsgsiz 1 0 100.00% 3 0 100.00% fido_cbor_info_maxcredcntlst 1 0 100.00% 3 0 100.00% fido_cbor_info_maxcredidlen 1 0 100.00% 3 0 100.00% +fido_cbor_info_maxlargeblob 1 0 100.00% 3 0 100.00% fido_cbor_info_fwversion 1 0 100.00% 3 0 100.00% fido_cbor_info_protocols_ptr 1 0 100.00% 3 0 100.00% fido_cbor_info_protocols_len 1 0 100.00% 3 0 100.00% @@ -567,7 +566,7 @@ fido_cbor_info_algorithm_type 4 0 100.00% 5 fido_cbor_info_algorithm_cose 4 0 100.00% 5 0 100.00% info.c:fido_dev_get_cbor_info_tx 8 0 100.00% 9 0 100.00% info.c:fido_dev_get_cbor_info_rx 6 0 100.00% 14 0 100.00% -info.c:parse_reply_element 19 0 100.00% 37 0 100.00% +info.c:parse_reply_element 20 0 100.00% 39 0 100.00% info.c:decode_string_array 12 0 100.00% 17 0 100.00% info.c:decode_string 4 0 100.00% 10 0 100.00% info.c:decode_aaguid 8 0 100.00% 10 0 100.00% @@ -579,37 +578,37 @@ info.c:decode_algorithms 12 0 100.00% 17 info.c:decode_algorithm 9 0 100.00% 17 0 100.00% info.c:decode_algorithm_entry 20 0 100.00% 27 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 184 0 100.00% 316 0 100.00% +TOTAL 186 0 100.00% 321 0 100.00% File '/libfido2/src/io.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- -fido_tx 13 0 100.00% 11 0 100.00% +fido_tx 14 0 100.00% 11 0 100.00% fido_rx 13 1 92.31% 14 3 78.57% fido_rx_cbor_status 8 0 100.00% 10 0 100.00% io.c:transport_tx 7 0 100.00% 10 0 100.00% io.c:tx_empty 9 0 100.00% 14 0 100.00% io.c:tx_pkt 7 0 100.00% 10 0 100.00% io.c:tx 13 0 100.00% 19 0 100.00% -io.c:tx_preamble 16 1 93.75% 20 1 95.00% -io.c:tx_frame 15 1 93.33% 18 1 94.44% +io.c:tx_preamble 17 1 94.12% 20 1 95.00% +io.c:tx_frame 16 1 93.75% 18 1 94.44% io.c:transport_rx 7 0 100.00% 10 0 100.00% -io.c:rx 40 2 95.00% 52 1 98.08% +io.c:rx 40 2 95.00% 52 2 96.15% io.c:rx_preamble 23 2 91.30% 22 5 77.27% io.c:rx_frame 11 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 182 7 96.15% 221 11 95.02% +TOTAL 185 7 96.22% 221 12 94.57% File '/libfido2/src/iso7816.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- iso7816_new 4 0 100.00% 16 0 100.00% iso7816_free 6 0 100.00% 7 0 100.00% -iso7816_add 6 1 83.33% 8 0 100.00% +iso7816_add 6 1 83.33% 8 1 87.50% iso7816_ptr 1 0 100.00% 3 0 100.00% iso7816_len 1 0 100.00% 4 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 18 1 94.44% 38 0 100.00% +TOTAL 18 1 94.44% 38 1 97.37% File '/libfido2/src/largeblob.c': Name Regions Miss Cover Lines Miss Cover @@ -620,7 +619,7 @@ fido_dev_largeblob_remove 12 0 100.00% 18 fido_dev_largeblob_get_array 15 2 86.67% 27 4 85.19% fido_dev_largeblob_set_array 14 0 100.00% 19 0 100.00% largeblob.c:largeblob_get_array 32 0 100.00% 36 0 100.00% -largeblob.c:get_chunklen 9 1 88.89% 9 0 100.00% +largeblob.c:get_chunklen 10 1 90.00% 9 1 88.89% largeblob.c:largeblob_get_tx 19 0 100.00% 24 0 100.00% largeblob.c:largeblob_get_rx 15 0 100.00% 21 0 100.00% largeblob.c:parse_largeblob_reply 8 0 100.00% 9 0 100.00% @@ -629,7 +628,7 @@ largeblob.c:largeblob_array_digest 10 0 100.00% 9 largeblob.c:largeblob_array_load 14 2 85.71% 19 7 63.16% largeblob.c:largeblob_array_lookup 25 0 100.00% 33 0 100.00% largeblob.c:largeblob_decode 16 2 87.50% 16 6 62.50% -largeblob.c:largeblob_do_decode 27 3 88.89% 30 5 83.33% +largeblob.c:largeblob_do_decode 27 3 88.89% 30 7 76.67% largeblob.c:largeblob_decrypt 15 0 100.00% 24 0 100.00% largeblob.c:largeblob_aad 1 0 100.00% 10 0 100.00% largeblob.c:largeblob_reset 1 0 100.00% 5 0 100.00% @@ -645,34 +644,34 @@ largeblob.c:largeblob_get_uv_token 19 0 100.00% 23 largeblob.c:largeblob_set_tx 35 0 100.00% 36 0 100.00% largeblob.c:prepare_hmac 13 2 84.62% 23 7 69.57% ------------------------------------------------------------------------------------------------------------------- -TOTAL 513 19 96.30% 684 43 93.71% +TOTAL 514 19 96.30% 684 46 93.27% File '/libfido2/src/log.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_log_init 1 0 100.00% 4 0 100.00% -fido_log_debug 6 1 83.33% 8 0 100.00% -fido_log_xxd 16 1 93.75% 24 0 100.00% -fido_log_error 8 2 75.00% 11 1 90.91% +fido_log_debug 6 1 83.33% 8 1 87.50% +fido_log_xxd 16 1 93.75% 24 1 95.83% +fido_log_error 8 2 75.00% 11 2 81.82% fido_set_log_handler 3 0 100.00% 4 0 100.00% log.c:log_on_stderr 1 1 0.00% 3 3 0.00% log.c:do_log 4 0 100.00% 9 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 39 5 87.18% 63 4 93.65% +TOTAL 39 5 87.18% 63 7 88.89% File '/libfido2/src/netlink.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- fido_nl_power_nfc 18 1 94.44% 24 3 87.50% fido_nl_get_nfc_target 17 1 94.12% 31 3 90.32% -fido_nl_free 10 2 80.00% 9 1 88.89% +fido_nl_free 10 2 80.00% 9 2 77.78% fido_nl_new 16 1 93.75% 26 3 88.46% set_netlink_io_functions 1 0 100.00% 4 0 100.00% netlink.c:nlmsg_new 8 0 100.00% 15 0 100.00% netlink.c:nlmsg_set_genl 1 0 100.00% 7 0 100.00% netlink.c:nlmsg_write 6 1 83.33% 7 1 85.71% netlink.c:nlmsg_set_u32 1 0 100.00% 3 0 100.00% -netlink.c:nlmsg_setattr 14 1 92.86% 17 0 100.00% +netlink.c:nlmsg_setattr 15 1 93.33% 17 0 100.00% netlink.c:nlmsg_tx 10 1 90.00% 13 3 76.92% netlink.c:nlmsg_ptr 1 0 100.00% 3 0 100.00% netlink.c:nlmsg_len 1 0 100.00% 3 0 100.00% @@ -704,36 +703,62 @@ netlink.c:parse_mcastgrps 1 0 100.00% 3 netlink.c:parse_mcastgrp 15 0 100.00% 24 0 100.00% netlink.c:nla_get_str 10 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 328 14 95.73% 498 32 93.57% +TOTAL 329 14 95.74% 498 33 93.37% + +File '/libfido2/src/nfc.c': +Name Regions Miss Cover Lines Miss Cover +------------------------------------------------------------------------------------------------------------------- +fido_nfc_tx 28 0 100.00% 43 0 100.00% +fido_nfc_rx 8 0 100.00% 13 0 100.00% +fido_is_nfc 3 0 100.00% 3 0 100.00% +fido_dev_set_nfc 4 4 0.00% 18 18 0.00% +nfc.c:nfc_do_tx 20 0 100.00% 25 0 100.00% +nfc.c:tx_short_apdu 14 0 100.00% 32 0 100.00% +nfc.c:rx_init 25 0 100.00% 27 0 100.00% +nfc.c:rx_cbor 4 0 100.00% 6 0 100.00% +nfc.c:rx_msg 18 2 88.89% 23 6 73.91% +nfc.c:rx_apdu 14 1 92.86% 22 3 86.36% +nfc.c:tx_get_response 4 0 100.00% 11 0 100.00% +------------------------------------------------------------------------------------------------------------------- +TOTAL 142 7 95.07% 223 27 87.89% File '/libfido2/src/nfc_linux.c': Name Regions Miss Cover Lines Miss Cover ------------------------------------------------------------------------------------------------------------------- -fido_nfc_tx 28 0 100.00% 43 0 100.00% -fido_nfc_rx 8 1 87.50% 13 3 76.92% -fido_nfc_manifest 35 5 85.71% 45 13 71.11% -fido_nfc_open 20 3 85.00% 23 5 78.26% +fido_nfc_manifest 35 7 80.00% 45 15 66.67% +fido_nfc_open 20 3 85.00% 23 4 82.61% fido_nfc_close 1 1 0.00% 4 4 0.00% fido_nfc_set_sigmask 2 2 0.00% 6 6 0.00% fido_nfc_read 14 14 0.00% 30 30 0.00% fido_nfc_write 12 12 0.00% 18 18 0.00% -nfc_linux.c:nfc_do_tx 20 2 90.00% 25 6 76.00% -nfc_linux.c:tx_short_apdu 14 0 100.00% 32 0 100.00% -nfc_linux.c:rx_init 25 6 76.00% 27 5 81.48% -nfc_linux.c:rx_cbor 4 0 100.00% 6 0 100.00% -nfc_linux.c:rx_msg 18 2 88.89% 23 6 73.91% -nfc_linux.c:rx_apdu 14 1 92.86% 22 3 86.36% -nfc_linux.c:tx_get_response 4 0 100.00% 11 0 100.00% -nfc_linux.c:copy_info 41 9 78.05% 44 3 93.18% +nfc_linux.c:copy_info 41 8 80.49% 47 5 89.36% nfc_linux.c:get_usb_attr 1 0 100.00% 3 0 100.00% nfc_linux.c:get_parent_attr 6 0 100.00% 9 0 100.00% -nfc_linux.c:to_int 21 6 71.43% 14 1 92.86% -nfc_linux.c:sysnum_from_syspath 12 0 100.00% 17 0 100.00% +nfc_linux.c:sysnum_from_syspath 15 0 100.00% 17 0 100.00% nfc_linux.c:nfc_new 6 0 100.00% 11 0 100.00% nfc_linux.c:nfc_target_connect 9 9 0.00% 21 21 0.00% nfc_linux.c:nfc_free 12 0 100.00% 11 0 100.00% ------------------------------------------------------------------------------------------------------------------- -TOTAL 327 73 77.68% 458 124 72.93% +TOTAL 174 56 67.82% 245 103 57.96% + +File '/libfido2/src/pcsc.c': +Name Regions Miss Cover Lines Miss Cover +------------------------------------------------------------------------------------------------------------------- +fido_pcsc_manifest 51 0 100.00% 55 0 100.00% +fido_pcsc_open 32 0 100.00% 43 0 100.00% +fido_pcsc_close 6 0 100.00% 9 0 100.00% +fido_pcsc_read 8 0 100.00% 16 0 100.00% +fido_pcsc_write 8 0 100.00% 22 0 100.00% +fido_pcsc_tx 1 0 100.00% 3 0 100.00% +fido_pcsc_rx 1 0 100.00% 3 0 100.00% +fido_is_pcsc 3 0 100.00% 3 0 100.00% +fido_dev_set_pcsc 4 1 75.00% 18 3 83.33% +pcsc.c:list_readers 24 0 100.00% 24 0 100.00% +pcsc.c:copy_info 27 0 100.00% 37 0 100.00% +pcsc.c:get_reader 25 0 100.00% 28 0 100.00% +pcsc.c:prepare_io_request 11 0 100.00% 17 0 100.00% +------------------------------------------------------------------------------------------------------------------- +TOTAL 201 1 99.50% 278 3 98.92% File '/libfido2/src/pin.c': Name Regions Miss Cover Lines Miss Cover @@ -744,7 +769,7 @@ fido_dev_set_pin 1 0 100.00% 4 fido_dev_get_retry_count 1 0 100.00% 4 0 100.00% fido_dev_get_uv_retry_count 1 0 100.00% 4 0 100.00% cbor_add_uv_params 17 0 100.00% 23 0 100.00% -pin.c:uv_token_wait 14 2 85.71% 12 0 100.00% +pin.c:uv_token_wait 14 2 85.71% 12 1 91.67% pin.c:ctap21_uv_token_tx 49 0 100.00% 53 0 100.00% pin.c:pin_sha256_enc 19 0 100.00% 24 0 100.00% pin.c:encode_uv_permission 20 1 95.00% 19 3 84.21% @@ -765,7 +790,7 @@ pin.c:fido_dev_get_uv_retry_count_wait 10 0 100.00% 7 pin.c:fido_dev_get_uv_retry_count_rx 11 0 100.00% 17 0 100.00% pin.c:parse_uv_retry_count 1 0 100.00% 3 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 403 3 99.26% 495 3 99.39% +TOTAL 403 3 99.26% 495 4 99.19% File '/libfido2/src/random.c': Name Regions Miss Cover Lines Miss Cover @@ -786,11 +811,11 @@ TOTAL 24 0 100.00% 23 File '/libfido2/src/rs1.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- -rs1_verify_sig 20 0 100.00% 30 0 100.00% -rs1.c:rs1_get_EVP_MD 4 0 100.00% 6 0 100.00% +rs1_verify_sig 20 1 95.00% 30 3 90.00% +rs1.c:rs1_get_EVP_MD 4 1 75.00% 6 1 83.33% rs1.c:rs1_free_EVP_MD 1 0 100.00% 3 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 25 0 100.00% 39 0 100.00% +TOTAL 25 2 92.00% 39 4 89.74% File '/libfido2/src/rs256.c': Name Regions Miss Cover Lines Miss Cover @@ -801,7 +826,7 @@ rs256_pk_free 6 0 100.00% 7 rs256_pk_from_ptr 6 0 100.00% 6 0 100.00% rs256_pk_to_EVP_PKEY 32 0 100.00% 39 0 100.00% rs256_pk_from_RSA 32 4 87.50% 26 6 76.92% -rs256_pk_from_EVP_PKEY 7 2 71.43% 7 0 100.00% +rs256_pk_from_EVP_PKEY 7 2 71.43% 7 1 85.71% rs256_verify_sig 20 1 95.00% 30 2 93.33% rs256_pk_verify_sig 7 1 85.71% 13 2 84.62% rs256.c:decode_rsa_pubkey 9 0 100.00% 13 0 100.00% @@ -809,31 +834,39 @@ rs256.c:decode_bignum 8 0 100.00% 10 rs256.c:rs256_get_EVP_MD 4 0 100.00% 6 0 100.00% rs256.c:rs256_free_EVP_MD 1 0 100.00% 3 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 141 8 94.33% 172 10 94.19% +TOTAL 141 8 94.33% 172 11 93.60% File '/libfido2/src/time.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- fido_time_now 4 0 100.00% 7 0 100.00% fido_time_delta 23 1 95.65% 23 0 100.00% -time.c:timespec_to_ms 16 2 87.50% 13 1 92.31% +time.c:timespec_to_ms 16 2 87.50% 13 2 84.62% --------------------------------------------------------------------------------------------------------------------- -TOTAL 43 3 93.02% 43 1 97.67% +TOTAL 43 3 93.02% 43 2 95.35% + +File '/libfido2/src/touch.c': +Name Regions Miss Cover Lines Miss Cover +--------------------------------------------------------------------------------------------------------------------- +fido_dev_get_touch_begin 50 0 100.00% 59 0 100.00% +fido_dev_get_touch_status 17 0 100.00% 20 0 100.00% +--------------------------------------------------------------------------------------------------------------------- +TOTAL 67 0 100.00% 79 0 100.00% File '/libfido2/src/tpm.c': Name Regions Miss Cover Lines Miss Cover --------------------------------------------------------------------------------------------------------------------- -fido_get_signed_hash_tpm 25 0 100.00% 39 0 100.00% -tpm.c:check_es256_pubarea 18 0 100.00% 30 0 100.00% +fido_get_signed_hash_tpm 25 1 96.00% 39 3 92.31% +tpm.c:check_es256_pubarea 19 1 94.74% 30 3 90.00% tpm.c:bswap_es256_pubarea 1 0 100.00% 12 0 100.00% -tpm.c:check_rs256_pubarea 16 0 100.00% 28 0 100.00% +tpm.c:check_rs256_pubarea 17 1 94.12% 28 3 89.29% tpm.c:bswap_rs256_pubarea 1 0 100.00% 10 0 100.00% -tpm.c:check_sha1_certinfo 14 0 100.00% 38 0 100.00% +tpm.c:check_sha1_certinfo 15 0 100.00% 38 0 100.00% tpm.c:get_signed_sha1 17 0 100.00% 19 0 100.00% tpm.c:get_signed_name 7 0 100.00% 10 0 100.00% tpm.c:bswap_sha1_certinfo 1 0 100.00% 8 0 100.00% --------------------------------------------------------------------------------------------------------------------- -TOTAL 100 0 100.00% 194 0 100.00% +TOTAL 103 3 97.09% 194 9 95.36% File '/libfido2/src/types.c': Name Regions Miss Cover Lines Miss Cover @@ -869,3 +902,10 @@ u2f.c:parse_auth_reply 23 0 100.00% 23 u2f.c:authdata_fake 12 0 100.00% 27 0 100.00% --------------------------------------------------------------------------------------------------------------------- TOTAL 528 4 99.24% 685 12 98.25% + +File '/libfido2/src/util.c': +Name Regions Miss Cover Lines Miss Cover +--------------------------------------------------------------------------------------------------------------------- +fido_to_uint64 14 1 92.86% 14 1 92.86% +--------------------------------------------------------------------------------------------------------------------- +TOTAL 14 1 92.86% 14 1 92.86% diff --git a/fuzz/fuzz_mgmt.c b/fuzz/fuzz_mgmt.c index 7c28979fb62..41077e23766 100644 --- a/fuzz/fuzz_mgmt.c +++ b/fuzz/fuzz_mgmt.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 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. */ @@ -288,6 +288,9 @@ dev_get_cbor_info(const struct param *p) n = fido_cbor_info_maxcredidlen(ci); consume(&n, sizeof(n)); + n = fido_cbor_info_maxlargeblob(ci); + consume(&n, sizeof(n)); + n = fido_cbor_info_fwversion(ci); consume(&n, sizeof(n)); diff --git a/fuzz/fuzz_pcsc.c b/fuzz/fuzz_pcsc.c new file mode 100644 index 00000000000..4a066ec32e1 --- /dev/null +++ b/fuzz/fuzz_pcsc.c @@ -0,0 +1,266 @@ +/* + * Copyright (c) 2022 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. + */ + +#define _FIDO_INTERNAL + +#include +#include +#include +#include +#include +#include + +#include "mutator_aux.h" +#include "wiredata_fido2.h" +#include "dummy.h" + +#include "../src/extern.h" + +struct param { + int seed; + char path[MAXSTR]; + struct blob pcsc_list; + struct blob tx_apdu; + struct blob wiredata_init; + struct blob wiredata_msg; +}; + +static const uint8_t dummy_tx_apdu[] = { WIREDATA_CTAP_EXTENDED_APDU }; +static const uint8_t dummy_wiredata_init[] = { WIREDATA_CTAP_NFC_INIT }; +static const uint8_t dummy_wiredata_msg[] = { WIREDATA_CTAP_NFC_MSG }; + +struct param * +unpack(const uint8_t *ptr, size_t len) +{ + cbor_item_t *item = NULL, **v; + struct cbor_load_result cbor; + struct param *p; + int ok = -1; + + if ((p = calloc(1, sizeof(*p))) == NULL || + (item = cbor_load(ptr, len, &cbor)) == NULL || + cbor.read != len || + cbor_isa_array(item) == false || + cbor_array_is_definite(item) == false || + cbor_array_size(item) != 6 || + (v = cbor_array_handle(item)) == NULL) + goto fail; + + if (unpack_int(v[0], &p->seed) < 0 || + unpack_string(v[1], p->path) < 0 || + unpack_blob(v[2], &p->pcsc_list) < 0 || + unpack_blob(v[3], &p->tx_apdu) < 0 || + unpack_blob(v[4], &p->wiredata_init) < 0 || + unpack_blob(v[5], &p->wiredata_msg) < 0) + goto fail; + + ok = 0; +fail: + if (ok < 0) { + free(p); + p = NULL; + } + + if (item) + cbor_decref(&item); + + return p; +} + +size_t +pack(uint8_t *ptr, size_t len, const struct param *p) +{ + cbor_item_t *argv[6], *array = NULL; + size_t cbor_alloc_len, cbor_len = 0; + unsigned char *cbor = NULL; + + memset(argv, 0, sizeof(argv)); + + if ((array = cbor_new_definite_array(6)) == NULL || + (argv[0] = pack_int(p->seed)) == NULL || + (argv[1] = pack_string(p->path)) == NULL || + (argv[2] = pack_blob(&p->pcsc_list)) == NULL || + (argv[3] = pack_blob(&p->tx_apdu)) == NULL || + (argv[4] = pack_blob(&p->wiredata_init)) == NULL || + (argv[5] = pack_blob(&p->wiredata_msg)) == NULL) + goto fail; + + for (size_t i = 0; i < 6; i++) + if (cbor_array_push(array, argv[i]) == false) + goto fail; + + if ((cbor_len = cbor_serialize_alloc(array, &cbor, + &cbor_alloc_len)) > len) { + cbor_len = 0; + goto fail; + } + + memcpy(ptr, cbor, cbor_len); +fail: + for (size_t i = 0; i < 6; i++) + if (argv[i]) + cbor_decref(&argv[i]); + + if (array) + cbor_decref(&array); + + free(cbor); + + return cbor_len; +} + +size_t +pack_dummy(uint8_t *ptr, size_t len) +{ + struct param dummy; + uint8_t blob[4096]; + size_t blob_len; + + memset(&dummy, 0, sizeof(dummy)); + + strlcpy(dummy.path, dummy_pcsc_path, sizeof(dummy.path)); + + dummy.pcsc_list.len = sizeof(dummy_pcsc_list); + memcpy(&dummy.pcsc_list.body, &dummy_pcsc_list, dummy.pcsc_list.len); + + dummy.tx_apdu.len = sizeof(dummy_tx_apdu); + memcpy(&dummy.tx_apdu.body, &dummy_tx_apdu, dummy.tx_apdu.len); + + dummy.wiredata_init.len = sizeof(dummy_wiredata_init); + memcpy(&dummy.wiredata_init.body, &dummy_wiredata_init, + dummy.wiredata_init.len); + + dummy.wiredata_msg.len = sizeof(dummy_wiredata_msg); + memcpy(&dummy.wiredata_msg.body, &dummy_wiredata_msg, + dummy.wiredata_msg.len); + + assert((blob_len = pack(blob, sizeof(blob), &dummy)) != 0); + + if (blob_len > len) { + memcpy(ptr, blob, len); + return len; + } + + memcpy(ptr, blob, blob_len); + + return blob_len; +} + +static void +test_manifest(void) +{ + size_t ndevs, nfound; + fido_dev_info_t *devlist = NULL; + int16_t vendor_id, product_id; + int r; + + r = fido_pcsc_manifest(NULL, 0, &nfound); + assert(r == FIDO_OK && nfound == 0); + r = fido_pcsc_manifest(NULL, 1, &nfound); + assert(r == FIDO_ERR_INVALID_ARGUMENT); + + ndevs = uniform_random(64); + if ((devlist = fido_dev_info_new(ndevs)) == NULL || + fido_pcsc_manifest(devlist, ndevs, &nfound) != FIDO_OK) + goto out; + + for (size_t i = 0; i < nfound; i++) { + const fido_dev_info_t *di = fido_dev_info_ptr(devlist, i); + consume_str(fido_dev_info_path(di)); + consume_str(fido_dev_info_manufacturer_string(di)); + consume_str(fido_dev_info_product_string(di)); + vendor_id = fido_dev_info_vendor(di); + product_id = fido_dev_info_product(di); + consume(&vendor_id, sizeof(vendor_id)); + consume(&product_id, sizeof(product_id)); + } + +out: + fido_dev_info_free(&devlist, ndevs); +} + +static void +test_tx(const char *path, const struct blob *apdu, uint8_t cmd, u_char *rx_buf, + size_t rx_len) +{ + fido_dev_t dev; + const u_char *tx_ptr = NULL; + size_t tx_len = 0; + int n; + + memset(&dev, 0, sizeof(dev)); + + if (fido_dev_set_pcsc(&dev) < 0) + return; + if ((dev.io_handle = fido_pcsc_open(path)) == NULL) + return; + + if (apdu) { + tx_ptr = apdu->body; + tx_len = apdu->len; + } + + fido_pcsc_tx(&dev, cmd, tx_ptr, tx_len); + + if ((n = fido_pcsc_rx(&dev, cmd, rx_buf, rx_len, -1)) >= 0) + consume(rx_buf, n); + + fido_pcsc_close(dev.io_handle); +} + +static void +test_misc(void) +{ + assert(fido_pcsc_open(NULL) == NULL); + assert(fido_pcsc_write(NULL, NULL, INT_MAX + 1LL) == -1); +} + +void +test(const struct param *p) +{ + u_char buf[512]; + + prng_init((unsigned int)p->seed); + fuzz_clock_reset(); + fido_init(FIDO_DEBUG); + fido_set_log_handler(consume_str); + + set_pcsc_parameters(&p->pcsc_list); + set_pcsc_io_functions(nfc_read, nfc_write, consume); + + test_manifest(); + test_misc(); + + set_wire_data(p->wiredata_init.body, p->wiredata_init.len); + test_tx(p->path, NULL, CTAP_CMD_INIT, buf, uniform_random(20)); + + set_wire_data(p->wiredata_msg.body, p->wiredata_msg.len); + test_tx(p->path, &p->tx_apdu, CTAP_CMD_MSG, buf, sizeof(buf)); + + set_wire_data(p->wiredata_msg.body, p->wiredata_msg.len); + test_tx(p->path, &p->tx_apdu, CTAP_CMD_CBOR, buf, sizeof(buf)); + + set_wire_data(p->wiredata_msg.body, p->wiredata_msg.len); + test_tx(p->path, &p->tx_apdu, CTAP_CMD_LOCK, buf, sizeof(buf)); +} + +void +mutate(struct param *p, unsigned int seed, unsigned int flags) NO_MSAN +{ + if (flags & MUTATE_SEED) + p->seed = (int)seed; + + if (flags & MUTATE_PARAM) { + mutate_string(p->path); + mutate_blob(&p->pcsc_list); + mutate_blob(&p->tx_apdu); + } + + if (flags & MUTATE_WIREDATA) { + mutate_blob(&p->wiredata_init); + mutate_blob(&p->wiredata_msg); + } +} diff --git a/fuzz/mutator_aux.c b/fuzz/mutator_aux.c index 92a67be7810..660fbe4e67e 100644 --- a/fuzz/mutator_aux.c +++ b/fuzz/mutator_aux.c @@ -15,9 +15,6 @@ #include "mutator_aux.h" -#define HID_DEV_HANDLE 0x68696421 -#define NFC_DEV_HANDLE 0x6e666321 - int fido_nfc_rx(fido_dev_t *, uint8_t, unsigned char *, size_t, int); int fido_nfc_tx(fido_dev_t *, uint8_t, const unsigned char *, size_t); size_t LLVMFuzzerMutate(uint8_t *, size_t, size_t); @@ -241,16 +238,16 @@ nfc_close(void *handle) assert(handle == (void *)NFC_DEV_HANDLE); } -static int +int nfc_read(void *handle, unsigned char *ptr, size_t len, int ms) { assert(handle == (void *)NFC_DEV_HANDLE); - assert(len > 0 && len <= 256 + 2); + assert(len > 0 && len <= 264); return buf_read(ptr, len, ms); } -static int +int nfc_write(void *handle, const unsigned char *ptr, size_t len) { assert(handle == (void *)NFC_DEV_HANDLE); diff --git a/fuzz/mutator_aux.h b/fuzz/mutator_aux.h index a9bebe232ba..730f58635b1 100644 --- a/fuzz/mutator_aux.h +++ b/fuzz/mutator_aux.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 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. */ @@ -51,6 +51,9 @@ #define MAXSTR 1024 #define MAXBLOB 3600 +#define HID_DEV_HANDLE 0x68696421 +#define NFC_DEV_HANDLE 0x6e666321 + struct blob { uint8_t body[MAXBLOB]; size_t len; @@ -85,6 +88,9 @@ void mutate_string(char *); ssize_t fd_read(int, void *, size_t); ssize_t fd_write(int, const void *, size_t); +int nfc_read(void *, unsigned char *, size_t, int); +int nfc_write(void *, const unsigned char *, size_t); + fido_dev_t *open_dev(int); void set_wire_data(const uint8_t *, size_t); @@ -94,4 +100,8 @@ unsigned long prng_uint32(void); uint32_t uniform_random(uint32_t); +void set_pcsc_parameters(const struct blob *); +void set_pcsc_io_functions(int (*)(void *, u_char *, size_t, int), + int (*)(void *, const u_char *, size_t), void (*)(const void *, size_t)); + #endif /* !_MUTATOR_AUX_H */ diff --git a/fuzz/pcsc.c b/fuzz/pcsc.c new file mode 100644 index 00000000000..f8400a5e766 --- /dev/null +++ b/fuzz/pcsc.c @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2022 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. + */ + +#include +#include +#include +#include +#include +#include + +#include "mutator_aux.h" + +static const struct blob *reader_list; +static int (*xread)(void *, u_char *, size_t, int); +static int (*xwrite)(void *, const u_char *, size_t); +static void (*xconsume)(const void *, size_t); + +LONG __wrap_SCardEstablishContext(DWORD, LPCVOID, LPCVOID, LPSCARDCONTEXT); +LONG __wrap_SCardListReaders(SCARDCONTEXT, LPCSTR, LPSTR, LPDWORD); +LONG __wrap_SCardReleaseContext(SCARDCONTEXT); +LONG __wrap_SCardConnect(SCARDCONTEXT, LPCSTR, DWORD, DWORD, LPSCARDHANDLE, + LPDWORD); +LONG __wrap_SCardDisconnect(SCARDHANDLE, DWORD); +LONG __wrap_SCardTransmit(SCARDHANDLE, const SCARD_IO_REQUEST *, LPCBYTE, + DWORD, SCARD_IO_REQUEST *, LPBYTE, LPDWORD); + +LONG +__wrap_SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1, + LPCVOID pvReserved2, LPSCARDCONTEXT phContext) +{ + assert(dwScope == SCARD_SCOPE_SYSTEM); + assert(pvReserved1 == NULL); + assert(pvReserved2 == NULL); + + *phContext = 1; + + if (uniform_random(400) < 1) + return SCARD_E_NO_SERVICE; + if (uniform_random(400) < 1) + return SCARD_E_NO_SMARTCARD; + if (uniform_random(400) < 1) + return SCARD_E_NO_MEMORY; + if (uniform_random(400) < 1) + *phContext = 0; + + return SCARD_S_SUCCESS; +} + +LONG +__wrap_SCardListReaders(SCARDCONTEXT hContext, LPCSTR mszGroups, + LPSTR mszReaders, LPDWORD pcchReaders) +{ + assert(hContext == 1); + assert(mszGroups == NULL); + assert(mszReaders != NULL); + assert(pcchReaders != 0); + + if (reader_list == NULL || uniform_random(400) < 1) + return SCARD_E_NO_READERS_AVAILABLE; + if (uniform_random(400) < 1) + return SCARD_E_NO_MEMORY; + + memcpy(mszReaders, reader_list->body, reader_list->len > *pcchReaders ? + *pcchReaders : reader_list->len); + *pcchReaders = (DWORD)reader_list->len; /* on purpose */ + + return SCARD_S_SUCCESS; +} + +LONG +__wrap_SCardReleaseContext(SCARDCONTEXT hContext) +{ + assert(hContext == 1); + + return SCARD_S_SUCCESS; +} + +LONG +__wrap_SCardConnect(SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode, + DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol) +{ + uint32_t r; + + assert(hContext == 1); + xconsume(szReader, strlen(szReader) + 1); + assert(dwShareMode == SCARD_SHARE_SHARED); + assert(dwPreferredProtocols == SCARD_PROTOCOL_ANY); + assert(phCard != NULL); + assert(pdwActiveProtocol != NULL); + + if ((r = uniform_random(400)) < 1) + return SCARD_E_UNEXPECTED; + + *phCard = 1; + *pdwActiveProtocol = (r & 1) ? SCARD_PROTOCOL_T0 : SCARD_PROTOCOL_T1; + + if (uniform_random(400) < 1) + *pdwActiveProtocol = SCARD_PROTOCOL_RAW; + + return SCARD_S_SUCCESS; +} + +LONG +__wrap_SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition) +{ + assert(hCard == 1); + assert(dwDisposition == SCARD_LEAVE_CARD); + + return SCARD_S_SUCCESS; +} + +extern void consume(const void *body, size_t len); + +LONG +__wrap_SCardTransmit(SCARDHANDLE hCard, const SCARD_IO_REQUEST *pioSendPci, + LPCBYTE pbSendBuffer, DWORD cbSendLength, SCARD_IO_REQUEST *pioRecvPci, + LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength) +{ + void *ioh = (void *)NFC_DEV_HANDLE; + int n; + + assert(hCard == 1); + xconsume(pioSendPci, sizeof(*pioSendPci)); + xwrite(ioh, pbSendBuffer, cbSendLength); + assert(pioRecvPci == NULL); + + if (uniform_random(400) < 1 || + (n = xread(ioh, pbRecvBuffer, *pcbRecvLength, -1)) == -1) + return SCARD_E_UNEXPECTED; + *pcbRecvLength = (DWORD)n; + + return SCARD_S_SUCCESS; +} + +void +set_pcsc_parameters(const struct blob *reader_list_ptr) +{ + reader_list = reader_list_ptr; +} + +void +set_pcsc_io_functions(int (*read_f)(void *, u_char *, size_t, int), + int (*write_f)(void *, const u_char *, size_t), + void (*consume_f)(const void *, size_t)) +{ + xread = read_f; + xwrite = write_f; + xconsume = consume_f; +} diff --git a/fuzz/report.tgz b/fuzz/report.tgz index d78f4628de5980e7da4412f97f2c71ab17648c13..1b44addb69823f8b265165a0b3c92bc4ebc61283 100644 GIT binary patch literal 341098 zcmV)6K*+xziwFP!000001MFRUbKEwP&)@zONV#q$yF7e=Z(CNCVmq5uDbAJcZ1(Ev zYKk+&Xc%+ISw8geZod090D=R~LmGpSCaH*tZ4o4hMg!fy?gr2*$+9SG^PBs;EVu&C zWBN8fsBe4kuIGQ!tK{Qf)i)V2 zrd4$xZO{SsU3b^`yFuWrjXw@N=Nn|*2Qll{Uwr(Hk|gNgPY{~K)6W-W(d5Z!T4Y7} z5MP83)@gmJ`UZPRFTxMic-BdMMyg*f) zSEGuQ>5NucmW0(<#N|brkLqIi5?RY@^liGJvog->SF5L!qOOa@<_kbwRW#+4jPiIv zMs-?e{Hx12Nz(k{CGwz#4b|w!CPkT$viq0~kE$X|6ZABh(Ena-X9XdIKFQLYjOHZ0 znAb0n}qbD=>tH@_u;zaZ3 zKyVf>D*_X%{fYH5qs@=XV!eZGn$qiz_T^6i+1dJ}-}gK1^uB860R0l514Y&>@)690 zl1o8NuIo_@ZRTRo*WOxDvE_^V)W0EF*79TXNl5-R6eQMmCa@3PL4(!tfN6rfSxnlu<;Iz)(AGu0IF8%)E~%av z(aLw%vaHaWF+FKC`PWsQ%^b(#gw{oo)#;LJ#G*=T&=gREWO1EdGX2zPtTd-z-@&$t zLwqhBtmTAEi!$aP%Zr@!+NwY!i5vI;Xve%>BOsoDU^O*s?J7;`IY^t;S3+Ddjl8y0 z5b`~{Uad(4r__!k1B+C*=AiilT_Y z#{31Ux#9sD>U0`sVl<)muVnPcK!4Z+|7{Sn&Kuri3IGE8draAUyiH#Ng~G&H6SC1H zE2f|MJ1=KxS=FQIJQb)Uw(bC8F!6&y~yst#=PDB zcWvz0Yxchb??2lA4{@D*n-tUfW=Rko{L_>6ZxSb`Cks-?h#J+ekEm%$C(4mfXRnW# z4tkxC%M?s+cJm_5LA8M-Rv?b#wSClnVmgn@ia?cLK7Bt5p%f(GGlihnN6hc6=7hkP zDHX4es2rK#h#sMNNoMUE)H8*8CZ~&f8bBjHeM2XDd_m9$HjCjohI04xO-bS!3<`uT zj7OF`!U3|~myQE(xThz}(>GZ<{ftiHwvBmRFJGGGG>h{KBg-xqMp0gvz?jPX$Xtu> z;)*11iiC(3nW#KXDQPMsg)o&(jL= zn#PH_JUvO$O9XUO)$1eSRzSy@l??xs@F(e>uN#v`r{AX;p#yee*2!J3f=$7w5?$J( z&N($czT*84B^`SJw@3Y4cYWrJ{Z zDi=|{10U%(ZX=J`dPlr53cCg%FFJNj_t_qmxwR~6qbM+J7iv4M>3AyjJtK6WK6Xsp zZ(jqameXq5XB00P#HY{<75W*vyteO{!CrjY-nbW;UZkB(B?x|>O{`=Po3M!=VmfVa z+_6o^*3G5{w0)mVykroY?7*}G6-L|){CO9#+=p=EeJ7ivcZH$rSg4u@!0C&sQZs;bLu z8rQq{*gZZ3c6bJ+Mhdn}tQUK`i5__dFPt89qQ&*RgtppbE_@dlUwWLx`t21%yUdn$-s4t z$fJniVbhP4oLg*oR8T!kN$_+ttf}Xp$xWYQqHNFv^GvNS=GTcK$f0gQoTNpMOYB~8 zQh7#%DVc%k?$yi9`poY49ANT(eAn#aNRSlRmFl!7!a}frF^lQ=4k6 zATq~JrswG9Q#0$ciQXR~;NchnRZ`TASF*+e!{gAYTc1xSMcHE!FBqnn zT+>rh#J=J947nlk3pGbnVzj= z{s)Fb!PE(`>4ZAnM#>#IwB6mSO|B3o2UQwiAh~;q5ntrvm4m>*9t%!DFN3}K)T}xMBJ#d1Jm6rz93h|;5bJt7>jj#f^^qYk43!TVGPe5%fA>5qWu;tc1V8+ zs1W+PIkm>8!7Gc7X)8sVTpsAfR%BweH67o;n9W7-{zBc_Jgtf#wEO7Sl^r0mK%EhW zegXI*YW#NHc4vTYdn${|3$hUgl}d;0qX4*9vOyibU&nXA;SE(|U`!K4FlM%HmpLo? zp%`|r>;P`v8nb8Z&{bhJZZKAZNrHQRst1P;1kP^e9-YqDB&3vTeo+>xN>#- zH^7=LmZ(&!V2S#+;knGn*$)@iX;1a1wf1gKNa=;C$j=7&k-%;Jwd-#Cyq_X=w zqW2HMq4jwXwfOF>+e7<@1qF+ByEWxTNUzip(o@yrj^VTVKFF(DNYCXmXFEWG*3FTW zH+8xoJ!bKO1I#J9{zq47Tzk*J%OJEF>%RbDp`#~IvOx2ZSW@Lt7QmgIJ3k-`#Jn8C?_Stl^B>f#7ZOI^B4co)+oBOT! z?U>1)em&mc{$?t6f0$!YAzwfC1IP43RST2tIt8P^!@7f0O`T?aRVhy^dW#}Z&9)V&Z7+5Wn}S#nxQ-cOyhTNu z?a5^`NiU%qJD^;lt9d$|vy(iPt z<%zcQ4gK4Wj62@CUz(Unwu2J>Omq8e9sC-`Ht(91i|(N{`ctnhUT{w>vF#A+t?|P9 zYH=Bt@nW;hws?E1eMz5tr++6oe7^>X1p%c=6<`)zqS1)`OtZGooMp&%4a=}kOsH^T z^281%%RzDI#29~(tIhw?O@{kugXjO;$oqIp{!i?C?qmMXhq%_qzf%Sp+xYtNcOCaJ z|LcQXJI9~dGJ4wh`tkQ1_fh^IxlrqayXu46w(jccLk4Oghkn%axJJ`BM-zf(G!rFC za~7{T|MAVc_aEP}Adcb~cq{t7wq;Kf{iYg4{)!^M{g$tVA~kY?6*)osp+E~cPt#eR zkQo~P^vkESPd|ScpZ)UB@egW5hASe&_Vb}0B7s7hu}}w*(Td2Z{d{!5fwe73v0Fm3 zTbjl;pJolHo4;lCtEx_bi^lwK7xgPeQe_P4Ku8Y?t&^JO^&nCubg~6J*?RD)M=Co= zK7>#SeQW_gwjTUZq)5UNTY!nJ2TfM2`&U!cuc$591zmZOBFz$h*aARoJqWU!W|q5S z7~K-e*aBv3Jveg<-R;@*VWdllWD7{Lbz#zO(%YlY!)TX)$`(jvYl5oXwDWVL!zh=~ z%NFou>%p(vC}&%l22qYBoWla=ux^~Y7s@5r!vglOZrIzPywpIs?4xx~nr;-7DHkUQ zhLJ5{A{Lm44~dCb!bB`E5$nN3W&c~kJS;E|>++h=Sw$V!^YefFglx-z|6ZVE!$7%NJ6js~FtdIt7=UTrWwPE=XR-nW8Uyu^C&5_-kP z=8BHMEQ>EtleZDPv?2*ANu0oN=4e3{MR|jk#j?q|1zj3CLDHdRg^?)gK>?7!z zcEo7ZBrjmH-OwSU6OpDP5?!z7G$(&aF8FFS8^6hKWLhhBOF~*KkQVDfTId#w0v&@8 zwL56yilCdKK?@f30&%(`G{8kB4gDn{lB7XDS&yH+P>gm-IP3@;-RGEcs!oR)p$nYx+%%F zO@I5)Dq*lAFxb)LcOoDb^{71N`g>f(RJnsXP$gSJSVthNqsi?=s29o+q?!x(am;>Y z$}FCeAu$t2f>K97siVpDMC}AY?|&XMWZ~C%9M^T3PMVsG$H&Kc(G9{eH+A{Y@SmSO zQymxyOC5owjwZ*n>)EeAe)?h6H(QZZ2_GGSkB%l!6p=hhXNpT962Q3v;9O0P<`B9h zm~sV7xq4tqks=9@TmeX~F86STz7?vrn{bL^;YuLo3XpR3fYj49c~_)RUV!UX;532O zkVz*2lq&$r)dNt96iL|Q3hZ$;VNW}hY?bKU_~W~GZ<&g-t}R6^=SooH3aD{4K~109 z|33S0_ESqOR-{&f4_Cm4t9J>mrS{h!KfHT;_UVjL>nc(!A&4sw#MOi#eQM9n&pC`A z%Twb&eb)bHy>E)z%98-d69DAt0U$++B1V^5L zBTo|?t*HF&{O9kG<6D*@l@b>40 zLv9iAB&_lTR(X1`s;bLoS|gft3jJG=JPDjU0ZyK#IAMD=;9rJgptDGB{b`&gwwMX>f;_r5ElrD3-myoB1ICa z1p?IqJ*WmEjW}|QsY!ZFcVUjxnk-uNC0VQL9F;II5EvNf!9bb*8_;BH^mm$AnRW^P z0)c;l9{iJNhacBTr%%<%mhdhRco*owJBe(V9%+8DPWeFjlQ-yhJM{Hno+3pOb_D{v z0zKH(W1S?1GLQ|FJ_*MHfn$Ll9NR)Y6~b2PR4EQ6oC^icg?eyqlVU1*0}Pu`!naW1 zTc`)$Hi;Dirvc|e3FktAbKxOzE|hRC6gU^^!8ys=?ak2v{F6{E6sQ*JK{c7$c76^Z zRD!TjKv<{;!g_3_ic5>i3MKRk1$u>g&`YLRNYgMmlJF`NcoiNJuR{6sSa*C(4_;NR zw>wM5bT8yFa}f1-3ZVp4p#Z8-4^T;DUzMOyIo&$_oJaz#NPt#!$hE3SLZ(O{Q=|u( zs6wJi$k`ka4D8|rT%cBwoB{9}NhlQwl#2AAl;{MX5uz7u0Bw6;l)E88TO^<@I%Hrn zlHe;6@D=HSFM8@?oRCWjuQc5m{dtIu6-fvd2?UEYB3MQ0@l{%qaT3?D?htAup;;u* zEIQ=+RwO}IBp@r&7*?b^eaF+R0E?An0cXOc%s&avA^~TS#?axi%rC}tm;Z4m^;wZ$ zDAOySi|!6a>%p-eft+wUPaQmn!?x8sI=wnOeMtDSE%}hN)t!>I^dJ~#+n8$lbXJs$ zG0*9LEXvh+DIb`&x)amZAw4VGk`G5)-RWpcqjN=dDE)mKV-|NOH7P5dVGP@nPg7gn zacWDW$JKQqEyi8?RpxvhKYz9|bH>~38^uE;wk039wz?D7mZsxp2%&ZQTXrZKq56SwbHZejfa~ zJ^!2ZONIutaeMwZ-w%RdE&pHOI>BT9w}-eM^S`wUO+)@S@f*0f&eN6n4IOtWoB7eU z-LnFx0{CYnND~}%0cP5 z?k`cC-ZWzOmMdwB8lw`UB>P>vw`J=G__W`U577 zYrD|~;jY_ltviBof56mniWJ>rO1Sf%-~Szr$5&;%9DjTRu<)*;er#IJ-%yABx;}pU z>(3wFzCh>y&)(TLr;Q{H{Hx6Vu~&v*tbsU&-SyoOti;sv;ztsBsjVC(gKTRJh>{?V z@7aAm`_nUe8$c#ZOJip@rs~!<#+UAyp6=<<^sg`4?*^UqZ_IYfIBO63mj1y)54S>U z+?H}(a4`n=Ho<`?JlD#!46ao8g{zHLN+DBjODV&dI(Fd1^Hs>CC?wEr$q$0ho$>O4 z35m=vu|oc-u&fgKI6*1O4qka}MC&rmll797B?UVpUEwxbe12d~J?vjyjJ=Qb~eq&ehSmqJDyGZ&;(3OR3I zkGEuUXO6vvlZ0Ec_-sT+iWJM@Q%Qv5es5FK+U6#KEMhgW$SPTYTt+4Tt7^0H^-6wZ z-MKVR4lQ6@)g7LX9Yh90PERB6VYUYs`pEofT6z!bEb3*F+f}$%ayES+4wfcNe=st2<6Wn%Bke;PPnSI#doW_u&W0?!E^9XG zMa)L8WmxP-?0m>F?lR}2(R}LpkVWEU%}1kv`RM7rf$Ha5g;>lm5jYGQ;(#K)JYDN$YMOciQdHWC<|ci)%RLfSTdX} zN)IjIMoyRp0mx#o*vl|M3T@>h)f4)}*?=^5Fl%aR1$^SGwVDG48il`>TN znU#%sbFx_Z3omf+7pnjI{KDLWUT9J+O)^A>24qtGeUS_CNwrEI;hvY5NX}=)(pWd2A}i<%6<9}1V}&Rd2a{uh1IHb3o9Zh{hhw*6+R*o85$ z2JJz2)arjkE0!CYh*B(c_Ic0m^TQHx!f!^V+fXrL|;*@}?|HGaw zm{F5|ZTfRdBR_4uhgMi2o)ISz2EUkl7L+`8!Y~`NG@;VYCDW)jOvY%v|K6dFxy`1~ zQy~n~5gk~O2SbVhjaZ?SG8OU1LyEbIUoY<@(Wyy%&H|rWc!A4Eo@k#YvJ12XUZAOn zk;o$xs)=9%Eg=(VvN@)VD@YQ4z5&UR?b9{rPD5-svOuEncNH zI8RFFdCDuUbdAH4f_Qe3c)qcKu?FW!={&peJZKHD0b>o;4a6BoGryw8?^Ij2Afh;bWsIOO7SLws1F@LY?%&(U>Sy%(m z&v3?{bLc1HdT7Gyp#=eZLj5B3n540K>4kazcBmnC_ap*-XhQg*yAVH_*F^W}P>V=Bb9hzWw z=#z4Hs0iMn33-R^Lhs~vf;*2?$sd1UbrC~o!t0^CfIYc&VXp&7iOH9+&0n|z#9cyp zZF^85hqP2;wseR-JQg87G@E0U5jBk!S>Ky+@9PcTkH{rNbR8swukQG_MlfY_6S4d^3Vj#L!Xq) zLq#+XP1rnC3eNMeP;3j16-*3(34ezc1mM}Tua;0rGFmKstPd8!Jv1TrP)T%8^W^Ir zM{KetGI?kM<)M;Po_!=t*S}CtNj3%=>jp$74^5yvRFcZGj~ZAfAmVmt!rP&{fIE+X zLSJK{r!e&5y1-!t69ZF1!=bxyI2b38(V31JxG5LlZs@-37=&^{3;RmZ-)< zZR)Ukh#@Tj94g7nk&>HRI|v?GJz8=x7A71Wx(lR}SMtcbLH5MZ(b9_{Fk$Y{ zUC^DvLg22Zi@W>(@wUdf8vyR^|5txmdqp?<{~g0y&;9=%;q~1AFIqqa^#6-iOT7M+ zGyr5^tmg)Rd3P`w4FKtL1HcCXfdU^e`q!Tu0EY5EHvrrzPQi`!9;X4|(w#ZqWcxp) zTYr=;e+73`Q`qhg`{Yl2@E1!|OgO^EN0r_Cz%{qXB5+m{?=XD6M`qsKTY7WW`;BdM z$ep{qf#9<6y-WMjWoLx&s|mlUymaR)cX)q9zJTb^qp~$1QX+*-|Dwy9?AUGL&#yVdaZYfv4X5I{eSXcdxKJT9v)@kP<0wfyZ9xlOKi6?UI{NWn#Ls z)zn@(u#1h))Hb($#$DRf$Y>_AEWw8?>*oIHSTCd>7TTLhIWaZko z$IjJiI=v@1u&JMh+ugA}oib9VcZJkSVT(OMtMyF;c2lmpdtN9ka&ulpTRbV}mT`@< zAymebC+wa_t2GIPNc>9oHPz+k5rjcg3c$wv%3A+Jtut zAFF*{Zn2SfiSl>VD>~9kx6I4*D#!be9N#E0oDVbDGNGELb-UyRIY{S<(ZeFvN-7+3hWTuF2kl=+y+MCq4f>rncEEEt z1!N!G{}yZf`XyMv)-3uQzv&j$dOh%rCNwl|SL`qUiS4siKp#Qr`70duS46WxT74<8 zBaL6tBpqTAkog-87Vgt!TLx9?k!rjqaMw{UONVWe2vl9;>yT`XQ9s6EI%DGiSyIl{XPchq^+vghH0S zi-wRD(Z+5+wd5*RpI=43cGv&1W3b%izh9~UJ+9H0$D8%PFYCw8^}mntdanPC+))Ab zzu{_$otcvIU)CV*uUGy{a1yDj|0SeF+J_6@yY}rFfy9#ZEZS_=Pb%Ss&&ZJ7|JwWl zr8|R!SHHWY?*=#SY~|YoQfAV#Z#}S?p1llK zGx!dvfU;6x@zC**ll+-1hI8kC_FLcL8_9zIrR< zfu^zoW0qQY6Zgs;bH7(1w(pRID0S(=hx|N^8gur z6jmvNT1*kxi~NKX?z<{S=8KpZs znXJZ6fi|SD!np_=ipVBN68yU;~)(NJftyQ z#mUC56NOdQNQo5IN%O(3SBV9K$No9)V%;S#-3mw2^8*<2duDE|d<%9L6PEco^9lUM zVH*jU2H1f**bGZy)pTr4;ra%xCSW-%iMj%jV`$OU@{Wb(XgfsMT{gD;fIo8CF3D#b zk2zL3g_YHba%^)H1bB=8zRIX!#H{mwU}634DKH4BmCl^fU7MBm7b)?ZL%I zqx1IMBIkqdnQoY*)jxxG`L**cEvH|%)9Y9ux;3cqY1&qW z4Bn8QZnV$g$JXmkw_|Vz5R zS;uU5Tb-VM23c~a4^u<*cY5C<=6S2z-7wa{`@U`vw2BJL!`WGeuzJXA9VWB&x~sDp z;TC$cSW{F!tI zCSQF+Q?G#5R;z+GM8y^Apcc3T5E`Y&4*uf8%^wz6HlM6%WClCge% zPp%wia%qom87CF~@}Ar|)3G-Bls^zNrRdw|e9H9(&4Q zAFitQxcd9z=>KMi@Y|!Fb>z&J{CPc68HL5`po}xK-RVz+3rqe@9#)7P_|A--1qBOx z>>!_LO4q$hDD!C5>B?7}bTv7at7`LZe0j*K(q-X!P_7*ALDIZ}U%S#thXVo$tS8Khm-sX&FzfWG(ULu8+EwIiI zw*IQx*k9NlsW(rM!WK|KO`Fvd31M51N`4r%i1ww~)EbxCQfbR92-%SAZ?hbu&$sU!U z)swBl&aGZ|@IF=VP;PcL%+P*$rfF!zo{i#KrL4p7}K4}DY~phWubJ0k4@?W zIa+A8{H_0q^ON|aZ{N51gK_>7`vWIl#CS81t+bX`iH-ei>7MpqP_7F5p8ddh>hmDf zktN#f31)Ju5=H>6l591$`kGgTb=EMT>7d1<8FBXmC&w^KmtsqnB(3dL57zBIz*cM) zP>xMc6cz$W*JGmvv3nrLxuAS@P2={d!Df@-tU=z}y8m z4*0^7**^d7#S1h|O}f-Omj=-+fXJU9?jR*DpwwGVV)i0$B_a{W3RLMn^YOnaRnXRTvcQJJxACFj6SxGLa)Cn(#!n>bcZ^aMX*=?Di zLVD)wAZ%aegt5%Nx`O={2E~v!oS~Pm3 zHKPmQVI|2{okJli6;SPt^U*v|o)!@)rAy#()56v|bHDW(O9#o!9^b%UB zR!JSer$d*OeSWs5_%$V4CNH7Odfv2loSuiM&=BHeBaV{|xwGK?PArkz_=XVm8gbNX zNCK|+5|Fuo^-;dZ_NElVS|bi?4Hd`0Oy=wZCHq>VztujS{;&2$8+I$nLGhnhorEyg zh{If?xG=}gi@3~RSOWD05|QL+o5#K{r&@)gS7t+qc8xgNHJ#F2OB2VYeIfPzy1z5y!xWBx1T=tw~Tm=Sy;n zMI$zZh}eiDV&h56RK+^gq)=6oMkY0YHouL*4de%~ju#ZmiD?J{un`Bq##5fiHih`s zjN@BV5=mBV?77U6v#i_OQ|;&5TYivr*n{tK9Aq_x2-u7xU{fvvf(m;)t`$?dd+@^S z^yl{W6VH{>Cvv4f!uMa$@HgqhEUeiyg?QPF<7HD4dM2%5s2r#nYSZKAUH9oZ7cIdX zVNAMD4p!-~`w6S15J8)91Z_&P(xkLRCJ9X;ST^He*_2ETPh_%kzGjm3LUXPcA+k2( z$l8=n8YRydA9cM5A+{NZ*rs%vDXHPcdO7GF_Djmwj1Zlhadd7eb5r_gH{~)0kUVynJpZj@f@(JGSx(agO(s1G|2$B z_c6dd`OoRPBSoirR1^6OS^{X$Bw?rWvcn#c)4oqiiR*7pYUATq4GsMehiW3*K}+Bc znk3^CuMIs;)p4%IufhwDSasGAN-0BW7euLG!)l-nYn`x^B9@+%v9tzRN-0abFiW`x zG~#k&PoU`L37qBGY-TdF$ab2sg^M7mfSgSqre;?!Z z%>RvCTLJvv&D9dSNF^lT`d^X+j1x#52)Ha_UdJVN5voxkXZFl>=A`FNr;g9JYm?t+ z|MnKn{4$tSJ^vbCZK;j`j2v5KL|?)S*djU>v(i=IR5;tO5?(TcudI+U!NxfoP%w5t zY|rm;YN;awm&sz~FTB9ngt;=X04sH1t*3i*e&Gwt}=#jnY`~<=fu$8whYEs+9bZktQ)RICPfUJ&MPDcmv@oPst>@yqKRAM zZDCV8bpT?}jnR8z%2x&q>_MbIqX`@^4=JO-ZnIg zsT1+3)(}puK2kH4EMu6oHsfV64N}Hb2C9i8raFV68T~;e!8V1gCZui(fySWQAZBOv z^-xRhQWB~Z%#&`wV(PWHrf=3=43<5sl8B5xEmp`fMoOd*K)l6ZndidAsH6!O3}I1; z8Aj$@3emtJ1!Tlh*0rvl@%z|gWR=9<^{ci5%p|;tjg|Pj!vCW4f0gLoGHKh>@oLKM z#M-e%PVa@hbh1%JFm-}}C3ADKf-J}%U3#lIvI(P7Xm6R=%r@E6%80+@O;%HnT)K7; zzJY~Ss|505ZA2wOw@ikiUAW78mg2KQEa!7rBo|$%W}`fJ?$%8u0DD@xQ=asDb7ab| zl%QLVo;tCn)dBHV%fOw4y%<1|YloG~kXpH1uaO@`YcEv^v2I*svlpf8+%mad+5GIq z38LcCsWaYQ#dq#>%Aor0oT-dF%~MIsEtB6eMn0O361lr^$2VkVF9O18mP?OMmN-dB zrBrfq!6#iUVf5kCt1<5{5jiD6ZY+pXB?cF}fmaE!jkilk$rRFPAK2FwVVttW+Q+V4 zlLpx4x-!7)*W%IjD`e)*u@5E`Vr-ET$+Bp3k0h&@5=@lmcBJ-X^jY@7{ciP%uU~=% z>`bH2@h6&bzxQ8`*suPHWo~{~G!rnG=?EAv`D9DqY71<-p?8cQdan{k;ni)OuZCiHMWaZ@L zLy?fgZHnY3Az!kR^VwfCKopA<)k0MlNRcr!u`P<0s~X+)?@QIMzj{|)=5)SE_APR1 zQe+x>t)tL8_&hcl552BAQofnp6uw<_bC=RApItsG?kX&%{bpI#WxCZMA{V(eUyhW^ z5VZ38oaXCEbACJn`l% zQV0cTy0qwBR?GdsE|8Nz>e4K(UQ<)E1UtKUN=X%PV8A_ma zdG=SY^J&`U7SBtNb7|Hy3x4(hg6rIL^Qr$-WU5CdK0C=f`;dD6W{ky+{H?1#0I}Wr?xx3@k zwAl5Y)VTg<$&-`UA6~6=G1I&JFm7F3Fg# z#pkY@-eugo^}BIj)b?MBTM;{4lIPbdZn52wHV?y^o8r#&wjM^}GII*0=>= zouiAOw{Um8qpRVO>n=4Pc#XU9QIhc7E!ArI$*y-7>l)Y926Kd&7B!gPJHK_RHy)Yf z>#Oe6dwi3A;!j_j%<)~abw2SvACAwx$7RY>J^`Qgrh`c~o^sRSs7b)h=ND3we3@Ir zk2{^u)9$2GEM!LMXD0*#Ih)sQ3A7m?3PQk4W27 zbB3LF;g^~p-Y&-ZQlqmyqNWkM?~~r)k{S1lPjLr165Oy7+)%Ed=8lKNZhfS=VWqjD z`0?SLt-pA`X#P?9C1W;xg!DJ6^f!__X}rrDZp%kVouf*fBN=tZk>(D8%L8XO%ch-A z-Qi7ouvR*lejx#mDglp#QZYsr<4Ut*8O=6}P;bqsz8U5Jpy+^(k&?%ilE*Sie#?tRue$As zKzE9fddHP|$1>`D%a>aoIM|I8J+2fzmQnP=?pZDdh0&AlH2){FbUHg&x3pf`TVi{I zbUdzfJl^JAZ4|9@t#>sT_L&+Rqq%F$9r73na9jy+Og*#qTa5v`Vx*^WrKd6ZD7uD$E2k0ow4&%D>>JpTs3w)D zCKORMAFNNBG9{0l;rKG|;O94&2W5Ko@8?L-Ll3&qqaO@D>DOO>ExJ>#RP2JO1PN|Z z32s88SJ0l(Jw8@rLe4`Z!$~E>3GJwx=AmI(6y2^kvM!@qb*Rl8>j~22q|)Ss2(~zi zIFON&bFk_UcR(REPAWA{Xb01gj_TjQYo5jJhw;oa(57+kK;?sK@Q-wSaqxKcLysOk zGKmH*4-E-@QVD%RBq|<7etmCO9-6V8`=F5gCzbpsw3FsY2lY)~ZGN2Yar;o2>lM=c zq|*Fkn}^B?uDgW7OPYw2+F5u!BZ*HciBD(}Uu!&bFOo+B-mV0^z0H&4HWJ)+CAe+* zy=ta)NG#ixShi)>tnA%$^aXRS-$wG;uH>^VcU-(Q*Dw8HYDOCgWV;f`HccS)k#09O zsc$1uYgeMyre<8#G0-xpM?Hc&wQnPVYgYo-rU@L)kAi`_jBgHFtw$vbS8@9bQnYrZ zXl-H!_EAKbQOV6Q+DQA_mG-sCN!P?j@Y_7Z^sXld^Kp7u)wOm)!$nWTOK)J5tHRowH5vKg$xE@8^POjBP;smpMZV&=8T1T+4TE zR9qqtEzm>;jESOpi5AtB0;+$o`2LJTb!Lqd=ta=Nnl^>B4LZa&5hl}lKn1((PM zCR)FXTVp!H4V6ngq6Lu1MkHd}SVfq7_G#F`5{vDEWF&+#;u?kJa)Bzcv5K7A7uO7$ zcIC?t*3kvkh=esVACx=9oDWE@Ll}dkfP zC**bW)7;0W|466R#yQtjtd>BVQa0Qa*Hvy1^p~i&3+(MywGX4E6tJa~5L`+i2x5$s z0*;gt0!h&eZ3JQGp_z*LGzrXqPl zj)AIW{@1|nAx2p#U|A_5%&M02+^C2dRSF)_XG8JN84u$_v;gMdCJ@57IB^zL=(|xHnjR0r{kC%qQ1J z#TFv0l|Xz_B;*sV;a3}+-O8BuqyYD%sF%Jrx&?&!PYM7~N{9f(H44iq0G^aQ;fcNc z!I&lmoF*j%YFf+6;#!J@5=cync>8J?)}W1Yg(F5Mowo%n4zQqqNIc4RxoNsNziI; z27$3c3b;bb1{Px5xMm80y9s>F4hmT0fIp;!07P7)uyg@JNZA-d&J8Skg!pyq>W_tDv#*B5Vh7M3Wux{qleGN(8uSv^ zC#-kC@KHpF4^LWbXZcS~PGA4!*c|7#*sfvK1gwuDa((K###J5+<5584Q8pY;^U8xM zI|?v6%EsB*i1J`gjsjGD2RxPG+y8TpgJU0CB*&IbR_3u~96^T{XYIrshC*L8ir*SN29KLJr1I9gpIVla zR2H5())9ysk7-bkX_7mYd#xT$vkj(I=LT2jM!wB>lG<1{&1NARH7@h4*aZ2$!SJUR zzNPyOT6MdmID(|O4>^xszk2FD?J-YOF+S2(b~r=)IAd($x0>Bp9Kl%Jhdv*PAB0M- zhH$lx7n76Rl8kn~V%EOZ2%p6-F7MVKI?R(fAVwHQb0MR-Zta;mJ8ohQn~v6-f7BRc zSMnvX530tNSKIqq1#7+zS#uH@5yN4})i;YkFlpFjh*KHzWVUC?( z%@J60Wc@+j$ggVmGmhYA99_tou={JzyVFkE^L?oKJ_+95{CHk5t`$e*iX)rZ{c&|# z#&5o2IA1Z!FUnqcod(0D!L?7Vdtlpf9}<0EpB3h6tytVs;47&Ew)-R!;!P973Rz4Y zgO_sMv{@GK*Q^qaKhoalLv8e_JkiTlS7prg70dRmCTke@{KPgpjvzbk1H@Y*HFdp!=Q(wZkxNpHf27hi+F0jZwDPE(wR`$dJ$)R` z9#8{og#v7!BB2+N$gQus2XI!ZWsX891`na{!?oZgk z<0tfILws@tOBW5d?wdWX;vOO5SI2$rQz6&=bT>CWf~i2bQ4OzAjrvHuM!SUIq`*Q7Vuyw$>*uirQ**^mS!?7eH>`g- zveJ=*0n8fL*e7uw>%x?3pG|-2(_D`qz~nYJ?wZY9DGcdTqmGn#>+^ZBo=WfnW%o9g z;B71yo7=9wh7|8R%cV!sjQ+i!Me)NXl`F;|scO`9VzLwqCmDJ)BYxT?eW;Q?3ESAJ zt%*8vf>B3c)R8rT3`}?4KxLlQP4KX}bH{A1nT}Zu_VW-EB89w3}F>^S5o$i>K+)s_U*I2HL|(x1#I4u5JZ3 zACnqh)p;|UM$uoDS2nOR^_#EObb|S@Uqr;>-1&$y#Yci^o02osM4!ZL+@P{|)YY_a zxxwFZZ(Y4M7J5AA+Rtn>-5b=&az3ahR4@6BKb~>n&O{`1Vb^hH*O93pVyVN8!kDFF zasAP*y*}^n$r$;#)-3fQ(jJ$ z#bC=7a8wvmJ8}BLDe_qz@3Z>&j9i((O{C?)yVuBeuL-Db+^X6}d-rE7Tv(^*-Y2Xzum5aTeWN44n+*~h zDbI+NH^=_D&96)Bzj*s_2YhJIKfr~+QFi9qXY04|1aITH*a8O=_g~38{;I)3rop14 zaty{~Vk7(Mc6x(o-KIEm)AyL!TsIn)`#TTHw}(q&U%zg8PC$dyc?%4AE&K34P517N zSjae^xqV)2cJ{mRuKmb2g|mfm7q9a7T5@!W|Ik`?D}Q*U73 zF}->oYkVFRl6@!_Bye%fg*l>hx)60DZS`is>LNdH7Kwd2SJV8t`m=j?X3gT6gY>og zA9^Pb&X@zwwmzPD3Y|#bYOq~B^E`JM>mhU&tTn1V6w^?66}L^ue&6hxZr0hao$Rc; zaF{JCz z=rJJK|K4`HApcH%eYU8f+U=A%^soX;e1z@?!Qj_?ckBlphK9ekU$+#TO!+cnEMd3& zv!kDL-PqoVS}AF7ColBHJ1tm3r{NW5bJ0DPxMzaN1_F*O;}hCeyfS6{&yBNZQG3T+ zE9q|a>piKT$)Z1|NeB%Y8A&|Y)3CiR)bL(I?S8+|k$He2hpA3}Zr67*8ULr(ZOTO- z7S}CkE&fVY6=nQpnJkon#Hm#bns2tf`dYE^vM2GDbjIUJr%H0M#{{F+vgt2t*0X;G zh|uy(p58H;)N`0mv-GE*{F<;tE$@lJBfQer5!h)`dG~>+)`R0YZu_x1-$~}!{_9=> zpA3cY2}wmezgd149Mbv<`6@9YU28y0oENtI_UVY8&~~ri#oqeiTCmxVYjhXRQ=A2< zH(pS@2wWzoXqe>?y>OG34>G(uc-p9Kl0d9jmsDyVbxk4KZSwKa$i~zA=aWsTEXF&w zGcDfuk<>{>qeVqO%d`j9E6hwbTd%FIQo5AJh0Hv4>|~~BJIRu{`_PN@I&0G1(W0`S zaYoP5J73p5@xSP6$UH@#K9s~;%w{l%&xX{-u?2@42-b|bms@1_GRgvBVW91=+8poJHNy&Kz1Mfms_LPLatHsAN4-5IlR=$&W zc$4>#XMc_{y=&ZC$LkMdwC7oIP4@9;$;*pyzXdWSRbu@@{wWoL?YWgqzH&{#C&|dtLvK8`q467u z#PQGfEd|q-ZyH~z?-HfGrh0PyHbAOe3xU$6LqUMF_;(9 zlsdRoxLj-WvhJJc{6?Wq+h*QzrSSV$_nZ(+(_P%=RU?R)< zJXKMqU2@K+5*>9&jT(`X~{0rH{H5E4E)xy

ptBo&w&PKg;5qTyp3)4%E32Vv5 zOMyd0j36V{D~zun%LWowN6ieyInm~rxOa+NDP@!T;BRj9?WTTdy;hujOuvxR2A39D zqg#r%`e?RG)IsAx0=nUBr^8An)oFP7vy6;oe^Ko6d{fMe#f;P5lic*J#3{X@l0{Sd zKjg&=N^$$Q#EC$Wock|DqDJea+sWjo@4fa%^L^H=lwR;D@8~)5_^}e8-MAj_v6Ne@ zM*NeU*yOK5rnQ5X3;u}DW1PR<>~-qg+b1X>(2h8?UA4%69)?2AN7I_Due=27Dok+ey zBe%JR(Z1w_VbotvsKnBLEoHv_PP$AEl`MKZc&l+WUghZg?4!>{w#txav8Y!BXHi2u zmC^LOyU%$v<0q2tP*sp#qN5L@gQ429>ECczI_ELGvo`Nw#r%=?hOcSPuBH1vB`99( zKkD4KA8SU3C%phWKlqq$8H|kKWKZ&m%YC%J^K%C#cyTm!o z;hD@QlhrT6^+9Fz(aVP4N;|umjk(qOddS0IzTYLHKIJ}t~5@#?sEUD5nRXi{;y) zFIU3+TL~cy`Yo3==(kc(ZGPt}kqiOTety-2k@DO*&`rSD_!fE_(@v<)&){}o1PvrZz_`}P^e;0v^>y?pa zIbH5rCtgz!Hk|QZGgklg#qx?lTV>}DW;(%|RFh}_PXK#p4{rf;QyG|>WPgn{YB3Dy zyC@75rCbVLVmvKq^SOXJs*dwEO8d`crpU*n&HOBTX9T)JiMcny8JHe^Yi!*A>hYIA zrWIe9?f%Jy;5WZC3N%F3%e4(w40@Sf#qrXkO{aM4wdu}^s1fq$p^wTX{?a*Vcfi+g zua1jUjtz;H7?kYuYYG1xng5U5R_C6tXG(? z*>|>NI#?i{{LY_v-u@8@20>{s2u2hbaE-i4)rs)u&@atBvoQQed3)Z`u2;`MiIUKN zqr-~?-sg6oxQuJS1oBY)({j<7{`J6%YHvc$qGu+_$rgdfbNm~&L%jm^)CT-J4GL}= zweD&zjM?7h7a!NG0-wSJytYz#oo3I^UED9^Ce2EMNU+Q~K@U3lAbIS5HFlyV->M?= zJ)h_+y+7eyWZ^t9GqmWvgwirP5Rd#H18>g!Bg{h_$bvSN%b2EFP`_02g2br6cWRua zlK6mj((vyrI=-6JODd)|M-5;4IL5T^()2}(6QMN4T~mAKSR(}Y36Iggz?M@K)N|^b z=7*F1n^>;@ODvJ=u#Z04ZdCubxT;6~#)RahJ4z>V8R%|-$hpEm z9mj&3AMB0|d+P}E&?kfl(shNpDaDsXzl`kX1ziR$H3uzuX>yd^JNY78ZU>h8Xuopy z+ph>)dL-5^y_9-J$rU7Yu;=V&WOk&J24k6&w0XFZ@M>F=P0#j$BzXOD=(o4iJ^PVF zei!@a;ob5F%zpzeYn7^Qx@k4hkziHpD-9)Ob5Nak}%#eelP(wB+N{ zgQ=w3&{^Z@cgzDHPMG~Q`ahWLedhgX^1(phGC274&~D6IBEJ^jHTV8Y+ZWb+U?>#{ zyfkxP;nb1e*v-Z(q$e3>63j7z2O4Efaz@3{PmO%mD@?Dqei$Gxq-`n9c+RK!aU#iz z%2{>GWu&<%?g52<@%KiDr7ufH49wyF*Z-36qTTH+vmmgfUps0txf>k}YD@FhNt`FS#+?dd zdQ@)zJi4^0;d296j{W!UkqxNlpaYtK4p{pnZ=YvKX@h&FJnl~NOEAt&8;m=Zy9t)= zQ*Ww!y0qQ9taP;AKAUq7ihuhqu)07d=sz_<)PZO@D6%dQ&AY!MM_wjww#&rLd3)Y` z*`d+re5@mr%V_W~qlPp;9*8<+%nn})ahd2Nqd=egCq&_s8asf?P#&c8;8|>nm1g9quyz^?Vil6CVA&j4{s0e`6u&%L0hX zs7+iyvR*6vzoq8Ml(kq_eXi?|o^6(`hL4t6Z>(=+N$|ZGIbtc>PPjS2ZtKo)72m&Z z%k-azb^0mX_npwXbW)~ndr#kAX#Q_CFT-zgZh7s+ zWgS-cucm|yae^-M@UlkcF?sQ7bO`jxw5vz|hhWtHL;B|+B$59BkF22uSD-EiSKzM{ zWeT1=zsA`WWQTYnQ+m6oAyrA$(EXA?^W^r3x7tyqV(cuUna zxk-Y*)v+L7%2d~~VAP#YZ%wP8)?IJo*hbs}w-gTGmI4xOT*+6f@P3{}b<48T_%Auk zKI}i=0PBTRmFT~!HZT1ZFl`Lw+;9XYBv`LC!g9=6Q4SiRqh|99^|$z~G> z0#gnGQ!(hAqDwgWYlh|M*jei8!M=K4bz=b${Xf3uY3{!leFX12uXl4XYy4@!Z{kLUx*Bd#uhp#_fOH&!zUi+$HsL;UR zQ?(05q(}FIsyp@esgz9H{+4k?4cfp&@28Y=bG>o6n>&RzZG8&t0w=bY~lMb8_(|0O7xm3kA?vFAovsj)$6@^rmDUFvYJBuQee~={lgeCig zHH`(EznF~CkZIDCQ8HVzZvBE-QZrpr}{z=c42j|O!+b4xMQBq+msIX`?B+Qnj zKdPcX3a!RR*F{}06H(1xQq7*!N6t`S&!qeQoyPCzglv`MY?b#Rvxp-$4sLx;?!=1M zs5|eOC_B^*JJdP&Sh{QJS(mW9OW1pFL$4gLy`|F6qe_g?6c$jLMHtN@I-8*xoi6s|7~{LqZfAVOt}ykd)%K^E8ryY~toEE}o?o!a(6M$z z@^wVob1p{CGDaA3l^JrS7`+UAV@D&$8uUk3CsKvGOocmzmf68nFJYD=8SK?WeIs2V zGDv@GkglTUlt#yzbBj0U*1fP+krHkV&*z$+RHK2#^O(^k`vKMwa}K3joJx@;@Y47V zE{1ei^tRsQ(tHkKalm?oZh|>yvN`8_=b_oLXMkKPL8va4b(n1{Nb4y(=fmo?`J zd>XHz5>j8fUskE%JC?j&Z7wBQ ze=>;wQ1V2W-I6I%{S#IEhZw)h-^+$Y&kq5zl|D)_)jsQDJ+>0iO=Mg@f6mFw? zt+u5P9(uogRz&xlY)AFz!SA3kTvCO_l+c&t#AV%NP^KJtMR}43+9L zDMj3&5AnVuH)v7{ze5{rG%h=0Qp&(Y8>%0oezNgBZgj_TNV6i4=qLB5`wnlG#uc(o zYrI}Ml(T?m@y?8@0*V=>9fV?D9C1WSX7)b{iZ5nSZqo!d0~jn{r}xp#F?pklC>%2 zDmqqswBl?FtSPTN$Rqtdg{uEEXCpmJ@q}N8@$IcHO=|ylrIqAPKUf7yljTJIwb|N?|rq^xL>TFw{ z3q3x3?~)dtM_!;s97;w5e&rOITg4I{SNL^&VqyHw*6TkvWvTE8Xb=QRWFi$Ec3k0R z5Mpacry9vmYgn`R1##4Qa_MpqH6@~$U~rZ1PTx5J_%(4Pg&#~lJUk)$&gv=N5c2Q| zr=eav-gNX=d+Dz8=emUSR(HQ=dengL_;VUQXspgIGt84xz&!TY8lLOuv>7a>pPCab zSopoyTTrg|x$XM6GQS%7eR-J6{?^2l=Llf3$;b1{q)GgA^_`I5gbBK?JWT7L>vleo zW?AQjmy0pKKDr+qeOyO{={lkv+~La!d0GaW(R_-ZcdA*Kk_8@E;N)2_Q5rh^PKCiI zCO%0<+h4d534d*T@$^@EG|3sQ;W6JYgNyO4X}V>?5o({5x+ZG?{~o{@Ltw40rwyPn z0J@13c%8I7oNgKo5M_tG1SYa0Zvw<9KobkYk)<<0vN4eCFeCt;Y4`%*qljz(i%>2C zC=U|K!^(kM%Rahn9IamAB!KZCVLUb}xVs`%-9LNRHkx!@dJ!x~c31i6W?)IedKhLA zk((%pG>WJSuM=zbq3Dj6Z4w5Wf}wgwFwg)D)hwY$Y|}Cn zfN-iHJjhwr!Ch^&JV<6xRtZ5&w!!>w%0 zt?aOD7^r6_kPPZc6!qh1ZmG9i;qz>kzKv!uR6Cezmc}q}t!-rC3sK*D zv>863%k72x_N}MF%*;=Wy!39Lcfa!BFX7swV1^unt~2p9ejHRU-bfcF%&L*kG!Bh6*!w;@c!N)+9+{ACV7kr>Zp* zDH#p4?c#>Eg?j2=i0uYZP z!Xv5`K@7lYX5dMPcnlMs$TJiq0!0)I2S19h1E9fFN{A$p&6+!JxCy9ukW?UrzG{*_ z(%5cJgW|u2a>95qHY-WLBOl`vWAHW8OlJ_MVhc2mGc=A)x{#0f;tmv!))bC5`@oHD zCsK+Z0L2fbO~B#zK-!h;;49hTX%LHCsH-8MMwIzk>ifCaGpHj5>d49iL7$go2MC>C7ePeUMN0H)%-Txq0DWmJ?0c z+6a2QJly$&nLS)6SNTOzEpOUqlnHSb(F(Ey5 z8lR;<6)+s=6(@EfN?Lcx=?`24BE|7F4{Fd$^5hBmyTt=tUurQU;$=%C=mAi)W1CaK z5eewyKv}bj5r5V97UvO>P=Zem@jfy5KQQ<|luR+5Li?kYt+D`_EFjR0mu6)o@?ic= zxXwy_HD3z5HJ+o51Rxn@%Znl4#n8QhdgStOK^&0~M^-8TJSriDJ}(dNyx=r-WxN51 z2?Ny#yzFI{ykv*q$(y}%OFg@{$3*BVN?W&KF@Qib9FyqAHs5a368jFqSO_u4G9oKy zTYm#&zX1Vlaw!idl^Eh57~&sIg@C(Qv;8?^=V=Z4rGg~mtoc*2np5+?F_ezHaArh_ z_HMbF9k8d(p2^9|3Mp-G-g0Rn8X+J6& z7NBW^L}hyhH$H=cyqFQ9VyJ9F)qrpBM{s#NtCR?$x68w|&g+6HO%7cOH^EiTCve!V zUGbzPmmJYR@a&~>wv-hK?P4zO&y(Yru5Iz8d6!@B1Fq6>4}2|fPpMzkpLGr-8#*>G zG;a)^!IB(_(`>usC_Rmw!4@Bj8}7N}6g^Fx!D^j|C+)lZ>VN9v(Yy@J0~JfkV!m3L zjZ*zWSJZx=F??lHeDIe`j`XQB+1Y;2(#pXp4ja88PBZQDYxbm5H#OAR0$ZMg07aRd zj(fHf=_k@)PvKxuP@bb}MKZLcrJ`a{U7q6zzQ3kiB`v{DM^`vG(o}OYk%r~l6E|FT z$fQIa+3@V)69EfdimyKqJ)h|5kEU04Tj!jD zggd!os=oIsRHhEp&RQzBG|&~*er(e~B?WWo&~Z;#(FL78`9qZS#nGa*JSWDABzeoE z?7iL>PsPS(As}skG+s5PXgF>B9NwejE+`OHLri>H;}NVN**;tUl*}6>d07_IJ+&Hy`dixF z2DY}VmZ>+d+rNqLa%U7A9zmCshez#Y6hzj#S}Biyq2nEopc5RgalKtI+$@U6d1_u8 zmc_*3`RmKGCQz%|Ub5%4YF5gzAkck_U@(VuZr7mAzPKbb(;hMMZr6CI%ELMWR4npy zzhi>+HRw<+=SqjBZo#D}Amh!w)5RhOLSftmX9W&H;^n$z?}{k}2b@@0JoIcn4NWqnqW z;jVV#62_sGO`j}Xwp-}E+S{m8@8|_sOm8R$HVPR|Z!j_hS}biS=YcPl;_>Ek7JnwN zeh`Ccu{6Jojn_I0q2*F1Z<)z{W?CQoy4qSSI`kxS)j2vw8A-e6)e**QV?Y>=4j zC^x@+R50n%Hu@&smc0ubpC#{yx_$_&gnEg?}aaU6a#Dq500aULNvPR0=uD` z!T2*IRX}YYLKz6a0EbG5zk%UGKI!a4$^HUN{vN2ma&0h@d1f?Hc%Ogq$hatVY?q+d zBB41yQ3}6cdMRY9iJ?dWtguuwR~bcwaDZTEDvcQzn~+97gC~Te zpT+lJ=lEZNK!93cQRjgD=caw$u3HhyG@@kMn z40JOb4G3q`-xrQPxz|vWdW}Y%WXHc|TY+MLQUPYY2hGL^!DtEtyrf$8MegDV>oGzq z^qAoY5{u|oZ#Sb7H16tV_)EMATofgqJdz-QwHc7Cuti}gFn|>tfdfN60u2dZ<;59T zd%u}DX26@lBf!zO0@in!xBUZR@HZhOGbA<;cO9kT+wR!n)!^6;hQL?KA17EoXzqPet02To91%bqUaB(twLSLnsYR^VMdI&IVh68xtnO-u8 z&)_-Z=#|L$AKar`Tb{@?#Q-;FNZ1K$6RE541FT67m0Th2zncLF3jpem!nn}TU9l!O zRO$vs+9N$7@-xr?8w;G~??=*St#Akn0vx0?v%cBE(qZ}G zW&L>J&v2aSeL!J`WR9>_pX&eANor;QScHKu2!cy>Xn4*K!lN$k=5mzn9OQfly?Q6Y zRu~$3y`0I1lY&|GIX}L zARM3)FzYs@643OU;YdI`*JBd&t&1<{$wn9cW}^#v!?TknqYJG?Ve$i!!~Za`3HX^G zwP3wqckJ!Ss%)2f<1meP2G0mb|AyF5_r1{lO%ZDxArABbhT0lxGl{Ah0Wx_9#32s3 z8GZ#e@iQt1PaZ`W!1@P}{9qf0p|}dM!m@*`??U_lIs61zc)kevHAHgmDY-y!h$Gt! zuY#`LEoY-bbWMlxYZHD@&g3O957Fu4l%U^ zKuEvg*Y;6_!U6!ILnR~x%mmc{%U`%Itx0SRJ5-7RzW#~01-cJN4g;L*@shCZc;q}R z4aD>Yis#&h6A}WhfIwh_Agx3&3^hE=1NwbS2!{#=FwkIOH0H_$R2u=uAQ5m%SQ_{S zxO2+}g24jS#SjxqjN>`FMQA0UUu~VKSWQn9ltSS-8)WMY#`^ zloAq9yYPcH3#bi79|FmSLRk$l8c6Mma3WJ4e(qB`SG$uj>*-J_cOqeSB%p>uHp6EK zlt`g)0EU47ErEM5+ZU+9Q!DUG*bpcHi9s>IFnGW0H`3ksQy6BTFeMA%B?@~T0zrc} z*TkqGo7*u!0wfqAijzawI--Cd;1ot2d6=mhh7ti6f&L6eL=z^R5rW|tx^q@qdAU4?k}|>pF;EMF3U%xEo~$2h=MosM zS?{8NKfx#lxfwRoG!X<~hfHuFHEd|$eJJ$gV`^g}c;v~~?LNN?3WUT7YGL+`BN)(t z1|x1^_*~Lx5da?&VT%uL*{~P@0V>Isogkh|qf46s;Ua*cNa0~v2>AKg$|PP4B^+Q! zz-?gnxc1VJ2tW~u;DXmSYiN_fF^mX}+jxfpSR;ZN5VETnrZZs%Bp{4J!U$&66uKdB z3?2gRdAa|{`Dc9akRdOQ0Rsqw3?Q(+zM2t7V8(scR6|n*fm-9ilw1LZ3KGuiRDLBl z9zS@z-$uos1}+4kjYNbHdF0AJgTnwyco-52W=k4~GH3vBcNa)X4F|Xo z@UO6xH|G(z8ee&8?csIP!ZCaZxEKB~;n@&bg8Q(*x5lnFbX9~Flkcc;AhIiLjQ|;V4P?$(O2!ar5GmHCrm)qHEf1qAj{9LNd8DA;{#h^a(elO}V z9%PdMYBPmX^hUHixWz9IT!V*w#aqQj)(|@41tZ)rOd=xoNT3siRJj6b*Mg4(uiit6 z+S+cTfZxF=tSp9&tFar2I}HX7@q&eetaC-E@ra=S4Xg#W|<@33(#~K^U4i^Iay@cZw zwjDzO)gVPAJZ1*5rgs4;1RRgBR)lf@2F)gdDTzVAJpoNHzyrdl3dX_|3Je^kgn)ca z!{X!Df)`D!b+lzK((~dxDZ9uJpq-jfqn{UMzJ6McJN`zK|Ki)DM=$SIMo6hqz%ZcQ z`tSrjsX_^%0LY%1;LswoyW`X=cby$RU6yNQ4r_-xkte zGa~6lMPiTugCY{fZb~oOX1A|MK|loqIN)KyFv3<9p{&D+it;SD@N*=uOwo*H<2`pZm{#P9aulr>=bxkyuz;mP%)Lb%nLcr%|UP zz7Z*5sKc5(pd;C7*6h^6+lp6v!_ssS&+ z{5TuR0b-?W+OVc-sJm%%NeIFeKL=5aVWz800&pz@pP(@_zt`3?JlSC$_G*%DuOuYvTH;MeUIW%p+m%!n5JMv5X2$`!`f00EQV*&oBE3pw!gn`}}j>Gc}Q#mKTN=>AMqzY3~fiBTX{l|7_d^SZ&7t$GG zB^!%iJ9P6~5P4AkcNiub5f>zE7{$}fc-d&9fkUn%h*|ML`Okm^6c3Clfg~!85djrP z(&Q7Az*McOdRol!7=qDo_6i!Bz_qJ1B9=(lXB1BueF8ixO&kGr0aYW@z*j91z+8og zC*rMUW4-aE@Ny9MFBjuS!c4*2lKgGoAs{&jHk2TbtrQCGfk88nS5VR9V%!9W8ME=j zl&Ud#*$nvK6)A7Sl(OMrN;HtjY-}Qw6^XCJ`WAymH{T0Jv_o@*!HSbcL=Oqe1eKt+ zCRF9;z`)?)373uErvMyD1BK8iQnFmpuE%?tXoI~4uqFUXHdH8^KiPT55Yz?5t-fTX;w z9}2z+PP~STjjugd2s^$&7oLN??G!4WBZ_d%^9Op2N0pStB!j0BP2v~frISn5Cqv@W zwv!MzXaa~MzqG9;3Z8^PW2umo%p#&l*gepWqzRF640H%6Ka%DdzDF*5D=Z8{1P>R6 zO#H#}ohcXYQiSuK)v4LA2G5?O3u_y(apdz{tYu3SIr$1SWlQQJo)2$)vSo@+CeS=p z&Y`+cRcWrQs5l0j1&k~P=beZf5G8A9n36W8Gd6nNqjmV2HXI&|07C*aJ8v;|j@vQj;!ud@3mwAxs z9p97H01b-+7NyA`9>ar1d35@8>I;_W4ALEvpnG=SPy^5*h!K%VX-o*HB$8&9fM17; zf|-fBi#!2O$>t#-qix#)(Ex2jH1q71#R-ej8hD=*u>HYDoOBYQG=KiEK&w0f<31{s7zl(f|nron(0mLFp_h2p2K+X zzXuVj_v_8VYye6ez{bh|kls(_V`7gX09&I7q8tcE2-^Zo1xJJplY;z+I;CrV4}RjH zkw$?d!!i&cAf!mD5QqmJo8WPL_8$c*-eYj%UW2!M%AO;AA^NHyt+m3RF@>^lD?ZHS zG+IMSs~~j!hv_&od7Ipa7E`d7*DVU1E=sbPliH}-kZB3 z7D#9mY*y8G`*a89T_8RkA!xjI8?59 zP`pkPL_qE$sq#s#8kSm0lzZjcibGpb9Ni4oZ8{~YI2vqN8g#WbvW7qknut)xIMFN+ zsDSu})k4ZVslD*nW(ZW2CNM>>_6DMDB(?O^L$!T>=G#J`X($dDHOA(Y!iyd~){vQo zdwh42?EE@&O3-KBs$$Q^)15^N^46@NtM{sw{YQkN^&ZMKvk}}2(ZFhBd|8N-+w+fZ z)Sa3yHJ@7MJd$RLQI8l>-%jzkqhc4M2xADFcGaX%z3?3%%zb#0jqC2U5KgH)Es=L3f{nXv+fMWtyIuk6@nSrIlE zs)2oiGg8o&!D4(6M1ACGYBoO=VHKeoa35=1!-Ad1V;PSYsH))8sxbduyb<@3Xq+-O z%nzP7S@%-e^HZe;l!cXQmK{v@^#n9w8rYBoN%|2%ejS_)IEv8MTU)HWmSL*9tagsM z3c+U0sv<$x6t%WscmC%6oUYz^gbVBNRRFw-fDS07jac{*O6GoT@q04)(#K1&K^_i% zRl`&eX%&m?Ub~%t$R0eKD3L6^qLtccJbqbRr|Q)bPuAq=;je;+&fmyMO{;(k#3(?b zd+jvZh1*!fT2Mu)JG`^LAiiOA=+NQkf!dL*%ko`s?iY{lNyzP(1*YqT4@{{GZKzHm zcdjYe*M~%sQX;OfF(ul#9q4_SIuj{lg<2@z`zDTk6hwVJ>$J^&U-{s+ukdQjPQgz1 ziO2DA;Ns9$`9vaym7EfFm5r%c(TCrJFL^}hr=YbWey8%iTv=CpVY_~1*xLvV>@L_l zSm6S$u`$iqtX0IgNKT)2ly@I?I-zdjTl>OFDlp+#S5vqH*2Wi7@*0Q5hA~ir+-HDN zuu;t_W*gn|m3X;eWqCE}6<>VnfjN0YZZ7+IRhuSJ5>^9C^;L}c29nJhrJ_U%KR0A~ z!NP`AP*M6FA(QDN-^AUecRDN0$09vKR&p1Jz`A;1#pmQm$61(O?b<1+z{0TYYS@`{ z)0Ppv$?qNsA3c4Wn6(&?ln@l#dkBX`tc1R8=LdQhh6+wL)(eI2ctb!%{Pam!8@K#msebdE0 zzL9kztM58j*$qhm?|=Pu?4quZa6B9Inkq+gE?AM|Q3%r{k||gEm~y?v$ad8atY*Jj zu_}AKdXxN_kqS_Zb*&&a880~caRSq{)bwK=pCp#Jc*C1gj^+9TN(w+3CRk zsB*v>E_ZwshjfXt4}MLscEVeSonzi(0ei|(G@XUnXXcNYbah)t8)sh&PDge;FI>*Y zjeO)z2Og~Z=?rxErOOGp{;|y0iwO04k^C+zj(h1(z;IAMla*fm=)kA*rx_-EK`l1L z;1hTa@iLsF|l=8!?I+3bmXG&qwm3ImFnTg$XIv++At zJ2(Gio%>}t7+IhE=aIxJTu;CL{whTl;o0i4nZlXapFF)NA#$D4`D~d0(G~BAr5iVn zc%Futk@fbUmIwG<3{c--?O~s6lkF$ZI z%+E~%cH0BmnyZ^|qPV+D3UXP#RvUNwGIlmrPS0ladJCK+wN9q}>+|+r7;mbyWfFgp zjC^zCdyy7#3tL>L$3?uT5O7VUPqK>%o|TsG_nhp#4Q;SXd zvxTOE+zl#60_RGE!?|@GolSK}?R``-<@cvP%RN4u8ztH3`81HFXT{QZI@LAaTCKO? zWajH%tn*V{z%j+Nhti(>vzKJl$isVUBlhw0q^h>)7>X ztRi7F<6_c!kZEf7_J+dwMvv5q%}s5VyU82du4*#0L-H*Wl5?JG3Q6ZAM&}pq9>2~$ zSYLm87HSoD@v#5q(cW6uz+%CMi~{&<^e4&q&li6z^`7!PH4CWNu_`DJ?3p-i%?4&* za2qIi2x}4|ia{_~_vu88Qsh}KWb8a27Z>3Mgds{vK)$MmCP0Z)fzK2%slfnN6daL2 z(!M?M)&IHHVL6kV0XZaMkeZJ2)-i>DuxlkljcZ_=58EF zC16lQU(opSzHC^&%^bk0@LWC%o*8!>>NM8X>2z0q<5k=P!Sc^#2Tro94oADauVM%t z4*I%Ur;NU+G}K-pZ+vq1%eC3%K%Oc3qRC!n(JRDy4x@hQ-xo`(CSteRwIYtP)WLtL z^Q#|Zu8R8lc!Vp^9BK_6R2?iP?4xuV(YG%6yT(gRwspy`3Dvi{`WStez1CB3ZK!)L z@t|ZC-Hnc4IRrnhER4zm4>_{%OwbpN`!Z;01Z9g_6$&@z)Nz)LL_7?+5c{puc+be-~or)wm$tjyQ9&QvAxL)X1-cCc4dZJv@=uxR~;t07#lXO60 za}L9@`Z0eNe|&*egMRw{eYFQ9zt-|zyvbC^Qd?9wvs=FV`yxHD z`pUq~x0dKpp}RjXex^+`>Gce~W8=jW>88%vXKW z{+Wu!Zwm4ACeCw*bdj`A5==2q>V8QMOq6cx+!$}q51mpk_s_ieJyB&Tl+n`}3G%PL z_GR9U2MHqgS<*-WYrsYj@TUuLImxM>HXiLI&vY1Pk=T(jnKWBuTU*%TnQujNmN~-CPcq41BJMBax2g;8dOY5f}XTrK-ZEr-5Q;I+VI3NK4(DqQQP*5Q;HQSZUsth^d?ZE0qLAWRCgqDy)-J_!r@ao^mBYivT_-#r|0dV`+`Qu> zoP2pWFU@1!S5laRD5d$XESQ2PhX_{=&$*aEj2kmcKht0MTQii0>gQou4%Hp&ayRWe ziH3!P;887T*i^S~`kWI5*VE5UO93d?QOWCir&GqVhJ&I|i{;GjN{XZf*VJ{3kx=e# z27my&?rG67$#XI-dWjrsa*M2x6C9{uu~NMLX-2mTxH)tY#D6ul`Em>Gj@!!dF0t8M z^Kyo|KJD%g3L)P;G6mJY{PuczlD@jy!@daexta2F@x6aJxH_)jym&lNWPN+Sh%@OH z6*i;8=1$AAOZu&{^|sq72!T8ro%dv||6HFApRUR4e!1Mey_*gvEvdN%x}LxGkzY)z zV6zT#dz~zdwjXxy(^0&6KV9Fxnnah}%pE^3eX+5TZPnO3<=q@LQ8w;=m0fFv=-#(9U1MKrdfw{hi654==rorbABWYgq+5Zr#Rt zDaHh!24l)zfFGxi_l-nA#^i*#&;~Md5XZbjA1g0!Q}6eUpXpU=rouAG^qttO0S{hb z(KwdGZ@1_B0}c|x9od^d)2B}ptkzA(oEptk4}vWI%ym37+xTP*L|;2<8I-{15o;V?7IE2>S})bud7THq` z&SD3~Sd#)K@xUY#la2z6K#_>+L*tbslvv!`(#Zf=im zoF`d($Zp2h*SC<-(|WuM^Mv>-R4zWR@Pdf<}PZ!dUJsUL>oqn&o zw~ro&gie$WmsF-`2j;ooy!OAl0x!LL$`GOLpM+IE4_vJ^v#JQ>+|lPzzt+!$AH|TZzmh_l#K-JlfR&)dgqlej1B3ano#&SPfdwo#lsrBOqM58ps7<-9FGL`%N+Gs|B~VN+!zSLc`q2O-(dpU zGHDChnC%jx&86;4Yh$nGxRfSYyblu}rh^Lp#p;AXN3x?*x9pva7im8qq_MPL3~Xps$YMe z!I5n%?#rjvs0$w5&{s(w7*hg^-PJLhKYnmDDzTsHnm9g^Z8(MVeZXoN|U zJ+#dMA5P!fc-?v3V^%zB>$c!~K0o{7bUl7N57;X^M{A zB})?4q|H|5=dUz7(o_&Gb0==wvy$f@OE2pwZr zrzVbKB#vtC9+UsS+a1;n4`}5yk`y$Oz}o!7teX^hIi0Tu8&|}PYpv3wU%8lE|yHC*?NHyZ#{muqJ1`n%dDoIugoAnjj2V zl~Y+w&24DzR#}t@ovlVH>YNOypumPRdrH}mrpVHg+}yp1`MA_F?X_NOw;aiWY}5a!cUg})o5zkmnnFv z(X~$wM%nFTE)(DnHf8G9>{~z%j_uDSq#M7fIiQ!D8z>cO+PwBImj%{^Gg=v_GOQ)3 zrL4SwgyRLk_0f`(kY`9ejYbC!(ocrhf#LFgXr535EpJ^G)vw5%c`F<5iD`e?LKs+S-@>H3vvA8Lb_N$vnC&#^%uO?&DQdtRI4nB z_ii>XgiUw4kpvN_^h1b2#+7N_Sm^m-_%l1zX+lIXb+Rwz_>BXex;^9+2peW-7k{<| z9SAS~NO|j0Q6LdxkJCUO&;GT~EnNhei<(plqsN7P80jSw_OM9?LZ1hpEZZb6j*cRP zuLjsqk-1Pmhr4|{&H>Hm!!6{0*Tppaou(>|uAM;3RN4}LPS7#Ui%{GrhDV9>DLl3^w7UF@>*0!Mv+^f=rV6poWkoH^WV4D)?5&J3k%Ae(37O@ z)sMmH3ut78=_I_Q;=nzuux>V>80&h_)<3&UE{RL&^&C<$fX->}m+e1OJsLAkug`&V z{4>1YqJw^VT5PMapf$<|ACW)o3}SAEEKw<@*r+C_4?139bXw)Njf>5 z1ednCBT^1b!XBIllP8x%Zr7w$R1_-*PpFf&8Zc)qGsbJ^ z_-iLO*p_LjV0qcef0tyUe6o-_IhgHmH`|hk_+7`WfGM*K;|su)VTSQ_2iy*Z7&tr7 z$oq%LK<@zGdnodQaZK!$_Qo83R`<6!piY>rRw8aWiAVCrlV8B^jJegl$p^Iv%k_Q!QaeWJuz7R?aJGW z&CJ+ocXaItAg@eFM<;LcG`?QmOEaKY&P&e@i8USlCQ{Vwh!f!K{AzSj*8F&C4GS`~ zhvHFGL7Jg9P+{vZ{ypnSRD*}6B@$5`<3Z)PhY3NSSMb7U1!Z=JE9#tr4>vY99YCOM zAEUy<bEtYJLCZGY{@S7Pp9S3kKMab=O6A%)v3pKXvYy|&gU9$*U zp>dJ{be%Mphv+OMw0A;bwoF(@YtG!yUfVp;#@>_o9Zhj@0;_S}$ z#7AW0`*vuZ=3{i>pFqxGWS_tiWB8oy`&ug>m%V0eSu-_zOqJuahwkj@I7@4zCy+tz zyI1kD*Z+xAzDS3QCujnf{wanb_cuR(eBjFTF}wCiv;mg=5nje2uE zENlJyqP<*{+_y?HKK^@=M2hrl=JfodV7Fy)T?FLKoJ0|sS&(>~yH5O`19lsY^h~n~ zmK7eV&3IR>NHYOO1nO!JdvF}-J{vAQp*r%y7$DYd-89}2XKQ__BF^ZkA{Ii|(KIoR zR6X-No9aNYT}hoHrSBkXDyN|wed<2b5xVv@gzeSI#dj?faovCH=;U)M*1wa3ZXwj9 zT28{YP3!R!yw*-gU3Iq>3ENh@Pw)p|v9xAjgFT^M>yES~n?}fNwFoF$Jm$b5%qx%U z-|Ba_NH2wFs^sEU8P1YfCD)QXk$dCpmw8A{@}4LqQ;~)6Q%L8=9Bn`*Q0;dNkZMx5 zT+|T6xn+!fsFnW4*}a}72cySa#8@mK(zYsStVXa=8 zOf7ji*Ks$3#PY!bU3Q-8^=BF1WPvXQMq;U+_jFo>)TFv!lOnAh!CJi*wOajpt|M+_ zX3@Pvy4?KNE*n9q0+bz5e+T8T7fRSX73zOZgG=l_Xs$PI638tFHPfG`nlF(jPz&4t z&u~(JQ+>qLX15>Y1>{F*lso}DNNVxy4@*%KbgU=uedgnIBN=%9&oX(pf8!pQv|>RA zfb@CH=lRqFryUehR2ELB>!|J5_ucoq|I@?S*|u=8TKJltQ82Pn`R`^y(9Nq#yhG)D zVK8>olXvmZcz=p4E#oTLsY{cxm~iDc&9vZD$LUoioS=}}pt5&!deI#5+%J??F}lv6 z1VQ)QG(q$Li`PrHhtmn#Y@dvkSR#*lcWt2(cOFIxm5f*?I+WuhD(5iSc#vBU9lT_# z{Y8}9ot_nN6Nl1g%cn-!B+LD%|KuM8{>S0IT)k$&9C|X%B|UE)lL6DjbTO~>0H~_K zrN)bMGKgsDNd_oo=&KSY_ltux7f6`OAXQtDZ9k2-8+86|Ewc&F~K--X`ntck5r4sy2k znLA2LI>`KzouFtp4=v`@p;Q9uGt-TJV}}*JY0pP}OO4<~**UbtK&@FAq zGXb%5t4Ujz$wI~3hF2Cf4u8Bpr=gO=LoVNd7n&i?+z#i`K9>G@9wbhNt$6ze~u0tBO>|LySx!00q|VfT4I7h5{<+q zTEP=+XM zWoV}*bHY)dVQ)w;GfMi<6>h(YJ=J+m2ruM)rHj*~m4^`MK;ujO@x#$i$U|P{d_`8G zp7DM(X1$9+jv#15nTPm$RJYml=-HwY$2SlGcSLn-MOu-7@Qe1KdNY)U)UZTWCuTQ( zYu)5+CTc<9_2+fiqrvMio$=O*C|F#w0s5PaS<4op{i4=L_~71FR)Cqz667XAc6+VY z+LTB{*NXdAm8Ral+hwAxcvKnP+LMa`rAOxx}9y;L!aV8a)a{@>- zxUr8r1pGE3pUb zWEQWsX6-8YhBYUvbF?6O>nib!5`jDucahsOx9;P%YmjcTG&+p?QOP~he=@RewB!Q? zFRbl7VLiY>x~;UF?aFh{aJrJK$3J~u-mA1uSFHe(Y|?H zu!oX-@E_g=TsMCAhM;Mf-qpg{uPFbGz&ENaC9F=;oAHvB{TZWC!tt87^ke<7$h%bF zYwd&RU3P*;Rd1HBj*<`?_DN(U$x6u-(^8F1u1}PrbHE|_I#c&uSbIF?=BxdkOT*CU z3<<03h*CA|08Ph`m3`@nSZ;BTt)qbW_1TZQm{h9h5>Y5q zoRqFtvNt*^8ukKY)*_v!Xqk|G6K=tq#IJ8u9`Rve2IX&OE6giF`>!^f=kHVE5*n|z zn@$d=@0!j1qBA27gi@RvKfJ}U zO1uu6{!hs)M3-<5U%M1k%J#P^^$A;ae(U^gdE^xK*Afy_SPEi-_4Vo$QbXA|M|iv{ zhN}p^IzNn1ezy~LY|K09(FlZ6bvZY7oI0f$73Iy`QDC2YVmlouBo}=eUjl-D+!?#q zpdQ->X36wkkopeFT0_2N!Jt46EQVpyG!vtiZeG3)H}7NVoKaT5A4!yqG3$yLxkx%b zez#E#^YRtSe&)>Vq_b3fu;KEfAMw1Hw!L>ssM^e%Ia{Dw>k$3Dk|o~c7bH{f73OdN zjghHA+JTLk3V(pDpV5QtHu7BT)drl`QS3uNiZv(|!I>ShzkAg`6-z4-AaAtE?!6vY z2<7LJzq!vst{@f7>(5*yOxWi7^QLBhO$YYFdG$yea1F2&sBcTI@-Ku%bUq6CLmN>% zA0wUz%8DdUf%T)WhZ=ww>Q?IrM^g`P?WW5~Tb`DQpG#yz!fKnG(+zKXkvu`OSqxOJ zp2PSuN^?xSZG(+I57E(!6y+4*cLp;KDC95Ou~82HIzD4&C!wE~5Rg@IiU?gFx0)4` zzT9LSPizGozPJXXOPAwpP}$W_*S$iYtCD_DrCpGL-lB@xeGcu9aJ^loi*i7 zlsNUY)LD7>rcj|e%s4H&IMaOd7TeL4^A?@`wl_l^u-N@QKy&L)JoQ>b#m__i|CbCK zdI(mcgYyS{!VOh{aeR0n8rCR&1RzWe8f=H zJ2C!e7k>e_&D8&cck&Z?qBJarBgEUBr+-5f%r;qR;jW!^Y;UUNd_eWw%~esT6Q8!Y z;NtNC7@ruzBC4{SIWmV=`C-@|!HkDTi>Jm_hmPYEKhrRk1wq9;vKTDNZI{-S`d;lg z=emA#RwnYhVv{e#I)-J#+xDK=eZTWJmILV_Y*~(`jqGmM>CHKZCC)Gz7d9nBbuM68 z!Mnno&8!{!vwUSGi&HEqoxVGA=L4p$smiTbs`14+$epWtSJJ=h_>j?8r$sb$Zj zjSyIn3GkCp|CLoqUhbA5MG9Wg)^ykO&*PHwZ+{=I7cT*dFHlO}177S-*uCNM+r9>Z55JluJw7oT`U~;C^SUAgU1U$Vd{fmO!8A z!6DUWlvv=EQGeY*~J1%n52AC?F{lM4T*R3n$kk zO`Hm_^}LKEOVpYocYdp-G3vpp$GH}7jz_s8MF_mIva)V^2ktoL-}^ z(sx=mvXk~Zw#T%%L7;7dAd!}144D-gAv8E`B3=pAkaBw=;|Zeg)KW79>WLu$&D5*E z+#CsNWlq+dG?K|98nAjr{rKrqB^qN~Jl0B^r8T`@eDCexMTU$zdoeZXC+q5mH3(7! zuo><**9AI`u$Pxrfg8J$#vZod53~<*$JkUC%WfWK`pm&NTD8-7>ASQug^BoIkj{RT zgoRs?{tp*~f05&^7FQ#{k|uSFOcn{cN3 z!nq7v6^k=Jti1#3X#(}6q^O=BD4RHncq9rwY88CM`8CKr(calL*5S%w-KWFq?BFyn zK|-iSLWomiLd8eLt`U)#KbV?7xQ5?Agr;wZrVpspq-!uogm|$h)wCqlcxN%z5*=$9 z9%}(Q(1ZV$T5lC$wDZBUzTd~YG%xgXDe_~NewaYzO$yfG8Of0sbD9jM<*BCSDVD3$ z4zDM_E{;xWSfi%mv?Tt|YO_se|6 z@po%ZLgs@On;+~+r!7gRAP`SObXh3ce_=@9L26Q7WbqVfE4Jndns{Nb&-32prlAd@ zWeuXgn2iDg-nNIr5bIDtG@r!l!wNIWX&Y8ToETl>*_sIZcVPUmx${!dE)ll1ci!I& zSa96lo1q?s|%nKzd;#VhkS$C}?x+ynXb&r>YiH_y+|e?!+1e*`P&A2;#fz5X)& zGMdC)ZP1gr0jfE2vD)g~gz~s71+%3?K!G`46b->lf(g@Blue0K&5SwDcy2!Gf8r(Pc(tvX^Q5)6x?MeWe;xDT$ zEHJ@4e=Sw4IT9gfUL`0EblsfD*UaeRgg59@izbWR@=c{vw+VX@$PKwj$p{GA$WR* zn!>hT*fkcpJY0{QIoP8i;^&ejDhRhmpJ-zS!BaN6j$=p-^g6? z1WNb(%9DpTC^KhHed2$t9@ z1JS9|<~;zpU&MbKm|HSa=}9SQYf64?IW71Mw-_31C27jeT!~O46z_zV(P(Oo^Ggq( zvM|IQ6k7xrSLEQ%B#RAxm?gq!=s$tStHh_OOo=r+ux*BuS7BwRCQKNqI-!UF6#uo#SEK@zyl6vS<#Y!7wo<^; z1%YbVWE9|K6<|N#wQ8Z5oN$bjIEMAKO>!nDA23`l) zQ^n0DQW2(7>q4q21Oime+ENiZQmKu?4^EN|5W@Q2F(P9yN`Kc?v(QpP*g5$$z)WH0 zQdmR{Wf7J!qc=69XTY%k#oNGKRRtzt04%EqFRRZRv=dFW7bvE5OEnssRz)s(;s6ev zqD;lo5G2xY+qx_2&W|l>)-L??9%c=xT-hj?;{t{?ShKLIqc4mA!%Ktz&>@B6w=6fk zfdX$-&r|wQc}&Q;d{BE(VMZb+HX~sk23%KC)a>I3Y!xW4%dKen5|UaF4naigv=h z$_HTfLMa=CB0Qxc4!jPF-wHohN&dBoDVWWRt8~%?yx^pqx$} z+IG|>fc<28+!j3;K-hqH{q&HxQE#tdmE67EAc zJ`UuwZf3(eh3jur6*Rba#Sv0}CMCx|%7oIJhSF2xS6=DUhPRr$?=i8f*k=u&F?qji z67}xw{W~e{Y_?Hu5_InEZv4czBE+W`r$Epr@emy%oZ?`dVuyr39>yOyri~Oh@WDUn z;Uefs#V2MA4Sow&!T2-)cxM0_{IK@qw9ZMgi%Th&ylnl--&5n9VNh+0Cxc8TyK0F-z%_huZ%u9gCx$ zhO=~&I@gI zc;DkNCS&d9zSvQ^{|q^k=rIzifIG>mGutBh*6iPOP{VAK(%sjWY|=zp zk=KN!x{G#-jR*Ty2Si;0M^h3()~fW~v+@ZpMMJ8<@WbU|#>;tpBL$o5*ifRI0loVd z2=y;k8XlrACBa`x9K>2Za{5ayA{I?3U(UKjdSV2S69l9S=UvvhY7PX*`~mc}5!5=8$ushGoZu?5d^v&}kFY`+8cm0y5aGarb zQ;g{&<3pz6v!dzcraWOQRe~>5T2Xb36Yje!CJIlqdk?Z3L(#I3v8gUK(3!dzjqr*IoeVcCm|m44>q;*<+CXl8y+#&`Ae2QAUEL7Z zvGQus_GUTpy21K(HM>6m(I0@fV{w=Jm9xcuf^e>faE_--cMtZB2oOpHs7ZW)2WOod z91PqJ29l!2AdBebw8ESoGa$s`5X53fvOkl3Dj;zai`#UR+jP2u?w3a>nWFW`646l+ z{83S)Sd9QdHIo0pGX0b0N=V0USe1>?-|#1PHZteIT^7lkP^y`I8UAT|G?1ids@ocTVM zY@LnSXDScPodIX)HpXv{zkPE;2@e#=y3h4=u46=$ydWnoS$>mY43ZXCeaY?C4#f8V zh}x|da^HyMM!wh$EaSTm+wx`>7rpS`n5a9SzX{|dkLO%FJb#A9bwMB3ps=vVoI>Ln z=QqAL?tkE%7lFz0kb7W4AP@NgHeHhS@mIh5pVMK1o_9p)fV|T zX}$1A>o+b=9=r2Bc;f4xs^IzR#4bd2)wH%WjS zPge$5IrD$);JD|o)=K`@J_+KXvFYv!nkm<8`mG?5F1_5Znp=E~P%|(XWp%Zbheyi& z{@B90QYNu2s-2_n?f(O)S!K9_`nri6#dhvd#&_)P{AKJCyqQ2dg(W_T?m~jyyVQL$ zkX_IF|LgneIJ0BB8KXGN!1jiur-O%MX1ieC?o(gU+)i)x7?fOWTRPQA#P13q3cr3> z^WIgouEGg?*G6+8bjNbN>Bz<{?Yj$eX@9AiR=&>A5drz!(+t+!8ryD6OlAxa%1;L^ z@~D_yZKT{#($?F*wD*?sc8s=LW;EDHY|UsvY;ubpeaj%-pWLX&IZ;i7*x$rCqBU$@ zE@nUDXmO?M{Z@|Q^8)X3o4kjiW#*=+6l-+SLKQE9{sT=>*%KEvu~1@Nq1BI(s}iEA zE|!^ z84oYRycYsLlG6E7Xm?J+$G%YaMja+!4GZNUy{KX7UGm{IxQ2m@Do(aq8dD~l3A8<& zKG;L3Wtk2F=*!Bk6Ld-YFTZuwyZ!aO4Wkz!HjEpZOELLY=Z<3FBTlP>(_!jtvbSNs z+_8DG$-Vg$n!{>Npop6sUyUvH>!}PfFV2n!Qv8@T6LY)-*WFZGvtssh4e^qW_3X+? zLzaDkB!5u?V82Aq_`?8kZS_YJ-7-om-i^r8XcyV~*a-Vs%_&;Sq1()Fclh9Bz z25|9`5Q{lk?b+tsCtOfs>SK4;y+8EZT2V3L^^V2FbvXS<8;-T<&Re(sN|{ozE=$K5 zy>>3Q0r$&+<}2^kxi>2w4`<|(K*DN3V6CJJ{Tg!D+D@o2uxH*fm~IU;s;&%z3pHXh zx#<+sM>Dh}C1{0Ah3sRq4e>;==SgpnnwWUW-Y|ZgWy+aaRz#clf+ED8s0@f1M`1OH zkUzcn(c$1uN1lOAz@M`xuU+WYW?{{qNi;Gb#l}9#eZyd+vAqhJG+oZC`P&F*OW+m_ zZvZGHsQAspPJXwk<$GK*&p|F3AL0X$qPWTC^4`u;Gpr@O?t_fnk}!*+%A#ZG5P)xCMoNK zn2-$lpT~W0gmiV`K;ujueizA+3XUjn^o4n^(bLO`^v=UCFSSiNe;3X54=JnzMrGi5$XYw8G0C8oJ#G;&W!;z_Ur~5X~o4x!PDYCX0>=F4H)6)0jwn zi_jH-QO~ydHo@AT!PrxTA0H6IKoL|}apn@SU)|?;gTNy8h1GD>bgmJnllkP2pF!*x z5oV-jy4Ln*8mr^iTkmg&9TRtDxBw(5f7uc_0qZO5SonSYO~mw!s$q_Qx52|CNy7QB zxMtlA+LduWkFgPj7`mNOn$De_nZ$cNHk6%-xQJ8lMMBQS?CRqFP)8ggbaFCR&ARmhtad$-piNFf21l> zy5Q#yK?>fTUaGh0?rscea!=?pgqXWCC)h`B>t}9(wN@~Dhmk0pOeA*S$r+H&G(oz) z&wsFO&`lkR@|T9fD-in1F=XnD(y9(S0!HszI!z zu@^{sF+;?Oo}x!;=^4goJ&}Z*QW;BoT4xSjC$}Wk{mrO+8VJ%*C7m$Z9yk zD=x=l%fdyp57AK^SXewgnkYk(nLsdGL;*QM^=QlxsVZYp+tHBlWqJ_cwco+DlO*zR z1oS-W<`1uK*JkC4n8q=gS~}wE)h0LHxwWm4^kSmPJ;Qyrrx|_!<9k3b?Z2z>si4fs zSs*wnsO~1OkMEsi<5QUPrsG^fsw~q6@&!1;|{5oVbOc<$_7PdnN2z=z^Z zqHDC1BIii^((-;zig8@+`A9d3lUcs#`?SpXw!=#ZS*^=sCAqmfKSOm+D~7!J!BA+| z1vHbncnWMew&Vr$9JxqSk>E%lZp9%Qy!?ItHl-o-6(1){hk1Qo{qMi4iimt|7CLE3 z<74u0Z`9J_zV!Yofbp-Loh8`wxby2&)4l{kq$uItKMsoDl)E~~T2blm;ZYt)TIq6={wzOy zID2?&;lE|L7^{imJv56vX8IWadAHJs*{*ESeR0hhEW*lBC42UPu4iFY;pk(qH8-Vi z8Ac_zOcb}Ld{Dhc`)IJ8vA$vTo?)v;n8-%HPMibbYlRq_cGaB`1|yAFw>jUbi1#QL z6K{X(L^TSU9v~X&ov!?=rvb0cSP5Wo^#O*eKM3n6ji>;VY6pu-+v+yN_cZ9hebxFB z<0gysk$6D}7_Jbux*ejCj8W=?W{wwq2 ze&T|k;me8Zx>T_ux9C372ek%k$CHjQj5yc(feyPIuRmYLaF6ImBkLY91*r2Gp!>Su zh+vHR)iJ47`JRt3FVmvkYsBYl@T3TK-R6Q2lqv71cDNL2guxIWZSz#JCJR;muJgEA zm=FFT=E-f23Rz4CA5|OmlSnNag$GK2yR`*Zv+g>^)7dpC4pgfG`i_|*k%c0$jN-(r zp5^UWbyO#=X)SlkpFU z&a(Oz?M!&w9F8vuaY&8NJT5r3wxFY#gfzXRxUxd9W#LAP2p9g{Q7EelWoP*(_-rs` zVNE&Lr34Y95)T|4g)+Mm3iL4%^|8n%F@2{@vA>daZ58Q>viQ*ccO}A~dnIK_2?ww>B`rXX}vPq*+SC(lgK| z2v;tzXv4}QvsA1}16?kCZh#u^*kn}}x57x=dN*-9*peWFk4!w13aGwIuP^dUECvE1 zf`UE|xu>ykpJH}nmvgEu&vkC7_!*|gYw5FEVDJ>Up-b^=Pfd>Zl@N(zlob;#N$_bk zbQxy9gYgZ^(!oK`_MY5CMw!hrz|}XEd*7G|G`H9fNo|!Oo317d+8;t0>c-9(94tkyJx|-9~Skh z@bVpVo5e((*vsPBi!_hu5i+yjfR7k3zlP6-Va6d+a|vs>2B+XSwy`@C1_I{=oHZj@i-w))L{NaeEqOhqgu1 zJt*}p65QD1v*K-Bmm6KagL`Bz{#5s?%d*oYZSXVOawvwiWZ0;8&%*F${bd9~>%DM( znRiV^x}${KtfY_%pU)=d0nDZ*QmZ-uIegujfm=mS_l=x@{l57$HWTzILY&)!=3`;c zUmu|55-HFO{61W+ZiW~LFN}X`m~zUU3(xeyj7J8Pumt9YeEsALqA!MHD0a}S_4xIJ zgfsg|GWIq)LGA)O+R3bkgOSzA4+vzyzvu>GihnqmJZxvk!|FuQ5=CUtyF0z-a`-X-J{yc2FtIt9Os) zi*0FsQ9`9V_(jdy5wPX+cHS>vMl{H3xb)`_A{St#)Xe^i>!&guNtwAbYjY=bkO$rI ztuI^FK|Ij9;S#5tMAqyGgm40)HXnWo&dtQqDf>9~_uqpcZ{9>_*2bwG{blDV)G?Ly zIv1dx5m z-98>;lYi7fKE-gp#S!zIQP^jTL!8Ll8T6!oDgfjFc3w zAD^lpKarRKxLSxD*)wU0vvruWIAL*J-SNcZr53+q{{F~3DuVDvGTm`&J5D+P`jSSv z$M#@oE*xWK_1@NM><6Pkb8=(i!MDwK=21TrZQp}zquxpHJu|nF483q7!*NN|=3nKw z5I9e8X~1!7NR<s0Y62iQe4`M4T-wl z;uY9?TzO__y`4xW>IEGcfzHHl40?$t302)FA^M>{cJG7jqU1CsOTIP^*X9g>0uqxk zg=FDSvI-=YiC9?BhMrAUuuMBq6<~tz>UXkl1ZV&^jbJwop4_b8$A&&V4!p?Uct1;d z?U96Y6C^l9jaZ@^+}T|Iwc2{gc%7*Ii%_hD!|&*kgsn9Fl5782+j#pAJ!yne!TITb zYaf_GNY!!?ySKE`-`{S`Oi;gjzg;)3%j0!S)(F#%m})$OxpitLUk}#m**a zed>^uG!IAoo=MFyfASs8(|r&Z#UG}O7jnOqvSTX2V=19s{mpi6?ziPacHpuK`^~SN zsba5_DM(<&hyj2>;xsfZ^p zu_0-!OKd*_ij9lB@(J7{J_257+$V-TJdd3Y1`oyt8kinj49MNDWLXJ-J<(-V*Ms;d zG4xb1^rYqvMmI8d*l{{-IO{Wg?r<6-_@*N%v66IW!L9xm870eDrvH%7LAVI#B?*mIw50H~o&*4noZk{9<@x)LFT zzo+s4Os8N5HfhW4BV0J@4DPbf714_o(NiO!sr#>t*c`!l+`Rs`0gB6f%LW;n^YX>Yp$dsb1D9z7*T>%r zx0ad~@6u4-r8SBF$)p@7(kp`3D~cRp__wsxj+e;?jLDu2&YqRp*Ub4k5V)-?0#8%q zNK}R?^sN#k_G6ZZW1jAdG6=CK1hL4G?CVnG+|cz2my9e>OcqEg5XHaT68e*0orF(4 zb0o3gd)R*m6@X$2Kx*}<-Dr2?oFV_OnEqdt_9gjSd$`FhesP)pYQRKa@W1RIp~D=Z zQgFou2j=qwsV5_i`Mb*2S!0h?NRCuiWrA>B zRN3wnEp$^*bW@so3$p#Urv})l6cDKt*5K4g-^u9O!~ZLEwEbcY*74#R=>j8U-HX)4 zuX7FY0DE|V)J^g?7oH& zgF?(RY{-@Y)0V+eQlqM(i7)NBzCc<6T@{906*|V0-P-_y+|(-rGz3<6Ohmmkt#@&E+qt{hmKSs zp;ze`Po&YJ+o)lUVG21J!^kIoOMms zFk5wyt@=Dv15A3~7zfBIjQ+)a{3dwH5&Zhqis4tH?+(<^9Eu>(Db-=)Nu2SdQa{~U zZ6~9@*!$XIn6Em>SA8C*0o+=?j4BpLuusz)IisTxNc`|9X@h}#9$SgbO(D)rX(Y(X zWS_+@7h;wRqpyph6*-XWOGl{Y!HmcwRa&Peik2>RP}U;=-f4a*eMOtH|bQ6z0a@cEc=m}_hnS{ z2a9?UfqD^2jbBxwIaYM|<0S6mq~ZsDy#87vMym+rRpxE7Sr!!D`i=iyUCE>Bl1E8$ z1`kqlZg4d#z<_7-GcUltE5>dFkRlY#$LE#Zu>W>Q!jr!au7ACgy(=r*K936CLPl&! z>_5%TNZ;!zc!Vpcr;#0`EEgBpPuMo9?69g#C9X{6^(b;&_|=tVY-N*5Y?Io^Suh>` z2FT|r`)L&3{^UvEKyaH=H#Yd7?ckzLB`$jsojs{^np#G!M(_Y1z%Q*!@xS_AGl0%= zk2HC~YWyN|AQLHRZ`;@Z=eTw4{a)GfNb6Q@Cl>?V@FGb>l&Se#UvMIeW)XpAQ8a@8 z-*132QmIAahs?p|>L;Voh?4(wnBJG~yrT6BHy?RVv>BEeWxoRy(|PG?FDl*a&ash2n8+fOtY8vNS0l4FKOn6rx>PV^ z%Y&*BBD%qYqf&B8+fRwAVxL zZ(8#3#$UZG52;ulKJQigUgz!*^T=}Iy^;Id{WJ>t*Y>zcqSS||0!^taj40u=$Gq(3 zpK&3?#{8%rJ*j{i)3XipF%OaBRo&rCq3i$_h(UZiAZETf?Y?q*J$YF*^#hNQ3%rbQdXWAUC+h&-iq_q< zdQDii?+@Fv7#)0N>&NzIZ9`;*NaC&aMhfvpN+V|ui%W%8N(|qnAGGyZWDm@+W>Yr) ziQgh?fL1t6mldjON=kp$=Jk!;%|2d)V zM3#6}sP_7`gM3i^Uo`cPH+K8dKJ`~vyG_v8VAD}W=EHVb{K~%nUz8otp-LW5h~t{$ zZ#)X~W`9u=n2Wqr)EBJOm4^?K6xauJ`$1zJx+s~Dp(bChO~ASWxKrlERl!%PLhNES zfe7TK60f05KK+~cmn|$tB!U7~vwQ27K6dOQO)rQ2q7pF1@_?E^FpZPBKf2gj?BHHM zyG70$->W|(ZRZa}hU2$OTrEyWJi=eS7}ujUnt_a?Bg~T4p2CDPI0^*b(COiHfMvgqe&~ zd1BNhVD30NS7@$4pxAI10yVwI`fOFC>TQnCs8)8TjNffkl?=}0kEYztVD+I zRp0{by~C>wep&J8>pu2D=b$Jg-K#A5;=oIV%VSh(Rl{aTdxqHQyi5|$$yQ?7-YHCB zm;{Y=1x1lv?fM@yByd{GEA$6~Z8QgnDp{>Ou+$sS9JMv1@r$=>Nh_R!iuz^hBR4wLwsvRvNRF=A(-?-wQuQ~dgjPKG}o^%g!~)J*TZ z?#&uN%BEBM3g$$8iE-4&x!L8hSZ{**2Ol6Sc8q-w+UtDpj0G)EHkDRHZk}Jb0|nSu z$^#)C&w9VU|5~?vPJJSrcKdq%`P9+zQvV2Aq)^J9!u~|oaUxSNNn8oj zmkdTbO6B-LP3C6%bR*oexjXYtuW*jq-tjhq@>z4)hqPED<5hy|&3T-qsKxT#s$+Kf zX8gN&*}k<4mU;o2GeE_4(Mx5_@^2G#J=E0InMrNTvb_nK9C`rx++7+(9`E@*C4s

C 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

Kx_3s7h^KxA;g4E?%s@nWE zX+#3xP8RKQ?e22TF6oDlDc2N{?VJ5kms-4!vX6%<)$2FeP!fb&NDO8Z$FwqFUm8%@ zf@xPE)H-42&7R4kemTmzIwC2M21Dw?3YClqEhqG?#utDl^5_30f3G_B?S9tN{aM1a zZNab_FDVe8N*o`*vw%hnENMi)LMZEKa@ls$94n754jRih7v(Q(mmRB=ZA0R=akq;t zkG4_@LVo%hE z&kAG5)&bd|W@~)0cE3yU#rKVhjhCarpzazW3&Mc%^)#k}a; z(_-DMs%MzI*ua$w=y`bKj!PR+7R?vD9{fteQzlo?QN&+>y=#Ct^jBx;nf=Og?Hadz zi1S5K#kk+e%(2=Xp>8dY4SCDq$~nF5n9XAeW`A7TjlE6)0dXh7dGzD1GC!yARN5u< zIJE^5o3NShjSL%P?(@-?V%(1~;@pa7*9^j1?W?=TLXxCJF6=8i$^W3wn@I_`lBq}^ z<13bx^=@0i2~uaphP!2AoRg-#sG5=^CLBBK+44);f*B7bJ$?sViGltm@5>_OPkTn1 zl2$n-A>vaaV(%Pk5>u+KR1EiDd@@0FSmo%uib|?cw5`e{myz z_TS@E^K;ULM;@GB;T&a_G=NLs84%+n%Fh1drz=cjK&WPJQp2127mNM`AVU7~}pF_p<^&O?#mPqn<63>|aTc z|AdE5mD75AZ}~5p)6_L2cBlLcRCg(hE~ejv7h*lFb$_SH*3cc{ou6ABN#8nHl3!Gc z%ZO?;2n7(OU9Cry`%i*>6j`(*qXe>vsx%Jyfrf)#Vpj8yeX$dCvd0x-f=PWldG2k! z<^0+1Hh*A=Z~p8tx?8!Yx-cya?mgL}$F;n(dkM8QWLXZ=b8-8PGum22^j?!t6bN@< zbC}N7u5&Xf7U!wMbzdCl2Sa*`W{~h~7gv@moOHAU@@drhHXW4i;H*Sx7*&$~QFBWa zNIE3YR%XK?;HtzkQ-z#MDK!IjRFhcg{rat{+)at6)m2G)or_YYV2D~B2)5MwZF;xC zb(mhEGwm6+x{)`F}{?ti1*EgOINEHqHG5qSId28x?mRc|Fl%_bIw4>O*1V5COg5$JFN|nAS7M*Q-yl_N zE5K)f!dZoo_Ma*<&n6f-E?>I66;b0I`DEAcWmc0wRkV0=@Qx6uPu{9rG6V#YZo4#X zfsEMf2KGUyc4QqO`I%(w1#Tn^)KbY1etPo))lceugr%Y~rPX(IEFweqnhZ3NID}G+ zQ#D7LT~<$rL*m9WhVyfrcadNJ?6ple)b=V+A5Ot2QA(A7L1b|qdW1ZB_utvl#zJKx z??9Sb60x!LoDn#=l94{DPe9Cw3?Tq5RaoLE$+AS<;E6;e*pXd4T6`&#hK0bKLfkJ= z;RV8Ze=U_xW^(TA_hJ)e z7rkM;sTI7@1K#TNY6>M_Zv1fGi;mE~<1(^>T&bBpmWUQR=W9~1P!zG{c_fbRLvW_< z<=**_N_EA8J_rnsKWdK=7HPd~1{Pa2(441ZE z&cx=^uUC{(GA#t84ur=lFohb_b~^{h^f0c_*o6#q*+xEipS~!)xAn)JoN>n`4I66~ z-2VG4IE*E=f)jc`U4mO7NK#Kv!CHyvYD{X0mh3t` zhkfFQcF0E*bDbBDM&4z(1?`jNqdxHSU+34%=L><5^%$xPY4-jMNgt1fT<1Rj`WUJe z>6Y)rCdh{`-yPC^w|4(!EDKzrStdFb2Ro=lxk^R~u&cJV>cxfs6CZ%(XC)C|FA+)_%=P_IVi_`wU zA{;2L9v-*(7( z*6-n3NTdv7QQ-Ffky<4W5$|!>Kd(GadpDF96P1lWncWH1>SSky_1kc$^{Gj2)2Bq# zv8cfb2D<3|%zbbU8HlAam0?dJ6>C2H^JpqaV)0U!gI+CrLC@iigS~~>H>;lxg)m|c z<)>1iQ_~#IvUmzcijwVNdE8B@m@ES2OyN9mA_N&RhN+nn zr2}LVy7JRt(02kCzAQkE(hybhtMcW3Pb(T&ghkWZiV(4oDB;Dr>hgLuud(AX7Kw*= zkl{|ES<%>VLb&)bbS3!Q(#&5b-4s9mhdZ0_0hu8h-t^0458a2DsTjb4bZZWAnkhgi zfh>ktX&}a&hzHd=24QiJJ!oDoDCrBu86rP{Qdl0JY5EM(v}K?rCw88RKIr_D5~t^< z^ftor8*^9s+IkTwZE0+#eDskKOH(t>8V-I8ChBt)Nc^#<6q*9>PZ zd-@{5xan7-6BSITgs9UJ@Jw~4VoxT?lksvG(<77m#c^yxg)!ixXSt5_LPs9wYTSTz6X0JOsbb zde`-;z7uWNmmde8{F)q@DV?E0Hu7!u+DLh$lQ~iZD}^k9+JiCuu=GOS?^u)l(3(F6 z90`z>`b3F4IrBF&qzIxtEm>}fUpe!90f!4+%ZYSlV0^`Ibk}G+TB;djRlXqlhoncR zLSC_+{21g;WQM225oJEY+$L(nU?=<;wF)?6wLzw;9o)$;{OB-u6^@d?iOiDDQ132j zW}o3>t{kT2-+SCYST8buUJz3&C?oXd6YkHRk?UMk^lUdve&#b={=)%@eUVV7zB-yv$whdXR#z;sP~AJuuO z{G&WMmubcMLMIX@z9;mR>+xwp{YbF~DeULGw2Kd{jbAnrMRYX+AAdrOx&6u>0$kp1 zDMjBx@}dE1(yfwdcBgs$#b+I>ew9>c3tqVz`NO5tz+!-E$$C3J3U@jj@hO(AU=;AQ z9iwJCc+nCcH0ymHVjTl$fU?<$#!uU4DDMpLtrm`|v#jET;SO8a$P*0mms~&60srz5 zE&YrX)fOAa--!!iZeZb#at&V7$23`RaEoTMmvz7mPK(sGzrw`WK8#G(DIU?7H z?u#Hk?P?vTLpwl2w_OP{kG|CV;n``R3Y}%2g@zAz7Fi6Lq!#CoAt6T$G$7K+H1Maz z3NcCtv7;NxvSCwDA=R!gr-MlP@Cy>v-GpTLJ1cR2PVD!fME&&espo0a*Mp#R5u$N& zrTsYb43Ws`fp!9?n4&nqtjs5+>@~7gA?U~OI6$9FD@Ha2Hpq#ps}O#WM0qOCTtZ~E z82#_kXAQ>l2{zq?>-@(F^y_WEi;jm>C%LC-+rzL7Cwrr3^sA`2r34y^(|G@$Iq$!w zXC5z@s55W~R`>+da)D=44Boft;o$Nm1@D}BjRnp)PN-E!(MoOp`0cX%OM{lWSC}5 z$d)D2Pbf);$e?S@*OV<1{9pk|)`t+3bZL+*HhY0VA2{49NXfYzf4f=uI;gp>$6MwB zY`!hA&%2&m7cV?b^{F6&a0X~D3zZgk|B1Ue-s35se5osaVmL`FiJ4&9=8+Lm7KE>uepl?vH)j<>s3^*Wu7%NC98@z0USmp(3shD+k zQ}RDtNY+nbG^kCa(<2By5Vm~i*xaz}3exH^S&_ah-i~JIoE!ZS(|rn^M8bu`N?uY$ zA_Qj?ufp*+eq~hjyVYTCD3NW%bXw*^IbT6{N!)b?T78APsl5NAAyBOX))F^%QA zN8S?AR%%S0VkR46g}D)BACY4pmSfjY-VXUHf)la!{u8grR)KpvOnG)#Qq{sO@RRcK-!{GZkh=3Z&MGT zFTk)S6XEbH_8j|^x!#|iIC$5l>DpanRyJMTzi9eOKs_ZOd}&;O@i`fCe_3i@*&?m> zW0L+dC8Y^2wh1mGRmDF~BMJmi1GkdxonUro7^+t<+7m3bwC7GZZn0x!zVgjES=oFx z$}CYQ`esKTRb%krbN}w=e&C=rIz9jCvfXK^-)`}|;50%h-N6XxV069I5?gm%oP45{;U|4;$B2ToMn<$o8mwv^ zP((Il`>IjI;$p|*wtiHDq|rUwVQ#xghPT8oIF`LfmjawKKgIzM-Ep#YI4(%TulN)4q-u2rc~fh}Y;tvwn+=xP~*CyWWDuRi4UOo?5EQ&_Rx+ zJQ+7#A30nfnO2lUf$-Ll!u~~@U01tiwDyXrl~W+k9yh@rx7E9RpP1&0CcCaC`)uAe z*N`J|m`;+^H%7oWMsr7vR-xALbKZRstUOQ(MnjlDY)g!D@nWICsYE~wCMXga6ls8w z@PImci@N5j=k?-x?JIl%2@TYZH7-g;{?riXHE#DO9AX+7VH#;blh7P}Tbx&Rk6x2W zEj_>h7+^5xP#zP7scw&(wuv0JiA*z0u)yd@BUmd;T`f#K1YQQ_09w~mw_9mxrPUY! zY7FL)@@*7lm9WPGTP*<;(s~R4JqGh-XxW0yt9JIZg~KJgJytVLYgZvcB&$#gw{$uK zAf3T{MzL+%exu_(T}8Wqhtrd!VJ_6dXawhz7GM%wbcGUvoVHt-%E0=FX9V4%gPo7l zN>I2z2%#tGry=QA+zR(lGTBlNA>6_OW1K_OI3ndZBGckASvmeP=wRZtr(5YD6j~ex^E}x$o8?{TmXLzf;DS^JnoAf)Pq1{Oc>e*Qe;3fN z$Wz+tC&wkt!T?}laJ7;f*KsoigFs*qAZSkbjN|w1%yGhHt%x4%#c@*gF<145aO_rBSGQkrlJPtvehq47eHvl!QjMOAi1!;_@f=RCUvV*#aD2Sd@|*Q^I9-rhbEI5z zq(RR-86)bxJytoW=yQK-U;nOjTIcT>KVce%W96HaHu+PA6lzyoY**aYpG@Z$HZ9(y zuOCDFzV>eD7|Lif0koOSYrmZOdjSsP;Z_oZ7qt}^wa5Az;n+Qk#rqmTJ&hpz#yuTJ zD@I9wCV)Sa>wEq2d)p!F{yyt|ptg<8?AiBwD6tP4YIwilqPRt4->>Ll({wK&EMSH) z7l}LqAw~Jj{dc_Zc)Kw! zEh@U?AxAnG zOF{XEbwf+0-7Ya4K$a>aI?DD6jp~Ad86kvDq9?%tSp{l>EBOPJQaLn&mz~vCqxdI5 zK^Cf-N~oL=@(J7qz63%Noy16j1A~fJ2}vrKoE?W^14A`QG&Mqxoe5v%*FlG2}I^M@`b7KpzK}89av%_pkbcUkGk?I0rpn32v! zVUM0`^Kflq&V^#p#=;(@kMCjAi}v~)I*JdLKUtJv0P>|*<=oH-6JN4>5m+m zp#+ROpprINM$dd{1Lq)c66MfHGexmSfkl;){s;sQ zMhU?rlPgU_u?JRVPI`4htWs2sf^8|vamFDP!tLT{=-`o{3oDIPW!Mof4CIuu$6w14 zG?UHZQ1p;zLqqA!Bfcp_eN-RVQ{XZpoeJXE6(cM{?5{=}A6`XJqnDshG|5v%OltXf zr5fr^zq6g&ftR+DLuDol;ZT&aMxVtvkRrUw8xw1%4>C-oWF28^r#B2jrF0^8&P8oe z4LuY;<@UteaDe)t2od7n)k7zHj~Eg<>>&p%R&pL$KEk{o(NT^d)?T8*s7vTG_uEf1 z_=TCOj}?`Glvt7}OAb>`!j$RyLTlI9d9*(g3Uzo_a-k12JKG6;W(6i52MwQ)NC^XD zqd)LNf6LE~%mp#1)6xS{#3A7zCEe=$3%JUU+tQ)msdsu}+JbV{kZcx~@$0$6DG7VP zsMr$Q@R*(~ctkRx(NHI_*z`%h5)4B1a8wOSkm2XgM74&>H3hdgGLL4RO@^8^71~-j zDlqTYLny>d!znlv1HtsW>Dt2?0_x zNFy%FZO=zf5NfX zJT+w%48X0EJ2z;^GVe_B2^$UiJ`Oj09GiHle8G+b;%Nw#N`{tVS>gVSGC(*1VbXBG zVG#mkX^`lhk6z9cOv53GMJOycxAgnisxKVXL^3o2 z^OW2D+CwOY074l(#KunbIy*IVpF|)p8A?O76Cd7)*G4OF?8z&K7&X5V3u%++U6ub1 zG3k+djym`H@>8sK2t(KO!4$H&jmXcknDg0GmYGAbCfx7xWdk8!-Bgx=L$Q#)`bp6X zGt{huH5htB6pWu1v@L~jNhRS9G1-=CBif3?C+v$t-I5B8!#@R+6y~G+>(hRYJ4CE) z2*c16E#}`90Q825Zx>J;Vke1Fg^>s@^+Vn8$ykRykpXiZBC#W63YLc+pD;cuS^)@> z{JJug{O+o`ubpY1J1`m*o1;wI4BpQm)EGkfbEvtCO80%~BrCpK1!mA+C;N5^u}yl) zO?nd;nP>`_&J|hJPx7*#O9u9Z588 z2^(zz8?9nU1Yy@VLJJpSiSZ6PdM;WTE?UJ>IgHZtU9UiH4RLObp87QC6Q(dN-2p4@ zE-Nk2uk^7ZAV*z1N4*Co$#rx9O3BGgvI4Ht(NXs#V)P`kVHS~=1q^z72R5pUH>&s4 zCk3Os9nb$I%Sgn+NyfrTjt@dnK!(1cmUJ4QLHe4h^B;Wj%mdfe#n;t)u96G#zd{jz zWs1n9iV+HC)*X&H6^Y;qXm1tzjKKitsc31aXn~k=;;H8xnBgDhB6w0lL-=Ab3i?7Q zNFDjv#GdFWpXg0yWG++U<`ZH?A%gPZg7W&ikP80{!u)3+b^+#bd`oItQ)*g$VypX^ zuq;H$2YSi}dWUWquY*~(Er@<1+aA?~7W{bO5uGSumLJk(Vw|X&xTsnWTqJ?R(qtt* zpj_F3%g@9s`PNnWQG(`33i(h9S%Vc6y5}9f8qK$;LGvVo{3sJKDuRMtcCSH0C5KEY zhm0?0{p>vtcbOl2k>3|W&b2{JX^@Cv0JZbWtG;HylFJL0%?p;pI#vDXokgWaE-y-dWQC$Kp6f2JCWK~oLK z5C4Cq8bTq?ts=WI@#$`48ei)7$QP9GI$C}huwGG|7P_a#)X6Pj+S;&~;j3~!XiYXe zZQ*<1Yn*@4{ui-$vM6!GUGG`Pteq0IeKf!=^{_;y=aaFqzdl-AucDOHeSUG><2cCM zAx%oA*XyxTd+osfx5dsDv**>U!;L9NMC3UTiUR$&a}xCI29A&lg z?~dY-mpqFkUqOPK@Fzf{7%|GIuY~Ko@d5!lve(bja9_%x{z9; zZz9nf{;A@88=BCMk z^oC0=D`~eBzvrh6r8a4FL1cp?#9y;UNiKp)?UL}tVmdDYU+5|$)1`t9^8$HtN40s%Yh(wFK2n%oD`yPM59GgW z+zc88Ut$OH3QI9+zcOf8!vHVGVW+P{?Dt zXXeD%*>Pq+`-Ojx^We!#Zs-w-`WgXjH*j0eqDrX= zj~m)7KDhF%Zuh#-P6rkmK;5)+oWA=CwdgLseK3Q=m%N`2sLKCP*X%tO7s)y!h}xE4 z#ALnj@z!8}+7&Ng3n#l^irsic`XY)%hah_JNgHjW+ z-~*d7D8V&p|J;`CoHMJz)+m+CY-CrA)|t-om-i@LC0y_6X;F60uii^3 zWYQs2es+BPys$Y`xNGukMC-xj!n9?Btq=73SoV2@d_XVod11}}KtYEl<(IS%VMC2-`QZm)3S(R2_ zGDnyL*d%s~3-MV%X(NV4xUkkI!;> z2G_c&icMmUPBLp{*B#1qUVCi=87$stf6X1rvh}lN$~{Tt7W2Sv1Ch_$kUE+9U0rRt zsi+`U-`)qElMDMit@X3GVrw>dr9QJhFynGz2dG5`jTx36ZIk4rmja7#~*-QIYKj^ggc8RCoBKcw4K=TrA8T z49@?dD~MfUC7MG`pk>hGh(_$xsLME+H2(vTgq_2uSJlfAXc#Rvb1D-<5?c$=9}h`) z>%zcNeIwWTOFm)zC%@Hm#)8$X_Hr`R&E<#9Al(e*z&DY(lfn7pLA~51mvo!2@RriF z;Z!B_apkjdP4b7{yatO{;Lt2gIJEz)cEZZTyGJ3PvoBn=E^HfQR;Tzoc5Kw+-j}z< z%5qyQQMA%eKhtk9vXXf7v7s;+Ax5Ky9pe@rWe)Fvo6C`vkBGI3u2)4$rB0dzr4c{x zOuTAeJXe$0qSH>6mbpD=ISPFChL=R-Ex&nJS_m%B2gk|JkB}>`Pwem9Tv;2}>3wTJ zTVIBLL7xzPyO6f}x_g|a%JM5Li8ACnj66K?Dm3x+bbb9oF%zaC4BMdGL^4L=4`T-p7l#xuT)@!XcTDzj9lMlDCS z#4Yl#K@{q+6m}4OGHJPG^44Xm7G$4$V=g&Q?T3C2XX)|_WGkgF!J72a9Hs19r{L^P zA%HTsRx)lSN-4@rWN58Rc8`j2q`7Qb?Wad(E57>CT36$gw9Xiy6dqEwe-Ws;UqA{( zI2zxz9>-D5*8@V@v;r{#pSW9=xw&#?ydNl=zhJ1VmKTd=W}T@X$NpurAEzkF@l^|0 zmRifzg$2O$pjdO@mJH63j_}%twcQ3z1uiSWA91^c8UE(6Pgh0SMn00+vzEbC&i$yP zzrIYtAGnAaBZFBVfYJ%pY?aO~xxf~PAQyI>=w%A_Mme%8yjxz8H?e1uYOhQzZ^Dh6 zH4wleQ3lkZKgw1CSW~msTS*-h^h=9Dr>V@Ce;;z$7%6`%VU2iOtzPx2)tYI_WvnR`jS?Ka{P2#s?V^zj z_&Z-ZzD!l!MDP|MRJI!HVkXF8uNA|tB~}EZR>W3i6YNh0^8Rc`yQvHvf(lWR3Z><- zYI{9ke;=eg(6@8j0v^WFPJPcji1Cql3Hv(D9 zX3~N>Ui6^jtN2&x`>9((A0n;dxnw=Yv8pv#FEr$)_ah&B!aJAI%@L9+Ji z`P!{~266G2s#6)WOBtSO(N1-H*{o5VkUjbXl6^7E<>^9F-l^A)HYzMk;AW{PPMb^r z)pn%60s_Q6GS!_C1IOOr^~#_AAYKeBiwY+TrLU))sYZKkyH!K#KMPha;P7Y(XHh9aYYmq_+1PVv28?Oz+oYC#J z8aJ?tC(3N_F#r9sDm0KuN8;7+E?|}VNf72{J$OeWz};Jz!ZV~xNUBc=7pX;u`1E?~ zMlcPo8;;TRj3Mx>RCKQW*CMu86}hzaO*h<CGxq)%SotoW%zBPUUyHN~MqpDtCgXnG zDzGD!z>g7Q*Ip^X+11IH&pn}yR0WpB_oi18PBQ@P-!#-I8+JGjnsvHZnWW@V#pG3m zr$SsvWH`1M#2pcEo?iMseN3RKvYz}6`Nd0+tQ5AZQHI!&{DQptA2azd3k}ZM3M7FVB0_aak zQ-n`TEap%x=b!`=>tp+U#X0{A$A&>s1w9X5MX7OyYHiL{aVdw!zGW;EyFp zXeBVy?|BaDzexF%TRSFA#bA@E!f(TVQ)k%lgV%=17_$~_Q`umpM_KrCixJ)8A+TRDm-Ynz_v+|%f=a9 z$_6C%7zaE+zbwV~I(2`qZ~I~<^`c$SCJ;317RR@(M2i#fVF;?i=OKR6E&&B`I zgu~JdkPXbxf(dr{#BXvUiYkVSMAfWIm-m?`9~0qYA9S;EAXm&j?uxAz?go>0Fd}0f zVwvbemkUd>Xx*l@vA1Xr^b9!7RRb&nT7E)oKnk`T6iI|O1N121hsqCu?{FdSv?y>k z(}8X$^)K_?mj1lZ79xFD%0yV;2fg7qylGNgY@{PhtYvg^9Nb4d6vI%yEhGj+-{ySD zDW~hoMv;8b`<>@s2LBr-Q=t1hV_hJd&$iz3>K~~MR~|R$wrvx9WfgdJD5~1=B*Acc@H8CJgon_;Rv<;t zsqcqzcUHL?g?Iw2hEx?tR29Qc-!8Z`6TME_e#|{96h*{60K=G&Tp_>@%yywTs|5fV zFa}7gnJ)It1qtD`a>7t>#uKLXRzhujH$Z!#1 zdZuG|@?(gf;~69?kq0sbH47;<3y~rX#g68Y9wb$|Pl&Z{(wv@r{}F&nVy zx1gIv?|<`8afHo)K0 zj3aFUE_M0-|_6Fb0=b!-(o4|=Qe>Z-N zi!(f>s)WaRceSZF@uNWHvBzT?-EYoNLidVAuI(d1Lod6?aKlzG!-rE8EnEUW)jG`qM8BM=#tub;TfSp| zT;mSdb*2FS(4==>feW1t==x5}YX0x%R)u~^bj1=LQl#6v>Vxj~p`yo$;%UE^&J5kB zKQjF(2kWqQ=k zTB`@Lf?gi%zY~_v!hf&FZEqOJ~oG#?+ZQI3TG5n zO|ISk-8eix`;$HPr*bqo^Lgei)Te8Ww`1>d(5`T9sq{)khr=o41Nk>sG#@Sp{tUl7hvi>7 z|A-As_#1V-MZ;IqDDXyS`z}c;l+LKb_x8o-xbM@a7hpPFLINxPVX<6ovts;-QKR|~ z?=*9?$L>dvnrDFa@%tCnH|NpUne-j~fgWz7BYScdi|;p7+0#qsE_c4qr}-WniV4%d zA>V9#I!QNvx6Ae$t?-KcJ>^LYq2qy+nzhT`#j&1>JUgqB_LdT|-j*}^J2+fR{HF**!7x2ir#ZUYfSF?1anVzMMRh~4?wj><3;~Luytu$%9 zL~1xql%A~_W4!lxUft?>t6E+Ava+JYh<^x)#0%^mrV6SwYOO`8uYA^^F~0lihfrH` zf3>mB2wS)i*UotmGqD^Y_&8*sFH+(CbqIb2s>|o~a2hg}Iz3wPT05#?d8B@Pp@(>I zp+xutGI0LTCdl`^(pREFf<_|bcXzS{{x&6r@S}|Dlp)x)r4gm=X3y*8;bNfAs-#-k zB#uPCRHiaqx-7J>(SAx|?AF7}>#nb&dvldtT*xN(R2?nU8|hilIQz|y(UuDLNUgvt z#fx{<5MRhx$P@JRa$A97+etZBAbrhn>%=?6dVMr)LXw@8B~0vd|FkD^byT(axO|Byvi`YmzG0qKlU~aeICIsXGW)XBWq+T zWN>bQgx{WwjHRml^VM|^lDGCa){`wV6$}OF9jastd2;c-LZ%^*Z@Q3l67fERF|l$7 z-pqxaTkzPT$lJq9un|#-Natvimr8cdo)TE$Do79on#j)=RKo_Ptm})TyZqmWbv8A7Yl&{a_>RAbUMI+`nU>RCZ zq`y45A2_qjJz z#n0nyd!(XUaO@WSNnFt&{|~j!jQXKxGV?Vpc9z9|CW>j*KnaX|A13^SUS-a{*pdh> zN*p4wA%wfc8Pdy|aYL*oO)4GiQoZ1X$SvvB5)v3?=wJBZ5|bh1tE=YbSbJQpGa1|@ zObnE~y8VrBFGD(>QwE0=tDEL`Skxk|E;+ppb7G-IBnRR`e@ir!lNhNP#t9yeA&}T~ z3O@m2K`)QH!-j~BTUievtZ>#$ks(-}@CIG76HHLnTao%8SeWX!IZNL+nrw@b-I>W&IJwqvU8akN%@<|b;AEl54M zsdHO1^PBABpKHB*tYYOBNy4140#KOCa*8UlzVix^eC&*=$)O1!cNAo5rC?(RIkNp~ znU_d%`+v8&E7&+dj_ki42F)>;>pYLm>M&v{d>C#@ox7cxzhU2$H|Z9yiGXh=Uph(f zGHTN|a!@a%)z}?6P{|Q|8rpPJ$rkz95~a#674(d57cG~?W)#iV#~iOS`R?V#{V{om zj>l&Fis=UfVwCh0t6`?kibvTHo9wUq{(pw3i%5E- z;km~Ojnk{N)BOYfkn%9QRfK-r6*GI8L~(_fC7IA$(@2qlP*5iNNxU30yAd&aAf%SO zzs?Ij(D)=y4u#$5l}&=!LNE61WgzkWAE+4|^Qu=S!-VWrt3ksx>UKM_YEjeXBXu?V zN5_xvCq|`UT=tFsFO?FS^eU2cGm_ykQWetgxc7S%T0+w5LVt@iOvXj+*}h|%(JI(j zd@YUL3-nfF%jagC*Zze~dYEk(r+HQEzzKzIuL6D9?B^s*I(m zf_bkPD^|Omkypw4c2>Ic45_(zsUSgLvyETVp{@R;*$Z09cr`!V$u**qp-iKwLT!)6 z+tr6@nsNiVvM^HeJ~&gu&RDLK(WsJW+nKC`M5 z4vHG#|M#|}Yzpy9W6ev0qoOg&Sj=;q!nQ8ymagLXNnmX}@IidvSR`z|)UbSVuI}80rtL}g&b9j@XJp*Y!u(a7HJq5nkMlO=R#BRRC z?gh|CACSVt31Nz!S*aMk`hR--{JA&f9SwQdh!FqpuU)vQZfEqc)TnNEZ1{7_n=Pd# z;S$J$kM+ucOjDv`QgfqC_@Wg2rp%C?-{!;Nd>`pGm83y$_yKr~7K(*?7h$1e8f^YF-_@AA-MSj_Or!-*U5ldLSCA z)MY!Uo8JSEDV0Cec(g>J=Fpm5f8kMJ`63oX=9>1cC(y&?&La9R*5hB>fEqr1V(B*| z$kjcqRkI*2y&oA=PQfCO4e%hBI=_oIBjtrg7&JZ2Za9>D9H8aQWmJeB0QEb@A@$X; z^q=FbYkaX#sOgV1Zc09Sojq@b8gR$M-X#p-;w9x#*T3OmzdX**QPoE$lOsAQXj&FyxL6PpjY3 z3{%gu1xbHr|5xjzOo+I`EuN$=DA%#SvTK;Y;GNgwuCHFFG-6)rkP>_oJ=jOXEfa{x z-O049O;g~bS}=|y=<(Y8!o>UJEUaL4P#-SyfDMx!f9jT|LCJ#up~X6XEi;)@{*;g` zjtV`+@$|xrjx+s3sxav@K)B!%;UBEo1(7=`QTPQZ?yQv+l|aQ8pN+Ten^0O7 zlS*9HCp$Rt3xK8qTd`YNq>!jd6btIGmN|S%hw42`0V`V*QTj|0YunW zS0iXvnO6QuKA68$ob8%eSZI_;UiaK)$s2s0dtfy=g>%5A2fM0iQYRK0o$0+{24@THmJfUYSAK*x@lnq{Kq zqE5Y~pzwWW)Kr|FdfvM~5ABb3y!@oNTFkRR_V8@MyBfYvY3Su+YsZ3KR~{E@kq2m` zBFn#mTXegE5MST6&8AvHlPmSCq%A)`hqe^X11LH z4Ec{=d!>Xg{tVV{4PDMpXmQFFJI*R(RtYenD*xf5A7!vBKF(Aro8;zzIVIO#?d!2Z z^BZkSPx;=?FOXk_o$z-+h*LzQWeIlw1z*LTO$3^ikpHBk*@{oaY3GG^$(pu1VlGcr z3^1Pe=-F4qez89hX-6s2oLSr5E4|N zw66~abHYvOO=sk`x?63+KZb?GG210KK;;sCo6MNPmH4CwqtNx_dDKk}Jxp!%NxoCiS+?4K z(-%^10|6d)hFDVJF4VIPNfo5aER(`l?TK9@zPgN%3cZcFY@RDT$KCcY-YZnES_NEd zMY=iwrTjk4O1TGN?c@KxafTGerth(Oc|WYFyU4G!Zk)OmX5q#3T#}^5-1ClWe;j2k z!#gulB%xr$sue4w#S7Mnq0RLeg?rF=yVnWmt6a_9^!x3+2<+thQ^C)hUc%XL7yd&< zXoCARkQ?4s{i4m1*efPxGu$z@mfoEi91;#kY=M=Hn1m%3#1$sRc3xO34@3UGou9_U zB!P(nfUH&LnuH)sv5@j6#w&rY+wAI;Du&Hvoh7lx zQo?1i<(Kmz_Pp#9gXg9{kPtnMV3yk~QuGL!k z4fHyNBp!MRDqqRhTD?nD}30_{q?Mr1}=lh!)QCZ93rN`?H0MXsWbH)FRjoo4h#!3Ue zwpvS1RG$*0mO^8-4ogB`xd^v?cZVt~Jal9{K~EI0K<=(Y#tA{q7V=3y$RxExjPzYQ z$?}VStJeJHHi7edSc(?YwgZII{iJ^n?j^#~`b?x1M2WX;eQie9?&v}P^AZ2tCl3FE zA}r%}ghMehAdAV^@#^|VW#)G1IFDrz2}d(rP7AS;0#KnL-Qu6|E|1`Ce! zaG)r)lqB_@I0M(YBYJdUSahMG6V)`CuknuRoAkwz^4tBM#~lAXlpl+U@|(M*>$3FX z;|AE^3GMA(*|?kZ?cR~(Evq`k<%90)D+8BaBu+Q}zG`SB17T{zpTq-7hR|i~zQ0`< zlrcU|?gzd5!@qyV`1kRhBl$oqa0+?crO8Z?>TTdks#M6?g$#;r^+r|~r)@T!dHOg! zV=AcNW)=i?E6wz@@6MVgD55#ABRmIk%7;3}=3j++gB@e9+>Z9p?h3YFqeVCko1dP} znnruy+{kq|R}gg1h)=_$X+gsU9~*k9%d%fv2s-fDEYn!HrL} z*PYZf@~y8Y5W=rAlljQW-%{OQ=gPLdUiYp*XC3(BlqdNqZL@9u_!>EyYmISmP&P*h z59X}$S0h(4CT%>%N-8@3#k#X?B*p4H7aSTnE~*dw1&@lyR{l4Q&decfI5St*eLLW{ z6?H5^=$_6jg;e410G;;7l2tO26`lk~%p@b}tMkyr!2F!^XRrtMT79Su_FtA$6^wO4 zdx@u$>s}{e7_pT*GHa&aX#NB1%70yY@II?}mmIrgr+Yoa1Rdu@_c@U06F}Ka5Y7&S zI(zwkB~J2IDO*AFuUTN8HyaPxq6l9$K^j2mDYFb$P?NXBtOKs3`~ySj+N5tf?vGq# zX&ynr+pMkUdz5qYCAql-{Ze!-G)gB-H+ybpg)65cc|Jw251m)A*QI zbR8I(a+eJH?n{((Ik45^pT&5Tde}_^$vJ&5cr&{>c7c}b+eW_t#(N2K(7{+gwakMl z>bsIaNruRdG-XbxwVpHUS1Hv7v0EwRe@F1%JM=_C7 zQqA;?t~U&06I#TiDZ`~Wf9CvH^u9*^_2IIw1`@C5)I1XQxVq$WzrQu>uI0YEKeFl3}a~J z+)QO|y4NjhJ6;k}Cw{H_)Kxx|z}$vAu=EMu*OMPkv1_r{c0b88aN&I-Ry?x1TkU2^ z%7_kkAR#4yeqbVyshbD?lle$K8+B#f8j)vdwpahsqI#HHkTXOvrhr!lZAj*Jjg_GQ zLgg;Jiy+0Cxsq%U)F4+8XY6Kl_;giY2)a40-a}>(OnBX2GzrddMVRT~Y-Z{BJ67P* z_J?xd)M!oJxpoIdENy{UtXJ*vO61IxqwphJVHJ%>E-gi_Us~Eb$7_>d(v`$M!IUX` zz%J=Vx+`=Orp2cRl{1p`)dwn*f>{3Rmd_hct^!=f>yNXh z56NDd)(OyKQZTE6*w8G6xQVAXDA6lvq(*L%aN6GssllK10r3;)W3tcKaQ)yV4!9ei zEi9Xbpx;&lR z%Zm0vEsmIE6Cgw)RCFYt}!lbHm5- zJN)=!)zSF*{@Y`?HyJ_WnVTRDrvvK?kvJX0k1apZdhUZWjL@+AM*Z5*p4OC1=rUWpp^9jEyI=RqQ%!S*$;1YS^joM~A+YwB0$UW8_ zzKF{>x+gIBF8M59qmpowj*NGz6HuSmUu>IOI_ejybIa>iDex%?GZEWT(G(-Vj}azz z>@bghADH44cG6?oIT9Bk{m2Qq4&1|8J=r$>o=-#)!R%kvv&ld}H0f_&k}`)$HY1HO zE8UvQEdb?Iz(QdY?P6y8fQ*a86F(a25T47$fZkXv{E69_+bAn(x^r6B4t+`lV?(+X ziYF6Z^^$vut5!_(UGg{K9`st+cP5nH0YN!b>7D00w=1tSYI+{gkz{|Xo zmn)m#NTuvuXhB7z zjiN)cHADl2dv+zkbAeX>DqL&tPT@>Kgd?3F;=Bp54p`3;Z()G^L;pIr%!E=+=Rb@b#DaDIxM^orVyG+}peU}Qx zsE@wQ_rANiD!oG`L0Iss7qr4+4EYx`#Wgxmg+Z?^l=0FNWhGP5Eql-hp->SX@l_EC zv*&(N2w0(`S(9#TGnliJwdYQ-!_NB{|2t($Z3B27hVb`fl?ZcRYk_%4Wykjt+%9Sd z%)qxqD82}};Vnq|*GgG^%;LE40{DmmL(Sj&(Sj}x*!~XKiEe#F1CfV+|KSLhifII$ zv!GyfP-|fuF@17QiVWMSw5~ddQqIhG#9izIK0dbEQ)Do^JZC>Z@*-)9V_d|3EEFfb znm#KhFG!gPWR5PlmQ5^&Mrtpx7$ax@em&j#z-Zt;V)YkKUnXJa5g+e=e+jVqAI>2Z6c`d^k0AxRua2-VEcPuC-(O>gWwJ?Qu*fr*%F5#F**1`5lE1&G|XU zUOz%Jp$KcCi16dGe;rNTn!|ISo?nh`2EY=|nj!F{Qplux0S`gb&{2OBoubg-Z$DNC zX~^bwcHrSP!qLa$%GtN4OYp+Z^TJM?FVH9Q&`;zc>D0FxDsQAr_5M3ug4wPmIfTIn zUrTW4i14{Ejfkw4;5Jv7VuMT@PKb*w02>RF%8y~sn2JJ$Y#zo;Ji=OhG#Cr9EPO3# zX$Q0R;V=L}sL=3)-0{+Wc=zY8KsO304~o5QEKj5^vlltEXZ%CB%URJJ1t*HVd@N5! zDY3rm?uY^DSOr0f0a#3XtfBAz{xt^C;&ky84DsgQ!dq4XJ#Y9>Y6Z(B(c>vFhOoB)Woc-=WA;NsRzv5!i|94S_ZI z{*n=4k`dul+sw09_Ap7q(6bVGM2b9Myh~r8oBX$1>t%HM&lV%nE~hn z3j}OD8LT`R;jKV7*IW$S0tDLvBi&5mv@bV?{k7BnyxipD&~41-%ZJiw+(mvi;}p5q z6j#xpct?-}MjWUh98>^qAk6s&E#l%YjUPjUA7k0)WHGoY#_z*Xdmc4-UN5pSE}c`y zk_wsMU739Ic!ldg4A=?ukw@8}L8IB>SqM3Vi+p_iyplkjX~9EkaKJ1;8}uFxx;q+l ze&h0<@3yJj$$nHEShijp0g*q|gPP`J+jFE&b2HYj+Vl$3dt!w%CoRj4UEN>b+@GHI zucuE0U){1KAM@WWAFbHOnfkR7Qb0$qypN`|qp3}(l>aY`{F-a$de`@@Z`y-jd8lvX zb>Pt{;kT|q$~)FV5g_5Dy5oN!a_oA(TR{DXyY&Bu$Z1IHAuYN|+O_jusxK_>)?;sj z`lW_{dku~LgUCx9KOpjd|6hn)jl1CH735=bPl4lS-%18{>>i0C(Hl`Lp;8HdwFF{r zrAC53l5uBH2VUKNE6aO(9ox{K+Bs+;iKxCrm!ywWWkR-JW$H7%)-)d@Qy=~K`G*Ci zA=FH1n|=;eRRwM-kI$|48ES**(^T*Gp&Rn&u$vc+f?g%#SfB#jix(D-7jk~2; zz*=NL;*C-3FT8o9*QutZnn=#tY@X%zO9o@>)ygIn_NL$ zZ&vh9`0kBjo0m6FG`9)Ouu6=3Yb?)SYH^Ar&4`rjVG`-H^v3*%SY1uQr(}_onX_j{@!?sS9 z2l#MJt=^|#nkYyO64JH(LfpxJqfSO($vXT8 z%;|y$&cGysY6~BE-PtVR<)&dGK+gGJ>%^X~)arP1VykDtFMl)UBB#|fTm9_{YTsH9 z*Y|v=1e+zCIGqd9mku9VR+glQ#S6l}o{CE=>`Cx6g(>Gh%eR!q(J6^SLW_=$yu&5@CJYBv$a2}iAvq|Co z6zG40iXT5O`NtBv;=9+g`-`L|SA4lqu8ku&_$zZ*HH}vzlJVM004$4K4Uoo`U)VD0 zx6u@m^^~_0$3$-)ke%NUTgj^)LD=K&qQpOIlO_A*;pj0^tm|*!=a@KMrN1_~)yuxD zFnyugZ~q%8(Z8yQ6nZjmXj|t<^*tPV6O-j;t1}8a*{4(CQrIlOZ1EER-YyI7W=p|f zuSE#&)S=*pt_=^J=r^lBk;D!CV9bnlwVKidDMODe!3?f5;t|#^Ne)i~pq$?$a6dM*-rQ~FfXW%^~BRM=yW6>0uM!X$1e2cl^ zLq?T}4+cm!RnzdKGf1O3XdPIx`D7wj+4~lrhEvWVu3}@qaX-T^Ldro7tV<%84iu z1dUeG+(wr#Z8jec0BmTN(kaG`;%_UO{jW9K0v-5LR~-I1Mym&dR2uI`J`3a>Z zp3y$U!^{Qbac0fq4e?}}4i@)PF5i_StHFYgKHy*U?~-pa`!=WT?_3?(%x^D#D+4;t z=AW+e5%5m)r5vZaHXPXIhHm4_M1;EAgvloC>y{ITX!o>RQ(2Ol36~IZ+j!xur|(XNZ>liz*wC z?ANdzg(ZhS*bIA&@*AXn}U zd!>*}F=XP%M};4)OjC8pcElNrNctS$%82*7{c+hU$euC4o{`2*0BISeKq;+wy$(TX@jtUKd8Z6oU>ctZKp_Li8U7t)(jh z9_wLjWaCXPW=)T@SH`E>=y{d!d6kCn_Le>Sw@%ro^>BThS)@#^F-*?iRO3$by}^qG z@RKKaJdU_IxIhfS4t;dY1pyEbBbm`$}l8G_|MYlOy_z zv`qEziXjONYjA>a{d=mD0ApPitYX?H{6e&y8yC?g%NoN$xCJ6PEh!$o_+N%}WR6dPOA#$ghF6_EFCDbB-fSnw8h7Mled)zQ2o{Hrr$CH1@9k?JVpjH^-?IixK3tbk z{A<#JXI7VFR#yZ)fROYF?vDs?s(ZIje{_dAQAoK_;J~Y3Q=Ca5$5WujBf?NH%&=~- z1{ml3!WfZ^n35bFpji%U*(e@VB4DM6l*NdWZMBv(|Ed$+a|ECwec3J*@s@SlH|eVN zk==U^4#dbrcgvRKR0kBs>pIpVh#klTQ8w!I$BPffQw+yHMXSbOo5x@~$7qsG#oG)0 zZpP1=`{K6Twl(+fb+^VUNWYi^Wd# zngjAIepgB-_|zo+_o^wyAl&2N-^?f#EI7ZOiaWu)H@^4KOu?t$E4P3OI>DSG&ckap zWlOs-M{=M^>JPe?mN+3j%}Q9&RAmY40=}nBU{`{vOoW_(IndSi&e&N3&{?P{E1@1F zp$;HX|5pA$O~KGlN54%+k0%R+BeQkumgH3j^v9n+02KHu-zy{d?B7|O?ZW=YSsmEM z3MSQatAN2*2lU3>k2enexa&3{S@>&L~GPxH3tJV(spL3RxuhrO z$r@*@zB<=_?q1voQ7@_E)XT6hLoX=|D=9P-EmCUA8{_i@m^7=SU8+5QYsH4nz{beH z#+s&@onG-JtB}L^BgY0*65J}1u^6^jhjCE%rskoSO*y+xJZxWNfvYz0JuuUqvcfu&W7AW4)jkP? zGUQ@PciH-b$PY4?qW_R{E6(lK>Vf)op&Bs~x{bin#Bf-O@Kl&KM>~Jyptkc?GQJbT z5)?o&Er&59cbW_-L_aDFJ1R`mEjg90_L=$qTm8f#rFs03TXaM*hDie8$@yETpR;6G1SK-^{KAJ`&VZWBTA z>VO!{sggG2LSi(x$8gh0%q)J4;v^)t##(gsCnm<=K;c1s+vf6S!e)1lrtFr-_$$wbpv@Fr zI7BmCrVdlC4p7&+rokN1h?vrd7|AwIABIZK3QJe-Pghr*nggkoJvbN0P{k#ERB#7f zv`kZC63DkMss3Jv+3wKn7oy)5Dii%nyNztsW$F{pG=uV3HsYPx<*doQMXZuQ|LWwJ z@=Ar0`rMeksiooMKuEA=njtWgi@lYLoeI~O998u7ubrvS9$!;7z2|V4I!w4aKweY! zC#)Qe20Ll7T$##SOtt#qQ5Z*2OD=t_dK_G*=4cn?0&FL_a{)FM5srH13tTP#p$r0c zQA;6R3V(C4^76N>m%;0sfykc3dYuxMeMUom$hM+0t}uB%DUVXDzF#9;B%bC|2JQVj0Cvv?U$Z z*}3jsfAXeil|eg`n$`2-%kGMv(c{dJx+jr^gU{lh&PYO9oby5Q*kuK7vjPF3;X-RE zmstm=0n${7G*pQo^7K1F2qNA^bEt~_)mS8{v50_>_m6wdB-Gf!t!Yld=hbbSLQ!D8 zD3In$gvcJM1DU;7h7T`%993C7T2VM!k&zFbJAmZm8EO4wL)h-={HFy>5E_UC^`7WTqX?7H+a1jy4Tt4 z$Uzwm#i#_ucnYoSY3pFZm|$9k4;U((6EDs=CbMRzJfa4P!z zsp^9~B13DJY-wKc5V`vcly?j}Pt&dWtdYi-?4P{O1e7!dikkvypvP*g&`#xY-nr0R zPMQDKMSg2Aq}W!~p+r`|LRR1~)AcEONrh>1H8%m`J&!6lZJ9Mm6Q$4)rGU0-Ks9dD z5X=^NjvlQ)?UD2R-H~9yuh}Nz=^JXdUt^^rvNM;oJ|bM^cwxy+W!t>iT7ZFd$iWNL zZmM`s0XzfYEBY}3y>>t1=bVyo)J#^L<=|GtDwD_j z3iK5Z&Ebuyu;H1Y;Tc6qZPVZ@R8RA0Rzxz36ibSFXxpT8Twp3ov=6hA5A*4^Em!qa z=p%2k2*u4M%)tzRSH~&(jr#U__;jZKbOzv{)!df#cG+ZioV90DYneVWKGA8lY`QhKoZifYEkij9^57V3YxG zv@CVF+_AM&*ztE?hK@U-oio0@A##;k_~Clkc42sbrhk71z^xNEyKv+)!_uionX7=6 ztHANe=%t?WS)UJ%PW^YqX}8B&?lDzvswH%%#bp1pbM66ESgNIX#{=B@4R3iU8L6LJ z3e3d};Fr!d2%X$8gUm1kVQU-3&htC9a{oO1$_&iPjN;M)Xu;s-N$x6V?Q)@w=>UAHo<2Q+0i#e)rh6CYZUR%i zG4tl=>BopoOiYwl*MO9aqj)oe&csoB@@?d8ATxHl^Lnny?Ro~Olc=Y*0V!ra*Z5tvPNb0 z(K!;wuyMrhX@O>e`ue_aWYfmk;^%_T?<8F*me;8rOfH4?Qaz&Xn&QNghC^U@Vv*i& zri~J_z+r<#EmZbIv&g~>mR z(c=(+9iy~M(0{IKFX283D{0yD(OqHg%KPW8Z1``O6uv;b%Zm6<4b>gvqyLB|rD9$H zN-u!ZZFjEXS(`*umQL19a?4Z@TYJFqZM6Yyeu)D<2F8p+dz|qE+{y6SO#j&o6KE0i zSs7$uubUcO>_~hUIeyjknb8$n=;zyEb>M7{??iX@&t{R8fFw4hB(~H1D6S^dN;M}8;0tV_k2-@-DK@HU7;Hp7s$%7)%+3H^&JoO3vo!~AVL2}~ zMD{J{vbS-ln>gfkJu%cdY*W<%B?Ne!-~(r20%w`<4Zp!UBuAzhH2DMywS$L^ZV3>O z_rgR=j9}U}@`5GAvuMP#Kp029I=HB8ZW*j@%fWfiYkIu9)4=U%AYN=0ACe9+;`dC* zmFA&w;qus`#s*vj27c{fL!{K=(r0Fs8+|ZOX_Y=- z^-ENH7(wa1Jj$Fb%A6$19Kgo(qEEbpu$EfMb}_Fpv2V50@LyT5wCg?hFvDCw!yJ>g zSy(XWxz+|KU^YiHazjR#rM*u0G;B=OeDZVAWp&iw(APt-F-PQzh$d=0EW6a`re8V) zm>2-A@`x*8+Yr)mAl;7+Oj)es7w`$a>|Sz#y9i@Lv)ptbd`t^ zE57nVNv{{vtQUhWxdYKWT7d{Pv=ZngH0UKDf8M~d9RWvHL@MEub;cYG${Y=>91XZ_ z*JUQ7GE@9!^jwWlSU23zFH+o>drtfrR5LI}{SG$04mNn8>*j>qNKR!XPUX{l=QA2H z9#{PViOU9pu!FgvgE@fU0f`c~3lEnwPh(_z>x!f-znQ^V(YavqEfJbqi{#lHz{ToY zPqH`CDR1P&kR7w2Bg42je<=-rDQH^ko^NZq4C_*(J}jpTjaQSOCP19aU%U|s`^f-7 z6&MTvxI<4ANs z9|yvZ19eT6H-^+;>Bgkug~D8ZJ_sWQj($~lNcBF#*{k9>wK-Vu=ZsdHP2)uA-$oUJ z@YC6c7Ow3HMT(?@@8f?sqqlLwx3@@LB8ehjNuXRxL`RY?dqA0^p90}efri$TMlfWs zWxqp8e-BFSCBcxTAT(lnt}1fuuq#QAmGATL;LWvAIhvcVz!)+Iv4x3QmylbRn28D8 zV+WEg&!R8SwoGMD43UlL46DM#XNSaP4+h^LS0A_xR(9@pjpn)1Hk3H$3EdxF#T@{{ z4uFP&lWW;H;EIw-6>gLD(>LEmGMzbeow=Hp{Jeh&4xJl~-|hxP9JN&QD7g-LmtWp2XyS$q1RkeEr(cIKJ~VQ4gVRGvV0Z7CyR;phG)6@XStZNtK6Qv+U#~u3ARrOa2*#H%g?usVZL^T;CEWm zMj6l4mw96pJ`m(T5a15DyMJ`s=jz|*68L_NcqTP!o>iUy^YsRYLFeLFw_C=>9yuNH)HR zKE8N@vu}&OZwtR~3qrhpy%!FZT(2fyuLdKXyT=~HgS;Im^SE}kTf ztfY1J#)Zpvgh*|pI99V-Q20~
8NBBrQl1l6P}_*UZa!YGN5$b+H!&y|Wt5q7*Pj^) zbI!#uWSrnzjg}6NIl&w@vs{IU4a5x)E=5h0e*eq+*4~Y7S6U?I#CK@WVAY;nkuE<| zFu$WDy_F2LK0ee2D6U~8&UiiRvS&j2aeDrvQ@N+YWxgXluf}`cjIE|>SdkJwjdDJs zmE9%nanyYMV@0sEGB-%sb%p(tH3#X(iTRHcrQI#dM)++%>p4tGN2ljUrw0d43p%WU zQW{oL8Su?<2SrH-in#{{S7VD0xN>w|3?O${^_MdVvgfFhq{U>x+K!Tpv$l6~bhQki zFXpQpG;65!=aRD{5pucjG8q-e&Ln0>LgjMNJZzisU+<;AC_q{ccJN8uvKzr#W2}8BFqJ7)7q5umnerRZkFt))7t+Y zXqk*+Zw6wpNv+B{+2n2`+{1pvqgs-dW(DgzsB!Dd3geU|S7j}2a>v0;a$`yo|H%ei zFgZl$J*_>kuVpfreF2E7BtiFD3VOi^&50aa7_qj=oiVT;trNttp{p+i8Mz)a6s4QF zyWRpGSLLZ-9XGX1S|}!zEEujr8sBfcNFWM_;fZro&LjcP?HRP}}4JyWe2f`~>88P$SX49sQ|8 zZiAtuLIa#owIUsr$BFMa{uj>;kxP?rYqI?tf@ob0>1;Q7U2&LewcM^H zX@s*ywE6u;JN-Bo`8nB)4M9T`+%F~j5MFiDdgZVnC&C_*aU;46D8%5PNXPepVHMna z$~*g|UiqtHcIm!Xlo4G56e2XlqXVY17Ti}^N4O!quhu!N&lP9==ZR!{gB)D+Shr47 zCF_$qy+IHcFSf0bf0RvckheJkTe8~Y6}i6tL^+X%Bf7Huh^t9`5~2_2EpV58EkEsu zch;<4IYx2D;;|XGs_=Wo7cVvTeTMN7zhXh&yDE*Upuq~#7&Ug*12QmJ6-!2XAwJgS zBiGi@K&Wj6pi0{uUn4Flc7y+G#p!&gOet5~UquQk$BGVU2igLhr6$%m6CY>uAWZpV zsd+ZRl);Z@XWdhy7IF1;(r_)?cZM z(qfCvQ^jbFpHh&dr1-ZcUlq$|rp9@L< z##UXD5Rm7SV6EwXDkQy)tvVwaY_XaRaSPcaED2FvXt2_>pJFN#Zq@@h@}qhPN);C_ zK@=7WtTdITm>6M)1+Ey2lE!SkrO(py)Udpz7j9zFC8skqpuU`C_CuS$UET zl}0KyaJj0)Mk=xr)q>t+?sFgTcTEQZHL*r3wiCw(L4W<=G0r?141&U*eW$*s8S(kRZxEgX_#7Ms7F+w3H&1wh=R3hpF!jYbxlrwo*iTN0FL9D4~PWTY!Yn0*LfpLKOrQM34@l zlK`Q&gsReeQzSI0p$P~mf>K3_^z!k(_dd^epZuD0PIBgC=Ioih_gZV0nS~p)P1zW! zg&Q=G6ocOd@dFo#{u5*UHVqR+SY7RylAAlxn)KuSZ={xrutD1MI_f+ZQ*?1Y zP@#DjZZ^>SsHYeTv)L(BNz}U{S5ruf17iS35gwpJsS25jK-tj=2+J^1ia@5UP}Y_%TWdWD13{6SzJ_M=1!IdW!Nf1zqoV*r-qy>1W=sScTnLEVce z`_H0iFO^?(YZs)_MnwsPOu|yQv{L#Auu?h(dm-Z{Mm3EiYp;GyuaLA5d!W5T^7|J}Myd>ua#| z#u9vkgq%ArTytx1$?x>WpZQSa`StUvYa~8JZY$~%Dd+;>2)ztd84G&LHel9zmX>); z>B)C@_b!QtZv-v_q}hXoFPjIe`jp-rb>&~(%ny*x9@#H-Ok=fh((5ahn0H?*jXOCp zG%v0qMThU-e%(j7O8C5tW;47r4ay41di<1qKUch>xL!=7Z;8D^_qYBVW_FVJ{l(E? zZjsZ_@t6DSk}oe7)s(KhPEU4UeqL`OOc(7HUIz_F-Sz8l%$Qn9LGm?boy`q8n zboQK=LLO1>S2};*npl&6jR>w$%8K6`w>fw4R%CG=b+%FIzK$S7R1JW5k$kD&}VQW7*|vau01Jr zf5l00hveDRn!wP5I__lZIH4>n^^++VT46y~hY&7-&i49{1oq9mHwh%;qdV5}AP#QR z`=Y1UFQly#Z5&H4J-ji$n>SbM#UOi@$ z@NmI-^K?cg5|gQZ*9?(Pn;;{~#P0T;imHW>Z}5GkS$9K=#=WJ;grIQ!4_POo5+QE) zv`xpW#uCa^*xocgT|+$nCnT;*Lp=DdJLC0Tl0#>2x8xXpF6wxEX6tWoE>iTn%K9L` zOD=dkba!d@t3(an}}=JDwoa!aYn)SEwu02 zC}Kr#3)kQz zmgHe>NkN)SfDkPXhN!k6VRBZL=U6G;*BZLX84Ni{qv%|2UobzEIL+8!|9xqr$Pu() zp2y)rP4lg4<+2ZbX(OMP_fzJV^;+dXr>Lmb`v{vBGNF;b+(j=)w>Y|M6z)A+v2Ho2 zl%h7T3Vy6My1)|wxt~t)iH@l%a5=-+KK0F?FG(5d)NzvUl$p}2)stsp8ttwNn_Cc; zlE5e?sngZfIGGD;#q;?ta&3wy@ezV0UWAt4#c?iPbhBK}2R~K^kWE*oYcjjE^!#Qi z&VANzYj|po#CqVaq2=D z(Tx0K8}H}n0pKSNs^WDPcInOokvlUfqulaeAkObWPJD?R!7g=G{8wzb){eh92z4L%9a553i8Z$- zS88Y4;4IPON>{9(W{kHRmpUzf%uE(u)m6xLf8~m!`>Tj&7a6 z1>R*!R2wJZVI5ixYY2(vQb^ffMRYbkPD^NK{$UmBQspYpc6>BzllQOc1L^PAG7y8d z3whbDM}IWG{9E_}g}0G?I3AhxUF2AuZOEMnwm2UpndxqEztbHZi$(U zn&zO|3l&W(V$jgVYLlCvNh6w^H#qNV(6D6RoX5R2mYXUgcZ96XdtE48M%OQdxkI#A zvdQcttAo$N>d%u~V@U0P+T`q+c%dWiY6!#^h%(dvvix4;5nI9$_vaHmKv;rTMz!Y_ ztzGwZm1iFDp}SE5)`ZQiz?9Y3SK`fi7v;f!4~suvY!nbr+w6om0AfBp7N}=u%xnm* z6kB)Ecw@^rgKVAGc|S#sy8FrODQt7Xmi}l@w~Re~2#Y#1FpVBGvd(RJt`NjqCDBa8 zq-Xu{`5M*Da$*Ozbl;v!atQw?I0-c28)jxkoD!*r#pwDh7QeR2q_6+-!laW*ect2y zG2XfspCaBX+533)gW{pGB~n$zH@;sC_!tO!@r38jLdoY429?QCq;$>IeC@x`08V72 zYErzUcnPFesiyt(o7``Y+ezsuQGp5ZIMz@n@Q9ELF2k_R+)0#8Tbml1@l}F3kO_Ct z9V&m%<+>>RL0yBMZa4VDDD7l_F0FqrZsf6JNjhV?LhWq;6aGqpJD9xkddear@6L2H zF*QilPB#wC{IP<|0Bid%-VSEv;-(Xt`Hrk?h>;+lA1#g=`;7qretP$lr_(DDDwZ)7Ts` zUv5&RN*fxV<}poL-`M5(H~gc*c6(~_k>Q-%o0kc$WPwrzeFyufKFI!~jN0Cuh4|jj zmylf-hu5p~?Y;K398+Jc(*?Jw38Qhc>R!vqA7j;iF}z-LCi$RTMykQi?clAIO5l2- z7|cvfd5bBU_u0d}Uw2sm%t}&gMi1$Xyjh%BvGw{|dJj_-y!#(iGbf4vOnB2G@Jm0a zi#F>qFLJp$fq9|P>K@O&{Z}!w@92WL(=pRK3|0A6#2p6or?laQ}Ic+NJ!q8J_Ww-9!C6wf=uJ_-lw7i#}5Lo26=3kxvS{P(J|Mw4hwcTd#?SRF^dLY0}19IZoH`zGa zva2I}6PG$RyX2oJ1i$p*t@6V5#Ree2zsoN=spoW2&-nAGR+&ZyO*1rg}``)|d zEdY^C^Vu~rAIle`q?gA(+nfBHF;t-?<2+hALwFm)FP*}Wia^0ZtE%{EVcW-J-!gI> zollaP9EGi|G3?_Vs|=90FSG9j2tX9md~O+ zq|1#435Wnji@8BgCcIW0LI^DIN-%s7&HW2nlT(^tmO1OP=Wq3GV}JeCQn0r#+InFA z0VapRKzGpb$$Kv^tXFJYm}Xa{iTYwtZGv{@(Nep@c7EsCb0IHB{g;RyIZ(z9gL}B! z2}uyUy}|JQhhP3k{=YB(B~6*ER`;IyH6tG~>gO|lloxt?m3aK4(SO*He0q&r7~h|c zfLjdmxbI9e$ATce7#}V}TW%Ve&)A{Z0t7r9#!;qzh}|Bpq^uxZ&6fY{*dq)gxQ?4o zna?gR)&dOC8wTd>OZLWtP&4zR~Jc-#V_IVPcKY2_S0(>R#ynS($(Z>|k zE=0IncZW-hL+GHEA=DHFaw-pR-rTiGD}MW_n&o!TM#dAjnxOVUUXlr)L#Vl;!=ozx zlM(m3H`}Os$CJtX@=dtbl)8uA2weHKuKE$XW%!TKk}9tc|zz)TXol^x7g;KM*~78h1oHdWn65Um!ic&|ik8grSNd#RTPM<)LU-e_WKRD^>6cAJdM2@4N037lZ!}YAX$; zKeY1xXISUlX7MF+PvCbt@8Y?=(wVr~O7Q?bh%EkDI=8U4Sc}lF;qm3{@Yqa!p;bhU z|H~J@X8+kp?zYKcI|n)u;B(gnx!vIm;Ypv&ckS3L@DOOhT9(a^3PcqcI z;(*LRuQG;LcU9635$`yyE8C>k>thw5%|!4I*M+*4lkRW71Wr~d8fpV(&842a{({!$ zFnH0xVc?le5*wR-Uuamennh)9^z>zv?bB{IhC0bu)2wTA`Bs~4Ci=mL!ftup{&Xj9 z^RTxa84q228zfuIvesS2P+*UOu~FiRGcqH8D)@Hf!*n2(w#1Wn!%c@$;)c61upL>t zXIW%I!@Sjxz)i!$uI?)gp1X8?QasnsbP)r-tNR|uI8Nv8JG3=&8a8x$q zmQBeS$|T8+<^cK)OQHqbcxVa{4ng@*mgk#k*MAwWW#`YpeBWIkk1L)izDTuu=DBQf zSt+Rn_jAxhmar4ZiNS0>J-NeK%TkhTtNc1X7^gvlZ!T<2_kY)Xd2OO6zOaZEprotg zCpXLj!M(%pPl!OgVd%&Bmjb#-hEmB`!#RNN8~O!>o>IvlhFP(C4KoXBiZFT(yk*cN zlc%(k#&TYL+-o}q*y5<#Fckd@XPHG`Y>_aMy}dP?mpghUZHsYHLDm-da#FbJSnJL8 z7g6H}qKRM**DsdxxB^K7{Vb@8ciXF(IPMunKb*xAbkc{qbsaIEXIj~!_4$&sdUK9S z4NK|;1GoVPA{-t2!Vx)6?D$+`ZW&v<)MPPOpWIcZ8VN;r<1+6}07GGhWCGe*7{E3n zy-{CDv?>LMvrHvQJKv{KAVxewG6(W5ri)+oFC;H_?5gqj;K-j4;VbyUyrhA=?X+1y|B}k&Bmm_N|-py9c$PN9Puy}X_2u(%R zYYVt`T__{8=s~zl9L-KeV}l2zm;nd9M}&i7nBlXdZhpV7@p)S4N4U(uWINBk!oF96 zoAy#+YFQt-hVMl4szh0GRvPdSakR(`jTP3IdbM!%6kw4SDL3jG2Nw@JPIg*W`}Gk! zoc}}mu*#)AQgT)`3rPXW3$$s1;<_D=*>X8`bd#NARody6SpB{~jfF@@C(t!g7*PG& zI$FI=Ssx~8s*;7g%V;2uJ=p8??K!&pLULU>tNivZY^znovCC7^;-wo&falePjpRYI z3YHMdK!hX8$TDn2Gi1sHJ5{g+158A)d4F5aOIgFpY>Boff^)(%9W_XES?4I56kxTM z#3yc3++m$!k>gPPHv_f@Ku<)1q@fhb@Y40;JoP+1Amo*3DSZGgbHyO*Z<~RyiTj0F zM?|aP&fueIudWN=j#Xg{4ysOs(?aPu59lKuHOZj#5x7hmy3(yLI`5;2QIvQd9b$?T zOtbvgm*uAH2Dy3Qw${TN{XPzlW;d8-$NyvORz7P*q)Mtlv&aF^qQ?Bd4F`h*b&qGO zMq9!4CKh3uU#c&xzj2r2VvUGk1jr^nlueEoD@hB_(iTOYoO&cR-Z;B|M+^z<=>eV9 z3Mc=0K2s)+L}b=$JKk%JZFO2t*XeErkGvA?8X8;z^?5G84p+EYn^*rO&}_5QtJ7xA z>vn_21r&XWvphvRhdy{eA`{0Akb|6 z)gy2?G6!7N3?=pIcbmt#w_sPFLO*_-Lwlb+*Q_ z%n+V~297}69+ysYXGbU8NAqRsXCYO0xzUZk`IV5V`Ssetu3ZY6-=Xw>ahV?{oII$E z$t!Ld^TP^`l^PB%-waC4Q@b*}fKBo3p2?^twn893%+fY|t~TZKVo_mn5 z!wD(&s91ZHCpYnUEDnza3Hwd{stSJ;^jY@POeK1?ZR$wmYWr)aMVit)KbXJ^ zCcKZ+{`0%ln=(w{JHG^hSAy_<0N%vmc~UvWQd5GhF8LZMwS6lMHSUEP@IqMzPcS`l z8tPdQCcwSQi=~e?uV>j@wN!raAL?KGpJqBbR>?MZi_Ils8GUB3jGY(5C(J+k#WZq3 zz+8~i20Z6@yELp0_}E_Uh4UhdRs0=8_#ML`UTmu{*6<%Y^|h+FDqlUwsYoZx=61d1 z+GE1XV*HZjZWc3xA6<+9};}B&`5RTE7QryaxfV zgV3%z>=Rkr?8Vaz=xGLth7ujvGlk3dKNiIhx?%>pHE}+B@qqe2>^$cT^ydr`KlrL> zdLVsU8aakr%Q@H&d7fR^p!~xaFPT#9`v0ISpA!wXP<$7pP>y~%6XIIpxxf6 z&<;^(mvQfUPgAcQ2Qz}hj2>#m(lOmLD8=fRKIYtTP}1Yj4FA!!B(&#J9RoC#777$u zZh5hiYqy+h2i%#YolVSsumbsQ!p2cz(OqZRd2vHVtTmk3M{SS;6IEY@H|YcRf$ zs)*PXe;0gl*{5{9Wt%e;n>DQYlIMD5#x24~FTyAh0Ge*NKPjUkE&vo4a7s1E##o&G z<)me#r)6x5DHHzo9RBLg69Tv&nO((f;DLgApe$X{TmP1M&r-d1*?HJ>#8`F2CR|{~ zZWgcNi3m6mF@#B%2H8&0)gL9&e!^ov;;|H9F+1|hL|P~wtA)pE3!Fr73d^EkVzICq zZ6nvN1vM!UPzv;`0-CegGQn)O1|X~e2o@r-v{e^(0=S~?BjEQDLk`I-mZ_wgVuedF zg((c^6o$G4Ty7_wnh*#m1ah*6zNfaMfuhKvC`&CO(;N@HsfU#S9?_DPt7n00oXl|d zIsJaLuNuQjh+rkahxnlZo8&g%j6MBc`F|OD#c z*t(VQ=Nt1`9JL6#)BGS|p69hn-hcBZ$dT6LW&h234k?p_GYiJa6gy&yUB)%q(ik*f z<0N&AcJ}=$!>I@I4}iUgm^6$TtG~P?o%H?Rc-O(k;?hB<(AP-LZjckLZfC}7m%Q4? z4|hWKygC0u&G?5daqspg^YvregbTL5@lz@JtBKY(Y60e_Tb{Cd<~ z(0|+aPx@Z#%J%W_{;s=pdA0PeMp7M)c2FdQ4wZ@nq7?qhYtRS)X$1U3_1yr%Q;R8X zVio#g<@z<+k#rd~DdpN{ubwoSO{V`?RSh&VjXyPnpBiov^V`+RvTI`c#JfScWCn*e$vzHS3|DD$WaK&ETC1r1u<)6kkzg zEukQ^7ZF(OO@$AiGMVjPjQrHBEb&Phjl0=vbuv|aQLC87zPH*%mhTx}hT$?AY}PO5 zq&w|+vrCvNXl5!5{7&*lKus~t`@~2EeVq3r00T9-OmAiso9u*3TVp55)5YP> zU~JRd8t=?znA-uLae8AITUA3M|Lq3nubP}ngQ6GwBSzpfg^#yf!y_gNPrLAe1T)3ACcpbG;#oGNytHJ5g2lHEh(qvZOP8u7VD<5vp+(el8@kTS2S5OI0!i(x}0@R-*$|Kp zj~0}*=(?vMP&fv|1siPUFBk5lmgZMtP0f$j4yJ3Te&qBsdXaP~aKRvt4X7tjrpk&a zjMt8|1Ex)7`d0dYncv(E7I9Aw7FSnd1zt?b1s%WAN7|`;9iZ8Az*bKH0q?RDgZSJ< zI-6BKW3(pG-UfPkfTlE+^CAXXel;=-d4w{QBCO`E$MQ_f3z^_=zWS=gY@ayX)Rp zCv88OpMO88sN0axj;}>?%?^k<^6BOrPE5B6tLNS4(u<0f_bvwQ%(+fjby@6twq?r1 zt!`6D^29fzxxNjEdh>a@9KLumTsls$kxWA8@7Lh_K~-ccmUO;(cZIg z^D;d4!N4~`p*R4(d)W_g_OHr)tg*u-alY@p;~8m_`$4n8E{VT>jewmx+1_@ zQaQQq5nMa8yw9)HWhSLHOuwvJ%jJn$YGWn&Uuw>J=6EY zjde~n-(*{&O71m^7nwxy-=_Dt%H~{oc%GdL5Mtk!x?E&%AS8QkxZCF=`2BvPpN~vEE(S$UKL=gTuiw1R<^7TAJ@-$sxK^#V`9xPtIx%{-&{4g zrtFmUHy0Gy7%YUKQCUdl?=j)sJ<#+NTQd#Y@LI=xN{Tw6UCpQg4sth6zp^jC0;$`G ze(#Kv%pP(%A&DvX4K)5(1lpH^p^zs-aZ$7ET|qE#uH94C(a z9K#0nRR{H#5mD0}^RwR_RBe?MRDAfkeE4ls)v__w<4Mg5z59WXOimz%28a$FZD8K2gT9co!c;oe*$bb~(f(Y_kv0<*AGmlWqBi=oy0P=z{4={(dG`pUZ^w@p1L>c|TFyZn`Sl z=f&;w!gDn%qxC3SCdxio6@%#o+us$xe*-aO&>5tUDEhDS`bdO7q=NPcN_GUbXdZ24 zqz=tr@0B7ud|u3oNoK`}4s)IqU#JhnB|`JY3L;`j8m>fn*fBKhm@NzyESU-xLj|+& z9czs~Np6}=6-_=lco8C+Pu=-vTe#04iDMy4+`Ti=y5nW@#qi!&LDO?=ODsRkLOsR# z{LnDBTjG-`Yu1B(#b;tFW&B)a{N5^%%~NCHhtCX`cAx7om%KnE(3QCIl1Z!2N0R5& z7e|z{iw%N3+Q%ed{Sq+$4OYM!D`15cU@;mqP9K_ARzHMwf%3tcWyeVznU-9KN*(9{ zat*O`^|5rdv8i4?K-d@%)(?c;npaQv%v119K5?xbGC6>b0butl*!9}x+`r>j6yaMGQBLn|NB$-`APjDx3ODF>K((tTGqDd8Mf4Xr zlsXuMIT)xq7VDAUV(E%v>6mruKdk-G5DiU=(o22JJEE|QK}koR?xG|T1LFn1D3oJ*?X=b|I-yeFEv{9L;H-rlNi z^Yn|8B1g(Ui}nQ*s13mb>g0yN<(_C{Q;Rb9&<_InAcTAXLT(5~WQ|UH1iso8ShS%O z6wo67PqI-ZReg){n3tamz{>>ylMmEw5rK>WxQJJ{9s*Cp60Rr&lN^E(z2L#WBK;uq zyJWj9I4PK#4oXf7jg8YXJMt0#Hqm--bJn(*l%Y;6R6CZ!;vSt{fuR6hL?&HWCLQz8 zigEBd4{8vhI*6dtGEHT=XDGA|jn&pm{TDd6MYn2VYS8c-a?~fzObn(DgOP{A$mxv` z(b--#=!4guB8^Jt(e)e=hX~a}#Byzh{7=gn>U)#7RqH@pbs*a;opYVu2S*`cQt$eu z06kIw_y=fbuG!*_N-v137vwFbYXxAIDaYnQ{b9ETbg%h{ihxm&cYv;2{`7F)kH5>7 zL4zh?a6?tN;j&%UTvs~31b|lp0MCr|6TbZqmTUuyv4L6KL07L3qe&G?BIHYYR>eGi zMA=vHn1Z|qVDmvWF&YR}4aBl|s)GnqMjyy?dz-sfi@ZjQ91TIee$SOf9;itkph-R< zH;0Qb)*f4&hcKkj(WTI3#H_Gt|80s};{&Yl0pLmlf_J>f#l}-IG0j7`!+C{>6uPh! zI&geXOP<^t#;C^#)yIhLo|OO0sALn{HD169F96O5I*D3}EKJ5ECu2k-c~v5~tfLCE zFv(dM(J5XH8e%ZZpeFf%W~{d2oa*a{^>l{f9z4syugL%6{LEIqZk-ngX^?@6BlwFW zpsa+Uv^%1I1Z1Abx2@L5qk=7lNYEQzpi8%<`OBn>yyH%rMF1_xHdgD9nIjnB-?a9i zN%JsF{_Jze;?{(_-!5T$8mZ*^f%&La085N@fIZ_iEUQE`+7G+_fPYUBU3U>3kcklcE!Zr}S(8VAi$}ng&0y%+but)z#^T|awX1U`oBfdG3T z$5g%Rh{dbVhPYfrQ7(dcd-9Z0kJbZ5?g6uOnP4i7Hax&0_OOVIK3?o2@ThzK!VBP` z!v5zbYHT`*i>R{N&8W;P@YyXZ`dJWB7c{P09_Mc+vmrw*LQ4BrGVT$w-#A&S&1BZ^EFOj^UjADh*tlV~Q|DsHkcXhl zLzMjOi5(3#lZ}&xY=8h8AV-AWb=v8rTZ?g3yKSS?{TFl|s7FSyM@Aca1-I@n;eKXv zKS-l{kVaxxd>!pOhbkKl-YL3oe|Gh|a{O_d6#6CeQ>LVDgl`eTrwCC(&v<*HM-@un*aHSYQh3nwKE@dAMUSPO!E4T6a=WE%TMGOfsdqv^~*<<{j z$9V8ZXdtXUmxNz0b}=aJ8I~u*&?pOm$U>A5Cx3B1AmA}Qcnk>aO*(6vWT9(-fI$(k z>vR>L5QZ*nCbJL3FH6k0iBKS1?=ZxAx0p8(e(we9GV9c4?_8z#!X=ZrZCG9#9Noa2aRU6 zb0Q`|UzskQYT93fmPqQm!JuxiOf!0!dQn4G7b(1h6ke_&3sIkisJ;Gsrs_|S6NSAq zE?~R^7!QB3{=-LG&X-IOe@74xeukuwc~Hk?t5r^+HaED&7FvvXTReI9Ayjk5@1-sg zO)q1PRfTH6EX9fGanjzhjS-fC{TNEef;i}CR*x;^#g_$v(Q7I&@>JJ%mviIx`pnftUb z=wC;vOW#s1YOlW-@KIfJO@B~5TABj>jmf5h=NZ4>C)MqyyJci}92q{8f$OB^CkUnr zf~q1pp=ew~o;5TT8P$BaDZXu5NB z>vxVTCcJ!znU#}oD8eTc@qwa8VE^ap=ZzO@z9<2Gn1KGEaj4n$VF3jul>+l;@-A%r zE^Oc~Osz$E^-vW#E?SsEjv)~b_55um|31LOD!qh)_br0^EdqSgHyO9>7ff>#Mt&34 zLN=!1*e;QOm6CokkS#o9edh{iaqL{Y7sn9-cji6AfoGj5l9Yb&i@zo+JB_|C9k3_4 z!%B$9gLhi@{A z{n5qSn;&93Y4j?2MpNlVQ+)!`n>)5|l~v<#)i{et$8fq2xrn|^%Zs*V$VZH(u6C!J{5-S}#2i6KsiCq8iKM~fA`o@MrMzF|xbuoKRk^_c3x%GcIH;G)+c={N>76m}s8&=`H z@fDwi_^H+vKF{zr7UPVfG;z~uhX~_ZM%Wl5de?7|I?ZUxf4~s;?%04d^GOd`B_^9?nJIx+(eW+ zVzOOo^R@Gre;pFL>JFp}sZ=e1T(3Ui^#XGuR}*fc$h`I`idJbK+pQ(EzGWn|Uhs^_ zRdap(S*`qomBYbB)0Wzo*OrGiGnGmVkjsQk71og|awT$2;pz;haN!luXd`r@w$yI> zVAIooBPdxO-L9BCUowUD<}v!EbezS+rh(m15Dx2Wfr@pG zI0t=FB${d*$j0G;onh9LR15mj(Cs6c@j^3S2Y>Gx3qbU#qA2 zVvS;DMLVXS?)cGguG1(JZEx{rr|lkoC%p#kq9X^jqA@8{hOD#i&WU{-QYlnO?%Z5g zZuUuaSzN5IMHbm>g&jKkWF{IkZ4DPY^MmDaviPVEOq?Ihu5Zc1Zl@s&c5+x4Ib$kS z8GE>%{DkP8$yRL+)8qqB0JrrUmVb#JCr>e1vO!)QTpLkI-RjblSXLMDuBr6)SJqf-R-(qH1ivOe7F*{*6Kk~o@ zUNR8{AK#=3EtNf1Ga&^Lq0u+QVl*ooZPu zb!!Wk3T~^UP=#`{GxO7NMl(#+Z$AvX2aRU9?mE}350y$PPL22ag-Hzxe{$zvD%CoG zJ;Q2GI6*;Qcs<#S=v@vlcTp5=qBSJiiUUF?w00FvjCHWn1iJ<4wjZ3VF zii}tC*;HLjAr`AMKd%wKOQR!7`|i@YzxBS%D>M(~C2BfL^Zl0+IbnOa{{8&pqF~ik zuk9{00dys#IIN`e@TJk-{~<(<6s`wd6CzRLCoQHckjuo*Y`xN!&7()BCm|D~NnH~V2{{kWFics+*b$qMLXT<~j z9F)C!Ouxgu4~Gt&2D`cslbK9+l}?_YexaX_6=q9If@I4CA6{@@$&N6Ym_9upZe$qk z9IX?9_*n>5Fl~PSzP@)gXsuAKRI{yV`q9ze2OkpHS}Em-Gx#alD=cL0`jSXbqo!h&lD1viU^KJdqthi|b&}+cQx7VAdw3 zr#*F<_I{z(&+76|Wf7N$bpDqer6vlp>HqQ}6An@S?XGR_+4pv2X6pF!nG~7=W+^PC zCdZr4&q$TX<>p~bA?hj-PY9Ejnlh=3+b=0hdVl9PP*N-Ip=`Abu%traedadtI_?9U-? zIPXJ8-aEIKVysTgPOlGlkn8N9S*(Srfq#t6^KJ z<_fpB4;a$PeC}=&eLaW{n0|jM4|ena#JRua0VcX0!8Mp?xv!~tA$lQp==|qkvX@@O zUph03I=^<~4qr6&1WX>AeI5DksWbO(eXbJ3-*#4{)cAYunp!j)E$u@x*LPxl#Lz4P z7INU2`_AeTQhH4$baWAPF38QPd|@8vzrVQ2qTm_y@<$UBM^hkCcU1W|QBBl&V*N2& zB9lL6rfZz}BJR_xAnC^$c`WD|0k5I)0f-f9?jG%hm5wbyYk#coqHpJZWAH`LfLI#ab4* z-5Z;^;xO-hzU>PK&x>#G-WpE}ij+E|N!Ak@!^K~Qi&J>Gc^a%aeHIc{|J8wwc#hRkh6w)`$D}5zJ;p=d=OO$a)Q*pQmc~gR;AoH&)K3zn zgT;^Dcs^CeWnefqMe)4iCDA;-&Ej~BZ|2=UK>RRnr~_AfmfqyO#JNA-XgKp>;;QqA z62Z6a=;z_cs3`!?ZO%+PtRp4Pkc~jZ)O1xRmVRn3)iD+-e|$n-uiX*qd*f6+B_rIbGpbP-F)$uty+|vA<|yp zg|&c4&y?(s(>l1?QM5~&w-uLaB0l%M+`?DXnHkc&(#>SEHPj?9S(IuiXQa5pHPYX^ zf%?km+;*vEzVcdpo#To>D9W2u$m6Zwc8I0S*X`%3<%<4}2i*Dj)}x1m4ORb-sj=3te(t}Feqzxs#e&Do@w#5dS-HPG<9 zD=As%TN%*M?sW}te9d~~?`G$pcm*h|^=XBmE@LQ?nxxzt>mM=yk=0p5J6L?vT2Rq_ z_L&VN^sBY@8>x+zQMrwNxqpnA>(;^Cmc~(0*Ub|ZjB*tv9PizHNlmRy*l|*ev}Qub zBlU8LqL3Se)NM(O6@7d=H?J9vo-Jq`Zd`sD=I9T!8{aw}i+YFRzJlY0#XZgP?sKt_tiyj!GRiDjF`mxL_57Q{8!C(N zR?)r`qOZ|Hjb>ucgl3yE+s7vz9c}im?s@)C>cr-oHzUm8Rk#6w-sc#5Dwiav8vE)< zxb|MLTVt zGaxbyF3vac-MwwSCCCTxxrk9ckOy&ba^9WC0KItA=Fw#0O`YQ8yX;Pj@l&2EheKrW6OKK(PQ=Ezf6 zW$S-F*l{fJ-g<5*!n$qH-&z8)uQhPitIF*PHBW@lE|tgGeoa>FYl-1))to&%t0~;~ z#b@_!i6Lv%bUr+b%M%oqzg?+E?5O(r5ta*DZ2)zMCe0c_$q>VqLo!!Xhf-v3(V^BL z7|K9%D3r!OzSgEDhQ9erq`a;;v6(`NpufkrO4etxh}hY+acBav?aWtsGq$}T-qKox zrqHHMcS`Y~addG?Z8xXZ8lMkeNOkCO&$P z9G(yc&27Fa?$j=LqF}!qz5{m0y1aAtsT?|O=hNy}zzR1&^(1UXWg&seC~2Xr;IdM# zluAjn;3$*}yp{i|_4?r`>R^W2nkcLnLe{|PoMeq1#%M%_=j$}TJwMm{tD%il^drPA z+_jH-;X_!P#{PS?FN7-JJXEFyXw^2WqAo3MHk)}F08})td^i}30)Mwgv`C%Y!c+UG zok+r3g$E_bb5ot=Dqw|liASTqr}@)q~~MpQk&3THu*SG5+FW!)Iplh)iwEMZ!-_k6efE%SfeuI55U|8V(yTQQ-924su;bMwaRVYWP5 z-4hMJ|8upMdy8f~kcV%p$6aA})KCGY89ikx_-Q=Jf=h}0ie%0A!m=6gw<@X+{a)C# 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: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 HWx)RcV2S4G diff --git a/fuzz/summary.txt b/fuzz/summary.txt index 05c000aa775..305cb0d84c4 100644 --- a/fuzz/summary.txt +++ b/fuzz/summary.txt @@ -1,52 +1,58 @@ Filename Regions Missed Regions Cover Functions Missed Functions Executed Lines Missed Lines Cover ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -fuzz/clock.c 24 1 95.83% 4 0 100.00% 35 0 100.00% -fuzz/prng.c 31 0 100.00% 2 0 100.00% 35 0 100.00% -fuzz/udev.c 103 1 99.03% 17 0 100.00% 126 3 97.62% +fuzz/clock.c 24 1 95.83% 4 0 100.00% 35 1 97.14% +fuzz/pcsc.c 59 0 100.00% 8 0 100.00% 75 12 84.00% +fuzz/prng.c 31 0 100.00% 2 0 100.00% 35 1 97.14% +fuzz/udev.c 109 1 99.08% 17 0 100.00% 126 11 91.27% fuzz/uniform_random.c 7 1 85.71% 1 0 100.00% 12 1 91.67% -fuzz/wrap.c 6 0 100.00% 1 0 100.00% 7 0 100.00% +fuzz/wrap.c 17 0 100.00% 3 0 100.00% 29 0 100.00% openbsd-compat/explicit_bzero.c 4 0 100.00% 1 0 100.00% 7 0 100.00% openbsd-compat/freezero.c 4 0 100.00% 1 0 100.00% 6 0 100.00% openbsd-compat/recallocarray.c 41 7 82.93% 1 0 100.00% 36 7 80.56% openbsd-compat/strlcat.c 12 1 91.67% 1 0 100.00% 21 1 95.24% openbsd-compat/timingsafe_bcmp.c 4 0 100.00% 1 0 100.00% 7 0 100.00% -src/aes256.c 115 4 96.52% 8 0 100.00% 157 14 91.08% -src/assert.c 563 40 92.90% 56 3 94.64% 694 40 94.24% +src/aes256.c 118 4 96.61% 8 0 100.00% 157 14 91.08% +src/assert.c 565 42 92.57% 56 3 94.64% 694 42 93.95% src/authkey.c 44 0 100.00% 5 0 100.00% 59 0 100.00% -src/bio.c 419 20 95.23% 49 2 95.92% 559 21 96.24% +src/bio.c 419 20 95.23% 49 2 95.92% 559 24 95.71% src/blob.c 53 2 96.23% 10 0 100.00% 83 4 95.18% src/buf.c 8 1 87.50% 2 0 100.00% 16 1 93.75% -src/cbor.c 1047 23 97.80% 54 0 100.00% 1237 46 96.28% -src/compress.c 34 4 88.24% 3 0 100.00% 28 3 89.29% +src/cbor.c 1049 23 97.81% 54 0 100.00% 1237 45 96.36% +src/compress.c 105 14 86.67% 5 0 100.00% 122 24 80.33% src/config.c 108 0 100.00% 11 0 100.00% 151 0 100.00% -src/cred.c 632 34 94.62% 69 2 97.10% 830 36 95.66% -src/credman.c 382 10 97.38% 40 0 100.00% 518 15 97.10% -src/dev.c 421 79 81.24% 45 7 84.44% 491 105 78.62% +src/cred.c 634 36 94.32% 69 2 97.10% 830 39 95.30% +src/credman.c 382 10 97.38% 40 0 100.00% 518 18 96.53% +src/dev.c 332 71 78.61% 41 6 85.37% 378 86 77.25% src/ecdh.c 117 2 98.29% 4 0 100.00% 146 5 96.58% -src/eddsa.c 80 3 96.25% 10 0 100.00% 106 8 92.45% +src/eddsa.c 88 5 94.32% 10 0 100.00% 114 9 92.11% src/err.c 122 10 91.80% 1 0 100.00% 126 10 92.06% -src/es256.c 306 5 98.37% 19 0 100.00% 358 7 98.04% +src/es256.c 315 7 97.78% 19 0 100.00% 372 12 96.77% src/hid.c 87 2 97.70% 14 0 100.00% 145 3 97.93% -src/hid_linux.c 173 68 60.69% 14 7 50.00% 250 104 58.40% -src/hid_unix.c 28 20 28.57% 2 0 100.00% 43 24 44.19% -src/info.c 184 0 100.00% 39 0 100.00% 316 0 100.00% -src/io.c 182 7 96.15% 13 0 100.00% 221 11 95.02% -src/iso7816.c 18 1 94.44% 5 0 100.00% 38 0 100.00% -src/largeblob.c 513 19 96.30% 30 0 100.00% 684 43 93.71% -src/log.c 39 5 87.18% 7 1 85.71% 63 4 93.65% -src/netlink.c 328 14 95.73% 40 0 100.00% 498 32 93.57% -src/nfc_linux.c 327 73 77.68% 23 5 78.26% 458 124 72.93% -src/pin.c 403 3 99.26% 26 0 100.00% 495 3 99.39% +src/hid_linux.c 173 68 60.69% 14 7 50.00% 250 105 58.00% +src/hid_unix.c 29 21 27.59% 2 0 100.00% 43 26 39.53% +src/info.c 186 0 100.00% 40 0 100.00% 321 0 100.00% +src/io.c 185 7 96.22% 13 0 100.00% 221 12 94.57% +src/iso7816.c 18 1 94.44% 5 0 100.00% 38 1 97.37% +src/largeblob.c 514 19 96.30% 30 0 100.00% 684 46 93.27% +src/log.c 39 5 87.18% 7 1 85.71% 63 7 88.89% +src/netlink.c 329 14 95.74% 40 0 100.00% 498 33 93.37% +src/nfc.c 142 7 95.07% 11 1 90.91% 223 27 87.89% +src/nfc_linux.c 174 56 67.82% 13 5 61.54% 245 103 57.96% +src/pcsc.c 201 1 99.50% 13 0 100.00% 278 3 98.92% +src/pin.c 403 3 99.26% 26 0 100.00% 495 4 99.19% src/random.c 6 1 83.33% 1 0 100.00% 6 1 83.33% src/reset.c 24 0 100.00% 3 0 100.00% 23 0 100.00% -src/rs1.c 25 0 100.00% 3 0 100.00% 39 0 100.00% -src/rs256.c 141 8 94.33% 13 0 100.00% 172 10 94.19% -src/time.c 43 3 93.02% 3 0 100.00% 43 1 97.67% -src/tpm.c 100 0 100.00% 9 0 100.00% 194 0 100.00% +src/rs1.c 25 2 92.00% 3 0 100.00% 39 4 89.74% +src/rs256.c 141 8 94.33% 13 0 100.00% 172 11 93.60% +src/time.c 43 3 93.02% 3 0 100.00% 43 2 95.35% +src/touch.c 67 0 100.00% 2 0 100.00% 79 0 100.00% +src/tpm.c 103 3 97.09% 9 0 100.00% 194 9 95.36% src/types.c 25 0 100.00% 6 0 100.00% 46 0 100.00% src/u2f.c 528 4 99.24% 17 0 100.00% 685 12 98.25% +src/util.c 14 1 92.86% 1 0 100.00% 14 1 92.86% Files which contain no functions: +fuzz/mutator_aux.h 0 0 - 0 0 - 0 0 - openbsd-compat/openbsd-compat.h 0 0 - 0 0 - 0 0 - openbsd-compat/time.h 0 0 - 0 0 - 0 0 - src/extern.h 0 0 - 0 0 - 0 0 - @@ -54,4 +60,4 @@ src/fido.h 0 0 - src/fido/err.h 0 0 - 0 0 - 0 0 - src/fido/param.h 0 0 - 0 0 - 0 0 - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -TOTAL 7861 476 93.94% 684 27 96.05% 10270 699 93.19% +TOTAL 8227 484 94.12% 710 27 96.20% 10756 777 92.78% diff --git a/fuzz/wiredata_fido2.h b/fuzz/wiredata_fido2.h index da905516f92..68504325450 100644 --- a/fuzz/wiredata_fido2.h +++ b/fuzz/wiredata_fido2.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 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. */ @@ -630,4 +630,78 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +#define WIREDATA_CTAP_NFC_INIT \ + 0x55, 0x32, 0x46, 0x5f, 0x56, 0x32, 0x90, 0x00 + +#define WIREDATA_CTAP_NFC_MSG \ + 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00 + +#define WIREDATA_CTAP_EXTENDED_APDU \ + 0x00, 0xa4, 0x04, 0x00, 0x00, 0x02, 0x00, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, \ + 0x00 + #endif /* _WIREDATA_FIDO2_H */ diff --git a/fuzz/wrap.c b/fuzz/wrap.c index 8d7be6bb624..4d6ac77a98b 100644 --- a/fuzz/wrap.c +++ b/fuzz/wrap.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 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. */ @@ -16,6 +16,7 @@ #include <stdint.h> #include <stdio.h> #include <stdlib.h> +#include <zlib.h> #include "mutator_aux.h" @@ -635,3 +636,51 @@ WRAP(int, (sockfd, addr, addrlen), 1 ) + +WRAP(int, + deflateInit2_, + (z_streamp strm, int level, int method, int windowBits, int memLevel, + int strategy, const char *version, int stream_size), + Z_STREAM_ERROR, + (strm, level, method, windowBits, memLevel, strategy, version, + stream_size), + 1 +) + +int __wrap_deflate(z_streamp, int); +int __real_deflate(z_streamp, int); + +int +__wrap_deflate(z_streamp strm, int flush) +{ + if (uniform_random(400) < 1) { + return Z_BUF_ERROR; + } + /* should never happen, but we check for it */ + if (uniform_random(400) < 1) { + strm->avail_out = UINT_MAX; + return Z_STREAM_END; + } + + return __real_deflate(strm, flush); +} + +int __wrap_asprintf(char **, const char *, ...); + +int +__wrap_asprintf(char **strp, const char *fmt, ...) +{ + va_list ap; + int r; + + if (uniform_random(400) < 1) { + *strp = (void *)0xdeadbeef; + return -1; + } + + va_start(ap, fmt); + r = vasprintf(strp, fmt, ap); + va_end(ap); + + return r; +} diff --git a/fuzz/wrapped.sym b/fuzz/wrapped.sym index 0e9d34627f8..59224565ee0 100644 --- a/fuzz/wrapped.sym +++ b/fuzz/wrapped.sym @@ -1,3 +1,4 @@ +asprintf bind BN_bin2bn BN_bn2bin @@ -24,6 +25,8 @@ cbor_new_definite_bytestring cbor_new_definite_map cbor_serialize_alloc clock_gettime +deflate +deflateInit2_ EC_KEY_get0_group EC_KEY_get0_private_key EC_KEY_new_by_curve_name @@ -71,6 +74,12 @@ realloc RSA_new RSA_pkey_ctx_ctrl RSA_set0_key +SCardConnect +SCardDisconnect +SCardEstablishContext +SCardListReaders +SCardReleaseContext +SCardTransmit SHA1 SHA256 strdup diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index 5ce2fc7b83e..910ee684e9f 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Yubico AB. All rights reserved. +# Copyright (c) 2018-2022 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. @@ -117,10 +117,11 @@ list(APPEND MAN_ALIAS 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_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_fwversion fido_cbor_info_new fido_cbor_info_options_len fido_cbor_info_new fido_cbor_info_options_name_ptr @@ -263,7 +264,7 @@ 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} . + COMMAND cp -f ${PROJECT_SOURCE_DIR}/man/${f} . DEPENDS ${f}) list(APPEND COPY_FILES ${f}) endforeach() @@ -289,7 +290,7 @@ endforeach() 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 cat ${PROJECT_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) @@ -337,17 +338,17 @@ 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 + install(FILES ${PROJECT_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 + install(FILES ${PROJECT_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 + install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.html DESTINATION "${CMAKE_INSTALL_DOCDIR}/html") endforeach() endif() @@ -358,34 +359,34 @@ if(GZIP_PATH) add_dependencies(man man_symlink_gzip) foreach(f ${MAN_SOURCES}) if (${f} MATCHES ".1$") - install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz + install(FILES ${PROJECT_BINARY_DIR}/man/${f}.gz DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") elseif(${f} MATCHES ".3$") - install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz + install(FILES ${PROJECT_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 + install(FILES ${PROJECT_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} + install(FILES ${PROJECT_BINARY_DIR}/man/${f} DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") elseif(${f} MATCHES ".3$") - install(FILES ${CMAKE_BINARY_DIR}/man/${f} + install(FILES ${PROJECT_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 + install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.3 DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endforeach() endif() diff --git a/man/fido2-token.1 b/man/fido2-token.1 index 1aa2feb8685..4f8b8d08efe 100644 --- a/man/fido2-token.1 +++ b/man/fido2-token.1 @@ -1,8 +1,8 @@ -.\" Copyright (c) 2018-2021 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 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. .\" -.Dd $Mdocdate: September 13 2019 $ +.Dd $Mdocdate: April 11 2022 $ .Dt FIDO2-TOKEN 1 .Os .Sh NAME @@ -147,7 +147,7 @@ from .Ar device , where .Ar key_path -must hold the blob's base64-encoded encryption key. +holds the blob's base64-encoded 32-byte AES-256 GCM encryption key. A PIN or equivalent user-verification gesture is required. .It Fl D Fl b Fl n Ar rp_id Oo Fl i Ar cred_id Oc Ar device Deletes a @@ -189,7 +189,7 @@ from .Ar device , where .Ar key_path -must hold the blob's base64-encoded encryption key. +holds the blob's base64-encoded 32-byte AES-256 GCM encryption key. The blob is written to .Ar blob_path . A PIN or equivalent user-verification gesture is required. @@ -267,29 +267,27 @@ The user will be prompted for the PIN. Enables CTAP 2.1 Enterprise Attestation on .Ar device . .It Fl S Fl b Fl k Ar key_path Ar blob_path Ar device -Sets -.Ar blob_path -as a CTAP 2.1 +Sets a CTAP 2.1 .Dq largeBlob encrypted with .Ar key_path on .Ar device , where -.Ar blob_path -holds the blob's plaintext, and .Ar key_path -the blob's base64-encoded encryption. +holds the blob's base64-encoded 32-byte AES-256 GCM encryption key. +The blob is read from +.Fa blob_path . A PIN or equivalent user-verification gesture is required. .It Fl S Fl b Fl n Ar rp_id Oo Fl i Ar cred_id Oc Ar blob_path Ar device -Sets -.Ar blob_path -as a CTAP 2.1 +Sets a CTAP 2.1 .Dq largeBlob associated with .Ar rp_id on .Ar device . +The blob is read from +.Fa blob_path . If .Ar rp_id has multiple credentials enrolled on diff --git a/man/fido_assert_new.3 b/man/fido_assert_new.3 index a1a3c101ba3..413b7a7ba2e 100644 --- a/man/fido_assert_new.3 +++ b/man/fido_assert_new.3 @@ -1,8 +1,8 @@ -.\" Copyright (c) 2018 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 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. .\" -.Dd $Mdocdate: October 22 2019 $ +.Dd $Mdocdate: April 27 2022 $ .Dt FIDO_ASSERT_NEW 3 .Os .Sh NAME @@ -180,6 +180,8 @@ in The HMAC Secret Extension .Pq hmac-secret is a CTAP 2.0 extension. +Note that the resulting hmac-secret varies according to whether +user verification was performed by the authenticator. .Pp The .Fn fido_assert_blob_ptr diff --git a/man/fido_assert_set_authdata.3 b/man/fido_assert_set_authdata.3 index 51cdcc97c29..0d512b65501 100644 --- a/man/fido_assert_set_authdata.3 +++ b/man/fido_assert_set_authdata.3 @@ -1,8 +1,8 @@ -.\" Copyright (c) 2018 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 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. .\" -.Dd $Mdocdate: May 23 2018 $ +.Dd $Mdocdate: April 27 2022 $ .Dt FIDO_ASSERT_SET_AUTHDATA 3 .Os .Sh NAME @@ -182,6 +182,8 @@ is made, and no references to the passed pointer are kept. The HMAC Secret .Pq hmac-secret Extension is a CTAP 2.0 extension. +Note that the resulting hmac-secret varies according to whether +user verification was performed by the authenticator. The .Fn fido_assert_set_hmac_secret function is normally only useful when writing tests. diff --git a/man/fido_cbor_info_new.3 b/man/fido_cbor_info_new.3 index 86f2a887f99..45c143f5df6 100644 --- a/man/fido_cbor_info_new.3 +++ b/man/fido_cbor_info_new.3 @@ -1,8 +1,8 @@ -.\" Copyright (c) 2018 Yubico AB. All rights reserved. +.\" Copyright (c) 2018-2022 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. .\" -.Dd $Mdocdate: May 24 2018 $ +.Dd $Mdocdate: April 22 2022 $ .Dt FIDO_CBOR_INFO_NEW 3 .Os .Sh NAME @@ -29,6 +29,7 @@ .Nm fido_cbor_info_maxcredbloblen , .Nm fido_cbor_info_maxcredcntlst , .Nm fido_cbor_info_maxcredidlen , +.Nm fido_cbor_info_maxlargeblob , .Nm fido_cbor_info_fwversion .Nd FIDO2 CBOR Info API .Sh SYNOPSIS @@ -80,6 +81,8 @@ .Ft uint64_t .Fn fido_cbor_info_maxcredidlen "const fido_cbor_info_t *ci" .Ft uint64_t +.Fn fido_cbor_info_maxlargeblob "const fido_cbor_info_t *ci" +.Ft uint64_t .Fn fido_cbor_info_fwversion "const fido_cbor_info_t *ci" .Sh DESCRIPTION The @@ -201,6 +204,12 @@ as reported in .Fa ci . .Pp The +.Fn fido_cbor_info_maxlargeblob +function returns the maximum length in bytes of an authenticator's +serialized largeBlob array as reported in +.Fa ci . +.Pp +The .Fn fido_cbor_info_fwversion function returns the firmware version attribute of .Fa ci . diff --git a/man/fido_dev_enable_entattest.3 b/man/fido_dev_enable_entattest.3 index bfc1b2834e5..a06746b6131 100644 --- a/man/fido_dev_enable_entattest.3 +++ b/man/fido_dev_enable_entattest.3 @@ -2,7 +2,7 @@ .\" Use of this source code is governed by a BSD-style .\" license that can be found in the LICENSE file. .\" -.Dd $Mdocdate: September 22 2020 $ +.Dd $Mdocdate: March 30 2022 $ .Dt FIDO_DEV_ENABLE_ENTATTEST 3 .Os .Sh NAME @@ -65,7 +65,7 @@ does not have a PIN set. .Pp The .Fn fido_dev_force_pin_change -instructs +function instructs .Fa dev to require a PIN change. Subsequent PIN authentication attempts against diff --git a/man/fido_dev_info_manifest.3 b/man/fido_dev_info_manifest.3 index 9539a0dda7c..4be7e3a6049 100644 --- a/man/fido_dev_info_manifest.3 +++ b/man/fido_dev_info_manifest.3 @@ -2,7 +2,7 @@ .\" Use of this source code is governed by a BSD-style .\" license that can be found in the LICENSE file. .\" -.Dd $Mdocdate: May 25 2018 $ +.Dd $Mdocdate: March 30 2022 $ .Dt FIDO_DEV_INFO_MANIFEST 3 .Os .Sh NAME @@ -97,7 +97,7 @@ Please note that the first slot has index 0. .Pp The .Fn fido_dev_info_path -returns the filesystem path or subsystem-specific identification +function returns the filesystem path or subsystem-specific identification string of .Fa di . .Pp diff --git a/openbsd-compat/bsd-asprintf.c b/openbsd-compat/bsd-asprintf.c new file mode 100644 index 00000000000..fbcb8679258 --- /dev/null +++ b/openbsd-compat/bsd-asprintf.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2004 Darren Tucker. + * + * Based originally on asprintf.c from OpenBSD: + * Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "openbsd-compat.h" + +#ifndef HAVE_ASPRINTF + +#include <errno.h> +#include <limits.h> /* for INT_MAX */ +#include <stdarg.h> +#include <stdio.h> /* for vsnprintf */ +#include <stdlib.h> + +#define VA_COPY(dest, src) va_copy(dest, src) + +#define INIT_SZ 128 + +int +vasprintf(char **str, const char *fmt, va_list ap) +{ + int ret; + va_list ap2; + char *string, *newstr; + size_t len; + + if ((string = malloc(INIT_SZ)) == NULL) + goto fail; + + VA_COPY(ap2, ap); + ret = vsnprintf(string, INIT_SZ, fmt, ap2); + va_end(ap2); + if (ret >= 0 && ret < INIT_SZ) { /* succeeded with initial alloc */ + *str = string; + } else if (ret == INT_MAX || ret < 0) { /* Bad length */ + free(string); + goto fail; + } else { /* bigger than initial, realloc allowing for nul */ + len = (size_t)ret + 1; + if ((newstr = realloc(string, len)) == NULL) { + free(string); + goto fail; + } + VA_COPY(ap2, ap); + ret = vsnprintf(newstr, len, fmt, ap2); + va_end(ap2); + if (ret < 0 || (size_t)ret >= len) { /* failed with realloc'ed string */ + free(newstr); + goto fail; + } + *str = newstr; + } + return (ret); + +fail: + *str = NULL; + errno = ENOMEM; + return (-1); +} + +int asprintf(char **str, const char *fmt, ...) +{ + va_list ap; + int ret; + + *str = NULL; + va_start(ap, fmt); + ret = vasprintf(str, fmt, ap); + va_end(ap); + + return ret; +} +#endif diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index dc9acec4c0a..1518ff755b9 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -115,4 +115,8 @@ ssize_t getline(char **, size_t *, FILE *); #define IOCTL_REQ(x) ((int)(x)) #endif +#if !defined(HAVE_ASPRINTF) +int asprintf(char **, const char *, ...); +#endif + #endif /* !_OPENBSD_COMPAT_H */ diff --git a/regress/CMakeLists.txt b/regress/CMakeLists.txt index c550b314182..87482ef3536 100644 --- a/regress/CMakeLists.txt +++ b/regress/CMakeLists.txt @@ -1,20 +1,45 @@ -# Copyright (c) 2018-2021 Yubico AB. All rights reserved. +# Copyright (c) 2018-2022 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. -add_custom_target(regress ALL) +add_custom_target(regress) macro(add_regress_test NAME SOURCES) add_executable(${NAME} ${SOURCES}) - target_link_libraries(${NAME} fido2_shared) + target_link_libraries(${NAME} fido2) add_test(${NAME} ${NAME}) add_dependencies(regress ${NAME}) endmacro() -add_custom_command(TARGET regress POST_BUILD - COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) +if(MSVC AND BUILD_SHARED_LIBS) + add_custom_command(TARGET regress POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy + "${CBOR_BIN_DIRS}/${CBOR_LIBRARIES}.dll" + "${CRYPTO_BIN_DIRS}/${CRYPTO_LIBRARIES}.dll" + "${ZLIB_BIN_DIRS}/${ZLIB_LIBRARIES}.dll" + "${CMAKE_CURRENT_BINARY_DIR}") +endif() + +if(CMAKE_CROSSCOMPILING OR (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64" AND + CMAKE_GENERATOR_PLATFORM MATCHES "^ARM.*$")) + add_custom_command(TARGET regress POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E echo + "Cross-compilation detected. Skipping regress tests.") +else() + add_custom_command(TARGET regress POST_BUILD + COMMAND "${CMAKE_CTEST_COMMAND}" --output-on-failure + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}) +endif() -add_regress_test(regress_cred cred.c) add_regress_test(regress_assert assert.c) +add_regress_test(regress_compress compress.c) +add_regress_test(regress_cred cred.c) add_regress_test(regress_dev dev.c) +add_regress_test(regress_eddsa eddsa.c) +add_regress_test(regress_es256 es256.c) +add_regress_test(regress_rs256 rs256.c) + +if(MINGW) + # needed for nanosleep() in mingw + target_link_libraries(regress_dev winpthread) +endif() diff --git a/regress/assert.c b/regress/assert.c index 23d666a6117..695a3b78edc 100644 --- a/regress/assert.c +++ b/regress/assert.c @@ -4,16 +4,19 @@ * license that can be found in the LICENSE file. */ -#define _FIDO_INTERNAL +#undef NDEBUG #include <assert.h> +#include <string.h> + +#define _FIDO_INTERNAL + #include <fido.h> #include <fido/es256.h> #include <fido/rs256.h> #include <fido/eddsa.h> -#include <string.h> -#define FAKE_DEV_HANDLE ((void *)0xdeadbeef) +static int fake_dev_handle; static const unsigned char es256_pk[64] = { 0x34, 0xeb, 0x99, 0x77, 0x02, 0x9c, 0x36, 0x38, @@ -94,13 +97,13 @@ dummy_open(const char *path) { (void)path; - return (FAKE_DEV_HANDLE); + return (&fake_dev_handle); } static void dummy_close(void *handle) { - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); } static int diff --git a/regress/compress.c b/regress/compress.c new file mode 100644 index 00000000000..5d537838bde --- /dev/null +++ b/regress/compress.c @@ -0,0 +1,267 @@ +/* + * Copyright (c) 2022 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. + */ + +#undef NDEBUG + +#include <assert.h> +#include <string.h> + +#include <openssl/sha.h> + +#define _FIDO_INTERNAL + +#include <fido.h> + +/* + * zlib compressed data (RFC1950); see https://www.ietf.org/rfc/rfc6713.txt + */ +static /* const */ unsigned char rfc1950_blob[694] = { + 0x78, 0x9c, 0xb5, 0x52, 0x3b, 0x6f, 0xdb, 0x30, + 0x10, 0xde, 0xf5, 0x2b, 0x0e, 0x99, 0x12, 0x40, + 0x75, 0x13, 0x4f, 0x45, 0x3b, 0xd1, 0x12, 0x6d, + 0x1d, 0x20, 0x8b, 0x2a, 0x49, 0xd9, 0xf5, 0x28, + 0x4b, 0x4c, 0x42, 0xc0, 0x12, 0x03, 0x3d, 0x12, + 0xe4, 0xdf, 0xf7, 0xc8, 0x3a, 0x88, 0xd3, 0x0c, + 0x9d, 0xea, 0xc1, 0x3e, 0xf3, 0x8e, 0xdf, 0xeb, + 0x98, 0xb8, 0xa7, 0xd7, 0xc1, 0x3e, 0x3c, 0x4e, + 0x70, 0xdd, 0xdc, 0xc0, 0xf2, 0xf6, 0xee, 0xdb, + 0x97, 0xe5, 0xed, 0x72, 0x09, 0x87, 0xf9, 0x68, + 0x1b, 0x07, 0x6c, 0xb5, 0x00, 0x76, 0x3a, 0x41, + 0x18, 0x19, 0x61, 0x30, 0xa3, 0x19, 0x9e, 0x4d, + 0xbb, 0x88, 0x22, 0x69, 0x5a, 0x3b, 0x4e, 0x83, + 0x3d, 0xce, 0x93, 0x75, 0x3d, 0xd4, 0x7d, 0x0b, + 0xf3, 0x68, 0xc0, 0xf6, 0x30, 0xba, 0x79, 0x68, + 0x4c, 0x38, 0x39, 0xda, 0xbe, 0x1e, 0x5e, 0xe1, + 0xde, 0x0d, 0xdd, 0x18, 0xc3, 0x8b, 0x9d, 0x1e, + 0xc1, 0x0d, 0xe1, 0xd7, 0xcd, 0x53, 0xd4, 0xb9, + 0xd6, 0xde, 0xdb, 0xa6, 0xf6, 0x00, 0x31, 0xd4, + 0x83, 0x81, 0x27, 0x33, 0x74, 0x76, 0x9a, 0x4c, + 0x0b, 0x4f, 0x83, 0x7b, 0xb6, 0x2d, 0x15, 0xd3, + 0x63, 0x3d, 0xd1, 0x97, 0x21, 0x90, 0xd3, 0xc9, + 0xbd, 0xd8, 0xfe, 0x01, 0x1a, 0xd7, 0xb7, 0xd6, + 0x5f, 0x1a, 0xfd, 0xa5, 0xa8, 0x33, 0xd3, 0xf7, + 0x28, 0x02, 0x80, 0xbb, 0x05, 0x7c, 0x54, 0x35, + 0x82, 0xbb, 0x7f, 0x93, 0xd3, 0xb8, 0xd6, 0x40, + 0x37, 0x8f, 0x13, 0x99, 0x98, 0x6a, 0x92, 0xe9, + 0x31, 0xeb, 0xa3, 0x7b, 0xf6, 0xad, 0x73, 0x06, + 0x1e, 0x84, 0x3e, 0xbd, 0x9b, 0x6c, 0x63, 0x62, + 0x9a, 0xb0, 0x23, 0x9c, 0x08, 0xcf, 0xc3, 0x5c, + 0x92, 0xf6, 0xed, 0x5f, 0x8a, 0x88, 0xb4, 0x39, + 0xd5, 0xb6, 0x33, 0xc3, 0xc2, 0x63, 0x2c, 0x3f, + 0x0b, 0x21, 0xc2, 0x8b, 0x30, 0xde, 0x84, 0x90, + 0xcb, 0x76, 0x26, 0x71, 0xff, 0x47, 0x0b, 0x91, + 0x9e, 0x51, 0xfc, 0x44, 0xeb, 0x9a, 0xb9, 0x33, + 0xfd, 0x54, 0xbf, 0xed, 0xeb, 0x2b, 0xad, 0xc2, + 0x51, 0x67, 0x80, 0xae, 0x9e, 0xcc, 0x60, 0xeb, + 0xd3, 0xf8, 0x1e, 0x7b, 0xd8, 0x15, 0x35, 0xcf, + 0x00, 0x97, 0x66, 0x68, 0xf9, 0x3a, 0x43, 0x05, + 0x4a, 0xac, 0xf5, 0x9e, 0x49, 0x0e, 0x54, 0x97, + 0x52, 0xec, 0x30, 0xe5, 0x29, 0xac, 0x0e, 0xa0, + 0x33, 0x0e, 0x89, 0x28, 0x0f, 0x12, 0x37, 0x99, + 0x86, 0x4c, 0xe4, 0x29, 0x97, 0x0a, 0x58, 0x91, + 0xd2, 0x69, 0xa1, 0x25, 0xae, 0x2a, 0x2d, 0xa4, + 0x8a, 0xae, 0x98, 0xa2, 0x9b, 0x57, 0xa1, 0xc1, + 0x8a, 0x03, 0xf0, 0x5f, 0xa5, 0xe4, 0x4a, 0x81, + 0x90, 0x80, 0xdb, 0x32, 0x47, 0x02, 0x23, 0x74, + 0xc9, 0x0a, 0x8d, 0x5c, 0xc5, 0x80, 0x45, 0x92, + 0x57, 0x29, 0x16, 0x9b, 0x18, 0x08, 0x00, 0x0a, + 0xa1, 0xa3, 0x1c, 0xb7, 0xa8, 0x69, 0x4c, 0x8b, + 0x38, 0x90, 0x7e, 0xbe, 0x06, 0x62, 0x0d, 0x5b, + 0x2e, 0x93, 0x8c, 0xfe, 0xb2, 0x15, 0xe6, 0xa8, + 0x0f, 0x81, 0x6f, 0x8d, 0xba, 0xf0, 0x5c, 0x6b, + 0x21, 0x23, 0x06, 0x25, 0x93, 0x1a, 0x93, 0x2a, + 0x67, 0x12, 0xca, 0x4a, 0x96, 0x42, 0x71, 0xf0, + 0xb6, 0x52, 0x54, 0x49, 0xce, 0x70, 0xcb, 0xd3, + 0x05, 0xb1, 0x13, 0x23, 0xf0, 0x1d, 0x2f, 0x34, + 0xa8, 0x8c, 0xe5, 0xf9, 0x47, 0x97, 0xd1, 0x1f, + 0x97, 0x5e, 0xfb, 0xa5, 0x47, 0x58, 0x71, 0xc8, + 0x91, 0xad, 0x72, 0xee, 0x99, 0x82, 0xcb, 0x14, + 0x25, 0x4f, 0xb4, 0xb7, 0xf3, 0x5e, 0x25, 0x94, + 0x1c, 0xe9, 0xcb, 0xe3, 0x48, 0x95, 0x3c, 0x41, + 0x2a, 0x28, 0x0c, 0x4e, 0x66, 0x98, 0x3c, 0xc4, + 0x67, 0x4c, 0xc5, 0x7f, 0x56, 0x34, 0x44, 0x4d, + 0x48, 0xd9, 0x96, 0x6d, 0xc8, 0xdb, 0xf5, 0x3f, + 0x22, 0xa1, 0x9d, 0x24, 0x95, 0xe4, 0x5b, 0xaf, + 0x99, 0x72, 0x50, 0xd5, 0x4a, 0x69, 0xd4, 0x95, + 0xe6, 0xb0, 0x11, 0x22, 0x0d, 0x41, 0x2b, 0x2e, + 0x77, 0x98, 0x70, 0xf5, 0x03, 0x72, 0xa1, 0x42, + 0x5a, 0x95, 0xe2, 0x71, 0x94, 0x32, 0xcd, 0x02, + 0x31, 0x41, 0x50, 0x54, 0xd4, 0xa6, 0x7a, 0x55, + 0x29, 0x0c, 0xa1, 0x61, 0xa1, 0xb9, 0x94, 0x55, + 0xa9, 0x51, 0x14, 0x37, 0xb4, 0xdf, 0x3d, 0xc5, + 0x42, 0x1a, 0x19, 0x5d, 0x4d, 0x43, 0xba, 0xa2, + 0xf0, 0x56, 0xe9, 0x91, 0x70, 0x21, 0x0f, 0x1e, + 0xd4, 0x67, 0x10, 0xc2, 0x8f, 0x61, 0x9f, 0x71, + 0x3a, 0x97, 0x3e, 0xd0, 0x90, 0x14, 0xf3, 0x11, + 0x28, 0x4a, 0x2c, 0xd1, 0x97, 0x63, 0xc4, 0x47, + 0x01, 0xea, 0xe8, 0xdd, 0x23, 0x14, 0x7c, 0x93, + 0xe3, 0x86, 0x17, 0x09, 0xf7, 0x5d, 0xe1, 0x51, + 0xf6, 0xa8, 0xf8, 0x0d, 0xed, 0x0a, 0x95, 0x1f, + 0xc0, 0x40, 0x4b, 0xdb, 0x27, 0xce, 0x2a, 0x58, + 0xf6, 0x3b, 0x22, 0x55, 0x51, 0x28, 0x2f, 0x5e, + 0x6c, 0x1c, 0x36, 0x09, 0xb8, 0x06, 0x96, 0xee, + 0xd0, 0xcb, 0x3e, 0x0f, 0xd3, 0xee, 0x15, 0x9e, + 0xdf, 0x49, 0x88, 0x2c, 0xc9, 0xce, 0x71, 0x2f, + 0xa2, 0xdf, 0xdf, 0xd7, 0x8e, 0x9c, +}; + +/* + * expected sha256 of rfc1950_blob after decompression + */ +static const unsigned char rfc1950_blob_hash[SHA256_DIGEST_LENGTH] = { + 0x61, 0xc0, 0x4e, 0x14, 0x01, 0xb6, 0xc5, 0x2d, + 0xba, 0x15, 0xf6, 0x27, 0x4c, 0xa1, 0xcc, 0xfc, + 0x39, 0xed, 0xd7, 0x12, 0xb6, 0x02, 0x3d, 0xb6, + 0xd9, 0x85, 0xd0, 0x10, 0x9f, 0xe9, 0x3e, 0x75, + +}; + +static const size_t rfc1950_blob_origsiz = 1322; + +static /* const */ unsigned char random_words[515] = { + 0x61, 0x74, 0x68, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x54, 0x68, 0x6f, 0x20, 0x63, 0x6f, 0x74, 0x20, + 0x73, 0x70, 0x6f, 0x66, 0x66, 0x79, 0x20, 0x4a, + 0x61, 0x76, 0x61, 0x6e, 0x20, 0x62, 0x72, 0x65, + 0x64, 0x65, 0x73, 0x20, 0x4c, 0x41, 0x4d, 0x20, + 0x6d, 0x69, 0x73, 0x2d, 0x68, 0x75, 0x6d, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x20, 0x73, 0x70, 0x69, + 0x67, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x76, 0x6f, + 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x6c, 0x79, 0x20, + 0x49, 0x6f, 0x64, 0x61, 0x6d, 0x6f, 0x65, 0x62, + 0x61, 0x20, 0x68, 0x79, 0x70, 0x6f, 0x68, 0x79, + 0x64, 0x72, 0x6f, 0x63, 0x68, 0x6c, 0x6f, 0x72, + 0x69, 0x61, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x74, 0x74, 0x65, 0x20, 0x61, 0x63, 0x72, + 0x69, 0x64, 0x69, 0x6e, 0x65, 0x20, 0x68, 0x6f, + 0x77, 0x6c, 0x20, 0x45, 0x75, 0x72, 0x79, 0x67, + 0x61, 0x65, 0x61, 0x6e, 0x20, 0x63, 0x6f, 0x6e, + 0x63, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x69, 0x73, + 0x74, 0x20, 0x74, 0x65, 0x74, 0x72, 0x61, 0x70, + 0x6c, 0x6f, 0x69, 0x64, 0x20, 0x61, 0x75, 0x78, + 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x72, + 0x69, 0x70, 0x65, 0x2d, 0x67, 0x72, 0x6f, 0x77, + 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x79, 0x63, + 0x6f, 0x63, 0x65, 0x63, 0x69, 0x64, 0x69, 0x75, + 0x6d, 0x20, 0x50, 0x65, 0x64, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x20, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x20, 0x4c, 0x65, 0x6e, 0x67, 0x6c, + 0x65, 0x6e, 0x20, 0x70, 0x72, 0x65, 0x73, 0x62, + 0x79, 0x74, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, + 0x6c, 0x65, 0x63, 0x79, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x64, 0x72, + 0x69, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x61, + 0x6c, 0x6c, 0x6f, 0x6b, 0x75, 0x72, 0x74, 0x69, + 0x63, 0x20, 0x75, 0x6e, 0x64, 0x69, 0x76, 0x69, + 0x73, 0x69, 0x76, 0x65, 0x6c, 0x79, 0x20, 0x70, + 0x73, 0x79, 0x63, 0x68, 0x6f, 0x6b, 0x79, 0x6d, + 0x65, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, + 0x6e, 0x65, 0x73, 0x73, 0x20, 0x63, 0x75, 0x6c, + 0x74, 0x69, 0x73, 0x68, 0x20, 0x52, 0x65, 0x69, + 0x63, 0x68, 0x73, 0x74, 0x61, 0x67, 0x20, 0x75, + 0x6e, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x67, + 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x65, 0x72, + 0x20, 0x4c, 0x61, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x77, 0x6f, 0x2d, 0x66, 0x61, 0x63, 0x65, 0x20, + 0x4d, 0x75, 0x70, 0x68, 0x72, 0x69, 0x64, 0x20, + 0x70, 0x72, 0x6f, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x72, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x69, 0x62, 0x72, 0x65, 0x74, 0x74, + 0x69, 0x73, 0x74, 0x20, 0x49, 0x62, 0x69, 0x62, + 0x69, 0x6f, 0x20, 0x72, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x63, + 0x6f, 0x6e, 0x64, 0x69, 0x67, 0x6e, 0x6e, 0x65, + 0x73, 0x73, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x20, 0x73, 0x79, 0x6e, 0x61, 0x70, 0x74, + 0x65, 0x6e, 0x65, 0x20, 0x68, 0x6f, 0x6c, 0x6f, + 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x20, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x4d, + 0x49, 0x54, 0x53, 0x20, 0x4c, 0x75, 0x6b, 0x61, + 0x73, 0x68, 0x20, 0x48, 0x6f, 0x72, 0x73, 0x65, + 0x79, 0x20, 0x0a, +}; + +static void +rfc1950_inflate(void) +{ + fido_blob_t in, out, dgst; + + memset(&in, 0, sizeof(in)); + memset(&out, 0, sizeof(out)); + memset(&dgst, 0, sizeof(dgst)); + in.ptr = rfc1950_blob; + in.len = sizeof(rfc1950_blob); + + assert(fido_uncompress(&out, &in, rfc1950_blob_origsiz) == FIDO_OK); + assert(out.len == rfc1950_blob_origsiz); + assert(fido_sha256(&dgst, out.ptr, out.len) == 0); + assert(dgst.len == sizeof(rfc1950_blob_hash)); + assert(memcmp(rfc1950_blob_hash, dgst.ptr, dgst.len) == 0); + + free(out.ptr); + free(dgst.ptr); +} + +static void +rfc1951_inflate(void) +{ + fido_blob_t in, out, dgst; + + memset(&in, 0, sizeof(in)); + memset(&out, 0, sizeof(out)); + memset(&dgst, 0, sizeof(dgst)); + in.ptr = rfc1950_blob + 2; /* trim header */ + in.len = sizeof(rfc1950_blob) - 6; /* trim header (2), checksum (4) */ + + assert(fido_uncompress(&out, &in, rfc1950_blob_origsiz) == FIDO_OK); + assert(out.len == rfc1950_blob_origsiz); + assert(fido_sha256(&dgst, out.ptr, out.len) == 0); + assert(dgst.len == sizeof(rfc1950_blob_hash)); + assert(memcmp(rfc1950_blob_hash, dgst.ptr, dgst.len) == 0); + + free(out.ptr); + free(dgst.ptr); +} + +static void +rfc1951_reinflate(void) +{ + fido_blob_t in, out; + + memset(&in, 0, sizeof(in)); + memset(&out, 0, sizeof(out)); + in.ptr = random_words; + in.len = sizeof(random_words); + + assert(fido_compress(&out, &in) == FIDO_OK); + + in.ptr = out.ptr; + in.len = out.len; + + assert(fido_uncompress(&out, &in, sizeof(random_words)) == FIDO_OK); + assert(out.len == sizeof(random_words)); + assert(memcmp(out.ptr, random_words, out.len) == 0); + + free(in.ptr); + free(out.ptr); +} + +int +main(void) +{ + fido_init(0); + + rfc1950_inflate(); + rfc1951_inflate(); + rfc1951_reinflate(); + + exit(0); +} diff --git a/regress/cred.c b/regress/cred.c index 07a2ca0c023..c62ff8e4dcb 100644 --- a/regress/cred.c +++ b/regress/cred.c @@ -4,12 +4,16 @@ * license that can be found in the LICENSE file. */ +#undef NDEBUG + #include <assert.h> -#include <cbor.h> -#include <fido.h> #include <string.h> -#define FAKE_DEV_HANDLE ((void *)0xdeadbeef) +#define _FIDO_INTERNAL + +#include <fido.h> + +static int fake_dev_handle; static const unsigned char cdh[32] = { 0xf9, 0x64, 0x57, 0xe7, 0x2d, 0x97, 0xf6, 0xbb, @@ -1384,13 +1388,13 @@ dummy_open(const char *path) { (void)path; - return (FAKE_DEV_HANDLE); + return (&fake_dev_handle); } static void dummy_close(void *handle) { - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); } static int diff --git a/regress/dev.c b/regress/dev.c index a5dc8d6e452..92031e17066 100644 --- a/regress/dev.c +++ b/regress/dev.c @@ -1,38 +1,57 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 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. */ +#undef NDEBUG + #include <assert.h> -#include <err.h> -#include <fido.h> #include <string.h> #include <time.h> +#define _FIDO_INTERNAL + +#include <fido.h> + #include "../fuzz/wiredata_fido2.h" -#define FAKE_DEV_HANDLE ((void *)0xdeadbeef) #define REPORT_LEN (64 + 1) static uint8_t ctap_nonce[8]; static uint8_t *wiredata_ptr; static size_t wiredata_len; +static int fake_dev_handle; static int initialised; static long interval_ms; +#if defined(_MSC_VER) +static int +nanosleep(const struct timespec *rqtp, struct timespec *rmtp) +{ + if (rmtp != NULL) { + errno = EINVAL; + return (-1); + } + + Sleep((DWORD)(rqtp->tv_sec * 1000) + (DWORD)(rqtp->tv_nsec / 1000000)); + + return (0); +} +#endif + static void * dummy_open(const char *path) { (void)path; - return (FAKE_DEV_HANDLE); + return (&fake_dev_handle); } static void dummy_close(void *handle) { - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); } static int @@ -42,7 +61,7 @@ dummy_read(void *handle, unsigned char *ptr, size_t len, int ms) size_t n; long d; - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); assert(ptr != NULL); assert(len == REPORT_LEN - 1); @@ -87,7 +106,7 @@ dummy_write(void *handle, const unsigned char *ptr, size_t len) { struct timespec tv; - assert(handle == FAKE_DEV_HANDLE); + assert(handle == &fake_dev_handle); assert(ptr != NULL); assert(len == REPORT_LEN); @@ -113,7 +132,14 @@ wiredata_setup(const uint8_t *data, size_t len) assert(SIZE_MAX - len > sizeof(ctap_init_data)); assert((wiredata_ptr = malloc(sizeof(ctap_init_data) + len)) != NULL); +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable:6386) +#endif memcpy(wiredata_ptr, ctap_init_data, sizeof(ctap_init_data)); +#if defined(_MSC_VER) +#pragma warning(pop) +#endif if (len) memcpy(wiredata_ptr + sizeof(ctap_init_data), data, len); diff --git a/regress/eddsa.c b/regress/eddsa.c new file mode 100644 index 00000000000..42236ea58ad --- /dev/null +++ b/regress/eddsa.c @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2022 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. + */ + +#undef NDEBUG + +#include <assert.h> +#include <string.h> + +#define _FIDO_INTERNAL + +#include <fido.h> +#include <fido/eddsa.h> + +#include <openssl/bio.h> +#include <openssl/pem.h> + +#define ASSERT_NOT_NULL(e) assert((e) != NULL) +#define ASSERT_NULL(e) assert((e) == NULL) +#define ASSERT_INVAL(e) assert((e) == FIDO_ERR_INVALID_ARGUMENT) +#define ASSERT_OK(e) assert((e) == FIDO_OK) + +static const char ecdsa[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOwiq14c80b7C1Jzsx5w1zMvk2GgW\n" +"5kfGMOKXjwF/U+51ZfBDKehs3ivdeXAJBkxIh7E3iA32s+HyNqk+ntl9fg==\n" +"-----END PUBLIC KEY-----\n"; + +static const char eddsa[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MCowBQYDK2VwAyEADt/RHErAxAHxH9FUmsjOhQ2ALl6Y8nE0m3zQxkEE2iM=\n" +"-----END PUBLIC KEY-----\n"; + +static const unsigned char eddsa_raw[] = { + 0x0e, 0xdf, 0xd1, 0x1c, 0x4a, 0xc0, 0xc4, 0x01, + 0xf1, 0x1f, 0xd1, 0x54, 0x9a, 0xc8, 0xce, 0x85, + 0x0d, 0x80, 0x2e, 0x5e, 0x98, 0xf2, 0x71, 0x34, + 0x9b, 0x7c, 0xd0, 0xc6, 0x41, 0x04, 0xda, 0x23, +}; + +static EVP_PKEY * +EVP_PKEY_from_PEM(const char *ptr, size_t len) +{ + BIO *bio = NULL; + EVP_PKEY *pkey = NULL; + + if ((bio = BIO_new(BIO_s_mem())) == NULL) { + warnx("BIO_new"); + goto out; + } + if (len > INT_MAX || BIO_write(bio, ptr, (int)len) != (int)len) { + warnx("BIO_write"); + goto out; + } + if ((pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL)) == NULL) + warnx("PEM_read_bio_PUBKEY"); +out: + BIO_free(bio); + + return pkey; +} + +static int +eddsa_pk_cmp(const char *ptr, size_t len) +{ + EVP_PKEY *pkA = NULL; + EVP_PKEY *pkB = NULL; + eddsa_pk_t *k = NULL; + int r, ok = -1; + + if ((pkA = EVP_PKEY_from_PEM(ptr, len)) == NULL) { + warnx("EVP_PKEY_from_PEM"); + goto out; + } + if ((k = eddsa_pk_new()) == NULL) { + warnx("eddsa_pk_new"); + goto out; + } + if ((r = eddsa_pk_from_EVP_PKEY(k, pkA)) != FIDO_OK) { + warnx("eddsa_pk_from_EVP_PKEY: 0x%x", r); + goto out; + } + if ((pkB = eddsa_pk_to_EVP_PKEY(k)) == NULL) { + warnx("eddsa_pk_to_EVP_PKEY"); + goto out; + } + if ((r = EVP_PKEY_cmp(pkA, pkB)) != 1) { + warnx("EVP_PKEY_cmp: %d", r); + goto out; + } + + ok = 0; +out: + EVP_PKEY_free(pkA); + EVP_PKEY_free(pkB); + eddsa_pk_free(&k); + + return ok; +} + +static void +invalid_key(void) +{ + EVP_PKEY *pkey; + eddsa_pk_t *pk; + + ASSERT_NOT_NULL((pkey = EVP_PKEY_from_PEM(ecdsa, sizeof(ecdsa)))); + ASSERT_NOT_NULL((pk = eddsa_pk_new())); + ASSERT_INVAL(eddsa_pk_from_EVP_PKEY(pk, pkey)); + + EVP_PKEY_free(pkey); + eddsa_pk_free(&pk); +} + +static void +valid_key(void) +{ + EVP_PKEY *pkeyA = NULL; + EVP_PKEY *pkeyB = NULL; + eddsa_pk_t *pkA = NULL; + eddsa_pk_t *pkB = NULL; + +#if defined(LIBRESSL_VERSION_NUMBER) + /* incomplete support; test what we can */ + ASSERT_NULL(EVP_PKEY_from_PEM(eddsa, sizeof(eddsa))); + ASSERT_NOT_NULL((pkB = eddsa_pk_new())); + ASSERT_INVAL(eddsa_pk_from_ptr(pkB, eddsa_raw, sizeof(eddsa_raw))); + ASSERT_NULL(eddsa_pk_to_EVP_PKEY((const eddsa_pk_t *)eddsa_raw)); + assert(eddsa_pk_cmp(eddsa, sizeof(eddsa)) < 0); +#else + ASSERT_NOT_NULL((pkeyA = EVP_PKEY_from_PEM(eddsa, sizeof(eddsa)))); + ASSERT_NOT_NULL((pkA = eddsa_pk_new())); + ASSERT_NOT_NULL((pkB = eddsa_pk_new())); + ASSERT_OK(eddsa_pk_from_EVP_PKEY(pkA, pkeyA)); + ASSERT_OK(eddsa_pk_from_ptr(pkB, eddsa_raw, sizeof(eddsa_raw))); + ASSERT_NOT_NULL((pkeyB = eddsa_pk_to_EVP_PKEY((const eddsa_pk_t *)eddsa_raw))); + assert(EVP_PKEY_cmp(pkeyA, pkeyB) == 1); + assert(eddsa_pk_cmp(eddsa, sizeof(eddsa)) == 0); +#endif + + EVP_PKEY_free(pkeyA); + EVP_PKEY_free(pkeyB); + eddsa_pk_free(&pkA); + eddsa_pk_free(&pkB); +} + +int +main(void) +{ + fido_init(0); + + invalid_key(); + valid_key(); + + exit(0); +} diff --git a/regress/es256.c b/regress/es256.c new file mode 100644 index 00000000000..17ef27fd4c9 --- /dev/null +++ b/regress/es256.c @@ -0,0 +1,198 @@ +/* + * Copyright (c) 2022 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. + */ + +#undef NDEBUG + +#include <assert.h> +#include <string.h> + +#define _FIDO_INTERNAL + +#include <fido.h> +#include <fido/es256.h> + +#include <openssl/bio.h> +#include <openssl/pem.h> + +#define ASSERT_NOT_NULL(e) assert((e) != NULL) +#define ASSERT_NULL(e) assert((e) == NULL) +#define ASSERT_INVAL(e) assert((e) == FIDO_ERR_INVALID_ARGUMENT) +#define ASSERT_OK(e) assert((e) == FIDO_OK) + +static const char short_x[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAAeeHTZj4LEbt7Czs+u5gEZJfnGE\n" +"6Z+YLe4AYu7SoGY7IH/2jKifsA7w+lkURL4DL63oEjd3f8foH9bX4eaVug==\n" +"-----END PUBLIC KEY-----"; + +static const char short_y[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEL8CWUP1r0tpJ5QmkzLc69O74C/Ti\n" +"83hTiys/JFNVkp0ArW3pKt5jNRrgWSZYE4S/D3AMtpqifFXz/FLCzJqojQ==\n" +"-----END PUBLIC KEY-----\n"; + +static const char p256k1[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEU1y8c0Jg9FGr3vYChpEo9c4dpkijriYM\n" +"QzU/DeskC89hZjLNH1Sj8ra2MsBlVGGJTNPCZSyx8Jo7ERapxdN7UQ==\n" +"-----END PUBLIC KEY-----\n"; + +static const char p256v1[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOwiq14c80b7C1Jzsx5w1zMvk2GgW\n" +"5kfGMOKXjwF/U+51ZfBDKehs3ivdeXAJBkxIh7E3iA32s+HyNqk+ntl9fg==\n" +"-----END PUBLIC KEY-----\n"; + +static const unsigned char p256k1_raw[] = { + 0x04, 0x53, 0x5c, 0xbc, 0x73, 0x42, 0x60, 0xf4, + 0x51, 0xab, 0xde, 0xf6, 0x02, 0x86, 0x91, 0x28, + 0xf5, 0xce, 0x1d, 0xa6, 0x48, 0xa3, 0xae, 0x26, + 0x0c, 0x43, 0x35, 0x3f, 0x0d, 0xeb, 0x24, 0x0b, + 0xcf, 0x61, 0x66, 0x32, 0xcd, 0x1f, 0x54, 0xa3, + 0xf2, 0xb6, 0xb6, 0x32, 0xc0, 0x65, 0x54, 0x61, + 0x89, 0x4c, 0xd3, 0xc2, 0x65, 0x2c, 0xb1, 0xf0, + 0x9a, 0x3b, 0x11, 0x16, 0xa9, 0xc5, 0xd3, 0x7b, + 0x51, +}; + +static const unsigned char p256v1_raw[] = { + 0x04, 0x3b, 0x08, 0xaa, 0xd7, 0x87, 0x3c, 0xd1, + 0xbe, 0xc2, 0xd4, 0x9c, 0xec, 0xc7, 0x9c, 0x35, + 0xcc, 0xcb, 0xe4, 0xd8, 0x68, 0x16, 0xe6, 0x47, + 0xc6, 0x30, 0xe2, 0x97, 0x8f, 0x01, 0x7f, 0x53, + 0xee, 0x75, 0x65, 0xf0, 0x43, 0x29, 0xe8, 0x6c, + 0xde, 0x2b, 0xdd, 0x79, 0x70, 0x09, 0x06, 0x4c, + 0x48, 0x87, 0xb1, 0x37, 0x88, 0x0d, 0xf6, 0xb3, + 0xe1, 0xf2, 0x36, 0xa9, 0x3e, 0x9e, 0xd9, 0x7d, + 0x7e, +}; + +static EVP_PKEY * +EVP_PKEY_from_PEM(const char *ptr, size_t len) +{ + BIO *bio = NULL; + EVP_PKEY *pkey = NULL; + + if ((bio = BIO_new(BIO_s_mem())) == NULL) { + warnx("BIO_new"); + goto out; + } + if (len > INT_MAX || BIO_write(bio, ptr, (int)len) != (int)len) { + warnx("BIO_write"); + goto out; + } + if ((pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL)) == NULL) + warnx("PEM_read_bio_PUBKEY"); +out: + BIO_free(bio); + + return pkey; +} + +static int +es256_pk_cmp(const char *ptr, size_t len) +{ + EVP_PKEY *pkA = NULL; + EVP_PKEY *pkB = NULL; + es256_pk_t *k = NULL; + int r, ok = -1; + + if ((pkA = EVP_PKEY_from_PEM(ptr, len)) == NULL) { + warnx("EVP_PKEY_from_PEM"); + goto out; + } + if ((k = es256_pk_new()) == NULL) { + warnx("es256_pk_new"); + goto out; + } + if ((r = es256_pk_from_EVP_PKEY(k, pkA)) != FIDO_OK) { + warnx("es256_pk_from_EVP_PKEY: 0x%x", r); + goto out; + } + if ((pkB = es256_pk_to_EVP_PKEY(k)) == NULL) { + warnx("es256_pk_to_EVP_PKEY"); + goto out; + } + if ((r = EVP_PKEY_cmp(pkA, pkB)) != 1) { + warnx("EVP_PKEY_cmp: %d", r); + goto out; + } + + ok = 0; +out: + EVP_PKEY_free(pkA); + EVP_PKEY_free(pkB); + es256_pk_free(&k); + + return ok; +} + +static void +short_coord(void) +{ + assert(es256_pk_cmp(short_x, sizeof(short_x)) == 0); + assert(es256_pk_cmp(short_y, sizeof(short_y)) == 0); +} + +static void +invalid_curve(const unsigned char *raw, size_t raw_len) +{ + EVP_PKEY *pkey; + es256_pk_t *pk; + + ASSERT_NOT_NULL((pkey = EVP_PKEY_from_PEM(p256k1, sizeof(p256k1)))); + ASSERT_NOT_NULL((pk = es256_pk_new())); + ASSERT_INVAL(es256_pk_from_EVP_PKEY(pk, pkey)); + ASSERT_INVAL(es256_pk_from_ptr(pk, raw, raw_len)); + ASSERT_NULL(es256_pk_to_EVP_PKEY((const es256_pk_t *)raw)); + + EVP_PKEY_free(pkey); + es256_pk_free(&pk); +} + +static void +full_coord(void) +{ + assert(es256_pk_cmp(p256v1, sizeof(p256v1)) == 0); +} + +static void +valid_curve(const unsigned char *raw, size_t raw_len) +{ + EVP_PKEY *pkeyA; + EVP_PKEY *pkeyB; + es256_pk_t *pkA; + es256_pk_t *pkB; + + ASSERT_NOT_NULL((pkeyA = EVP_PKEY_from_PEM(p256v1, sizeof(p256v1)))); + ASSERT_NOT_NULL((pkA = es256_pk_new())); + ASSERT_NOT_NULL((pkB = es256_pk_new())); + ASSERT_OK(es256_pk_from_EVP_PKEY(pkA, pkeyA)); + ASSERT_OK(es256_pk_from_ptr(pkB, raw, raw_len)); + ASSERT_NOT_NULL((pkeyB = es256_pk_to_EVP_PKEY(pkB))); + assert(EVP_PKEY_cmp(pkeyA, pkeyB) == 1); + + EVP_PKEY_free(pkeyA); + EVP_PKEY_free(pkeyB); + es256_pk_free(&pkA); + es256_pk_free(&pkB); +} + +int +main(void) +{ + fido_init(0); + + short_coord(); + full_coord(); + + invalid_curve(p256k1_raw, sizeof(p256k1_raw)); /* uncompressed */ + invalid_curve(p256k1_raw + 1, sizeof(p256k1_raw) - 1); /* libfido2 */ + valid_curve(p256v1_raw, sizeof(p256v1_raw)); /* uncompressed */ + valid_curve(p256v1_raw + 1, sizeof(p256v1_raw) - 1); /* libfido2 */ + + exit(0); +} diff --git a/regress/rs256.c b/regress/rs256.c new file mode 100644 index 00000000000..f6e685a11da --- /dev/null +++ b/regress/rs256.c @@ -0,0 +1,200 @@ +/* + * Copyright (c) 2022 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. + */ + +#undef NDEBUG + +#include <assert.h> +#include <string.h> + +#define _FIDO_INTERNAL + +#include <fido.h> +#include <fido/rs256.h> + +#include <openssl/bio.h> +#include <openssl/pem.h> + +#define ASSERT_NOT_NULL(e) assert((e) != NULL) +#define ASSERT_NULL(e) assert((e) == NULL) +#define ASSERT_INVAL(e) assert((e) == FIDO_ERR_INVALID_ARGUMENT) +#define ASSERT_OK(e) assert((e) == FIDO_OK) + +static char rsa1024[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCw92gn9Ku/bEfFj1AutaZyltpf\n" +"zzXrg70kQFymNq+spMt/HlxKiImw8TZU08zWW4ZLE/Ch4JYjMW6ETAdQFhSC63Ih\n" +"Wecui0JJ1f+2CsUVg+h7lO1877LZYUpdNiJrbqMb5Yc4N3FPtvdl3NoLIIQsF76H\n" +"VRvpjQgkWipRfZ97JQIDAQAB\n" +"-----END PUBLIC KEY-----"; + +static char rsa2048[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApvIq/55ZodBIxzo/8BnE\n" +"UQN1fo1hmJ6V20hQHSzJq5tHyxRCcvKikuJ1ZvR4RdZlEzdTdbEfMBdZ8sxve0/U\n" +"yYEjH92CG0vgTCYuUaFLJTaWZSvWa96G8Lw+V4VyNFDRCM7sflOaSVH5pAsz8OEc\n" +"TLZfM4NhnDsJAM+mQ6X7Tza0sczPchgDA+9KByXo/VIqyuBQs17rlKC2reMa8NkY\n" +"rBRQZJLNzi68d5/BHH1flGWE1l8wJ9dr1Ex93H/KdzX+7/28TWUC98nneUo8RfRx\n" +"FwUt/EInDMHOORCaCHSs28U/9IUyMjqLB1rxKhIp09yGXMiTrrT+p+Pcn8dO01HT\n" +"vQIDAQAB\n" +"-----END PUBLIC KEY-----"; + +static char rsa3072[] = \ +"-----BEGIN PUBLIC KEY-----\n" +"MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAwZunKrMs/o92AniLPNTF\n" +"Ta4EYfhy5NDmMvQvRFT/eTYItLrOTPmYMap68KLyZYmgz/AdaxAL/992QWre7XTY\n" +"gqLwtZT+WsSu7xPHWKTTXrlVohKBeLHQ0I7Zy0NSMUxhlJEMrBAjSyFAS86zWm5w\n" +"ctC3pNCqfUKugA07BVj+d5Mv5fziwgMR86kuhkVuMYfsR4IYwX4+va0pyLzxx624\n" +"s9nJ107g+A+3MUk4bAto3lruFeeZPUI2AFzFQbGg5By6VtvVi3gKQ7lUNtAr0Onu\n" +"I6Fb+yz8sbFcvDpJcu5CXW20GrKMVP4KY5pn2LCajWuZjBl/dXWayPfm4UX5Y2O4\n" +"73tzPpUBNwnEdz79His0v80Vmvjwn5IuF2jAoimrBNPJFFwCCuVNy8kgj2vllk1l\n" +"RvLOG6hf8VnlDb40QZS3QAQ09xFfF+xlVLb8cHH6wllaAGEM230TrmawpC7xpz4Z\n" +"sTuwJwI0AWEi//noMsRz2BuF2fCp//aORYJQU2S8kYk3AgMBAAE=\n" +"-----END PUBLIC KEY-----"; + +static const unsigned char rsa2048_raw[] = { + 0xa6, 0xf2, 0x2a, 0xff, 0x9e, 0x59, 0xa1, 0xd0, + 0x48, 0xc7, 0x3a, 0x3f, 0xf0, 0x19, 0xc4, 0x51, + 0x03, 0x75, 0x7e, 0x8d, 0x61, 0x98, 0x9e, 0x95, + 0xdb, 0x48, 0x50, 0x1d, 0x2c, 0xc9, 0xab, 0x9b, + 0x47, 0xcb, 0x14, 0x42, 0x72, 0xf2, 0xa2, 0x92, + 0xe2, 0x75, 0x66, 0xf4, 0x78, 0x45, 0xd6, 0x65, + 0x13, 0x37, 0x53, 0x75, 0xb1, 0x1f, 0x30, 0x17, + 0x59, 0xf2, 0xcc, 0x6f, 0x7b, 0x4f, 0xd4, 0xc9, + 0x81, 0x23, 0x1f, 0xdd, 0x82, 0x1b, 0x4b, 0xe0, + 0x4c, 0x26, 0x2e, 0x51, 0xa1, 0x4b, 0x25, 0x36, + 0x96, 0x65, 0x2b, 0xd6, 0x6b, 0xde, 0x86, 0xf0, + 0xbc, 0x3e, 0x57, 0x85, 0x72, 0x34, 0x50, 0xd1, + 0x08, 0xce, 0xec, 0x7e, 0x53, 0x9a, 0x49, 0x51, + 0xf9, 0xa4, 0x0b, 0x33, 0xf0, 0xe1, 0x1c, 0x4c, + 0xb6, 0x5f, 0x33, 0x83, 0x61, 0x9c, 0x3b, 0x09, + 0x00, 0xcf, 0xa6, 0x43, 0xa5, 0xfb, 0x4f, 0x36, + 0xb4, 0xb1, 0xcc, 0xcf, 0x72, 0x18, 0x03, 0x03, + 0xef, 0x4a, 0x07, 0x25, 0xe8, 0xfd, 0x52, 0x2a, + 0xca, 0xe0, 0x50, 0xb3, 0x5e, 0xeb, 0x94, 0xa0, + 0xb6, 0xad, 0xe3, 0x1a, 0xf0, 0xd9, 0x18, 0xac, + 0x14, 0x50, 0x64, 0x92, 0xcd, 0xce, 0x2e, 0xbc, + 0x77, 0x9f, 0xc1, 0x1c, 0x7d, 0x5f, 0x94, 0x65, + 0x84, 0xd6, 0x5f, 0x30, 0x27, 0xd7, 0x6b, 0xd4, + 0x4c, 0x7d, 0xdc, 0x7f, 0xca, 0x77, 0x35, 0xfe, + 0xef, 0xfd, 0xbc, 0x4d, 0x65, 0x02, 0xf7, 0xc9, + 0xe7, 0x79, 0x4a, 0x3c, 0x45, 0xf4, 0x71, 0x17, + 0x05, 0x2d, 0xfc, 0x42, 0x27, 0x0c, 0xc1, 0xce, + 0x39, 0x10, 0x9a, 0x08, 0x74, 0xac, 0xdb, 0xc5, + 0x3f, 0xf4, 0x85, 0x32, 0x32, 0x3a, 0x8b, 0x07, + 0x5a, 0xf1, 0x2a, 0x12, 0x29, 0xd3, 0xdc, 0x86, + 0x5c, 0xc8, 0x93, 0xae, 0xb4, 0xfe, 0xa7, 0xe3, + 0xdc, 0x9f, 0xc7, 0x4e, 0xd3, 0x51, 0xd3, 0xbd, + 0x01, 0x00, 0x01, +}; + +static EVP_PKEY * +EVP_PKEY_from_PEM(const char *ptr, size_t len) +{ + BIO *bio = NULL; + EVP_PKEY *pkey = NULL; + + if ((bio = BIO_new(BIO_s_mem())) == NULL) { + warnx("BIO_new"); + goto out; + } + if (len > INT_MAX || BIO_write(bio, ptr, (int)len) != (int)len) { + warnx("BIO_write"); + goto out; + } + if ((pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL)) == NULL) + warnx("PEM_read_bio_PUBKEY"); +out: + BIO_free(bio); + + return pkey; +} + +static int +rs256_pk_cmp(const char *ptr, size_t len) +{ + EVP_PKEY *pkA = NULL; + EVP_PKEY *pkB = NULL; + rs256_pk_t *k = NULL; + int r, ok = -1; + + if ((pkA = EVP_PKEY_from_PEM(ptr, len)) == NULL) { + warnx("EVP_PKEY_from_PEM"); + goto out; + } + if ((k = rs256_pk_new()) == NULL) { + warnx("rs256_pk_new"); + goto out; + } + if ((r = rs256_pk_from_EVP_PKEY(k, pkA)) != FIDO_OK) { + warnx("rs256_pk_from_EVP_PKEY: 0x%x", r); + goto out; + } + if ((pkB = rs256_pk_to_EVP_PKEY(k)) == NULL) { + warnx("rs256_pk_to_EVP_PKEY"); + goto out; + } + if ((r = EVP_PKEY_cmp(pkA, pkB)) != 1) { + warnx("EVP_PKEY_cmp: %d", r); + goto out; + } + + ok = 0; +out: + EVP_PKEY_free(pkA); + EVP_PKEY_free(pkB); + rs256_pk_free(&k); + + return ok; +} + +static void +invalid_size(const char *pem) +{ + EVP_PKEY *pkey; + rs256_pk_t *pk; + + ASSERT_NOT_NULL((pkey = EVP_PKEY_from_PEM(pem, strlen(pem)))); + ASSERT_NOT_NULL((pk = rs256_pk_new())); + ASSERT_INVAL(rs256_pk_from_EVP_PKEY(pk, pkey)); + + EVP_PKEY_free(pkey); + rs256_pk_free(&pk); +} + +static void +valid_size(const char *pem, const unsigned char *raw, size_t raw_len) +{ + EVP_PKEY *pkeyA; + EVP_PKEY *pkeyB; + rs256_pk_t *pkA; + rs256_pk_t *pkB; + + ASSERT_NOT_NULL((pkeyA = EVP_PKEY_from_PEM(pem, strlen(pem)))); + ASSERT_NOT_NULL((pkA = rs256_pk_new())); + ASSERT_NOT_NULL((pkB = rs256_pk_new())); + ASSERT_OK(rs256_pk_from_EVP_PKEY(pkA, pkeyA)); + ASSERT_OK(rs256_pk_from_ptr(pkB, raw, raw_len)); + ASSERT_NOT_NULL((pkeyB = rs256_pk_to_EVP_PKEY(pkB))); + assert(EVP_PKEY_cmp(pkeyA, pkeyB) == 1); + assert(rs256_pk_cmp(pem, strlen(pem)) == 0); + + EVP_PKEY_free(pkeyA); + EVP_PKEY_free(pkeyB); + rs256_pk_free(&pkA); + rs256_pk_free(&pkB); +} + +int +main(void) +{ + fido_init(0); + + invalid_size(rsa1024); + invalid_size(rsa3072); + valid_size(rsa2048, rsa2048_raw, sizeof(rsa2048_raw)); + + exit(0); +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 796ec69a9db..44a87282869 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -33,20 +33,28 @@ list(APPEND FIDO_SOURCES rs1.c rs256.c time.c + touch.c tpm.c types.c u2f.c + util.c ) if(FUZZ) list(APPEND FIDO_SOURCES ../fuzz/clock.c) + list(APPEND FIDO_SOURCES ../fuzz/pcsc.c) list(APPEND FIDO_SOURCES ../fuzz/prng.c) - list(APPEND FIDO_SOURCES ../fuzz/uniform_random.c) list(APPEND FIDO_SOURCES ../fuzz/udev.c) + list(APPEND FIDO_SOURCES ../fuzz/uniform_random.c) list(APPEND FIDO_SOURCES ../fuzz/wrap.c) endif() + if(NFC_LINUX) - list(APPEND FIDO_SOURCES netlink.c nfc_linux.c) + list(APPEND FIDO_SOURCES netlink.c nfc.c nfc_linux.c) +endif() + +if(USE_PCSC) + list(APPEND FIDO_SOURCES nfc.c pcsc.c) endif() if(USE_HIDAPI) @@ -93,8 +101,15 @@ list(APPEND COMPAT_SOURCES if(WIN32) list(APPEND BASE_LIBRARIES wsock32 ws2_32 bcrypt setupapi hid) + if(USE_PCSC) + list(APPEND BASE_LIBRARIES winscard) + endif() elseif(APPLE) - list(APPEND BASE_LIBRARIES "-framework CoreFoundation" "-framework IOKit") + list(APPEND BASE_LIBRARIES "-framework CoreFoundation" + "-framework IOKit") + if(USE_PCSC) + list(APPEND BASE_LIBRARIES "-framework PCSC") + endif() endif() list(APPEND TARGET_LIBRARIES @@ -104,6 +119,7 @@ list(APPEND TARGET_LIBRARIES ${BASE_LIBRARIES} ${HIDAPI_LIBRARIES} ${ZLIB_LIBRARIES} + ${PCSC_LIBRARIES} ) # static library diff --git a/src/compress.c b/src/compress.c index ee5501b4a4a..074bca87648 100644 --- a/src/compress.c +++ b/src/compress.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 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. */ @@ -9,41 +9,159 @@ #define BOUND (1024UL * 1024UL) +/* zlib inflate (raw + headers) */ static int -do_compress(fido_blob_t *out, const fido_blob_t *in, size_t origsiz, int decomp) +rfc1950_inflate(fido_blob_t *out, const fido_blob_t *in, size_t origsiz) { u_long ilen, olen; - int r; + int z; memset(out, 0, sizeof(*out)); + if (in->len > ULONG_MAX || (ilen = (u_long)in->len) > BOUND || - origsiz > ULONG_MAX || (olen = decomp ? (u_long)origsiz : - compressBound(ilen)) > BOUND) + origsiz > ULONG_MAX || (olen = (u_long)origsiz) > BOUND) { + fido_log_debug("%s: in->len=%zu, origsiz=%zu", __func__, + in->len, origsiz); return FIDO_ERR_INVALID_ARGUMENT; + } + if ((out->ptr = calloc(1, olen)) == NULL) return FIDO_ERR_INTERNAL; out->len = olen; - if (decomp) - r = uncompress(out->ptr, &olen, in->ptr, ilen); - else - r = compress(out->ptr, &olen, in->ptr, ilen); - if (r != Z_OK || olen > SIZE_MAX || olen > out->len) { + + if ((z = uncompress(out->ptr, &olen, in->ptr, ilen)) != Z_OK || + olen > SIZE_MAX || olen != out->len) { + fido_log_debug("%s: uncompress: %d, olen=%lu, out->len=%zu", + __func__, z, olen, out->len); fido_blob_reset(out); return FIDO_ERR_COMPRESS; } - out->len = olen; return FIDO_OK; } +/* raw inflate */ +static int +rfc1951_inflate(fido_blob_t *out, const fido_blob_t *in, size_t origsiz) +{ + z_stream zs; + u_int ilen, olen; + int r, z; + + memset(&zs, 0, sizeof(zs)); + memset(out, 0, sizeof(*out)); + + if (in->len > UINT_MAX || (ilen = (u_int)in->len) > BOUND || + origsiz > UINT_MAX || (olen = (u_int)origsiz) > BOUND) { + fido_log_debug("%s: in->len=%zu, origsiz=%zu", __func__, + in->len, origsiz); + return FIDO_ERR_INVALID_ARGUMENT; + } + if ((z = inflateInit2(&zs, -MAX_WBITS)) != Z_OK) { + fido_log_debug("%s: inflateInit2: %d", __func__, z); + return FIDO_ERR_COMPRESS; + } + + if ((out->ptr = calloc(1, olen)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto fail; + } + out->len = olen; + zs.next_in = in->ptr; + zs.avail_in = ilen; + zs.next_out = out->ptr; + zs.avail_out = olen; + + if ((z = inflate(&zs, Z_FINISH)) != Z_STREAM_END) { + fido_log_debug("%s: inflate: %d", __func__, z); + r = FIDO_ERR_COMPRESS; + goto fail; + } + if (zs.avail_out != 0) { + fido_log_debug("%s: %u != 0", __func__, zs.avail_out); + r = FIDO_ERR_COMPRESS; + goto fail; + } + + r = FIDO_OK; +fail: + if ((z = inflateEnd(&zs)) != Z_OK) { + fido_log_debug("%s: inflateEnd: %d", __func__, z); + r = FIDO_ERR_COMPRESS; + } + if (r != FIDO_OK) + fido_blob_reset(out); + + return r; +} + +/* raw deflate */ +static int +rfc1951_deflate(fido_blob_t *out, const fido_blob_t *in) +{ + z_stream zs; + u_int ilen, olen; + int r, z; + + memset(&zs, 0, sizeof(zs)); + memset(out, 0, sizeof(*out)); + + if (in->len > UINT_MAX || (ilen = (u_int)in->len) > BOUND) { + fido_log_debug("%s: in->len=%zu", __func__, in->len); + return FIDO_ERR_INVALID_ARGUMENT; + } + if ((z = deflateInit2(&zs, Z_DEFAULT_COMPRESSION, Z_DEFLATED, + -MAX_WBITS, 8, Z_DEFAULT_STRATEGY)) != Z_OK) { + fido_log_debug("%s: deflateInit2: %d", __func__, z); + return FIDO_ERR_COMPRESS; + } + + olen = BOUND; + if ((out->ptr = calloc(1, olen)) == NULL) { + r = FIDO_ERR_INTERNAL; + goto fail; + } + out->len = olen; + zs.next_in = in->ptr; + zs.avail_in = ilen; + zs.next_out = out->ptr; + zs.avail_out = olen; + + if ((z = deflate(&zs, Z_FINISH)) != Z_STREAM_END) { + fido_log_debug("%s: inflate: %d", __func__, z); + r = FIDO_ERR_COMPRESS; + goto fail; + } + if (zs.avail_out >= out->len) { + fido_log_debug("%s: %u > %zu", __func__, zs.avail_out, + out->len); + r = FIDO_ERR_COMPRESS; + goto fail; + } + out->len -= zs.avail_out; + + r = FIDO_OK; +fail: + if ((z = deflateEnd(&zs)) != Z_OK) { + fido_log_debug("%s: deflateEnd: %d", __func__, z); + r = FIDO_ERR_COMPRESS; + } + if (r != FIDO_OK) + fido_blob_reset(out); + + return r; +} + int fido_compress(fido_blob_t *out, const fido_blob_t *in) { - return do_compress(out, in, 0, 0); + return rfc1951_deflate(out, in); } int fido_uncompress(fido_blob_t *out, const fido_blob_t *in, size_t origsiz) { - return do_compress(out, in, origsiz, 1); + if (rfc1950_inflate(out, in, origsiz) == FIDO_OK) + return FIDO_OK; /* backwards compat with libfido2 < 1.11 */ + return rfc1951_inflate(out, in, origsiz); } diff --git a/src/dev.c b/src/dev.c index fb8faba0a06..635e4171475 100644 --- a/src/dev.c +++ b/src/dev.c @@ -1,37 +1,17 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 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. */ -#include <openssl/sha.h> #include "fido.h" #ifndef TLS #define TLS #endif -typedef struct dev_manifest_func_node { - dev_manifest_func_t manifest_func; - struct dev_manifest_func_node *next; -} dev_manifest_func_node_t; - -static TLS dev_manifest_func_node_t *manifest_funcs = NULL; static TLS bool disable_u2f_fallback; -static void -find_manifest_func_node(dev_manifest_func_t f, dev_manifest_func_node_t **curr, - dev_manifest_func_node_t **prev) -{ - *prev = NULL; - *curr = manifest_funcs; - - while (*curr != NULL && (*curr)->manifest_func != f) { - *prev = *curr; - *curr = (*curr)->next; - } -} - #ifdef FIDO_FUZZ static void set_random_report_len(fido_dev_t *dev) @@ -63,13 +43,15 @@ fido_dev_set_option_flags(fido_dev_t *dev, const fido_cbor_info_t *info) for (size_t i = 0; i < len; i++) if (strcmp(ptr[i], "clientPin") == 0) { - dev->flags |= val[i] ? FIDO_DEV_PIN_SET : FIDO_DEV_PIN_UNSET; + dev->flags |= val[i] ? + FIDO_DEV_PIN_SET : FIDO_DEV_PIN_UNSET; } else if (strcmp(ptr[i], "credMgmt") == 0 || strcmp(ptr[i], "credentialMgmtPreview") == 0) { if (val[i]) dev->flags |= FIDO_DEV_CREDMAN; } else if (strcmp(ptr[i], "uv") == 0) { - dev->flags |= val[i] ? FIDO_DEV_UV_SET : FIDO_DEV_UV_UNSET; + dev->flags |= val[i] ? + FIDO_DEV_UV_SET : FIDO_DEV_UV_UNSET; } else if (strcmp(ptr[i], "pinUvAuthToken") == 0) { if (val[i]) dev->flags |= FIDO_DEV_TOKEN_PERMS; @@ -257,75 +239,40 @@ fido_dev_open_wait(fido_dev_t *dev, const char *path, int *ms) return (FIDO_OK); } -int -fido_dev_register_manifest_func(const dev_manifest_func_t f) +static void +run_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen, + const char *type, int (*manifest)(fido_dev_info_t *, size_t, size_t *)) { - dev_manifest_func_node_t *prev, *curr, *n; + size_t ndevs = 0; + int r; - find_manifest_func_node(f, &curr, &prev); - if (curr != NULL) - return (FIDO_OK); - - if ((n = calloc(1, sizeof(*n))) == NULL) { - fido_log_debug("%s: calloc", __func__); - return (FIDO_ERR_INTERNAL); - } - - n->manifest_func = f; - n->next = manifest_funcs; - manifest_funcs = n; - - return (FIDO_OK); -} - -void -fido_dev_unregister_manifest_func(const dev_manifest_func_t f) -{ - dev_manifest_func_node_t *prev, *curr; - - find_manifest_func_node(f, &curr, &prev); - if (curr == NULL) + if (*olen >= ilen) { + fido_log_debug("%s: skipping %s", __func__, type); return; - if (prev != NULL) - prev->next = curr->next; - else - manifest_funcs = curr->next; - - free(curr); + } + if ((r = manifest(devlist + *olen, ilen - *olen, &ndevs)) != FIDO_OK) + fido_log_debug("%s: %s: 0x%x", __func__, type, r); + fido_log_debug("%s: found %zu %s device%s", __func__, ndevs, type, + ndevs == 1 ? "" : "s"); + *olen += ndevs; } int fido_dev_info_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) { - dev_manifest_func_node_t *curr = NULL; - dev_manifest_func_t m_func; - size_t curr_olen; - int r; - *olen = 0; - if (fido_dev_register_manifest_func(fido_hid_manifest) != FIDO_OK) - return (FIDO_ERR_INTERNAL); -#ifdef NFC_LINUX - if (fido_dev_register_manifest_func(fido_nfc_manifest) != FIDO_OK) - return (FIDO_ERR_INTERNAL); + run_manifest(devlist, ilen, olen, "hid", fido_hid_manifest); +#ifdef USE_NFC + run_manifest(devlist, ilen, olen, "nfc", fido_nfc_manifest); +#endif +#ifdef USE_PCSC + run_manifest(devlist, ilen, olen, "pcsc", fido_pcsc_manifest); #endif #ifdef USE_WINHELLO - if (fido_dev_register_manifest_func(fido_winhello_manifest) != FIDO_OK) - return (FIDO_ERR_INTERNAL); + run_manifest(devlist, ilen, olen, "winhello", fido_winhello_manifest); #endif - for (curr = manifest_funcs; curr != NULL; curr = curr->next) { - curr_olen = 0; - m_func = curr->manifest_func; - r = m_func(devlist + *olen, ilen - *olen, &curr_olen); - if (r != FIDO_OK) - return (r); - *olen += curr_olen; - if (*olen == ilen) - break; - } - return (FIDO_OK); } @@ -345,19 +292,16 @@ fido_dev_open(fido_dev_t *dev, const char *path) { int ms = dev->timeout_ms; -#ifdef NFC_LINUX - if (strncmp(path, FIDO_NFC_PREFIX, strlen(FIDO_NFC_PREFIX)) == 0) { - dev->io_own = true; - dev->io = (fido_dev_io_t) { - fido_nfc_open, - fido_nfc_close, - fido_nfc_read, - fido_nfc_write, - }; - dev->transport = (fido_dev_transport_t) { - fido_nfc_rx, - fido_nfc_tx, - }; +#ifdef USE_NFC + if (fido_is_nfc(path) && fido_dev_set_nfc(dev) < 0) { + fido_log_debug("%s: fido_dev_set_nfc", __func__); + return FIDO_ERR_INTERNAL; + } +#endif +#ifdef USE_PCSC + if (fido_is_pcsc(path) && fido_dev_set_pcsc(dev) < 0) { + fido_log_debug("%s: fido_dev_set_pcsc", __func__); + return FIDO_ERR_INTERNAL; } #endif @@ -387,7 +331,7 @@ fido_dev_set_sigmask(fido_dev_t *dev, const fido_sigset_t *sigmask) if (dev->io_handle == NULL || sigmask == NULL) return (FIDO_ERR_INVALID_ARGUMENT); -#ifdef NFC_LINUX +#ifdef USE_NFC if (dev->transport.rx == fido_nfc_rx && dev->io.read == fido_nfc_read) return (fido_nfc_set_sigmask(dev->io_handle, sigmask)); #endif @@ -414,106 +358,6 @@ fido_dev_cancel(fido_dev_t *dev) return (FIDO_OK); } -int -fido_dev_get_touch_begin(fido_dev_t *dev) -{ - fido_blob_t f; - cbor_item_t *argv[9]; - const char *clientdata = FIDO_DUMMY_CLIENTDATA; - const uint8_t user_id = FIDO_DUMMY_USER_ID; - unsigned char cdh[SHA256_DIGEST_LENGTH]; - fido_rp_t rp; - fido_user_t user; - int ms = dev->timeout_ms; - int r = FIDO_ERR_INTERNAL; - - memset(&f, 0, sizeof(f)); - memset(argv, 0, sizeof(argv)); - memset(cdh, 0, sizeof(cdh)); - memset(&rp, 0, sizeof(rp)); - memset(&user, 0, sizeof(user)); - - if (fido_dev_is_fido2(dev) == false) - return (u2f_get_touch_begin(dev, &ms)); - - if (SHA256((const void *)clientdata, strlen(clientdata), cdh) != cdh) { - fido_log_debug("%s: sha256", __func__); - return (FIDO_ERR_INTERNAL); - } - - if ((rp.id = strdup(FIDO_DUMMY_RP_ID)) == NULL || - (user.name = strdup(FIDO_DUMMY_USER_NAME)) == NULL) { - fido_log_debug("%s: strdup", __func__); - goto fail; - } - - if (fido_blob_set(&user.id, &user_id, sizeof(user_id)) < 0) { - fido_log_debug("%s: fido_blob_set", __func__); - goto fail; - } - - if ((argv[0] = cbor_build_bytestring(cdh, sizeof(cdh))) == NULL || - (argv[1] = cbor_encode_rp_entity(&rp)) == NULL || - (argv[2] = cbor_encode_user_entity(&user)) == NULL || - (argv[3] = cbor_encode_pubkey_param(COSE_ES256)) == NULL) { - fido_log_debug("%s: cbor encode", __func__); - goto fail; - } - - if (fido_dev_supports_pin(dev)) { - if ((argv[7] = cbor_new_definite_bytestring()) == NULL || - (argv[8] = cbor_encode_pin_opt(dev)) == NULL) { - fido_log_debug("%s: cbor encode", __func__); - goto fail; - } - } - - if (cbor_build_frame(CTAP_CBOR_MAKECRED, argv, nitems(argv), &f) < 0 || - fido_tx(dev, CTAP_CMD_CBOR, f.ptr, f.len, &ms) < 0) { - fido_log_debug("%s: fido_tx", __func__); - r = FIDO_ERR_TX; - goto fail; - } - - r = FIDO_OK; -fail: - cbor_vector_free(argv, nitems(argv)); - free(f.ptr); - free(rp.id); - free(user.name); - free(user.id.ptr); - - return (r); -} - -int -fido_dev_get_touch_status(fido_dev_t *dev, int *touched, int ms) -{ - int r; - - *touched = 0; - - if (fido_dev_is_fido2(dev) == false) - return (u2f_get_touch_status(dev, touched, &ms)); - - switch ((r = fido_rx_cbor_status(dev, &ms))) { - case FIDO_ERR_PIN_AUTH_INVALID: - case FIDO_ERR_PIN_INVALID: - case FIDO_ERR_PIN_NOT_SET: - case FIDO_ERR_SUCCESS: - *touched = 1; - break; - case FIDO_ERR_RX: - /* ignore */ - break; - default: - fido_log_debug("%s: fido_rx_cbor_status", __func__); - return (r); - } - - return (FIDO_OK); -} - int fido_dev_set_io_functions(fido_dev_t *dev, const fido_dev_io_t *io) { diff --git a/src/eddsa.c b/src/eddsa.c index a7b4f4f900c..a94ae302391 100644 --- a/src/eddsa.c +++ b/src/eddsa.c @@ -122,11 +122,20 @@ eddsa_pk_free(eddsa_pk_t **pkp) int eddsa_pk_from_ptr(eddsa_pk_t *pk, const void *ptr, size_t len) { + EVP_PKEY *pkey; + if (len < sizeof(*pk)) return (FIDO_ERR_INVALID_ARGUMENT); memcpy(pk, ptr, sizeof(*pk)); + if ((pkey = eddsa_pk_to_EVP_PKEY(pk)) == NULL) { + fido_log_debug("%s: eddsa_pk_to_EVP_PKEY", __func__); + return (FIDO_ERR_INVALID_ARGUMENT); + } + + EVP_PKEY_free(pkey); + return (FIDO_OK); } @@ -147,6 +156,8 @@ eddsa_pk_from_EVP_PKEY(eddsa_pk_t *pk, const EVP_PKEY *pkey) { size_t len = 0; + if (EVP_PKEY_base_id(pkey) != EVP_PKEY_ED25519) + return (FIDO_ERR_INVALID_ARGUMENT); if (EVP_PKEY_get_raw_public_key(pkey, NULL, &len) != 1 || len != sizeof(pk->x)) return (FIDO_ERR_INTERNAL); diff --git a/src/es256.c b/src/es256.c index eb4cc63525a..4d6e86f8a26 100644 --- a/src/es256.c +++ b/src/es256.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 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. */ @@ -11,6 +11,14 @@ #include "fido.h" #include "fido/es256.h" +#if OPENSSL_VERSION_NUMBER >= 0x30000000 +#define get0_EC_KEY(x) EVP_PKEY_get0_EC_KEY((x)) +#else +#define get0_EC_KEY(x) EVP_PKEY_get0((x)) +#endif + +static const int es256_nid = NID_X9_62_prime256v1; + static int decode_coord(const cbor_item_t *item, void *xy, size_t xy_len) { @@ -170,7 +178,8 @@ es256_pk_free(es256_pk_t **pkp) int es256_pk_from_ptr(es256_pk_t *pk, const void *ptr, size_t len) { - const uint8_t *p = ptr; + const uint8_t *p = ptr; + EVP_PKEY *pkey; if (len < sizeof(*pk)) return (FIDO_ERR_INVALID_ARGUMENT); @@ -180,6 +189,14 @@ es256_pk_from_ptr(es256_pk_t *pk, const void *ptr, size_t len) else memcpy(pk, ptr, sizeof(*pk)); /* libfido2 x||y format */ + if ((pkey = es256_pk_to_EVP_PKEY(pk)) == NULL) { + fido_log_debug("%s: es256_pk_to_EVP_PKEY", __func__); + explicit_bzero(pk, sizeof(*pk)); + return (FIDO_ERR_INVALID_ARGUMENT); + } + + EVP_PKEY_free(pkey); + return (FIDO_OK); } @@ -208,13 +225,12 @@ es256_sk_create(es256_sk_t *key) EVP_PKEY *k = NULL; const EC_KEY *ec; const BIGNUM *d; - const int nid = NID_X9_62_prime256v1; int n; int ok = -1; if ((pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL)) == NULL || EVP_PKEY_paramgen_init(pctx) <= 0 || - EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, nid) <= 0 || + EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, es256_nid) <= 0 || EVP_PKEY_paramgen(pctx, &p) <= 0) { fido_log_debug("%s: EVP_PKEY_paramgen", __func__); goto fail; @@ -258,7 +274,6 @@ es256_pk_to_EVP_PKEY(const es256_pk_t *k) BIGNUM *x = NULL; BIGNUM *y = NULL; const EC_GROUP *g = NULL; - const int nid = NID_X9_62_prime256v1; int ok = -1; if ((bnctx = BN_CTX_new()) == NULL) @@ -276,7 +291,7 @@ es256_pk_to_EVP_PKEY(const es256_pk_t *k) goto fail; } - if ((ec = EC_KEY_new_by_curve_name(nid)) == NULL || + if ((ec = EC_KEY_new_by_curve_name(es256_nid)) == NULL || (g = EC_KEY_get0_group(ec)) == NULL) { fido_log_debug("%s: EC_KEY init", __func__); goto fail; @@ -324,12 +339,15 @@ es256_pk_from_EC_KEY(es256_pk_t *pk, const EC_KEY *ec) BIGNUM *x = NULL; BIGNUM *y = NULL; const EC_POINT *q = NULL; - const EC_GROUP *g = NULL; + EC_GROUP *g = NULL; + size_t dx; + size_t dy; int ok = FIDO_ERR_INTERNAL; - int n; + int nx; + int ny; if ((q = EC_KEY_get0_public_key(ec)) == NULL || - (g = EC_KEY_get0_group(ec)) == NULL || + (g = EC_GROUP_new_by_curve_name(es256_nid)) == NULL || (bnctx = BN_CTX_new()) == NULL) goto fail; @@ -339,22 +357,33 @@ es256_pk_from_EC_KEY(es256_pk_t *pk, const EC_KEY *ec) (y = BN_CTX_get(bnctx)) == NULL) goto fail; + if (EC_POINT_is_on_curve(g, q, bnctx) != 1) { + fido_log_debug("%s: EC_POINT_is_on_curve", __func__); + ok = FIDO_ERR_INVALID_ARGUMENT; + goto fail; + } + if (EC_POINT_get_affine_coordinates_GFp(g, q, x, y, bnctx) == 0 || - (n = BN_num_bytes(x)) < 0 || (size_t)n > sizeof(pk->x) || - (n = BN_num_bytes(y)) < 0 || (size_t)n > sizeof(pk->y)) { + (nx = BN_num_bytes(x)) < 0 || (size_t)nx > sizeof(pk->x) || + (ny = BN_num_bytes(y)) < 0 || (size_t)ny > sizeof(pk->y)) { fido_log_debug("%s: EC_POINT_get_affine_coordinates_GFp", __func__); goto fail; } - if ((n = BN_bn2bin(x, pk->x)) < 0 || (size_t)n > sizeof(pk->x) || - (n = BN_bn2bin(y, pk->y)) < 0 || (size_t)n > sizeof(pk->y)) { + dx = sizeof(pk->x) - (size_t)nx; + dy = sizeof(pk->y) - (size_t)ny; + + if ((nx = BN_bn2bin(x, pk->x + dx)) < 0 || (size_t)nx > sizeof(pk->x) || + (ny = BN_bn2bin(y, pk->y + dy)) < 0 || (size_t)ny > sizeof(pk->y)) { fido_log_debug("%s: BN_bn2bin", __func__); goto fail; } ok = FIDO_OK; fail: + EC_GROUP_free(g); + if (bnctx != NULL) { BN_CTX_end(bnctx); BN_CTX_free(bnctx); @@ -366,10 +395,10 @@ fail: int es256_pk_from_EVP_PKEY(es256_pk_t *pk, const EVP_PKEY *pkey) { - EC_KEY *ec; + const EC_KEY *ec; if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC || - (ec = EVP_PKEY_get0(pkey)) == NULL) + (ec = get0_EC_KEY(pkey)) == NULL) return (FIDO_ERR_INVALID_ARGUMENT); return (es256_pk_from_EC_KEY(pk, ec)); @@ -382,7 +411,6 @@ es256_sk_to_EVP_PKEY(const es256_sk_t *k) EC_KEY *ec = NULL; EVP_PKEY *pkey = NULL; BIGNUM *d = NULL; - const int nid = NID_X9_62_prime256v1; int ok = -1; if ((bnctx = BN_CTX_new()) == NULL) @@ -396,7 +424,7 @@ es256_sk_to_EVP_PKEY(const es256_sk_t *k) goto fail; } - if ((ec = EC_KEY_new_by_curve_name(nid)) == NULL || + if ((ec = EC_KEY_new_by_curve_name(es256_nid)) == NULL || EC_KEY_set_private_key(ec, d) == 0) { fido_log_debug("%s: EC_KEY_set_private_key", __func__); goto fail; @@ -435,11 +463,10 @@ es256_derive_pk(const es256_sk_t *sk, es256_pk_t *pk) EC_KEY *ec = NULL; EC_POINT *q = NULL; const EC_GROUP *g = NULL; - const int nid = NID_X9_62_prime256v1; int ok = -1; if ((d = BN_bin2bn(sk->d, (int)sizeof(sk->d), NULL)) == NULL || - (ec = EC_KEY_new_by_curve_name(nid)) == NULL || + (ec = EC_KEY_new_by_curve_name(es256_nid)) == NULL || (g = EC_KEY_get0_group(ec)) == NULL || (q = EC_POINT_new(g)) == NULL) { fido_log_debug("%s: get", __func__); diff --git a/src/export.gnu b/src/export.gnu index 0a8d46a20fa..8fc94af31c9 100644 --- a/src/export.gnu +++ b/src/export.gnu @@ -85,10 +85,11 @@ fido_cbor_info_extensions_len; fido_cbor_info_extensions_ptr; fido_cbor_info_free; - fido_cbor_info_maxmsgsiz; fido_cbor_info_maxcredbloblen; fido_cbor_info_maxcredcntlst; fido_cbor_info_maxcredidlen; + fido_cbor_info_maxlargeblob; + fido_cbor_info_maxmsgsiz; fido_cbor_info_fwversion; fido_cbor_info_new; fido_cbor_info_options_len; diff --git a/src/export.llvm b/src/export.llvm index 80507346ede..df9a667f747 100644 --- a/src/export.llvm +++ b/src/export.llvm @@ -83,10 +83,11 @@ _fido_cbor_info_algorithm_type _fido_cbor_info_extensions_len _fido_cbor_info_extensions_ptr _fido_cbor_info_free -_fido_cbor_info_maxmsgsiz _fido_cbor_info_maxcredbloblen _fido_cbor_info_maxcredcntlst _fido_cbor_info_maxcredidlen +_fido_cbor_info_maxlargeblob +_fido_cbor_info_maxmsgsiz _fido_cbor_info_fwversion _fido_cbor_info_new _fido_cbor_info_options_len diff --git a/src/export.msvc b/src/export.msvc index 14602164fd4..a9082152f5c 100644 --- a/src/export.msvc +++ b/src/export.msvc @@ -84,10 +84,11 @@ fido_cbor_info_algorithm_type fido_cbor_info_extensions_len fido_cbor_info_extensions_ptr fido_cbor_info_free -fido_cbor_info_maxmsgsiz fido_cbor_info_maxcredbloblen fido_cbor_info_maxcredcntlst fido_cbor_info_maxcredidlen +fido_cbor_info_maxlargeblob +fido_cbor_info_maxmsgsiz fido_cbor_info_fwversion fido_cbor_info_new fido_cbor_info_options_len diff --git a/src/extern.h b/src/extern.h index 6f86d764295..84536d58b6f 100644 --- a/src/extern.h +++ b/src/extern.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 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. */ @@ -118,6 +118,7 @@ size_t fido_hid_report_in_len(void *); size_t fido_hid_report_out_len(void *); /* nfc i/o */ +bool fido_is_nfc(const char *); void *fido_nfc_open(const char *); void fido_nfc_close(void *); int fido_nfc_read(void *, unsigned char *, size_t, int); @@ -125,6 +126,17 @@ int fido_nfc_write(void *, const unsigned char *, size_t); int fido_nfc_rx(fido_dev_t *, uint8_t, unsigned char *, size_t, int); int fido_nfc_tx(fido_dev_t *, uint8_t, const unsigned char *, size_t); int fido_nfc_set_sigmask(void *, const fido_sigset_t *); +int fido_dev_set_nfc(fido_dev_t *); + +/* pcsc i/o */ +bool fido_is_pcsc(const char *); +void *fido_pcsc_open(const char *); +void fido_pcsc_close(void *); +int fido_pcsc_read(void *, unsigned char *, size_t, int); +int fido_pcsc_write(void *, const unsigned char *, size_t); +int fido_pcsc_rx(fido_dev_t *, uint8_t, unsigned char *, size_t, int); +int fido_pcsc_tx(fido_dev_t *, uint8_t, const unsigned char *, size_t); +int fido_dev_set_pcsc(fido_dev_t *); /* windows hello */ int fido_winhello_manifest(fido_dev_info_t *, size_t, size_t *); @@ -200,6 +212,7 @@ int fido_get_random(void *, size_t); int fido_sha256(fido_blob_t *, const u_char *, size_t); int fido_time_now(struct timespec *); int fido_time_delta(const struct timespec *, int *); +int fido_to_uint64(const char *, int, uint64_t *); /* crypto */ int es256_verify_sig(const fido_blob_t *, EVP_PKEY *, const fido_blob_t *); @@ -220,11 +233,7 @@ int fido_get_signed_hash_tpm(fido_blob_t *, const fido_blob_t *, /* device manifest functions */ int fido_hid_manifest(fido_dev_info_t *, size_t, size_t *); int fido_nfc_manifest(fido_dev_info_t *, size_t, size_t *); - -/* device manifest registration */ -typedef int (*dev_manifest_func_t)(fido_dev_info_t *, size_t, size_t *); -int fido_dev_register_manifest_func(const dev_manifest_func_t); -void fido_dev_unregister_manifest_func(const dev_manifest_func_t); +int fido_pcsc_manifest(fido_dev_info_t *, size_t, size_t *); /* fuzzing instrumentation */ #ifdef FIDO_FUZZ @@ -250,6 +259,7 @@ uint32_t uniform_random(uint32_t); #define FIDO_DUMMY_USER_ID 1 #define FIDO_WINHELLO_PATH "windows://hello" #define FIDO_NFC_PREFIX "nfc:" +#define FIDO_PCSC_PREFIX "pcsc:" #ifdef __cplusplus } /* extern "C" */ diff --git a/src/fido.h b/src/fido.h index 4bd2aeebfcc..63d6de87b5a 100644 --- a/src/fido.h +++ b/src/fido.h @@ -144,7 +144,9 @@ int fido_cred_set_user(fido_cred_t *, const unsigned char *, size_t, int fido_cred_set_x509(fido_cred_t *, const unsigned char *, size_t); int fido_cred_verify(const fido_cred_t *); int fido_cred_verify_self(const fido_cred_t *); +#ifdef _FIDO_SIGSET_DEFINED int fido_dev_set_sigmask(fido_dev_t *, const fido_sigset_t *); +#endif int fido_dev_cancel(fido_dev_t *); int fido_dev_close(fido_dev_t *); int fido_dev_get_assert(fido_dev_t *, fido_assert_t *, const char *); @@ -205,10 +207,11 @@ uint8_t fido_dev_build(const fido_dev_t *); uint8_t fido_dev_flags(const fido_dev_t *); int16_t fido_dev_info_vendor(const fido_dev_info_t *); int16_t fido_dev_info_product(const fido_dev_info_t *); -uint64_t fido_cbor_info_maxmsgsiz(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxcredbloblen(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxcredcntlst(const fido_cbor_info_t *); uint64_t fido_cbor_info_maxcredidlen(const fido_cbor_info_t *); +uint64_t fido_cbor_info_maxlargeblob(const fido_cbor_info_t *); +uint64_t fido_cbor_info_maxmsgsiz(const fido_cbor_info_t *); uint64_t fido_cbor_info_fwversion(const fido_cbor_info_t *); bool fido_dev_has_pin(const fido_dev_t *); diff --git a/src/fido/types.h b/src/fido/types.h index 4a216b4b978..593a6a6b481 100644 --- a/src/fido/types.h +++ b/src/fido/types.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 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. */ @@ -48,10 +48,14 @@ typedef enum { typedef void fido_log_handler_t(const char *); +#undef _FIDO_SIGSET_DEFINED +#define _FIDO_SIGSET_DEFINED #ifdef _WIN32 typedef int fido_sigset_t; -#else +#elif defined(SIG_BLOCK) typedef sigset_t fido_sigset_t; +#else +#undef _FIDO_SIGSET_DEFINED #endif #ifdef _FIDO_INTERNAL @@ -216,18 +220,19 @@ typedef struct fido_algo_array { } fido_algo_array_t; typedef struct fido_cbor_info { - fido_str_array_t versions; /* supported versions: fido2|u2f */ - fido_str_array_t extensions; /* list of supported extensions */ - fido_str_array_t transports; /* list of supported transports */ - unsigned char aaguid[16]; /* aaguid */ - fido_opt_array_t options; /* list of supported options */ - uint64_t maxmsgsiz; /* maximum message size */ - fido_byte_array_t protocols; /* supported pin protocols */ - fido_algo_array_t algorithms; /* list of supported algorithms */ - uint64_t maxcredcntlst; /* max number of credentials in list */ - uint64_t maxcredidlen; /* max credential ID length */ - uint64_t fwversion; /* firmware version */ + fido_str_array_t versions; /* supported versions: fido2|u2f */ + fido_str_array_t extensions; /* list of supported extensions */ + fido_str_array_t transports; /* list of supported transports */ + unsigned char aaguid[16]; /* aaguid */ + fido_opt_array_t options; /* list of supported options */ + uint64_t maxmsgsiz; /* maximum message size */ + fido_byte_array_t protocols; /* supported pin protocols */ + fido_algo_array_t algorithms; /* list of supported algorithms */ + uint64_t maxcredcntlst; /* max credentials in list */ + uint64_t maxcredidlen; /* max credential ID length */ + uint64_t fwversion; /* firmware version */ uint64_t maxcredbloblen; /* max credBlob length */ + uint64_t maxlargeblob; /* max largeBlob array length */ } fido_cbor_info_t; typedef struct fido_dev_info { diff --git a/src/hid_freebsd.c b/src/hid_freebsd.c index 5aefe69c1be..21e408ffd53 100644 --- a/src/hid_freebsd.c +++ b/src/hid_freebsd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 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. */ @@ -87,8 +87,8 @@ copy_info(fido_dev_info_t *di, const char *path) ok = 0; fail: - if (fd != -1) - close(fd); + if (fd != -1 && close(fd) == -1) + fido_log_error(errno, "%s: close %s", __func__, path); if (ok < 0) { free(di->path); @@ -106,8 +106,6 @@ fido_hid_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) char path[64]; size_t i; - *olen = 0; - if (ilen == 0) return (FIDO_OK); /* nothing to do */ diff --git a/src/hid_openbsd.c b/src/hid_openbsd.c index d3d3bff0fc8..2993d10dad9 100644 --- a/src/hid_openbsd.c +++ b/src/hid_openbsd.c @@ -27,14 +27,58 @@ struct hid_openbsd { const sigset_t *sigmaskp; }; +static int +copy_info(fido_dev_info_t *di, const char *path) +{ + int fd = -1, ok = -1; + struct usb_device_info udi; + + memset(di, 0, sizeof(*di)); + memset(&udi, 0, sizeof(udi)); + + if ((fd = fido_hid_unix_open(path)) == -1) + goto fail; + if (ioctl(fd, IOCTL_REQ(USB_GET_DEVICEINFO), &udi) == -1) { + fido_log_error(errno, "%s: ioctl %s", __func__, path); + goto fail; + } + + fido_log_debug("%s: %s: bus = 0x%02x, addr = 0x%02x", __func__, path, + udi.udi_bus, udi.udi_addr); + fido_log_debug("%s: %s: vendor = \"%s\", product = \"%s\"", __func__, + path, udi.udi_vendor, udi.udi_product); + fido_log_debug("%s: %s: productNo = 0x%04x, vendorNo = 0x%04x, " + "releaseNo = 0x%04x", __func__, path, udi.udi_productNo, + udi.udi_vendorNo, udi.udi_releaseNo); + + if ((di->path = strdup(path)) == NULL || + (di->manufacturer = strdup(udi.udi_vendor)) == NULL || + (di->product = strdup(udi.udi_product)) == NULL) + goto fail; + + di->vendor_id = (int16_t)udi.udi_vendorNo; + di->product_id = (int16_t)udi.udi_productNo; + + ok = 0; +fail: + if (fd != -1 && close(fd) == -1) + fido_log_error(errno, "%s: close %s", __func__, path); + + if (ok < 0) { + free(di->path); + free(di->manufacturer); + free(di->product); + explicit_bzero(di, sizeof(*di)); + } + + return (ok); +} + int fido_hid_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) { size_t i; char path[64]; - int fd; - struct usb_device_info udi; - fido_dev_info_t *di; if (ilen == 0) return (FIDO_OK); /* nothing to do */ @@ -44,50 +88,18 @@ fido_hid_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) for (i = *olen = 0; i < MAX_UHID && *olen < ilen; i++) { snprintf(path, sizeof(path), "/dev/fido/%zu", i); - if ((fd = fido_hid_unix_open(path)) == -1) - continue; - memset(&udi, 0, sizeof(udi)); - if (ioctl(fd, IOCTL_REQ(USB_GET_DEVICEINFO), &udi) == -1) { - fido_log_error(errno, "%s: get device info %s", - __func__, path); - if (close(fd) == -1) - fido_log_error(errno, "%s: close", __func__); - continue; + if (copy_info(&devlist[*olen], path) == 0) { + devlist[*olen].io = (fido_dev_io_t) { + fido_hid_open, + fido_hid_close, + fido_hid_read, + fido_hid_write, + }; + ++(*olen); } - if (close(fd) == -1) - fido_log_error(errno, "%s: close", __func__); - - fido_log_debug("%s: %s: bus = 0x%02x, addr = 0x%02x", - __func__, path, udi.udi_bus, udi.udi_addr); - fido_log_debug("%s: %s: vendor = \"%s\", product = \"%s\"", - __func__, path, udi.udi_vendor, udi.udi_product); - fido_log_debug("%s: %s: productNo = 0x%04x, vendorNo = 0x%04x, " - "releaseNo = 0x%04x", __func__, path, udi.udi_productNo, - udi.udi_vendorNo, udi.udi_releaseNo); - - di = &devlist[*olen]; - memset(di, 0, sizeof(*di)); - di->io = (fido_dev_io_t) { - fido_hid_open, - fido_hid_close, - fido_hid_read, - fido_hid_write, - }; - if ((di->path = strdup(path)) == NULL || - (di->manufacturer = strdup(udi.udi_vendor)) == NULL || - (di->product = strdup(udi.udi_product)) == NULL) { - free(di->path); - free(di->manufacturer); - free(di->product); - explicit_bzero(di, sizeof(*di)); - return FIDO_ERR_INTERNAL; - } - di->vendor_id = (int16_t)udi.udi_vendorNo; - di->product_id = (int16_t)udi.udi_productNo; - (*olen)++; } - return FIDO_OK; + return (FIDO_OK); } /* diff --git a/src/hid_osx.c b/src/hid_osx.c index 7f3652e3962..a5fa8281f81 100644 --- a/src/hid_osx.c +++ b/src/hid_osx.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Yubico AB. All rights reserved. + * Copyright (c) 2019-2022 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. */ @@ -374,25 +374,6 @@ disable_sigpipe(int fd) return (0); } -static int -to_uint64(const char *str, uint64_t *out) -{ - char *ep; - unsigned long long ull; - - errno = 0; - ull = strtoull(str, &ep, 10); - if (str == ep || *ep != '\0') - return (-1); - else if (ull == ULLONG_MAX && errno == ERANGE) - return (-1); - else if (ull > UINT64_MAX) - return (-1); - *out = (uint64_t)ull; - - return (0); -} - static io_registry_entry_t get_ioreg_entry(const char *path) { @@ -401,8 +382,8 @@ get_ioreg_entry(const char *path) if (strncmp(path, IOREG, strlen(IOREG)) != 0) return (IORegistryEntryFromPath(kIOMainPortDefault, path)); - if (to_uint64(path + strlen(IOREG), &id) == -1) { - fido_log_debug("%s: to_uint64", __func__); + if (fido_to_uint64(path + strlen(IOREG), 10, &id) == -1) { + fido_log_debug("%s: fido_to_uint64", __func__); return (MACH_PORT_NULL); } diff --git a/src/info.c b/src/info.c index 167a1d30eca..ea26f22297a 100644 --- a/src/info.c +++ b/src/info.c @@ -268,6 +268,8 @@ parse_reply_element(const cbor_item_t *key, const cbor_item_t *val, void *arg) return (decode_string_array(val, &ci->transports)); case 10: /* algorithms */ return (decode_algorithms(val, &ci->algorithms)); + case 11: /* maxSerializedLargeBlobArray */ + return (cbor_decode_uint64(val, &ci->maxlargeblob)); case 14: /* fwVersion */ return (cbor_decode_uint64(val, &ci->fwversion)); case 15: /* maxCredBlobLen */ @@ -461,6 +463,12 @@ fido_cbor_info_maxcredidlen(const fido_cbor_info_t *ci) return (ci->maxcredidlen); } +uint64_t +fido_cbor_info_maxlargeblob(const fido_cbor_info_t *ci) +{ + return (ci->maxlargeblob); +} + uint64_t fido_cbor_info_fwversion(const fido_cbor_info_t *ci) { diff --git a/src/nfc.c b/src/nfc.c new file mode 100644 index 00000000000..8e1221bb505 --- /dev/null +++ b/src/nfc.c @@ -0,0 +1,320 @@ +/* + * Copyright (c) 2020-2022 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. + */ + +#include <stdio.h> +#include <string.h> + +#include "fido.h" +#include "fido/param.h" +#include "iso7816.h" + +#define TX_CHUNK_SIZE 240 + +static const uint8_t aid[] = { 0xa0, 0x00, 0x00, 0x06, 0x47, 0x2f, 0x00, 0x01 }; +static const uint8_t v_u2f[] = { 'U', '2', 'F', '_', 'V', '2' }; +static const uint8_t v_fido[] = { 'F', 'I', 'D', 'O', '_', '2', '_', '0' }; + +static int +tx_short_apdu(fido_dev_t *d, const iso7816_header_t *h, const uint8_t *payload, + uint8_t payload_len, uint8_t cla_flags) +{ + uint8_t apdu[5 + UINT8_MAX + 1]; + uint8_t sw[2]; + size_t apdu_len; + int ok = -1; + + memset(&apdu, 0, sizeof(apdu)); + apdu[0] = h->cla | cla_flags; + apdu[1] = h->ins; + apdu[2] = h->p1; + apdu[3] = h->p2; + apdu[4] = payload_len; + memcpy(&apdu[5], payload, payload_len); + apdu_len = (size_t)(5 + payload_len + 1); + + if (d->io.write(d->io_handle, apdu, apdu_len) < 0) { + fido_log_debug("%s: write", __func__); + goto fail; + } + + if (cla_flags & 0x10) { + if (d->io.read(d->io_handle, sw, sizeof(sw), -1) != 2) { + fido_log_debug("%s: read", __func__); + goto fail; + } + if ((sw[0] << 8 | sw[1]) != SW_NO_ERROR) { + fido_log_debug("%s: unexpected sw", __func__); + goto fail; + } + } + + ok = 0; +fail: + explicit_bzero(apdu, sizeof(apdu)); + + return ok; +} + +static int +nfc_do_tx(fido_dev_t *d, const uint8_t *apdu_ptr, size_t apdu_len) +{ + iso7816_header_t h; + + if (fido_buf_read(&apdu_ptr, &apdu_len, &h, sizeof(h)) < 0) { + fido_log_debug("%s: header", __func__); + return -1; + } + if (apdu_len < 2) { + fido_log_debug("%s: apdu_len %zu", __func__, apdu_len); + return -1; + } + + apdu_len -= 2; /* trim le1 le2 */ + + while (apdu_len > TX_CHUNK_SIZE) { + if (tx_short_apdu(d, &h, apdu_ptr, TX_CHUNK_SIZE, 0x10) < 0) { + fido_log_debug("%s: chain", __func__); + return -1; + } + apdu_ptr += TX_CHUNK_SIZE; + apdu_len -= TX_CHUNK_SIZE; + } + + if (tx_short_apdu(d, &h, apdu_ptr, (uint8_t)apdu_len, 0) < 0) { + fido_log_debug("%s: tx_short_apdu", __func__); + return -1; + } + + return 0; +} + +int +fido_nfc_tx(fido_dev_t *d, uint8_t cmd, const unsigned char *buf, size_t count) +{ + iso7816_apdu_t *apdu = NULL; + const uint8_t *ptr; + size_t len; + int ok = -1; + + switch (cmd) { + case CTAP_CMD_INIT: /* select */ + if ((apdu = iso7816_new(0, 0xa4, 0x04, sizeof(aid))) == NULL || + iso7816_add(apdu, aid, sizeof(aid)) < 0) { + fido_log_debug("%s: iso7816", __func__); + goto fail; + } + break; + case CTAP_CMD_CBOR: /* wrap cbor */ + if (count > UINT16_MAX || (apdu = iso7816_new(0x80, 0x10, 0x00, + (uint16_t)count)) == NULL || + iso7816_add(apdu, buf, count) < 0) { + fido_log_debug("%s: iso7816", __func__); + goto fail; + } + break; + case CTAP_CMD_MSG: /* already an apdu */ + break; + default: + fido_log_debug("%s: cmd=%02x", __func__, cmd); + goto fail; + } + + if (apdu != NULL) { + ptr = iso7816_ptr(apdu); + len = iso7816_len(apdu); + } else { + ptr = buf; + len = count; + } + + if (nfc_do_tx(d, ptr, len) < 0) { + fido_log_debug("%s: nfc_do_tx", __func__); + goto fail; + } + + ok = 0; +fail: + iso7816_free(&apdu); + + return ok; +} + +static int +rx_init(fido_dev_t *d, unsigned char *buf, size_t count, int ms) +{ + fido_ctap_info_t *attr = (fido_ctap_info_t *)buf; + uint8_t f[64]; + int n; + + if (count != sizeof(*attr)) { + fido_log_debug("%s: count=%zu", __func__, count); + return -1; + } + + memset(attr, 0, sizeof(*attr)); + + if ((n = d->io.read(d->io_handle, f, sizeof(f), ms)) < 2 || + (f[n - 2] << 8 | f[n - 1]) != SW_NO_ERROR) { + fido_log_debug("%s: read", __func__); + return -1; + } + + n -= 2; + + if (n == sizeof(v_u2f) && memcmp(f, v_u2f, sizeof(v_u2f)) == 0) + attr->flags = FIDO_CAP_CBOR; + else if (n == sizeof(v_fido) && memcmp(f, v_fido, sizeof(v_fido)) == 0) + attr->flags = FIDO_CAP_CBOR | FIDO_CAP_NMSG; + else { + fido_log_debug("%s: unknown version string", __func__); +#ifdef FIDO_FUZZ + attr->flags = FIDO_CAP_CBOR | FIDO_CAP_NMSG; +#else + return -1; +#endif + } + + memcpy(&attr->nonce, &d->nonce, sizeof(attr->nonce)); /* XXX */ + + return (int)count; +} + +static int +tx_get_response(fido_dev_t *d, uint8_t count) +{ + uint8_t apdu[5]; + + memset(apdu, 0, sizeof(apdu)); + apdu[1] = 0xc0; /* GET_RESPONSE */ + apdu[4] = count; + + if (d->io.write(d->io_handle, apdu, sizeof(apdu)) < 0) { + fido_log_debug("%s: write", __func__); + return -1; + } + + return 0; +} + +static int +rx_apdu(fido_dev_t *d, uint8_t sw[2], unsigned char **buf, size_t *count, int *ms) +{ + uint8_t f[256 + 2]; + struct timespec ts; + int n, ok = -1; + + if (fido_time_now(&ts) != 0) + goto fail; + + if ((n = d->io.read(d->io_handle, f, sizeof(f), *ms)) < 2) { + fido_log_debug("%s: read", __func__); + goto fail; + } + + if (fido_time_delta(&ts, ms) != 0) + goto fail; + + if (fido_buf_write(buf, count, f, (size_t)(n - 2)) < 0) { + fido_log_debug("%s: fido_buf_write", __func__); + goto fail; + } + + memcpy(sw, f + n - 2, 2); + + ok = 0; +fail: + explicit_bzero(f, sizeof(f)); + + return ok; +} + +static int +rx_msg(fido_dev_t *d, unsigned char *buf, size_t count, int ms) +{ + uint8_t sw[2]; + const size_t bufsiz = count; + + if (rx_apdu(d, sw, &buf, &count, &ms) < 0) { + fido_log_debug("%s: preamble", __func__); + return -1; + } + + while (sw[0] == SW1_MORE_DATA) + if (tx_get_response(d, sw[1]) < 0 || + rx_apdu(d, sw, &buf, &count, &ms) < 0) { + fido_log_debug("%s: chain", __func__); + return -1; + } + + if (fido_buf_write(&buf, &count, sw, sizeof(sw)) < 0) { + fido_log_debug("%s: sw", __func__); + return -1; + } + + if (bufsiz - count > INT_MAX) { + fido_log_debug("%s: bufsiz", __func__); + return -1; + } + + return (int)(bufsiz - count); +} + +static int +rx_cbor(fido_dev_t *d, unsigned char *buf, size_t count, int ms) +{ + int r; + + if ((r = rx_msg(d, buf, count, ms)) < 2) + return -1; + + return r - 2; +} + +int +fido_nfc_rx(fido_dev_t *d, uint8_t cmd, unsigned char *buf, size_t count, int ms) +{ + switch (cmd) { + case CTAP_CMD_INIT: + return rx_init(d, buf, count, ms); + case CTAP_CMD_CBOR: + return rx_cbor(d, buf, count, ms); + case CTAP_CMD_MSG: + return rx_msg(d, buf, count, ms); + default: + fido_log_debug("%s: cmd=%02x", __func__, cmd); + return -1; + } +} + +#ifdef USE_NFC +bool +fido_is_nfc(const char *path) +{ + return strncmp(path, FIDO_NFC_PREFIX, strlen(FIDO_NFC_PREFIX)) == 0; +} + +int +fido_dev_set_nfc(fido_dev_t *d) +{ + if (d->io_handle != NULL) { + fido_log_debug("%s: device open", __func__); + return -1; + } + d->io_own = true; + d->io = (fido_dev_io_t) { + fido_nfc_open, + fido_nfc_close, + fido_nfc_read, + fido_nfc_write, + }; + d->transport = (fido_dev_transport_t) { + fido_nfc_rx, + fido_nfc_tx, + }; + + return 0; +} +#endif /* USE_NFC */ diff --git a/src/nfc_linux.c b/src/nfc_linux.c index d5f9ec04805..4673dc2b7d1 100644 --- a/src/nfc_linux.c +++ b/src/nfc_linux.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Yubico AB. All rights reserved. + * Copyright (c) 2020-2022 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. */ @@ -22,12 +22,6 @@ #include "netlink.h" #include "iso7816.h" -#define TX_CHUNK_SIZE 240 - -static const uint8_t aid[] = { 0xa0, 0x00, 0x00, 0x06, 0x47, 0x2f, 0x00, 0x01 }; -static const uint8_t v_u2f[] = { 'U', '2', 'F', '_', 'V', '2' }; -static const uint8_t v_fido[] = { 'F', 'I', 'D', 'O', '_', '2', '_', '0' }; - struct nfc_linux { int fd; uint32_t dev; @@ -37,278 +31,6 @@ struct nfc_linux { struct fido_nl *nl; }; -static int -tx_short_apdu(fido_dev_t *d, const iso7816_header_t *h, const uint8_t *payload, - uint8_t payload_len, uint8_t cla_flags) -{ - uint8_t apdu[5 + UINT8_MAX + 1]; - uint8_t sw[2]; - size_t apdu_len; - int ok = -1; - - memset(&apdu, 0, sizeof(apdu)); - apdu[0] = h->cla | cla_flags; - apdu[1] = h->ins; - apdu[2] = h->p1; - apdu[3] = h->p2; - apdu[4] = payload_len; - memcpy(&apdu[5], payload, payload_len); - apdu_len = (size_t)(5 + payload_len + 1); - - if (d->io.write(d->io_handle, apdu, apdu_len) < 0) { - fido_log_debug("%s: write", __func__); - goto fail; - } - - if (cla_flags & 0x10) { - if (d->io.read(d->io_handle, sw, sizeof(sw), -1) != 2) { - fido_log_debug("%s: read", __func__); - goto fail; - } - if ((sw[0] << 8 | sw[1]) != SW_NO_ERROR) { - fido_log_debug("%s: unexpected sw", __func__); - goto fail; - } - } - - ok = 0; -fail: - explicit_bzero(apdu, sizeof(apdu)); - - return (ok); -} - -static int -nfc_do_tx(fido_dev_t *d, const uint8_t *apdu_ptr, size_t apdu_len) -{ - iso7816_header_t h; - - if (fido_buf_read(&apdu_ptr, &apdu_len, &h, sizeof(h)) < 0) { - fido_log_debug("%s: header", __func__); - return (-1); - } - if (apdu_len < 2) { - fido_log_debug("%s: apdu_len %zu", __func__, apdu_len); - return (-1); - } - - apdu_len -= 2; /* trim le1 le2 */ - - while (apdu_len > TX_CHUNK_SIZE) { - if (tx_short_apdu(d, &h, apdu_ptr, TX_CHUNK_SIZE, 0x10) < 0) { - fido_log_debug("%s: chain", __func__); - return (-1); - } - apdu_ptr += TX_CHUNK_SIZE; - apdu_len -= TX_CHUNK_SIZE; - } - - if (tx_short_apdu(d, &h, apdu_ptr, (uint8_t)apdu_len, 0) < 0) { - fido_log_debug("%s: tx_short_apdu", __func__); - return (-1); - } - - return (0); -} - -int -fido_nfc_tx(fido_dev_t *d, uint8_t cmd, const unsigned char *buf, size_t count) -{ - iso7816_apdu_t *apdu = NULL; - const uint8_t *ptr; - size_t len; - int ok = -1; - - switch (cmd) { - case CTAP_CMD_INIT: /* select */ - if ((apdu = iso7816_new(0, 0xa4, 0x04, sizeof(aid))) == NULL || - iso7816_add(apdu, aid, sizeof(aid)) < 0) { - fido_log_debug("%s: iso7816", __func__); - goto fail; - } - break; - case CTAP_CMD_CBOR: /* wrap cbor */ - if (count > UINT16_MAX || (apdu = iso7816_new(0x80, 0x10, 0x80, - (uint16_t)count)) == NULL || - iso7816_add(apdu, buf, count) < 0) { - fido_log_debug("%s: iso7816", __func__); - goto fail; - } - break; - case CTAP_CMD_MSG: /* already an apdu */ - break; - default: - fido_log_debug("%s: cmd=%02x", __func__, cmd); - goto fail; - } - - if (apdu != NULL) { - ptr = iso7816_ptr(apdu); - len = iso7816_len(apdu); - } else { - ptr = buf; - len = count; - } - - if (nfc_do_tx(d, ptr, len) < 0) { - fido_log_debug("%s: nfc_do_tx", __func__); - goto fail; - } - - ok = 0; -fail: - iso7816_free(&apdu); - - return (ok); -} - -static int -rx_init(fido_dev_t *d, unsigned char *buf, size_t count, int ms) -{ - fido_ctap_info_t *attr = (fido_ctap_info_t *)buf; - uint8_t f[64]; - int n; - - if (count != sizeof(*attr)) { - fido_log_debug("%s: count=%zu", __func__, count); - return (-1); - } - - memset(attr, 0, sizeof(*attr)); - - if ((n = d->io.read(d->io_handle, f, sizeof(f), ms)) < 2 || - (f[n - 2] << 8 | f[n - 1]) != SW_NO_ERROR) { - fido_log_debug("%s: read", __func__); - return (-1); - } - - n -= 2; - - if (n == sizeof(v_u2f) && memcmp(f, v_u2f, sizeof(v_u2f)) == 0) - attr->flags = FIDO_CAP_CBOR; - else if (n == sizeof(v_fido) && memcmp(f, v_fido, sizeof(v_fido)) == 0) - attr->flags = FIDO_CAP_CBOR | FIDO_CAP_NMSG; - else { - fido_log_debug("%s: unknown version string", __func__); -#ifdef FIDO_FUZZ - attr->flags = FIDO_CAP_CBOR | FIDO_CAP_NMSG; -#else - return (-1); -#endif - } - - memcpy(&attr->nonce, &d->nonce, sizeof(attr->nonce)); /* XXX */ - - return ((int)count); -} - -static int -tx_get_response(fido_dev_t *d, uint8_t count) -{ - uint8_t apdu[5]; - - memset(apdu, 0, sizeof(apdu)); - apdu[1] = 0xc0; /* GET_RESPONSE */ - apdu[4] = count; - - if (d->io.write(d->io_handle, apdu, sizeof(apdu)) < 0) { - fido_log_debug("%s: write", __func__); - return (-1); - } - - return (0); -} - -static int -rx_apdu(fido_dev_t *d, uint8_t sw[2], unsigned char **buf, size_t *count, int *ms) -{ - uint8_t f[256 + 2]; - struct timespec ts; - int n, ok = -1; - - if (fido_time_now(&ts) != 0) - goto fail; - - if ((n = d->io.read(d->io_handle, f, sizeof(f), *ms)) < 2) { - fido_log_debug("%s: read", __func__); - goto fail; - } - - if (fido_time_delta(&ts, ms) != 0) - goto fail; - - if (fido_buf_write(buf, count, f, (size_t)(n - 2)) < 0) { - fido_log_debug("%s: fido_buf_write", __func__); - goto fail; - } - - memcpy(sw, f + n - 2, 2); - - ok = 0; -fail: - explicit_bzero(f, sizeof(f)); - - return (ok); -} - -static int -rx_msg(fido_dev_t *d, unsigned char *buf, size_t count, int ms) -{ - uint8_t sw[2]; - const size_t bufsiz = count; - - if (rx_apdu(d, sw, &buf, &count, &ms) < 0) { - fido_log_debug("%s: preamble", __func__); - return (-1); - } - - while (sw[0] == SW1_MORE_DATA) - if (tx_get_response(d, sw[1]) < 0 || - rx_apdu(d, sw, &buf, &count, &ms) < 0) { - fido_log_debug("%s: chain", __func__); - return (-1); - } - - if (fido_buf_write(&buf, &count, sw, sizeof(sw)) < 0) { - fido_log_debug("%s: sw", __func__); - return (-1); - } - - if (bufsiz - count > INT_MAX) { - fido_log_debug("%s: bufsiz", __func__); - return (-1); - } - - return ((int)(bufsiz - count)); -} - -static int -rx_cbor(fido_dev_t *d, unsigned char *buf, size_t count, int ms) -{ - int r; - - if ((r = rx_msg(d, buf, count, ms)) < 2) - return (-1); - - return (r - 2); -} - -int -fido_nfc_rx(fido_dev_t *d, uint8_t cmd, unsigned char *buf, size_t count, int ms) -{ - switch (cmd) { - case CTAP_CMD_INIT: - return (rx_init(d, buf, count, ms)); - case CTAP_CMD_CBOR: - return (rx_cbor(d, buf, count, ms)); - case CTAP_CMD_MSG: - return (rx_msg(d, buf, count, ms)); - default: - fido_log_debug("%s: cmd=%02x", __func__, cmd); - return (-1); - } -} - static char * get_parent_attr(struct udev_device *dev, const char *subsystem, const char *devtype, const char *attr) @@ -319,34 +41,15 @@ get_parent_attr(struct udev_device *dev, const char *subsystem, if ((parent = udev_device_get_parent_with_subsystem_devtype(dev, subsystem, devtype)) == NULL || (value = udev_device_get_sysattr_value(parent, attr)) == NULL) - return (NULL); + return NULL; - return (strdup(value)); + return strdup(value); } static char * get_usb_attr(struct udev_device *dev, const char *attr) { - return (get_parent_attr(dev, "usb", "usb_device", attr)); -} - -static int -to_int(const char *str, int base) -{ - char *ep; - long long ll; - - ll = strtoll(str, &ep, base); - if (str == ep || *ep != '\0') - return (-1); - else if (ll == LLONG_MIN && errno == ERANGE) - return (-1); - else if (ll == LLONG_MAX && errno == ERANGE) - return (-1); - else if (ll < 0 || ll > INT_MAX) - return (-1); - - return ((int)ll); + return get_parent_attr(dev, "usb", "usb_device", attr); } static int @@ -357,15 +60,18 @@ copy_info(fido_dev_info_t *di, struct udev *udev, char *str; struct udev_device *dev = NULL; void *ctx = NULL; - int id, ok = -1; + uint64_t id; + int ok = -1; memset(di, 0, sizeof(*di)); if ((name = udev_list_entry_get_name(udev_entry)) == NULL || (dev = udev_device_new_from_syspath(udev, name)) == NULL) goto fail; - if (asprintf(&di->path, "%s/%s", FIDO_NFC_PREFIX, name) == -1) + if (asprintf(&di->path, "%s/%s", FIDO_NFC_PREFIX, name) == -1) { + di->path = NULL; goto fail; + } if ((di->manufacturer = get_usb_attr(dev, "manufacturer")) == NULL) di->manufacturer = strdup(""); if ((di->product = get_usb_attr(dev, "product")) == NULL) @@ -374,11 +80,11 @@ copy_info(fido_dev_info_t *di, struct udev *udev, goto fail; /* XXX assumes USB for vendor/product info */ if ((str = get_usb_attr(dev, "idVendor")) != NULL && - (id = to_int(str, 16)) > 0 && id <= UINT16_MAX) + fido_to_uint64(str, 16, &id) == 0 && id <= UINT16_MAX) di->vendor_id = (int16_t)id; free(str); if ((str = get_usb_attr(dev, "idProduct")) != NULL && - (id = to_int(str, 16)) > 0 && id <= UINT16_MAX) + fido_to_uint64(str, 16, &id) == 0 && id <= UINT16_MAX) di->product_id = (int16_t)id; free(str); @@ -401,7 +107,7 @@ fail: explicit_bzero(di, sizeof(*di)); } - return (ok); + return ok; } static int @@ -410,21 +116,21 @@ sysnum_from_syspath(const char *path) struct udev *udev = NULL; struct udev_device *dev = NULL; const char *str; - int idx; + uint64_t idx64; + int idx = -1; - if ((udev = udev_new()) == NULL || - (dev = udev_device_new_from_syspath(udev, path)) == NULL || - (str = udev_device_get_sysnum(dev)) == NULL) - idx = -1; - else - idx = to_int(str, 10); + if ((udev = udev_new()) != NULL && + (dev = udev_device_new_from_syspath(udev, path)) != NULL && + (str = udev_device_get_sysnum(dev)) != NULL && + fido_to_uint64(str, 10, &idx64) == 0 && idx64 < INT_MAX) + idx = (int)idx64; if (dev != NULL) udev_device_unref(dev); if (udev != NULL) udev_unref(udev); - return (idx); + return idx; } int @@ -439,10 +145,10 @@ fido_nfc_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) *olen = 0; if (ilen == 0) - return (FIDO_OK); + return FIDO_OK; if (devlist == NULL) - return (FIDO_ERR_INVALID_ARGUMENT); + return FIDO_ERR_INVALID_ARGUMENT; if ((udev = udev_new()) == NULL || (udev_enum = udev_enumerate_new(udev)) == NULL) @@ -481,7 +187,7 @@ fail: if (udev != NULL) udev_unref(udev); - return (r); + return r; } static int @@ -498,17 +204,17 @@ nfc_target_connect(struct nfc_linux *ctx) if ((ctx->fd = socket(AF_NFC, SOCK_SEQPACKET | SOCK_CLOEXEC, NFC_SOCKPROTO_RAW)) == -1) { fido_log_error(errno, "%s: socket", __func__); - return (-1); + return -1; } if (connect(ctx->fd, (struct sockaddr *)&sa, sizeof(sa)) == -1) { fido_log_error(errno, "%s: connect", __func__); if (close(ctx->fd) == -1) fido_log_error(errno, "%s: close", __func__); ctx->fd = -1; - return (-1); + return -1; } - return (0); + return 0; } static void @@ -535,13 +241,13 @@ nfc_new(uint32_t dev) if ((ctx = calloc(1, sizeof(*ctx))) == NULL || (ctx->nl = fido_nl_new()) == NULL) { nfc_free(&ctx); - return (NULL); + return NULL; } ctx->fd = -1; ctx->dev = dev; - return (ctx); + return ctx; } void * @@ -566,10 +272,10 @@ fido_nfc_open(const char *path) goto fail; } - return (ctx); + return ctx; fail: nfc_free(&ctx); - return (NULL); + return NULL; } void @@ -588,7 +294,7 @@ fido_nfc_set_sigmask(void *handle, const fido_sigset_t *sigmask) ctx->sigmask = *sigmask; ctx->sigmaskp = &ctx->sigmask; - return (FIDO_OK); + return FIDO_OK; } int @@ -607,25 +313,25 @@ fido_nfc_read(void *handle, unsigned char *buf, size_t len, int ms) if (fido_hid_unix_wait(ctx->fd, ms, ctx->sigmaskp) < 0) { fido_log_debug("%s: fido_hid_unix_wait", __func__); - return (-1); + return -1; } if ((r = readv(ctx->fd, iov, nitems(iov))) == -1) { fido_log_error(errno, "%s: read", __func__); - return (-1); + return -1; } if (r < 1) { fido_log_debug("%s: %zd < 1", __func__, r); - return (-1); + return -1; } if (preamble != 0x00) { fido_log_debug("%s: preamble", __func__); - return (-1); + return -1; } r--; fido_log_xxd(buf, (size_t)r, "%s", __func__); - return ((int)r); + return (int)r; } int @@ -638,16 +344,16 @@ fido_nfc_write(void *handle, const unsigned char *buf, size_t len) if (len > INT_MAX) { fido_log_debug("%s: len", __func__); - return (-1); + return -1; } if ((r = write(ctx->fd, buf, len)) == -1) { fido_log_error(errno, "%s: write", __func__); - return (-1); + return -1; } if (r < 0 || (size_t)r != len) { fido_log_debug("%s: %zd != %zu", __func__, r, len); - return (-1); + return -1; } - return ((int)r); + return (int)r; } diff --git a/src/pcsc.c b/src/pcsc.c new file mode 100644 index 00000000000..c02251e9bfe --- /dev/null +++ b/src/pcsc.c @@ -0,0 +1,389 @@ +/* + * Copyright (c) 2022 Micro Focus or one of its affiliates. + * Copyright (c) 2022 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. + */ + +#if __APPLE__ +#include <PCSC/wintypes.h> +#include <PCSC/winscard.h> +#else +#include <winscard.h> +#endif /* __APPLE__ */ + +#include <errno.h> + +#include "fido.h" +#include "fido/param.h" +#include "iso7816.h" + +#if defined(_WIN32) && !defined(__MINGW32__) +#define SCardConnect SCardConnectA +#define SCardListReaders SCardListReadersA +#endif + +#ifndef SCARD_PROTOCOL_Tx +#define SCARD_PROTOCOL_Tx SCARD_PROTOCOL_ANY +#endif + +#define BUFSIZE 1024 /* in bytes; passed to SCardListReaders() */ +#define APDULEN 264 /* 261 rounded up to the nearest multiple of 8 */ +#define READERS 8 /* maximum number of readers */ + +struct pcsc { + SCARDCONTEXT ctx; + SCARDHANDLE h; + SCARD_IO_REQUEST req; + uint8_t rx_buf[APDULEN]; + size_t rx_len; +}; + +static LONG +list_readers(SCARDCONTEXT ctx, char **buf) +{ + LONG s; + DWORD len; + + len = BUFSIZE; + if ((*buf = calloc(1, len)) == NULL) + goto fail; + if ((s = SCardListReaders(ctx, NULL, *buf, &len)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: SCardListReaders 0x%lx", __func__, (long)s); + goto fail; + } + /* sanity check "multi-string" */ + if (len > BUFSIZE || len < 2) { + fido_log_debug("%s: bogus len=%u", __func__, (unsigned)len); + goto fail; + } + if ((*buf)[len - 1] != 0 || (*buf)[len - 2] != '\0') { + fido_log_debug("%s: bogus buf", __func__); + goto fail; + } + return (LONG)SCARD_S_SUCCESS; +fail: + free(*buf); + *buf = NULL; + + return (LONG)SCARD_E_NO_READERS_AVAILABLE; +} + +static char * +get_reader(SCARDCONTEXT ctx, const char *path) +{ + char *reader = NULL, *buf = NULL; + const char prefix[] = FIDO_PCSC_PREFIX "//slot"; + uint64_t n; + + if (path == NULL) + goto out; + if (strncmp(path, prefix, strlen(prefix)) != 0 || + fido_to_uint64(path + strlen(prefix), 10, &n) < 0 || + n > READERS - 1) { + fido_log_debug("%s: invalid path %s", __func__, path); + goto out; + } + if (list_readers(ctx, &buf) != SCARD_S_SUCCESS) { + fido_log_debug("%s: list_readers", __func__); + goto out; + } + for (const char *name = buf; *name != 0; name += strlen(name) + 1) { + if (n == 0) { + reader = strdup(name); + goto out; + } + n--; + } + fido_log_debug("%s: failed to find reader %s", __func__, path); +out: + free(buf); + + return reader; +} + +static int +prepare_io_request(DWORD prot, SCARD_IO_REQUEST *req) +{ + switch (prot) { + case SCARD_PROTOCOL_T0: + req->dwProtocol = SCARD_PCI_T0->dwProtocol; + req->cbPciLength = SCARD_PCI_T0->cbPciLength; + break; + case SCARD_PROTOCOL_T1: + req->dwProtocol = SCARD_PCI_T1->dwProtocol; + req->cbPciLength = SCARD_PCI_T1->cbPciLength; + break; + default: + fido_log_debug("%s: unknown protocol %lu", __func__, + (u_long)prot); + return -1; + } + + return 0; +} + +static int +copy_info(fido_dev_info_t *di, SCARDCONTEXT ctx, const char *reader, size_t idx) +{ + SCARDHANDLE h = 0; + SCARD_IO_REQUEST req; + DWORD prot = 0; + LONG s; + int ok = -1; + + memset(di, 0, sizeof(*di)); + memset(&req, 0, sizeof(req)); + + if ((s = SCardConnect(ctx, reader, SCARD_SHARE_SHARED, + SCARD_PROTOCOL_Tx, &h, &prot)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: SCardConnect 0x%lx", __func__, (long)s); + goto fail; + } + if (prepare_io_request(prot, &req) < 0) { + fido_log_debug("%s: prepare_io_request", __func__); + goto fail; + } + if (asprintf(&di->path, "%s//slot%zu", FIDO_PCSC_PREFIX, idx) == -1) { + di->path = NULL; + fido_log_debug("%s: asprintf", __func__); + goto fail; + } + if ((di->manufacturer = strdup("PC/SC")) == NULL || + (di->product = strdup(reader)) == NULL) + goto fail; + + ok = 0; +fail: + if (h != 0) + SCardDisconnect(h, SCARD_LEAVE_CARD); + if (ok < 0) { + free(di->path); + free(di->manufacturer); + free(di->product); + explicit_bzero(di, sizeof(*di)); + } + + return ok; +} + +int +fido_pcsc_manifest(fido_dev_info_t *devlist, size_t ilen, size_t *olen) +{ + SCARDCONTEXT ctx = 0; + char *buf = NULL; + LONG s; + size_t idx = 0; + int r = FIDO_ERR_INTERNAL; + + *olen = 0; + + if (ilen == 0) + return FIDO_OK; + if (devlist == NULL) + return FIDO_ERR_INVALID_ARGUMENT; + + if ((s = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, + &ctx)) != SCARD_S_SUCCESS || ctx == 0) { + fido_log_debug("%s: SCardEstablishContext 0x%lx", __func__, + (long)s); + if (s == (LONG)SCARD_E_NO_SERVICE || + s == (LONG)SCARD_E_NO_SMARTCARD) + r = FIDO_OK; /* suppress error */ + goto out; + } + if ((s = list_readers(ctx, &buf)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: list_readers 0x%lx", __func__, (long)s); + if (s == (LONG)SCARD_E_NO_READERS_AVAILABLE) + r = FIDO_OK; /* suppress error */ + goto out; + } + + for (const char *name = buf; *name != 0; name += strlen(name) + 1) { + if (idx == READERS) { + fido_log_debug("%s: stopping at %zu readers", __func__, + idx); + r = FIDO_OK; + goto out; + } + if (copy_info(&devlist[*olen], ctx, name, idx++) == 0) { + devlist[*olen].io = (fido_dev_io_t) { + fido_pcsc_open, + fido_pcsc_close, + fido_pcsc_read, + fido_pcsc_write, + }; + devlist[*olen].transport = (fido_dev_transport_t) { + fido_pcsc_rx, + fido_pcsc_tx, + }; + if (++(*olen) == ilen) + break; + } + } + + r = FIDO_OK; +out: + free(buf); + if (ctx != 0) + SCardReleaseContext(ctx); + + return r; +} + +void * +fido_pcsc_open(const char *path) +{ + char *reader = NULL; + struct pcsc *dev = NULL; + SCARDCONTEXT ctx = 0; + SCARDHANDLE h = 0; + SCARD_IO_REQUEST req; + DWORD prot = 0; + LONG s; + + memset(&req, 0, sizeof(req)); + + if ((s = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, + &ctx)) != SCARD_S_SUCCESS || ctx == 0) { + fido_log_debug("%s: SCardEstablishContext 0x%lx", __func__, + (long)s); + goto fail; + + } + if ((reader = get_reader(ctx, path)) == NULL) { + fido_log_debug("%s: get_reader(%s)", __func__, path); + goto fail; + } + if ((s = SCardConnect(ctx, reader, SCARD_SHARE_SHARED, + SCARD_PROTOCOL_Tx, &h, &prot)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: SCardConnect 0x%lx", __func__, (long)s); + goto fail; + } + if (prepare_io_request(prot, &req) < 0) { + fido_log_debug("%s: prepare_io_request", __func__); + goto fail; + } + if ((dev = calloc(1, sizeof(*dev))) == NULL) + goto fail; + + dev->ctx = ctx; + dev->h = h; + dev->req = req; + ctx = 0; + h = 0; +fail: + if (h != 0) + SCardDisconnect(h, SCARD_LEAVE_CARD); + if (ctx != 0) + SCardReleaseContext(ctx); + free(reader); + + return dev; +} + +void +fido_pcsc_close(void *handle) +{ + struct pcsc *dev = handle; + + if (dev->h != 0) + SCardDisconnect(dev->h, SCARD_LEAVE_CARD); + if (dev->ctx != 0) + SCardReleaseContext(dev->ctx); + + explicit_bzero(dev->rx_buf, sizeof(dev->rx_buf)); + free(dev); +} + +int +fido_pcsc_read(void *handle, unsigned char *buf, size_t len, int ms) +{ + struct pcsc *dev = handle; + int r; + + (void)ms; + if (dev->rx_len == 0 || dev->rx_len > len || + dev->rx_len > sizeof(dev->rx_buf)) { + fido_log_debug("%s: rx_len", __func__); + return -1; + } + fido_log_xxd(dev->rx_buf, dev->rx_len, "%s: reading", __func__); + memcpy(buf, dev->rx_buf, dev->rx_len); + explicit_bzero(dev->rx_buf, sizeof(dev->rx_buf)); + r = (int)dev->rx_len; + dev->rx_len = 0; + + return r; +} + +int +fido_pcsc_write(void *handle, const unsigned char *buf, size_t len) +{ + struct pcsc *dev = handle; + DWORD n; + LONG s; + + if (len > INT_MAX) { + fido_log_debug("%s: len", __func__); + return -1; + } + + explicit_bzero(dev->rx_buf, sizeof(dev->rx_buf)); + dev->rx_len = 0; + n = (DWORD)sizeof(dev->rx_buf); + + fido_log_xxd(buf, len, "%s: writing", __func__); + + if ((s = SCardTransmit(dev->h, &dev->req, buf, (DWORD)len, NULL, + dev->rx_buf, &n)) != SCARD_S_SUCCESS) { + fido_log_debug("%s: SCardTransmit 0x%lx", __func__, (long)s); + explicit_bzero(dev->rx_buf, sizeof(dev->rx_buf)); + return -1; + } + dev->rx_len = (size_t)n; + + fido_log_xxd(dev->rx_buf, dev->rx_len, "%s: read", __func__); + + return (int)len; +} + +int +fido_pcsc_tx(fido_dev_t *d, uint8_t cmd, const u_char *buf, size_t count) +{ + return fido_nfc_tx(d, cmd, buf, count); +} + +int +fido_pcsc_rx(fido_dev_t *d, uint8_t cmd, u_char *buf, size_t count, int ms) +{ + return fido_nfc_rx(d, cmd, buf, count, ms); +} + +bool +fido_is_pcsc(const char *path) +{ + return strncmp(path, FIDO_PCSC_PREFIX, strlen(FIDO_PCSC_PREFIX)) == 0; +} + +int +fido_dev_set_pcsc(fido_dev_t *d) +{ + if (d->io_handle != NULL) { + fido_log_debug("%s: device open", __func__); + return -1; + } + d->io_own = true; + d->io = (fido_dev_io_t) { + fido_pcsc_open, + fido_pcsc_close, + fido_pcsc_read, + fido_pcsc_write, + }; + d->transport = (fido_dev_transport_t) { + fido_pcsc_rx, + fido_pcsc_tx, + }; + + return 0; +} diff --git a/src/rs1.c b/src/rs1.c index 37aa9f073be..134068b1674 100644 --- a/src/rs1.c +++ b/src/rs1.c @@ -9,7 +9,7 @@ #include "fido.h" -#if defined(LIBRESSL_VERSION_NUMBER) +#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3050200fL static EVP_MD * rs1_get_EVP_MD(void) { diff --git a/src/rs256.c b/src/rs256.c index 29fcedbdee2..95bae167a17 100644 --- a/src/rs256.c +++ b/src/rs256.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 Yubico AB. All rights reserved. + * Copyright (c) 2018-2022 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. */ @@ -11,7 +11,13 @@ #include "fido.h" #include "fido/rs256.h" -#if defined(LIBRESSL_VERSION_NUMBER) +#if OPENSSL_VERSION_NUMBER >= 0x30000000 +#define get0_RSA(x) EVP_PKEY_get0_RSA((x)) +#else +#define get0_RSA(x) EVP_PKEY_get0((x)) +#endif + +#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3050200fL static EVP_MD * rs256_get_EVP_MD(void) { @@ -128,11 +134,20 @@ rs256_pk_free(rs256_pk_t **pkp) int rs256_pk_from_ptr(rs256_pk_t *pk, const void *ptr, size_t len) { + EVP_PKEY *pkey; + if (len < sizeof(*pk)) return (FIDO_ERR_INVALID_ARGUMENT); memcpy(pk, ptr, sizeof(*pk)); + if ((pkey = rs256_pk_to_EVP_PKEY(pk)) == NULL) { + fido_log_debug("%s: rs256_pk_to_EVP_PKEY", __func__); + return (FIDO_ERR_INVALID_ARGUMENT); + } + + EVP_PKEY_free(pkey); + return (FIDO_OK); } @@ -163,6 +178,11 @@ rs256_pk_to_EVP_PKEY(const rs256_pk_t *k) n = NULL; e = NULL; + if (RSA_bits(rsa) != 2048) { + fido_log_debug("%s: invalid key length", __func__); + goto fail; + } + if ((pkey = EVP_PKEY_new()) == NULL || EVP_PKEY_assign_RSA(pkey, rsa) == 0) { fido_log_debug("%s: EVP_PKEY_assign_RSA", __func__); @@ -225,10 +245,10 @@ rs256_pk_from_RSA(rs256_pk_t *pk, const RSA *rsa) int rs256_pk_from_EVP_PKEY(rs256_pk_t *pk, const EVP_PKEY *pkey) { - RSA *rsa; + const RSA *rsa; if (EVP_PKEY_base_id(pkey) != EVP_PKEY_RSA || - (rsa = EVP_PKEY_get0(pkey)) == NULL) + (rsa = get0_RSA(pkey)) == NULL) return (FIDO_ERR_INVALID_ARGUMENT); return (rs256_pk_from_RSA(pk, rsa)); diff --git a/src/touch.c b/src/touch.c new file mode 100644 index 00000000000..66b1c3478c0 --- /dev/null +++ b/src/touch.c @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2018-2022 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. + */ + +#include <openssl/sha.h> +#include "fido.h" + +int +fido_dev_get_touch_begin(fido_dev_t *dev) +{ + fido_blob_t f; + cbor_item_t *argv[9]; + const char *clientdata = FIDO_DUMMY_CLIENTDATA; + const uint8_t user_id = FIDO_DUMMY_USER_ID; + unsigned char cdh[SHA256_DIGEST_LENGTH]; + fido_rp_t rp; + fido_user_t user; + int ms = dev->timeout_ms; + int r = FIDO_ERR_INTERNAL; + + memset(&f, 0, sizeof(f)); + memset(argv, 0, sizeof(argv)); + memset(cdh, 0, sizeof(cdh)); + memset(&rp, 0, sizeof(rp)); + memset(&user, 0, sizeof(user)); + + if (fido_dev_is_fido2(dev) == false) + return (u2f_get_touch_begin(dev, &ms)); + + if (SHA256((const void *)clientdata, strlen(clientdata), cdh) != cdh) { + fido_log_debug("%s: sha256", __func__); + return (FIDO_ERR_INTERNAL); + } + + if ((rp.id = strdup(FIDO_DUMMY_RP_ID)) == NULL || + (user.name = strdup(FIDO_DUMMY_USER_NAME)) == NULL) { + fido_log_debug("%s: strdup", __func__); + goto fail; + } + + if (fido_blob_set(&user.id, &user_id, sizeof(user_id)) < 0) { + fido_log_debug("%s: fido_blob_set", __func__); + goto fail; + } + + if ((argv[0] = cbor_build_bytestring(cdh, sizeof(cdh))) == NULL || + (argv[1] = cbor_encode_rp_entity(&rp)) == NULL || + (argv[2] = cbor_encode_user_entity(&user)) == NULL || + (argv[3] = cbor_encode_pubkey_param(COSE_ES256)) == NULL) { + fido_log_debug("%s: cbor encode", __func__); + goto fail; + } + + if (fido_dev_supports_pin(dev)) { + if ((argv[7] = cbor_new_definite_bytestring()) == NULL || + (argv[8] = cbor_encode_pin_opt(dev)) == NULL) { + fido_log_debug("%s: cbor encode", __func__); + goto fail; + } + } + + if (cbor_build_frame(CTAP_CBOR_MAKECRED, argv, nitems(argv), &f) < 0 || + fido_tx(dev, CTAP_CMD_CBOR, f.ptr, f.len, &ms) < 0) { + fido_log_debug("%s: fido_tx", __func__); + r = FIDO_ERR_TX; + goto fail; + } + + r = FIDO_OK; +fail: + cbor_vector_free(argv, nitems(argv)); + free(f.ptr); + free(rp.id); + free(user.name); + free(user.id.ptr); + + return (r); +} + +int +fido_dev_get_touch_status(fido_dev_t *dev, int *touched, int ms) +{ + int r; + + *touched = 0; + + if (fido_dev_is_fido2(dev) == false) + return (u2f_get_touch_status(dev, touched, &ms)); + + switch ((r = fido_rx_cbor_status(dev, &ms))) { + case FIDO_ERR_PIN_AUTH_INVALID: + case FIDO_ERR_PIN_INVALID: + case FIDO_ERR_PIN_NOT_SET: + case FIDO_ERR_SUCCESS: + *touched = 1; + break; + case FIDO_ERR_RX: + /* ignore */ + break; + default: + fido_log_debug("%s: fido_rx_cbor_status", __func__); + return (r); + } + + return (FIDO_OK); +} diff --git a/src/util.c b/src/util.c new file mode 100644 index 00000000000..61e120cfd06 --- /dev/null +++ b/src/util.c @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2022 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. + */ + +#include <errno.h> +#include <stdint.h> +#include <stdlib.h> + +#include "fido.h" + +int +fido_to_uint64(const char *str, int base, uint64_t *out) +{ + char *ep; + unsigned long long ull; + + errno = 0; + ull = strtoull(str, &ep, base); + if (str == ep || *ep != '\0') + return -1; + else if (ull == ULLONG_MAX && errno == ERANGE) + return -1; + else if (ull > UINT64_MAX) + return -1; + *out = (uint64_t)ull; + + return 0; +} diff --git a/src/webauthn.h b/src/webauthn.h index 22bf6e346a7..e64236a0f6f 100644 --- a/src/webauthn.h +++ b/src/webauthn.h @@ -92,6 +92,9 @@ extern "C" { // - WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS : 5 // - WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS : 6 // - WEBAUTHN_ASSERTION : 3 +// APIs: +// - WebAuthNGetPlatformCredentialList +// - WebAuthNFreePlatformCredentialList // #define WEBAUTHN_API_CURRENT_VERSION WEBAUTHN_API_VERSION_4 @@ -282,12 +285,65 @@ typedef struct _WEBAUTHN_CREDENTIAL_LIST { } WEBAUTHN_CREDENTIAL_LIST, *PWEBAUTHN_CREDENTIAL_LIST; typedef const WEBAUTHN_CREDENTIAL_LIST *PCWEBAUTHN_CREDENTIAL_LIST; +//+------------------------------------------------------------------------------------------ +// Credential Information for WebAuthNGetPlatformCredentialList API +//------------------------------------------------------------------------------------------- + +#define WEBAUTHN_CREDENTIAL_DETAILS_VERSION_1 1 +#define WEBAUTHN_CREDENTIAL_DETAILS_CURRENT_VERSION WEBAUTHN_CREDENTIAL_DETAILS_VERSION_1 + +typedef struct _WEBAUTHN_CREDENTIAL_DETAILS { + // Version of this structure, to allow for modifications in the future. + DWORD dwVersion; + + // Size of pbCredentialID. + DWORD cbCredentialID; + _Field_size_bytes_(cbCredentialID) + PBYTE pbCredentialID; + + // RP Info + PWEBAUTHN_RP_ENTITY_INFORMATION pRpInformation; + + // User Info + PWEBAUTHN_USER_ENTITY_INFORMATION pUserInformation; +} WEBAUTHN_CREDENTIAL_DETAILS, *PWEBAUTHN_CREDENTIAL_DETAILS; +typedef const WEBAUTHN_CREDENTIAL_DETAILS *PCWEBAUTHN_CREDENTIAL_DETAILS; + +typedef struct _WEBAUTHN_CREDENTIAL_DETAILS_LIST { + DWORD cCredentialDetails; + _Field_size_(cCredentialDetails) + PWEBAUTHN_CREDENTIAL_DETAILS *ppCredentialDetails; +} WEBAUTHN_CREDENTIAL_DETAILS_LIST, *PWEBAUTHN_CREDENTIAL_DETAILS_LIST; +typedef const WEBAUTHN_CREDENTIAL_DETAILS_LIST *PCWEBAUTHN_CREDENTIAL_DETAILS_LIST; + +#define WEBAUTHN_GET_CREDENTIALS_OPTIONS_VERSION_1 1 +#define WEBAUTHN_GET_CREDENTIALS_OPTIONS_CURRENT_VERSION WEBAUTHN_GET_CREDENTIALS_OPTIONS_VERSION_1 + +typedef struct _WEBAUTHN_GET_CREDENTIALS_OPTIONS { + // Version of this structure, to allow for modifications in the future. + DWORD dwVersion; + + // RPID + LPCWSTR pwszRpId; + + // Optional. BrowserInPrivate Mode. Defaulting to FALSE. + BOOL bBrowserInPrivateMode; +} WEBAUTHN_GET_CREDENTIALS_OPTIONS, *PWEBAUTHN_GET_CREDENTIALS_OPTIONS; +typedef const WEBAUTHN_GET_CREDENTIALS_OPTIONS *PCWEBAUTHN_GET_CREDENTIALS_OPTIONS; + //+------------------------------------------------------------------------------------------ // PRF values. //------------------------------------------------------------------------------------------- #define WEBAUTHN_CTAP_ONE_HMAC_SECRET_LENGTH 32 +// SALT values below by default are converted into RAW Hmac-Secret values as per PRF extension. +// - SHA-256(UTF8Encode("WebAuthn PRF") || 0x00 || Value) +// +// Set WEBAUTHN_CTAP_HMAC_SECRET_VALUES_FLAG in dwFlags in WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS, +// if caller wants to provide RAW Hmac-Secret SALT values directly. In that case, +// values if provided MUST be of WEBAUTHN_CTAP_ONE_HMAC_SECRET_LENGTH size. + typedef struct _WEBAUTHN_HMAC_SECRET_SALT { // Size of pbFirst. DWORD cbFirst; @@ -545,6 +601,12 @@ typedef const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS *PCWEBAUTHN_AUTHENT #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_6 6 #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_6 +/* + Information about flags. +*/ + +#define WEBAUTHN_AUTHENTICATOR_HMAC_SECRET_VALUES_FLAG 0x00100000 + typedef struct _WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS { // Version of this structure, to allow for modifications in the future. DWORD dwVersion; @@ -565,7 +627,7 @@ typedef struct _WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS { // User Verification Requirement. DWORD dwUserVerificationRequirement; - // Reserved for future Use + // Flags DWORD dwFlags; // @@ -879,6 +941,17 @@ WINAPI WebAuthNCancelCurrentOperation( _In_ const GUID* pCancellationId); +HRESULT +WINAPI +WebAuthNGetPlatformCredentialList( + _In_ PCWEBAUTHN_GET_CREDENTIALS_OPTIONS pGetCredentialsOptions, + _Outptr_result_maybenull_ PWEBAUTHN_CREDENTIAL_DETAILS_LIST *ppCredentialDetailsList); + +void +WINAPI +WebAuthNFreePlatformCredentialList( + _In_ PWEBAUTHN_CREDENTIAL_DETAILS_LIST pCredentialDetailsList); + // // Returns the following Error Names: // L"Success" - S_OK diff --git a/src/winhello.c b/src/winhello.c index 9de6c6c9b98..f9ab6061fd6 100644 --- a/src/winhello.c +++ b/src/winhello.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Yubico AB. All rights reserved. + * Copyright (c) 2021-2022 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. */ @@ -427,6 +427,42 @@ pack_cred_ext(WEBAUTHN_EXTENSIONS *out, const fido_cred_ext_t *in) return 0; } +static int +pack_assert_ext(WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS *out, + const fido_assert_ext_t *in) +{ + WEBAUTHN_HMAC_SECRET_SALT_VALUES *v; + WEBAUTHN_HMAC_SECRET_SALT *s; + + if (in->mask == 0) { + return 0; /* nothing to do */ + } + if (in->mask != FIDO_EXT_HMAC_SECRET) { + fido_log_debug("%s: mask 0x%x", __func__, in->mask); + return -1; + } + if (in->hmac_salt.ptr == NULL || + in->hmac_salt.len != WEBAUTHN_CTAP_ONE_HMAC_SECRET_LENGTH) { + fido_log_debug("%s: salt %p/%zu", __func__, + (const void *)in->hmac_salt.ptr, in->hmac_salt.len); + return -1; + } + if ((v = calloc(1, sizeof(*v))) == NULL || + (s = calloc(1, sizeof(*s))) == NULL) { + free(v); + fido_log_debug("%s: calloc", __func__); + return -1; + } + s->cbFirst = (DWORD)in->hmac_salt.len; + s->pbFirst = in->hmac_salt.ptr; + v->pGlobalHmacSalt = s; + out->pHmacSecretSaltValues = v; + out->dwFlags |= WEBAUTHN_AUTHENTICATOR_HMAC_SECRET_VALUES_FLAG; + out->dwVersion = WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_6; + + return 0; +} + static int unpack_assert_authdata(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) { @@ -499,6 +535,39 @@ unpack_user_id(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) return 0; } +static int +unpack_hmac_secret(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) +{ + if (wa->dwVersion != WEBAUTHN_ASSERTION_VERSION_3) { + fido_log_debug("%s: dwVersion %u", __func__, + (unsigned)wa->dwVersion); + return 0; /* proceed without hmac-secret */ + } + if (wa->pHmacSecret == NULL || + wa->pHmacSecret->cbFirst == 0 || + wa->pHmacSecret->cbFirst > SIZE_MAX || + wa->pHmacSecret->pbFirst == NULL) { + fido_log_debug("%s: hmac-secret absent", __func__); + return 0; /* proceed without hmac-secret */ + } + if (wa->pHmacSecret->cbSecond != 0 || + wa->pHmacSecret->pbSecond != NULL) { + fido_log_debug("%s: 64-byte hmac-secret", __func__); + return 0; /* proceed without hmac-secret */ + } + if (!fido_blob_is_empty(&assert->stmt[0].hmac_secret)) { + fido_log_debug("%s: fido_blob_is_empty", __func__); + return -1; + } + if (fido_blob_set(&assert->stmt[0].hmac_secret, + wa->pHmacSecret->pbFirst, (size_t)wa->pHmacSecret->cbFirst) < 0) { + fido_log_debug("%s: fido_blob_set", __func__); + return -1; + } + + return 0; +} + static int translate_fido_assert(struct winhello_assert *ctx, const fido_assert_t *assert, const char *pin, int ms) @@ -510,11 +579,6 @@ translate_fido_assert(struct winhello_assert *ctx, const fido_assert_t *assert, fido_log_debug("%s: up %d", __func__, assert->up); return FIDO_ERR_UNSUPPORTED_OPTION; } - /* not implemented */ - if (assert->ext.mask) { - fido_log_debug("%s: ext 0x%x", __func__, assert->ext.mask); - return FIDO_ERR_UNSUPPORTED_EXTENSION; - } if ((ctx->rp_id = to_utf16(assert->rp_id)) == NULL) { fido_log_debug("%s: rp_id", __func__); return FIDO_ERR_INTERNAL; @@ -531,6 +595,10 @@ translate_fido_assert(struct winhello_assert *ctx, const fido_assert_t *assert, fido_log_debug("%s: pack_credlist", __func__); return FIDO_ERR_INTERNAL; } + if (pack_assert_ext(opt, &assert->ext) < 0) { + fido_log_debug("%s: pack_assert_ext", __func__); + return FIDO_ERR_UNSUPPORTED_EXTENSION; + } if (set_assert_uv(&opt->dwUserVerificationRequirement, assert->uv, pin) < 0) { fido_log_debug("%s: set_assert_uv", __func__); @@ -570,6 +638,11 @@ translate_winhello_assert(fido_assert_t *assert, const WEBAUTHN_ASSERTION *wa) fido_log_debug("%s: unpack_user_id", __func__); return FIDO_ERR_INTERNAL; } + if (assert->ext.mask & FIDO_EXT_HMAC_SECRET && + unpack_hmac_secret(assert, wa) < 0) { + fido_log_debug("%s: unpack_hmac_secret", __func__); + return FIDO_ERR_INTERNAL; + } return FIDO_OK; } @@ -742,6 +815,9 @@ winhello_assert_free(struct winhello_assert *ctx) free(ctx->rp_id); free(ctx->opt.CredentialList.pCredentials); + if (ctx->opt.pHmacSecretSaltValues != NULL) + free(ctx->opt.pHmacSecretSaltValues->pGlobalHmacSalt); + free(ctx->opt.pHmacSecretSaltValues); free(ctx); } @@ -883,7 +959,7 @@ fido_winhello_get_cbor_info(fido_dev_t *dev, fido_cbor_info_t *ci) const char *v[3] = { "U2F_V2", "FIDO_2_0", "FIDO_2_1_PRE" }; const char *e[2] = { "credProtect", "hmac-secret" }; const char *t[2] = { "nfc", "usb" }; - const char *o[4] = { "rk", "up", "plat", "clientPin" }; + const char *o[4] = { "rk", "up", "uv", "plat" }; (void)dev; diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index f37aa1d87c9..c81397f41fb 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -65,13 +65,6 @@ add_executable(fido2-token ${COMPAT_SOURCES} ) -# set the library to link against -if(BUILD_SHARED_LIBS) - set(_FIDO2_LIBRARY fido2_shared) -else() - set(_FIDO2_LIBRARY fido2) -endif() - target_link_libraries(fido2-cred ${CRYPTO_LIBRARIES} ${_FIDO2_LIBRARY}) target_link_libraries(fido2-assert ${CRYPTO_LIBRARIES} ${_FIDO2_LIBRARY}) target_link_libraries(fido2-token ${CRYPTO_LIBRARIES} ${_FIDO2_LIBRARY}) diff --git a/tools/token.c b/tools/token.c index 3d165623fdb..9124e7b7fd2 100644 --- a/tools/token.c +++ b/tools/token.c @@ -155,6 +155,12 @@ print_maxcredidlen(uint64_t maxcredidlen) printf("maxcredlen: %d\n", (int)maxcredidlen); } +static void +print_maxlargeblob(uint64_t maxlargeblob) +{ + printf("maxlargeblob: %d\n", (int)maxlargeblob); +} + static void print_fwversion(uint64_t fwversion) { @@ -259,6 +265,9 @@ token_info(int argc, char **argv, char *path) /* print maximum length of a credential ID */ print_maxcredidlen(fido_cbor_info_maxcredidlen(ci)); + /* print maximum length of serialized largeBlob array */ + print_maxlargeblob(fido_cbor_info_maxlargeblob(ci)); + /* print firmware version */ print_fwversion(fido_cbor_info_fwversion(ci)); diff --git a/udev/70-u2f.rules b/udev/70-u2f.rules index 0dfc3e276c7..6e1f88bbd04 100644 --- a/udev/70-u2f.rules +++ b/udev/70-u2f.rules @@ -106,6 +106,9 @@ KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct # SatoshiLabs TREZOR by pid.codes KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", TAG+="uaccess", GROUP="plugdev", MODE="0660" +# SoloKeys v2 by pid.codes +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="beee", TAG+="uaccess", GROUP="plugdev", MODE="0660" + # Google Titan U2F by Google Inc. KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5026", TAG+="uaccess", GROUP="plugdev", MODE="0660" diff --git a/udev/fidodevs b/udev/fidodevs index cea60a0be9f..d519acd2ca7 100644 --- a/udev/fidodevs +++ b/udev/fidodevs @@ -72,6 +72,7 @@ product SILICON 0x8acf U2F Zero product PIDCODES 0x5070 SoloKeys SoloHacker product PIDCODES 0x50b0 SoloKeys SoloBoot product PIDCODES 0x53c1 SatoshiLabs TREZOR +product PIDCODES 0xbeee SoloKeys v2 product GOOGLE 0x5026 Google Titan U2F diff --git a/windows/build.ps1 b/windows/build.ps1 index 56302444c80..bd63c7f2109 100644 --- a/windows/build.ps1 +++ b/windows/build.ps1 @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Yubico AB. All rights reserved. +# Copyright (c) 2021-2022 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. @@ -187,17 +187,15 @@ try { & $CMake --build . --config ${Config} --verbose; ExitOnError & $CMake --build . --config ${Config} --target install --verbose; ` ExitOnError - # Patch up zlib's resulting names when built with --config Debug. - if ("${Config}" -eq "Debug") { - if ("${Type}" -eq "Dynamic") { - Copy-Item "${PREFIX}/lib/zlibd.lib" ` - -Destination "${PREFIX}/lib/zlib.lib" -Force - Copy-Item "${PREFIX}/bin/zlibd1.dll" ` - -Destination "${PREFIX}/bin/zlib1.dll" -Force - } else { - Copy-Item "${PREFIX}/lib/zlibstaticd.lib" ` - -Destination "${PREFIX}/lib/zlib.lib" -Force - } + # Patch up zlib's various names. + if ("${Type}" -eq "Dynamic") { + ((Get-ChildItem -Path "${PREFIX}/lib") -Match "zlib[d]?.lib") | + Copy-Item -Destination "${PREFIX}/lib/zlib1.lib" -Force + ((Get-ChildItem -Path "${PREFIX}/bin") -Match "zlibd1.dll") | + Copy-Item -Destination "${PREFIX}/bin/zlib1.dll" -Force + } else { + ((Get-ChildItem -Path "${PREFIX}/lib") -Match "zlibstatic[d]?.lib") | + Copy-item -Destination "${PREFIX}/lib/zlib1.lib" -Force } } catch { throw "Failed to build zlib" @@ -225,11 +223,13 @@ try { -DCMAKE_INSTALL_PREFIX="${PREFIX}" "${CMAKE_SYSTEM_VERSION}"; ` ExitOnError & $CMake --build . --config ${Config} --verbose; ExitOnError + & $CMake --build . --config ${Config} --target regress --verbose; ` + ExitOnError & $CMake --build . --config ${Config} --target install --verbose; ` ExitOnError # Copy DLLs. if ("${SHARED}" -eq "ON") { - "cbor.dll", "crypto-47.dll", "zlib1.dll" | ` + "cbor.dll", "crypto-49.dll", "zlib1.dll" | ` %{ Copy-Item "${PREFIX}\bin\$_" ` -Destination "examples\${Config}" } } diff --git a/windows/const.ps1 b/windows/const.ps1 index 4aac8bb2853..8acc2b2e829 100644 --- a/windows/const.ps1 +++ b/windows/const.ps1 @@ -6,7 +6,7 @@ New-Variable -Name 'LIBRESSL_URL' ` -Value 'https://fastly.cdn.openbsd.org/pub/OpenBSD/LibreSSL' ` -Option Constant -New-Variable -Name 'LIBRESSL' -Value 'libressl-3.4.2' -Option Constant +New-Variable -Name 'LIBRESSL' -Value 'libressl-3.5.2' -Option Constant # libcbor coordinates. New-Variable -Name 'LIBCBOR' -Value 'libcbor-0.9.0' -Option Constant @@ -15,8 +15,8 @@ New-Variable -Name 'LIBCBOR_GIT' -Value 'https://github.com/pjk/libcbor' ` -Option Constant # zlib coordinates. -New-Variable -Name 'ZLIB' -Value 'zlib-1.2.11' -Option Constant -New-Variable -Name 'ZLIB_BRANCH' -Value 'v1.2.11' -Option Constant +New-Variable -Name 'ZLIB' -Value 'zlib-1.2.12' -Option Constant +New-Variable -Name 'ZLIB_BRANCH' -Value 'v1.2.12' -Option Constant New-Variable -Name 'ZLIB_GIT' -Value 'https://github.com/madler/zlib' ` -Option Constant diff --git a/windows/cygwin.ps1 b/windows/cygwin.ps1 index aada60b6f06..6e602b6d947 100755 --- a/windows/cygwin.ps1 +++ b/windows/cygwin.ps1 @@ -66,3 +66,4 @@ Start-Process "${Cygwin}\${Setup}" -Wait -NoNewWindow ` $Env:PATH = "${Root}\bin\;" + $Env:PATH cmake "-DCMAKE_BUILD_TYPE=${Config}" -B "build-${Config}" make -C "build-${Config}" +make -C "build-${Config}" regress diff --git a/windows/release.ps1 b/windows/release.ps1 index 9221bcaa341..6f3f4e9600d 100644 --- a/windows/release.ps1 +++ b/windows/release.ps1 @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Yubico AB. All rights reserved. +# Copyright (c) 2021-2022 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. @@ -7,7 +7,7 @@ $Architectures = @('x64', 'Win32', 'ARM64', 'ARM') $InstallPrefixes = @('Win64', 'Win32', 'ARM64', 'ARM') $Types = @('dynamic', 'static') $Config = 'Release' -$LibCrypto = '47' +$LibCrypto = '49' $SDK = '143' . "$PSScriptRoot\const.ps1" @@ -34,7 +34,7 @@ Function Package-Dynamic(${SRC}, ${DEST}) { Copy-Item "${SRC}\bin\cbor.dll" "${DEST}" Copy-Item "${SRC}\lib\cbor.lib" "${DEST}" Copy-Item "${SRC}\bin\zlib1.dll" "${DEST}" - Copy-Item "${SRC}\lib\zlib.lib" "${DEST}" + Copy-Item "${SRC}\lib\zlib1.lib" "${DEST}" Copy-Item "${SRC}\bin\crypto-${LibCrypto}.dll" "${DEST}" Copy-Item "${SRC}\lib\crypto-${LibCrypto}.lib" "${DEST}" Copy-Item "${SRC}\bin\fido2.dll" "${DEST}" @@ -43,7 +43,7 @@ Function Package-Dynamic(${SRC}, ${DEST}) { Function Package-Static(${SRC}, ${DEST}) { Copy-Item "${SRC}/lib/cbor.lib" "${DEST}" - Copy-Item "${SRC}/lib/zlib.lib" "${DEST}" + Copy-Item "${SRC}/lib/zlib1.lib" "${DEST}" Copy-Item "${SRC}/lib/crypto-${LibCrypto}.lib" "${DEST}" Copy-Item "${SRC}/lib/fido2_static.lib" "${DEST}/fido2.lib" } @@ -54,19 +54,19 @@ Function Package-PDBs(${SRC}, ${DEST}) { Copy-Item "${SRC}\${LIBCBOR}\src\cbor.dir\${Config}\vc${SDK}.pdb" ` "${DEST}\cbor.pdb" Copy-Item "${SRC}\${ZLIB}\zlib.dir\${Config}\vc${SDK}.pdb" ` - "${DEST}\zlib.pdb" + "${DEST}\zlib1.pdb" Copy-Item "${SRC}\src\fido2_shared.dir\${Config}\vc${SDK}.pdb" ` "${DEST}\fido2.pdb" } Function Package-StaticPDBs(${SRC}, ${DEST}) { - Copy-Item "${SRC}\${LIBRESSL}\crypto\Release\crypto-${LibCrypto}.pdb" ` + Copy-Item "${SRC}\${LIBRESSL}\crypto\crypto_obj.dir\${Config}\crypto_obj.pdb" ` "${DEST}\crypto-${LibCrypto}.pdb" - Copy-Item "${SRC}\${LIBCBOR}\src\Release\cbor.pdb" ` + Copy-Item "${SRC}\${LIBCBOR}\src\${Config}\cbor.pdb" ` "${DEST}\cbor.pdb" - Copy-Item "${SRC}\${ZLIB}\Release\zlibstatic.pdb" ` - "${DEST}\zlib.pdb" - Copy-Item "${SRC}\src\Release\fido2_static.pdb" ` + Copy-Item "${SRC}\${ZLIB}\${Config}\zlibstatic.pdb" ` + "${DEST}\zlib1.pdb" + Copy-Item "${SRC}\src\${Config}\fido2_static.pdb" ` "${DEST}\fido2.pdb" }

n+2JC~>VsMOt1)ZCOlW3O#~bZ+1ZYT#ljw7)0| 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 g3zur|EvdgSAt-lr1-cdu#M5?N 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 z zy5sXdEynyyJWhWl_Io<-jq*CikxZ)y%tu{*^7r> zn^DxBZ#iVc%~&R>XYviV7%rGv&LY@)Z72aE2%&sD2)h|+c1BCuW`(gblmv?n$YxbR zzW%u}d-Ivd2etomWLWVeu)os{tTx}CkKpcLi#QM4LbMFrxRV5gZq~X-gjXJBwr}l`I%lv zW}HH9JDxu2(=Xhe{l|w^Sh~#`M+s__4+AyBC^&WAH8H;q^`2Q+c3lPDOAdFR!96iR z&tN<~@m-;UwvKE*$vro+u5L0lt6Wh7Jr}xdW;r@%GkuU=GK|Ct$Am?NzOkCVPb*nc zCrZ`jJd(vdm0m!e>wpRR`YUt>hQpW~TPXKPnCQ{t4fT2N14MC^#}#0Z`<*Jt!;Qw7 zG~krAs!Vq&*dW?4Dej`}_+=H9evV((Wb4|* zt*=juRWhQ=<^0z2vt2iC&pn%m5qy^%?mE4kTT1kccDyN{96~m|xgBnOpgrB6iDn`( zo&6W@+mlh>ZYA=^!P#Ua8@Zv9(iQ=KzCAf?nRsfac*F#`A)&GsYJ>R4%X*d9w_*lA z@&n|t5Do=7Gl1g;@))#tOhSB_FuqYPOD^bEsClRyLO;Fv8@xN&hx*RMK9;n{UN4Z<}9!tA38L!_vUxFV^S`LdkM83>Q_32Sy zGLdi>cy}@Ftag-CIEka)$PG=GpQ=57U_)a4ESH%7TWtS*)c$+4tCZMLmGS1;L)d~U zUBEwx&(aMz1MUF8F~y3WC=d^yx~ttcrX8V6*J-`uaG#x|z&ApR8&xJbX^T zNsVhrsx<6CL`LgJM_WDHFV42eN@leA)L1nQ5`@)_3XKkMC*|JFgxSJo&jz(^{It^{ zTnh`yToqSn>&b^j(+&%_e-LWw=W(nAaFoo-?;9HXc%PcSk^h@GcL%H5MAmeGY4pW%L2jr%-=uz!Q>CH~6^p<|3g-}fQ(V{{FtUTI*BI-to` zr9>BGPB`=*NJN&6-<7J4}GhCaL zCb&br*MOPUbujXJ!dt{=iv3$(DW9rsk^Z1(g%P8$CLz(9cw-bv`ki8Jgijedxh1?Q zZu4nxf@Tzkp?INBcHrPts>x?HJOcSS2g6W;(5!-Z`odMNfC9XF%fv)Jzk)CS#m86yapJC1PKo zVH&LfKUivpuj9B>;xFs5(~z&Vjse%MfV0EiPmFdQr)65K5HwTz*4B;L&W)L~Q*-=i z*RVU3K^#3rAAN*PioVU-b!B3;U?Y;U3p(7Jj$opI6U4TA3U$!aQ15VdL6K1yB(D|1 zTU1&xq&&!=urk>GC!-0{lV^&n03THvNl&;FTvk7-PCTj}2&^Pd9wdWJ0~N&M>Ts5o ziYA1xp8=|%^inPxz0*NmbaNf_h7SZk>qeq8ezImOL$TmM9?QtC-D&;U=?HHWaA;V) z?A~|h+7~uhmx{Ki17@NPhg!2DT*MZNI|avnxiPbvF=IF4s|^$(hY?+NB=~$Z&!Dp6 z;;h#k|1Qt|3Jp_Ozn;WzZNy*JWwA7eZuOcj%ENyxjjSO!i|%~itK_Xyf4+b>`6EZ5 zFvz4dGMJ$Fw?pM@u{)6(0o*4B^J4iRwNf+b1-N%elb!`Cm0*!U{axoy(q}=c?rcAB z!okAUON(DyyXVP|--|8JDz~=p!t_{>S<|8$HIMBFR*v4pmkNCJTN2vvdAs{2zPsmE zW8Kr43;9wWXYj+9@8=;?ogNaT!(FAUk9(WXifLO{l5q^I$hhgW^15hh`MHjcG4sza zp3Yg!syR(TW9pLZA84kb76b}c;y7VyY{(Vq(S=`p_Bdl*i5)3wtE(XYEFZ_N+UmU) zddHs_S6h91`F8K@uq<$lxK?Urr_uOdu|(x32R~=Dr}AF^-!*Cq z?DHEqjj~8Z5{?3Iy-i4TE^dQFSuc%-WJIjC`*{I5$}oPQISWcW^ffvd8GsxNrbRb9 zdUK@w{FvS1r^-*Ye)^k=zZYwI!rcD?E!!M@96-Q5d>bd=kfTKPATBeqiV0tmP%;tuf;Mm4#gm%vPdIh;n^o8mhe9OUX$oIAv1Jx z_G*B;(m+^t*?F~3M+X)QVHbX+Aq%5BbgRJ3R3WILG_pUPcuvrlKR&1?19y{L{?D-E zPD+%9k1u#bz1M-6r7O+3=5%#`WJzF${OwD6(Sv@z#9k=gXHSD@h%?rfz>dLNp^WHD z15}%whUHSxQ*}UN_3IE?mjSu~yOdkU09cwMpmC*cgPE?6Y1yIW?q6h6ADXUV$DoG& z(%vg|$+0nxsk0{m3CG*j#&YY_UVd?TjhZO59n)@d%O1YcAZ8A(cKbhpAr6djLaH4Y^Hq5)USOxrRP z3;n_v!d!cD`EAQaHhRzd)y2E&r%*ORo)V51-;6}v+V!}V0%+M)W4nX7=rA1{v}h3F z%#Ylj9lhh=RV=6EP8_TO*H=l5l<^+Uq4npR90Vj~92|lE^q2S*2OqDzoFmSsGB|$? zz+bj^I!;eNc z05A5&Iw?P(kCXULYjcTg?@aiV;mOL)>7YY>nh+L2p9po~OHMoQ;=5VfIDyJMoUv8GXzSA1hwJ`8V2;5Btcj}Nox}raQ zB)C3&C>E*KF8UYFzVplJVo#E{h0`G__9p^~Q|~UWia|Mav^y`jS`9$UIX9jv!Qu)2 z5s0O13Ho_8p;QoAJvUkobew*~Oa8i;XFj%F?q0xCcEL04ktMse5^MDmnnA7OA!kmb z5|UURB~D2<-JOz9pXWFHR&rOA9!dPfniE0pl*Y#Hz=rdhXJ#BW@K(5IiM!_lH;;+E zmwa4H8g0t^TIM9@>K-|%gj)Ya1}7w15l^c8gxP6lU6rT6s8Q4?Q{GoRCz%l6dSUx= z>Cz#fXIJjH9+mIlc#QacDs}5unm{_P*+(Gbf^Okl!L&`0xJ*}XZE>Tev3$)h8`XUt zwY09TerJ8=(_x!Gdv4rFx*wNubIoT+aO2YzeNK)pVnH*DG8lh$nc?| zEEIDkytr>Xl5}T(sN$f!SPxn8$6xc~5Q`dT%fxKv0Hw9BjHK0eq?&w6nk#R&1FdVC zY*bfx)GR&~z{*UO^;yjU^6djr5e}sTm)saVYr7MlKT?y@*^?&nDM_xr*pp+&1@U9` zW-}rG~j1+zt2%`+EjTiDa2%H z!PKs~f(@H0_q&fg6#~~GR^^p>8-LE2mA85qZCLbSP8l5~h$WdDj{|zR~GvKB<(G?q73#((5>spkN zIGU!j@-Z(C^2niqT$Ej9yr@sof6nLLqZT##mW%zEle~{_`y`ZQ{O}w0;Q#P2d1h5? zUlvbx@G6_XQ9%qXkHV(>44!uj5fj3Kp^653-dwrPy$!$Q>Gc#u**hacKhC3!SPfqW z%=v==$|FypUl#i9J{eWv`Qd?7To-NNy$$U_hD{AU2!)Ewk2F?9iRU4lioK6KA0=J| z@8ge`2nEir@}P}5fP4Mx4zAsaO#_r?W|4a%!iB$wz4iTt^rOtXzZ95?M>fs-f8r7367`gqKP~xzj@$X1W`sP!~tsthDLRZ`fXd@-!fIK z#@dQG99fb55>-J6$#qN1E4 z)N%Urjc()|^}sP0JHs8i4%AxcUY<~JQi$_;BRXP3OC!U?TQ@~A0SHMGK$Op+VQ~%> zUDpM))gWYOiRwjBi#!)?*~yqtH2` zB=Wne{+=-TJpp%RX*NQpu)G?7&aDtB#*bK#9TntIgKIP%Q0sBe<%5Ot(*ebVA1`F% zRwy84&v}OI=KppXXE=1i`w098WFsDlC+BFVeb`Y9fMXRH$qk^5r@(DHFh`sWgtsz7 zF?i*rDt1Jf=EsxRdK0#4XSFssI-Bf zV;Th^-!>+(Q@C}n1r`P&=2b|)7oMj8-rmlGBYERrOHp5Lz$M$geE!rF-IP*yfc?|< z;pzy@xY>R3$iCx;^ zpyu)@xg5s5-Jc1@;1~Ti{E-ZkACG$-dm?bc(u_}EKHu6SN9q~6L1j>1Av_pN zhNL`6T}x8bQZ|0s-V={=JB{gS9ez{@`e4p8cU}i-9yIx}$<98hed-RcZ;isrBhfO= zB?Iz;TDIm*{T18M#KO*^5x4Ge)RMm-Ft^3=1vo0v6+ z1bb3ZQGje)tQU0@R#ckdVez zaT;2#y88dn^=9G=a7yg=;?i0}jz=NE6o_U0n5w3X(qT{>iCMqiCNR9-IJQOOZ(?Pl z?6LjRIUY8`oU$NHZb`1#8JEt$tOM6pqbU&z!{KS=^e3=WD+>AefK$Uuw#un5iPI0v znfoHcqi*x=ldJyC5A~~x;blj5htO~x5p-*xkY?HgsvvaX9Qdnz0`5 zE?P$9-VP!uLLFj#dJraOd4xrd#8Blqv%!Z1aUk|)&>$F(bJmFfF%Zk03c4|qZXtvy z9zgVKLzKVlczazB^&!hgTqbUr;2GZW5&WTVnA=|%!@n}bD%NtxE1JF^3rw-7P)-+N zeB*@>7{Mz?81Sq}B?L)=ZM8$}`f=KN@5gne^#ZB4Oc|>iXMO zTUVX$=0Lxk#bu&IQpKA_IO?G6dm(M)4;0`C7PqKCClGGZmznz~{Lbrn0|qGY)b3P- zRQn72Ta|;eGadtD6(+V8qqHV8pQ(}BLNt*JAZ81ejN)ZNBu$O7QLT~G# zlbrn?fNBvK!X^3E)(L{TnB4a=X3B`u)b`HlLL zLi3=~@?kX(@Tq&?Fn-avO5N*`_@`Lz_y{MCMPMYCByBXI-lI*cn-dlOxDbg+9%ho) zuE;(of6hEXUwaDt`Y5(@c?4;s?o=uc>(U=8yKrNUhVwd8YE{P zXIM7{z6O@$R_4HP=pNqC3lufs0t8jQN|Pfhpae4DA*R0x`(j|%vENVf4i2WK>iW^> ztT=Av-rW7BX2^u@c^8H+IiGf^g7lG4JF1E2;BWa0u8G2J)aaqotR z(I6Hi(gca$b8t*1i6W4&ph@~vReMBNNe#m=$cxWkMzkC-Q9>{S#TZdg&erJN?9j}W z&&r1~CoN+b9{YMLiA-ocum`AE8zF3nob9g zVS@vS$Yvu$k%gNlwSxtT$f_f_VueK}Ifw=c4f&HB3G>juD8A8capjb4W{rG6F|sCr zy|r<{z3m_9*Ti~See%jMS(}epls4W{>`r|cOag2lJU9fpXfxV#7*ekj(U#4|M-VK5 z=HQvl=yk)i+F@@)Qro<(GE_{ztukrUm_Ucx?Q>((MU>Tc7Yx5>ypqqt`bx!2^IYn0J;O609Mth&nS)*k_8$_{&+E5IPTCdnq)u7U$y z#0DdVLyB<48nAH<*k=#R0kAQ)cptgN>2kGOf2tpU4KPvW3;)=-mAO$o+QPsloy}UH zlpe`9vvqdj(aw=M!my>{I>FOy{{h0fjG}l~{q#lGVb8$D4$th1j|Y4n}7@&C^R4j7P>KpAG|) zW_RVvv2Bb3_QCkE@hTO>cMeQXN%a22+KqFQZd>l9q68*QAQ3lOF|hH)vJy-4rI@w^ zXwPD)Bw8|dH16P|z9dcjrs{yC3Ypsi9Dzanu&gUtDx#`35{(!yI*jj03|G<{zlhy% zrekfwGu30n=r9VB7=oo+1RNAOZvl`l}}D`10`1Yd}Ga8c)*mGJY15MZBJ69AQ2 z0sK+LzYQ$eBucAC8zuRUwjg%2-n#Unp#<4a?r~e|g$dhTObomkfrrg#f!7f(# z7p}u5OtCXbW=)e56qN{_6Z|Wi4xxi?Veiynq9?~O%Rciwsc9O#nk?mGMzFaz-#Kwqm+0 zCyxB2{cb}!uur22pkfoq_}0owG?5iYOnu{Ulw0w}Y38U475@=GIYa|9O+T4Ba-P% zc$buM{?fLM=Dn8EnqCdw$5Tu(IK4)f#gKAr>NPD+Lx@=7agnC6^O5*Jknk$y+nznKD zie%<%V+GVCWe#>kTZQ+o)&-o!k#a|HL9~6u^_#q2ZIg9P+2WXZdVx`Pn2eB~(mvcI zzsLTpB(lLt-^dvXIfIC2|38)X(s3Q z7$-4zQy_^Rt)(WpLf>HQgDe-ZU=tk03bEUKfKSLiErv@H!!M~>6&$Q|vj!bt--jm2 z`U-{74m6ZCNkThXvgW9N;%H9bKLO28r>W6UG$aTsXtJY7(eV`1M8hXJh}oI~30H`} z@Ob+71tuZ)jts#S_gyJ~RJaa^a%9B-O_GBZut1dJ%ZDkBW#Oi6$`!EBe1L1nB`t<$ z62q?4FE?YFurOg)ou7`WYoofBWoJ`KiIV%(@iKEtGCqc%_s zc1^WM+(Rqqn1lpygam+wio1iR-T_tk0aY=E@L8u;5$s0_3CMp zUKKuGRm?4v*p=_6jXg47BswQ-Jyk6A{m>05ppPM6bkwFJ14eU6CKF^)hyX04WyF9Q zgBou&0&g|2zvYXAsQSPExNTD^@EL72Bvmqmd@D6fgG5k(L;zr5s{MWXEB2amL`+KYEolMQo)9LNs#t2!^yBZ1J*m-Z z1B`Jbf?gzoZcZ^Yn4*Y4Ac{cHoh+KE-9bnU&jJU}V)kbGaFm2V_brR)TNX1H)mP}- z6j9_vQK@=*)iSL*oc-hgQ0mpLk{`LQmZ^icG~&}c9{Y~l{VqYxEC#z7|q^RsYL zYQj-!4*a3E4Bk1gU_~RKMkC0ir-8*37m7T|MU~?3s;2?R~6$4?Mwq$`<_JYJ)n1O zIcFm)q7sOr5=aV08b3Xb4O*U1lEC5+(1Niw$u-}wG+=86VrycDQLkzZ9-E<>O$E6CrKJsGz<@DiB9XeSKfN^OI$%#0)%s4{`@`s-@fu^wdbP? z!!j3R^WmrzmThqd8Jl^is?UL)H4GF6;H=3$dz^PS4Mu~S1 zE^6oV6_Ew(EP8`Zwq$<@39N)@X%5sBon{;wN6~D%y|Y!r(TI6)6y#LXgj3TTh%91N z8dh8LA{DNpY)e^j=@88P2b^e$G)<6V!`cdbD;;!JjBr{UY)v&&R4Y^Lz>{hmhjinp zT7G2|pDCe8O(055potJA8@s;9bS2(vh-wmt&hmBOjj75~VPD+e#%*@QBWYwUe%gV4 zilN>dHTWDgoV{2S>q4hl)UJxi6{*J)R?`H_HG$_n>A`16wQ&{Uhsz0qF&X3$8Duq) zqA<5&z1n_Rzo5ZXHTYCDoZ{Gr0HX#D%|H%KY(JXS!HJf@j$UO|cxBl53GPhGU6VDz zser?Q-3?L1b+?==(N|`!2LtiBIGdpqZHz!IO z`SmlVD&OwZ;S{J#VWvSGeQ`@XaRSdVDY%Q0u4>*$!QB`o#Gmxy$5%naigbiJrNils6q2AW+mFK5g#rK z`)9S`XSH!sS|0)`IAgTnVzdTyYs5B58|}3M?X`eSwGKXCbADvoZ-V?mZlA~fKm&@} z@QT_v=1rdU@pXyJ_3_ICEWHCPk&N0f9F+>h^%;LVGXfJc0svl&q4bmT^8Uhw(R1)H z2F81J)o;<@Dj0U*vg7K~*DCL9Xvjr=%>XYh@i7bBF^ie((vQ)gEAFCubWB$QI9CDy z_-kM*<)Lz7J9^VVX?XcPdhAz%z^?>AgKCA9j-UPDUo3&YSl-H85d0^ZX)aQuQA+3{ zi|R^Y_M5%`3*A5a*lqZi^kpS2c`eUWv>HydIuia%h?U~04Z*ez0YK%$$8Ym(CVs~b zy$>!oN2~Eap$uI%y*9X*b+jpcgD?(UTWTu;;K!I%20i0N9am@cPZ`T!nK)~-;A*t6 zP1(F^c+Eqi^`+n&|1_gadWu>SNOHvx1^3{|X)6Q;)gT1c(4qhthI=OhmnT?yCs-mK z2p=mw24w@z0fky{g<9BXwKs=9CdE$6QOb2xTcg2EX^*4z7t*`U2^!1|22!#6g6lAm zMb%J>u_{KNDTfSxi6yd~uv`4$X|Ck{;nm6A`?pZVT=f{_{fzf#hg5+Tgefg-FZPF+ zrbqgV@56*T@Ps;IE$z|f5&|~M8?@`X=UsALkghHzka?%6&YL;2BSR)9VdF|hZYA$u#shc=a^(wJH8 zjFQ?qh1IJMUIlsHM7(wEHU@@eLxUXc0W#J9_w1_p+Tx%%s8V%&?~Hhf`=!ThTa5cM^wqb@9Ltg85J>Yem zvGl6(c|v&qU6NsHbtkGg{Zox?q2r2eiV7P;IULPDb^PSFLSg53_Q_=#IshRFbzK?Q$q)LutY0TB! zsmL8e6xyO6_MnwPOOK_xDt zX;@$|sXjqyb=SEA)F*c>fI9SPPDI?v5rq)J31}yf&W1YeJos4o7giH(#?C057djCsv&8N0WS{x!0ixpO6f-s?x>>^HT6Te71!EsSZ_zh_>8ut|7Pw3m{XY6Wb)q&u=#C_f(%C$$u9tqKya7%zv!@ zxa&Sv`g)<%RpAekdxmt*b6n_#Y%l@4I|sZ$hBZs8{T_nf$-dPQz2R3R#VT`FZ|`Ie z8~a51sJGTuYP)zu=B>jI?CczH0~spnBohDB`;eZrA?^t0mZMd1IevG zxYBATe@eGcd7~q>b|Tq<413dS62C@Z`MdTVIe|uZATAW_dMn-G&m;Drs5OX72bYyy!7k+Bsw;1Y$ht6ZfkC+XWVU(WS@`&rq*K$-rLvPXgXM3x3|5r_sb)s0 z*oHCFJpvnjUZNb|GZriUEKb*Z8X1xd9fDg0XIHu?Kuu0XMDDuZ`~ zRDRxgBlw^wW=JQvh}U!g)o^I{)$aSqKz%|YCj{4Y9)u&ki9F=3p`EkeGR_tDVz^gM3?iu z=Uw5wl~?&dqlq}fO~r|L!guo|#(>boP9z!-qL}QgxM?y&cg4wU%=fit)n?!uQV<#s zgiEY=;urgmW3UcP=@czyTX$2;8o&V=lFw*+`yQc!M&Cg?pQxP^90kWNPR?_c%J-~a zoS_{2`6V_;#|7*&VupkizyRk*ZC9e8LUwowLn2Om1OFN^oV9N(FU}lNe_z*Mi!I2m zZ(9N$&VOD$yIsE{d&24=@AeLOHQp(waaWUqBuCGKDrL_M|75ESB6GZ4e%|RcLxsf= zI53SKD?1A-#26yc=5?~}jh&C#1>kSDfxPJGwMRcmZRxfH<`!f-ch8a)uFWh0N8W~LG>?tn0hSRD)8B20IB|m{O zTjne+GTvsZIzW=w=Ru=N`t8SHu&f!RlfJB$r^NaLXjB{0X~%G{e4z451V{@LnbSMS zT3y@tZ*@sOa+`iwmDsP4`K6XnNzQXuH_Vq5S-rfbXmDK!SHD6%_neEf71SP2oxX zTLiv(0#iv|jQE$wcy;GnEw66vGn&+SI;P6u&}2`kAJ?Hz=POsaELvqR5k0G!of(eG z@lSV#H>&E8q>_1adHE*dv%?+Y$Jd9eo2lmvjwf@eq)HiDjVT5$d*(%t;n$0Zj6wbq zFBH9U%0^{jq7!_crcV?di5DY2krL215fJ45!jiE5dF3Wpl~1+ZzaxTqiM|@Iqbhwm z`UD;EfOPnlyBFz~QanZo5S}t5!Y!DitA5ulp+ib7@TM1o8sN?oRtc6l?B;m0PmXp) z5L@dmOF%1SAQ}m^BKGR;mrBFriX|FTQi9(C=5VYbIMeg4@Jjk5gtYDRbWW9r2pPYB z_Ro|A2xrAMk9PL$$Zw`lAuLLGRLY#ICmgd6qF$mnG`HZzZmK7IFQuH*hq>1>EXFu= zWU1&jQ5S;KIB$-p5G4xPGO_#nus^z%@xDG@r38x%q98n*;jQQwwHVgAt$CPUMP zbeNRha4cVKX>^qUoj zyK$|vG~x{vGA3$M$b?a!Bp0Vwz{+|1*VwuAlJVZ5rX4qJ@q~K{^adZc|XNq=k23 zj=RYuyzXnYj^Y~nxySpu`7eukG~-ysVN-0YQyM@jMQz@kR4S*Myhu=Zv&5fg$#GVhuswkxtS2wg43@bnkI{4o1H zuue6>ppbHofD8JE*7E`bT0nU$CR|3@B8OHT@q^y3!tWcA&ckvs)jZwjis73O0gGX? z#}yLck`Ql6RH%WQ>LVLMm8h_KkT*NQ$aQr3bIZy4T+T@$`8?gnis94{0pwT5g;(k9 z3K>4NDGNON!X{H?diRQ9U_^VGebUray;bYvnat}I7606mN^{@+uwDDpolGSC=Cf8d zbKd$UU)bnm>8T2xoZQ1k9`IX;4<7hwT-Sc2Oas!Gp@h1rNZ>--jXm68%U-%4W(+P8=R+$u58nY zu8hFfNMI_9#dlGH!%%B-m0z5||&GK6$2 zm)6EICTT%%s^?uB<#%U*FQD{|HryBA&XI?Z%hLA2{_k>iu))D%@1EE0#uJqan?Xt` zQ`C3!Pk-nb8gz-?+-KhnKkwZM$~As)J>=iqc)+q50h6NXLI6PwFMtaVI{(Yv=NY<3 zu8`TX+W6bUT`&8aH1FRZpx__LBAf`ny1EG(nb@GRUmzVNrMKBC^l9FbEKq}z+0{~a z`KJ1g8m6fVj!Lt!VaEITyP0MaqS;Ji|ri-Qk_ zB^E&u&=g@W&?b8SN}@>PWDn_SHAqtNy!l7@Y&Yp&@gpv{kIEjBIhdStI3@G0V)9>? ze%$cs;xU~C76{MN`M|t0V!-12a|8bujZ3Xn4#p45bY*jNiseLa<|_05#9VH>;5>B5xRuKsDNlu+*KA3y zP+Cq)1eVLdsZ1gNi5&C1aQ)mqS|1+b>!iAg;)M~|5rdycsj;)dO6ZIc=oO2fm#46^ zB90M=7VVj9L~S(O3fD-;4?l8x6S;ES0j5~t892J~_2wRxXhV=ayNO&q22|#{>%*70 zdrO|(7|bij)QW=M4`9L53JZ&Sd$X5VonXNS3kxIocn9@T+7xn{l9M2_Lf^K~6u_%%0JXXo@iBZhU8~d%Num7oP5Cvh55Jy;; zai&?1Ss~^7mxt?@i9n{f3 z{=%kn8lzB7Ryqed7Vi>nBSY#^;I<1<#TRst#9Nwi;?|9^7gr;lV=AkR8QnNL+F)HS zJ?ghCWOA5|q^sQ9j-Ow(Cz+K7%yojhasaF^*SXRig0O}aNl{Mu@GT&G=xenYWZsOI z3ND-Cj)hFt^*Cbn@da^0j1J_QbP1J$34jfuO;+=D--d+Hy#;un_)`vB1R~-mQ^;8!0rjTdtieZJgv<{m@-zZJjg*X6t z46Ry31(eKLn$lqEZ%#v4ee>pLX>ooRaGfi$Mg`iuEWXFj`jY~(4wa>jgvyncb=f0n z+<6eL+YYb3HN6|%w`0L?9n+b$APP6S;$y+$j@W-KTN3-X32;pEidgmZh-v4fsiFa+ z$v>7&!z?>lKNPoY-C`Mtt07v_n;M+7E7Xc4>tL;O&5TK1(ORN$0JgMGS_j!>b^