## Coverage Report

#### Created: 2025-03-01 02:43

next uncovered line (L), next uncovered region (R), next uncovered branch (B)

    /libfido2/src/reset.c

    Line
    Count
    Source
    1
    /*
    2
     * Copyright (c) 2018 Yubico AB. All rights reserved.
    3
     * Use of this source code is governed by a BSD-style
    4
     * license that can be found in the LICENSE file.
    5
     * SPDX-License-Identifier: BSD-2-Clause
    6
     */
    7
    8
    #include "fido.h"
    9
    10
    static int
    11
    fido_dev_reset_tx(fido_dev_t *dev, int *ms)
    12
    5.41k
    {
    13
    5.41k
            const unsigned char cbor[] = { CTAP_CBOR_RESET };
    14
    15
    5.41k
            if (fido_tx(dev, CTAP_CMD_CBOR, cbor, sizeof(cbor), ms) < 0) {
    16
    24
                    fido_log_debug("%s: fido_tx", __func__);
    17
    24
                    return (FIDO_ERR_TX);
    18
    24
            }
    19
    20
    5.39k
            return (FIDO_OK);
    21
    5.41k
    }
    22
    23
    static int
    24
    fido_dev_reset_wait(fido_dev_t *dev, int *ms)
    25
    5.41k
    {
    26
    5.41k
            int r;
    27
    28
    5.41k
            if ((r = fido_dev_reset_tx(dev, ms)) != FIDO_OK ||
    29
    5.41k
                (r = fido_rx_cbor_status(dev, ms)) != FIDO_OK)
    30
    5.22k
                    return (r);
    31
    32
    197
            if (dev->flags & FIDO_DEV_PIN_SET) {
    33
    116
                    dev->flags &= ~FIDO_DEV_PIN_SET;
    34
    116
                    dev->flags |= FIDO_DEV_PIN_UNSET;
    35
    116
            }
    36
    37
    197
            return (FIDO_OK);
    38
    5.41k
    }
    39
    40
    int
    41
    fido_dev_reset(fido_dev_t *dev)
    42
    5.41k
    {
    43
    5.41k
            int ms = dev->timeout_ms;
    44
    45
    5.41k
            return (fido_dev_reset_wait(dev, &ms));
    46
    5.41k
    }