Coverage Report

Created: 2024-10-21 15:10

/root/bitcoin/src/test/fuzz/secp256k1_ecdsa_signature_parse_der_lax.cpp
Line
Count
Source (jump to first uncovered line)
1
// Copyright (c) 2020 The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#include <key.h>
6
#include <secp256k1.h>
7
#include <test/fuzz/FuzzedDataProvider.h>
8
#include <test/fuzz/fuzz.h>
9
#include <test/fuzz/util.h>
10
11
#include <cstdint>
12
#include <vector>
13
14
bool SigHasLowR(const secp256k1_ecdsa_signature* sig);
15
int ecdsa_signature_parse_der_lax(secp256k1_ecdsa_signature* sig, const unsigned char* input, size_t inputlen);
16
17
FUZZ_TARGET(secp256k1_ecdsa_signature_parse_der_lax)
18
0
{
19
0
    FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()};
20
0
    const std::vector<uint8_t> signature_bytes = ConsumeRandomLengthByteVector(fuzzed_data_provider);
21
0
    if (signature_bytes.data() == nullptr) {
22
0
        return;
23
0
    }
24
0
    secp256k1_ecdsa_signature sig_der_lax;
25
0
    const bool parsed_der_lax = ecdsa_signature_parse_der_lax(&sig_der_lax, signature_bytes.data(), signature_bytes.size()) == 1;
26
0
    if (parsed_der_lax) {
27
0
        ECC_Context ecc_context{};
28
0
        (void)SigHasLowR(&sig_der_lax);
29
0
    }
30
0
}