Fuzz introspector: pkcs8_lpm
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
140 356 2 :

['bn_mod_lshift1_consttime', 'BN_sub_word']

140 3069 BN_mod_sqrt call site: 00000 /src/boringssl/crypto/fipsmodule/bn/sqrt.c:155
95 101 3 :

['BN_one', 'BN_zero', 'BN_abs_is_word']

95 101 BN_mod_exp_mont call site: 00000 /src/boringssl/crypto/fipsmodule/bn/exponentiation.c:604
95 101 3 :

['BN_one', 'BN_zero', 'BN_abs_is_word']

95 101 BN_mod_exp_mont_consttime call site: 00000 /src/boringssl/crypto/fipsmodule/bn/exponentiation.c:910
84 176 4 :

['bn_from_montgomery_in_place', 'bn_mul_small', 'OPENSSL_cleanse', 'bn_sqr_small']

86 178 bn_mod_mul_montgomery_small call site: 00000 /src/boringssl/crypto/fipsmodule/bn/montgomery.c:486
70 128 2 :

['ERR_add_error_dataf', 'ERR_put_error']

70 128 EVP_PKEY_set_type call site: 00134 /src/boringssl/crypto/evp/evp.c:343
63 237 2 :

['bn_sqr_recursive', 'bn_wexpand']

63 369 bn_sqr_consttime call site: 00000 /src/boringssl/crypto/fipsmodule/bn/mul.c:694
32 32 3 :

['CRYPTO_atomic_load_u32.2804', 'CRYPTO_get_ex_data', 'sk_void_free']

32 32 CRYPTO_free_ex_data call site: 00000 /src/boringssl/crypto/ex_data.c:212
22 22 2 :

['handle_cpu_env', 'strchr']

22 22 OPENSSL_cpuid_setup call site: 00000 /src/boringssl/crypto/cpu_intel.c:265
12 17 2 :

['asn1_pdu::Length::_internal_set_indefinite_form(bool)', 'asn1_pdu::Length::_internal_indefinite_form() const']

20 25 asn1_pdu::Length::MergeImpl(google::protobuf::Message&,google::protobuf::Messageconst&) call site: 00000 /work/boringssl/genfiles/asn1_pdu.pb.cc:1476
9 35 7 :

['asn1_pdu::Length::clear_types()', 'google::protobuf::internal::ArenaStringPtr::InitDefault()', 'asn1_pdu::Length::types_case() const', 'asn1_pdu::Length::set_has_length_override()', 'void google::protobuf::internal::ArenaStringPtr::Set<>(std::__1::basic_string , std::__1::allocator > const&, google::protobuf::Arena*)', 'asn1_pdu::Length::_internal_length_override() const', 'google::protobuf::MessageLite::GetArenaForAllocation() const']

17 43 asn1_pdu::Length::MergeImpl(google::protobuf::Message&,google::protobuf::Messageconst&) call site: 00000 /work/boringssl/genfiles/asn1_pdu.pb.cc:1476
8 8 1 :

['google::protobuf::internal::RepeatedPtrFieldBase::MergeFromInternal(google::protobuf::internal::RepeatedPtrFieldBase const&, void (google::protobuf::internal::RepeatedPtrFieldBase::*)(void**, void**, int, int))']

8 8 voidgoogle::protobuf::internal::RepeatedPtrFieldBase::MergeFrom ::TypeHandler>(google::protobuf::internal::RepeatedPtrFieldBaseconst&) call site: 00000 /src/LPM/external.protobuf/include/google/protobuf/repeated_ptr_field.h:300
2 2 1 :

['bn_sqr_comba8']

2 100 bn_sqr_consttime call site: 00000 /src/boringssl/crypto/fipsmodule/bn/mul.c:691

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 asn1_pdu::PDU::PDU() [function] [call site] 00001
2 asn1_pdu::PDU::PDU(google::protobuf::Arena*) [function] [call site] 00002
3 google::protobuf::Message::Message(google::protobuf::Arena*) [function] [call site] 00003
4 google::protobuf::MessageLite::MessageLite(google::protobuf::Arena*) [function] [call site] 00004
5 google::protobuf::internal::InternalMetadata::InternalMetadata(google::protobuf::Arena*) [function] [call site] 00005
3 asn1_pdu::PDU::SharedCtor(google::protobuf::Arena*) [function] [call site] 00006
4 google::protobuf::internal::CachedSize::CachedSize() [function] [call site] 00007
3 google::protobuf::MessageLite::~MessageLite() [function] [call site] 00008
1 protobuf_mutator::libfuzzer::LoadProtoInput(bool, unsigned char const*, unsigned long, google::protobuf::Message*) [call site] 00009
1 TestOneProtoInput(asn1_pdu::PDU const&) [function] [call site] 00010
2 asn1_pdu::ASN1PDUToDER::ASN1PDUToDER() [function] [call site] 00011
2 asn1_pdu::ASN1PDUToDER::PDUToDER(asn1_pdu::PDU const&) [function] [call site] 00012
3 asn1_pdu::ASN1PDUToDER::EncodePDU(asn1_pdu::PDU const&) [function] [call site] 00013
4 asn1_pdu::PDU::id() const [function] [call site] 00014
5 asn1_pdu::PDU::_internal_id() const [function] [call site] 00015
4 asn1_pdu::ASN1PDUToDER::EncodeIdentifier(asn1_pdu::Identifier const&) [function] [call site] 00016
5 asn1_pdu::Identifier::id_class() const [function] [call site] 00017
6 asn1_pdu::Identifier::_internal_id_class() const [function] [call site] 00018
5 asn1_pdu::Identifier::encoding() const [function] [call site] 00019
6 asn1_pdu::Identifier::_internal_encoding() const [function] [call site] 00020
5 asn1_pdu::Identifier::tag_num() const [function] [call site] 00021
6 asn1_pdu::Identifier::_internal_tag_num() const [function] [call site] 00022
5 asn1_pdu::Identifier::tag_num() const [function] [call site] 00023
5 asn1_pdu::Identifier::tag_num() const [function] [call site] 00024
5 asn1_pdu::ASN1PDUToDER::EncodeHighTagNumberForm(unsigned char, unsigned char, unsigned int) [function] [call site] 00025
6 InsertVariableIntBase128(unsigned long, unsigned long, std::__1::vector >&) [function] [call site] 00026
7 GetVariableIntLen(unsigned long, unsigned long) [function] [call site] 00027
8 _Z4log2ImENSt3__19enable_ifIXsr3std11is_integralIT_EE5valueEdE4typeES2_ [function] [call site] 00028
9 log2 [call site] 00029
4 asn1_pdu::PDU::val() const [function] [call site] 00030
5 asn1_pdu::PDU::_internal_val() const [function] [call site] 00031
4 asn1_pdu::ASN1PDUToDER::EncodeValue(asn1_pdu::Value const&) [function] [call site] 00032
5 asn1_pdu::Value::val_array() const [function] [call site] 00033
5 google::protobuf::RepeatedPtrField ::begin() const [function] [call site] 00034
6 google::protobuf::internal::RepeatedPtrFieldBase::raw_data() const [function] [call site] 00035
5 asn1_pdu::ValueElement::has_pdu() const [function] [call site] 00036
5 asn1_pdu::ValueElement::pdu() const [function] [call site] 00037
6 asn1_pdu::ValueElement::_internal_pdu() const [function] [call site] 00038
5 asn1_pdu::ASN1PDUToDER::EncodePDU(asn1_pdu::PDU const&) [function] [call site] 00039
6 asn1_pdu::PDU::len() const [function] [call site] 00040
7 asn1_pdu::PDU::_internal_len() const [function] [call site] 00041
6 asn1_pdu::ASN1PDUToDER::EncodeLength(asn1_pdu::Length const&, unsigned long, unsigned long) [function] [call site] 00042
7 asn1_pdu::Length::has_length_override() const [function] [call site] 00043
8 asn1_pdu::Length::types_case() const [function] [call site] 00044
7 asn1_pdu::Length::length_override() const [function] [call site] 00045
8 asn1_pdu::Length::_internal_length_override() const [function] [call site] 00046
9 asn1_pdu::Length::types_case() const [function] [call site] 00047
9 google::protobuf::internal::GetEmptyStringAlreadyInited() [function] [call site] 00048
10 google::protobuf::internal::ExplicitlyConstructed , std::__1::allocator >, 8ul>::get() const [function] [call site] 00049
9 google::protobuf::internal::TaggedStringPtr::Get() const [function] [call site] 00050
10 google::protobuf::internal::TaggedStringPtr::as_int() const [function] [call site] 00051
7 asn1_pdu::ASN1PDUToDER::EncodeOverrideLength(std::__1::basic_string , std::__1::allocator > const&, unsigned long) [function] [call site] 00052
7 asn1_pdu::Length::has_indefinite_form() const [function] [call site] 00053
8 asn1_pdu::Length::types_case() const [function] [call site] 00054
7 asn1_pdu::ASN1PDUToDER::EncodeIndefiniteLength(unsigned long) [function] [call site] 00055
7 asn1_pdu::ASN1PDUToDER::EncodeDefiniteLength(unsigned long, unsigned long) [function] [call site] 00056
8 InsertVariableIntBase256(unsigned long, unsigned long, std::__1::vector >&) [function] [call site] 00057
9 GetVariableIntLen(unsigned long, unsigned long) [function] [call site] 00058
8 GetVariableIntLen(unsigned long, unsigned long) [function] [call site] 00059
5 asn1_pdu::ValueElement::val_bits() const [function] [call site] 00060
6 asn1_pdu::ValueElement::_internal_val_bits() const [function] [call site] 00061
7 google::protobuf::internal::TaggedStringPtr::Get() const [function] [call site] 00062
5 asn1_pdu::ValueElement::val_bits() const [function] [call site] 00063
2 EVP_parse_private_key [function] [call site] 00065
3 CBS_get_asn1 [function] [call site] 00066
4 cbs_get_asn1 [function] [call site] 00067
5 CBS_get_any_asn1_element [function] [call site] 00068
6 cbs_get_any_asn1_element [function] [call site] 00069
7 __assert_fail [call site] 00070
7 __assert_fail [call site] 00071
7 parse_asn1_tag [function] [call site] 00072
8 parse_base128_integer [function] [call site] 00075
9 CBS_get_u8 [function] [call site] 00076
7 CBS_get_u8 [function] [call site] 00077
7 CBS_get_bytes [function] [call site] 00079
7 CBS_get_bytes [function] [call site] 00084
5 __assert_fail [call site] 00087
3 CBS_get_asn1_uint64 [function] [call site] 00088
4 CBS_get_asn1 [function] [call site] 00089
4 CBS_is_unsigned_asn1_integer [function] [call site] 00090
5 CBS_is_valid_asn1_integer [function] [call site] 00091
6 CBS_get_u8 [function] [call site] 00092
6 CBS_get_u8 [function] [call site] 00093
3 CBS_get_asn1 [function] [call site] 00096
3 CBS_get_asn1 [function] [call site] 00097
3 ERR_put_error [function] [call site] 00098
4 err_get_state [function] [call site] 00099
5 CRYPTO_get_thread_local [function] [call site] 00100
6 CRYPTO_once [function] [call site] 00101
7 pthread_once [call site] 00102
7 abort [call site] 00103
6 pthread_getspecific [call site] 00104
5 OPENSSL_memset [function] [call site] 00105
5 CRYPTO_set_thread_local [function] [call site] 00106
6 CRYPTO_once [function] [call site] 00107
6 pthread_getspecific [call site] 00108
6 OPENSSL_memset [function] [call site] 00109
6 pthread_setspecific [call site] 00110
6 pthread_mutex_lock [call site] 00111
6 pthread_mutex_unlock [call site] 00112
5 err_state_free [function] [call site] 00113
6 err_clear [function] [call site] 00114
7 OPENSSL_memset [function] [call site] 00115
4 __errno_location [call site] 00116
4 err_clear [function] [call site] 00117
3 parse_key_type [function] [call site] 00118
4 CBS_get_asn1 [function] [call site] 00119
4 OPENSSL_memcmp [function] [call site] 00122
5 memcmp [call site] 00123
3 ERR_put_error [function] [call site] 00124
3 EVP_PKEY_new [function] [call site] 00125
4 OPENSSL_malloc [function] [call site] 00126
5 __assert_fail [call site] 00127
5 __assert_fail [call site] 00128
5 OPENSSL_memory_alloc [call site] 00129
5 ERR_put_error [function] [call site] 00130
4 OPENSSL_memset [function] [call site] 00131
3 EVP_PKEY_set_type [function] [call site] 00132
4 evp_pkey_asn1_find [function] [call site] 00134
4 ERR_put_error [function] [call site] 00135
4 ERR_add_error_dataf [function] [call site] 00136
5 OPENSSL_vasprintf_internal [function] [call site] 00137
6 vsnprintf [call site] 00138
6 vsnprintf [call site] 00139
6 __errno_location [call site] 00140
5 err_set_error_data [function] [call site] 00141
6 err_get_state [function] [call site] 00142
3 ERR_put_error [function] [call site] 00143
3 EVP_PKEY_free [function] [call site] 00144
4 CRYPTO_refcount_dec_and_test_zero [function] [call site] 00145
5 CRYPTO_atomic_load_u32 [function] [call site] 00146
5 abort [call site] 00147
5 CRYPTO_atomic_compare_exchange_weak_u32 [function] [call site] 00148
4 OPENSSL_free [function] [call site] 00150
5 OPENSSL_memory_free [call site] 00151
5 OPENSSL_cleanse [function] [call site] 00152
6 OPENSSL_memset [function] [call site] 00153
5 sdallocx [call site] 00154
2 bssl::internal::StackAllocated ::StackAllocated() [function] [call site] 00155
3 CBB_zero [function] [call site] 00156
4 OPENSSL_memset [function] [call site] 00157
2 bssl::internal::StackAllocated ::get() [function] [call site] 00158
2 CBB_init [function] [call site] 00159
3 OPENSSL_malloc [function] [call site] 00161
2 bssl::internal::StackAllocated ::get() [function] [call site] 00163
2 EVP_marshal_private_key [function] [call site] 00164
3 ERR_put_error [function] [call site] 00165
2 bssl::internal::StackAllocated ::get() [function] [call site] 00166
2 CBB_finish [function] [call site] 00167
3 ERR_put_error [function] [call site] 00168
3 CBB_flush [function] [call site] 00169
4 cbb_get_base [function] [call site] 00170
4 __assert_fail [call site] 00171
4 __assert_fail [call site] 00172
4 CBB_flush [function] [call site] 00173
5 __assert_fail [call site] 00174
5 ERR_put_error [function] [call site] 00175
5 cbb_buffer_add [function] [call site] 00176
6 cbb_buffer_reserve [function] [call site] 00177
7 OPENSSL_realloc [function] [call site] 00178
8 OPENSSL_malloc [function] [call site] 00179
8 OPENSSL_memory_get_size [call site] 00180
8 OPENSSL_malloc [function] [call site] 00181
8 OPENSSL_free [function] [call site] 00182
7 ERR_put_error [function] [call site] 00183
5 OPENSSL_memmove [function] [call site] 00184
5 ERR_put_error [function] [call site] 00185
3 CBB_cleanup [function] [call site] 00186
4 __assert_fail [call site] 00187
4 OPENSSL_free [function] [call site] 00188
2 OPENSSL_free [function] [call site] 00189
2 bssl::internal::StackAllocated ::~StackAllocated() [function] [call site] 00190
3 CBB_cleanup [function] [call site] 00191
3 __clang_call_terminate [call site] 00192
4 __cxa_begin_catch [call site] 00193
2 ERR_clear_error [function] [call site] 00194
3 err_get_state [function] [call site] 00195
3 err_clear [function] [call site] 00196
2 asn1_pdu::ASN1PDUToDER::~ASN1PDUToDER() [function] [call site] 00197
1 asn1_pdu::PDU::~PDU() [function] [call site] 00198
2 google::protobuf::Arena* google::protobuf::internal::InternalMetadata::DeleteReturnArena () [function] [call site] 00199
3 google::protobuf::Arena* google::protobuf::internal::InternalMetadata::DeleteOutOfLineHelper () [function] [call site] 00200
4 google::protobuf::internal::InternalMetadata::ContainerBase* google::protobuf::internal::InternalMetadata::PtrValue () const [function] [call site] 00201
4 google::protobuf::internal::InternalMetadata::Container * google::protobuf::internal::InternalMetadata::PtrValue >() const [function] [call site] 00202
3 google::protobuf::Arena* google::protobuf::internal::InternalMetadata::PtrValue () const [function] [call site] 00203
2 asn1_pdu::PDU::SharedDtor() [function] [call site] 00204
3 asn1_pdu::PDU::internal_default_instance() [function] [call site] 00205
3 asn1_pdu::Identifier::~Identifier() [function] [call site] 00206
4 google::protobuf::Arena* google::protobuf::internal::InternalMetadata::DeleteReturnArena () [function] [call site] 00207
4 asn1_pdu::Identifier::SharedDtor() [function] [call site] 00208
5 asn1_pdu::Identifier::internal_default_instance() [function] [call site] 00209
5 asn1_pdu::TagNumber::~TagNumber() [function] [call site] 00210
6 google::protobuf::Arena* google::protobuf::internal::InternalMetadata::DeleteReturnArena () [function] [call site] 00211
6 asn1_pdu::TagNumber::SharedDtor() [function] [call site] 00212
6 google::protobuf::MessageLite::~MessageLite() [function] [call site] 00213
6 __clang_call_terminate [call site] 00214
4 google::protobuf::MessageLite::~MessageLite() [function] [call site] 00215
4 __clang_call_terminate [call site] 00216
3 asn1_pdu::PDU::internal_default_instance() [function] [call site] 00217
3 asn1_pdu::Length::~Length() [function] [call site] 00218
4 google::protobuf::Arena* google::protobuf::internal::InternalMetadata::DeleteReturnArena () [function] [call site] 00219
4 asn1_pdu::Length::SharedDtor() [function] [call site] 00220
5 asn1_pdu::Length::has_types() const [function] [call site] 00221
6 asn1_pdu::Length::types_case() const [function] [call site] 00222
5 asn1_pdu::Length::clear_types() [function] [call site] 00223
6 asn1_pdu::Length::types_case() const [function] [call site] 00224
6 google::protobuf::internal::ArenaStringPtr::Destroy() [call site] 00225
4 google::protobuf::MessageLite::~MessageLite() [function] [call site] 00226
4 __clang_call_terminate [call site] 00227
3 asn1_pdu::PDU::internal_default_instance() [function] [call site] 00228
3 asn1_pdu::Value::~Value() [function] [call site] 00229
4 google::protobuf::Arena* google::protobuf::internal::InternalMetadata::DeleteReturnArena () [function] [call site] 00230
4 asn1_pdu::Value::SharedDtor() [function] [call site] 00231
5 google::protobuf::RepeatedPtrField ::~RepeatedPtrField() [function] [call site] 00232
6 google::protobuf::internal::RepeatedPtrFieldBase::NeedsDestroy() const [function] [call site] 00233
6 google::protobuf::internal::RepeatedPtrFieldBase::DestroyProtos() [call site] 00234
6 google::protobuf::internal::RepeatedPtrFieldBase::~RepeatedPtrFieldBase() [function] [call site] 00235
4 google::protobuf::MessageLite::~MessageLite() [function] [call site] 00236
4 __clang_call_terminate [call site] 00237
2 google::protobuf::MessageLite::~MessageLite() [function] [call site] 00238
2 __clang_call_terminate [call site] 00239