![]() |
Bitcoin Core 30.99.0
P2P Digital Currency
|
#include <array>#include <cinttypes>#include <cstddef>#include <limits>#include <optional>#include <span>#include <string>#include <string_view>Go to the source code of this file.
Classes | |
| class | MockedDescriptorConverter |
| Converts a mocked descriptor string to a valid one. More... | |
Functions | |
| bool | HasDeepDerivPath (std::span< const uint8_t > buff, int max_depth=MAX_DEPTH) |
| Whether the buffer, if it represents a valid descriptor, contains a derivation path deeper than a given maximum depth. More... | |
| bool | HasTooManySubFrag (std::span< const uint8_t > buff, int max_subs=MAX_SUBS, size_t max_nested_subs=MAX_NESTED_SUBS) |
| Whether the buffer, if it represents a valid descriptor, contains a fragment with more sub-fragments than the given maximum. More... | |
| bool | HasTooManyWrappers (std::span< const uint8_t > buff, int max_wrappers=MAX_WRAPPERS) |
| Whether the buffer, if it represents a valid descriptor, contains a fragment with more wrappers than the given maximum. More... | |
| bool | HasTooLargeLeafSize (std::span< const uint8_t > buff, uint32_t max_leaf_size=MAX_LEAF_SIZE) |
| Whether the expanded buffer (after calling GetDescriptor() in MockedDescriptorConverter) has a leaf size too large. More... | |
| bool | IsTooExpensive (std::span< const uint8_t > buffer) |
| Deriving "expensive" descriptors will consume useful fuzz compute. The compute is better spent on a smaller subset of descriptors, which still covers all real end-user settings. More... | |
Variables | |
| constexpr int | MAX_DEPTH {2} |
| Default maximum number of derivation indexes in a single derivation path when limiting its depth. More... | |
| constexpr int | MAX_SUBS {1'000} |
| Default maximum number of sub-fragments. More... | |
| constexpr size_t | MAX_NESTED_SUBS {10'000} |
| Maximum number of nested sub-fragments we'll allow in a descriptor. More... | |
| constexpr int | MAX_WRAPPERS {100} |
| Default maximum number of wrappers per fragment. More... | |
| constexpr uint32_t | MAX_LEAF_SIZE {200} |
| Default maximum leaf size. This should be large enough to cover an extended key, including paths "/", inside and outside of "[]". More... | |
| bool HasDeepDerivPath | ( | std::span< const uint8_t > | buff, |
| int | max_depth = MAX_DEPTH |
||
| ) |
Whether the buffer, if it represents a valid descriptor, contains a derivation path deeper than a given maximum depth.
Note this may also be hit for deriv paths in origins.
Definition at line 85 of file descriptor.cpp.
| bool HasTooLargeLeafSize | ( | std::span< const uint8_t > | buff, |
| uint32_t | max_leaf_size = MAX_LEAF_SIZE |
||
| ) |
Whether the expanded buffer (after calling GetDescriptor() in MockedDescriptorConverter) has a leaf size too large.
Definition at line 155 of file descriptor.cpp.
| bool HasTooManySubFrag | ( | std::span< const uint8_t > | buff, |
| int | max_subs = MAX_SUBS, |
||
| size_t | max_nested_subs = MAX_NESTED_SUBS |
||
| ) |
Whether the buffer, if it represents a valid descriptor, contains a fragment with more sub-fragments than the given maximum.
Definition at line 99 of file descriptor.cpp.
| bool HasTooManyWrappers | ( | std::span< const uint8_t > | buff, |
| int | max_wrappers = MAX_WRAPPERS |
||
| ) |
Whether the buffer, if it represents a valid descriptor, contains a fragment with more wrappers than the given maximum.
Definition at line 123 of file descriptor.cpp.
|
inline |
Deriving "expensive" descriptors will consume useful fuzz compute. The compute is better spent on a smaller subset of descriptors, which still covers all real end-user settings.
Use this function after MockedDescriptorConverter::GetDescriptor()
Definition at line 94 of file descriptor.h.
|
constexpr |
Default maximum number of derivation indexes in a single derivation path when limiting its depth.
Definition at line 52 of file descriptor.h.
|
constexpr |
Default maximum leaf size. This should be large enough to cover an extended key, including paths "/", inside and outside of "[]".
Definition at line 83 of file descriptor.h.
|
constexpr |
Maximum number of nested sub-fragments we'll allow in a descriptor.
Definition at line 63 of file descriptor.h.
|
constexpr |
Default maximum number of sub-fragments.
Definition at line 61 of file descriptor.h.
|
constexpr |
Default maximum number of wrappers per fragment.
Definition at line 73 of file descriptor.h.