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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
41 85 validate_hardware_identity call site: 00085 check_hardware_identity_in_extension
15 8 cert_operation::verify_cert_chain call site: 00008 SocketIoTransport::new
14 34 spdm_x509::Certificate::from_der call site: 00034 Extensions::decode_value
5 79 find_extension call site: 00079
2 5 cert_operation::get_cert_from_cert_chain call site: 00005 cert_operation::verify_cert_chain
2 129 spdmlib::crypto::check_leaf_certificate call site: 00129
1 0 EP call site: 00000 cert_operation::get_cert_from_cert_chain
1 3 cert_operation::get_cert_from_cert_chain call site: 00003
1 31 cert_operation::verify_cert_chain call site: 00031
1 53 spdmlib::crypto::check_leaf_certificate call site: 00053
1 56 Extensions::find call site: 00056 SocketIoTransport::new
1 75 spdmlib::crypto::check_leaf_certificate call site: 00075 validate_hardware_identity

Fuzzer calltree

0 fuzz_target [function] [call site] 00000
1 cert_operation::get_cert_from_cert_chain [function] [call site] 00001
2 try_get_or_init [function] [call site] 00002
2 BytesMutStrubbed::clone [function] [call site] 00003
3 BytesMutStrubbed::clone [function] [call site] 00004
1 cert_operation::get_cert_from_cert_chain [function] [call site] 00006
1 cert_operation::verify_cert_chain [function] [call site] 00007
2 SpdmBaseAsymAlgo::from_bits [function] [call site] 00008
3 SocketIoTransport::new [function] [call site] 00009
3 Extensions::push [function] [call site] 00010
4 Extensions::push [function] [call site] 00011
5 Extensions::push [function] [call site] 00012
3 Extensions::push [function] [call site] 00013
3 Extensions::push [function] [call site] 00014
3 Extensions::push [function] [call site] 00015
3 Extensions::push [function] [call site] 00016
3 Extensions::push [function] [call site] 00017
3 Extensions::push [function] [call site] 00018
3 Extensions::push [function] [call site] 00019
3 Extensions::push [function] [call site] 00020
3 Extensions::push [function] [call site] 00021
3 Extensions::push [function] [call site] 00022
3 Extensions::push [function] [call site] 00023
2 SpdmBaseAsymAlgo::from_bits [function] [call site] 00025
2 SpdmBaseAsymAlgo::from_bits [function] [call site] 00026
2 SpdmBaseAsymAlgo::from_bits [function] [call site] 00028
2 try_get_or_init [function] [call site] 00029
2 BytesMutStrubbed::clone [function] [call site] 00030
1 spdmlib::crypto::check_leaf_certificate [function] [call site] 00032
2 spdm_x509::Certificate::from_der [function] [call site] 00033
3 ExtendedKeyUsage::decode [function] [call site] 00034
4 ExtendedKeyUsage::decode [function] [call site] 00035
5 ExtendedKeyUsage::decode [function] [call site] 00036
5 Extensions::decode_value [function] [call site] 00037
6 SocketIoTransport::new [function] [call site] 00038
6 Result::read_nested [function] [call site] 00039
6 is_finished [function] [call site] 00040
6 Extensions::push [function] [call site] 00041
7 Extensions::push [function] [call site] 00042
6 ExtendedKeyUsage::decode [function] [call site] 00043
7 ExtendedKeyUsage::decode [function] [call site] 00044
7 Extensions::decode_value [function] [call site] 00045
4 Extensions::decode_value [function] [call site] 00048
3 der::SliceReader::new [function] [call site] 00049
3 Self::map_err [function] [call site] 00050
3 der::Result::map_err [function] [call site] 00051
2 Result::map_err [function] [call site] 00052
2 BytesMutStrubbed::as_ref [function] [call site] 00053
3 BytesMutStrubbed::as_ref [function] [call site] 00054
2 Extensions::find [function] [call site] 00055
3 BytesMutStrubbed::into_iter [function] [call site] 00056
4 SocketIoTransport::new [function] [call site] 00057
3 Extensions::find [function] [call site] 00058
2 BasicConstraints::from_extension [function] [call site] 00059
3 Certificate::from_der [function] [call site] 00060
4 ExtendedKeyUsage::decode [function] [call site] 00061
4 der::SliceReader::new [function] [call site] 00062
4 Self::map_err [function] [call site] 00063
4 der::Result::map_err [function] [call site] 00064
3 Version::value [function] [call site] 00065
2 Extensions::find [function] [call site] 00068
2 KeyUsage::from_extension [function] [call site] 00069
3 Certificate::from_der [function] [call site] 00070
3 Version::value [function] [call site] 00071
2 Result::map_err [function] [call site] 00072
2 KeyUsage::has [function] [call site] 00073
2 spdm_x509::x509::spdm_validator::validate_hardware_identity [function] [call site] 00075
3 validate_hardware_identity [function] [call site] 00076
4 find_extension [function] [call site] 00077
5 BytesMutStrubbed::into_iter [function] [call site] 00078
5 Extensions::find [function] [call site] 00079
4 Error::ExtensionError [function] [call site] 00081
4 ExtensionError::MissingRequiredExtension [function] [call site] 00082
4 alloc::string::String::from [function] [call site] 00083
5 Tag::into [function] [call site] 00084
4 check_hardware_identity_in_extension [function] [call site] 00086
5 &der::asn1::OctetString::as_bytes [function] [call site] 00087
5 SocketIoTransport::new [function] [call site] 00088
5 Self::map_err [function] [call site] 00089
5 Error::ExtensionError [function] [call site] 00090
5 crate::error::ExtensionError::InvalidEncoding [function] [call site] 00091
5 ExtendedKeyUsage::decode [function] [call site] 00092
5 der::Result::map_err [function] [call site] 00093
5 Error::ExtensionError [function] [call site] 00094
5 crate::error::ExtensionError::InvalidEncoding [function] [call site] 00095
5 Error::ExtensionError [function] [call site] 00097
5 crate::error::ExtensionError::InvalidEncoding [function] [call site] 00098
5 Result::read_nested [function] [call site] 00099
5 is_finished [function] [call site] 00100
5 ExtendedKeyUsage::decode [function] [call site] 00102
5 read_nested [function] [call site] 00103
5 ExtendedKeyUsage::decode [function] [call site] 00104
6 ExtendedKeyUsage::decode [function] [call site] 00105
6 Extensions::decode_value [function] [call site] 00106
5 is_finished [function] [call site] 00107
5 ExtendedKeyUsage::decode [function] [call site] 00108
6 ExtendedKeyUsage::decode [function] [call site] 00109
6 Extensions::decode_value [function] [call site] 00110
5 ExtendedKeyUsage::decode [function] [call site] 00112
5 Error::ExtensionError [function] [call site] 00115
5 crate::error::ExtensionError::InvalidEncoding [function] [call site] 00116
4 Error::ExtensionError [function] [call site] 00119
4 ExtensionError::MissingRequiredExtension [function] [call site] 00120
4 alloc::string::String::from [function] [call site] 00121
4 Error::ExtensionError [function] [call site] 00123
4 ExtensionError::InvalidValue [function] [call site] 00124
4 alloc::string::String::from [function] [call site] 00125
2 Result::is_err [function] [call site] 00127
1 spdmlib::crypto::check_leaf_certificate [function] [call site] 00130
1 spdmlib::crypto::is_root_certificate [function] [call site] 00131
2 spdm_x509::Certificate::from_der [function] [call site] 00132
2 Result::map_err [function] [call site] 00133