All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:74,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:75,1
    - Dst: '&mut [u8]::encap'
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:77,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:78,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:78,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:78,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:77,1
    - Dst: spdm_emu::spdm_emu::send_message
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:82,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:83,1
    - Dst: spdm_emu::spdm_emu::receive_message
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:90,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 3
    argNames:
    - stream
    - transport_encap
    - transport_type
    argTypes:
    - Arc<Mutex<TcpStream>>
    - Arc<Mutex<dyn common::SpdmTransportEncap + Send + Sync>>
    - u32
    constantsTouched: []
    func_position:
      end: 93
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 93
    functionName: send_receive_stop
    functionSourceFile: /src/spdm-rs/test/spdm-requester-emu/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - '&mut [u8]::encap'
    - unwrap
    - Mutex::new
    - SpdmResult::clone
    - '&mut [u8]::deref_mut'
    - c_int::lock
    - spdm_emu::spdm_emu::receive_message
    - spdm_emu::spdm_emu::send_message
    linkageType: ''
    returnType: void
    signature: 'async fn send_receive_stop(stream: Arc<Mutex<TcpStream>>,transport_encap:
      Arc<Mutex<dyn common::SpdmTransportEncap + Send + Sync>>,transport_type: u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:126,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:127,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:128,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:129,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:130,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:153,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:153,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:153,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:154,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:154,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:154,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:155,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:155,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:155,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:157,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:161,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:169,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:169,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:175,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:175,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:181,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:181,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:183,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:184,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:185,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:194,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:194,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:196,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:197,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:200,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:200,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:201,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:201,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:203,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:207,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:207,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:208,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:208,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:209,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:210,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:214,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:225,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:232,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:236,1
    - Dst: SpdmContext::init_connection
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:244,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:244,1
    - Dst: SpdmContext::send_receive_spdm_digest
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:248,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:248,1
    - Dst: SpdmContext::send_receive_spdm_certificate
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:252,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:252,1
    - Dst: SpdmContext::send_receive_spdm_challenge
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:260,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:264,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:264,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:260,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:273,1
    - Dst: SpdmContext::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:277,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:277,1
    - Dst: None::is_none
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:296,1
    - Dst: SpdmContext::start_session
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:300,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:311,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:311,1
    - Dst: export_keys
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:312,1
    - Dst: SpdmContext::send_receive_spdm_heartbeat
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:330,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:330,1
    - Dst: SpdmContext::send_receive_spdm_key_update
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:338,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:338,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:349,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:351,1
    - Dst: export_keys
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:355,1
    - Dst: SpdmContext::encode_spdm_key_update_op
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:359,1
    - Dst: SpdmKeyUpdateOperation::Unknown
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:360,1
    - Dst: SpdmContext::send_message
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:368,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:369,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:368,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:373,1
    - Dst: create_data_secret_update
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:380,1
    - Dst: SpdmResult::ok
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:380,1
    - Dst: export_keys
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:385,1
    - Dst: SpdmContext::receive_message
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:390,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:391,1
    - Dst: SpdmContext::handle_spdm_key_update_op_response
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:399,1
    - Dst: export_keys
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:407,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:416,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:418,1
    - Dst: export_keys
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:422,1
    - Dst: SpdmContext::encode_spdm_key_update_op
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:426,1
    - Dst: SpdmContext::send_message
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:435,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:436,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:435,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:440,1
    - Dst: create_data_secret_update
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:447,1
    - Dst: SpdmResult::ok
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:447,1
    - Dst: export_keys
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:452,1
    - Dst: SpdmContext::receive_message
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:456,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:457,1
    - Dst: SpdmContext::handle_spdm_key_update_op_response
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:465,1
    - Dst: export_keys
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:473,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:478,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:480,1
    - Dst: SpdmContext::encode_spdm_key_update_op
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:483,1
    - Dst: SpdmKeyUpdateOperation::Unknown
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:484,1
    - Dst: SpdmContext::send_message
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:492,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:493,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:492,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:497,1
    - Dst: create_data_secret_update
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:504,1
    - Dst: SpdmResult::ok
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:504,1
    - Dst: SpdmContext::receive_message
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:510,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:511,1
    - Dst: SpdmContext::handle_spdm_key_update_op_response
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:519,1
    - Dst: SpdmContext::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:532,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:534,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:532,1
    - Dst: None::is_none
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:551,1
    - Dst: None::is_none
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:551,1
    - Dst: SpdmContext::send_receive_spdm_digest
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:555,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:556,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:555,1
    - Dst: SpdmContext::send_receive_spdm_certificate
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:563,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:564,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:563,1
    - Dst: SpdmContext::end_session
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:571,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:571,1
    - Dst: SpdmContext::start_session
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:578,1
    - Dst: SpdmContext::end_session
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:586,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:586,1
    - Dst: td_benchmark::StackProfiling::stack_usage
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:595,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:595,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 472
    argCount: 2
    argNames:
    - socket_io_transport
    - transport_encap
    argTypes:
    - Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    constantsTouched: []
    func_position:
      end: 598
      start: 96
    functionDepth: 13
    functionLinenumber: 96
    functionLinenumberEnd: 598
    functionName: test_spdm
    functionSourceFile: /src/spdm-rs/test/spdm-requester-emu/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SpdmContext::init_connection
    - clone
    - copy_from_slice
    - export_keys
    - SpdmContext::handle_spdm_key_update_op_response
    - SpdmContext::send_message
    - SpdmContext::send_receive_spdm_measurement
    - SpdmContext::end_session
    - SpdmChallengeContextStruct::default
    - spdmlib::secret::asym_sign::register
    - gen_array_clone
    - None::is_none
    - SpdmKeyUpdateOperation::Unknown
    - is_ok
    - SpdmResult::ok
    - SpdmContext::encode_spdm_key_update_op
    - reset_buffer_via_request_code
    - Some
    - std::fs::read
    - SpdmContext::send_receive_spdm_certificate
    - SpdmContext::start_session
    - requester::RequesterContext::new
    - SpdmContext::send_receive_spdm_challenge
    - SpdmContext::receive_message
    - Option::expect
    - create_data_secret_update
    - SpdmMeasurementRecordStructure::default
    - SpdmContext::send_receive_spdm_heartbeat
    - SecuredMessageVersion::try_from
    - as_ref
    - is_err
    - SpdmContext::send_receive_spdm_digest
    - Result::unwrap
    - SpdmContext::send_receive_spdm_key_update
    - spdmlib::secret::pqc_asym_sign::register
    - get_session_via_id
    - td_benchmark::StackProfiling::stack_usage
    - Default::default
    - len
    linkageType: ''
    returnType: void
    signature: 'async fn test_spdm(socket_io_transport: Arc<Mutex<dyn SpdmDeviceIo
      + Send + Sync>>,transport_encap: Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:632,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:633,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:634,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:635,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:636,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:659,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:659,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:659,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:660,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:660,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:660,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:661,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:661,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:661,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:663,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:667,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:675,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:675,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:681,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:681,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:687,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:687,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:689,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:690,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:691,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:700,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:700,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:702,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:703,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:706,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:706,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:707,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:707,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:709,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:713,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:713,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:714,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:714,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:715,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:716,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:720,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:731,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:738,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:742,1
    - Dst: SpdmContext::init_connection
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:750,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:750,1
    - Dst: SpdmContext::send_receive_spdm_digest
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:754,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:754,1
    - Dst: SpdmContext::send_receive_spdm_certificate
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:758,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:758,1
    - Dst: SpdmContext::send_receive_spdm_challenge
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:766,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:770,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:770,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:766,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:779,1
    - Dst: SpdmContext::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:783,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:783,1
    - Dst: SpdmContext::start_session
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:802,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:802,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_query
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:821,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:821,1
    - Dst: Option::lock
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:842,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:844,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:844,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:844,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:845,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:845,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:845,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:846,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:846,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:846,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:847,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:847,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:847,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:848,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:848,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:848,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:849,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:849,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:849,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:850,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:850,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:850,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:851,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:851,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:851,1
    - Dst: KpAckStatus::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:854,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_prog
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:855,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:855,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:884,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:884,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:884,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:885,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:885,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:885,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:886,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:886,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:886,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:887,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:887,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:887,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:888,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:888,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:888,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:889,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:889,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:889,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:890,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:890,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:890,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:891,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:891,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:891,1
    - Dst: KpAckStatus::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:894,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_prog
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:895,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:895,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:924,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:924,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:924,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:925,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:925,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:925,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:926,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:926,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:926,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:927,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:927,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:927,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:928,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:928,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:928,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:929,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:929,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:929,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:930,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:930,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:930,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:931,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:931,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:931,1
    - Dst: KpAckStatus::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:934,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_prog
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:935,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:935,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:964,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:964,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:964,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:965,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:965,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:965,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:966,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:966,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:966,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:967,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:967,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:967,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:968,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:968,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:968,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:969,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:969,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:969,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:970,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:970,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:970,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:971,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:971,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:971,1
    - Dst: KpAckStatus::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:974,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_prog
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:975,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:975,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1004,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1004,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1004,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1005,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1005,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1005,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1006,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1006,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1006,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1007,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1007,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1007,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1008,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1008,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1008,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1009,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1009,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1009,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1010,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1010,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1010,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1011,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1011,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1011,1
    - Dst: KpAckStatus::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1014,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_prog
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1015,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1015,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1044,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1044,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1044,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1045,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1045,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1045,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1046,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1046,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1046,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1047,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1047,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1047,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1048,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1048,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1048,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1049,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1049,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1049,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1050,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1050,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1050,1
    - Dst: spdmlib::crypto::rand::get_random
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1051,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1051,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1051,1
    - Dst: KpAckStatus::default
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1054,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_prog
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1055,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1055,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_go
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1084,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1084,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_go
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1102,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1102,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_go
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1120,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1120,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_go
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1138,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1138,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_go
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1156,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1156,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_go
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1174,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1174,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_stop
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1192,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1192,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_stop
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1210,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1210,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_stop
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1228,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1228,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_stop
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1246,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1246,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_stop
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1264,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1264,1
    - Dst: idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_stop
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1282,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1282,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_get_tdisp_version
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1305,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1305,1
    - Dst: LockInterfaceFlag::empty
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1312,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_get_tdisp_capabilities
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1317,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1317,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_get_device_interface_state
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1334,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1334,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_lock_interface_request
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1351,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1351,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_get_device_interface_state
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1370,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1370,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_get_device_interface_report
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1383,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1383,1
    - Dst: TdiReportStructure::read_bytes
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1394,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1394,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_start_interface_request
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1400,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1400,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_get_device_interface_state
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1412,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1412,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_stop_interface_request
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1423,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1423,1
    - Dst: tdisp::pci_tdisp_requester::pci_tdisp_req_get_device_interface_state
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1428,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1428,1
    - Dst: SpdmContext::end_session
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1440,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-requester-emu/src/main.rs:1440,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 981
    argCount: 3
    argNames:
    - socket_io_transport
    - transport_encap
    - key_iv
    argTypes:
    - Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - Arc<Mutex<Aes256GcmKeyBuffer>>
    constantsTouched: []
    func_position:
      end: 1441
      start: 601
    functionDepth: 13
    functionLinenumber: 601
    functionLinenumberEnd: 1441
    functionName: test_idekm_tdisp
    functionSourceFile: /src/spdm-rs/test/spdm-requester-emu/src/main.rs
    functionUses: 0
    functionsReached:
    - idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_go
    - tdisp::pci_tdisp_requester::pci_tdisp_req_get_device_interface_report
    - Option::lock
    - spdmlib::crypto::rand::get_random
    - idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_set_stop
    - unwrap
    - SpdmContext::init_connection
    - clone
    - copy_from_slice
    - SpdmResult::unwrap
    - SpdmContext::send_receive_spdm_measurement
    - SpdmContext::end_session
    - TdiReportStructure::read_bytes
    - SpdmChallengeContextStruct::default
    - spdmlib::secret::asym_sign::register
    - gen_array_clone
    - tdisp::pci_tdisp_requester::pci_tdisp_req_start_interface_request
    - tdisp::pci_tdisp_requester::pci_tdisp_req_lock_interface_request
    - tdisp::pci_tdisp_requester::pci_tdisp_req_stop_interface_request
    - to_le_bytes
    - tdisp::pci_tdisp_requester::pci_tdisp_req_get_tdisp_version
    - Some
    - std::fs::read
    - SpdmContext::send_receive_spdm_certificate
    - SpdmContext::start_session
    - requester::RequesterContext::new
    - SpdmContext::send_receive_spdm_challenge
    - LockInterfaceFlag::empty
    - tdisp::pci_tdisp_requester::pci_tdisp_req_get_tdisp_capabilities
    - Option::unwrap
    - Option::expect
    - SpdmMeasurementRecordStructure::default
    - SecuredMessageVersion::try_from
    - as_ref
    - is_err
    - SpdmContext::send_receive_spdm_digest
    - KpAckStatus::default
    - Result::unwrap
    - tdisp::pci_tdisp_requester::pci_tdisp_req_get_device_interface_state
    - spdmlib::secret::pqc_asym_sign::register
    - idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_query
    - Default::default
    - idekm::pci_ide_km_requester::IdekmReqContext::pci_ide_km_key_prog
    - len
    linkageType: ''
    returnType: void
    signature: 'async fn test_idekm_tdisp(socket_io_transport: Arc<Mutex<dyn SpdmDeviceIo
      + Send + Sync>>,transport_encap: Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,key_iv:
      Arc<Mutex<Aes256GcmKeyBuffer>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::env::var
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/lib.rs:33,1
    - Dst: Result::to_lowercase
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/lib.rs:34,1
    - Dst: as_str
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/lib.rs:34,1
    - Dst: SimpleLogger::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/lib.rs:44,1
    - Dst: Self::with_level
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/lib.rs:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 10
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: new_logger_from_env
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/lib.rs
    functionUses: 1
    functionsReached:
    - std::env::var
    - as_str
    - SimpleLogger::new
    - Result::to_lowercase
    - Self::with_level
    linkageType: ''
    returnType: SimpleLogger
    signature: pub fn new_logger_from_env() -> SimpleLogger
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: emu_main_inner
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 12
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: emu_main
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
    functionUses: 0
    functionsReached:
    - emu_main_inner
    linkageType: ''
    returnType: void
    signature: fn emu_main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: new_logger_from_env
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:138,1
    - Dst: SimpleLogger::init
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:138,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:138,1
    - Dst: spdm_emu::crypto::crypto_mbedtls_register_handles
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:141,1
    - Dst: spdmlib::secret::measurement::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:143,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:143,1
    - Dst: spdmlib::secret::psk::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:144,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:144,1
    - Dst: LockInterfaceFlag::empty
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:159,1
    - Dst: spdmlib::message::vendor::register_vendor_defined_struct
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:169,1
    - Dst: TcpListener::bind
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:174,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:174,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:178,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:178,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:180,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:180,1
    - Dst: incoming
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:182,1
    - Dst: next
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:182,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:183,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:184,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:184,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:188,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:188,1
    - Dst: spdm_emu::async_runtime::block_on
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:192,1
    - Dst: Box::pin
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:192,1
    - Dst: handle_message
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:192,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:193,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:195,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:197,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:199,1
    - Dst: spdm_emu::async_runtime::block_on
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:202,1
    - Dst: Box::pin
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:202,1
    - Dst: process_socket_message
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:202,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:203,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:205,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:207,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:209,1
    - Dst: handle_message
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:216,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:217,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:219,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:221,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:223,1
    - Dst: process_socket_message
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:226,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:227,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:229,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:231,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:233,1
    - Dst: td_benchmark::StackProfiling::stack_usage
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:242,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 137
    functionDepth: 11
    functionLinenumber: 137
    functionLinenumberEnd: 249
    functionName: emu_main_inner
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
    functionUses: 1
    functionsReached:
    - expect
    - spdmlib::secret::psk::register
    - unwrap
    - spdmlib::message::vendor::register_vendor_defined_struct
    - clone
    - SimpleLogger::init
    - spdm_emu::async_runtime::block_on
    - TcpListener::bind
    - Box::pin
    - new_logger_from_env
    - SpdmResult::clone
    - next
    - SpdmResult::expect
    - spdmlib::secret::measurement::register
    - incoming
    - Self::clone
    - LockInterfaceFlag::empty
    - Mutex::new
    - spdm_emu::crypto::crypto_mbedtls_register_handles
    - Arc::new
    - td_benchmark::StackProfiling::stack_usage
    - process_socket_message
    - handle_message
    linkageType: ''
    returnType: void
    signature: fn emu_main_inner()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/spdm-rs/external/ring/build.rs:273,1
    - Dst: env::var_os
      Src: /src/spdm-rs/external/ring/build.rs:274,1
    - Dst: Option::expect
      Src: /src/spdm-rs/external/ring/build.rs:274,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:279,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:279,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:281,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:281,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:282,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:282,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:283,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:283,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:284,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:284,1
    - Dst: join
      Src: /src/spdm-rs/external/ring/build.rs:278,1
    - Dst: env::var_os
      Src: /src/spdm-rs/external/ring/build.rs:294,1
    - Dst: Option::as_deref
      Src: /src/spdm-rs/external/ring/build.rs:294,1
    - Dst: pregenerate_asm_main
      Src: /src/spdm-rs/external/ring/build.rs:296,1
    - Dst: ring_build_rs_main
      Src: /src/spdm-rs/external/ring/build.rs:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 270
    functionDepth: 10
    functionLinenumber: 270
    functionLinenumberEnd: 303
    functionName: main
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 19
    functionsReached:
    - Option::as_deref
    - pregenerate_asm_main
    - env::var
    - ring_build_rs_main
    - env::var_os
    - Option::unwrap
    - Option::expect
    - join
    - PathBuf::from
    linkageType: ''
    returnType: void
    signature: fn main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:63,1
    - Dst: clone
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:64,1
    - Dst: ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:63,1
    - Dst: ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - stream_id
    - key_set
    - key_direction
    - key_sub_stream
    - port_index
    - key_iv
    - status
    argTypes:
    - u8
    - u8
    - u8
    - u8
    - u8
    - Aes256GcmKeyBuffer
    - '&mut KpAckStatus'
    constantsTouched: []
    func_position:
      end: 76
      start: 54
    functionDepth: 9
    functionLinenumber: 54
    functionLinenumberEnd: 76
    functionName: pci_ide_km_device_key_prog
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn pci_ide_km_device_key_prog(stream_id: u8,key_set: u8,key_direction:
      u8,key_sub_stream: u8,port_index: u8,key_iv: Aes256GcmKeyBuffer,status: &mut
      KpAckStatus,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:56,1
    - Dst: clone
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:57,1
    - Dst: ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:56,1
    - Dst: ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - stream_id
    - key_set
    - key_direction
    - key_sub_stream
    - port_index
    argTypes:
    - u8
    - u8
    - u8
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 9
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: pci_ide_km_device_key_set_go
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn pci_ide_km_device_key_set_go(stream_id: u8,key_set: u8,key_direction:
      u8,key_sub_stream: u8,port_index: u8,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:57,1
    - Dst: clone
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:58,1
    - Dst: ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:57,1
    - Dst: ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - stream_id
    - key_set
    - key_direction
    - key_sub_stream
    - port_index
    argTypes:
    - u8
    - u8
    - u8
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 9
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: pci_ide_km_device_key_set_stop
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn pci_ide_km_device_key_set_stop(stream_id: u8,key_set: u8,key_direction:
      u8,key_sub_stream: u8,port_index: u8,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:61,1
    - Dst: clone
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:62,1
    - Dst: ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:61,1
    - Dst: ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - port_index
    - dev_func_num
    - bus_num
    - segment
    - max_port_index
    - ide_reg_block
    - ide_reg_block_cnt
    argTypes:
    - u8
    - '&mut u8'
    - '&mut u8'
    - '&mut u8'
    - '&mut u8'
    - '&mut [u32; PCI_IDE_KM_IDE_REG_BLOCK_MAX_COUNT]'
    - '&mut usize'
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 9
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: pci_ide_km_device_query
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn pci_ide_km_device_query(port_index: u8,dev_func_num: &mut u8,bus_num:
      &mut u8,segment: &mut u8,max_port_index: &mut u8,ide_reg_block: &mut [u32; PCI_IDE_KM_IDE_REG_BLOCK_MAX_COUNT],ide_reg_block_cnt:
      &mut usize,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pci_ide_km_rsp_key_prog::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_idekm_example.rs:77,1
    - Dst: pci_ide_km_rsp_key_set_go::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_idekm_example.rs:80,1
    - Dst: pci_ide_km_rsp_key_set_stop::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_idekm_example.rs:83,1
    - Dst: pci_ide_km_rsp_query::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_idekm_example.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: init_device_idekm_instance
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_idekm_example.rs
    functionUses: 0
    functionsReached:
    - pci_ide_km_rsp_key_prog::register
    - pci_ide_km_rsp_query::register
    - pci_ide_km_rsp_key_set_go::register
    - pci_ide_km_rsp_key_set_stop::register
    linkageType: ''
    returnType: void
    signature: pub fn init_device_idekm_instance()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:84,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:85,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:84,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 10
    argNames:
    - vdm_handle
    - tsm_caps
    - interface_id
    - dsm_caps
    - req_msgs_supported
    - lock_interface_flags_supported
    - dev_addr_width
    - num_req_this
    - num_req_all
    - tdisp_error_code
    argTypes:
    - usize
    - u32
    - '&mut InterfaceId'
    - '&mut u32'
    - '&mut [u8; 16]'
    - '&mut LockInterfaceFlag'
    - '&mut u8'
    - '&mut u8'
    - '&mut u8'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 102
      start: 70
    functionDepth: 9
    functionLinenumber: 70
    functionLinenumberEnd: 102
    functionName: pci_tdisp_device_capabilities
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_capabilities(// INvdm_handle: usize,tsm_caps:
      u32,// OUTinterface_id: &mut InterfaceId,dsm_caps: &mut u32,req_msgs_supported:
      &mut [u8; 16],lock_interface_flags_supported: &mut LockInterfaceFlag,dev_addr_width:
      &mut u8,num_req_this: &mut u8,num_req_all: &mut u8,tdisp_error_code: &mut Option<TdispErrorCode>,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:50,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:51,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:50,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - vdm_handle
    - interface_id
    argTypes:
    - usize
    - '&mut InterfaceId'
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 9
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: pci_tdisp_device_error
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_error(// INvdm_handle: usize,// OUTinterface_id:
      &mut InterfaceId,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:67,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:68,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:67,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - vdm_handle
    - interface_id
    - tdi_report
    - tdi_report_size
    - tdisp_error_code
    argTypes:
    - usize
    - '&mut InterfaceId'
    - '&mut [u8; MAX_DEVICE_REPORT_BUFFER]'
    - '&mut usize'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 78
      start: 58
    functionDepth: 9
    functionLinenumber: 58
    functionLinenumberEnd: 78
    functionName: pci_tdisp_device_interface_report
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_interface_report(// INvdm_handle: usize,//
      OUTinterface_id: &mut InterfaceId,tdi_report: &mut [u8; MAX_DEVICE_REPORT_BUFFER],tdi_report_size:
      &mut usize,tdisp_error_code: &mut Option<TdispErrorCode>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:62,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:63,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:62,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - vdm_handle
    - interface_id
    - tdi_state
    - tdisp_error_code
    argTypes:
    - usize
    - '&mut InterfaceId'
    - '&mut TdiState'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 9
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: pci_tdisp_device_interface_state
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_interface_state(// INvdm_handle: usize,//
      OUTinterface_id: &mut InterfaceId,tdi_state: &mut TdiState,tdisp_error_code:
      &mut Option<TdispErrorCode>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:80,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:81,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:80,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - vdm_handle
    - flags
    - default_stream_id
    - mmio_reporting_offset
    - bind_p2p_address_mask
    - interface_id
    - start_interface_nonce
    - tdisp_error_code
    argTypes:
    - usize
    - '&LockInterfaceFlag'
    - u8
    - u64
    - u64
    - '&mut InterfaceId'
    - '&mut [u8; START_INTERFACE_NONCE_LEN]'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 94
      start: 68
    functionDepth: 9
    functionLinenumber: 68
    functionLinenumberEnd: 94
    functionName: pci_tdisp_device_lock_interface
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_lock_interface(// INvdm_handle: usize,flags:
      &LockInterfaceFlag,default_stream_id: u8,mmio_reporting_offset: u64,bind_p2p_address_mask:
      u64,// OUTinterface_id: &mut InterfaceId,start_interface_nonce: &mut [u8; START_INTERFACE_NONCE_LEN],tdisp_error_code:
      &mut Option<TdispErrorCode>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:65,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:66,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:65,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - vdm_handle
    - start_interface_nonce
    - interface_id
    - tdisp_error_code
    argTypes:
    - usize
    - '&[u8; START_INTERFACE_NONCE_LEN]'
    - '&mut InterfaceId'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 9
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: pci_tdisp_device_start_interface
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_start_interface(//INvdm_handle: usize,start_interface_nonce:
      &[u8; START_INTERFACE_NONCE_LEN],//OUTinterface_id: &mut InterfaceId,tdisp_error_code:
      &mut Option<TdispErrorCode>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:61,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:62,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:61,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - vdm_handle
    - interface_id
    - tdisp_error_code
    argTypes:
    - usize
    - '&mut InterfaceId'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 9
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: pci_tdisp_device_stop_interface
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_stop_interface(// INvdm_handle: usize,//
      OUTinterface_id: &mut InterfaceId,tdisp_error_code: &mut Option<TdispErrorCode>,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:64,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:65,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:64,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - vdm_handle
    - p2p_stream_id
    - interface_id
    - tdisp_error_code
    argTypes:
    - usize
    - u8
    - '&mut InterfaceId'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 9
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: pci_tdisp_device_bind_p2p_stream
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_bind_p2p_stream(//INvdm_handle: usize,p2p_stream_id:
      u8,//OUTinterface_id: &mut InterfaceId,tdisp_error_code: &mut Option<TdispErrorCode>,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:64,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:65,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:64,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - vdm_handle
    - p2p_stream_id
    - interface_id
    - tdisp_error_code
    argTypes:
    - usize
    - u8
    - '&mut InterfaceId'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 9
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: pci_tdisp_device_unbind_p2p_stream
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_unbind_p2p_stream(//INvdm_handle: usize,p2p_stream_id:
      u8,//OUTinterface_id: &mut InterfaceId,tdisp_error_code: &mut Option<TdispErrorCode>,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:64,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:65,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:64,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - vdm_handle
    - mmio_range
    - interface_id
    - tdisp_error_code
    argTypes:
    - usize
    - '&TdispMmioRange'
    - '&mut InterfaceId'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 9
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: pci_tdisp_device_set_mmio_attribute
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_set_mmio_attribute(//INvdm_handle:
      usize,mmio_range: &TdispMmioRange,//OUTinterface_id: &mut InterfaceId,tdisp_error_code:
      &mut Option<TdispErrorCode>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_vdm_response.rs:42,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_vdm_response.rs:43,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_vdm_response.rs:42,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_vdm_response.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 9
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: pci_tdisp_device_vdm_response
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_vdm_response.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_vdm_response(//INvdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:62,1
    - Dst: clone
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:63,1
    - Dst: ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:62,1
    - Dst: ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - vdm_handle
    - interface_id
    - version_num_count
    - version_num_entry
    argTypes:
    - usize
    - '&mut InterfaceId'
    - '&mut u8'
    - '&mut [TdispVersion; MAX_TDISP_VERSION_COUNT]'
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 9
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: pci_tdisp_device_version
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_device_version(// INvdm_handle: usize,// OUTinterface_id:
      &mut InterfaceId,version_num_count: &mut u8,version_num_entry: &mut [TdispVersion;
      MAX_TDISP_VERSION_COUNT],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pci_tdisp_rsp_tdisp_capabilities::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:392,1
    - Dst: pci_tdisp_rsp_tdisp_error::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:395,1
    - Dst: pci_tdisp_rsp_device_interface_report::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:398,1
    - Dst: pci_tdisp_rsp_device_interface_state::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:401,1
    - Dst: pci_tdisp_rsp_lock_interface_request::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:404,1
    - Dst: pci_tdisp_rsp_start_interface_request::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:407,1
    - Dst: pci_tdisp_rsp_stop_interface_request::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:410,1
    - Dst: pci_tdisp_rsp_tdisp_version::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:413,1
    - Dst: pci_tdisp_rsp_bind_p2p_stream_request::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:416,1
    - Dst: pci_tdisp_rsp_unbind_p2p_stream_request::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:419,1
    - Dst: pci_tdisp_rsp_set_mmio_attribute_request::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:422,1
    - Dst: pci_tdisp_rsp_vdm_response::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 428
    functionName: init_device_tdisp_instance
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs
    functionUses: 0
    functionsReached:
    - pci_tdisp_rsp_vdm_response::register
    - pci_tdisp_rsp_tdisp_error::register
    - pci_tdisp_rsp_device_interface_report::register
    - pci_tdisp_rsp_lock_interface_request::register
    - pci_tdisp_rsp_tdisp_capabilities::register
    - pci_tdisp_rsp_start_interface_request::register
    - pci_tdisp_rsp_unbind_p2p_stream_request::register
    - pci_tdisp_rsp_tdisp_version::register
    - pci_tdisp_rsp_set_mmio_attribute_request::register
    - pci_tdisp_rsp_bind_p2p_stream_request::register
    - pci_tdisp_rsp_device_interface_state::register
    - pci_tdisp_rsp_stop_interface_request::register
    linkageType: ''
    returnType: void
    signature: pub fn init_device_tdisp_instance()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::lock
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:66,1
    - Dst: deref
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:67,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:68,1
    - Dst: SpdmSocketHeader::read
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:69,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:69,1
    - Dst: to_be
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:72,1
    - Dst: to_be
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:73,1
    - Dst: to_be
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:77,1
    - Dst: send_hello
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:79,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:79,1
    - Dst: Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:79,1
    - Dst: send_stop
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:83,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:83,1
    - Dst: Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:83,1
    - Dst: send_pci_discovery
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:89,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:90,1
    - Dst: Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:91,1
    - Dst: send_unknown
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 64
    argCount: 4
    argNames:
    - stream
    - transport_encap
    - buffer
    - buffer_size
    argTypes:
    - Arc<Mutex<TcpStream>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - Arc<Mutex<[u8; RECEIVER_BUFFER_SIZE]>>
    - usize
    constantsTouched: []
    func_position:
      end: 102
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 102
    functionName: process_socket_message
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
    functionUses: 1
    functionsReached:
    - SpdmSocketHeader::read
    - to_be
    - send_pci_discovery
    - deref
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>::clone
    - Reader::init
    - Option::unwrap
    - SpdmResult::clone
    - send_stop
    - SpdmCertChainBuffer::lock
    - send_unknown
    - send_hello
    linkageType: ''
    returnType: bool
    signature: 'async fn process_socket_message(stream: Arc<Mutex<TcpStream>>,transport_encap:
      Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,buffer: Arc<Mutex<[u8; RECEIVER_BUFFER_SIZE]>>,buffer_size:
      usize,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SocketIoTransport::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:258,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:259,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:259,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:288,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:289,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:290,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:291,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:292,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:317,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:317,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:317,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:318,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:318,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:318,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:319,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:319,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:319,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:321,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:325,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:333,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:333,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:339,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:339,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:345,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:345,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:347,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:348,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:349,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:358,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:358,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:359,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:359,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:360,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:361,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:365,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:375,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:376,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:379,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:379,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:380,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:380,1
    - Dst: spdm_emu::watchdog_impl_sample::init_watchdog
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:381,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:382,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:389,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:390,1
    - Dst: '&mut [u8]::zeroize'
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:391,1
    - Dst: SpdmContext::process_message
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:392,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 148
    argCount: 3
    argNames:
    - stream
    - transport_encap
    - raw_packet
    argTypes:
    - Arc<Mutex<TcpStream>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - Arc<Mutex<[u8; RECEIVER_BUFFER_SIZE]>>
    constantsTouched: []
    func_position:
      end: 412
      start: 252
    functionDepth: 5
    functionLinenumber: 252
    functionLinenumberEnd: 412
    functionName: handle_message
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
    functionUses: 1
    functionsReached:
    - spdm_emu::watchdog_impl_sample::init_watchdog
    - clone
    - copy_from_slice
    - c_int::lock
    - '&mut [u8]::zeroize'
    - SpdmContext::process_message
    - spdmlib::secret::asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - Some
    - std::fs::read
    - Mutex::new
    - SocketIoTransport::new
    - Option::expect
    - '&mut [u8]::deref_mut'
    - SecuredMessageVersion::try_from
    - Arc::new
    - as_ref
    - Result::unwrap
    - spdmlib::secret::pqc_asym_sign::register
    - Default::default
    - len
    linkageType: ''
    returnType: usize
    signature: 'async fn handle_message(stream: Arc<Mutex<TcpStream>>,transport_encap:
      Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,raw_packet: Arc<Mutex<[u8;
      RECEIVER_BUFFER_SIZE]>>,) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:424,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:425,1
    - Dst: '&mut [u8]::encap'
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:427,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:429,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:430,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:430,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:427,1
    - Dst: spdm_emu::spdm_emu::send_message
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - stream
    - transport_encap
    - tranport_type
    argTypes:
    - Arc<Mutex<TcpStream>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - u32
    constantsTouched: []
    func_position:
      end: 442
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 442
    functionName: send_hello
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
    functionUses: 1
    functionsReached:
    - Arc::new
    - '&mut [u8]::encap'
    - unwrap
    - Mutex::new
    - '&mut [u8]::deref_mut'
    - c_int::lock
    - spdm_emu::spdm_emu::send_message
    linkageType: ''
    returnType: void
    signature: 'pub async fn send_hello(stream: Arc<Mutex<TcpStream>>,transport_encap:
      Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,tranport_type: u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:453,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:454,1
    - Dst: '&mut [u8]::encap'
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:455,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:456,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:456,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:456,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:455,1
    - Dst: spdm_emu::spdm_emu::send_message
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - stream
    - transport_encap
    - transport_type
    argTypes:
    - Arc<Mutex<TcpStream>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - u32
    constantsTouched: []
    func_position:
      end: 466
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 466
    functionName: send_unknown
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
    functionUses: 2
    functionsReached:
    - Arc::new
    - '&mut [u8]::encap'
    - unwrap
    - Mutex::new
    - '&mut [u8]::deref_mut'
    - c_int::lock
    - spdm_emu::spdm_emu::send_message
    linkageType: ''
    returnType: void
    signature: 'pub async fn send_unknown(stream: Arc<Mutex<TcpStream>>,transport_encap:
      Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,transport_type: u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdm_emu::spdm_emu::send_message
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - stream
    - _transport_encap
    - transport_type
    argTypes:
    - Arc<Mutex<TcpStream>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - u32
    constantsTouched: []
    func_position:
      end: 482
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 482
    functionName: send_stop
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
    functionUses: 1
    functionsReached:
    - spdm_emu::spdm_emu::send_message
    linkageType: ''
    returnType: void
    signature: 'pub async fn send_stop(stream: Arc<Mutex<TcpStream>>,_transport_encap:
      Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,transport_type: u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:491,1
    - Dst: PciDoeMessageHeader::read
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:493,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:509,1
    - Dst: send_unknown
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:528,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:528,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:534,1
    - Dst: Writer::used
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:542,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:543,1
    - Dst: spdm_emu::spdm_emu::send_message
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:544,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 70
    argCount: 4
    argNames:
    - stream
    - transport_encap
    - transport_type
    - buffer
    argTypes:
    - Arc<Mutex<TcpStream>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 552
      start: 485
    functionDepth: 7
    functionLinenumber: 485
    functionLinenumberEnd: 552
    functionName: send_pci_discovery
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
    functionUses: 1
    functionsReached:
    - PciDoeMessageHeader::read
    - Writer::init
    - copy_from_slice
    - SpdmResult::clone
    - Reader::init
    - send_unknown
    - Writer::used
    - u8::read
    - spdm_emu::spdm_emu::send_message
    linkageType: ''
    returnType: bool
    signature: 'pub async fn send_pci_discovery(stream: Arc<Mutex<TcpStream>>,transport_encap:
      Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,transport_type: u32,buffer:
      &[u8],) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: idekm::pci_idekm::vendor_id
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:559,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:560,1
    - Dst: idekm::pci_ide_km_responder::pci_ide_km_rsp_dispatcher
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:564,1
    - Dst: tdisp::pci_tdisp_responder::pci_tdisp_rsp_dispatcher
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:569,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdm-responder-emu/src/main.rs:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - vdm_handle
    - vendor_id_struct
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorIDStruct'
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 576
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 576
    functionName: pci_idekm_tdisp_rsp_dispatcher
    functionSourceFile: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
    functionUses: 0
    functionsReached:
    - idekm::pci_ide_km_responder::pci_ide_km_rsp_dispatcher
    - idekm::pci_idekm::vendor_id
    - tdisp::pci_tdisp_responder::pci_tdisp_rsp_dispatcher
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn pci_idekm_tdisp_rsp_dispatcher(vdm_handle: usize,vendor_id_struct:
      &VendorIDStruct,vendor_defined_req_payload_struct: &VendorDefinedReqPayloadStruct,)
      -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_handlers
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:11,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:12,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:12,1
    - Dst: register_handlers
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:15,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:16,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:16,1
    - Dst: register_handlers
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:19,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:20,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:20,1
    - Dst: register_handlers
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:23,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:24,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:24,1
    - Dst: register_handlers
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:27,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:28,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:28,1
    - Dst: register_handlers
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:31,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:32,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:32,1
    - Dst: register_handlers
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:35,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:36,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:36,1
    - Dst: register_handlers
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:39,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:40,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 10
    functionDepth: 4
    functionLinenumber: 10
    functionLinenumberEnd: 43
    functionName: init_handlers
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - register_handlers
    linkageType: ''
    returnType: void
    signature: fn init_handlers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: serde_json::from_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:60,1
    - Dst: map_err
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:60,1
    - Dst: io::Error::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:61,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:62,1
    - Dst: untrusted::Input::as_array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:64,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:64,1
    - Dst: SpdmResult::is_object
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:66,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:69,1
    - Dst: is_some
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:70,1
    - Dst: Output::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:71,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:76,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:76,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:77,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:77,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:78,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:78,1
    - Dst: as_bool
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:79,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:79,1
    - Dst: as_array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:80,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:80,1
    - Dst: as_array_mut
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:89,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:89,1
    - Dst: get_handler
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:90,1
    - Dst: handler
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:91,1
    - Dst: append
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:92,1
    - Dst: Output::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:93,1
    - Dst: serde_json::to_string_pretty
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:96,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:96,1
    - Dst: Ok
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 77
    argCount: 1
    argNames:
    - input_json
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 98
      start: 58
    functionDepth: 14
    functionLinenumber: 58
    functionLinenumberEnd: 98
    functionName: handle_input_json
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - append
    - Output::push
    - Vec::new
    - SpdmResult::is_object
    - as_str
    - as_u64
    - io::Error::new
    - serde_json::from_str
    - Ok
    - as_bool
    - handler
    - as_array_mut
    - serde_json::to_string_pretty
    - map_err
    - is_some
    - as_array
    - get_handler
    - untrusted::Input::as_array
    linkageType: ''
    returnType: io::Result
    signature: 'fn handle_input_json(input_json: String) -> io::Result<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:110,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:110,1
    - Dst: insert
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - key
    - handler
    argTypes:
    - (String, String)
    - AlgorithmHandler
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: register_handlers
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - insert
    - lock
    linkageType: ''
    returnType: void
    signature: 'fn register_handlers(key: (String, String), handler: AlgorithmHandler)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:115,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:115,1
    - Dst: get
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:116,1
    - Dst: to_string
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:117,1
    - Dst: '&str::to_string'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:117,1
    - Dst: (SpdmResult, Option::cloned
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:116,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - algorithm
    - revision
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 13
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: get_handler
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - to_string
    - (SpdmResult, Option::cloned
    - '&str::to_string'
    - lock
    - get
    linkageType: ''
    returnType: AlgorithmHandler
    signature: 'fn get_handler(algorithm: &str, revision: &str) -> AlgorithmHandler'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: algorithm_sha2
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - test_groups
    argTypes:
    - '&Vec<Value>'
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 11
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: handle_algorithm_sha2_256
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - algorithm_sha2
    linkageType: ''
    returnType: Vec
    signature: 'fn handle_algorithm_sha2_256(test_groups: &Vec<Value>) -> Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: algorithm_sha2
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - test_groups
    argTypes:
    - '&Vec<Value>'
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 11
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: handle_algorithm_sha2_384
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - algorithm_sha2
    linkageType: ''
    returnType: Vec
    signature: 'fn handle_algorithm_sha2_384(test_groups: &Vec<Value>) -> Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:140,1
    - Dst: is_object
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:142,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:145,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:145,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:146,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:146,1
    - Dst: as_array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:148,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:148,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:149,1
    - Dst: DateTime::is_object
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:154,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:157,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:157,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:158,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:158,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:159,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:159,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:160,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:160,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:162,1
    - Dst: SpdmResult::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:162,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:162,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:164,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:172,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:172,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:173,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:173,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:174,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:174,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:175,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:175,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:183,1
    - Dst: as_array_mut
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:185,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:185,1
    - Dst: BytesMutStrubbed::clone
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:189,1
    - Dst: BytesMutStrubbed::clone
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:190,1
    - Dst: BytesMutStrubbed::clone
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:191,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:193,1
    - Dst: extend
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:194,1
    - Dst: clone
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:194,1
    - Dst: extend
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:195,1
    - Dst: clone
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:195,1
    - Dst: extend
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:196,1
    - Dst: clone
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:196,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:198,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:198,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:198,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:199,1
    - Dst: '&[u8]::to_vec'
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:199,1
    - Dst: clone
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:201,1
    - Dst: push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:202,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:206,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:211,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:211,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:213,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:213,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:214,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:214,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:215,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:215,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:217,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:217,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:223,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:223,1
    - Dst: hash::hash_ctx_init
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:227,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:227,1
    - Dst: hash::hash_ctx_update
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:229,1
    - Dst: SpdmResult::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:229,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:229,1
    - Dst: hash::hash_ctx_finalize
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:231,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:231,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:233,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:244,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 223
    argCount: 2
    argNames:
    - test_groups
    - algo_str
    argTypes:
    - '&Vec<Value>'
    - '&str'
    constantsTouched: []
    func_position:
      end: 250
      start: 130
    functionDepth: 10
    functionLinenumber: 130
    functionLinenumberEnd: 250
    functionName: algorithm_sha2
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 2
    functionsReached:
    - Option::as_ref
    - unwrap
    - clone
    - hash::hash_ctx_update
    - is_object
    - DateTime::is_object
    - SpdmResult::unwrap
    - Vec::new
    - '&[u8]::to_vec'
    - hash::hash_ctx_init
    - as_slice
    - as_str
    - Self::push
    - as_u64
    - SpdmResult::clone
    - BytesMutStrubbed::clone
    - Option::unwrap
    - hash::hash_ctx_finalize
    - as_array_mut
    - SpdmResult::as_slice
    - hash::hash_all
    - push
    - as_array
    - from_hex
    - Result::unwrap
    - extend
    linkageType: ''
    returnType: Vec
    signature: 'fn algorithm_sha2(test_groups: &Vec<Value>, algo_str: &str) -> Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: algorithm_hmac_sha2
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - test_groups
    argTypes:
    - '&Vec<Value>'
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 11
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: handle_algorithm_hmac_sha2_256
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - algorithm_hmac_sha2
    linkageType: ''
    returnType: Vec
    signature: 'fn handle_algorithm_hmac_sha2_256(test_groups: &Vec<Value>) -> Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: algorithm_hmac_sha2
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - test_groups
    argTypes:
    - '&Vec<Value>'
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 11
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: handle_algorithm_hmac_sha2_384
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - algorithm_hmac_sha2
    linkageType: ''
    returnType: Vec
    signature: 'fn handle_algorithm_hmac_sha2_384(test_groups: &Vec<Value>) -> Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:270,1
    - Dst: is_object
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:272,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:275,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:275,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:276,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:276,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:278,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:278,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:279,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:279,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:280,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:280,1
    - Dst: as_array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:281,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:281,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:282,1
    - Dst: DateTime::is_object
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:284,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:287,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:287,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:288,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:288,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:289,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:289,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:290,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:290,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:291,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:291,1
    - Dst: hmac::hmac
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:292,1
    - Dst: Option::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:292,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:292,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:292,1
    - Dst: Features::as_ref
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:293,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:295,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 2
    argNames:
    - test_groups
    - algo_str
    argTypes:
    - '&Vec<Value>'
    - '&str'
    constantsTouched: []
    func_position:
      end: 306
      start: 260
    functionDepth: 10
    functionLinenumber: 260
    functionLinenumberEnd: 306
    functionName: algorithm_hmac_sha2
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 2
    functionsReached:
    - Features::as_ref
    - unwrap
    - as_str
    - as_array
    - is_object
    - DateTime::is_object
    - as_u64
    - from_hex
    - Result::unwrap
    - Option::as_slice
    - as_slice
    - hmac::hmac
    - Option::unwrap
    - Self::push
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: 'fn algorithm_hmac_sha2(test_groups: &Vec<Value>, algo_str: &str) ->
      Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<u8>::clone
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:120,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:121,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:122,1
    - Dst: Vec<u8>::clone
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:128,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:129,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:130,1
    - Dst: SpdmSignatureStruct::default
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:136,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:137,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:137,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:138,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:138,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:139,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:139,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:139,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:139,1
    - Dst: asym_verify::verify
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:141,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:144,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 73
    argCount: 8
    argNames:
    - asym_algo
    - hash_algo
    - ecp_template
    - msg
    - qx
    - qy
    - r
    - s
    argTypes:
    - SpdmBaseAsymAlgo
    - SpdmBaseHashAlgo
    - Vec<u8>
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 149
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 149
    functionName: ecdsa_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs
    functionUses: 2
    functionsReached:
    - SpdmDer::SpdmDerCertChain
    - Vec<u8>::clone
    - copy_from_slice
    - SpdmSignatureStruct::default
    - asym_verify::verify
    - SpdmResult::len
    - SpdmResult::is_ok
    - len
    linkageType: ''
    returnType: bool
    signature: 'fn ecdsa_verify(asym_algo: SpdmBaseAsymAlgo,hash_algo: SpdmBaseHashAlgo,ecp_template:
      Vec<u8>,msg: &[u8],qx: &[u8],qy: &[u8],r: &[u8],s: &[u8],) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:378,1
    - Dst: is_object
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:380,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:383,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:383,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:384,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:384,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:386,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:386,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:387,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:387,1
    - Dst: as_array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:388,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:388,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:389,1
    - Dst: DateTime::is_object
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:391,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:394,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:394,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:395,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:395,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:396,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:396,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:397,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:397,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:398,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:398,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:399,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:399,1
    - Dst: ecdsa_verify
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:401,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:403,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 83
    argCount: 1
    argNames:
    - test_groups
    argTypes:
    - '&Vec<Value>'
    constantsTouched: []
    func_position:
      end: 411
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 411
    functionName: handle_algorithm_ecdsa
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - ecdsa_verify
    - unwrap
    - as_str
    - as_array
    - is_object
    - DateTime::is_object
    - as_u64
    - Self::push
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: 'fn handle_algorithm_ecdsa(test_groups: &Vec<Value>) -> Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:418,1
    - Dst: is_object
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:420,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:423,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:423,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:424,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:424,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:425,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:425,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:426,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:426,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:427,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:427,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:428,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:428,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:429,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:429,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:430,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:430,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:431,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:431,1
    - Dst: as_array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:438,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:438,1
    - Dst: Value::Array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:439,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:439,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:441,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:441,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:444,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:444,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:444,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:444,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:445,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:445,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:445,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:445,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:446,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:446,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:446,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:446,1
    - Dst: rand::get_random
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:451,1
    - Dst: Result::as_mut_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:451,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:451,1
    - Dst: SpdmAeadKeyStruct::from
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:453,1
    - Dst: Option::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:453,1
    - Dst: SpdmAeadIvStruct::from
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:454,1
    - Dst: Result::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:454,1
    - Dst: aead::encrypt
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:455,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:459,1
    - Dst: SpdmResult::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:460,1
    - Dst: SpdmResult::as_mut_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:461,1
    - Dst: as_mut_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:462,1
    - Dst: as_array_mut
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:466,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:466,1
    - Dst: push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:466,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:477,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:477,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:477,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:477,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:478,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:478,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:478,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:478,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:479,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:479,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:479,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:479,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:480,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:480,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:480,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:480,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:481,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:481,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:481,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:481,1
    - Dst: SpdmAeadKeyStruct::from
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:483,1
    - Dst: Option::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:483,1
    - Dst: SpdmAeadIvStruct::from
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:484,1
    - Dst: Result::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:484,1
    - Dst: aead::decrypt
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:488,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:492,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:493,1
    - Dst: SpdmResult::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:494,1
    - Dst: SpdmResult::as_mut_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:495,1
    - Dst: Option::is_ok
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:498,1
    - Dst: as_array_mut
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:501,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:501,1
    - Dst: push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:501,1
    - Dst: as_array_mut
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:510,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:510,1
    - Dst: push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:510,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:522,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 208
    argCount: 1
    argNames:
    - test_groups
    argTypes:
    - '&Vec<Value>'
    constantsTouched: []
    func_position:
      end: 528
      start: 413
    functionDepth: 5
    functionLinenumber: 413
    functionLinenumberEnd: 528
    functionName: handle_algorithm_aead
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - Option::is_ok
    - unwrap
    - Option::as_slice
    - is_object
    - SpdmResult::unwrap
    - Vec::new
    - as_slice
    - as_str
    - SpdmAeadIvStruct::from
    - Self::push
    - as_u64
    - as_mut_slice
    - Result::as_slice
    - Result::as_mut_slice
    - SpdmAeadKeyStruct::from
    - Value::Array
    - aead::encrypt
    - SpdmResult::as_slice
    - as_array_mut
    - push
    - as_array
    - from_hex
    - Result::unwrap
    - SpdmResult::as_mut_slice
    - rand::get_random
    - aead::decrypt
    linkageType: ''
    returnType: Vec
    signature: 'fn handle_algorithm_aead(test_groups: &Vec<Value>) -> Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:537,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:539,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:539,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:540,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:540,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:542,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:542,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:543,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:543,1
    - Dst: Value::Array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:561,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:561,1
    - Dst: as_array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:562,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:562,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:575,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:575,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:575,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:575,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:577,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:577,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:577,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:577,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:579,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:579,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:579,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:579,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:581,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:581,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:581,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:581,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:583,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:583,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:583,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:583,1
    - Dst: EphemeralPrivateKey::from_bytes_for_test
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:585,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:587,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:585,1
    - Dst: Result::compute_public_key
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:592,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:592,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:592,1
    - Dst: to_vec
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:592,1
    - Dst: len
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:593,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:595,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:596,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:600,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:601,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:615,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:616,1
    - Dst: Self::extend_from_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:617,1
    - Dst: Self::extend_from_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:618,1
    - Dst: ring::agreement::UnparsedPublicKey::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:620,1
    - Dst: ring::agreement::agree_ephemeral
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:623,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:624,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:624,1
    - Dst: to_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:625,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:625,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:626,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:626,1
    - Dst: String::as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:627,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:623,1
    - Dst: as_array_mut
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:636,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:636,1
    - Dst: push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:636,1
    - Dst: Value::Array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:644,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:644,1
    - Dst: as_array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:645,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:645,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:648,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:648,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:650,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:650,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:652,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:652,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:653,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:653,1
    - Dst: SpdmDheExchangeStruct::default
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:655,1
    - Dst: len
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:656,1
    - Dst: len
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:656,1
    - Dst: len
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:657,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:657,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:657,1
    - Dst: len
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:658,1
    - Dst: len
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:658,1
    - Dst: len
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:658,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:658,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:659,1
    - Dst: dhe::generate_key_pair
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:660,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:660,1
    - Dst: Result::compute_final_key
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:661,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:661,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:662,1
    - Dst: len
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:662,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:663,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:664,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:666,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:666,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:666,1
    - Dst: as_array_mut
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:667,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:667,1
    - Dst: push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:667,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:680,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 273
    argCount: 1
    argNames:
    - test_groups
    argTypes:
    - '&Vec<Value>'
    constantsTouched: []
    func_position:
      end: 686
      start: 530
    functionDepth: 16
    functionLinenumber: 530
    functionLinenumberEnd: 686
    functionName: handle_algorithm_ecdhe
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - copy_from_slice
    - to_vec
    - Vec::new
    - as_str
    - as_slice
    - Self::push
    - as_u64
    - Result::compute_public_key
    - is_ok
    - String::as_str
    - Value::Array
    - Option::unwrap
    - Self::extend_from_slice
    - Result::compute_final_key
    - EphemeralPrivateKey::from_bytes_for_test
    - ring::agreement::agree_ephemeral
    - as_array_mut
    - to_hex
    - as_ref
    - hash::hash_all
    - push
    - as_array
    - from_hex
    - Result::unwrap
    - SpdmDheExchangeStruct::default
    - ring::agreement::UnparsedPublicKey::new
    - dhe::generate_key_pair
    - len
    linkageType: ''
    returnType: Vec
    signature: 'fn handle_algorithm_ecdhe(test_groups: &Vec<Value>) -> Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:691,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:693,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:693,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:694,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:694,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:695,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:695,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:696,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:696,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:697,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:697,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:698,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:698,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:699,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:699,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:704,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:704,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:705,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:705,1
    - Dst: as_array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:714,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:714,1
    - Dst: Value::Array
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:715,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:715,1
    - Dst: as_u64
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:717,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:717,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:718,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:718,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:718,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:718,1
    - Dst: from_hex
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:719,1
    - Dst: as_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:719,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:719,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:719,1
    - Dst: Result::verify
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:721,1
    - Dst: bool::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:721,1
    - Dst: SpdmResult::as_slice
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:721,1
    - Dst: as_array_mut
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:723,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:723,1
    - Dst: push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:723,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 96
    argCount: 1
    argNames:
    - test_groups
    argTypes:
    - '&Vec<Value>'
    constantsTouched: []
    func_position:
      end: 735
      start: 688
    functionDepth: 5
    functionLinenumber: 688
    functionLinenumberEnd: 735
    functionName: handle_algorithm_rsa
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 0
    functionsReached:
    - as_array_mut
    - Result::verify
    - unwrap
    - push
    - bool::as_slice
    - as_str
    - from_hex
    - Result::unwrap
    - as_array
    - as_u64
    - Self::push
    - Value::Array
    - SpdmResult::as_slice
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: 'fn handle_algorithm_rsa(test_groups: &Vec<Value>) -> Vec<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::len'
      Src: /src/spdm-rs/external/ring/src/testutil.rs:366,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/testutil.rs:367,1
    - Dst: String::from
      Src: /src/spdm-rs/external/ring/src/testutil.rs:367,1
    - Dst: Vec::with_capacity
      Src: /src/spdm-rs/external/ring/src/testutil.rs:372,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/external/ring/src/testutil.rs:372,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/external/ring/src/testutil.rs:373,1
    - Dst: chunks
      Src: /src/spdm-rs/external/ring/src/testutil.rs:373,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/external/ring/src/testutil.rs:374,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/external/ring/src/testutil.rs:375,1
    - Dst: BytesMutStrubbed::push
      Src: /src/spdm-rs/external/ring/src/testutil.rs:376,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/testutil.rs:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - hex_str
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 379
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 379
    functionName: from_hex
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 15
    functionsReached:
    - chunks
    - BytesMutStrubbed::push
    - Err
    - from_hex_digit
    - Ok
    - '&str::len'
    - Vec::with_capacity
    - String::from
    - '&str::as_bytes'
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_hex(hex_str: &str) -> Result<Vec<u8>, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/external/ring/src/testutil.rs:387,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/testutil.rs:388,1
    - Dst: start
      Src: /src/spdm-rs/external/ring/src/testutil.rs:388,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/testutil.rs:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - d
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 392
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 392
    functionName: from_hex_digit
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 7
    functionsReached:
    - start
    - contains
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn from_hex_digit(d: u8) -> Result<u8, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::with_capacity
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:767,1
    - Dst: len
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:767,1
    - Dst: BytesMutStrubbed::push_str
      Src: /src/spdm-rs/test/cavp_acvts_test/src/main.rs:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 772
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 772
    functionName: to_hex
    functionSourceFile: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
    functionUses: 1
    functionsReached:
    - BytesMutStrubbed::push_str
    - String::with_capacity
    - len
    linkageType: ''
    returnType: String
    signature: 'fn to_hex(data: &[u8]) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/executor/src/lib.rs:29,1
    - Dst: block_on
      Src: /src/spdm-rs/executor/src/lib.rs:29,1
    - Dst: Box::pin
      Src: /src/spdm-rs/executor/src/lib.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - future
    argTypes:
    - impl Future<Output = T> + 'static + Send
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: block_on
    functionSourceFile: /src/spdm-rs/executor/src/lib.rs
    functionUses: 62
    functionsReached:
    - block_on
    - Box::pin
    - lock
    linkageType: ''
    returnType: T
    signature: 'pub fn block_on<T>(future: impl Future<Output = T> + ''static + Send)
      -> TwhereT: Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_size
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:51,1
    - Dst: get_u8
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:53,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:56,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:58,1
    - Dst: get_u8
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:60,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:72,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:72,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:73,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:73,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:74,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:74,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:75,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:75,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:76,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:76,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:77,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:77,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:78,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:78,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:79,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:79,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:80,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:80,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:81,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:81,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:82,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:82,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:83,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:83,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:84,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:84,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:85,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:85,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:86,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:86,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:87,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:87,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:88,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:88,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:89,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:89,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:90,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:90,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:91,1
    - Dst: Option::expect
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:91,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:112,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:112,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:113,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:113,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:114,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:114,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:115,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:115,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:116,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:116,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:117,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:117,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:118,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:118,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:119,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:119,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:120,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:120,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:121,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:121,1
    - Dst: Writer::init
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:136,1
    - Dst: encode
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:138,1
    - Dst: Result::ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:138,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:142,1
    - Dst: u24::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:144,1
    - Dst: Writer::used
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:144,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:151,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:151,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:153,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:157,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:159,1
    - Dst: Writer::init
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:174,1
    - Dst: encode
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:175,1
    - Dst: Result::ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:175,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:177,1
    - Dst: u24::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:179,1
    - Dst: Writer::used
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:179,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 287
    argCount: 4
    argNames:
    - spdm_version
    - measurement_specification
    - measurement_hash_algo
    - measurement_index
    argTypes:
    - SpdmVersion
    - SpdmMeasurementSpecification
    - SpdmMeasurementHashAlgo
    - usize
    constantsTouched: []
    func_position:
      end: 184
      start: 31
    functionDepth: 9
    functionLinenumber: 31
    functionLinenumberEnd: 184
    functionName: measurement_collection_impl
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs
    functionUses: 0
    functionsReached:
    - get_u8
    - Writer::used
    - Result::ok
    - as_ref
    - Some
    - encode
    - get_size
    - hash::hash_all
    - Writer::init
    - copy_from_slice
    - Option::expect
    - u24::new
    - SpdmMeasurementRecordStructure::default
    - '&str::as_bytes'
    linkageType: ''
    returnType: Option
    signature: 'fn measurement_collection_impl(spdm_version: SpdmVersion,measurement_specification:
      SpdmMeasurementSpecification,measurement_hash_algo: SpdmMeasurementHashAlgo,measurement_index:
      usize,) -> Option<SpdmMeasurementRecordStructure>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:196,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:196,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:197,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:198,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:202,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:202,1
    - Dst: hash::hash_all
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:203,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - spdm_version
    - base_hash_algo
    - measurement_specification
    - measurement_hash_algo
    - measurement_summary_hash_type
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - SpdmMeasurementSpecification
    - SpdmMeasurementHashAlgo
    - SpdmMeasurementSummaryHashType
    constantsTouched: []
    func_position:
      end: 209
      start: 186
    functionDepth: 10
    functionLinenumber: 186
    functionLinenumberEnd: 209
    functionName: generate_measurement_summary_hash_impl
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs
    functionUses: 0
    functionsReached:
    - hash::hash_all
    - Some
    - copy_from_slice
    - '&str::as_bytes'
    linkageType: ''
    returnType: Option
    signature: 'fn generate_measurement_summary_hash_impl(spdm_version: SpdmVersion,base_hash_algo:
      SpdmBaseHashAlgo,measurement_specification: SpdmMeasurementSpecification,measurement_hash_algo:
      SpdmMeasurementHashAlgo,measurement_summary_hash_type: SpdmMeasurementSummaryHashType,)
      -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::len'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:223,1
    - Dst: Box::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:224,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:226,1
    - Dst: crypto::hkdf::hkdf_extract
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:228,1
    - Dst: get_size
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:230,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmSharedSecretFinalKey
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:231,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:233,1
    - Dst: get_size
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 4
    argNames:
    - spdm_version
    - base_hash_algo
    - psk_hint
    - info
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - '&SpdmPskHintStruct'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 10
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: handshake_secret_hkdf_expand_impl
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfInputKeyingMaterial::SpdmSharedSecretFinalKey
    - get_size
    - crypto::hkdf::hkdf_extract
    - copy_from_slice
    - '&str::len'
    - crypto::hkdf::hkdf_expand
    - Box::new
    linkageType: ''
    returnType: Option
    signature: 'fn handshake_secret_hkdf_expand_impl(spdm_version: SpdmVersion,base_hash_algo:
      SpdmBaseHashAlgo,psk_hint: &SpdmPskHintStruct,info: &[u8],) -> Option<SpdmHkdfOutputKeyingMaterial>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::len'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:243,1
    - Dst: Box::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:244,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:246,1
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:249,1
    - Dst: get_size
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:251,1
    - Dst: crypto::hkdf::hkdf_extract
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:258,1
    - Dst: get_size
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:260,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmSharedSecretFinalKey
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:261,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:264,1
    - Dst: get_size
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:264,1
    - Dst: crypto::hkdf::hkdf_extract
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:266,1
    - Dst: as_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:268,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmZeroFilled
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:269,1
    - Dst: get_size
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:270,1
    - Dst: Box::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:271,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:274,1
    - Dst: get_size
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 54
    argCount: 4
    argNames:
    - spdm_version
    - base_hash_algo
    - psk_hint
    - info
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - '&SpdmPskHintStruct'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 275
      start: 236
    functionDepth: 10
    functionLinenumber: 236
    functionLinenumberEnd: 275
    functionName: master_secret_hkdf_expand_impl
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - SpdmHkdfInputKeyingMaterial::SpdmSharedSecretFinalKey
    - get_size
    - copy_from_slice
    - '&str::len'
    - crypto::hkdf::hkdf_extract
    - crypto::hkdf::hkdf_expand
    - SpdmHkdfInputKeyingMaterial::SpdmZeroFilled
    - Box::new
    - SpdmKeySchedule::binconcat
    linkageType: ''
    returnType: Option
    signature: 'fn master_secret_hkdf_expand_impl(spdm_version: SpdmVersion,base_hash_algo:
      SpdmBaseHashAlgo,psk_hint: &SpdmPskHintStruct,info: &[u8],) -> Option<SpdmHkdfOutputKeyingMaterial>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register
      Src: /src/spdm-rs/test/spdm-emu/src/secret_impl_sample.rs:298,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/secret_impl_sample.rs:298,1
    - Dst: measurement_collection
      Src: /src/spdm-rs/test/spdm-emu/src/secret_impl_sample.rs:301,1
    - Dst: SpdmMeasurementBlockStructure::read_bytes
      Src: /src/spdm-rs/test/spdm-emu/src/secret_impl_sample.rs:317,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdm-emu/src/secret_impl_sample.rs:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 297
    functionDepth: 7
    functionLinenumber: 297
    functionLinenumberEnd: 327
    functionName: tests::test_case0_measurement_collection
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/secret_impl_sample.rs
    functionUses: 0
    functionsReached:
    - register
    - measurement_collection
    - clone
    - Option::unwrap
    - SpdmMeasurementBlockStructure::read_bytes
    linkageType: ''
    returnType: void
    signature: fn test_case0_measurement_collection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs:18,1
    - Dst: ok
      Src: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs:18,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs:20,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - buffer
    - _timeout
    argTypes:
    - '&mut [u8]'
    - usize
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 9
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: TcpTransport::receive
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs
    functionUses: 0
    functionsReached:
    - ok
    - read
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn receive(&mut self, buffer: &mut [u8], _timeout: usize) -> Result<usize,
      usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs:27,1
    - Dst: Features::is_ok
      Src: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs:28,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs:29,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: TcpTransport::send
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs
    functionUses: 0
    functionsReached:
    - Features::is_ok
    - write
    - Ok
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn send(&mut self, buffer: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: TcpTransport::flush_all
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: fn flush_all(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:24,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:25,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:24,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - session_id
    - seconds
    argTypes:
    - u32
    - u16
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 9
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: start_watchdog
    functionSourceFile: /src/spdm-rs/spdmlib/src/watchdog/mod.rs
    functionUses: 2
    functionsReached:
    - ok
    - try_get_or_init
    - unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: 'pub fn start_watchdog(session_id: u32, seconds: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:32,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:33,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:32,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 9
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: stop_watchdog
    functionSourceFile: /src/spdm-rs/spdmlib/src/watchdog/mod.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: 'pub fn stop_watchdog(session_id: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:40,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:41,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:40,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/watchdog/mod.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 9
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: reset_watchdog
    functionSourceFile: /src/spdm-rs/spdmlib/src/watchdog/mod.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: 'pub fn reset_watchdog(session_id: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::watchdog::register
      Src: /src/spdm-rs/test/spdmlib-test/src/watchdog_impl_sample.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: init_watchdog
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/watchdog_impl_sample.rs
    functionUses: 5
    functionsReached:
    - spdmlib::watchdog::register
    linkageType: ''
    returnType: void
    signature: pub fn init_watchdog()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:7,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:7,1
    - Dst: spdmlib::crypto::asym_verify::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:9,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:10,1
    - Dst: spdmlib::crypto::pqc_asym_verify::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:14,1
    - Dst: spdmlib::crypto::cert_operation::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:18,1
    - Dst: spdmlib::crypto::dhe::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:21,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:21,1
    - Dst: spdmlib::crypto::kem_decap::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:23,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:23,1
    - Dst: spdmlib::crypto::kem_encap::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:25,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:25,1
    - Dst: spdmlib::crypto::hash::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:27,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:27,1
    - Dst: spdmlib::crypto::hkdf::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:29,1
    - Dst: spdmlib::crypto::hmac::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:31,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:31,1
    - Dst: spdmlib::crypto::rand::register
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:33,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/crypto.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 6
    functionDepth: 2
    functionLinenumber: 6
    functionLinenumberEnd: 34
    functionName: crypto_mbedtls_register_handles
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/crypto.rs
    functionUses: 1
    functionsReached:
    - spdmlib::crypto::hash::register
    - spdmlib::crypto::asym_verify::register
    - spdmlib::crypto::rand::register
    - spdmlib::crypto::dhe::register
    - spdmlib::crypto::cert_operation::register
    - spdmlib::crypto::hkdf::register
    - clone
    - spdmlib::crypto::hmac::register
    - spdmlib::crypto::kem_decap::register
    - spdmlib::crypto::kem_encap::register
    - spdmlib::crypto::aead::register
    - spdmlib::crypto::pqc_asym_verify::register
    linkageType: ''
    returnType: void
    signature: pub fn crypto_mbedtls_register_handles()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - Arc<Mutex<TcpStream>>
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: SocketIoTransport::new
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(stream: Arc<Mutex<TcpStream>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:46,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:47,1
    - Dst: receive_message
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:50,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:50,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:54,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:57,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:58,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:61,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:62,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 2
    argNames:
    - read_buffer
    - timeout
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    - usize
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 7
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: SocketIoTransport::receive
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs
    functionUses: 0
    functionsReached:
    - Err
    - receive_message
    - clone
    - copy_from_slice
    - Ok
    - '&mut [u8]::deref_mut'
    - c_int::lock
    - len
    linkageType: ''
    returnType: Result
    signature: 'async fn receive(&mut self,read_buffer: Arc<Mutex<&mut [u8]>>,timeout:
      usize,) -> Result<usize, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: send_message
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:71,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:72,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 7
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: SocketIoTransport::send
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs
    functionUses: 0
    functionsReached:
    - send_message
    - clone
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send(&mut self, buffer: Arc<&[u8]>) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: SocketIoTransport::flush_all
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: async fn flush_all(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: MAX
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'pub const fn MAX(a: usize, b: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:38,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:39,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:40,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: SpdmSocketHeader::encode
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:45,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:46,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:47,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: SpdmSocketHeader::read
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs
    functionUses: 3
    functionsReached:
    - u32::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmSocketHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::lock
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:66,1
    - Dst: SpdmResult::deref_mut
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:67,1
    - Dst: SpdmResult::read
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:69,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:69,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:74,1
    - Dst: core::mem::size_of::<SpdmSocketHeader>
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:74,1
    - Dst: SpdmSocketHeader::read
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:75,1
    - Dst: to_be
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:77,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:93,1
    - Dst: SpdmSocketHeader::read
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:94,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:96,1
    - Dst: to_be
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:97,1
    - Dst: to_be
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 69
    argCount: 3
    argNames:
    - stream
    - buffer
    - _timeout
    argTypes:
    - Arc<Mutex<TcpStream>>
    - '&mut [u8]'
    - usize
    constantsTouched: []
    func_position:
      end: 101
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 101
    functionName: receive_message
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs
    functionUses: 23
    functionsReached:
    - SpdmResult::deref_mut
    - to_be
    - SpdmResult::read
    - Some
    - core::mem::size_of::<SpdmSocketHeader>
    - Reader::init
    - Option::expect
    - SpdmSocketHeader::read
    - SpdmResult::lock
    linkageType: ''
    returnType: Option
    signature: 'pub async fn receive_message(stream: Arc<Mutex<TcpStream>>,buffer:
      &mut [u8],_timeout: usize,) -> Option<(u32, u32, &[u8])>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:111,1
    - Dst: len
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:112,1
    - Dst: to_be
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:114,1
    - Dst: u32::to_be
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:115,1
    - Dst: to_be
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:116,1
    - Dst: Writer::used
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:119,1
    - Dst: SpdmResult::lock
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:123,1
    - Dst: SpdmResult::deref_mut
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:124,1
    - Dst: SpdmResult::write_all
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:125,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:125,1
    - Dst: SpdmResult::write_all
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:128,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:128,1
    - Dst: SpdmResult::flush
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:129,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 4
    argNames:
    - stream
    - transport_type
    - command
    - payload
    argTypes:
    - Arc<Mutex<TcpStream>>
    - u32
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 133
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 133
    functionName: send_message
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs
    functionUses: 26
    functionsReached:
    - SpdmResult::deref_mut
    - expect
    - to_be
    - SpdmResult::lock
    - Writer::init
    - SpdmResult::write_all
    - SpdmResult::flush
    - u32::to_be
    - Writer::used
    - Result::expect
    - len
    linkageType: ''
    returnType: usize
    signature: 'pub fn send_message(stream: Arc<Mutex<TcpStream>>,transport_type:
      u32,command: u32,payload: &[u8],) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:142,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:150,1
    - Dst: SpdmSocketHeader::read
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:152,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 140
    functionDepth: 6
    functionLinenumber: 140
    functionLinenumberEnd: 156
    functionName: tests::test_case0_spdm_socket_header
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs
    functionUses: 0
    functionsReached:
    - SpdmSocketHeader::read
    - Reader::init
    - Writer::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_socket_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sign_ecdsa_asym_algo
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:298,1
    - Dst: sign_ecdsa_asym_algo
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - spdm_context
    - base_hash_algo
    - base_asym_algo
    - data
    argTypes:
    - '&SpdmContext'
    - SpdmBaseHashAlgo
    - SpdmBaseAsymAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 307
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 307
    functionName: asym_sign
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs
    functionUses: 4
    functionsReached:
    - sign_ecdsa_asym_algo
    linkageType: ''
    returnType: Option
    signature: 'fn asym_sign(spdm_context: &SpdmContext,base_hash_algo: SpdmBaseHashAlgo,base_asym_algo:
      SpdmBaseAsymAlgo,data: &[u8],) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::get_test_key_directory
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:313,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:314,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:315,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:315,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:316,1
    - Dst: ring::rand::SystemRandom::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:318,1
    - Dst: ring::signature::EcdsaKeyPair::from_pkcs8
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:320,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:320,1
    - Dst: ring::rand::SystemRandom::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:322,1
    - Dst: Option::sign
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:324,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:324,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:325,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:328,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:328,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:330,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - algorithm
    - data
    argTypes:
    - '&''static ring::signature::EcdsaSigningAlgorithm'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 334
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 334
    functionName: sign_ecdsa_asym_algo
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs
    functionUses: 1
    functionsReached:
    - Option::sign
    - ring::rand::SystemRandom::new
    - Some
    - std::fs::read
    - as_slice
    - Result::unwrap
    - ring::signature::EcdsaKeyPair::from_pkcs8
    - PathBuf::join
    - copy_from_slice
    - common::util::get_test_key_directory
    - Option::expect
    - Option::unwrap
    - SpdmResult::as_ref
    - SpdmResult::len
    linkageType: ''
    returnType: Option
    signature: 'fn sign_ecdsa_asym_algo(algorithm: &''static ring::signature::EcdsaSigningAlgorithm,data:
      &[u8],) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_test_key_directory
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:139,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:144,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:147,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:150,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:156,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:156,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:157,1
    - Dst: ring::signature::RsaKeyPair::from_der
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:160,1
    - Dst: Result::ok
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:160,1
    - Dst: Option::public
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:162,1
    - Dst: '&PublicKey::modulus_len'
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:162,1
    - Dst: ring::rand::SystemRandom::new
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:166,1
    - Dst: Option::sign
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:169,1
    - Dst: Option::ok
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:169,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 3
    argNames:
    - padding_alg
    - key_len
    - data
    argTypes:
    - '&''static dyn ring::signature::RsaEncoding'
    - usize
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 177
      start: 133
    functionDepth: 9
    functionLinenumber: 133
    functionLinenumberEnd: 177
    functionName: sign_rsa_asym_algo
    functionSourceFile: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs
    functionUses: 0
    functionsReached:
    - Option::sign
    - Result::ok
    - ring::signature::RsaKeyPair::from_der
    - ring::rand::SystemRandom::new
    - Some
    - std::fs::read
    - as_slice
    - get_test_key_directory
    - PathBuf::join
    - Option::public
    - Option::expect
    - '&PublicKey::modulus_len'
    - Option::ok
    linkageType: ''
    returnType: Option
    signature: 'fn sign_rsa_asym_algo(padding_alg: &''static dyn ring::signature::RsaEncoding,key_len:
      usize,data: &[u8],) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 4
    argNames:
    - _spdm_context
    - _base_hash_algo
    - _pqc_asym_algo
    - _data
    argTypes:
    - '&SpdmContext'
    - SpdmBaseHashAlgo
    - SpdmPqcAsymAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: pqc_asym_sign
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn pqc_asym_sign(_spdm_context: &SpdmContext,_base_hash_algo: SpdmBaseHashAlgo,_pqc_asym_algo:
      SpdmPqcAsymAlgo,_data: &[u8],) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:507,1
    - Dst: Self::parent
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:508,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:508,1
    - Dst: parent
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:508,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:508,1
    - Dst: Self::to_path_buf
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 514
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 514
    functionName: get_test_key_directory
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 5
    functionsReached:
    - expect
    - Self::to_path_buf
    - Self::parent
    - parent
    - PathBuf::from
    linkageType: ''
    returnType: PathBuf
    signature: pub fn get_test_key_directory() -> PathBuf
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:14,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:15,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:41,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:41,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:41,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:53,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:54,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:54,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:58,1
    - Dst: SpdmConfigInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:59,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 11
    functionDepth: 11
    functionLinenumber: 11
    functionLinenumberEnd: 62
    functionName: test_spdm_config_info_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - SpdmConfigInfo::read
    - expect
    - Some
    - encode
    - Writer::init
    - Result::unwrap
    - Reader::init
    - Option::expect
    - SecuredMessageVersion::try_from
    linkageType: ''
    returnType: void
    signature: fn test_spdm_config_info_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:89,1
    - Dst: SpdmPqcReqAsymAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:90,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:91,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:96,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:97,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:97,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:101,1
    - Dst: SpdmNegotiateInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:102,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 65
    functionDepth: 11
    functionLinenumber: 65
    functionLinenumberEnd: 105
    functionName: test_spdm_negotiate_info_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - encode
    - Writer::init
    - SpdmPqcReqAsymAlgo::empty
    - SpdmKemAlgo::empty
    - SpdmNegotiateInfo::read
    - Reader::init
    - Option::expect
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_spdm_negotiate_info_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferA::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:109,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:111,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:111,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:117,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:118,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:118,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:122,1
    - Dst: ManagedBufferA::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:123,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: test_managed_buffer_a_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - Self::append_message
    - Writer::init
    - Reader::init
    - Option::expect
    - ManagedBufferA::read
    - ManagedBufferA::default
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_a_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferB::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:130,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:132,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:132,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:138,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:139,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:139,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:143,1
    - Dst: ManagedBufferB::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:144,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 147
    functionName: test_managed_buffer_b_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - ManagedBufferB::read
    - ManagedBufferB::default
    - Self::append_message
    - Writer::init
    - Reader::init
    - Option::expect
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_b_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferC::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:151,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:153,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:153,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:159,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:160,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:160,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:164,1
    - Dst: ManagedBufferC::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:165,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: test_managed_buffer_c_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - ManagedBufferC::read
    - Self::append_message
    - Writer::init
    - Reader::init
    - Option::expect
    - ManagedBufferC::default
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_c_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferM::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:172,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:174,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:174,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:180,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:181,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:181,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:185,1
    - Dst: ManagedBufferM::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:186,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: test_managed_buffer_m_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - ManagedBufferM::read
    - Self::append_message
    - Writer::init
    - ManagedBufferM::default
    - Reader::init
    - Option::expect
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_m_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferK::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:193,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:195,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:195,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:201,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:202,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:202,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:206,1
    - Dst: ManagedBufferK::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:207,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: test_managed_buffer_k_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - ManagedBufferK::default
    - Self::append_message
    - Writer::init
    - Reader::init
    - Option::expect
    - ManagedBufferK::read
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_k_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferF::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:214,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:216,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:216,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:222,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:223,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:223,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:227,1
    - Dst: ManagedBufferF::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:228,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 231
    functionName: test_managed_buffer_f_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - ManagedBufferF::default
    - ManagedBufferF::read
    - Self::append_message
    - Writer::init
    - Reader::init
    - Option::expect
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_f_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferM1M2::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:235,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:237,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:237,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:243,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:244,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:244,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:248,1
    - Dst: ManagedBufferM1M2::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:249,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: test_managed_buffer_m1m2_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - ManagedBufferM1M2::read
    - Self::append_message
    - ManagedBufferM1M2::default
    - Writer::init
    - Reader::init
    - Option::expect
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_m1m2_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferL1L2::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:256,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:258,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:258,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:264,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:265,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:265,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:269,1
    - Dst: ManagedBufferL1L2::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:270,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 255
    functionDepth: 5
    functionLinenumber: 255
    functionLinenumberEnd: 273
    functionName: test_managed_buffer_l1l2_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - ManagedBufferL1L2::read
    - Self::append_message
    - Writer::init
    - ManagedBufferL1L2::default
    - Reader::init
    - Option::expect
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_l1l2_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferTH::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:277,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:279,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:279,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:285,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:286,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:286,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:290,1
    - Dst: ManagedBufferTH::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:291,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 5
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: test_managed_buffer_th_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - ManagedBufferTH::read
    - Self::append_message
    - Writer::init
    - Reader::init
    - Option::expect
    - ManagedBufferTH::default
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_th_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBuffer12Sign::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:298,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:300,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:300,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:306,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:307,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:307,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:311,1
    - Dst: ManagedBuffer12Sign::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:313,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 316
    functionName: test_managed_buffer_12sign_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - Self::append_message
    - Writer::init
    - Reader::init
    - Option::expect
    - ManagedBuffer12Sign::default
    - ManagedBuffer12Sign::read
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_managed_buffer_12sign_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:326,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:329,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:330,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:330,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:334,1
    - Dst: SpdmMeasurementContentChanged::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:335,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 319
    functionDepth: 10
    functionLinenumber: 319
    functionLinenumberEnd: 340
    functionName: test_spdm_measurement_content_changed_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - encode
    - Writer::init
    - SpdmMeasurementContentChanged::read
    - Reader::init
    - iter
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_spdm_measurement_content_changed_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRuntimeInfo::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:346,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:350,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:351,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:351,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:355,1
    - Dst: SpdmRuntimeInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:356,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:356,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:360,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:361,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 344
    functionDepth: 11
    functionLinenumber: 344
    functionLinenumberEnd: 366
    functionName: test_spdm_runtime_info_codec_no_hashed
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - SpdmRuntimeInfo::read
    - encode
    - SpdmRuntimeInfo::default
    - Writer::init
    - Reader::init
    - Option::expect
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_spdm_runtime_info_codec_no_hashed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRuntimeInfo::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:372,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:376,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:377,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:377,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:381,1
    - Dst: SpdmRuntimeInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:382,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:382,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:386,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:387,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 370
    functionDepth: 11
    functionLinenumber: 370
    functionLinenumberEnd: 392
    functionName: test_spdm_runtime_info_codec_hashed
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - SpdmRuntimeInfo::read
    - encode
    - SpdmRuntimeInfo::default
    - Writer::init
    - Reader::init
    - Option::expect
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_spdm_runtime_info_codec_hashed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:410,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:411,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:411,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:415,1
    - Dst: SpdmProvisionInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:416,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 395
    functionDepth: 6
    functionLinenumber: 395
    functionLinenumberEnd: 424
    functionName: test_spdm_provision_info_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - encode
    - Writer::init
    - SpdmProvisionInfo::read
    - Reader::init
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_spdm_provision_info_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainData::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:429,1
    - Dst: SpdmCertChainData::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:435,1
    - Dst: SpdmCertChainData::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:441,1
    - Dst: SpdmCertChainData::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:447,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:455,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:456,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:467,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:468,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:475,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:475,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:477,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:478,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:487,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:488,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:500,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:501,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:501,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:505,1
    - Dst: SpdmProvisionInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:506,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:506,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 142
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 427
    functionDepth: 6
    functionLinenumber: 427
    functionLinenumberEnd: 567
    functionName: test_spdm_provision_info_codec_with_populated_data
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - SpdmCertChainData::default
    - Some
    - encode
    - Writer::init
    - SpdmProvisionInfo::read
    - Reader::init
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_spdm_provision_info_codec_with_populated_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:586,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:587,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:587,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:591,1
    - Dst: SpdmProvisionInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:592,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:592,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:606,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:607,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:607,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:611,1
    - Dst: SpdmProvisionInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:612,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 570
    functionDepth: 6
    functionLinenumber: 570
    functionLinenumberEnd: 619
    functionName: test_spdm_provision_info_codec_edge_cases
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - encode
    - Writer::init
    - SpdmProvisionInfo::read
    - Reader::init
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_spdm_provision_info_codec_edge_cases()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:635,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:636,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:636,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:640,1
    - Dst: SpdmPeerInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:641,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 622
    functionDepth: 6
    functionLinenumber: 622
    functionLinenumberEnd: 652
    functionName: test_spdm_peer_info_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - encode
    - Writer::init
    - Reader::init
    - Option::expect
    - SpdmPeerInfo::read
    linkageType: ''
    returnType: void
    signature: fn test_spdm_peer_info_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:657,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:659,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:664,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:696,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:696,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:697,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:697,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:698,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:698,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:699,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:699,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:700,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:700,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:701,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:701,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:702,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:702,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:703,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:703,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:709,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:710,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:711,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:712,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:713,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:714,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:715,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:716,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:719,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:720,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:721,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:722,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:723,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:724,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:725,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:726,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:729,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:730,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:731,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:732,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:733,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:734,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:735,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:736,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:742,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:743,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:743,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:747,1
    - Dst: SpdmPeerInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:749,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:749,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 159
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 794
      start: 655
    functionDepth: 5
    functionLinenumber: 655
    functionLinenumberEnd: 794
    functionName: test_spdm_peer_info_codec_with_populated_data
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - Some
    - encode
    - Self::push
    - clone
    - SpdmCertChainBuffer::default
    - Writer::init
    - Reader::init
    - Option::expect
    - SpdmPeerInfo::read
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_spdm_peer_info_codec_with_populated_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:811,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:812,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:812,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:816,1
    - Dst: SpdmPeerInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:818,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:818,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:840,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:841,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:841,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:845,1
    - Dst: SpdmPeerInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:847,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 857
      start: 797
    functionDepth: 6
    functionLinenumber: 797
    functionLinenumberEnd: 857
    functionName: test_spdm_peer_info_codec_edge_cases
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - encode
    - Writer::init
    - Reader::init
    - Option::expect
    - SpdmPeerInfo::read
    linkageType: ''
    returnType: void
    signature: fn test_spdm_peer_info_codec_edge_cases()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmEncapContext::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:862,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:866,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:867,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:867,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:871,1
    - Dst: SpdmEncapContext::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:872,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 881
      start: 861
    functionDepth: 7
    functionLinenumber: 861
    functionLinenumberEnd: 881
    functionName: test_spdm_encap_context_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - SpdmEncapContext::read
    - Writer::init
    - Reader::init
    - Option::expect
    - Self::encode
    - SpdmEncapContext::default
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_spdm_encap_context_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferA::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:888,1
    - Dst: ManagedBufferB::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:889,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:895,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:896,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:896,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:899,1
    - Dst: ManagedBufferA::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:901,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:901,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:905,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:906,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:906,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:909,1
    - Dst: ManagedBufferB::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:911,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 886
    functionDepth: 6
    functionLinenumber: 886
    functionLinenumberEnd: 913
    functionName: test_empty_managed_buffers_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - ManagedBufferB::read
    - ManagedBufferB::default
    - Writer::init
    - Reader::init
    - ManagedBufferA::read
    - Option::expect
    - ManagedBufferA::default
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_empty_managed_buffers_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:920,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:921,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:926,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:931,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:934,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:936,1
    - Dst: (SpdmConfigInfo, SpdmProvisionInfo)::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:937,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:937,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:941,1
    - Dst: SpdmConfigInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:942,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 947
      start: 916
    functionDepth: 11
    functionLinenumber: 916
    functionLinenumberEnd: 947
    functionName: test_option_fields_codec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - SpdmConfigInfo::read
    - Some
    - Writer::init
    - Reader::init
    - iter
    - Option::expect
    - Default::default
    - (SpdmConfigInfo, SpdmProvisionInfo)::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_option_fields_codec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferA::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:952,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:954,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:954,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:959,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:960,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:960,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:964,1
    - Dst: ManagedBufferA::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:965,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 968
      start: 950
    functionDepth: 5
    functionLinenumber: 950
    functionLinenumberEnd: 968
    functionName: test_max_size_buffers
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - Self::append_message
    - Writer::init
    - Reader::init
    - Option::expect
    - ManagedBufferA::read
    - ManagedBufferA::default
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_max_size_buffers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmConfigInfo::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:973,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:975,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:976,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:976,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:980,1
    - Dst: SpdmConfigInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 971
    functionDepth: 11
    functionLinenumber: 971
    functionLinenumberEnd: 988
    functionName: test_error_conditions
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - SpdmConfigInfo::read
    - SpdmConfigInfo::default
    - Writer::init
    - Reader::init
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_error_conditions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRuntimeInfo::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:995,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1000,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1002,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1003,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1003,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1007,1
    - Dst: SpdmRuntimeInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1008,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1008,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1012,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1013,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 993
    functionDepth: 11
    functionLinenumber: 993
    functionLinenumberEnd: 1019
    functionName: test_spdm_runtime_info_size_variations
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - SpdmRuntimeInfo::read
    - encode
    - SpdmRuntimeInfo::default
    - Writer::init
    - Reader::init
    - iter
    - Option::expect
    - Self::encode
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_spdm_runtime_info_size_variations()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1050,1
    - Dst: SpdmPqcReqAsymAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1051,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1052,1
    - Dst: SpdmRequestCapabilityFlags::all
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1056,1
    - Dst: SpdmResponseCapabilityFlags::all
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1057,1
    - Dst: SpdmAlgoOtherParams::all
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1068,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1077,1
    - Dst: SpdmPqcReqAsymAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1078,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1079,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1083,1
    - Dst: enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1083,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1085,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1086,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1086,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1091,1
    - Dst: SpdmNegotiateInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1092,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1022
    functionDepth: 11
    functionLinenumber: 1022
    functionLinenumberEnd: 1099
    functionName: test_spdm_negotiate_info_comprehensive
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - SpdmAlgoOtherParams::all
    - SpdmResponseCapabilityFlags::all
    - encode
    - Writer::init
    - SpdmPqcReqAsymAlgo::empty
    - SpdmKemAlgo::empty
    - SpdmNegotiateInfo::read
    - Reader::init
    - iter
    - Option::expect
    - SpdmRequestCapabilityFlags::all
    - enumerate
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_spdm_negotiate_info_comprehensive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferA::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1104,1
    - Dst: ManagedBufferB::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1105,1
    - Dst: ManagedBufferC::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1106,1
    - Dst: map
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1109,1
    - Dst: collect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1109,1
    - Dst: map
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1110,1
    - Dst: collect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1110,1
    - Dst: map
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1111,1
    - Dst: collect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1111,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1113,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1113,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1116,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1116,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1119,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1119,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1127,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1128,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1128,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1138,1
    - Dst: ManagedBufferA::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1139,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1139,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1143,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1144,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1144,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1154,1
    - Dst: ManagedBufferB::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1155,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1155,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1159,1
    - Dst: Self::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1160,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1160,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1170,1
    - Dst: ManagedBufferC::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1171,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1102
    functionDepth: 5
    functionLinenumber: 1102
    functionLinenumberEnd: 1173
    functionName: test_mixed_buffer_stress
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - map
    - ManagedBufferB::read
    - ManagedBufferC::read
    - ManagedBufferB::default
    - Self::append_message
    - Self::encode
    - Writer::init
    - Reader::init
    - Option::expect
    - ManagedBufferA::read
    - Result::expect
    - ManagedBufferC::default
    - ManagedBufferA::default
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_mixed_buffer_stress()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRuntimeInfo::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1200,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1206,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1207,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1207,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1211,1
    - Dst: SpdmProvisionInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1213,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1213,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1216,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1217,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1217,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1221,1
    - Dst: SpdmPeerInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1222,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1222,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1225,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1226,1
    - Dst: Result::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1226,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1230,1
    - Dst: SpdmRuntimeInfo::read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1232,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs:1232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1176
    functionDepth: 11
    functionLinenumber: 1176
    functionLinenumberEnd: 1250
    functionName: test_large_struct_memory_boundaries
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
    functionUses: 0
    functionsReached:
    - expect
    - SpdmRuntimeInfo::read
    - encode
    - SpdmRuntimeInfo::default
    - Writer::init
    - SpdmProvisionInfo::read
    - Reader::init
    - Option::expect
    - SpdmPeerInfo::read
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_large_struct_memory_boundaries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:20,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:27,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:28,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:31,1
    - Dst: SpdmOpaqueStruct::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:33,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 39
    functionName: test_case0_spdm_opaque_struct
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Writer::init
    - common::util::new_context
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - SpdmOpaqueStruct::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_opaque_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:44,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:47,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:50,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:50,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:51,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:51,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:52,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:55,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:57,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 63
    functionName: test_case0_spdm_digest_struct
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Writer::init
    - common::util::new_context
    - Mutex::new
    - Reader::init
    - Box::new
    - SpdmDigestStruct::spdm_read
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_digest_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:67,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:73,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:73,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:74,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:74,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:75,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:79,1
    - Dst: SpdmSignatureStruct::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:81,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 86
    functionName: test_case0_spdm_signature_struct
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - SpdmSignatureStruct::spdm_read
    - Writer::init
    - common::util::new_context
    - Mutex::new
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_signature_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:90,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:103,1
    - Dst: u24::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:114,1
    - Dst: Writer::used
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:114,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:118,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:118,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:119,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:119,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:120,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:126,1
    - Dst: SpdmMeasurementRecordStructure::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:129,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 88
    functionDepth: 13
    functionLinenumber: 88
    functionLinenumberEnd: 131
    functionName: test_case0_spdm_measurement_record_structure
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Writer::init
    - SpdmMeasurementRecordStructure::spdm_read
    - Mutex::new
    - common::util::new_context
    - Reader::init
    - Option::unwrap
    - u24::new
    - Writer::used
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_measurement_record_structure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:136,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:149,1
    - Dst: u24::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:160,1
    - Dst: Writer::used
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:160,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:164,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:164,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:165,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:165,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 168
    functionName: test_case1_spdm_measurement_record_structure
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Writer::init
    - Mutex::new
    - common::util::new_context
    - u24::new
    - Writer::used
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_measurement_record_structure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:172,1
    - Dst: SpdmDheExchangeStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:173,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:179,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:179,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:180,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:180,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:181,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:185,1
    - Dst: SpdmDheExchangeStruct::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:188,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 197
    functionName: test_case0_spdm_dhe_exchange_struct
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - SpdmDheExchangeStruct::spdm_read
    - Writer::init
    - SpdmDheExchangeStruct::default
    - common::util::new_context
    - Mutex::new
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_dhe_exchange_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDmtfMeasurementStructure::default
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:200,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:215,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:215,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:216,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:216,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:217,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:226,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:228,1
    - Dst: SpdmDmtfMeasurementStructure::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:231,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 248
    functionName: test_case0_spdm_dmtf_measurement_structure
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - SpdmDmtfMeasurementStructure::default
    - Writer::init
    - common::util::new_context
    - Mutex::new
    - SpdmDmtfMeasurementStructure::spdm_read
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_dmtf_measurement_structure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:252,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:264,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:264,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:265,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:265,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:266,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:270,1
    - Dst: SpdmMeasurementBlockStructure::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:273,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 250
    functionDepth: 6
    functionLinenumber: 250
    functionLinenumberEnd: 299
    functionName: test_case0_spdm_measurement_block_structure
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Writer::init
    - common::util::new_context
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - SpdmMeasurementBlockStructure::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_measurement_block_structure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:303,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:303,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:304,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:304,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:306,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:306,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:306,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:316,1
    - Dst: SpdmContext::export
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:321,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:321,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:328,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:328,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:329,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:329,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:330,1
    - Dst: SpdmContext::import
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:333,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:333,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:368,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:369,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:369,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:370,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:370,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:379,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:380,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:380,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:381,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 302
    functionDepth: 12
    functionLinenumber: 302
    functionLinenumberEnd: 387
    functionName: test_case0_spdm_context_export_import
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - set_connection_state
    - common::util::new_context
    - Mutex::new
    - SpdmContext::import
    - SpdmContext::export
    - SpdmResult::expect
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_context_export_import()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:391,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:391,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:392,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:392,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:394,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:394,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:394,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:416,1
    - Dst: set_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:419,1
    - Dst: set_peer_used_cert_chain_slot_id
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:422,1
    - Dst: wrapping_add
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:433,1
    - Dst: wrapping_add
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:442,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:445,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:446,1
    - Dst: wrapping_add
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:457,1
    - Dst: wrapping_add
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:468,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:471,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:472,1
    - Dst: wrapping_add
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:483,1
    - Dst: wrapping_add
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:494,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:497,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:498,1
    - Dst: SpdmContext::export
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:505,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:505,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:512,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:512,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:513,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:513,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:514,1
    - Dst: SpdmContext::import
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:517,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:517,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 295
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 390
    functionDepth: 12
    functionLinenumber: 390
    functionLinenumberEnd: 653
    functionName: test_case1_spdm_context_export_import_with_cert_data
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - set_connection_state
    - Some
    - common::util::new_context
    - Mutex::new
    - SpdmResult::expect
    - set_peer_used_cert_chain_slot_id
    - SpdmContext::import
    - SpdmContext::export
    - wrapping_add
    - set_local_used_cert_chain_slot_id
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_context_export_import_with_cert_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:657,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:657,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:658,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:658,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:660,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:660,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:660,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:670,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:675,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:675,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:682,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:682,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:687,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:687,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:692,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:692,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:700,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:701,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:701,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:702,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:704,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:704,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:711,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:711,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:716,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:716,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:721,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:721,1
    - Dst: SpdmContext::export
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:730,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:730,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:737,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:737,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:738,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:738,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:739,1
    - Dst: SpdmContext::import
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:742,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:742,1
    - Dst: SpdmContext::get_immutable_session_via_id
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:802,1
    - Dst: SpdmContext::get_immutable_session_via_id
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 177
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 830
      start: 656
    functionDepth: 12
    functionLinenumber: 656
    functionLinenumberEnd: 830
    functionName: test_case2_spdm_context_export_import_with_sessions
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - SpdmContext::get_session_via_id
    - set_connection_state
    - unwrap
    - set_use_psk
    - append_message
    - common::util::new_context
    - Mutex::new
    - SpdmContext::get_immutable_session_via_id
    - SpdmContext::import
    - SpdmContext::export
    - SpdmResult::unwrap
    - setup
    - SpdmResult::expect
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdm_context_export_import_with_sessions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:834,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:834,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:835,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:835,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:837,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:837,1
    - Dst: Self::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:837,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:884,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:901,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:902,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:912,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:912,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:919,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:919,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:924,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:924,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:929,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:929,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:936,1
    - Dst: SpdmContext::export
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:941,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:941,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:950,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:950,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:951,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:951,1
    - Dst: common::util::new_context
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:952,1
    - Dst: SpdmContext::import
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:954,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_library.rs:954,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 227
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 833
    functionDepth: 12
    functionLinenumber: 833
    functionLinenumberEnd: 1023
    functionName: test_case3_spdm_context_export_import_boundary_conditions
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - Some
    - unwrap
    - set_connection_state
    - append_message
    - common::util::new_context
    - Mutex::new
    - SpdmContext::import
    - SpdmContext::export
    - SpdmResult::expect
    linkageType: ''
    returnType: void
    signature: fn test_case3_spdm_context_export_import_boundary_conditions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:24,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:24,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:25,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:25,1
    - Dst: watchdog_impl_sample::init_watchdog
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:26,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:29,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:29,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:32,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:32,1
    - Dst: common::util::rsp_create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:34,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:36,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:43,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:58,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:59,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:59,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:59,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:60,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:61,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:61,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:63,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:63,1
    - Dst: common::util::req_create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:65,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:66,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:98,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:98,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:109,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:124,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:124,1
    - Dst: export_keys
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:128,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 22
    functionDepth: 14
    functionLinenumber: 22
    functionLinenumberEnd: 150
    functionName: intergration_client_server
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs
    functionUses: 0
    functionsReached:
    - expect
    - SharedBuffer::new
    - clone
    - export_keys
    - spdmlib::secret::asym_sign::register
    - common::util::req_create_info
    - common::util::get_rsp_cert_chain_buff
    - responder::ResponderContext::new
    - Some
    - FakeSpdmDeviceIo::new
    - requester::RequesterContext::new
    - executor::block_on
    - Mutex::new
    - Arc::new
    - Self::start_session
    - FakeSpdmDeviceIoReceve::new
    - watchdog_impl_sample::init_watchdog
    - common::util::rsp_create_info
    - spdmlib::secret::pqc_asym_sign::register
    - get_session_via_id
    linkageType: ''
    returnType: void
    signature: fn intergration_client_server()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:22,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:23,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:29,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:29,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:31,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:31,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:32,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:32,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:34,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:42,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:42,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:79,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:82,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:82,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:92,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:97,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:97,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:98,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:99,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:99,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:99,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:100,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:101,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:101,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:104,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:139,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:141,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:141,1
    - Dst: Self::send_receive_spdm_key_exchange
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:145,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:145,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 195
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 20
    functionDepth: 7
    functionLinenumber: 20
    functionLinenumberEnd: 152
    functionName: test_case0_send_receive_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::send_receive_spdm_key_exchange
    - FakeSpdmDeviceIoReceve::new
    - Some
    - set_connection_state
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - Mutex::new
    - common::util::get_rsp_cert_chain_buff
    - reset_runtime_info
    - RequesterContext::new
    - executor::block_on
    - common::util::create_info
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_key_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:157,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:158,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:160,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:161,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:161,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:161,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:161,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:164,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:164,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:166,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:173,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:173,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:174,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:174,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:177,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:177,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:202,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:205,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:205,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:215,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:220,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:220,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:221,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:222,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:222,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:222,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:223,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:224,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:224,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:227,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:250,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:252,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:252,1
    - Dst: Self::send_receive_spdm_key_exchange
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:256,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:256,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:262,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 160
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 155
    functionDepth: 7
    functionLinenumber: 155
    functionLinenumberEnd: 270
    functionName: test_case1_send_receive_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - clone
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - common::util::get_rsp_cert_chain_buff
    - iter
    - responder::ResponderContext::new
    - is_ok
    - Some
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - reset_runtime_info
    - Self::send_receive_spdm_key_exchange
    linkageType: ''
    returnType: void
    signature: fn test_case1_send_receive_spdm_key_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:23,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:27,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:30,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:30,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:32,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:32,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:33,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:33,1
    - Dst: secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:34,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:34,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:36,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:76,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:81,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:83,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:96,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:101,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:101,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:102,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:103,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:103,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:103,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:104,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:105,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:105,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:108,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:143,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:143,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:145,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:149,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:153,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:153,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:174,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:174,1
    - Dst: SpdmMeasurementOperation::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:191,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:195,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:195,1
    - Dst: SpdmMeasurementOperation::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:212,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:216,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:216,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 261
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 234
    functionName: test_case0_send_receive_spdm_measurement
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementOperation::Unknown
    - SharedBuffer::new
    - secret::measurement::register
    - clone
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - common::util::get_rsp_cert_chain_buff
    - responder::ResponderContext::new
    - is_ok
    - Some
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - append_message
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - SpdmMeasurementRecordStructure::default
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - is_err
    - Self::send_receive_spdm_measurement
    - reset_runtime_info
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_measurement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:259,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:262,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:263,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:264,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:265,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:266,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:268,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:275,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:278,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:279,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:280,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:281,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:282,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:283,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:285,1
    - Dst: SpdmMeasurementOperation::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:291,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:292,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:295,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:296,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:297,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:298,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:299,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:300,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:302,1
    - Dst: SpdmMeasurementOperation::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:308,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:309,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:312,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:313,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:314,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:315,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:316,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:317,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:318,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:320,1
    - Dst: SpdmMeasurementOperation::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:326,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:327,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:330,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:331,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:332,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:333,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:334,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:335,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:337,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:344,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:347,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:348,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:349,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:350,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:351,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:352,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:354,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:361,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:364,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:365,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:366,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:367,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:368,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:370,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:377,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:380,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:381,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:382,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:383,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:384,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:385,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:386,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:387,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:389,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:401,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:402,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:403,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:404,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:405,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:407,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:419,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:420,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:421,1
    - Dst: SimpleLogger::extend_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:422,1
    - Dst: SimpleLogger::into_boxed_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:423,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:425,1
    - Dst: executor::add_task
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:429,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:430,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:431,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:431,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:432,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:432,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:432,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:432,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:433,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:435,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:457,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:457,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:458,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:461,1
    - Dst: Self::handle_spdm_measurement_record_response
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:465,1
    - Dst: executor::poll_tasks
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 405
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 237
    functionDepth: 7
    functionLinenumber: 237
    functionLinenumberEnd: 487
    functionName: test_handle_spdm_measurement_record_response
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementOperation::Unknown
    - SharedBuffer::new
    - executor::add_task
    - SimpleLogger::extend_from_slice
    - SpdmMeasurementContextStruct::default
    - common::util::create_info
    - SimpleLogger::into_boxed_slice
    - common::util::get_rsp_cert_chain_buff
    - Err
    - Some
    - RequesterContext::new
    - Self::handle_spdm_measurement_record_response
    - Ok
    - Mutex::new
    - SpdmMeasurementRecordStructure::default
    - Arc::new
    - executor::poll_tasks
    - FakeSpdmDeviceIoReceve::new
    - reset_runtime_info
    linkageType: ''
    returnType: void
    signature: fn test_handle_spdm_measurement_record_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:492,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:493,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:495,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:496,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:496,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:496,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:496,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:499,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:499,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:501,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:501,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:502,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:502,1
    - Dst: secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:503,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:503,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:505,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:545,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:550,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:552,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:565,1
    - Dst: append_message_a
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:569,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:569,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:574,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:574,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:575,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:576,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:576,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:576,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:577,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:578,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:578,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:581,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:616,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:616,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:618,1
    - Dst: append_message_a
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:619,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:619,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:626,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:630,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:630,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:651,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:651,1
    - Dst: None::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:668,1
    - Dst: None::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:669,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:669,1
    - Dst: ManagedBufferL1L2::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:670,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:671,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:671,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:672,1
    - Dst: None::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:673,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:672,1
    - Dst: SpdmSignatureStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:675,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:677,1
    - Dst: None::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:678,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:680,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:680,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:680,1
    - Dst: Self::reset_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:682,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:683,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:684,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:683,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:686,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:686,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:689,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:689,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:692,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:693,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:692,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:696,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:696,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:699,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:700,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:700,1
    - Dst: crypto::spdm_asym_verify
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:705,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:709,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:710,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 372
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 717
      start: 490
    functionDepth: 8
    functionLinenumber: 490
    functionLinenumberEnd: 717
    functionName: test_case1_send_receive_spdm_measurement
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs
    functionUses: 0
    functionsReached:
    - get_signing_prefix_context
    - SpdmDer::SpdmDerCertChain
    - unwrap
    - SharedBuffer::new
    - secret::measurement::register
    - clone
    - copy_from_slice
    - get_hash_size
    - append_message_a
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - common::util::get_rsp_cert_chain_buff
    - ManagedBufferL1L2::default
    - SpdmSignatureStruct::default
    - Self::reset_message
    - responder::ResponderContext::new
    - is_ok
    - None::as_ref
    - crypto::hash::hash_all
    - Some
    - Self::append_message
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - append_message
    - RequesterContext::new
    - '&[u8]::len'
    - Mutex::new
    - executor::block_on
    - Option::unwrap
    - None::unwrap
    - SpdmMeasurementRecordStructure::default
    - crypto::spdm_asym_verify
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - set_connection_state
    - Self::send_receive_spdm_measurement
    - reset_runtime_info
    - Self::as_ref
    linkageType: ''
    returnType: void
    signature: fn test_case1_send_receive_spdm_measurement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:722,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:723,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:725,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:726,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:726,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:726,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:726,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:729,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:729,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:731,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:731,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:732,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:732,1
    - Dst: secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:733,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:733,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:735,1
    - Dst: append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:774,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:779,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:781,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:794,1
    - Dst: append_message_a
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:798,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:798,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:803,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:803,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:804,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:805,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:805,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:805,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:806,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:807,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:807,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:810,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:844,1
    - Dst: common::util::get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:844,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:846,1
    - Dst: append_message_a
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:847,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:847,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:854,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:858,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:858,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:881,1
    - Dst: SpdmMeasurementAttributes::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:888,1
    - Dst: SpdmMeasurementOperation::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:890,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:881,1
    - Dst: None::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:908,1
    - Dst: BytesMutStrubbed::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:908,1
    - Dst: None::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:909,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:909,1
    - Dst: ManagedBufferL1L2::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:910,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:911,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:911,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:912,1
    - Dst: None::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:913,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:912,1
    - Dst: SpdmSignatureStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:915,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:917,1
    - Dst: None::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:918,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:919,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:921,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:919,1
    - Dst: Self::reset_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:924,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:925,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:926,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:925,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:928,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:928,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:931,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:931,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:934,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:935,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:934,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:938,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:938,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:941,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:942,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:942,1
    - Dst: crypto::spdm_asym_verify
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:947,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:951,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:952,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs:963,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 393
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 964
      start: 720
    functionDepth: 8
    functionLinenumber: 720
    functionLinenumberEnd: 964
    functionName: test_case3_send_receive_spdm_measurement
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs
    functionUses: 0
    functionsReached:
    - get_signing_prefix_context
    - SpdmDer::SpdmDerCertChain
    - unwrap
    - SpdmMeasurementOperation::Unknown
    - SharedBuffer::new
    - secret::measurement::register
    - BytesMutStrubbed::unwrap
    - clone
    - copy_from_slice
    - get_hash_size
    - append_message_a
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - common::util::get_rsp_cert_chain_buff
    - ManagedBufferL1L2::default
    - SpdmMeasurementAttributes::empty
    - None::clone
    - SpdmSignatureStruct::default
    - Self::reset_message
    - responder::ResponderContext::new
    - is_ok
    - None::as_ref
    - crypto::hash::hash_all
    - Some
    - Self::append_message
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - append_message
    - RequesterContext::new
    - '&[u8]::len'
    - Mutex::new
    - executor::block_on
    - Option::unwrap
    - SpdmMeasurementRecordStructure::default
    - crypto::spdm_asym_verify
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - set_connection_state
    - Self::send_receive_spdm_measurement
    - reset_runtime_info
    - Self::as_ref
    linkageType: ''
    returnType: void
    signature: fn test_case3_send_receive_spdm_measurement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:20,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:21,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:24,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:27,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:29,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:30,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:32,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:42,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:42,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:43,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:43,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:44,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:47,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:78,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:80,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:80,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:81,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:82,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:82,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:82,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:83,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:84,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:84,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:87,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:97,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:97,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:98,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:98,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:99,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:102,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:133,1
    - Dst: Self::send_receive_spdm_heartbeat
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:135,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:135,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 116
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 142
    functionName: test_case0_send_receive_spdm_heartbeat
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs
    functionUses: 0
    functionsReached:
    - Self::send_receive_spdm_heartbeat
    - unwrap
    - SharedBuffer::new
    - clone
    - SpdmKemAlgo::empty
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - is_ok
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_heartbeat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:20,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:21,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:24,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:27,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:29,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:30,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:32,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:38,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:43,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:43,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:44,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:45,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:45,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:45,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:46,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:47,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:47,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:50,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:57,1
    - Dst: Self::send_receive_spdm_capability
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:65,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:65,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 18
    functionDepth: 7
    functionLinenumber: 18
    functionLinenumberEnd: 69
    functionName: test_case0_send_receive_spdm_capability
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - Mutex::new
    - RequesterContext::new
    - reset_runtime_info
    - is_ok
    - executor::block_on
    - common::util::create_info
    - Self::send_receive_spdm_capability
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_capability()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:18,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:19,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:22,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:22,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:25,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:27,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:27,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:28,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:28,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:30,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:37,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:37,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:38,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:39,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:39,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:39,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:40,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:41,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:41,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:44,1
    - Dst: Self::send_receive_spdm_version
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:51,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:51,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 16
    functionDepth: 7
    functionLinenumber: 16
    functionLinenumberEnd: 55
    functionName: test_case0_send_receive_spdm_version
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::send_receive_spdm_version
    - FakeSpdmDeviceIoReceve::new
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - Mutex::new
    - RequesterContext::new
    - executor::block_on
    - common::util::create_info
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_version()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_impl_sample::init_watchdog
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:23,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:25,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:26,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:29,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:29,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:32,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:32,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:34,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:34,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:35,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:35,1
    - Dst: secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:36,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:36,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:37,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:37,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:39,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:46,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:46,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:47,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:48,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:48,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:48,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:49,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:50,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:50,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:53,1
    - Dst: Self::init_connection
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:61,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:61,1
    - Dst: Self::send_receive_spdm_digest
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:64,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:64,1
    - Dst: Self::send_receive_spdm_certificate
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:67,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:67,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:79,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:88,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:97,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 22
    functionDepth: 13
    functionLinenumber: 22
    functionLinenumberEnd: 107
    functionName: test_case0_start_session
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - secret::measurement::register
    - clone
    - secret::psk::register
    - common::util::create_info
    - Self::send_receive_spdm_certificate
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - is_ok
    - Self::init_connection
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - Self::send_receive_spdm_digest
    - executor::block_on
    - Mutex::new
    - Arc::new
    - Self::start_session
    - FakeSpdmDeviceIoReceve::new
    - watchdog_impl_sample::init_watchdog
    linkageType: ''
    returnType: void
    signature: fn test_case0_start_session()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_impl_sample::init_watchdog
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:112,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:113,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:114,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:116,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:117,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:117,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:117,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:117,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:120,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:120,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:122,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:122,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:123,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:123,1
    - Dst: secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:124,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:124,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:125,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:125,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:127,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:134,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:134,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:135,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:136,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:136,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:136,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:137,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:138,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:138,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:141,1
    - Dst: Self::init_connection
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:149,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:149,1
    - Dst: Self::send_receive_spdm_digest
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:152,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:152,1
    - Dst: Self::send_receive_spdm_certificate
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:155,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:155,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:167,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:176,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:185,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:194,1
    - Dst: Self::end_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:203,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:206,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:215,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:224,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 110
    functionDepth: 13
    functionLinenumber: 110
    functionLinenumberEnd: 225
    functionName: test_case0_get_next_half_session
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - secret::measurement::register
    - clone
    - secret::psk::register
    - common::util::create_info
    - Self::send_receive_spdm_certificate
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - is_ok
    - Self::end_session
    - Self::init_connection
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - Self::send_receive_spdm_digest
    - executor::block_on
    - Mutex::new
    - Arc::new
    - Self::start_session
    - FakeSpdmDeviceIoReceve::new
    - watchdog_impl_sample::init_watchdog
    linkageType: ''
    returnType: void
    signature: fn test_case0_get_next_half_session()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_impl_sample::init_watchdog
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:230,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:231,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:232,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:234,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:235,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:235,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:235,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:235,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:238,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:238,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:240,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:240,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:241,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:241,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:243,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:253,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:253,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:254,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:254,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:255,1
    - Dst: protocol::SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:258,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:289,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:292,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:292,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:293,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:294,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:294,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:294,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:295,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:296,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:296,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:299,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:309,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:309,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:310,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:310,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:311,1
    - Dst: protocol::SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:314,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:345,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:348,1
    - Dst: SpdmMessagePayload::SpdmEndSessionRequest
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:355,1
    - Dst: SpdmEndSessionRequestAttributes::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:356,1
    - Dst: Writer::used
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:362,1
    - Dst: Self::send_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:364,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:365,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:364,1
    - Dst: Self::receive_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:372,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:373,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:372,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 142
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 379
      start: 228
    functionDepth: 6
    functionLinenumber: 228
    functionLinenumberEnd: 379
    functionName: test_case0_receive_secured_message
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - Self::send_message
    - clone
    - Writer::init
    - Self::receive_message
    - SpdmMessagePayload::SpdmEndSessionRequest
    - common::util::create_info
    - protocol::SpdmKemAlgo::empty
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - is_ok
    - Some
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Writer::used
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - SpdmEndSessionRequestAttributes::empty
    - watchdog_impl_sample::init_watchdog
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_receive_secured_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:20,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:21,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:21,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:23,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:23,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:27,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:27,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:28,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:28,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:30,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:37,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:54,1
    - Dst: SpdmMessagePayload::SpdmGetDigestsRequest
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:60,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:67,1
    - Dst: SpdmContext::encap_handle_get_digest
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:69,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:70,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:71,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:71,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:73,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 19
    functionDepth: 9
    functionLinenumber: 19
    functionLinenumberEnd: 81
    functionName: test_encap_handle_get_digest
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - Some
    - SpdmContext::encap_handle_get_digest
    - SharedBuffer::new
    - requester::RequesterContext::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - Writer::init
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - SpdmMessageHeader::read
    - SpdmMessagePayload::SpdmGetDigestsRequest
    - common::util::create_info
    - SpdmDigestsResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_encap_handle_get_digest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '{

        crate::common::crypto_callback::FAKE_RAND,

        crate::common::device_io::SharedBuffer},

        crate::common::secret_callback::*,

        crate::common::transport::PciDoeTransportEncap,

        crate::common::util::create_info'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:25,1
    - Dst: '{

        crate::common::crypto_callback::FAKE_RAND,

        crate::common::device_io::SharedBuffer},

        crate::common::secret_callback::*,

        crate::common::transport::PciDoeTransportEncap,

        crate::common::util::create_info'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:26,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:29,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:29,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:34,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:34,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:36,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:36,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:37,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:37,1
    - Dst: crypto::rand::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:38,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:38,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:40,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:47,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:49,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:75,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:81,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:81,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:82,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:82,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:83,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:84,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:84,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:84,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:85,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:89,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:95,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:107,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:107,1
    - Dst: Self::send_receive_spdm_challenge
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:119,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:123,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:123,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 150
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 24
    functionDepth: 9
    functionLinenumber: 24
    functionLinenumberEnd: 129
    functionName: test_case0_send_receive_spdm_challenge
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs
    functionUses: 0
    functionsReached:
    - crypto::rand::register
    - SharedBuffer::new
    - clone
    - Self::send_receive_spdm_challenge
    - SpdmChallengeContextStruct::default
    - responder::ResponderContext::new
    - Some
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - reset_runtime_info
    - spdmlib::secret::pqc_asym_sign::register
    - '{

      crate::common::crypto_callback::FAKE_RAND,

      crate::common::device_io::SharedBuffer},

      crate::common::secret_callback::*,

      crate::common::transport::PciDoeTransportEncap,

      crate::common::util::create_info'
    - get_rsp_cert_chain_buff
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_challenge()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:27,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:28,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:30,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:31,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:31,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:34,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:34,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:36,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:36,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:37,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:37,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:39,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:46,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:73,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:78,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:78,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:79,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:80,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:80,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:80,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:81,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:82,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:82,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:85,1
    - Dst: Self::send_receive_spdm_digest
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:106,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:106,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 116
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 25
    functionDepth: 6
    functionLinenumber: 25
    functionLinenumberEnd: 110
    functionName: test_case0_send_receive_spdm_digest
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - create_info
    - Some
    - set_connection_state
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - RequesterContext::new
    - Mutex::new
    - Self::send_receive_spdm_digest
    - executor::block_on
    - responder::ResponderContext::new
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_digest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:115,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:115,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:116,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:116,1
    - Dst: executor::add_task
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:118,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:119,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:120,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:121,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:122,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:122,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:122,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:122,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:125,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:125,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:126,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:133,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:147,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:147,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:148,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:149,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:149,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:149,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:150,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:151,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:151,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:154,1
    - Dst: Self::send_receive_spdm_digest
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:161,1
    - Dst: executor::add_task
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:169,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:170,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:171,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:172,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:173,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:173,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:173,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:173,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:176,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:176,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:177,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:184,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:198,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:198,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:199,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:200,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:200,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:200,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:201,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:202,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:202,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:205,1
    - Dst: Self::send_receive_spdm_certificate
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:212,1
    - Dst: executor::add_task
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:220,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:221,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:222,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:223,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:224,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:224,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:224,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:224,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:227,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:227,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:228,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:235,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:249,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:249,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:250,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:251,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:251,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:251,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:252,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:253,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:253,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:256,1
    - Dst: Self::send_receive_spdm_challenge
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:263,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:267,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:267,1
    - Dst: executor::add_task
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:277,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:278,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:279,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:280,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:281,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:281,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:281,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:281,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:284,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:284,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:285,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:292,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:306,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:306,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:307,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:308,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:308,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:308,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:309,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:310,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:310,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:313,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:322,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:326,1
    - Dst: executor::poll_tasks
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs:346,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 209
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 114
    functionDepth: 9
    functionLinenumber: 114
    functionLinenumberEnd: 347
    functionName: issue_other_request_before_vca_negotiated
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - clone
    - executor::add_task
    - Self::send_receive_spdm_challenge
    - create_info
    - Self::send_receive_spdm_certificate
    - secret::pqc_asym_sign::register
    - SpdmChallengeContextStruct::default
    - responder::ResponderContext::new
    - Some
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - Self::send_receive_spdm_digest
    - Mutex::new
    - SpdmMeasurementRecordStructure::default
    - Arc::new
    - executor::poll_tasks
    - FakeSpdmDeviceIoReceve::new
    - Self::send_receive_spdm_measurement
    linkageType: ''
    returnType: void
    signature: fn issue_other_request_before_vca_negotiated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:20,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:23,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:25,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:25,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:29,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:30,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:32,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:42,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:42,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:43,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:43,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:44,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:47,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:78,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:81,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:81,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:82,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:83,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:83,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:83,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:84,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:85,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:85,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:88,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:98,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:98,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:99,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:99,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:100,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:103,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:134,1
    - Dst: Self::end_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:137,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:137,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 116
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 141
    functionName: test_case0_send_receive_spdm_end_session
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - SpdmKemAlgo::empty
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - is_ok
    - Self::end_session
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_end_session()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:21,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:22,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:25,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:28,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:28,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:30,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:31,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:31,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:33,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:43,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:43,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:44,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:44,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:45,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:48,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:52,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:55,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:57,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:59,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:63,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:66,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:70,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:73,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:73,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:74,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:75,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:75,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:75,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:76,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:77,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:77,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:80,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:90,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:90,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:91,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:91,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:92,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:95,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:99,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:102,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:104,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:106,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:110,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:113,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:117,1
    - Dst: Self::send_receive_spdm_key_update
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:121,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:121,1
    - Dst: SpdmKeyUpdateOperation::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:127,1
    - Dst: Self::send_receive_spdm_key_update
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:128,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:128,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 169
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 19
    functionDepth: 10
    functionLinenumber: 19
    functionLinenumberEnd: 135
    functionName: test_case0_send_receive_spdm_key_update
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs
    functionUses: 0
    functionsReached:
    - Self::send_receive_spdm_key_update
    - unwrap
    - SharedBuffer::new
    - generate_data_secret
    - clone
    - SpdmKemAlgo::empty
    - Box::new
    - common::util::create_info
    - generate_handshake_secret
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - SpdmKeyUpdateOperation::Unknown
    - responder::ResponderContext::new
    - is_ok
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - is_err
    - set_shared_secret
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_key_update()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:25,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:26,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:29,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:29,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:32,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:32,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:34,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:34,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:35,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:35,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:37,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:43,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:48,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:48,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:49,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:50,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:50,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:50,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:51,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:52,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:52,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:55,1
    - Dst: Self::send_receive_spdm_algorithm
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:62,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:62,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 66
    functionName: test_case0_send_receive_spdm_algorithm
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - Mutex::new
    - RequesterContext::new
    - Self::send_receive_spdm_algorithm
    - executor::block_on
    - common::util::create_info
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_algorithm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:71,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:72,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:74,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:75,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:75,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:75,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:75,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:78,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:78,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:80,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:80,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:81,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:81,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:83,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:89,1
    - Dst: insert
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:95,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:113,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:113,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:114,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:115,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:115,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:115,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:116,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:117,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:117,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:120,1
    - Dst: insert
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:128,1
    - Dst: insert
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:133,1
    - Dst: Self::send_receive_spdm_algorithm
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:151,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:151,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 116
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 69
    functionDepth: 7
    functionLinenumber: 69
    functionLinenumberEnd: 161
    functionName: test_case1_send_receive_spdm_algorithm
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - Mutex::new
    - insert
    - RequesterContext::new
    - Self::send_receive_spdm_algorithm
    - executor::block_on
    - common::util::create_info
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case1_send_receive_spdm_algorithm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:166,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:167,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:169,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:170,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:170,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:170,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:170,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:173,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:173,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:175,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:175,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:176,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:176,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:178,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:184,1
    - Dst: insert
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:190,1
    - Dst: remove
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:195,1
    - Dst: remove
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:200,1
    - Dst: insert
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:205,1
    - Dst: remove
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:210,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:228,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:228,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:229,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:230,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:230,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:230,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:231,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:232,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:232,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:235,1
    - Dst: insert
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:243,1
    - Dst: remove
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:248,1
    - Dst: remove
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:253,1
    - Dst: insert
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:258,1
    - Dst: Self::send_receive_spdm_algorithm
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:276,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:276,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 152
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 164
    functionDepth: 7
    functionLinenumber: 164
    functionLinenumberEnd: 286
    functionName: test_case2_send_receive_spdm_algorithm
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - Mutex::new
    - insert
    - RequesterContext::new
    - Self::send_receive_spdm_algorithm
    - executor::block_on
    - remove
    - common::util::create_info
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case2_send_receive_spdm_algorithm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '{

        crate::common::device_io::SharedBuffer},

        crate::common::secret_callback::*,

        crate::common::transport::PciDoeTransportEncap,

        crate::common::util::create_info'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:27,1
    - Dst: '{

        crate::common::device_io::SharedBuffer},

        crate::common::secret_callback::*,

        crate::common::transport::PciDoeTransportEncap,

        crate::common::util::create_info'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:28,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:30,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:31,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:31,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:35,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:35,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:37,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:37,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:38,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:38,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:40,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:60,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:60,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:70,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:83,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:89,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:89,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:90,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:90,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:91,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:94,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:98,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:99,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:102,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:103,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:104,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:104,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:109,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:111,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:113,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:117,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:120,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:124,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:128,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:128,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:129,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:130,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:130,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:130,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:131,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:132,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:132,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:135,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:167,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:167,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:169,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:171,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:171,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:172,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:172,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:173,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:176,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:180,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:181,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:182,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:182,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:187,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:189,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:191,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:195,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:198,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:202,1
    - Dst: Self::send_receive_spdm_finish
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:205,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:205,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 319
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 25
    functionDepth: 11
    functionLinenumber: 25
    functionLinenumberEnd: 212
    functionName: test_case0_send_receive_spdm_finish
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - unwrap
    - SharedBuffer::new
    - generate_data_secret
    - clone
    - SpdmKemAlgo::empty
    - Box::new
    - generate_handshake_secret
    - Self::send_receive_spdm_finish
    - secret::pqc_asym_sign::register
    - '{

      crate::common::device_io::SharedBuffer},

      crate::common::secret_callback::*,

      crate::common::transport::PciDoeTransportEncap,

      crate::common::util::create_info'
    - gen_array_clone
    - responder::ResponderContext::new
    - set_last_session_id
    - is_ok
    - Some
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - Option::unwrap
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - reset_runtime_info
    - set_shared_secret
    - setup
    - get_rsp_cert_chain_buff
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '{

        crate::common::device_io::SharedBuffer},

        crate::common::secret_callback::*,

        crate::common::transport::PciDoeTransportEncap,

        crate::common::util::create_info'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:218,1
    - Dst: '{

        crate::common::device_io::SharedBuffer},

        crate::common::secret_callback::*,

        crate::common::transport::PciDoeTransportEncap,

        crate::common::util::create_info'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:219,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:221,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:222,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:222,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:222,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:222,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:226,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:226,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:228,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:228,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:229,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:229,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:231,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:251,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:251,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:261,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:263,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:263,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:264,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:264,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:265,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:268,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:272,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:273,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:276,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:277,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:278,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:278,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:284,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:286,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:288,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:292,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:295,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:299,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:303,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:303,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:304,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:305,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:305,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:305,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:306,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:307,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:307,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:310,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:329,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:329,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:331,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:333,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:333,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:334,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:334,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:335,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:338,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:342,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:343,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:344,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:344,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:349,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:351,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:353,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:357,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:360,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:364,1
    - Dst: Self::send_receive_spdm_finish
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:367,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:367,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:373,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 269
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 216
    functionDepth: 11
    functionLinenumber: 216
    functionLinenumberEnd: 381
    functionName: test_case1_send_receive_spdm_finish
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - unwrap
    - SharedBuffer::new
    - generate_data_secret
    - clone
    - SpdmKemAlgo::empty
    - Box::new
    - generate_handshake_secret
    - Self::send_receive_spdm_finish
    - secret::pqc_asym_sign::register
    - '{

      crate::common::device_io::SharedBuffer},

      crate::common::secret_callback::*,

      crate::common::transport::PciDoeTransportEncap,

      crate::common::util::create_info'
    - gen_array_clone
    - iter
    - responder::ResponderContext::new
    - set_last_session_id
    - is_ok
    - Some
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - Option::unwrap
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - reset_runtime_info
    - set_shared_secret
    - setup
    - get_rsp_cert_chain_buff
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case1_send_receive_spdm_finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:26,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:30,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:31,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:31,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:33,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:40,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:57,1
    - Dst: SpdmMessagePayload::SpdmGetCertificateRequest
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:63,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:74,1
    - Dst: SpdmContext::encap_handle_get_certificate
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:76,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:77,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:78,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:78,1
    - Dst: SpdmCertificateResponsePayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:80,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 22
    functionDepth: 9
    functionLinenumber: 22
    functionLinenumberEnd: 90
    functionName: test_encap_handle_get_certificate
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - SpdmCertificateResponsePayload::spdm_read
    - FakeSpdmDeviceIoReceve::new
    - Some
    - SharedBuffer::new
    - RequesterContext::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - Writer::init
    - Mutex::new
    - SpdmMessageHeader::read
    - SpdmMessagePayload::SpdmGetCertificateRequest
    - Reader::init
    - Option::unwrap
    - SpdmContext::encap_handle_get_certificate
    - common::util::create_info
    linkageType: ''
    returnType: void
    signature: fn test_encap_handle_get_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:23,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:27,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:30,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:30,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:32,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:32,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:33,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:33,1
    - Dst: ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:35,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:42,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:42,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:43,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:44,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:44,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:44,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:45,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:46,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:46,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:49,1
    - Dst: Self::send_spdm_vendor_defined_request
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:67,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:69,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:67,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 79
    functionName: test_case0_send_spdm_vendor_defined_request
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - Some
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - RequesterContext::new
    - Mutex::new
    - executor::block_on
    - Self::send_spdm_vendor_defined_request
    - ResponderContext::new
    - common::util::create_info
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_spdm_vendor_defined_request()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:19,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:20,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:20,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:22,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:22,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:22,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:26,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:35,1
    - Dst: SpdmContext::encode_encap_error_response
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:36,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:38,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:39,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:39,1
    - Dst: SpdmErrorResponsePayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:40,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 18
    functionDepth: 9
    functionLinenumber: 18
    functionLinenumberEnd: 50
    functionName: test_encode_encap_error_response
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - SpdmContext::encode_encap_error_response
    - SharedBuffer::new
    - requester::RequesterContext::new
    - Writer::init
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - SpdmMessageHeader::read
    - common::util::create_info
    - SpdmErrorResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_encode_encap_error_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:33,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:35,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:35,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:36,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:37,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:37,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:37,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:37,1
    - Dst: setup_test_context_and_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:41,1
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:57,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:58,1
    - Dst: receive
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:59,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:60,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:60,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:59,1
    - Dst: decode_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:66,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:66,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:72,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:73,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:73,1
    - Dst: SpdmGetEncapsulatedRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:75,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 31
    functionDepth: 8
    functionLinenumber: 31
    functionLinenumberEnd: 84
    functionName: test_send_get_encapsulated_request
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - receive
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - SharedBuffer::new
    - executor::block_on
    - Mutex::new
    - decode_secured_message
    - SpdmMessageHeader::read
    - Reader::init
    - Option::unwrap
    - SpdmGetEncapsulatedRequestPayload::spdm_read
    - lock
    - setup_test_context_and_session
    - common::util::create_info
    - deref_mut
    linkageType: ''
    returnType: void
    signature: fn test_send_get_encapsulated_request()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:89,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:90,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:90,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:91,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:92,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:92,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:92,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:92,1
    - Dst: setup_test_context_and_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:96,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:105,1
    - Dst: encode_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:127,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:129,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:127,1
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:134,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:135,1
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:147,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:148,1
    - Dst: receive
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:149,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:150,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:150,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:149,1
    - Dst: decode_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:156,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:156,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:163,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:164,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:164,1
    - Dst: SpdmDeliverEncapsulatedResponsePayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:166,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:166,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:175,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:175,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:176,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 87
    functionDepth: 8
    functionLinenumber: 87
    functionLinenumberEnd: 185
    functionName: test_receive_encapsulated_request
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs
    functionUses: 0
    functionsReached:
    - receive
    - unwrap
    - SharedBuffer::new
    - Writer::init
    - SpdmMessageHeader::read
    - lock
    - common::util::create_info
    - decode_secured_message
    - setup_test_context_and_session
    - SpdmDigestsResponsePayload::spdm_read
    - deref_mut
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - Arc::new
    - Writer::used_slice
    - FakeSpdmDeviceIoReceve::new
    - encode_secured_message
    - SpdmDeliverEncapsulatedResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_receive_encapsulated_request()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:191,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:192,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:192,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:193,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:194,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:194,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:194,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:194,1
    - Dst: setup_test_context_and_session
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:198,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:208,1
    - Dst: encode_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:238,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:240,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:238,1
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:245,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:246,1
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:258,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:259,1
    - Dst: receive
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:260,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:261,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:261,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:260,1
    - Dst: decode_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:266,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:266,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:273,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:274,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:274,1
    - Dst: SpdmDeliverEncapsulatedResponsePayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:276,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:276,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:285,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:285,1
    - Dst: SpdmCertificateResponsePayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:287,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 189
    functionDepth: 8
    functionLinenumber: 189
    functionLinenumberEnd: 296
    functionName: test_receive_encapsulated_response_ack
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs
    functionUses: 0
    functionsReached:
    - receive
    - unwrap
    - SharedBuffer::new
    - Writer::init
    - SpdmMessageHeader::read
    - lock
    - common::util::create_info
    - SpdmCertificateResponsePayload::spdm_read
    - decode_secured_message
    - setup_test_context_and_session
    - deref_mut
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - Arc::new
    - Writer::used_slice
    - FakeSpdmDeviceIoReceve::new
    - encode_secured_message
    - SpdmDeliverEncapsulatedResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_receive_encapsulated_response_ack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:300,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:302,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:302,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:303,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:303,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:304,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:304,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:312,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:317,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:317,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:318,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:318,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:319,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:322,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 4
    argNames:
    - device_io
    - transport_encap
    - config_info
    - provision_info
    argTypes:
    - Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - SpdmConfigInfo
    - SpdmProvisionInfo
    constantsTouched: []
    func_position:
      end: 329
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 329
    functionName: setup_test_context_and_session
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs
    functionUses: 6
    functionsReached:
    - set_connection_state
    - unwrap
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - SpdmKemAlgo::empty
    - crypto::hmac::register
    - gen_array_clone
    - SpdmSession::new
    - set_crypto_param
    - ResponderContext::new
    - setup
    - set_session_state
    linkageType: ''
    returnType: ResponderContext
    signature: 'fn setup_test_context_and_session(device_io: Arc<Mutex<dyn SpdmDeviceIo
      + Send + Sync>>,transport_encap: Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,config_info:
      SpdmConfigInfo,provision_info: SpdmProvisionInfo,) -> ResponderContext'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '{

        crate::common::device_io::SharedBuffer},

        crate::common::secret_callback::*,

        crate::common::transport::PciDoeTransportEncap,

        crate::common::util::create_info'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:27,1
    - Dst: '{

        crate::common::device_io::SharedBuffer},

        crate::common::secret_callback::*,

        crate::common::transport::PciDoeTransportEncap,

        crate::common::util::create_info'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:28,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:30,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:31,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:31,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:35,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:35,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:37,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:37,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:38,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:38,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:40,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:47,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:65,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:65,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:75,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:80,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:80,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:81,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:82,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:82,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:82,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:83,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:84,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:84,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:87,1
    - Dst: Self::send_receive_spdm_certificate
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:110,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:110,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 131
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 25
    functionDepth: 11
    functionLinenumber: 25
    functionLinenumberEnd: 117
    functionName: test_case0_send_receive_spdm_certificate
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - get_rsp_cert_chain_buff
    - FakeSpdmDeviceIoReceve::new
    - Some
    - set_connection_state
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - reset_runtime_info
    - Mutex::new
    - '{

      crate::common::device_io::SharedBuffer},

      crate::common::secret_callback::*,

      crate::common::transport::PciDoeTransportEncap,

      crate::common::util::create_info'
    - RequesterContext::new
    - Self::send_receive_spdm_certificate
    - executor::block_on
    - responder::ResponderContext::new
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:139,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:152,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:166,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:180,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:194,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:208,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:222,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:236,1
    - Dst: executor::add_task
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:240,1
    - Dst: '{

        crate::common::device_io::SharedBuffer},

        crate::common::secret_callback::*,

        crate::common::transport::PciDoeTransportEncap,

        crate::common::util::create_info'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:241,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:242,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:242,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:243,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:243,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:243,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:243,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:244,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:246,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:254,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:254,1
    - Dst: Self::handle_spdm_certificate_partial_response
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:257,1
    - Dst: executor::poll_tasks
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 121
    functionDepth: 7
    functionLinenumber: 121
    functionLinenumberEnd: 276
    functionName: test_handle_spdm_certificate_partial_response
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - executor::poll_tasks
    - FakeSpdmDeviceIoReceve::new
    - Err
    - Some
    - SharedBuffer::new
    - RequesterContext::new
    - Ok
    - SpdmCertChainBuffer::default
    - executor::add_task
    - '{

      crate::common::device_io::SharedBuffer},

      crate::common::secret_callback::*,

      crate::common::transport::PciDoeTransportEncap,

      crate::common::util::create_info'
    - Mutex::new
    - Self::handle_spdm_certificate_partial_response
    linkageType: ''
    returnType: void
    signature: fn test_handle_spdm_certificate_partial_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:29,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:30,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:33,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:33,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:33,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:33,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:37,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:37,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:39,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:39,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:40,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:40,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:42,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:65,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:73,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:73,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:74,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:74,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:75,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:78,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:82,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:83,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:87,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:89,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:90,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:90,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:93,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:97,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:100,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:100,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:101,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:102,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:102,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:102,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:103,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:104,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:104,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:107,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:134,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:134,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:135,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:135,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:136,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:139,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:143,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:144,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:148,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:150,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:151,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:151,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:154,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:158,1
    - Dst: Self::send_receive_spdm_psk_finish
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:162,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 255
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 166
    functionName: test_case0_send_receive_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - unwrap
    - SharedBuffer::new
    - set_use_psk
    - clone
    - SpdmKemAlgo::empty
    - Box::new
    - secret::psk::register
    - Self::send_receive_spdm_psk_finish
    - create_info
    - generate_handshake_secret
    - crypto::hmac::register
    - gen_array_clone
    - responder::ResponderContext::new
    - Some
    - FakeSpdmDeviceIo::new
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - Option::unwrap
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_psk_finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:172,1
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:173,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:175,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:176,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:176,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:176,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:176,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:180,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:180,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:182,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:182,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:183,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:183,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:185,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:200,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:200,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:201,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:201,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:202,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:205,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:209,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:210,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:214,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:216,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:217,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:217,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:220,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:225,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:228,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:228,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:229,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:230,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:230,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:230,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:231,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:232,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:232,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:235,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:250,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:250,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:251,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:251,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:252,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:255,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:259,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:260,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:264,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:266,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:267,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:267,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:270,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:274,1
    - Dst: Self::send_receive_spdm_psk_finish
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:278,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:278,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:284,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 217
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 170
    functionDepth: 8
    functionLinenumber: 170
    functionLinenumberEnd: 292
    functionName: test_case1_send_receive_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - unwrap
    - SharedBuffer::new
    - set_use_psk
    - clone
    - SpdmKemAlgo::empty
    - Box::new
    - secret::psk::register
    - Self::send_receive_spdm_psk_finish
    - create_info
    - generate_handshake_secret
    - crypto::hmac::register
    - gen_array_clone
    - iter
    - responder::ResponderContext::new
    - is_ok
    - Some
    - FakeSpdmDeviceIo::new
    - RequesterContext::new
    - executor::block_on
    - Mutex::new
    - Option::unwrap
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case1_send_receive_spdm_psk_finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:23,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:27,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:30,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:30,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:32,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:32,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:34,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:60,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:65,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:65,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:66,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:67,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:67,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:67,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:68,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:69,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:69,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:72,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:101,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:104,1
    - Dst: Self::send_receive_spdm_psk_exchange
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:106,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:107,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:106,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 149
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 113
    functionName: test_case0_send_receive_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::send_receive_spdm_psk_exchange
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - Some
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - RequesterContext::new
    - clone
    - responder::ResponderContext::new
    - '&str::len'
    - Mutex::new
    - copy_from_slice
    - executor::block_on
    - secret::psk::register
    - common::util::create_info
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_receive_spdm_psk_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:118,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:119,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:121,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:122,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:122,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:122,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:122,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:125,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:125,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:127,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:127,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:129,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:139,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:144,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:144,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:145,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:146,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:146,1
    - Dst: FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:146,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:147,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:148,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:148,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:151,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:165,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:168,1
    - Dst: Self::send_receive_spdm_psk_exchange
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:170,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:171,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:170,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:176,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 116
    functionDepth: 7
    functionLinenumber: 116
    functionLinenumberEnd: 184
    functionName: test_case1_send_receive_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::send_receive_spdm_psk_exchange
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - Some
    - SharedBuffer::new
    - FakeSpdmDeviceIo::new
    - RequesterContext::new
    - clone
    - responder::ResponderContext::new
    - '&str::len'
    - Mutex::new
    - copy_from_slice
    - executor::block_on
    - iter
    - secret::psk::register
    - common::util::create_info
    - is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case1_send_receive_spdm_psk_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:26,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:29,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:30,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:31,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:39,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:47,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:57,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:57,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:58,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:58,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:59,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:62,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:93,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:96,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:97,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:99,1
    - Dst: SpdmContext::handle_spdm_end_session
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:101,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 105
    functionName: test_case0_handle_spdm_end_session
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - copy_from_slice
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - SpdmContext::handle_spdm_end_session
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_end_session()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:35,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:36,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:36,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:37,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:38,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:38,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:38,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:38,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:42,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:42,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:43,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:43,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:45,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:52,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:66,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:72,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:80,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 87
    functionName: test_case0_handle_spdm_digest
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - Some
    - set_connection_state
    - SharedBuffer::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - Mutex::new
    - Writer::init
    - executor::block_on
    - common::util::create_info
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_digest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:94,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:95,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:97,1
    - Dst: super::version_rsp::construct_version_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:98,1
    - Dst: super::capability_rsp::consturct_capability_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:100,1
    - Dst: super::algorithm_rsp::consturct_algorithm_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:102,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:104,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:105,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:106,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:107,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:108,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:109,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:111,1
    - Dst: TestCase::get_certificate_chain_buffer
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:112,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:114,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:114,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:116,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:116,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:119,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:119,1
    - Dst: protocol::Message::GET_CERTIFICATE
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:130,1
    - Dst: protocol::Message::CERTIFICATE
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:142,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:149,1
    - Dst: to_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:149,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:155,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:156,1
    - Dst: protocol::Message::GET_DIGESTS
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:160,1
    - Dst: protocol::Message::DIGESTS
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:170,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:176,1
    - Dst: spdmlib::crypto::hash::hash_all
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:177,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:179,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:177,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:182,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:182,1
    - Dst: to_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:182,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:189,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 91
    functionDepth: 11
    functionLinenumber: 91
    functionLinenumberEnd: 197
    functionName: test_case1_handle_spdm_digest
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs
    functionUses: 0
    functionsReached:
    - to_vec
    - SpdmResult::unwrap
    - common::util::create_info
    - protocol::Message::GET_DIGESTS
    - Vec::new
    - spdmlib::crypto::hash::hash_all
    - super::algorithm_rsp::consturct_algorithm_positive
    - Self::push
    - super::version_rsp::construct_version_positive
    - protocol::Message::DIGESTS
    - protocol::Message::GET_CERTIFICATE
    - untrusted::Input::push
    - '&[u8]::len'
    - Option::expect
    - protocol::Message::CERTIFICATE
    - TestCase::get_certificate_chain_buffer
    - as_ref
    - push
    - SpdmResult::as_ref
    - super::capability_rsp::consturct_capability_positive
    linkageType: ''
    returnType: void
    signature: fn test_case1_handle_spdm_digest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:25,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:27,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:27,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:28,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:28,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:30,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:31,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:31,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:31,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:35,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:43,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:51,1
    - Dst: SpdmContext::handle_spdm_version
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:52,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:54,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:56,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:56,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:60,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:61,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:61,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:69,1
    - Dst: SpdmMessage::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:71,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:71,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 96
    functionName: test_case0_handle_spdm_version
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmMessageHeader::read
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - Self::IntoIter::enumerate
    - SpdmContext::handle_spdm_version
    - iter
    - responder::ResponderContext::new
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - SpdmMessage::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_version()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: protocol::Message::GET_VERSION
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:102,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:110,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:112,1
    - Dst: u8::from
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:113,1
    - Dst: SpdmVersion::default
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:113,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:116,1
    - Dst: flatten
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:116,1
    - Dst: enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:116,1
    - Dst: u8::from
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:117,1
    - Dst: protocol::Message::VERSION
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:121,1
    - Dst: '[T; N]::to_vec'
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 133
    functionName: construct_version_positive
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs
    functionUses: 4
    functionsReached:
    - protocol::Message::GET_VERSION
    - flatten
    - SpdmVersion::default
    - protocol::Message::VERSION
    - u8::from
    - gen_array_clone
    - iter
    - '[T; N]::to_vec'
    - common::util::create_info
    - enumerate
    linkageType: ''
    returnType: (TestSpdmMessage, TestSpdmMessage)
    signature: pub fn construct_version_positive() -> (TestSpdmMessage, TestSpdmMessage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:25,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:27,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:27,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:30,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:31,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:31,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:32,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:39,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:45,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:52,1
    - Dst: SpdmRequestCapabilityExFlags::default
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:58,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:62,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:63,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:66,1
    - Dst: SpdmContext::handle_spdm_capability
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:67,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:88,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:90,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:90,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:93,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:94,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:94,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:101,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:103,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:103,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:110,1
    - Dst: SpdmMessage::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:112,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:112,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 136
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 124
    functionName: test_case0_handle_spdm_capability
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmRequestCapabilityExFlags::default
    - copy_from_slice
    - SpdmMessageHeader::read
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - Self::IntoIter::enumerate
    - iter
    - responder::ResponderContext::new
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - SpdmContext::handle_spdm_capability
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - set_connection_state
    - SpdmMessage::spdm_read
    - SpdmGetCapabilitiesRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_capability()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:129,1
    - Dst: protocol::Message::GET_CAPABILITIES
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:131,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:139,1
    - Dst: protocol::Message::CAPABILITIES
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:147,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 162
    functionName: consturct_capability_positive
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs
    functionUses: 4
    functionsReached:
    - common::util::create_info
    - bits
    - protocol::Message::CAPABILITIES
    - protocol::Message::GET_CAPABILITIES
    linkageType: ''
    returnType: (TestSpdmMessage, TestSpdmMessage)
    signature: pub fn consturct_capability_positive() -> (TestSpdmMessage, TestSpdmMessage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:22,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:22,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:24,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:24,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:28,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:28,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:29,1
    - Dst: ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:31,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:42,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:47,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:47,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:48,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:48,1
    - Dst: SpdmGetDigestsRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:49,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 20
    functionDepth: 11
    functionLinenumber: 20
    functionLinenumberEnd: 56
    functionName: test_encode_encap_requst_get_digest
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Writer::used_slice
    - FakeSpdmDeviceIoReceve::new
    - SharedBuffer::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - Writer::init
    - Mutex::new
    - SpdmGetDigestsRequestPayload::spdm_read
    - Reader::init
    - Option::unwrap
    - SpdmMessageHeader::read
    - ResponderContext::new
    - common::util::create_info
    linkageType: ''
    returnType: void
    signature: fn test_encode_encap_requst_get_digest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:60,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:61,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:61,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:62,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:63,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:63,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:63,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:63,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:67,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:67,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:68,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:68,1
    - Dst: ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:70,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:81,1
    - Dst: SpdmMessagePayload::SpdmDigestsResponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:87,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:89,1
    - Dst: get_size
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:91,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:92,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:97,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:98,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:102,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 110
    functionName: test_handle_encap_response_digest
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - SpdmKeyUsageMask::empty
    - FakeSpdmDeviceIoReceve::new
    - SharedBuffer::new
    - get_size
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - Writer::init
    - Mutex::new
    - gen_array_clone
    - Box::new
    - ResponderContext::new
    - common::util::create_info
    - SpdmMessagePayload::SpdmDigestsResponse
    linkageType: ''
    returnType: void
    signature: fn test_handle_encap_response_digest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:30,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:30,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:32,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:32,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:32,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:36,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:36,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:37,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:37,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:39,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:48,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:48,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:49,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:49,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:50,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:53,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:57,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:60,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:65,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:68,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:72,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:79,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:82,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:83,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:85,1
    - Dst: SpdmContext::handle_spdm_psk_finish
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:87,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 27
    functionDepth: 6
    functionLinenumber: 27
    functionLinenumberEnd: 90
    functionName: test_case0_handle_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - copy_from_slice
    - Box::new
    - secret::psk::register
    - create_info
    - crypto::hmac::register
    - gen_array_clone
    - responder::ResponderContext::new
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - SpdmContext::handle_spdm_psk_finish
    - SpdmResult::encode
    - setup
    - SpdmResult::spdm_encode
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_psk_finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:96,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:97,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:97,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:98,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:99,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:99,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:99,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:99,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:103,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:103,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:104,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:104,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:106,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:115,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:115,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:116,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:116,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:117,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:120,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:124,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:127,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:132,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:135,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:139,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:146,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:149,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:150,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:152,1
    - Dst: SpdmContext::handle_spdm_psk_finish
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:154,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:156,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 94
    functionDepth: 6
    functionLinenumber: 94
    functionLinenumberEnd: 164
    functionName: test_case1_handle_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - copy_from_slice
    - Box::new
    - secret::psk::register
    - create_info
    - crypto::hmac::register
    - gen_array_clone
    - iter
    - responder::ResponderContext::new
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - SpdmContext::handle_spdm_psk_finish
    - SpdmResult::encode
    - setup
    - SpdmResult::spdm_encode
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case1_handle_spdm_psk_finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:21,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:23,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:24,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:25,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:25,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:26,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:26,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:28,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:38,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:38,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:39,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:39,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:40,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:43,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:47,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:50,1
    - Dst: SpdmMessagePayload::SpdmKeyUpdateResponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:56,1
    - Dst: Writer::used
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:62,1
    - Dst: SpdmContext::send_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:63,1
    - Dst: is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 67
    functionName: test_case0_send_secured_message
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - SpdmMessagePayload::SpdmKeyUpdateResponse
    - common::util::create_info
    - SpdmContext::send_secured_message
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - is_ok
    - secret::asym_sign::register
    - set_crypto_param
    - SpdmSession::new
    - Writer::used
    - FakeSpdmDeviceIoReceve::new
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_secured_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:70,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:72,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:73,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:74,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:74,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:75,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:75,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:76,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:87,1
    - Dst: SpdmMessageHeader::default
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:89,1
    - Dst: SpdmMessagePayload::SpdmKeyUpdateResponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:90,1
    - Dst: SpdmKeyUpdateResponsePayload::default
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:90,1
    - Dst: Writer::used
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:93,1
    - Dst: SpdmContext::send_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:94,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 98
    functionName: test_case1_send_secured_message
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyUpdateResponsePayload::default
    - FakeSpdmDeviceIoReceve::new
    - is_err
    - SharedBuffer::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - Writer::init
    - SpdmContext::send_secured_message
    - SpdmMessagePayload::SpdmKeyUpdateResponse
    - SpdmMessageHeader::default
    - Writer::used
    - common::util::create_info
    linkageType: ''
    returnType: void
    signature: fn test_case1_send_secured_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:102,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:111,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:113,1
    - Dst: Self::set_buffer
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:114,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:116,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:117,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:117,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:118,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:118,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:119,1
    - Dst: SpdmContext::receive_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:127,1
    - Dst: Option::is_ok
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 100
    functionDepth: 7
    functionLinenumber: 100
    functionLinenumberEnd: 131
    functionName: test_case0_receive_message
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs
    functionUses: 0
    functionsReached:
    - Option::is_ok
    - FakeSpdmDeviceIoReceve::new
    - SpdmContext::receive_message
    - SharedBuffer::new
    - Self::set_buffer
    - secret::asym_sign::register
    - Writer::init
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - common::util::create_info
    linkageType: ''
    returnType: void
    signature: fn test_case0_receive_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:135,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:144,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:146,1
    - Dst: Self::set_buffer
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:147,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:149,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:150,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:160,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:160,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:161,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:161,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:162,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:165,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:169,1
    - Dst: SpdmContext::process_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:171,1
    - Dst: is_err
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 173
    functionName: test_case0_process_message
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs
    functionUses: 0
    functionsReached:
    - FakeSpdmDeviceIoReceve::new
    - SpdmContext::process_message
    - is_err
    - unwrap
    - SharedBuffer::new
    - Self::set_buffer
    - Writer::init
    - responder::ResponderContext::new
    - SpdmKemAlgo::empty
    - gen_array_clone
    - set_crypto_param
    - SpdmSession::new
    - setup
    - common::util::create_info
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_process_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:176,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:178,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:179,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:181,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:188,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:188,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:189,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:189,1
    - Dst: secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:190,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:190,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:201,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:201,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:202,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:202,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:203,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:206,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:211,1
    - Dst: dispatch_data
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:227,1
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:228,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:231,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:236,1
    - Dst: patch_context
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:244,1
    - Dst: SpdmContext::dispatch_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:246,1
    - Dst: dispatch_data
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:252,1
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:253,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:256,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:261,1
    - Dst: SpdmContext::dispatch_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:267,1
    - Dst: dispatch_secured_data
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:276,1
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:277,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:280,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:284,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:286,1
    - Dst: SpdmContext::dispatch_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:292,1
    - Dst: dispatch_secured_data
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:299,1
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:300,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:303,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:307,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:309,1
    - Dst: SpdmContext::dispatch_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:315,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 181
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 175
    functionDepth: 13
    functionLinenumber: 175
    functionLinenumberEnd: 319
    functionName: test_case0_dispatch_secured_message
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - secret::measurement::register
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - dispatch_data
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - Some
    - SpdmRequestResponseCode::Unknown
    - dispatch_secured_data
    - secret::asym_sign::register
    - SpdmContext::dispatch_message
    - set_crypto_param
    - SpdmSession::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - patch_context
    - SpdmContext::dispatch_secured_message
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_dispatch_secured_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:371,1
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 2
    argNames:
    - num
    - status
    argTypes:
    - usize
    - bool
    constantsTouched: []
    func_position:
      end: 488
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 488
    functionName: dispatch_secured_data
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs
    functionUses: 1
    functionsReached:
    - SpdmRequestResponseCode::Unknown
    linkageType: ''
    returnType: "(\n    SpdmRequestResponseCode,\n    SpdmConnectionState,\n    SpdmSessionState,\n\
      )"
    signature: 'fn dispatch_secured_data(num: usize,status: bool,) -> (SpdmRequestResponseCode,SpdmConnectionState,SpdmSessionState,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:528,1
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - num
    - status
    argTypes:
    - usize
    - bool
    constantsTouched: []
    func_position:
      end: 563
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 563
    functionName: dispatch_data
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs
    functionUses: 1
    functionsReached:
    - SpdmRequestResponseCode::Unknown
    linkageType: ''
    returnType: (SpdmRequestResponseCode, SpdmConnectionState)
    signature: 'fn dispatch_data(num: usize, status: bool) -> (SpdmRequestResponseCode,
      SpdmConnectionState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:20,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:21,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:21,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:23,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:23,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:26,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:26,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:27,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:27,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:29,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:38,1
    - Dst: SpdmContext::write_spdm_error
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:39,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 43
    functionName: test_case0_send_spdm_error
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - SharedBuffer::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    - Mutex::new
    - Writer::init
    - executor::block_on
    - common::util::create_info
    - SpdmContext::write_spdm_error
    linkageType: ''
    returnType: void
    signature: fn test_case0_send_spdm_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:26,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:28,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:28,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:29,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:30,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:33,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:33,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:33,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:33,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:37,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:50,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:55,1
    - Dst: ring::rand::SystemRandom::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:57,1
    - Dst: ring::agreement::EphemeralPrivateKey::generate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:59,1
    - Dst: Result::ok
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:59,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:59,1
    - Dst: Result::compute_public_key
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:62,1
    - Dst: Result::ok
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:62,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:62,1
    - Dst: BytesMut::from
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:63,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:63,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:66,1
    - Dst: SpdmReqExchangeStruct::from_dhe
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:76,1
    - Dst: SpdmDheExchangeStruct::from
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:76,1
    - Dst: SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:77,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:77,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:107,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:110,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:111,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:114,1
    - Dst: SpdmContext::handle_spdm_key_exchange
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:115,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 118
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 23
    functionDepth: 13
    functionLinenumber: 23
    functionLinenumberEnd: 118
    functionName: test_case0_handle_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - copy_from_slice
    - BytesMut::from
    - SpdmResult::unwrap
    - SpdmResult::spdm_encode
    - common::util::create_info
    - ring::rand::SystemRandom::new
    - secret::pqc_asym_sign::register
    - crypto::hmac::register
    - responder::ResponderContext::new
    - Result::compute_public_key
    - ring::agreement::EphemeralPrivateKey::generate
    - SpdmContext::handle_spdm_key_exchange
    - Result::ok
    - SpdmDheExchangeStruct::from
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - SpdmReqExchangeStruct::from_dhe
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - SpdmResult::encode
    - SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_key_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:123,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:124,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:124,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:126,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:126,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:127,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:127,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:128,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:128,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:130,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:131,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:131,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:131,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:131,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:135,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:148,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:153,1
    - Dst: ring::rand::SystemRandom::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:155,1
    - Dst: ring::agreement::EphemeralPrivateKey::generate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:157,1
    - Dst: Result::ok
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:157,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:157,1
    - Dst: Result::compute_public_key
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:160,1
    - Dst: Result::ok
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:160,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:160,1
    - Dst: BytesMut::from
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:161,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:161,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:164,1
    - Dst: SpdmReqExchangeStruct::from_dhe
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:174,1
    - Dst: SpdmDheExchangeStruct::from
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:174,1
    - Dst: SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:175,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:175,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:205,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:208,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:209,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:212,1
    - Dst: SpdmContext::handle_spdm_key_exchange
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:213,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:215,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 125
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 121
    functionDepth: 13
    functionLinenumber: 121
    functionLinenumberEnd: 223
    functionName: test_case1_handle_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - copy_from_slice
    - BytesMut::from
    - SpdmResult::unwrap
    - SpdmResult::spdm_encode
    - common::util::create_info
    - ring::rand::SystemRandom::new
    - secret::pqc_asym_sign::register
    - crypto::hmac::register
    - iter
    - responder::ResponderContext::new
    - Result::compute_public_key
    - ring::agreement::EphemeralPrivateKey::generate
    - SpdmContext::handle_spdm_key_exchange
    - Result::ok
    - SpdmDheExchangeStruct::from
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - SpdmReqExchangeStruct::from_dhe
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - SpdmResult::encode
    - SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
    linkageType: ''
    returnType: void
    signature: fn test_case1_handle_spdm_key_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:23,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:25,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:25,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:28,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:28,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:29,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:30,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:40,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:40,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:41,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:41,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:42,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:45,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:76,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:79,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:86,1
    - Dst: SpdmContext::handle_spdm_heartbeat
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:87,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 90
    functionName: test_case0_handle_spdm_heartbeat
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - SpdmContext::handle_spdm_heartbeat
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_heartbeat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:26,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:28,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:28,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:29,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:32,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:32,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:32,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:36,1
    - Dst: insert
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:44,1
    - Dst: remove
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:49,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:55,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:61,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:69,1
    - Dst: SpdmAlg::SpdmAlgoDhe
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:82,1
    - Dst: SpdmAlg::SpdmAlgoAead
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:86,1
    - Dst: SpdmAlg::SpdmAlgoReqAsym
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:90,1
    - Dst: SpdmAlg::SpdmAlgoKeySchedule
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:96,1
    - Dst: SpdmAlg::SpdmAlgoPqcReqAsym
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:102,1
    - Dst: SpdmAlg::SpdmAlgoKem
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:106,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:113,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:114,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:117,1
    - Dst: SpdmContext::handle_spdm_algorithm
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:118,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:120,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:122,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:122,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:126,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:127,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:127,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:136,1
    - Dst: SpdmNegotiateAlgorithmsRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:138,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:138,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:207,1
    - Dst: SpdmMessage::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:209,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:209,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 170
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 23
    functionDepth: 11
    functionLinenumber: 23
    functionLinenumberEnd: 266
    functionName: test_case0_handle_spdm_algorithm
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - SharedBuffer::new
    - SpdmAlg::SpdmAlgoPqcReqAsym
    - clone
    - Writer::init
    - copy_from_slice
    - SpdmMessageHeader::read
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - SpdmContext::handle_spdm_algorithm
    - Self::IntoIter::enumerate
    - iter
    - remove
    - responder::ResponderContext::new
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - SpdmAlg::SpdmAlgoReqAsym
    - Arc::new
    - SpdmAlg::SpdmAlgoAead
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - set_connection_state
    - SpdmAlg::SpdmAlgoKeySchedule
    - SpdmMessage::spdm_read
    - SpdmAlg::SpdmAlgoKem
    - SpdmAlg::SpdmAlgoDhe
    - insert
    - SpdmNegotiateAlgorithmsRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_algorithm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:271,1
    - Dst: protocol::Message::NEGOTIATE_ALGORITHMS
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:273,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:280,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:281,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:282,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:283,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:288,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:289,1
    - Dst: protocol::Message::ALGORITHMS
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:302,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:308,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:309,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:310,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:311,1
    - Dst: bits
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:312,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:317,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 329
    functionName: consturct_algorithm_positive
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs
    functionUses: 4
    functionsReached:
    - Vec::new
    - common::util::create_info
    - protocol::Message::NEGOTIATE_ALGORITHMS
    - protocol::Message::ALGORITHMS
    - bits
    linkageType: ''
    returnType: (TestSpdmMessage, TestSpdmMessage)
    signature: pub fn consturct_algorithm_positive() -> (TestSpdmMessage, TestSpdmMessage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:20,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:23,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:26,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:28,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:28,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:29,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:29,1
    - Dst: ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:31,1
    - Dst: clone_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:56,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:58,1
    - Dst: register_vendor_defined_struct
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:61,1
    - Dst: Self::respond_to_vendor_defined_request
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:66,1
    - Dst: VendorIDStruct::default
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 79
    functionName: test_case0_handle_spdm_vendor_defined_request
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - VendorIDStruct::default
    - clone_from_slice
    - SharedBuffer::new
    - Self::respond_to_vendor_defined_request
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - Ok
    - Mutex::new
    - ResponderContext::new
    - common::util::create_info
    - register_vendor_defined_struct
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_vendor_defined_request()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:26,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:30,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:32,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:43,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:51,1
    - Dst: SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:64,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:64,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:97,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:98,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:100,1
    - Dst: SpdmContext::handle_spdm_psk_exchange
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:101,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 104
    functionName: test_case0_handle_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Bytes::copy_from_slice
    - FakeSpdmDeviceIoReceve::new
    - SharedBuffer::new
    - SpdmContext::handle_spdm_psk_exchange
    - clone
    - responder::ResponderContext::new
    - Writer::init
    - Mutex::new
    - copy_from_slice
    - executor::block_on
    - secret::psk::register
    - SpdmResult::unwrap
    - common::util::create_info
    - SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_psk_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:109,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:110,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:110,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:111,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:112,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:112,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:112,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:112,1
    - Dst: secret::psk::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:116,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:116,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:118,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:129,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:137,1
    - Dst: SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:150,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:150,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:183,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:184,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:186,1
    - Dst: SpdmContext::handle_spdm_psk_exchange
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:187,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:189,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 197
    functionName: test_case1_handle_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Bytes::copy_from_slice
    - FakeSpdmDeviceIoReceve::new
    - SharedBuffer::new
    - SpdmContext::handle_spdm_psk_exchange
    - clone
    - responder::ResponderContext::new
    - Writer::init
    - Mutex::new
    - copy_from_slice
    - executor::block_on
    - iter
    - secret::psk::register
    - SpdmResult::unwrap
    - common::util::create_info
    - SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
    linkageType: ''
    returnType: void
    signature: fn test_case1_handle_spdm_psk_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:26,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:29,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:36,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:36,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:37,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:37,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:42,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:42,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:43,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:43,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:44,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:47,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:51,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:54,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:57,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:58,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:62,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:65,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:69,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:74,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:82,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:90,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:91,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:93,1
    - Dst: SpdmContext::handle_spdm_key_update
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:95,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 21
    functionDepth: 10
    functionLinenumber: 21
    functionLinenumberEnd: 98
    functionName: test_case0_handle_spdm_key_update
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - generate_data_secret
    - SpdmContext::handle_spdm_key_update
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - copy_from_slice
    - Box::new
    - common::util::create_info
    - generate_handshake_secret
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_shared_secret
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_key_update()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:103,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:103,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:104,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:105,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:105,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:106,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:106,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:107,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:108,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:108,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:108,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:108,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:111,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:121,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:121,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:122,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:122,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:123,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:126,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:130,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:133,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:136,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:137,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:141,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:144,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:148,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:152,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:160,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:168,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:169,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:171,1
    - Dst: SpdmContext::handle_spdm_key_update
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:173,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 101
    functionDepth: 10
    functionLinenumber: 101
    functionLinenumberEnd: 176
    functionName: test_case1_handle_spdm_key_update
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - generate_data_secret
    - SpdmContext::handle_spdm_key_update
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - copy_from_slice
    - Box::new
    - common::util::create_info
    - generate_handshake_secret
    - secret::pqc_asym_sign::register
    - gen_array_clone
    - responder::ResponderContext::new
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_shared_secret
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case1_handle_spdm_key_update()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:34,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:35,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:35,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:36,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:37,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:37,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:37,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:37,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:40,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:40,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:41,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:41,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:42,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:52,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:67,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:74,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:82,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:83,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:86,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:87,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:99,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:101,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:101,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:105,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:106,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:106,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:114,1
    - Dst: SpdmGetCertificateRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:116,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:116,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:123,1
    - Dst: SpdmMessage::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:125,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:125,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 30
    functionDepth: 11
    functionLinenumber: 30
    functionLinenumberEnd: 142
    functionName: test_case0_handle_spdm_certificate
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - SharedBuffer::new
    - clone
    - Writer::init
    - copy_from_slice
    - SpdmMessageHeader::read
    - common::util::create_info
    - SpdmGetCertificateRequestPayload::spdm_read
    - secret::pqc_asym_sign::register
    - Self::IntoIter::enumerate
    - iter
    - responder::ResponderContext::new
    - Some
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - set_connection_state
    - SpdmMessage::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:147,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:149,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:150,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:151,1
    - Dst: TestCase::get_certificate_chain_buffer
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:152,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:154,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:154,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:156,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:156,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:159,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:159,1
    - Dst: protocol::Message::GET_CERTIFICATE
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:170,1
    - Dst: protocol::Message::CERTIFICATE
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:182,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:189,1
    - Dst: to_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:189,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:195,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 145
    functionDepth: 11
    functionLinenumber: 145
    functionLinenumberEnd: 199
    functionName: construct_certificate_positive
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs
    functionUses: 2
    functionsReached:
    - as_ref
    - protocol::Message::GET_CERTIFICATE
    - push
    - untrusted::Input::push
    - '&[u8]::len'
    - SpdmResult::as_ref
    - to_vec
    - SpdmResult::unwrap
    - protocol::Message::CERTIFICATE
    - common::util::create_info
    - TestCase::get_certificate_chain_buffer
    - Vec::new
    linkageType: ''
    returnType: (Vec
    signature: pub fn construct_certificate_positive() -> (Vec<TestSpdmMessage>, Vec<TestSpdmMessage>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:204,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:205,1
    - Dst: super::version_rsp::construct_version_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:207,1
    - Dst: super::capability_rsp::consturct_capability_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:209,1
    - Dst: super::algorithm_rsp::consturct_algorithm_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:211,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:213,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:214,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:215,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:216,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:217,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:218,1
    - Dst: construct_certificate_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:220,1
    - Dst: untrusted::Input::extend
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:221,1
    - Dst: extend
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 203
    functionDepth: 12
    functionLinenumber: 203
    functionLinenumberEnd: 229
    functionName: test_case1_handle_spdm_certificate
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs
    functionUses: 0
    functionsReached:
    - construct_certificate_positive
    - super::algorithm_rsp::consturct_algorithm_positive
    - push
    - untrusted::Input::push
    - super::version_rsp::construct_version_positive
    - extend
    - untrusted::Input::extend
    - super::capability_rsp::consturct_capability_positive
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_case1_handle_spdm_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:26,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:30,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:30,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:31,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:31,1
    - Dst: ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:33,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:44,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:49,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:49,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:50,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:50,1
    - Dst: SpdmGetCertificateRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:52,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 63
    functionName: test_encode_encap_requst_get_certificate
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Writer::used_slice
    - FakeSpdmDeviceIoReceve::new
    - SharedBuffer::new
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - Writer::init
    - Mutex::new
    - SpdmGetCertificateRequestPayload::spdm_read
    - Reader::init
    - Option::unwrap
    - SpdmMessageHeader::read
    - ResponderContext::new
    - common::util::create_info
    linkageType: ''
    returnType: void
    signature: fn test_encode_encap_requst_get_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:67,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:68,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:68,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:69,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:70,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:70,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:70,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:70,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:74,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:74,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:75,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:75,1
    - Dst: ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:77,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:88,1
    - Dst: SpdmMessagePayload::SpdmCertificateResponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:94,1
    - Dst: is_none
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:110,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:111,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:111,1
    - Dst: SpdmContext::handle_encap_response_certificate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:113,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:113,1
    - Dst: as_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:119,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:119,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:129,1
    - Dst: SpdmMessagePayload::SpdmCertificateResponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:131,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:146,1
    - Dst: SpdmMessagePayload::SpdmCertificateResponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:148,1
    - Dst: as_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:161,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 170
    functionName: test_handle_encap_response_certificate
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - SpdmMessagePayload::SpdmCertificateResponse
    - Some
    - unwrap
    - SharedBuffer::new
    - is_none
    - secret::asym_sign::register
    - clone
    - secret::pqc_asym_sign::register
    - Writer::init
    - Mutex::new
    - SpdmCertChainBuffer::default
    - SpdmContext::handle_encap_response_certificate
    - as_mut
    - ResponderContext::new
    - common::util::create_info
    linkageType: ''
    returnType: void
    signature: fn test_handle_encap_response_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:25,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:27,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:27,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:30,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:37,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:37,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:38,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:38,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:39,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:39,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:43,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:43,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:44,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:44,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:45,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:48,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:56,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:60,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:68,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:81,1
    - Dst: SpdmFinishRequestAttributes::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:83,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:91,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:100,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:101,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:103,1
    - Dst: SpdmContext::handle_spdm_finish
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:104,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 107
    functionName: test_case0_handle_spdm_finish
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - copy_from_slice
    - Box::new
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - crypto::hmac::register
    - gen_array_clone
    - responder::ResponderContext::new
    - secret::asym_sign::register
    - executor::block_on
    - SpdmContext::handle_spdm_finish
    - SpdmFinishRequestAttributes::empty
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:113,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:114,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:114,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:115,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:116,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:116,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:116,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:116,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:119,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:126,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:126,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:127,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:127,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:128,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:128,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:136,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:136,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:137,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:137,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:138,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:141,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:145,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:147,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:147,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:147,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:150,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:158,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:171,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:181,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:191,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:192,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:194,1
    - Dst: SpdmContext::handle_spdm_finish
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 132
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 110
    functionDepth: 8
    functionLinenumber: 110
    functionLinenumberEnd: 196
    functionName: test_case1_handle_spdm_finish
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - copy_from_slice
    - Box::new
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - crypto::hmac::register
    - gen_array_clone
    - responder::ResponderContext::new
    - Some
    - secret::asym_sign::register
    - SpdmContext::handle_spdm_finish
    - Mutex::new
    - Option::unwrap
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case1_handle_spdm_finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:203,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:204,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:204,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:205,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:206,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:206,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:206,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:206,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:209,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:216,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:216,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:217,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:217,1
    - Dst: crypto::hmac::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:218,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:218,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:226,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:226,1
    - Dst: setup
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:227,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:227,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:228,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:231,1
    - Dst: set_session_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:235,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:237,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:237,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:237,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:240,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:248,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:261,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:271,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:281,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:282,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:284,1
    - Dst: SpdmContext::handle_spdm_finish
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:285,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 139
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 200
    functionDepth: 8
    functionLinenumber: 200
    functionLinenumberEnd: 293
    functionName: test_case2_handle_spdm_finish
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - Bytes::copy_from_slice
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - copy_from_slice
    - Box::new
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - crypto::hmac::register
    - gen_array_clone
    - iter
    - responder::ResponderContext::new
    - Some
    - secret::asym_sign::register
    - SpdmContext::handle_spdm_finish
    - Mutex::new
    - Option::unwrap
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case2_handle_spdm_finish()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:30,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:31,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:31,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:33,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:33,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:33,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:33,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:36,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:43,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:43,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:44,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:44,1
    - Dst: secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:45,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:45,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:54,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:60,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:68,1
    - Dst: SpdmMeasurementAttributes::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:70,1
    - Dst: SpdmMeasurementOperation::Unknown
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:71,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:83,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:84,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:86,1
    - Dst: SpdmContext::handle_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:87,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:91,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:93,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:93,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:97,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:98,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:98,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:106,1
    - Dst: SpdmGetMeasurementsRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:108,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:108,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:120,1
    - Dst: SpdmMessage::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:122,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:122,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 146
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 28
    functionDepth: 11
    functionLinenumber: 28
    functionLinenumberEnd: 135
    functionName: test_case0_handle_spdm_measurement
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - SpdmMeasurementOperation::Unknown
    - SharedBuffer::new
    - secret::measurement::register
    - clone
    - Writer::init
    - copy_from_slice
    - SpdmMessageHeader::read
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - Self::IntoIter::enumerate
    - SpdmGetMeasurementsRequestPayload::spdm_read
    - SpdmMeasurementAttributes::empty
    - iter
    - SpdmContext::handle_spdm_measurement
    - responder::ResponderContext::new
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - set_connection_state
    - SpdmMessage::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_measurement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:140,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:141,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:141,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:142,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:143,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:143,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:143,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:143,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:146,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:153,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:153,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:154,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:154,1
    - Dst: secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:155,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:155,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:164,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:170,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:178,1
    - Dst: SpdmMeasurementAttributes::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:180,1
    - Dst: Bytes::copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:193,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:194,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:196,1
    - Dst: SpdmContext::handle_spdm_measurement
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:197,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:201,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:203,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:203,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:207,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:208,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:208,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:216,1
    - Dst: SpdmGetMeasurementsRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:218,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:218,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:230,1
    - Dst: SpdmMessage::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:232,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:232,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 145
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 138
    functionDepth: 12
    functionLinenumber: 138
    functionLinenumberEnd: 248
    functionName: test_case1_handle_spdm_measurement
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs
    functionUses: 0
    functionsReached:
    - Bytes::copy_from_slice
    - SharedBuffer::new
    - secret::measurement::register
    - clone
    - Writer::init
    - copy_from_slice
    - SpdmMessageHeader::read
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - Self::IntoIter::enumerate
    - SpdmGetMeasurementsRequestPayload::spdm_read
    - SpdmMeasurementAttributes::empty
    - iter
    - SpdmContext::handle_spdm_measurement
    - responder::ResponderContext::new
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - set_connection_state
    - SpdmMessage::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case1_handle_spdm_measurement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:255,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:256,1
    - Dst: super::version_rsp::construct_version_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:258,1
    - Dst: super::capability_rsp::consturct_capability_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:260,1
    - Dst: super::algorithm_rsp::consturct_algorithm_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:262,1
    - Dst: super::certificate_rsp::construct_certificate_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:264,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:266,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:267,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:268,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:269,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:270,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:271,1
    - Dst: untrusted::Input::extend
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:272,1
    - Dst: extend
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:273,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:275,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 2
    argNames:
    - get_measurement_msg
    - measurement_msg
    argTypes:
    - TestSpdmMessage
    - TestSpdmMessage
    constantsTouched: []
    func_position:
      end: 283
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 283
    functionName: test_handle_spdm_measurement_runner
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs
    functionUses: 1
    functionsReached:
    - super::algorithm_rsp::consturct_algorithm_positive
    - push
    - untrusted::Input::push
    - super::version_rsp::construct_version_positive
    - extend
    - super::certificate_rsp::construct_certificate_positive
    - untrusted::Input::extend
    - super::capability_rsp::consturct_capability_positive
    - Vec::new
    linkageType: ''
    returnType: void
    signature: 'fn test_handle_spdm_measurement_runner(get_measurement_msg: TestSpdmMessage,measurement_msg:
      TestSpdmMessage,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:290,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:290,1
    - Dst: protocol::Message::GET_MEASUREMENTS
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:293,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:304,1
    - Dst: secret::measurement::measurement_collection
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:305,1
    - Dst: get_u8
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:309,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:305,1
    - Dst: protocol::Message::MEASUREMENTS
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:314,1
    - Dst: get
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:320,1
    - Dst: get
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:322,1
    - Dst: to_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:321,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:326,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:327,1
    - Dst: test_handle_spdm_measurement_runner
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 287
    functionDepth: 10
    functionLinenumber: 287
    functionLinenumberEnd: 333
    functionName: test_case2_handle_spdm_measurements
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs
    functionUses: 0
    functionsReached:
    - spdmlib::secret::measurement::register
    - get_u8
    - secret::measurement::measurement_collection
    - test_handle_spdm_measurement_runner
    - clone
    - protocol::Message::GET_MEASUREMENTS
    - Option::unwrap
    - to_vec
    - protocol::Message::MEASUREMENTS
    - common::util::create_info
    - get
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_case2_handle_spdm_measurements()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:33,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:33,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:34,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:35,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:35,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:35,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:35,1
    - Dst: setup_test_context_and_session
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:39,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:47,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:60,1
    - Dst: SpdmContext::handle_get_encapsulated_request
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:61,1
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:72,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:73,1
    - Dst: receive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:74,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:75,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:75,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:74,1
    - Dst: decode_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:81,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:81,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:89,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:90,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:90,1
    - Dst: SpdmEncapsulatedRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:91,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:99,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:99,1
    - Dst: SpdmGetDigestsRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:101,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 30
    functionDepth: 8
    functionLinenumber: 30
    functionLinenumberEnd: 111
    functionName: test_handle_get_encapsulated_request
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs
    functionUses: 0
    functionsReached:
    - receive
    - unwrap
    - SharedBuffer::new
    - Writer::init
    - SpdmGetDigestsRequestPayload::spdm_read
    - SpdmMessageHeader::read
    - lock
    - common::util::create_info
    - decode_secured_message
    - setup_test_context_and_session
    - deref_mut
    - SpdmEncapsulatedRequestPayload::spdm_read
    - SpdmContext::handle_get_encapsulated_request
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    linkageType: ''
    returnType: void
    signature: fn test_handle_get_encapsulated_request()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:116,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:117,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:117,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:118,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:119,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:119,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:119,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:119,1
    - Dst: setup_test_context_and_session
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:123,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:131,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:146,1
    - Dst: SpdmContext::handle_deliver_encapsulated_reponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:148,1
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:160,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:161,1
    - Dst: receive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:163,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:164,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:164,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:163,1
    - Dst: decode_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:170,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:170,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:177,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:178,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:178,1
    - Dst: SpdmEncapsulatedResponseAckPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:180,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:180,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:189,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:189,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:190,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 114
    functionDepth: 7
    functionLinenumber: 114
    functionLinenumberEnd: 200
    functionName: test_handle_deliver_encapsulated_reponse_digest
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs
    functionUses: 0
    functionsReached:
    - receive
    - unwrap
    - SharedBuffer::new
    - Writer::init
    - SpdmMessageHeader::read
    - lock
    - common::util::create_info
    - decode_secured_message
    - setup_test_context_and_session
    - SpdmDigestsResponsePayload::spdm_read
    - deref_mut
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - SpdmEncapsulatedResponseAckPayload::spdm_read
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - SpdmContext::handle_deliver_encapsulated_reponse
    linkageType: ''
    returnType: void
    signature: fn test_handle_deliver_encapsulated_reponse_digest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:205,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:206,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:206,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:207,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:208,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:208,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:208,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:208,1
    - Dst: setup_test_context_and_session
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:212,1
    - Dst: is_none
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:218,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:219,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:219,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:223,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:238,1
    - Dst: SpdmContext::handle_deliver_encapsulated_reponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:240,1
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:251,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:252,1
    - Dst: receive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:254,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:255,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:255,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:254,1
    - Dst: decode_secured_message
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:261,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:261,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:268,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:269,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:269,1
    - Dst: SpdmEncapsulatedResponseAckPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:271,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:271,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:280,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:280,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:281,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 203
    functionDepth: 7
    functionLinenumber: 203
    functionLinenumberEnd: 291
    functionName: test_handle_deliver_encapsulated_reponse_cert
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs
    functionUses: 0
    functionsReached:
    - receive
    - unwrap
    - SharedBuffer::new
    - is_none
    - Writer::init
    - SpdmMessageHeader::read
    - lock
    - common::util::create_info
    - SpdmCertChainBuffer::default
    - decode_secured_message
    - setup_test_context_and_session
    - SpdmDigestsResponsePayload::spdm_read
    - deref_mut
    - Some
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - SpdmEncapsulatedResponseAckPayload::spdm_read
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - SpdmContext::handle_deliver_encapsulated_reponse
    linkageType: ''
    returnType: void
    signature: fn test_handle_deliver_encapsulated_reponse_cert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hash_size
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:335,1
    - Dst: SpdmMessagePayload::SpdmDigestsResponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:343,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:345,1
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:348,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:353,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:354,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:358,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:358,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:361,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:361,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - context
    - writer
    argTypes:
    - '&mut ResponderContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 366
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 366
    functionName: write_spdm_get_digest_response
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyUsageMask::empty
    - get_hash_size
    - Ok
    - gen_array_clone
    - Result::map_err
    - Box::new
    - SpdmResult::spdm_encode
    - SpdmMessagePayload::SpdmDigestsResponse
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn write_spdm_get_digest_response(context: &mut ResponderContext,writer:
      &mut Writer,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmCertificateResponse
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:377,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:384,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:384,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - context
    - writer
    argTypes:
    - '&mut ResponderContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 389
      start: 368
    functionDepth: 4
    functionLinenumber: 368
    functionLinenumberEnd: 389
    functionName: write_spdm_get_certificate_response
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - SpdmResult::spdm_encode
    - Ok
    - SpdmMessagePayload::SpdmCertificateResponse
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn write_spdm_get_certificate_response(context: &mut ResponderContext,writer:
      &mut Writer,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:30,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:31,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:31,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:33,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:33,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:33,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:33,1
    - Dst: secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:37,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:37,1
    - Dst: secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:38,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:38,1
    - Dst: secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:39,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:39,1
    - Dst: crypto::rand::register
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:40,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:40,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:42,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:49,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:65,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:88,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:96,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:111,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:112,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:115,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:120,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:128,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:128,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:132,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:133,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:133,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:141,1
    - Dst: SpdmChallengeRequestPayload::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:143,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:143,1
    - Dst: Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:154,1
    - Dst: SpdmMessage::spdm_read
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:156,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:156,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:163,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:165,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:165,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:163,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:190,1
    - Dst: enumerate
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:190,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 227
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 24
    functionDepth: 11
    functionLinenumber: 24
    functionLinenumberEnd: 197
    functionName: test_case0_handle_spdm_challenge
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - crypto::rand::register
    - SharedBuffer::new
    - secret::measurement::register
    - clone
    - Writer::init
    - copy_from_slice
    - SpdmMessageHeader::read
    - common::util::create_info
    - secret::pqc_asym_sign::register
    - Self::IntoIter::enumerate
    - iter
    - responder::ResponderContext::new
    - crypto::hash::hash_all
    - Some
    - secret::asym_sign::register
    - executor::block_on
    - Mutex::new
    - Reader::init
    - Option::unwrap
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - as_ref
    - set_connection_state
    - SpdmMessage::spdm_read
    - SpdmChallengeRequestPayload::spdm_read
    - enumerate
    linkageType: ''
    returnType: void
    signature: fn test_case0_handle_spdm_challenge()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:204,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:205,1
    - Dst: common::util::create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:207,1
    - Dst: super::version_rsp::construct_version_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:208,1
    - Dst: super::capability_rsp::consturct_capability_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:210,1
    - Dst: super::algorithm_rsp::consturct_algorithm_positive
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:212,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:214,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:215,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:216,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:217,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:218,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:219,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:221,1
    - Dst: TestCase::get_certificate_chain_buffer
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:222,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:224,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:224,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:226,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:226,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:229,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:229,1
    - Dst: protocol::Message::GET_CERTIFICATE
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:240,1
    - Dst: protocol::Message::CERTIFICATE
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:252,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:259,1
    - Dst: to_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:259,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:265,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:266,1
    - Dst: protocol::Message::CHALLENGE
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:270,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:280,1
    - Dst: get_sig_size
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:281,1
    - Dst: get_sig_size
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:283,1
    - Dst: protocol::Message::CHALLENGE_AUTH
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:286,1
    - Dst: spdmlib::crypto::hash::hash_all
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:292,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:294,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:292,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:297,1
    - Dst: to_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:297,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:300,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:302,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:308,1
    - Dst: push
      Src: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 201
    functionDepth: 11
    functionLinenumber: 201
    functionLinenumberEnd: 316
    functionName: test_case1_handle_spdm_challenge
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs
    functionUses: 0
    functionsReached:
    - protocol::Message::CHALLENGE
    - protocol::Message::CHALLENGE_AUTH
    - to_vec
    - get_sig_size
    - SpdmResult::unwrap
    - common::util::create_info
    - Vec::new
    - spdmlib::crypto::hash::hash_all
    - super::algorithm_rsp::consturct_algorithm_positive
    - super::version_rsp::construct_version_positive
    - protocol::Message::GET_CERTIFICATE
    - untrusted::Input::push
    - '&[u8]::len'
    - Option::expect
    - protocol::Message::CERTIFICATE
    - TestCase::get_certificate_chain_buffer
    - SpdmPqcAsymAlgo::empty
    - as_ref
    - push
    - SpdmResult::as_ref
    - super::capability_rsp::consturct_capability_positive
    linkageType: ''
    returnType: void
    signature: fn test_case1_handle_spdm_challenge()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:18,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:19,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:20,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:21,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:22,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:23,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:24,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:24,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: CHALLENGE::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:28,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:29,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:30,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:31,1
    - Dst: <[u8; 32]>::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:32,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: CHALLENGE::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs
    functionUses: 0
    functionsReached:
    - <[u8; 32]>::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:59,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:60,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:61,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:62,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:63,1
    - Dst: <[u8; 32]>::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:64,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:65,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:66,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:67,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:68,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:70,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - reader
    - H
    - SigLen
    argTypes:
    - '&mut codec::Reader'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 82
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 82
    functionName: CHALLENGE_AUTH::new
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs
    functionUses: 0
    functionsReached:
    - Some
    - Vec::<u8>::read_vec
    - u16::read
    - <[u8; 32]>::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(reader: &mut codec::Reader, H: usize, SigLen: usize) ->
      Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:87,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:88,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:89,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:90,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:91,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:92,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:93,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:94,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:95,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:96,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:97,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:98,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs:98,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: CHALLENGE_AUTH::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames: []
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: CHALLENGE_AUTH::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn read(_: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:53,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:54,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:55,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:56,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:57,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:58,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:59,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:60,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:61,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:62,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:63,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:64,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:65,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:66,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:67,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:68,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:69,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:71,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:71,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: NEGOTIATE_ALGORITHMS::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:75,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:76,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:77,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:78,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:79,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:80,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:81,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:82,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:83,1
    - Dst: <[u8; 12]>::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:84,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:85,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:86,1
    - Dst: <[u8; 2]>::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:87,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:88,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:89,1
    - Dst: Vec::<[u8; ALG_STRUCT_SIZE]>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:90,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:91,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 109
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 109
    functionName: NEGOTIATE_ALGORITHMS::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs
    functionUses: 1
    functionsReached:
    - Vec::<[u8; ALG_STRUCT_SIZE]>::read_vec
    - <[u8; 2]>::read
    - Vec::<u8>::read_vec
    - Some
    - u32::read
    - u16::read
    - <[u8; 12]>::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:114,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:115,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:116,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:117,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:118,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:119,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:120,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:121,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:122,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:123,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:124,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:125,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:126,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:127,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:128,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:129,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:130,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:131,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:133,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:133,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 134
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 134
    functionName: ALGORITHMS::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:137,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:138,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:139,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:140,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:141,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:142,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:143,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:144,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:145,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:146,1
    - Dst: <[u8; 12]>::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:147,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:148,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:149,1
    - Dst: <[u8; 2]>::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:150,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:151,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:152,1
    - Dst: Vec::<[u8; ALG_STRUCT_SIZE]>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:153,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs:154,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 173
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 173
    functionName: ALGORITHMS::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs
    functionUses: 1
    functionsReached:
    - Vec::<[u8; ALG_STRUCT_SIZE]>::read_vec
    - <[u8; 2]>::read
    - Vec::<u8>::read_vec
    - Some
    - u32::read
    - u16::read
    - <[u8; 12]>::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:19,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:20,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:21,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:22,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:23,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:24,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:25,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:26,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:26,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: GET_CERTIFICATE::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:30,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:31,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:32,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:33,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:34,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:35,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:36,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: GET_CERTIFICATE::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs
    functionUses: 1
    functionsReached:
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:60,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:61,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:62,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:63,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:64,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:65,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:66,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:67,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:68,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: CERTIFICATE::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:72,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:73,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:74,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:75,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:76,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:77,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:78,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: CERTIFICATE::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs
    functionUses: 1
    functionsReached:
    - Some
    - u16::read
    - u8::read
    - Vec::<u8>::read_vec
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:40,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:41,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:43,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:44,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:45,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:46,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:47,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:48,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:49,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:50,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:51,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:52,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: Message::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::rest
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:58,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:59,1
    - Dst: codec::Reader::init
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:62,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:65,1
    - Dst: Message::GET_VERSION
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:65,1
    - Dst: version::GET_VERSION::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:65,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:66,1
    - Dst: Message::VERSION
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:66,1
    - Dst: version::VERSION::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:66,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:67,1
    - Dst: Message::GET_CAPABILITIES
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:67,1
    - Dst: capability::GET_CAPABILITIES::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:68,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:70,1
    - Dst: Message::CAPABILITIES
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:70,1
    - Dst: capability::CAPABILITIES::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:70,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:73,1
    - Dst: Message::NEGOTIATE_ALGORITHMS
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:73,1
    - Dst: algorithm::NEGOTIATE_ALGORITHMS::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:74,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:76,1
    - Dst: Message::ALGORITHMS
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:76,1
    - Dst: algorithm::ALGORITHMS::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:76,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:77,1
    - Dst: Message::GET_CERTIFICATE
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:77,1
    - Dst: certificate::GET_CERTIFICATE::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:78,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:80,1
    - Dst: Message::CERTIFICATE
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:80,1
    - Dst: certificate::CERTIFICATE::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs:80,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 85
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 85
    functionName: Message::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs
    functionUses: 0
    functionsReached:
    - certificate::GET_CERTIFICATE::read
    - algorithm::ALGORITHMS::read
    - certificate::CERTIFICATE::read
    - Message::NEGOTIATE_ALGORITHMS
    - version::GET_VERSION::read
    - Message::GET_CAPABILITIES
    - Message::VERSION
    - Message::GET_VERSION
    - Message::ALGORITHMS
    - version::VERSION::read
    - Message::CERTIFICATE
    - codec::Reader::init
    - capability::GET_CAPABILITIES::read
    - algorithm::NEGOTIATE_ALGORITHMS::read
    - Some
    - capability::CAPABILITIES::read
    - Message::GET_CERTIFICATE
    - Message::CAPABILITIES
    - Result::rest
    - len
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:16,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:17,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:18,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:19,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:20,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:21,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:21,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: GET_DIGESTS::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:25,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:26,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:27,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:28,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: GET_DIGESTS::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs
    functionUses: 0
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:49,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:50,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:51,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:52,1
    - Dst: count_ones
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:53,1
    - Dst: Vec::new
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:54,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:56,1
    - Dst: Self::push
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:57,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - reader
    - H
    argTypes:
    - '&mut codec::Reader'
    - usize
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: DIGESTS::new
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs
    functionUses: 0
    functionsReached:
    - Vec::<u8>::read_vec
    - Some
    - count_ones
    - Self::push
    - u8::read
    - Vec::new
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(reader: &mut codec::Reader, H: usize) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:72,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:73,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:74,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:75,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:76,1
    - Dst: as_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:77,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:78,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:80,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: DIGESTS::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs
    functionUses: 0
    functionsReached:
    - Bytes::used
    - encode
    - as_slice
    - Ok
    - Vec::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames: []
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: DIGESTS::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn read(_: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rev
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: test
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs
    functionUses: 26
    functionsReached:
    - rev
    linkageType: ''
    returnType: void
    signature: fn test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:21,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:22,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:23,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:24,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:25,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:27,1
    - Dst: ok_or
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:27,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:27,1
    - Dst: ok_or
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:28,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:28,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:30,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:30,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: GET_MEASUREMENTS::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Bytes::used
    - encode
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:34,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:35,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:36,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:37,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:41,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:41,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:42,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:42,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:48,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 56
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 56
    functionName: GET_MEASUREMENTS::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs
    functionUses: 0
    functionsReached:
    - Vec::<u8>::read_vec
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:76,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:77,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:78,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:79,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:80,1
    - Dst: u24::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:81,1
    - Dst: get
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:81,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:83,1
    - Dst: <[u8; NONCE_LEN]>::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:84,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:85,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:86,1
    - Dst: Vec::<u8>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:87,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:89,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - reader
    - SigLen
    argTypes:
    - '&mut codec::Reader'
    - usize
    constantsTouched: []
    func_position:
      end: 102
      start: 75
    functionDepth: 13
    functionLinenumber: 75
    functionLinenumberEnd: 102
    functionName: MEASUREMENTS::new
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs
    functionUses: 0
    functionsReached:
    - Vec::<u8>::read_vec
    - Some
    - u16::read
    - <[u8; NONCE_LEN]>::read
    - get
    - u8::read
    - u24::read
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(reader: &mut codec::Reader, SigLen: usize) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:107,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:108,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:109,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:110,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:111,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:112,1
    - Dst: u24::new
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:113,1
    - Dst: u24::encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:113,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:114,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:115,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:116,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:117,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:118,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:119,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs:119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: MEASUREMENTS::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs
    functionUses: 0
    functionsReached:
    - Bytes::used
    - encode
    - Ok
    - u24::encode
    - u24::new
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: MEASUREMENTS::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn read(_reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:37,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:38,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:39,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:40,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:41,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:43,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:44,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:45,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:46,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:47,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:48,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: GET_CAPABILITIES::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:52,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:53,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:54,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:55,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:56,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:57,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:58,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:59,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:60,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:61,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:62,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: GET_CAPABILITIES::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs
    functionUses: 1
    functionsReached:
    - u32::read
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:79,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:80,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:81,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:82,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:83,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:84,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:85,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:86,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:87,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:88,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:89,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:90,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:90,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: CAPABILITIES::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:94,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:95,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:96,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:97,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:98,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:99,1
    - Dst: u16::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:100,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:101,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:102,1
    - Dst: u32::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:103,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs:104,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: CAPABILITIES::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs
    functionUses: 1
    functionsReached:
    - u32::read
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:29,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:30,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:31,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:32,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:33,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:34,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: GET_VERSION::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:38,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:39,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:40,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:41,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: GET_VERSION::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs
    functionUses: 1
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:53,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:54,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:55,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:56,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:57,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:58,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:59,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:60,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:61,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: VERSION::encode
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:65,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:66,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:67,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:68,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:69,1
    - Dst: u8::read
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:70,1
    - Dst: Vec::<u16>::read_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:71,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs:72,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: VERSION::read
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs
    functionUses: 1
    functionsReached:
    - Vec::<u16>::read_vec
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:353,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - spdm_context
    - base_hash_algo
    - base_asym_algo
    - data
    argTypes:
    - '&SpdmContext'
    - SpdmBaseHashAlgo
    - SpdmBaseAsymAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 368
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 368
    functionName: fake_asym_sign
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn fake_asym_sign(spdm_context: &SpdmContext,base_hash_algo: SpdmBaseHashAlgo,base_asym_algo:
      SpdmBaseAsymAlgo,data: &[u8],) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:377,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:381,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - spdm_context
    - base_hash_algo
    - pqc_asym_algo
    - data
    argTypes:
    - '&SpdmContext'
    - SpdmBaseHashAlgo
    - SpdmPqcAsymAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 393
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 393
    functionName: fake_pqc_asym_sign
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn fake_pqc_asym_sign(spdm_context: &SpdmContext,base_hash_algo: SpdmBaseHashAlgo,pqc_asym_algo:
      SpdmPqcAsymAlgo,data: &[u8],) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:37,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:38,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:39,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:40,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:41,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:90,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:90,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:90,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:91,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:91,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:91,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:92,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:92,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:92,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:95,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:99,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:102,1
    - Dst: get_test_key_directory
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:105,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:106,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:107,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:107,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:108,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:109,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:109,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:110,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:111,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:111,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:113,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:114,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:115,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:118,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:118,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:119,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:119,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:120,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:121,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:124,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:124,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:126,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:127,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:131,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:145,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:147,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:157,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 147
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 169
    functionName: create_info
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 128
    functionsReached:
    - SpdmKeyUsageMask::empty
    - len
    - as_ref
    - Some
    - std::fs::read
    - get_test_key_directory
    - Result::unwrap
    - copy_from_slice
    - PathBuf::join
    - gen_array_clone
    - Option::expect
    - Default::default
    - SecuredMessageVersion::try_from
    linkageType: ''
    returnType: (SpdmConfigInfo, SpdmProvisionInfo)
    signature: pub fn create_info() -> (SpdmConfigInfo, SpdmProvisionInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:175,1
    - Dst: SpdmContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - my_spdm_device_io
    - pcidoe_transport_encap
    argTypes:
    - Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 6
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: new_context
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 13
    functionsReached:
    - SpdmContext::new
    - create_info
    linkageType: ''
    returnType: SpdmContext
    signature: 'pub fn new_context(my_spdm_device_io: Arc<Mutex<dyn SpdmDeviceIo +
      Send + Sync>>,pcidoe_transport_encap: Arc<Mutex<dyn SpdmTransportEncap + Send
      + Sync>>,) -> SpdmContext'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:36,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:37,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:38,1
    - Dst: SpdmMessage::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:39,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - value
    - context
    argTypes:
    - SpdmMessage
    - SpdmContext
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 13
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: new_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 25
    functionsReached:
    - SpdmMessage::spdm_read
    - Writer::init
    - Option::unwrap
    - Reader::init
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: SpdmMessage
    signature: 'pub fn new_spdm_message(value: SpdmMessage, mut context: SpdmContext)
      -> SpdmMessage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:218,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:219,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:220,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:221,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:222,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:246,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:246,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:246,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:247,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:247,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:247,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:248,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:248,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:248,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:251,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:255,1
    - Dst: get_test_key_directory
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:258,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:260,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:262,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:264,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:264,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:266,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:268,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:270,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:270,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:272,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:274,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:276,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:276,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:278,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:279,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:280,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:289,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:289,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:291,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:292,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:295,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:295,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:296,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:296,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:298,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:302,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:302,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:303,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:303,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:304,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:305,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:309,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:323,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:325,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:335,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:335,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:350,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 157
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 355
    functionName: req_create_info
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 21
    functionsReached:
    - SpdmKeyUsageMask::empty
    - len
    - as_ref
    - Some
    - std::fs::read
    - get_test_key_directory
    - Result::unwrap
    - copy_from_slice
    - PathBuf::join
    - gen_array_clone
    - spdmlib::secret::asym_sign::register
    - clone
    - spdmlib::secret::pqc_asym_sign::register
    - Option::expect
    - Default::default
    - SecuredMessageVersion::try_from
    linkageType: ''
    returnType: (SpdmConfigInfo, SpdmProvisionInfo)
    signature: pub fn req_create_info() -> (SpdmConfigInfo, SpdmProvisionInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:385,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:386,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:387,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:388,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:389,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:415,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:415,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:415,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:416,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:416,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:416,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:417,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:417,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:417,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:420,1
    - Dst: Default::default
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:424,1
    - Dst: get_test_key_directory
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:427,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:429,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:431,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:434,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:434,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:436,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:438,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:440,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:440,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:442,1
    - Dst: PathBuf::join
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:444,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:446,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:446,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:448,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:449,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:450,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:459,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:459,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:460,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:460,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:461,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:462,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:466,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:476,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:480,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:482,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:492,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 131
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 357
    functionDepth: 5
    functionLinenumber: 357
    functionLinenumberEnd: 504
    functionName: rsp_create_info
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 31
    functionsReached:
    - SpdmKeyUsageMask::empty
    - len
    - as_ref
    - Some
    - std::fs::read
    - get_test_key_directory
    - Result::unwrap
    - copy_from_slice
    - PathBuf::join
    - gen_array_clone
    - Option::expect
    - Default::default
    - SecuredMessageVersion::try_from
    linkageType: ''
    returnType: (SpdmConfigInfo, SpdmProvisionInfo)
    signature: pub fn rsp_create_info() -> (SpdmConfigInfo, SpdmProvisionInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto::cert_operation::get_cert_from_cert_chain
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:521,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:521,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:525,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:525,1
    - Dst: SpdmCertChainBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:527,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:527,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 529
      start: 516
    functionDepth: 10
    functionLinenumber: 516
    functionLinenumberEnd: 529
    functionName: get_rsp_cert_chain_buff
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 22
    functionsReached:
    - crypto::hash::hash_all
    - as_ref
    - Option::expect
    - SpdmCertChainBuffer::new
    - crypto::cert_operation::get_cert_from_cert_chain
    - SpdmResult::expect
    linkageType: ''
    returnType: SpdmCertChainBuffer
    signature: pub fn get_rsp_cert_chain_buff() -> SpdmCertChainBuffer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_info
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 544
    functionDepth: 6
    functionLinenumber: 544
    functionLinenumberEnd: 546
    functionName: TestCase::config
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 1
    functionsReached:
    - create_info
    linkageType: ''
    returnType: (SpdmConfigInfo, SpdmProvisionInfo)
    signature: pub fn config() -> (SpdmConfigInfo, SpdmProvisionInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:549,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:552,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:553,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:553,1
    - Dst: Option::extend
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:557,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - cb
    argTypes:
    - 'fn(secure: u8, bufer: &[u8]) -> VecDeque<u8>'
    constantsTouched: []
    func_position:
      end: 560
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 560
    functionName: TestCase::input_to_vec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 0
    functionsReached:
    - expect
    - Option::extend
    - encode
    - Writer::init
    - VecDeque::new
    - iter
    linkageType: ''
    returnType: VecDeque
    signature: 'pub fn input_to_vec(&self, cb: fn(secure: u8, bufer: &[u8]) -> VecDeque<u8>)
      -> VecDeque<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:565,1
    - Dst: Writer::init
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:568,1
    - Dst: encode
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:569,1
    - Dst: expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:569,1
    - Dst: Option::extend
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:573,1
    - Dst: iter
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - cb
    argTypes:
    - 'fn(secure: u8, bufer: &[u8]) -> VecDeque<u8>'
    constantsTouched: []
    func_position:
      end: 576
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 576
    functionName: TestCase::expected_to_vec
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 0
    functionsReached:
    - expect
    - Option::extend
    - encode
    - Writer::init
    - VecDeque::new
    - iter
    linkageType: ''
    returnType: VecDeque
    signature: 'pub fn expected_to_vec(&self,cb: fn(secure: u8, bufer: &[u8]) -> VecDeque<u8>,)
      -> VecDeque<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto::cert_operation::get_cert_from_cert_chain
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:583,1
    - Dst: SpdmResult::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:583,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:587,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:587,1
    - Dst: SpdmCertChainBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:589,1
    - Dst: as_ref
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:589,1
    - Dst: Option::expect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - hash_algo
    - cert_chain
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 591
      start: 578
    functionDepth: 10
    functionLinenumber: 578
    functionLinenumberEnd: 591
    functionName: TestCase::get_certificate_chain_buffer
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 3
    functionsReached:
    - crypto::hash::hash_all
    - as_ref
    - Option::expect
    - SpdmCertChainBuffer::new
    - crypto::cert_operation::get_cert_from_cert_chain
    - SpdmResult::expect
    linkageType: ''
    returnType: SpdmCertChainBuffer
    signature: 'pub fn get_certificate_chain_buffer(hash_algo: SpdmBaseHashAlgo,cert_chain:
      &[u8],) -> SpdmCertChainBuffer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:601,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:601,1
    - Dst: spdmlib::crypto::rand::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:602,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:602,1
    - Dst: spdmlib::crypto::asym_verify::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:603,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:603,1
    - Dst: spdmlib::crypto::pqc_asym_verify::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:604,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:604,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:605,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:605,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:606,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:606,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:608,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:608,1
    - Dst: VecDeque::<u8>::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:608,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:609,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:609,1
    - Dst: Option::input_to_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:609,1
    - Dst: Arc::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:610,1
    - Dst: TestSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:613,1
    - Dst: TestCase::config
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:615,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:616,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:617,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:617,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:618,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:618,1
    - Dst: SpdmContext::process_message
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:624,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:635,1
    - Dst: Option::expected_to_vec
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:638,1
    - Dst: Output::lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:639,1
    - Dst: Output::make_contiguous
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:640,1
    - Dst: make_contiguous
      Src: /src/spdm-rs/test/spdmlib-test/src/common/util.rs:641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 69
    argCount: 2
    argNames:
    - case
    - cb
    argTypes:
    - TestCase
    - 'fn(secure: u8, bufer: &[u8]) -> VecDeque<u8>'
    constantsTouched: []
    func_position:
      end: 645
      start: 596
    functionDepth: 7
    functionLinenumber: 596
    functionLinenumberEnd: 645
    functionName: ResponderRunner::run
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
    functionUses: 0
    functionsReached:
    - VecDeque::<u8>::new
    - clone
    - TestCase::config
    - spdmlib::crypto::aead::register
    - Arc::clone
    - SpdmContext::process_message
    - spdmlib::secret::asym_sign::register
    - responder::ResponderContext::new
    - executor::block_on
    - Mutex::new
    - Option::expected_to_vec
    - Output::lock
    - Arc::new
    - spdmlib::crypto::rand::register
    - spdmlib::crypto::asym_verify::register
    - make_contiguous
    - spdmlib::secret::pqc_asym_sign::register
    - Output::make_contiguous
    - Option::input_to_vec
    - TestSpdmDeviceIo::new
    - spdmlib::crypto::pqc_asym_verify::register
    linkageType: ''
    returnType: bool
    signature: 'pub fn run(case: TestCase, cb: fn(secure: u8, bufer: &[u8]) -> VecDeque<u8>)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:50,1
    - Dst: Some
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - _base_hash_algo
    - _key
    - _data
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: fake_hmac
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn fake_hmac(_base_hash_algo: SpdmBaseHashAlgo,_key: &[u8],_data:
      &[u8],) -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:63,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - _base_hash_algo
    - _key
    - _data
    - hmac
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    - '&[u8]'
    - '&SpdmDigestStruct'
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: fake_hmac_verify
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn fake_hmac_verify(_base_hash_algo: SpdmBaseHashAlgo,_key: &[u8],_data:
      &[u8],hmac: &SpdmDigestStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs:23,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs:24,1
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs:28,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs:29,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 7
    argNames:
    - _aead_algo
    - _key
    - _iv
    - _aad
    - plain_text
    - tag
    - cipher_text
    argTypes:
    - SpdmAeadAlgo
    - '&SpdmAeadKeyStruct'
    - '&SpdmAeadIvStruct'
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: fake_encrypt
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::len'
    - Ok
    - '&[u8]::len'
    - '&mut [u8]::copy_from_slice'
    - SpdmResult::len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn fake_encrypt(_aead_algo: SpdmAeadAlgo,_key: &SpdmAeadKeyStruct,_iv:
      &SpdmAeadIvStruct,_aad: &[u8],plain_text: &[u8],tag: &mut [u8],cipher_text:
      &mut [u8],) -> SpdmResult<(usize, usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs:41,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs:42,1
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs:46,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - _aead_algo
    - _key
    - _iv
    - _aad
    - cipher_text
    - _tag
    - plain_text
    argTypes:
    - SpdmAeadAlgo
    - '&SpdmAeadKeyStruct'
    - '&SpdmAeadIvStruct'
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: fake_decrypt
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::len'
    - Ok
    - '&mut [u8]::copy_from_slice'
    - '&[u8]::len'
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn fake_decrypt(_aead_algo: SpdmAeadAlgo,_key: &SpdmAeadKeyStruct,_iv:
      &SpdmAeadIvStruct,_aad: &[u8],cipher_text: &[u8],_tag: &[u8],plain_text: &mut
      [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:43,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:43,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:43,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:44,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:44,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 14
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: get_random
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs
    functionUses: 12
    functionsReached:
    - Err
    - Ok
    - as_mut_ptr
    - random
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn get_random(data: &mut [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - _base_hash_algo
    - _base_asym_algo
    - _der
    - _data
    - _signature
    argTypes:
    - SpdmBaseHashAlgo
    - SpdmBaseAsymAlgo
    - SpdmDer
    - '&[u8]'
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: fake_asym_verify
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn fake_asym_verify(_base_hash_algo: SpdmBaseHashAlgo,_base_asym_algo:
      SpdmBaseAsymAlgo,_der: SpdmDer,_data: &[u8],_signature: &SpdmSignatureStruct,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - _base_hash_algo
    - _pqc_asym_algo
    - _public_cert_der
    - _data
    - _signature
    argTypes:
    - SpdmBaseHashAlgo
    - SpdmPqcAsymAlgo
    - '&[u8]'
    - '&[u8]'
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: fake_pqc_asym_verify
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn fake_pqc_asym_verify(_base_hash_algo: SpdmBaseHashAlgo,_pqc_asym_algo:
      SpdmPqcAsymAlgo,_public_cert_der: &[u8],_data: &[u8],_signature: &SpdmSignatureStruct,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:23,1
    - Dst: Box::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:25,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:27,1
    - Dst: Box::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:29,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:31,1
    - Dst: Box::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - hash_algo
    - _salt
    - _ikm
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    - '&SpdmHkdfInputKeyingMaterial'
    constantsTouched: []
    func_position:
      end: 37
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 37
    functionName: fake_hkdf_extract
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn fake_hkdf_extract(hash_algo: SpdmBaseHashAlgo,_salt: &[u8],_ikm:
      &SpdmHkdfInputKeyingMaterial,) -> Option<SpdmHkdfPseudoRandomKey>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:46,1
    - Dst: Box::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:48,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:50,1
    - Dst: Box::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:52,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:54,1
    - Dst: Box::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 4
    argNames:
    - hash_algo
    - _pk
    - _info
    - _out_size
    argTypes:
    - SpdmBaseHashAlgo
    - '&SpdmHkdfPseudoRandomKey'
    - '&[u8]'
    - u16
    constantsTouched: []
    func_position:
      end: 60
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 60
    functionName: fake_hkdf_expand
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn fake_hkdf_expand(hash_algo: SpdmBaseHashAlgo,_pk: &SpdmHkdfPseudoRandomKey,_info:
      &[u8],_out_size: u16,) -> Option<SpdmHkdfOutputKeyingMaterial>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:182,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cert_chain
    - _index
    argTypes:
    - '&[u8]'
    - isize
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: fake_get_cert_from_cert_chain
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::len
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn fake_get_cert_from_cert_chain(cert_chain: &[u8], _index: isize)
      -> SpdmResult<(usize, usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _cert_chain
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: fake_verify_cert_chain
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn fake_verify_cert_chain(_cert_chain: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:196,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:196,1
    - Dst: spdmlib::crypto::asym_verify::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:197,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:197,1
    - Dst: spdmlib::crypto::pqc_asym_verify::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:198,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:198,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:199,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:199,1
    - Dst: spdmlib::crypto::rand::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:200,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:200,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:201,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:201,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:202,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:202,1
    - Dst: spdmlib::secret::measurement::register
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:203,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 204
    functionName: test_0_crypto_init
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs
    functionUses: 0
    functionsReached:
    - spdmlib::secret::measurement::register
    - spdmlib::crypto::rand::register
    - spdmlib::crypto::asym_verify::register
    - clone
    - spdmlib::secret::asym_sign::register
    - spdmlib::secret::pqc_asym_sign::register
    - spdmlib::crypto::aead::register
    - spdmlib::crypto::pqc_asym_verify::register
    linkageType: ''
    returnType: void
    signature: fn test_0_crypto_init()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _buffer
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: MySpdmDeviceIo::send
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send(&mut self, _buffer: Arc<&[u8]>) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - _buffer
    - _timeout
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    - usize
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: MySpdmDeviceIo::receive
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'async fn receive(&mut self,_buffer: Arc<Mutex<&mut [u8]>>,_timeout:
      usize,) -> Result<usize, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: MySpdmDeviceIo::flush_all
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmResult
    signature: async fn flush_all(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rx
    argTypes:
    - Arc<SharedBuffer>
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: FakeSpdmDeviceIo::new
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(rx: Arc<SharedBuffer>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:153,1
    - Dst: Arc<Mutex<&mut [u8]>>::clone
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:153,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:154,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:155,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - read_buffer
    - _timeout
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    - usize
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: FakeSpdmDeviceIo::receive
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&mut [u8]::deref_mut'
    - Arc<Mutex<&mut [u8]>>::clone
    - c_int::lock
    - get_buffer
    linkageType: ''
    returnType: Result
    signature: 'async fn receive(&mut self,read_buffer: Arc<Mutex<&mut [u8]>>,_timeout:
      usize,) -> Result<usize, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: FakeSpdmDeviceIo::send
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send(&mut self, buffer: Arc<&[u8]>) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: FakeSpdmDeviceIo::flush_all
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: async fn flush_all(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - fuzzdata
    argTypes:
    - Arc<SharedBuffer>
    - Arc<[u8]>
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: SpdmDeviceIoReceve::new
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 105
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(data: Arc<SharedBuffer>, fuzzdata: Arc<[u8]>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:130,1
    - Dst: Arc<Mutex<&mut [u8]>>::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:130,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:131,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:132,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - read_buffer
    - _timeout
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    - usize
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: SpdmDeviceIoReceve::receive
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&mut [u8]::deref_mut'
    - Arc<Mutex<&mut [u8]>>::clone
    - c_int::lock
    - get_buffer
    linkageType: ''
    returnType: Result
    signature: 'async fn receive(&mut self,read_buffer: Arc<Mutex<&mut [u8]>>,_timeout:
      usize,) -> Result<usize, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_buffer
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:138,1
    - Dst: clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:138,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: SpdmDeviceIoReceve::send
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - clone
    - set_buffer
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send(&mut self, buffer: Arc<&[u8]>) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: SpdmDeviceIoReceve::flush_all
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: async fn flush_all(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<SharedBuffer>
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: FakeSpdmDeviceIoReceve::new
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 105
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(data: Arc<SharedBuffer>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:33,1
    - Dst: Arc<Mutex<&mut [u8]>>::clone
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:33,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:34,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:35,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - read_buffer
    - _timeout
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    - usize
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: FakeSpdmDeviceIoReceve::receive
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&mut [u8]::deref_mut'
    - Arc<Mutex<&mut [u8]>>::clone
    - c_int::lock
    - get_buffer
    linkageType: ''
    returnType: Result
    signature: 'async fn receive(&mut self,read_buffer: Arc<Mutex<&mut [u8]>>,_timeout:
      usize,) -> Result<usize, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_buffer_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:41,1
    - Dst: SpdmCertChainBuffer::clone
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:41,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: FakeSpdmDeviceIoReceve::send
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - SpdmCertChainBuffer::clone
    - Ok
    - set_buffer_ref
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send(&mut self, buffer: Arc<&[u8]>) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: FakeSpdmDeviceIoReceve::flush_all
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: async fn flush_all(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:191,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:191,1
    - Dst: VecDeque::<u8>::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: SharedBuffer::new
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 121
    functionsReached:
    - Arc::new
    - VecDeque::<u8>::new
    - Mutex::new
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:197,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:198,1
    - Dst: push_back
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: SharedBuffer::set_buffer_ref
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - push_back
    - deref_mut
    - lock
    linkageType: ''
    returnType: void
    signature: 'pub fn set_buffer_ref(&self, b: Arc<&[u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:206,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:207,1
    - Dst: push_back
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - Arc<[u8]>
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: SharedBuffer::set_buffer
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - push_back
    - deref_mut
    - lock
    linkageType: ''
    returnType: void
    signature: 'pub fn set_buffer(&self, b: Arc<[u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:214,1
    - Dst: deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:215,1
    - Dst: SpdmResult::lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:217,1
    - Dst: SpdmResult::deref_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:218,1
    - Dst: SpdmResult::iter_mut
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:219,1
    - Dst: is_empty
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:220,1
    - Dst: pop_front
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:223,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - b
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    constantsTouched: []
    func_position:
      end: 228
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 228
    functionName: SharedBuffer::get_buffer
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::deref_mut
    - unwrap
    - is_empty
    - pop_front
    - SpdmResult::iter_mut
    - lock
    - deref_mut
    - SpdmResult::lock
    linkageType: ''
    returnType: usize
    signature: 'pub fn get_buffer(&self, b: Arc<Mutex<&mut [u8]>>) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:234,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:235,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:236,1
    - Dst: SpdmCertChainBuffer::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:236,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:237,1
    - Dst: SpdmCertChainBuffer::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:237,1
    - Dst: Self::send
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:239,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:239,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:239,1
    - Dst: receive
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:241,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:242,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:242,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:241,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 10
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: test_fake_device_io
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - receive
    - Self::send
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - SharedBuffer::new
    - executor::block_on
    - Mutex::new
    - SpdmCertChainBuffer::clone
    linkageType: ''
    returnType: void
    signature: fn test_fake_device_io()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:261,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:262,1
    - Dst: c_int::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:265,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:266,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:268,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 3
    argNames:
    - spdm_buffer
    - transport_buffer
    - secured_message
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    - bool
    constantsTouched: []
    func_position:
      end: 270
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 270
    functionName: TestTransportEncap::encap
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Err
    - copy_from_slice
    - Ok
    - Arc<&[u8]>::len
    - c_int::len
    - c_int::lock
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn encap(&mut self,spdm_buffer: Arc<&[u8]>,transport_buffer:
      Arc<Mutex<&mut [u8]>>,secured_message: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:277,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:278,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:280,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - transport_buffer
    - spdm_buffer
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: TestTransportEncap::decap
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Arc<&[u8]>::len
    - c_int::lock
    - copy_from_slice
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn decap(&mut self,transport_buffer: Arc<&[u8]>,spdm_buffer:
      Arc<Mutex<&mut [u8]>>,) -> SpdmResult<(usize, bool)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:290,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:291,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:291,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:292,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - spdm_buffer
    - app_buffer
    - _is_app_message
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    - bool
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: TestTransportEncap::encap_app
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Arc<&[u8]>::len
    - c_int::lock
    - copy_from_slice
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn encap_app(&mut self,spdm_buffer: Arc<&[u8]>,app_buffer: Arc<Mutex<&mut
      [u8]>>,_is_app_message: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:300,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:301,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:301,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:302,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - app_buffer
    - spdm_buffer
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: TestTransportEncap::decap_app
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Arc<&[u8]>::len
    - c_int::lock
    - copy_from_slice
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn decap_app(&mut self,app_buffer: Arc<&[u8]>,spdm_buffer: Arc<Mutex<&mut
      [u8]>>,) -> SpdmResult<(usize, bool)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: TestTransportEncap::get_sequence_number_count
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_sequence_number_count(&mut self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: TestTransportEncap::get_max_random_count
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: fn get_max_random_count(&mut self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - rx
    - tx
    argTypes:
    - Arc<Mutex<VecDeque<u8>>>
    - Arc<Mutex<VecDeque<u8>>>
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: TestSpdmDeviceIo::new
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(rx: Arc<Mutex<VecDeque<u8>>>, tx: Arc<Mutex<VecDeque<u8>>>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:331,1
    - Dst: len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:332,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:333,1
    - Dst: drain
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:336,1
    - Dst: collect
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:336,1
    - Dst: u32::from_le_bytes
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:338,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:341,1
    - Dst: c_int::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:342,1
    - Dst: Err
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:343,1
    - Dst: pop_front
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:346,1
    - Dst: unwrap
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:346,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 2
    argNames:
    - out_buffer
    - _timeout
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    - usize
    constantsTouched: []
    func_position:
      end: 350
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 350
    functionName: TestSpdmDeviceIo::receive
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - u32::from_le_bytes
    - Err
    - unwrap
    - Ok
    - drain
    - pop_front
    - c_int::lock
    - lock
    - c_int::len
    - collect
    - len
    linkageType: ''
    returnType: Result
    signature: 'async fn receive(&mut self,out_buffer: Arc<Mutex<&mut [u8]>>,_timeout:
      usize,) -> Result<usize, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:353,1
    - Dst: SpdmCertChainBuffer::len
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:354,1
    - Dst: extend
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:355,1
    - Dst: SpdmResult::to_le_bytes
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:355,1
    - Dst: extend
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:356,1
    - Dst: SpdmCertChainBuffer::iter
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:356,1
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 360
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 360
    functionName: TestSpdmDeviceIo::send
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - SpdmResult::to_le_bytes
    - SpdmCertChainBuffer::iter
    - extend
    - lock
    - SpdmCertChainBuffer::len
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send(&mut self, buffer: Arc<&[u8]>) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    functionName: TestSpdmDeviceIo::flush_all
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: async fn flush_all(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:371,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:372,1
    - Dst: Option::extend
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:373,1
    - Dst: SpdmResult::to_le_bytes
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:373,1
    - Dst: Option::push_back
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:374,1
    - Dst: Option::extend
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - secure
    - spdm_msg
    argTypes:
    - u8
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 377
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 377
    functionName: test_header_generater_callback
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Option::push_back
    - Option::extend
    - '&[u8]::len'
    - VecDeque::new
    - SpdmResult::to_le_bytes
    linkageType: ''
    returnType: VecDeque
    signature: 'pub fn test_header_generater_callback(secure: u8, spdm_msg: &[u8])
      -> VecDeque<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:381,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:381,1
    - Dst: VecDeque::<u8>::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:381,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:382,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:382,1
    - Dst: VecDeque::<u8>::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:382,1
    - Dst: Arc::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:383,1
    - Dst: Arc::clone
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:384,1
    - Dst: TestSpdmDeviceIo::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:386,1
    - Dst: send
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:387,1
    - Dst: Arc::new
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:387,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:389,1
    - Dst: BytesMutStrubbed::lock
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:391,1
    - Dst: c_int::as_slices
      Src: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 397
    functionName: test_test_device_io
    functionSourceFile: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - BytesMutStrubbed::lock
    - VecDeque::<u8>::new
    - executor::block_on
    - Mutex::new
    - send
    - TestSpdmDeviceIo::new
    - c_int::as_slices
    - Arc::clone
    linkageType: ''
    returnType: void
    signature: fn test_test_device_io()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: FunctionId::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:34,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: FunctionId::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 1
    functionsReached:
    - u32::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:61,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:62,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: InterfaceId::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FunctionId::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:68,1
    - Dst: u64::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:69,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: InterfaceId::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 1
    functionsReached:
    - u64::read
    - FunctionId::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Tag::into
      Src: /src/spdm-rs/external/ring/src/io/der.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tag
    argTypes:
    - Tag
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: u8::from
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 11
    functionsReached:
    - Tag::into
    linkageType: ''
    returnType: Self
    signature: 'fn from(tag: Tag) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:105,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:106,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:107,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:108,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uts
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: TdiState::try_from
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(uts: u8) -> Result<Self, <Self as TryFrom<u8>>::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: TdiState::default
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::from
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:122,1
    - Dst: Self::encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: TdiState::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - u8::from
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:126,1
    - Dst: Self::try_from
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:127,1
    - Dst: Result::ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 9
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: TdiState::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 1
    functionsReached:
    - Self::try_from
    - Result::ok
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:202,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:203,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:204,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:205,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:206,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:207,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:208,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:209,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:210,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:211,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:212,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:213,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:214,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:215,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:216,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:217,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:218,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:219,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:220,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:221,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:222,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:223,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:224,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - utrrc
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 227
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 227
    functionName: TdispRequestResponseCode::try_from
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(utrrc: u8) -> Result<Self, <Self as TryFrom<u8>>::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::from
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:232,1
    - Dst: Self::encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: TdispRequestResponseCode::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - u8::from
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:236,1
    - Dst: Self::try_from
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:237,1
    - Dst: Result::ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 9
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: TdispRequestResponseCode::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 1
    functionsReached:
    - Self::try_from
    - Result::ok
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: TdispVersion::default
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:259,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:261,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:263,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:265,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - tv
    argTypes:
    - '&TdispVersion'
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: TdispVersion::partial_cmp
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn partial_cmp(&self, tv: &TdispVersion) -> Option<core::cmp::Ordering>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: TdispVersion::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:278,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 5
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: TdispVersion::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 2
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:301,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:302,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:303,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:304,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:305,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: TdispMessageHeader::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:311,1
    - Dst: TdispVersion::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:315,1
    - Dst: TdispRequestResponseCode::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:316,1
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:317,1
    - Dst: InterfaceId::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:318,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 10
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: TdispMessageHeader::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 21
    functionsReached:
    - Some
    - InterfaceId::read
    - u16::read
    - TdispVersion::read
    - TdispRequestResponseCode::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ec
    argTypes:
    - '&TdispErrorCode'
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: u32::from
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 4
    functionsReached:
    - u32::from
    linkageType: ''
    returnType: Self
    signature: 'fn from(ec: &TdispErrorCode) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:372,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:373,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:374,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:375,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:376,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:377,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:378,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:379,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:380,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:381,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:382,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - uec
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 385
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 385
    functionName: TdispErrorCode::try_from
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(uec: u32) -> Result<Self, <Self as TryFrom<u32>>::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:390,1
    - Dst: Self::encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: TdispErrorCode::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - u32::from
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:394,1
    - Dst: Self::try_from
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:395,1
    - Dst: Result::ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 9
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: TdispErrorCode::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 1
    functionsReached:
    - Self::try_from
    - Result::ok
    - u32::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 415
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 415
    functionName: ReqGetTdispVersion::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:418,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 11
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: ReqGetTdispVersion::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:445,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:454,1
    - Dst: iter
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:455,1
    - Dst: take
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:455,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:460,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 464
      start: 442
    functionDepth: 4
    functionLinenumber: 442
    functionLinenumberEnd: 464
    functionName: RspTdispVersion::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - iter
    - SpdmResult::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:467,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:477,1
    - Dst: TdispVersion::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:478,1
    - Dst: iter_mut
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:479,1
    - Dst: take
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:479,1
    - Dst: TdispVersion::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:483,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 491
      start: 466
    functionDepth: 11
    functionLinenumber: 466
    functionLinenumberEnd: 491
    functionName: RspTdispVersion::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispVersion::default
    - Some
    - take
    - TdispVersion::read
    - iter_mut
    - u8::read
    - TdispMessageHeader::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:504,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:505,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: ReqGetTdispCapabilities::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:511,1
    - Dst: u32::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:512,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 11
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: ReqGetTdispCapabilities::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - u32::read
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LockInterfaceFlag::bits
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:539,1
    - Dst: Self::encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 540
    functionName: LockInterfaceFlag::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - LockInterfaceFlag::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:543,1
    - Dst: LockInterfaceFlag::from_bits
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: LockInterfaceFlag::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 2
    functionsReached:
    - LockInterfaceFlag::from_bits
    - u16::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:563,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:564,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:565,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:566,1
    - Dst: u24::new
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:567,1
    - Dst: u24::encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:567,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:568,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:569,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:570,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:572,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 573
      start: 560
    functionDepth: 5
    functionLinenumber: 560
    functionLinenumberEnd: 573
    functionName: RspTdispCapabilities::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - u24::new
    - encode
    - Ok
    - u24::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:576,1
    - Dst: u32::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:577,1
    - Dst: <[u8; 16]>::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:578,1
    - Dst: LockInterfaceFlag::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:579,1
    - Dst: u24::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:580,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:581,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:582,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:583,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:585,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 594
      start: 575
    functionDepth: 11
    functionLinenumber: 575
    functionLinenumberEnd: 594
    functionName: RspTdispCapabilities::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - Some
    - u32::read
    - u8::read
    - LockInterfaceFlag::read
    - <[u8; 16]>::read
    - TdispMessageHeader::read
    - u24::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:611,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:612,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:613,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:614,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:615,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:616,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:618,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 619
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 619
    functionName: ReqLockInterfaceRequest::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:622,1
    - Dst: LockInterfaceFlag::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:623,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:624,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:625,1
    - Dst: u64::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:626,1
    - Dst: u64::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:627,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:629,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 636
      start: 621
    functionDepth: 11
    functionLinenumber: 621
    functionLinenumberEnd: 636
    functionName: ReqLockInterfaceRequest::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - u64::read
    - Some
    - LockInterfaceFlag::read
    - u8::read
    - TdispMessageHeader::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:652,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:653,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 656
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 656
    functionName: RspLockInterfaceResponse::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:659,1
    - Dst: <[u8; START_INTERFACE_NONCE_LEN]>::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:660,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 666
      start: 658
    functionDepth: 11
    functionLinenumber: 658
    functionLinenumberEnd: 666
    functionName: RspLockInterfaceResponse::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - <[u8; START_INTERFACE_NONCE_LEN]>::read
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:681,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:682,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:683,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 686
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 686
    functionName: ReqGetDeviceInterfaceReport::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:689,1
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:690,1
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:691,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 698
      start: 688
    functionDepth: 11
    functionLinenumber: 688
    functionLinenumberEnd: 698
    functionName: ReqGetDeviceInterfaceReport::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - u16::read
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterfaceInfo::bits
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:719,1
    - Dst: Self::encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 720
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 720
    functionName: InterfaceInfo::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - InterfaceInfo::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:723,1
    - Dst: InterfaceInfo::from_bits
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 725
      start: 722
    functionDepth: 5
    functionLinenumber: 722
    functionLinenumberEnd: 725
    functionName: InterfaceInfo::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 1
    functionsReached:
    - u16::read
    - InterfaceInfo::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:745,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:746,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:747,1
    - Dst: iter
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:748,1
    - Dst: take
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:748,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:749,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:752,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 753
      start: 742
    functionDepth: 4
    functionLinenumber: 742
    functionLinenumberEnd: 753
    functionName: RspDeviceInterfaceReport::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - iter
    - SpdmResult::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:756,1
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:757,1
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:758,1
    - Dst: SpdmResult::iter_mut
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:763,1
    - Dst: take
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:763,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:764,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:767,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 773
      start: 755
    functionDepth: 11
    functionLinenumber: 755
    functionLinenumberEnd: 773
    functionName: RspDeviceInterfaceReport::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - Some
    - take
    - u16::read
    - SpdmResult::iter_mut
    - u8::read
    - TdispMessageHeader::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 784
      start: 782
    functionDepth: 3
    functionLinenumber: 782
    functionLinenumberEnd: 784
    functionName: ReqGetDeviceInterfaceState::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:787,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 790
      start: 786
    functionDepth: 11
    functionLinenumber: 786
    functionLinenumberEnd: 790
    functionName: ReqGetDeviceInterfaceState::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:804,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:805,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 808
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 808
    functionName: RspDeviceInterfaceState::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:811,1
    - Dst: TdiState::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:812,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 818
      start: 810
    functionDepth: 11
    functionLinenumber: 810
    functionLinenumberEnd: 818
    functionName: RspDeviceInterfaceState::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdiState::read
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:831,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:832,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 835
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 835
    functionName: ReqStartInterfaceRequest::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:838,1
    - Dst: <[u8; START_INTERFACE_NONCE_LEN]>::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:839,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 845
      start: 837
    functionDepth: 11
    functionLinenumber: 837
    functionLinenumberEnd: 845
    functionName: ReqStartInterfaceRequest::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - <[u8; START_INTERFACE_NONCE_LEN]>::read
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 856
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 856
    functionName: RspStartInterfaceResponse::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:859,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 862
      start: 858
    functionDepth: 11
    functionLinenumber: 858
    functionLinenumberEnd: 862
    functionName: RspStartInterfaceResponse::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 873
      start: 871
    functionDepth: 3
    functionLinenumber: 871
    functionLinenumberEnd: 873
    functionName: ReqStopInterfaceRequest::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:876,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 11
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: ReqStopInterfaceRequest::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 890
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 890
    functionName: RspStopInterfaceResponse::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:893,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 896
      start: 892
    functionDepth: 11
    functionLinenumber: 892
    functionLinenumberEnd: 896
    functionName: RspStopInterfaceResponse::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:909,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:910,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 913
      start: 906
    functionDepth: 3
    functionLinenumber: 906
    functionLinenumberEnd: 913
    functionName: ReqBindP2PStreamRequest::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:916,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:917,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 923
      start: 915
    functionDepth: 11
    functionLinenumber: 915
    functionLinenumberEnd: 923
    functionName: ReqBindP2PStreamRequest::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - u8::read
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 934
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 934
    functionName: RspBindP2PStreamResponse::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:937,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 940
      start: 936
    functionDepth: 11
    functionLinenumber: 936
    functionLinenumberEnd: 940
    functionName: RspBindP2PStreamResponse::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:953,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:954,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 957
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 957
    functionName: ReqUnBindP2PStreamRequest::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:960,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:961,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 967
      start: 959
    functionDepth: 11
    functionLinenumber: 959
    functionLinenumberEnd: 967
    functionName: ReqUnBindP2PStreamRequest::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - u8::read
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 978
      start: 976
    functionDepth: 3
    functionLinenumber: 976
    functionLinenumberEnd: 978
    functionName: RspUnBindP2PStreamResponse::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:981,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 984
      start: 980
    functionDepth: 11
    functionLinenumber: 980
    functionLinenumberEnd: 984
    functionName: RspUnBindP2PStreamResponse::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMIORangeAttribute::bits
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1005,1
    - Dst: Self::encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 1006
      start: 1004
    functionDepth: 3
    functionLinenumber: 1004
    functionLinenumberEnd: 1006
    functionName: MMIORangeAttribute::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - MMIORangeAttribute::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1009,1
    - Dst: MMIORangeAttribute::from_bits
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 1011
      start: 1008
    functionDepth: 5
    functionLinenumber: 1008
    functionLinenumberEnd: 1011
    functionName: MMIORangeAttribute::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 1
    functionsReached:
    - u16::read
    - MMIORangeAttribute::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMIORangeAttribute::empty
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1030
    functionName: TdispMmioRange::default
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 2
    functionsReached:
    - MMIORangeAttribute::empty
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1037,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1038,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1039,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1040,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1042,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 1043
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1043
    functionName: TdispMmioRange::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1046,1
    - Dst: u32::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1047,1
    - Dst: MMIORangeAttribute::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1048,1
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1049,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 1057
      start: 1045
    functionDepth: 5
    functionLinenumber: 1045
    functionLinenumberEnd: 1057
    functionName: TdispMmioRange::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 2
    functionsReached:
    - u64::read
    - Some
    - u32::read
    - u16::read
    - MMIORangeAttribute::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1070,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1071,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 1074
      start: 1067
    functionDepth: 3
    functionLinenumber: 1067
    functionLinenumberEnd: 1074
    functionName: ReqSetMmioAttributeRequest::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1077,1
    - Dst: TdispMmioRange::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1078,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 1084
      start: 1076
    functionDepth: 11
    functionLinenumber: 1076
    functionLinenumberEnd: 1084
    functionName: ReqSetMmioAttributeRequest::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMmioRange::read
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 1095
      start: 1093
    functionDepth: 3
    functionLinenumber: 1093
    functionLinenumberEnd: 1095
    functionName: RspSetMmioAttributeResponse::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1098,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 1101
      start: 1097
    functionDepth: 11
    functionLinenumber: 1097
    functionLinenumberEnd: 1101
    functionName: RspSetMmioAttributeResponse::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1115,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1116,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1117,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 1120
      start: 1112
    functionDepth: 3
    functionLinenumber: 1112
    functionLinenumberEnd: 1120
    functionName: RspTdispError::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TdispMessageHeader::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1123,1
    - Dst: TdispErrorCode::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1127,1
    - Dst: u32::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1128,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 1135
      start: 1122
    functionDepth: 11
    functionLinenumber: 1122
    functionLinenumberEnd: 1135
    functionName: RspTdispError::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispErrorCode::read
    - u32::read
    - TdispMessageHeader::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 567
    functionName: vendor_id
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: VendorIDStruct
    signature: pub const fn vendor_id() -> VendorIDStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterfaceInfo::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1170,1
    - Dst: TdispMmioRange::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1179
    functionName: TdiReportStructure::default
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - InterfaceInfo::default
    - TdispMmioRange::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1186,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1187,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1188,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1189,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1190,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1191,1
    - Dst: iter
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1192,1
    - Dst: take
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1192,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1193,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1195,1
    - Dst: iter
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1196,1
    - Dst: take
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1196,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1201,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1204,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 1205
      start: 1183
    functionDepth: 4
    functionLinenumber: 1183
    functionLinenumberEnd: 1205
    functionName: TdiReportStructure::encode
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterfaceInfo::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1208,1
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1209,1
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1210,1
    - Dst: u16::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1211,1
    - Dst: u32::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1212,1
    - Dst: u32::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1213,1
    - Dst: TdispMmioRange::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1217,1
    - Dst: iter_mut
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1218,1
    - Dst: take
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1218,1
    - Dst: TdispMmioRange::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1219,1
    - Dst: u32::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1221,1
    - Dst: iter_mut
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1226,1
    - Dst: take
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1226,1
    - Dst: u8::read
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1230,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp.rs:1233,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 1243
      start: 1207
    functionDepth: 6
    functionLinenumber: 1207
    functionLinenumberEnd: 1243
    functionName: TdiReportStructure::read
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp.rs
    functionUses: 0
    functionsReached:
    - TdispMmioRange::read
    - Some
    - take
    - u32::read
    - u16::read
    - InterfaceInfo::read
    - iter_mut
    - u8::read
    - TdispMmioRange::default
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:50,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:52,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:52,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:70,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:72,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:74,1
    - Dst: RspTdispError::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:79,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:79,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:85,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:86,1
    - Dst: RspLockInterfaceResponse::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:89,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:89,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:104,1
    - Dst: '&mut [u8; START_INTERFACE_NONCE_LEN]::copy_from_slice'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:107,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 79
    argCount: 9
    argNames:
    - spdm_requester
    - session_id
    - interface_id
    - flags
    - default_stream_id
    - mmio_reporting_offset
    - bind_p2p_address_mask
    - start_interface_nonce
    - tdisp_error_code
    argTypes:
    - '&mut RequesterContext'
    - u32
    - InterfaceId
    - LockInterfaceFlag
    - u8
    - u64
    - u64
    - '&mut [u8; START_INTERFACE_NONCE_LEN]'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 110
      start: 31
    functionDepth: 8
    functionLinenumber: 31
    functionLinenumberEnd: 110
    functionName: pci_tdisp_req_lock_interface_request
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs
    functionUses: 1
    functionsReached:
    - RspLockInterfaceResponse::read_bytes
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - RspTdispError::read_bytes
    - Writer::init
    - Option::ok_or
    - Ok
    - '&mut [u8; START_INTERFACE_NONCE_LEN]::copy_from_slice'
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_lock_interface_request(// INspdm_requester:
      &mut RequesterContext,session_id: u32,interface_id: InterfaceId,flags: LockInterfaceFlag,default_stream_id:
      u8,mmio_reporting_offset: u64,bind_p2p_address_mask: u64,// OUTstart_interface_nonce:
      &mut [u8; START_INTERFACE_NONCE_LEN],tdisp_error_code: &mut Option<TdispErrorCode>,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:34,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:36,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:36,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:41,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:43,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:45,1
    - Dst: RspTdispVersion::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:50,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:50,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:57,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:67,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 53
    argCount: 3
    argNames:
    - spdm_requester
    - session_id
    - interface_id
    argTypes:
    - '&mut RequesterContext'
    - u32
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 71
      start: 22
    functionDepth: 8
    functionLinenumber: 22
    functionLinenumberEnd: 71
    functionName: pci_tdisp_req_get_tdisp_version
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs
    functionUses: 1
    functionsReached:
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - Option::ok_or
    - Writer::init
    - Ok
    - RspTdispVersion::read_bytes
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_get_tdisp_version(// INspdm_requester:
      &mut RequesterContext,session_id: u32,interface_id: InterfaceId,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:40,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:42,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:42,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:56,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:58,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:60,1
    - Dst: RspDeviceInterfaceState::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:65,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:65,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:80,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 4
    argNames:
    - spdm_requester
    - session_id
    - interface_id
    - tdi_state
    argTypes:
    - '&mut RequesterContext'
    - u32
    - InterfaceId
    - '&mut TdiState'
    constantsTouched: []
    func_position:
      end: 86
      start: 26
    functionDepth: 8
    functionLinenumber: 26
    functionLinenumberEnd: 86
    functionName: pci_tdisp_req_get_device_interface_state
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs
    functionUses: 1
    functionsReached:
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - Option::ok_or
    - Writer::init
    - RspDeviceInterfaceState::read_bytes
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_get_device_interface_state(// INspdm_requester:
      &mut RequesterContext,session_id: u32,interface_id: InterfaceId,// OUTtdi_state:
      &mut TdiState,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:47,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:49,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:49,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:63,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:65,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:67,1
    - Dst: RspTdispCapabilities::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:72,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:72,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:87,1
    - Dst: '&mut [u8; 16]::copy_from_slice'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:91,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 84
    argCount: 10
    argNames:
    - spdm_requester
    - session_id
    - tsm_caps
    - interface_id
    - dsm_caps
    - lock_interface_flags_supported
    - dev_addr_width
    - num_req_this
    - num_req_all
    - req_msgs_supported
    argTypes:
    - '&mut RequesterContext'
    - u32
    - u32
    - InterfaceId
    - '&mut u32'
    - '&mut LockInterfaceFlag'
    - '&mut u8'
    - '&mut u8'
    - '&mut u8'
    - '&mut [u8; 16]'
    constantsTouched: []
    func_position:
      end: 99
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 99
    functionName: pci_tdisp_req_get_tdisp_capabilities
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs
    functionUses: 1
    functionsReached:
    - RspTdispCapabilities::read_bytes
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - Option::ok_or
    - Writer::init
    - '&mut [u8; 16]::copy_from_slice'
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_get_tdisp_capabilities(// INspdm_requester:
      &mut RequesterContext,session_id: u32,tsm_caps: u32,interface_id: InterfaceId,//
      OUTdsm_caps: &mut u32,lock_interface_flags_supported: &mut LockInterfaceFlag,dev_addr_width:
      &mut u8,num_req_this: &mut u8,num_req_all: &mut u8,req_msgs_supported: &mut
      [u8; 16],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:44,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:44,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:59,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:61,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:63,1
    - Dst: RspTdispError::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:68,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:68,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:74,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:75,1
    - Dst: RspSetMmioAttributeResponse::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:78,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:78,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:93,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 74
    argCount: 5
    argNames:
    - spdm_requester
    - session_id
    - interface_id
    - mmio_range
    - tdisp_error_code
    argTypes:
    - '&mut RequesterContext'
    - u32
    - InterfaceId
    - TdispMmioRange
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 97
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 97
    functionName: pci_tdisp_req_set_mmio_attribute_request
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs
    functionUses: 0
    functionsReached:
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - RspTdispError::read_bytes
    - Writer::init
    - Option::ok_or
    - RspSetMmioAttributeResponse::read_bytes
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_set_mmio_attribute_request(// INspdm_requester:
      &mut RequesterContext,session_id: u32,interface_id: InterfaceId,mmio_range:
      TdispMmioRange,// OUTtdisp_error_code: &mut Option<TdispErrorCode>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:44,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:44,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:59,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:61,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:63,1
    - Dst: RspTdispError::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:68,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:68,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:74,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:75,1
    - Dst: RspBindP2PStreamResponse::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:78,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:78,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:93,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 74
    argCount: 5
    argNames:
    - spdm_requester
    - session_id
    - interface_id
    - p2p_stream_id
    - tdisp_error_code
    argTypes:
    - '&mut RequesterContext'
    - u32
    - InterfaceId
    - u8
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 97
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 97
    functionName: pci_tdisp_req_bind_p2p_stream_request
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs
    functionUses: 0
    functionsReached:
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - RspTdispError::read_bytes
    - Writer::init
    - Option::ok_or
    - RspBindP2PStreamResponse::read_bytes
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_bind_p2p_stream_request(// INspdm_requester:
      &mut RequesterContext,session_id: u32,interface_id: InterfaceId,p2p_stream_id:
      u8,// OUTtdisp_error_code: &mut Option<TdispErrorCode>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:37,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:39,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:39,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:53,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:55,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:57,1
    - Dst: RspStopInterfaceResponse::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:62,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:62,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:77,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 3
    argNames:
    - spdm_requester
    - session_id
    - interface_id
    argTypes:
    - '&mut RequesterContext'
    - u32
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 81
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 81
    functionName: pci_tdisp_req_stop_interface_request
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs
    functionUses: 1
    functionsReached:
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - RspStopInterfaceResponse::read_bytes
    - Writer::init
    - Option::ok_or
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_stop_interface_request(// INspdm_requester:
      &mut RequesterContext,session_id: u32,interface_id: InterfaceId,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:41,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:43,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:43,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:58,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:60,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:62,1
    - Dst: RspTdispError::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:67,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:67,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:73,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:74,1
    - Dst: RspUnBindP2PStreamResponse::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:77,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:77,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:92,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 74
    argCount: 5
    argNames:
    - spdm_requester
    - session_id
    - interface_id
    - p2p_stream_id
    - tdisp_error_code
    argTypes:
    - '&mut RequesterContext'
    - u32
    - InterfaceId
    - u8
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 96
      start: 26
    functionDepth: 8
    functionLinenumber: 26
    functionLinenumberEnd: 96
    functionName: pci_tdisp_req_unbind_p2p_stream_request
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs
    functionUses: 0
    functionsReached:
    - RspUnBindP2PStreamResponse::read_bytes
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - RspTdispError::read_bytes
    - Writer::init
    - Option::ok_or
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_unbind_p2p_stream_request(// INspdm_requester:
      &mut RequesterContext,session_id: u32,interface_id: InterfaceId,p2p_stream_id:
      u8,// OUTtdisp_error_code: &mut Option<TdispErrorCode>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_vdm_request.rs:26,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_vdm_request.rs:28,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_vdm_request.rs:30,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_vdm_request.rs:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - spdm_requester
    - session_id
    - vendor_defined_req_payload_struct
    argTypes:
    - '&mut RequesterContext'
    - u32
    - VendorDefinedReqPayloadStruct
    constantsTouched: []
    func_position:
      end: 37
      start: 16
    functionDepth: 8
    functionLinenumber: 16
    functionLinenumberEnd: 37
    functionName: pci_tdisp_req_vdm_request
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_vdm_request.rs
    functionUses: 0
    functionsReached:
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - Some
    - pci_tdisp::vendor_id
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_vdm_request(// INspdm_requester: &mut RequesterContext,session_id:
      u32,vendor_defined_req_payload_struct: VendorDefinedReqPayloadStruct,// OUT)
      -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:44,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:46,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:46,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:61,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:63,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:65,1
    - Dst: RspTdispError::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:70,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:70,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:76,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:77,1
    - Dst: RspStartInterfaceResponse::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:80,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:80,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:95,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 75
    argCount: 5
    argNames:
    - spdm_requester
    - session_id
    - interface_id
    - start_interface_nonce
    - tdisp_error_code
    argTypes:
    - '&mut RequesterContext'
    - u32
    - InterfaceId
    - '&[u8; START_INTERFACE_NONCE_LEN]'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 99
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 99
    functionName: pci_tdisp_req_start_interface_request
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs
    functionUses: 1
    functionsReached:
    - RspStartInterfaceResponse::read_bytes
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - RspTdispError::read_bytes
    - Writer::init
    - Option::ok_or
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_start_interface_request(// INspdm_requester:
      &mut RequesterContext,session_id: u32,interface_id: InterfaceId,start_interface_nonce:
      &[u8; START_INTERFACE_NONCE_LEN],// OUTtdisp_error_code: &mut Option<TdispErrorCode>,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:52,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:54,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:54,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:70,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:72,1
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:74,1
    - Dst: RspTdispError::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:79,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:79,1
    - Dst: Some
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:85,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:86,1
    - Dst: RspDeviceInterfaceReport::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:89,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:89,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:104,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:112,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:115,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs:132,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 122
    argCount: 6
    argNames:
    - spdm_requester
    - session_id
    - interface_id
    - report
    - report_size
    - tdisp_error_code
    argTypes:
    - '&mut RequesterContext'
    - u32
    - InterfaceId
    - '&mut [u8; MAX_DEVICE_REPORT_BUFFER]'
    - '&mut usize'
    - '&mut Option<TdispErrorCode>'
    constantsTouched: []
    func_position:
      end: 133
      start: 30
    functionDepth: 8
    functionLinenumber: 30
    functionLinenumberEnd: 133
    functionName: pci_tdisp_req_get_device_interface_report
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs
    functionUses: 1
    functionsReached:
    - RspDeviceInterfaceReport::read_bytes
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - pci_tdisp::vendor_id
    - RspTdispError::read_bytes
    - Writer::init
    - Option::ok_or
    - copy_from_slice
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_tdisp_req_get_device_interface_report(// INspdm_requester:
      &mut RequesterContext,session_id: u32,interface_id: InterfaceId,// OUTreport:
      &mut [u8; MAX_DEVICE_REPORT_BUFFER],report_size: &mut usize,tdisp_error_code:
      &mut Option<TdispErrorCode>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pci_tdisp::vendor_id
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:36,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:39,1
    - Dst: TdispRequestResponseCode::try_from
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:42,1
    - Dst: super::pci_tdisp_rsp_tdisp_version::pci_tdisp_rsp_version
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:47,1
    - Dst: 'super::

        pci_tdisp_rsp_tdisp_capabilities::pci_tdisp_rsp_capabilities'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:50,1
    - Dst: 'super::

        pci_tdisp_rsp_lock_interface_request::pci_tdisp_rsp_lock_interface'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:53,1
    - Dst: 'super::

        pci_tdisp_rsp_device_interface_report::pci_tdisp_rsp_interface_report'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:56,1
    - Dst: 'super::

        pci_tdisp_rsp_device_interface_state::pci_tdisp_rsp_interface_state'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:59,1
    - Dst: 'super::

        pci_tdisp_rsp_start_interface_request::pci_tdisp_rsp_start_interface'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:62,1
    - Dst: 'super::

        pci_tdisp_rsp_stop_interface_request::pci_tdisp_rsp_stop_interface'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:65,1
    - Dst: 'super::

        pci_tdisp_rsp_set_mmio_attribute_request::pci_tdisp_rsp_set_mmio_attribute'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:68,1
    - Dst: 'super::

        pci_tdisp_rsp_bind_p2p_stream_request::pci_tdisp_rsp_bind_p2p_stream'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:71,1
    - Dst: 'super::

        pci_tdisp_rsp_unbind_p2p_stream_request::pci_tdisp_rsp_unbind_p2p_stream'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:74,1
    - Dst: 'super::

        pci_tdisp_rsp_tdisp_error::write_error'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:82,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:90,1
    - Dst: 'super::

        pci_tdisp_rsp_vdm_response::pci_tdisp_rsp_vdm_response'
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 3
    argNames:
    - vdm_handle
    - vendor_id_struct
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorIDStruct'
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 96
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 96
    functionName: pci_tdisp_rsp_dispatcher
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs
    functionUses: 1
    functionsReached:
    - 'super::

      pci_tdisp_rsp_tdisp_capabilities::pci_tdisp_rsp_capabilities'
    - Err
    - 'super::

      pci_tdisp_rsp_start_interface_request::pci_tdisp_rsp_start_interface'
    - pci_tdisp::vendor_id
    - 'super::

      pci_tdisp_rsp_set_mmio_attribute_request::pci_tdisp_rsp_set_mmio_attribute'
    - 'super::

      pci_tdisp_rsp_device_interface_report::pci_tdisp_rsp_interface_report'
    - 'super::

      pci_tdisp_rsp_bind_p2p_stream_request::pci_tdisp_rsp_bind_p2p_stream'
    - 'super::

      pci_tdisp_rsp_vdm_response::pci_tdisp_rsp_vdm_response'
    - Ok
    - TdispRequestResponseCode::try_from
    - 'super::

      pci_tdisp_rsp_device_interface_state::pci_tdisp_rsp_interface_state'
    - 'super::

      pci_tdisp_rsp_tdisp_error::write_error'
    - 'super::

      pci_tdisp_rsp_lock_interface_request::pci_tdisp_rsp_lock_interface'
    - 'super::

      pci_tdisp_rsp_stop_interface_request::pci_tdisp_rsp_stop_interface'
    - super::pci_tdisp_rsp_tdisp_version::pci_tdisp_rsp_version
    - 'super::

      pci_tdisp_rsp_unbind_p2p_stream_request::pci_tdisp_rsp_unbind_p2p_stream'
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn pci_tdisp_rsp_dispatcher(vdm_handle: usize,vendor_id_struct:
      &VendorIDStruct,vendor_defined_req_payload_struct: &VendorDefinedReqPayloadStruct,)
      -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/time/mod.rs:18,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/time/mod.rs:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmTime
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: register
    functionSourceFile: /src/spdm-rs/spdmlib/src/time/mod.rs
    functionUses: 128
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmTime) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqGetTdispCapabilities::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:108,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:108,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:114,1
    - Dst: LockInterfaceFlag::empty
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:117,1
    - Dst: pci_tdisp_device_capabilities
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:123,1
    - Dst: super::pci_tdisp_rsp_tdisp_error::write_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:142,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:150,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:154,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:156,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:156,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:176,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 65
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 181
      start: 104
    functionDepth: 10
    functionLinenumber: 104
    functionLinenumberEnd: 181
    functionName: pci_tdisp_rsp_capabilities
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs
    functionUses: 1
    functionsReached:
    - Err
    - LockInterfaceFlag::empty
    - encode
    - InterfaceId::default
    - Option::ok_or
    - Writer::init
    - Ok
    - ReqGetTdispCapabilities::read_bytes
    - pci_tdisp_device_capabilities
    - super::pci_tdisp_rsp_tdisp_error::write_error
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_capabilities(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqGetDeviceInterfaceReport::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:84,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:84,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:90,1
    - Dst: pci_tdisp_device_interface_report
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:96,1
    - Dst: super::pci_tdisp_rsp_tdisp_error::write_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:110,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:118,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:152,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:155,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:160,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:160,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:177,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs:180,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 108
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 182
      start: 80
    functionDepth: 10
    functionLinenumber: 80
    functionLinenumberEnd: 182
    functionName: pci_tdisp_rsp_interface_report
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs
    functionUses: 1
    functionsReached:
    - pci_tdisp_device_interface_report
    - Err
    - encode
    - InterfaceId::default
    - Option::ok_or
    - Writer::init
    - Ok
    - copy_from_slice
    - ReqGetDeviceInterfaceReport::read_bytes
    - super::pci_tdisp_rsp_tdisp_error::write_error
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_interface_report(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqBindP2PStreamRequest::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:80,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:80,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:86,1
    - Dst: pci_tdisp_device_bind_p2p_stream
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:89,1
    - Dst: super::pci_tdisp_rsp_tdisp_error::write_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:102,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:110,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:114,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:116,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:116,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:130,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 135
      start: 76
    functionDepth: 10
    functionLinenumber: 76
    functionLinenumberEnd: 135
    functionName: pci_tdisp_rsp_bind_p2p_stream
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs
    functionUses: 1
    functionsReached:
    - ReqBindP2PStreamRequest::read_bytes
    - pci_tdisp_device_bind_p2p_stream
    - Err
    - encode
    - InterfaceId::default
    - Option::ok_or
    - Writer::init
    - Ok
    - super::pci_tdisp_rsp_tdisp_error::write_error
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_bind_p2p_stream(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqLockInterfaceRequest::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:100,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:100,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:111,1
    - Dst: pci_tdisp_device_lock_interface
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:115,1
    - Dst: super::pci_tdisp_rsp_tdisp_error::write_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:127,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:135,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:139,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:141,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:141,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:156,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 161
      start: 96
    functionDepth: 10
    functionLinenumber: 96
    functionLinenumberEnd: 161
    functionName: pci_tdisp_rsp_lock_interface
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs
    functionUses: 1
    functionsReached:
    - Err
    - encode
    - InterfaceId::default
    - ReqLockInterfaceRequest::read_bytes
    - Option::ok_or
    - Writer::init
    - Ok
    - map_err
    - super::pci_tdisp_rsp_tdisp_error::write_error
    - pci_tdisp_device_lock_interface
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_lock_interface(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pci_tdisp_device_vdm_response
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_vdm_response.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 10
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: pci_tdisp_rsp_vdm_response
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_vdm_response.rs
    functionUses: 1
    functionsReached:
    - pci_tdisp_device_vdm_response
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_vdm_response(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:69,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:71,1
    - Dst: pci_tdisp_device_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:73,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:75,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:75,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:90,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:91,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - vdm_handle
    - error_code
    - error_data
    - ext_error_data
    - vendor_defined_rsp_payload
    argTypes:
    - usize
    - TdispErrorCode
    - u32
    - '&[u8]'
    - '&mut [u8; MAX_SPDM_VENDOR_DEFINED_PAYLOAD_SIZE]'
    constantsTouched: []
    func_position:
      end: 95
      start: 62
    functionDepth: 10
    functionLinenumber: 62
    functionLinenumberEnd: 95
    functionName: write_error
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs
    functionUses: 10
    functionsReached:
    - Err
    - pci_tdisp_device_error
    - InterfaceId::default
    - encode
    - Writer::extend_from_slice
    - Writer::init
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn write_error(vdm_handle: usize,error_code: TdispErrorCode,error_data:
      u32,ext_error_data: &[u8],vendor_defined_rsp_payload: &mut [u8; MAX_SPDM_VENDOR_DEFINED_PAYLOAD_SIZE],)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqGetTdispVersion::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:80,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:80,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:86,1
    - Dst: TdispVersion::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:88,1
    - Dst: pci_tdisp_device_version
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:90,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:103,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:105,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:105,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:114,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 119
      start: 76
    functionDepth: 10
    functionLinenumber: 76
    functionLinenumberEnd: 119
    functionName: pci_tdisp_rsp_version
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs
    functionUses: 1
    functionsReached:
    - TdispVersion::default
    - pci_tdisp_device_version
    - Err
    - encode
    - InterfaceId::default
    - Option::ok_or
    - Writer::init
    - Ok
    - ReqGetTdispVersion::read_bytes
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_version(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqStopInterfaceRequest::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:72,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:72,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:78,1
    - Dst: pci_tdisp_device_stop_interface
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:81,1
    - Dst: super::pci_tdisp_rsp_tdisp_error::write_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:89,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:97,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:101,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:103,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:103,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:117,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 122
      start: 68
    functionDepth: 10
    functionLinenumber: 68
    functionLinenumberEnd: 122
    functionName: pci_tdisp_rsp_stop_interface
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs
    functionUses: 1
    functionsReached:
    - pci_tdisp_device_stop_interface
    - Err
    - encode
    - InterfaceId::default
    - Option::ok_or
    - Writer::init
    - Ok
    - super::pci_tdisp_rsp_tdisp_error::write_error
    - ReqStopInterfaceRequest::read_bytes
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_stop_interface(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqUnBindP2PStreamRequest::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:80,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:80,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:86,1
    - Dst: pci_tdisp_device_unbind_p2p_stream
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:89,1
    - Dst: super::pci_tdisp_rsp_tdisp_error::write_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:102,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:110,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:114,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:116,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:116,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:130,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 135
      start: 76
    functionDepth: 10
    functionLinenumber: 76
    functionLinenumberEnd: 135
    functionName: pci_tdisp_rsp_unbind_p2p_stream
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs
    functionUses: 1
    functionsReached:
    - ReqUnBindP2PStreamRequest::read_bytes
    - pci_tdisp_device_unbind_p2p_stream
    - Err
    - encode
    - InterfaceId::default
    - Option::ok_or
    - Writer::init
    - Ok
    - super::pci_tdisp_rsp_tdisp_error::write_error
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_unbind_p2p_stream(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqSetMmioAttributeRequest::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:80,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:80,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:86,1
    - Dst: pci_tdisp_device_set_mmio_attribute
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:89,1
    - Dst: super::pci_tdisp_rsp_tdisp_error::write_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:102,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:110,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:114,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:116,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:116,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:130,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 135
      start: 76
    functionDepth: 10
    functionLinenumber: 76
    functionLinenumberEnd: 135
    functionName: pci_tdisp_rsp_set_mmio_attribute
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs
    functionUses: 1
    functionsReached:
    - Err
    - encode
    - InterfaceId::default
    - Option::ok_or
    - Writer::init
    - Ok
    - ReqSetMmioAttributeRequest::read_bytes
    - pci_tdisp_device_set_mmio_attribute
    - super::pci_tdisp_rsp_tdisp_error::write_error
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_set_mmio_attribute(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqStartInterfaceRequest::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:81,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:81,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:87,1
    - Dst: pci_tdisp_device_start_interface
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:90,1
    - Dst: super::pci_tdisp_rsp_tdisp_error::write_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:103,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:111,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:115,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:117,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:117,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:131,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 136
      start: 77
    functionDepth: 10
    functionLinenumber: 77
    functionLinenumberEnd: 136
    functionName: pci_tdisp_rsp_start_interface
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs
    functionUses: 1
    functionsReached:
    - Err
    - encode
    - InterfaceId::default
    - Option::ok_or
    - Writer::init
    - pci_tdisp_device_start_interface
    - Ok
    - ReqStartInterfaceRequest::read_bytes
    - super::pci_tdisp_rsp_tdisp_error::write_error
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_start_interface(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReqGetDeviceInterfaceState::read_bytes
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:75,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:75,1
    - Dst: InterfaceId::default
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:81,1
    - Dst: pci_tdisp_device_interface_state
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:85,1
    - Dst: super::pci_tdisp_rsp_tdisp_error::write_error
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:98,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:106,1
    - Dst: Writer::init
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:110,1
    - Dst: encode
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:112,1
    - Dst: map_err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:112,1
    - Dst: Err
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:127,1
    - Dst: Ok
      Src: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 2
    argNames:
    - vdm_handle
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 132
      start: 71
    functionDepth: 10
    functionLinenumber: 71
    functionLinenumberEnd: 132
    functionName: pci_tdisp_rsp_interface_state
    functionSourceFile: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs
    functionUses: 1
    functionsReached:
    - ReqGetDeviceInterfaceState::read_bytes
    - pci_tdisp_device_interface_state
    - Err
    - encode
    - InterfaceId::default
    - Option::ok_or
    - Writer::init
    - Ok
    - super::pci_tdisp_rsp_tdisp_error::write_error
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_tdisp_rsp_interface_state(vdm_handle: usize,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:56,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:57,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:58,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:59,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: QueryDataObject::encode
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:65,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:70,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:75,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:77,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: QueryDataObject::read
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:98,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:99,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:100,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:101,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:102,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:103,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:104,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:105,1
    - Dst: iter
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:106,1
    - Dst: take
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:106,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:107,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 111
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 111
    functionName: QueryRespDataObject::encode
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:114,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:118,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:122,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:123,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:124,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:125,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:126,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:127,1
    - Dst: left
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:129,1
    - Dst: contains
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:135,1
    - Dst: iter_mut
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:142,1
    - Dst: take
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:142,1
    - Dst: u32::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:143,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:146,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 155
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 155
    functionName: QueryRespDataObject::read
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - contains
    - Some
    - take
    - left
    - u32::read
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:168,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:169,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:170,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:171,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:172,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:173,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:174,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:175,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:176,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:177,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:179,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 61
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 180
    functionName: Aes256GcmKeyBuffer::encode
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:183,1
    - Dst: Box::new
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:184,1
    - Dst: Option::iter_mut
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:186,1
    - Dst: take
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:186,1
    - Dst: u32::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:187,1
    - Dst: Option::reverse
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:190,1
    - Dst: Result::iter_mut
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:192,1
    - Dst: take
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:192,1
    - Dst: u32::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:193,1
    - Dst: Result::reverse
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:196,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 199
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 199
    functionName: Aes256GcmKeyBuffer::read
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 1
    functionsReached:
    - Result::iter_mut
    - Option::reverse
    - Result::reverse
    - Some
    - take
    - u32::read
    - Option::iter_mut
    - Box::new
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:216,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:217,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:218,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:219,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:220,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:221,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:222,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:223,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: KeyProgDataObject::encode
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:229,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:233,1
    - Dst: u16::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:237,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:238,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:239,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:240,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:250,1
    - Dst: Aes256GcmKeyBuffer::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:251,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:253,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 261
      start: 228
    functionDepth: 5
    functionLinenumber: 228
    functionLinenumberEnd: 261
    functionName: KeyProgDataObject::read
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - Some
    - u16::read
    - u8::read
    - Aes256GcmKeyBuffer::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: KpAckStatus::default
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:296,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:297,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:298,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:299,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:300,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - untrusted_status
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: KpAckStatus::try_from
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(untrusted_status: u8) -> Result<Self, <Self as TryFrom<u8>>::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::from
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:310,1
    - Dst: Self::encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:310,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: KpAckStatus::encode
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - u8::from
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:316,1
    - Dst: KpAckStatus::try_from
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:317,1
    - Dst: Result::ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 9
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: KpAckStatus::read
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 1
    functionsReached:
    - Result::ok
    - KpAckStatus::try_from
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:335,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:336,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:337,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:338,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:339,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:340,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:341,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 344
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 344
    functionName: KpAckDataObject::encode
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:347,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:351,1
    - Dst: u16::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:355,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:356,1
    - Dst: KpAckStatus::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:357,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:358,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:368,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:370,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 378
      start: 346
    functionDepth: 10
    functionLinenumber: 346
    functionLinenumberEnd: 378
    functionName: KpAckDataObject::read
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - KpAckStatus::read
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:394,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:395,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:396,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:397,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:398,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:399,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:400,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:402,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: KSetGoDataObject::encode
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:406,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:410,1
    - Dst: u16::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:414,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:415,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:416,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:417,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:427,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:429,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 436
      start: 405
    functionDepth: 5
    functionLinenumber: 405
    functionLinenumberEnd: 436
    functionName: KSetGoDataObject::read
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:452,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:453,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:454,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:455,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:456,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:457,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:458,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:460,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 461
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 461
    functionName: KSetStopDataObject::encode
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:464,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:468,1
    - Dst: u16::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:472,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:473,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:474,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:475,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:485,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:487,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 494
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 494
    functionName: KSetStopDataObject::read
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:510,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:511,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:512,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:513,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:514,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:515,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:516,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:518,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 519
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 519
    functionName: KGoStopAckDataObject::encode
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:522,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:526,1
    - Dst: u16::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:530,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:531,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:532,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:533,1
    - Dst: u8::read
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:543,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_idekm.rs:545,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 552
      start: 521
    functionDepth: 5
    functionLinenumber: 521
    functionLinenumberEnd: 552
    functionName: KGoStopAckDataObject::read
    functionSourceFile: /src/spdm-rs/idekm/src/pci_idekm.rs
    functionUses: 0
    functionsReached:
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:44,1
    - Dst: map_err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:44,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:55,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:57,1
    - Dst: pci_idekm::vendor_id
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:59,1
    - Dst: KGoStopAckDataObject::read_bytes
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:64,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:64,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:76,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs:78,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 7
    argNames:
    - spdm_requester
    - session_id
    - stream_id
    - key_set
    - key_direction
    - key_sub_stream
    - port_index
    argTypes:
    - '&mut RequesterContext'
    - u32
    - u8
    - u8
    - u8
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 80
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 80
    functionName: IdekmReqContext::pci_ide_km_key_set_go
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs
    functionUses: 1
    functionsReached:
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - Option::ok_or
    - Writer::init
    - Ok
    - pci_idekm::vendor_id
    - KGoStopAckDataObject::read_bytes
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_ide_km_key_set_go(&mut self,// INspdm_requester:
      &mut RequesterContext,session_id: u32,stream_id: u8,key_set: u8,key_direction:
      u8,key_sub_stream: u8,port_index: u8,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:44,1
    - Dst: map_err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:44,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:49,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:51,1
    - Dst: vendor_id
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:53,1
    - Dst: QueryRespDataObject::read_bytes
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:58,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:58,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:65,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 9
    argNames:
    - spdm_requester
    - session_id
    - port_index
    - dev_func_num
    - bus_num
    - segment
    - max_port_index
    - ide_reg_block
    - ide_reg_block_cnt
    argTypes:
    - '&mut RequesterContext'
    - u32
    - u8
    - '&mut u8'
    - '&mut u8'
    - '&mut u8'
    - '&mut u8'
    - '&mut [u32; PCI_IDE_KM_IDE_REG_BLOCK_MAX_COUNT]'
    - '&mut usize'
    constantsTouched: []
    func_position:
      end: 76
      start: 22
    functionDepth: 8
    functionLinenumber: 22
    functionLinenumberEnd: 76
    functionName: IdekmReqContext::pci_ide_km_query
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs
    functionUses: 1
    functionsReached:
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - Option::ok_or
    - Writer::init
    - Ok
    - QueryRespDataObject::read_bytes
    - vendor_id
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_ide_km_query(&mut self,// INspdm_requester: &mut
      RequesterContext,session_id: u32,port_index: u8,// OUTdev_func_num: &mut u8,bus_num:
      &mut u8,segment: &mut u8,max_port_index: &mut u8,ide_reg_block: &mut [u32; PCI_IDE_KM_IDE_REG_BLOCK_MAX_COUNT],ide_reg_block_cnt:
      &mut usize,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:45,1
    - Dst: Option::clone
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:53,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:47,1
    - Dst: map_err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:47,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:59,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:61,1
    - Dst: pci_idekm::vendor_id
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:63,1
    - Dst: KpAckDataObject::read_bytes
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:68,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:68,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:80,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs:85,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 9
    argNames:
    - spdm_requester
    - session_id
    - stream_id
    - key_set
    - key_direction
    - key_sub_stream
    - port_index
    - key_iv
    - kp_ack_status
    argTypes:
    - '&mut RequesterContext'
    - u32
    - u8
    - u8
    - u8
    - u8
    - u8
    - '&Aes256GcmKeyBuffer'
    - '&mut KpAckStatus'
    constantsTouched: []
    func_position:
      end: 86
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 86
    functionName: IdekmReqContext::pci_ide_km_key_prog
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs
    functionUses: 1
    functionsReached:
    - KpAckDataObject::read_bytes
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - Option::ok_or
    - Writer::init
    - Ok
    - pci_idekm::vendor_id
    - Option::clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_ide_km_key_prog(&mut self,// INspdm_requester: &mut
      RequesterContext,session_id: u32,stream_id: u8,key_set: u8,key_direction: u8,key_sub_stream:
      u8,port_index: u8,key_iv: &Aes256GcmKeyBuffer,// OUTkp_ack_status: &mut KpAckStatus,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:44,1
    - Dst: map_err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:44,1
    - Dst: '&mut RequesterContext::send_spdm_vendor_defined_request'
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:55,1
    - Dst: Some
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:57,1
    - Dst: pci_idekm::vendor_id
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:59,1
    - Dst: KGoStopAckDataObject::read_bytes
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:64,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:64,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:76,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs:78,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 7
    argNames:
    - spdm_requester
    - session_id
    - stream_id
    - key_set
    - key_direction
    - key_sub_stream
    - port_index
    argTypes:
    - '&mut RequesterContext'
    - u32
    - u8
    - u8
    - u8
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 80
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 80
    functionName: IdekmReqContext::pci_ide_km_key_set_stop
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs
    functionUses: 1
    functionsReached:
    - Some
    - Err
    - encode
    - '&mut RequesterContext::send_spdm_vendor_defined_request'
    - Option::ok_or
    - Writer::init
    - Ok
    - pci_idekm::vendor_id
    - KGoStopAckDataObject::read_bytes
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn pci_ide_km_key_set_stop(&mut self,// INspdm_requester:
      &mut RequesterContext,session_id: u32,stream_id: u8,key_set: u8,key_direction:
      u8,key_sub_stream: u8,port_index: u8,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KSetGoDataObject::read_bytes
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:72,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:72,1
    - Dst: pci_ide_km_device_key_set_go
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:83,1
    - Dst: Writer::init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:92,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:93,1
    - Dst: map_err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:93,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:104,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 1
    argNames:
    - vendor_defined_req_payload_struct
    argTypes:
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 109
      start: 69
    functionDepth: 10
    functionLinenumber: 69
    functionLinenumberEnd: 109
    functionName: pci_ide_km_rsp_key_set_go
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs
    functionUses: 1
    functionsReached:
    - Err
    - encode
    - Option::ok_or
    - pci_ide_km_device_key_set_go
    - KSetGoDataObject::read_bytes
    - Writer::init
    - Ok
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_ide_km_rsp_key_set_go(vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyProgDataObject::read_bytes
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:81,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:81,1
    - Dst: KpAckStatus::default
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:92,1
    - Dst: clone
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:93,1
    - Dst: pci_ide_km_device_key_prog
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:94,1
    - Dst: Writer::init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:105,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:106,1
    - Dst: map_err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:106,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:118,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 51
    argCount: 1
    argNames:
    - vendor_defined_req_payload_struct
    argTypes:
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 123
      start: 78
    functionDepth: 10
    functionLinenumber: 78
    functionLinenumberEnd: 123
    functionName: pci_ide_km_rsp_key_prog
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs
    functionUses: 1
    functionsReached:
    - KpAckStatus::default
    - Err
    - encode
    - pci_ide_km_device_key_prog
    - Option::ok_or
    - clone
    - Writer::init
    - Ok
    - KeyProgDataObject::read_bytes
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_ide_km_rsp_key_prog(vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KSetStopDataObject::read_bytes
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:73,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:73,1
    - Dst: pci_ide_km_device_key_set_stop
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:84,1
    - Dst: Writer::init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:93,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:94,1
    - Dst: map_err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:94,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:105,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 1
    argNames:
    - vendor_defined_req_payload_struct
    argTypes:
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 110
      start: 70
    functionDepth: 10
    functionLinenumber: 70
    functionLinenumberEnd: 110
    functionName: pci_ide_km_rsp_key_set_stop
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs
    functionUses: 1
    functionsReached:
    - Err
    - encode
    - Option::ok_or
    - Writer::init
    - Ok
    - pci_ide_km_device_key_set_stop
    - KSetStopDataObject::read_bytes
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_ide_km_rsp_key_set_stop(vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QueryDataObject::read_bytes
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:79,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:79,1
    - Dst: pci_ide_km_device_query
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:98,1
    - Dst: Writer::init
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:109,1
    - Dst: encode
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:111,1
    - Dst: map_err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:111,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:124,1
    - Dst: Ok
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - vendor_defined_req_payload_struct
    argTypes:
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 129
      start: 76
    functionDepth: 10
    functionLinenumber: 76
    functionLinenumberEnd: 129
    functionName: pci_ide_km_rsp_query
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs
    functionUses: 1
    functionsReached:
    - Err
    - encode
    - Option::ok_or
    - Writer::init
    - Ok
    - QueryDataObject::read_bytes
    - pci_ide_km_device_query
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn pci_ide_km_rsp_query(vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vendor_id
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_dispatcher.rs:32,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_dispatcher.rs:35,1
    - Dst: pci_ide_km_rsp_query::pci_ide_km_rsp_query
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_dispatcher.rs:40,1
    - Dst: pci_ide_km_rsp_key_prog::pci_ide_km_rsp_key_prog
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_dispatcher.rs:43,1
    - Dst: pci_ide_km_rsp_key_set_go::pci_ide_km_rsp_key_set_go
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_dispatcher.rs:46,1
    - Dst: pci_ide_km_rsp_key_set_stop::pci_ide_km_rsp_key_set_stop
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_dispatcher.rs:48,1
    - Dst: Err
      Src: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_dispatcher.rs:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - _vdm_handle
    - vendor_id_struct
    - vendor_defined_req_payload_struct
    argTypes:
    - usize
    - '&VendorIDStruct'
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 53
      start: 26
    functionDepth: 11
    functionLinenumber: 26
    functionLinenumberEnd: 53
    functionName: pci_ide_km_rsp_dispatcher
    functionSourceFile: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_dispatcher.rs
    functionUses: 1
    functionsReached:
    - pci_ide_km_rsp_query::pci_ide_km_rsp_query
    - pci_ide_km_rsp_key_set_stop::pci_ide_km_rsp_key_set_stop
    - Err
    - pci_ide_km_rsp_key_set_go::pci_ide_km_rsp_key_set_go
    - vendor_id
    - pci_ide_km_rsp_key_prog::pci_ide_km_rsp_key_prog
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn pci_ide_km_rsp_dispatcher(_vdm_handle: usize,vendor_id_struct:
      &VendorIDStruct,vendor_defined_req_payload_struct: &VendorDefinedReqPayloadStruct,)
      -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:12,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:16,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:16,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:18,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:19,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:23,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:23,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:27,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:28,1
    - Dst: SpdmContext::handle_spdm_version
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:34,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:34,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:39,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:40,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:41,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:42,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:42,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 11
    functionDepth: 10
    functionLinenumber: 11
    functionLinenumberEnd: 46
    functionName: pass_rsp_handle_spdm_version
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - SpdmContext::handle_spdm_version
    - spdmlib::secret::pqc_asym_sign::register
    - c_int::lock
    - '&mut [u8]::deref_mut'
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    linkageType: ''
    returnType: void
    signature: pub async fn pass_rsp_handle_spdm_version()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:49,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:52,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:52,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:54,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:54,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:55,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:55,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:57,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:59,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:59,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:59,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:59,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:63,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:64,1
    - Dst: SpdmContext::handle_spdm_capability
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:71,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:71,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:76,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:77,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:78,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:79,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:79,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 48
    functionDepth: 10
    functionLinenumber: 48
    functionLinenumberEnd: 83
    functionName: pass_rsp_handle_spdm_capability
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - SpdmContext::handle_spdm_capability
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - spdmlib::secret::pqc_asym_sign::register
    - c_int::lock
    - '&mut [u8]::deref_mut'
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    linkageType: ''
    returnType: void
    signature: pub async fn pass_rsp_handle_spdm_capability()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:86,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:89,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:89,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:91,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:91,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:92,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:92,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:94,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:96,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:96,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:96,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:96,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:100,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:101,1
    - Dst: SpdmContext::handle_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:107,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:107,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:115,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:116,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:117,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:118,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:118,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 85
    functionDepth: 10
    functionLinenumber: 85
    functionLinenumberEnd: 122
    functionName: pass_rsp_handle_spdm_algorithm
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - clone
    - SpdmContext::handle_spdm_algorithm
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - spdmlib::secret::pqc_asym_sign::register
    - c_int::lock
    - '&mut [u8]::deref_mut'
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    linkageType: ''
    returnType: void
    signature: pub async fn pass_rsp_handle_spdm_algorithm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:125,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:128,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:128,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:130,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:130,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:131,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:131,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:133,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:135,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:135,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:135,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:135,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:139,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:140,1
    - Dst: SpdmContext::handle_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:146,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:146,1
    - Dst: SpdmContext::handle_spdm_digest
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:154,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:154,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:159,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:160,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:161,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:162,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:162,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 124
    functionDepth: 10
    functionLinenumber: 124
    functionLinenumberEnd: 166
    functionName: pass_rsp_handle_spdm_digest
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - SpdmContext::handle_spdm_digest
    - clone
    - SpdmContext::handle_spdm_algorithm
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - spdmlib::secret::pqc_asym_sign::register
    - c_int::lock
    - '&mut [u8]::deref_mut'
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    linkageType: ''
    returnType: void
    signature: pub async fn pass_rsp_handle_spdm_digest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:169,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:172,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:172,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:174,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:174,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:175,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:175,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:177,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:179,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:179,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:179,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:179,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:183,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:184,1
    - Dst: SpdmContext::handle_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:189,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:189,1
    - Dst: SpdmContext::handle_spdm_digest
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:196,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:196,1
    - Dst: SpdmContext::handle_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:200,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:200,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:205,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:206,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:207,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:208,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:208,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 168
    functionDepth: 10
    functionLinenumber: 168
    functionLinenumberEnd: 212
    functionName: pass_rsp_handle_spdm_certificate
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - SpdmContext::handle_spdm_digest
    - clone
    - SpdmContext::handle_spdm_algorithm
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - spdmlib::secret::pqc_asym_sign::register
    - SpdmContext::handle_spdm_certificate
    - c_int::lock
    - '&mut [u8]::deref_mut'
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    linkageType: ''
    returnType: void
    signature: pub async fn pass_rsp_handle_spdm_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:215,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:218,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:218,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:220,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:220,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:221,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:221,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:223,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:225,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:225,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:225,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:225,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:229,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:230,1
    - Dst: SpdmContext::handle_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:235,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:235,1
    - Dst: SpdmContext::handle_spdm_digest
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:242,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:242,1
    - Dst: SpdmContext::handle_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:246,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:246,1
    - Dst: SpdmContext::handle_spdm_challenge
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:250,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:250,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:258,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:259,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:260,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:261,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:261,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 214
    functionDepth: 10
    functionLinenumber: 214
    functionLinenumberEnd: 265
    functionName: pass_rsp_handle_spdm_challenge
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - SpdmContext::handle_spdm_digest
    - clone
    - SpdmContext::handle_spdm_algorithm
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - spdmlib::secret::pqc_asym_sign::register
    - SpdmContext::handle_spdm_certificate
    - c_int::lock
    - '&mut [u8]::deref_mut'
    - SpdmContext::handle_spdm_challenge
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    linkageType: ''
    returnType: void
    signature: pub async fn pass_rsp_handle_spdm_challenge()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:268,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:271,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:271,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:273,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:273,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:274,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:274,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:276,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:278,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:278,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:278,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:278,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:282,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:283,1
    - Dst: SpdmContext::handle_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:288,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:288,1
    - Dst: SpdmContext::handle_spdm_digest
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:295,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:295,1
    - Dst: SpdmContext::handle_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:299,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:299,1
    - Dst: SpdmContext::handle_spdm_challenge
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:303,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:303,1
    - Dst: SpdmContext::handle_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:310,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:310,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:315,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:316,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:317,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:318,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:318,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 267
    functionDepth: 10
    functionLinenumber: 267
    functionLinenumberEnd: 322
    functionName: pass_rsp_handle_spdm_measurement
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - c_int::lock
    - SpdmContext::handle_spdm_digest
    - SpdmContext::handle_spdm_algorithm
    - spdmlib::secret::asym_sign::register
    - SpdmContext::handle_spdm_measurement
    - SpdmContext::handle_spdm_challenge
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    - Self::clone
    - rsp_create_info
    - Mutex::new
    - '&mut [u8]::deref_mut'
    - SpdmContext::handle_spdm_certificate
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - spdmlib::secret::pqc_asym_sign::register
    linkageType: ''
    returnType: void
    signature: pub async fn pass_rsp_handle_spdm_measurement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:325,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:328,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:328,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:330,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:330,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:331,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:331,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:333,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:335,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:335,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:335,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:335,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:339,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:340,1
    - Dst: SpdmContext::handle_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:346,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:346,1
    - Dst: SpdmContext::handle_spdm_digest
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:353,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:353,1
    - Dst: SpdmContext::handle_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:357,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:357,1
    - Dst: SpdmContext::handle_spdm_challenge
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:361,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:361,1
    - Dst: SpdmContext::handle_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:368,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:368,1
    - Dst: SpdmContext::handle_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:372,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:372,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:387,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:388,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:389,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:390,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:390,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:389,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 324
    functionDepth: 12
    functionLinenumber: 324
    functionLinenumberEnd: 394
    functionName: pass_rsp_handle_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - c_int::lock
    - SpdmContext::handle_spdm_digest
    - SpdmContext::handle_spdm_algorithm
    - spdmlib::secret::asym_sign::register
    - SpdmContext::handle_spdm_measurement
    - SpdmContext::handle_spdm_challenge
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    - SpdmContext::handle_spdm_key_exchange
    - Self::clone
    - rsp_create_info
    - Mutex::new
    - '&mut [u8]::deref_mut'
    - SpdmContext::handle_spdm_certificate
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - spdmlib::secret::pqc_asym_sign::register
    linkageType: ''
    returnType: void
    signature: pub async fn pass_rsp_handle_spdm_key_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:397,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:400,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:400,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:402,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:402,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:403,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:403,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:405,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:407,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:407,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:407,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:407,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:411,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:412,1
    - Dst: SpdmContext::handle_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:417,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:417,1
    - Dst: SpdmContext::handle_spdm_digest
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:424,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:424,1
    - Dst: SpdmContext::handle_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:428,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:428,1
    - Dst: SpdmContext::handle_spdm_challenge
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:432,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:432,1
    - Dst: SpdmContext::handle_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:439,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:439,1
    - Dst: SpdmContext::handle_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:443,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:443,1
    - Dst: SpdmContext::handle_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:457,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:457,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:467,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:468,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:469,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:470,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:470,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs:469,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 396
    functionDepth: 12
    functionLinenumber: 396
    functionLinenumberEnd: 474
    functionName: pass_rsp_handle_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - c_int::lock
    - SpdmContext::handle_spdm_psk_exchange
    - SpdmContext::handle_spdm_digest
    - SpdmContext::handle_spdm_algorithm
    - spdmlib::secret::asym_sign::register
    - SpdmContext::handle_spdm_measurement
    - SpdmContext::handle_spdm_challenge
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    - SpdmContext::handle_spdm_key_exchange
    - Self::clone
    - rsp_create_info
    - Mutex::new
    - '&mut [u8]::deref_mut'
    - SpdmContext::handle_spdm_certificate
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - spdmlib::secret::pqc_asym_sign::register
    linkageType: ''
    returnType: void
    signature: pub async fn pass_rsp_handle_spdm_psk_exchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:12,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:13,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:15,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:17,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:17,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:17,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:17,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:23,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:25,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:25,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:26,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:26,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:28,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:35,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:38,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:38,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:39,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:39,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:39,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:40,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:43,1
    - Dst: Self::init_connection
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:51,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:51,1
    - Dst: Self::send_receive_spdm_digest
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:59,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:59,1
    - Dst: Self::send_receive_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:63,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:63,1
    - Dst: Self::start_session
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:71,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:85,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:85,1
    - Dst: export_keys
      Src: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 11
    functionDepth: 11
    functionLinenumber: 11
    functionLinenumberEnd: 106
    functionName: fuzz_total_requesters
    functionSourceFile: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - export_keys
    - fake_device_io::FakeSpdmDeviceIo::new
    - Self::send_receive_spdm_certificate
    - spdmlib::secret::asym_sign::register
    - req_create_info
    - responder::ResponderContext::new
    - Self::init_connection
    - rsp_create_info
    - requester::RequesterContext::new
    - Self::send_receive_spdm_digest
    - Mutex::new
    - Arc::new
    - Self::start_session
    - FakeSpdmDeviceIoReceve::new
    - is_err
    - spdmlib::secret::pqc_asym_sign::register
    - get_session_via_id
    linkageType: ''
    returnType: void
    signature: pub async fn fuzz_total_requesters()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:17,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:18,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:20,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:21,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:21,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:25,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:27,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:27,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:28,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:28,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:30,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:37,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:38,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:38,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:39,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:39,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:39,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:40,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:43,1
    - Dst: iter
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:50,1
    - Dst: Self::send_receive_spdm_version
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:53,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:53,1
    - Dst: Self::send_receive_spdm_capability
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:59,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:59,1
    - Dst: Self::send_receive_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:65,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:65,1
    - Dst: Self::send_receive_spdm_digest
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:71,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:71,1
    - Dst: Self::send_receive_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:77,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:77,1
    - Dst: Self::send_receive_spdm_challenge
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:87,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:91,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:91,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:87,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:103,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:107,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:107,1
    - Dst: Self::send_receive_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:128,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:128,1
    - Dst: Self::send_receive_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:141,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:141,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 132
    argCount: 1
    argNames:
    - spdm
    argTypes:
    - Vec<i32>
    constantsTouched: []
    func_position:
      end: 156
      start: 16
    functionDepth: 9
    functionLinenumber: 16
    functionLinenumberEnd: 156
    functionName: run_spdm
    functionSourceFile: /src/spdm-rs/fuzz-target/random_requester/src/main.rs
    functionUses: 1
    functionsReached:
    - SharedBuffer::new
    - clone
    - Self::send_receive_spdm_challenge
    - fake_device_io::FakeSpdmDeviceIo::new
    - Self::send_receive_spdm_certificate
    - SpdmChallengeContextStruct::default
    - spdmlib::secret::asym_sign::register
    - iter
    - req_create_info
    - Self::send_receive_spdm_algorithm
    - responder::ResponderContext::new
    - Self::send_receive_spdm_capability
    - Some
    - rsp_create_info
    - requester::RequesterContext::new
    - Self::send_receive_spdm_digest
    - Mutex::new
    - SpdmMeasurementRecordStructure::default
    - Arc::new
    - Self::send_receive_spdm_psk_exchange
    - Self::send_receive_spdm_version
    - FakeSpdmDeviceIoReceve::new
    - is_err
    - Self::send_receive_spdm_measurement
    - spdmlib::secret::pqc_asym_sign::register
    - Self::send_receive_spdm_key_exchange
    linkageType: ''
    returnType: void
    signature: 'async fn run_spdm(spdm: Vec<i32>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<i32>::len
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:165,1
    - Dst: run_spdm
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:166,1
    - Dst: Self::iter
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:170,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:170,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:172,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:173,1
    - Dst: BytesMutStrubbed::clone
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:179,1
    - Dst: BytesMutStrubbed::push
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:180,1
    - Dst: permutation
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:185,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:185,1
    - Dst: '&mut [u8]::clone'
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:185,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:188,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/random_requester/src/main.rs:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 4
    argNames:
    - from
    - count
    - bool_array
    - last_vec
    argTypes:
    - Arc<&[i32]>
    - usize
    - Arc<Mutex<&mut [bool]>>
    - Vec<i32>
    constantsTouched: []
    func_position:
      end: 193
      start: 159
    functionDepth: 10
    functionLinenumber: 159
    functionLinenumberEnd: 193
    functionName: permutation
    functionSourceFile: /src/spdm-rs/fuzz-target/random_requester/src/main.rs
    functionUses: 1
    functionsReached:
    - Self::clone
    - Self::iter
    - BytesMutStrubbed::push
    - '&mut [u8]::clone'
    - permutation
    - Self::IntoIter::enumerate
    - BytesMutStrubbed::clone
    - Vec<i32>::len
    - c_int::lock
    - '&mut [u8]::deref_mut'
    - run_spdm
    linkageType: ''
    returnType: void
    signature: 'async fn permutation(from: Arc<&[i32]>,count: usize,bool_array: Arc<Mutex<&mut
      [bool]>>,last_vec: Vec<i32>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:16,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:17,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:25,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:28,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:28,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:28,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:32,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:46,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:46,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:55,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:61,1
    - Dst: SpdmContext::handle_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:62,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:70,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:71,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:71,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:73,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:74,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:74,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:74,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:74,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:78,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:92,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:92,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:101,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:102,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:102,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:103,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:104,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:107,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:111,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:117,1
    - Dst: SpdmContext::handle_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:118,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 148
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 120
      start: 15
    functionDepth: 10
    functionLinenumber: 15
    functionLinenumberEnd: 120
    functionName: fuzz_handle_spdm_measurement
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - SpdmKemAlgo::empty
    - codec::Writer::init
    - spdmlib::secret::asym_sign::register
    - SpdmContext::handle_spdm_measurement
    - responder::ResponderContext::new
    - Some
    - rsp_create_info
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - spdmlib::secret::pqc_asym_sign::register
    - setup
    - get_rsp_cert_chain_buff
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_measurement(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:14,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:15,1
    - Dst: spdmlib::secret::measurement::register
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:16,1
    - Dst: spdmlib::secret::psk::register
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:17,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:26,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:29,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:29,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:29,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:33,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:51,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:52,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:58,1
    - Dst: SpdmContext::handle_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:59,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:68,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:69,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:69,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:71,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:72,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:72,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:72,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:72,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:76,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:94,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:95,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:101,1
    - Dst: SpdmContext::handle_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:102,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:111,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:112,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:112,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:114,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:115,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:115,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:115,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:115,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:119,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:137,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:138,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:144,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:145,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:145,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:149,1
    - Dst: SpdmContext::handle_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:150,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:158,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:159,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:159,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:161,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:162,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:162,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:162,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:162,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:166,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:185,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:186,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:192,1
    - Dst: SpdmContext::handle_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 334
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 195
      start: 13
    functionDepth: 6
    functionLinenumber: 13
    functionLinenumberEnd: 195
    functionName: fuzz_handle_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - spdmlib::secret::measurement::register
    - Arc::new
    - spdmlib::secret::psk::register
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - SpdmContext::handle_spdm_psk_exchange
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - reset_runtime_info
    - spdmlib::secret::pqc_asym_sign::register
    - codec::Writer::init
    - SpdmSession::new
    - setup
    - responder::ResponderContext::new
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_psk_exchange(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:13,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:14,1
    - Dst: spdmlib::crypto::cert_operation::register
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:15,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:16,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:27,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:27,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:31,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:47,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:52,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:52,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:55,1
    - Dst: SpdmContext::handle_deliver_encapsulated_reponse
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:56,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:64,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:65,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:65,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:67,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:68,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:68,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:68,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:68,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:72,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:88,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:93,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:93,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:96,1
    - Dst: SpdmContext::handle_deliver_encapsulated_reponse
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:97,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:105,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:106,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:106,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:108,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:109,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:109,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:109,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:109,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:113,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:127,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:132,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:132,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:135,1
    - Dst: SpdmContext::handle_deliver_encapsulated_reponse
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 184
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 138
      start: 12
    functionDepth: 6
    functionLinenumber: 12
    functionLinenumberEnd: 138
    functionName: fuzz_handle_deliver_encapsulated_reponse
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - Some
    - rsp_create_info
    - spdmlib::crypto::cert_operation::register
    - SharedBuffer::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - SpdmCertChainBuffer::default
    - spdmlib::secret::pqc_asym_sign::register
    - codec::Writer::init
    - SpdmContext::handle_deliver_encapsulated_reponse
    - spdmlib::crypto::aead::register
    - responder::ResponderContext::new
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_deliver_encapsulated_reponse(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:15,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:16,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:16,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:18,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:19,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:22,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:22,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:22,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:26,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:34,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:35,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:35,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:36,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:37,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:40,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:46,1
    - Dst: SpdmContext::handle_spdm_key_update
      Src: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 48
      start: 14
    functionDepth: 11
    functionLinenumber: 14
    functionLinenumberEnd: 48
    functionName: fuzz_handle_spdm_key_update
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - SpdmContext::handle_spdm_key_update
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - SpdmKemAlgo::empty
    - spdmlib::secret::pqc_asym_sign::register
    - codec::Writer::init
    - set_crypto_param
    - SpdmSession::new
    - setup
    - responder::ResponderContext::new
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_key_update(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:16,1
    - Dst: spdmlib::secret::psk::register
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:17,1
    - Dst: spdmlib::crypto::hmac::register
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:18,1
    - Dst: spdmlib::crypto::hkdf::register
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:19,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:28,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:28,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:30,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:31,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:31,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:31,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:34,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:43,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:44,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:44,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:45,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:46,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:49,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:53,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:54,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:54,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:59,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:63,1
    - Dst: SpdmContext::handle_spdm_psk_finish
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:65,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:74,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:75,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:75,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:77,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:78,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:78,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:78,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:78,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:81,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:90,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:91,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:91,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:92,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:93,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:96,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:100,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:101,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:101,1
    - Dst: append_message
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:103,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:112,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:116,1
    - Dst: SpdmContext::handle_spdm_psk_finish
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:117,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:125,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:126,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:126,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:128,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:129,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:129,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:129,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:129,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:132,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:141,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:142,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:142,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:143,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:144,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:147,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:151,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:152,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:152,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:157,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:160,1
    - Dst: SpdmContext::handle_spdm_psk_finish
      Src: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 265
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 165
      start: 14
    functionDepth: 6
    functionLinenumber: 14
    functionLinenumberEnd: 165
    functionName: fuzz_handle_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - spdmlib::secret::psk::register
    - unwrap
    - SharedBuffer::new
    - set_use_psk
    - clone
    - spdmlib::crypto::hash::hash_ctx_init
    - SpdmKemAlgo::empty
    - codec::Writer::init
    - spdmlib::secret::asym_sign::register
    - responder::ResponderContext::new
    - Some
    - rsp_create_info
    - append_message
    - spdmlib::crypto::hmac::register
    - Mutex::new
    - SpdmPskHintStruct::default
    - set_crypto_param
    - SpdmSession::new
    - spdmlib::crypto::hkdf::register
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - spdmlib::secret::pqc_asym_sign::register
    - SpdmContext::handle_spdm_psk_finish
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_psk_finish(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:16,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:18,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:19,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:19,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:22,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:22,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:22,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:26,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:34,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:35,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:35,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:36,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:37,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:40,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:46,1
    - Dst: SpdmContext::handle_spdm_heartbeat
      Src: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 48
      start: 14
    functionDepth: 6
    functionLinenumber: 14
    functionLinenumberEnd: 48
    functionName: fuzz_handle_spdm_heartbeat
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - SpdmContext::handle_spdm_heartbeat
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - SpdmKemAlgo::empty
    - spdmlib::secret::pqc_asym_sign::register
    - codec::Writer::init
    - set_crypto_param
    - SpdmSession::new
    - setup
    - responder::ResponderContext::new
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_heartbeat(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:12,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:13,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:13,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:16,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:18,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:19,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:19,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:19,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:19,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:23,1
    - Dst: Self::clone
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:24,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:31,1
    - Dst: SpdmContext::handle_spdm_version
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:32,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:35,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:36,1
    - Dst: '&mut [u8]::receive'
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:37,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:38,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:38,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 42
      start: 11
    functionDepth: 10
    functionLinenumber: 11
    functionLinenumberEnd: 42
    functionName: fuzz_handle_spdm_version
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::clone
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - codec::Writer::init
    - spdmlib::secret::pqc_asym_sign::register
    - SpdmContext::handle_spdm_version
    - c_int::lock
    - '&mut [u8]::deref_mut'
    - responder::ResponderContext::new
    - '&mut [u8]::receive'
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_version(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:14,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:15,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:23,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:26,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:30,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:38,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:52,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:58,1
    - Dst: SpdmContext::handle_spdm_digest
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:59,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:67,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:68,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:68,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:70,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:71,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:71,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:71,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:71,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:75,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:83,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:97,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:98,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:98,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:99,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:100,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:103,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:107,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:113,1
    - Dst: SpdmContext::handle_spdm_digest
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:114,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 124
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 116
      start: 13
    functionDepth: 6
    functionLinenumber: 13
    functionLinenumberEnd: 116
    functionName: fuzz_handle_spdm_digest
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - SpdmKemAlgo::empty
    - codec::Writer::init
    - SpdmContext::handle_spdm_digest
    - spdmlib::secret::asym_sign::register
    - responder::ResponderContext::new
    - Some
    - rsp_create_info
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - spdmlib::secret::pqc_asym_sign::register
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_digest(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:13,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:14,1
    - Dst: spdmlib::secret::measurement::register
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:15,1
    - Dst: spdmlib::crypto::rand::register
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:16,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:27,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:27,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:31,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:38,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:38,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:50,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:56,1
    - Dst: SpdmContext::handle_spdm_challenge
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:57,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:65,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:66,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:66,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:68,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:69,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:69,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:69,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:69,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:73,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:80,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:80,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:95,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:101,1
    - Dst: SpdmContext::handle_spdm_challenge
      Src: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 113
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 104
      start: 12
    functionDepth: 10
    functionLinenumber: 12
    functionLinenumberEnd: 104
    functionName: fuzz_handle_spdm_challenge
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - spdmlib::secret::measurement::register
    - Arc::new
    - get_rsp_cert_chain_buff
    - spdmlib::crypto::rand::register
    - FakeSpdmDeviceIoReceve::new
    - Some
    - set_connection_state
    - rsp_create_info
    - SharedBuffer::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - codec::Writer::init
    - spdmlib::secret::pqc_asym_sign::register
    - SpdmContext::handle_spdm_challenge
    - responder::ResponderContext::new
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_challenge(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:18,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:19,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:22,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:22,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:25,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:25,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:29,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:37,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:51,1
    - Dst: clone_from_slice
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:69,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:71,1
    - Dst: register_vendor_defined_struct
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:74,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:80,1
    - Dst: SpdmContext::handle_spdm_vendor_defined_request
      Src: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 67
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 82
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 82
    functionName: fuzz_handle_spdm_vendor_defined_request
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - Some
    - set_connection_state
    - rsp_create_info
    - SharedBuffer::new
    - clone_from_slice
    - clone
    - Ok
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - codec::Writer::init
    - spdmlib::secret::pqc_asym_sign::register
    - SpdmContext::handle_spdm_vendor_defined_request
    - responder::ResponderContext::new
    - register_vendor_defined_struct
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_vendor_defined_request(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:16,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:18,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:19,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:19,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:22,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:22,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:22,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:26,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:34,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:35,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:35,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:36,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:37,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:40,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:46,1
    - Dst: SpdmContext::handle_spdm_end_session
      Src: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 48
      start: 14
    functionDepth: 6
    functionLinenumber: 14
    functionLinenumberEnd: 48
    functionName: fuzz_handle_spdm_end_session
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - unwrap
    - rsp_create_info
    - SharedBuffer::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - SpdmKemAlgo::empty
    - spdmlib::secret::pqc_asym_sign::register
    - codec::Writer::init
    - SpdmContext::handle_spdm_end_session
    - set_crypto_param
    - SpdmSession::new
    - setup
    - responder::ResponderContext::new
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_end_session(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:16,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:17,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:25,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:28,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:28,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:28,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:32,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:42,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:42,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:51,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:57,1
    - Dst: SpdmContext::handle_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:58,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:66,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:67,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:67,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:69,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:70,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:70,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:70,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:70,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:74,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:84,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:84,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:93,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:94,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:94,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:95,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:96,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:99,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:103,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:109,1
    - Dst: SpdmContext::handle_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:110,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 118
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 112
      start: 15
    functionDepth: 10
    functionLinenumber: 15
    functionLinenumberEnd: 112
    functionName: fuzz_handle_spdm_certificate
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - SpdmKemAlgo::empty
    - codec::Writer::init
    - spdmlib::secret::asym_sign::register
    - responder::ResponderContext::new
    - Some
    - rsp_create_info
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - SpdmContext::handle_spdm_certificate
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - spdmlib::secret::pqc_asym_sign::register
    - setup
    - get_rsp_cert_chain_buff
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_certificate(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:13,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:14,1
    - Dst: spdmlib::crypto::cert_operation::register
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:15,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:23,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:26,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:30,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:46,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:51,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:51,1
    - Dst: SpdmContext::handle_encap_response_certificate
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:53,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:61,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:62,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:62,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:64,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:65,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:65,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:65,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:65,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:69,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:85,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:90,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:90,1
    - Dst: SpdmCertChainData::default
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:93,1
    - Dst: len
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:98,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:99,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:104,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:105,1
    - Dst: SpdmContext::handle_encap_response_certificate
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 155
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 111
      start: 12
    functionDepth: 6
    functionLinenumber: 12
    functionLinenumberEnd: 111
    functionName: fuzz_handle_encap_response_certificate
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - SpdmCertChainData::default
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - Some
    - rsp_create_info
    - spdmlib::crypto::cert_operation::register
    - SharedBuffer::new
    - clone
    - copy_from_slice
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - SpdmCertChainBuffer::default
    - spdmlib::secret::pqc_asym_sign::register
    - SpdmContext::handle_encap_response_certificate
    - gen_array_clone
    - responder::ResponderContext::new
    - len
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_encap_response_certificate(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:13,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:14,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:16,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:17,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:17,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:19,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:20,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:20,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:20,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:20,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:24,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:32,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:52,1
    - Dst: SpdmContext::handle_encap_response_digest
      Src: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 58
      start: 12
    functionDepth: 6
    functionLinenumber: 12
    functionLinenumberEnd: 58
    functionName: fuzz_handle_encap_response_digest
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - Some
    - set_connection_state
    - rsp_create_info
    - SharedBuffer::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - spdmlib::secret::pqc_asym_sign::register
    - SpdmContext::handle_encap_response_digest
    - responder::ResponderContext::new
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_encap_response_digest(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:16,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:17,1
    - Dst: spdmlib::crypto::hmac::register
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:18,1
    - Dst: spdmlib::crypto::hkdf::register
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:19,1
    - Dst: spdmlib::crypto::asym_verify::register
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:20,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:20,1
    - Dst: spdmlib::crypto::pqc_asym_verify::register
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:21,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:21,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:30,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:30,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:33,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:33,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:33,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:33,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:36,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:51,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:51,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:61,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:62,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:62,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:63,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:66,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:73,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:74,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:75,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:75,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:79,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:82,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:83,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:86,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:89,1
    - Dst: SpdmContext::handle_spdm_finish
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:90,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:98,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:99,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:99,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:101,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:102,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:102,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:102,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:102,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:105,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:120,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:120,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:130,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:131,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:131,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:132,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:135,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:142,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:143,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:144,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:144,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:148,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:151,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:152,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:155,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:158,1
    - Dst: SpdmContext::handle_spdm_finish
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:159,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:167,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:168,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:168,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:170,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:171,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:171,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:171,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:171,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:174,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:189,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:189,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:199,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:200,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:200,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:201,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:204,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:211,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:212,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:213,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:213,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:217,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:219,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:220,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:223,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:226,1
    - Dst: SpdmContext::handle_spdm_finish
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:227,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:235,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:236,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:236,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:238,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:239,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:239,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:239,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:239,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:242,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:257,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:257,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:267,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:268,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:268,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:269,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:272,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:279,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:280,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:281,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:281,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:285,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:288,1
    - Dst: append_message
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:289,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:294,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:297,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:300,1
    - Dst: SpdmContext::handle_spdm_finish
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:301,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:309,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:310,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:310,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:312,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:313,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:313,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:313,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:313,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:316,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:330,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:330,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:332,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:332,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:342,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:343,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:343,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:344,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:347,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:354,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:355,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:356,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:356,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:360,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:363,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:364,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:367,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:370,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:373,1
    - Dst: SpdmContext::handle_spdm_finish
      Src: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 597
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 376
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 376
    functionName: fuzz_handle_spdm_finish
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - spdmlib::crypto::hash::hash_ctx_init
    - SpdmKemAlgo::empty
    - codec::Writer::init
    - SpdmSharedSecretFinalKeyStruct::default
    - spdmlib::secret::asym_sign::register
    - get_key_size
    - responder::ResponderContext::new
    - set_last_session_id
    - Some
    - rsp_create_info
    - append_message
    - spdmlib::crypto::hmac::register
    - SpdmContext::handle_spdm_finish
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - spdmlib::crypto::hkdf::register
    - Arc::new
    - spdmlib::crypto::asym_verify::register
    - FakeSpdmDeviceIoReceve::new
    - set_mut_auth_requested
    - spdmlib::secret::pqc_asym_sign::register
    - set_shared_secret
    - setup
    - get_rsp_cert_chain_buff
    - spdmlib::crypto::pqc_asym_verify::register
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_finish(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:13,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:14,1
    - Dst: spdmlib::crypto::cert_operation::register
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:15,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:23,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:26,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:30,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:46,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:51,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:51,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:54,1
    - Dst: SpdmContext::handle_get_encapsulated_request
      Src: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 71
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 57
      start: 12
    functionDepth: 8
    functionLinenumber: 12
    functionLinenumberEnd: 57
    functionName: fuzz_handle_get_encapsulated_request
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - Some
    - rsp_create_info
    - spdmlib::crypto::cert_operation::register
    - SharedBuffer::new
    - SpdmContext::handle_get_encapsulated_request
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - SpdmCertChainBuffer::default
    - spdmlib::secret::pqc_asym_sign::register
    - codec::Writer::init
    - responder::ResponderContext::new
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_get_encapsulated_request(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:12,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:13,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:13,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:16,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:18,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:19,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:19,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:19,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:19,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:23,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:30,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:36,1
    - Dst: SpdmContext::handle_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 38
      start: 11
    functionDepth: 10
    functionLinenumber: 11
    functionLinenumberEnd: 38
    functionName: fuzz_handle_spdm_algorithm
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - rsp_create_info
    - SharedBuffer::new
    - clone
    - SpdmContext::handle_spdm_algorithm
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - codec::Writer::init
    - spdmlib::secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_algorithm(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:13,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:14,1
    - Dst: spdmlib::secret::measurement::register
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:15,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:23,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:26,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:30,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:45,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:45,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:55,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:56,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:62,1
    - Dst: SpdmContext::handle_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:63,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:71,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:72,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:72,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:74,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:75,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:75,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:75,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:75,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:79,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:98,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:98,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:108,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:109,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:115,1
    - Dst: SpdmContext::handle_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:116,1
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:124,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:125,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:125,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:127,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:128,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:128,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:128,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:128,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:132,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:150,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:150,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:160,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:161,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:167,1
    - Dst: SpdmContext::handle_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 252
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 170
      start: 12
    functionDepth: 14
    functionLinenumber: 12
    functionLinenumberEnd: 170
    functionName: fuzz_handle_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - spdmlib::secret::measurement::register
    - Arc::new
    - get_rsp_cert_chain_buff
    - FakeSpdmDeviceIoReceve::new
    - Some
    - set_connection_state
    - rsp_create_info
    - SharedBuffer::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - reset_runtime_info
    - spdmlib::secret::pqc_asym_sign::register
    - codec::Writer::init
    - responder::ResponderContext::new
    - SpdmContext::handle_spdm_key_exchange
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_key_exchange(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsp_create_info
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:12,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:13,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:13,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:16,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:18,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:19,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:19,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:19,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:19,1
    - Dst: responder::ResponderContext::new
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:23,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:30,1
    - Dst: codec::Writer::init
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:36,1
    - Dst: SpdmContext::handle_spdm_capability
      Src: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 38
      start: 11
    functionDepth: 10
    functionLinenumber: 11
    functionLinenumberEnd: 38
    functionName: fuzz_handle_spdm_capability
    functionSourceFile: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_connection_state
    - rsp_create_info
    - SharedBuffer::new
    - SpdmContext::handle_spdm_capability
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - codec::Writer::init
    - spdmlib::secret::pqc_asym_sign::register
    - responder::ResponderContext::new
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_handle_spdm_capability(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - data
    - fuzzdata
    - current
    argTypes:
    - Arc<SharedBuffer>
    - '[[u8; 528]; 4]'
    - usize
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: FuzzTmpSpdmDeviceIoReceve::new
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(data: Arc<SharedBuffer>, fuzzdata: [[u8; 528]; 4], current:
      usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:74,1
    - Dst: Arc<Mutex<&mut [u8]>>::clone
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:74,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:75,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:76,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - read_buffer
    - _timeout
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    - usize
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: FuzzTmpSpdmDeviceIoReceve::receive
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&mut [u8]::deref_mut'
    - Arc<Mutex<&mut [u8]>>::clone
    - c_int::lock
    - get_buffer
    linkageType: ''
    returnType: Result
    signature: 'async fn receive(&mut self,read_buffer: Arc<Mutex<&mut [u8]>>,_timeout:
      usize,) -> Result<usize, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_buffer_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:83,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:83,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - _buffer
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: FuzzTmpSpdmDeviceIoReceve::send
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Ok
    - set_buffer_ref
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send(&mut self, _buffer: Arc<&[u8]>) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: FuzzTmpSpdmDeviceIoReceve::flush_all
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: async fn flush_all(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - fuzzdata
    argTypes:
    - Arc<SharedBuffer>
    - Arc<[u8]>
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: FuzzSpdmDeviceIoReceve::new
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(data: Arc<SharedBuffer>, fuzzdata: Arc<[u8]>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:115,1
    - Dst: Arc<Mutex<&mut [u8]>>::clone
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:115,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:116,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:117,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - read_buffer
    - _timeout
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    - usize
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: FuzzSpdmDeviceIoReceve::receive
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&mut [u8]::deref_mut'
    - Arc<Mutex<&mut [u8]>>::clone
    - c_int::lock
    - get_buffer
    linkageType: ''
    returnType: Result
    signature: 'async fn receive(&mut self,read_buffer: Arc<Mutex<&mut [u8]>>,_timeout:
      usize,) -> Result<usize, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_buffer
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:123,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:123,1
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: FuzzSpdmDeviceIoReceve::send
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    - clone
    - set_buffer
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send(&mut self, buffer: Arc<&[u8]>) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: FuzzSpdmDeviceIoReceve::flush_all
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: async fn flush_all(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_buffer_ref
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:142,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: FakeSpdmDeviceIo::set_rx
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - set_buffer_ref
    linkageType: ''
    returnType: void
    signature: 'pub fn set_rx(&mut self, buffer: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:172,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:173,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:174,1
    - Dst: Self::send
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:175,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:175,1
    - Dst: Self::receive
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:177,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 10
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: test_single_run
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
    functionUses: 0
    functionsReached:
    - Self::send
    - FakeSpdmDeviceIoReceve::new
    - Self::receive
    - SharedBuffer::new
    - Result::unwrap
    - SpdmResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_single_run()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 198
    functionName: certificata_data
    functionSourceFile: /src/spdm-rs/fuzz-target/fuzzlib/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[[u8; 528]; 4]'
    signature: pub fn certificata_data() -> [[u8; 528]; 4]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:12,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:14,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:15,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:15,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:17,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:18,1
    - Dst: spdmlib::secret::measurement::register
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:19,1
    - Dst: spdmlib::crypto::rand::register
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:20,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:20,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:22,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:24,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:26,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:32,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:43,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:43,1
    - Dst: Self::send_receive_spdm_challenge
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:45,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:49,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:49,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 74
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 53
      start: 11
    functionDepth: 8
    functionLinenumber: 11
    functionLinenumberEnd: 53
    functionName: fuzz_send_receive_spdm_challenge
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - spdmlib::secret::measurement::register
    - spdmlib::crypto::rand::register
    - Some
    - is_err
    - SharedBuffer::new
    - requester::RequesterContext::new
    - clone
    - SpdmChallengeContextStruct::default
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - Self::set_rx
    - spdmlib::secret::pqc_asym_sign::register
    - reset_runtime_info
    - Self::send_receive_spdm_challenge
    - req_create_info
    - fake_device_io::FakeSpdmDeviceIo::new
    - get_rsp_cert_chain_buff
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_challenge(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:16,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:26,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:26,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:30,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:48,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:48,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:58,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:59,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:59,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:60,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:61,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:64,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:68,1
    - Dst: Writer::init
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:73,1
    - Dst: Self::encap_handle_get_certificate
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:75,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:83,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:84,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:84,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:85,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:86,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:86,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:86,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:86,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:90,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:107,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:107,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:117,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:118,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:118,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:119,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:120,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:123,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:127,1
    - Dst: Writer::init
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:132,1
    - Dst: Self::encap_handle_get_certificate
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:134,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:142,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:143,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:143,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:144,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:145,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:145,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:145,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:145,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:149,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:169,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:170,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:170,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:171,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:172,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:175,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:179,1
    - Dst: Writer::init
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:184,1
    - Dst: Self::encap_handle_get_certificate
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 269
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 188
      start: 14
    functionDepth: 9
    functionLinenumber: 14
    functionLinenumberEnd: 188
    functionName: fuzz_encap_handle_get_certificate
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - Self::encap_handle_get_certificate
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - spdmlib::secret::asym_sign::register
    - req_create_info
    - Some
    - requester::RequesterContext::new
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_mut_auth_requested
    - spdmlib::secret::pqc_asym_sign::register
    - setup
    - get_rsp_cert_chain_buff
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_encap_handle_get_certificate(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:16,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:17,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:19,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:22,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:22,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:23,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:25,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:27,1
    - Dst: Self::send_spdm_vendor_defined_request
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:47,1
    - Dst: is_ok
      Src: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 51
      start: 15
    functionDepth: 6
    functionLinenumber: 15
    functionLinenumberEnd: 51
    functionName: fuzz_send_spdm_vendor_defined_request
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - SharedBuffer::new
    - requester::RequesterContext::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - Self::set_rx
    - spdmlib::secret::pqc_asym_sign::register
    - Self::send_spdm_vendor_defined_request
    - req_create_info
    - fake_device_io::FakeSpdmDeviceIo::new
    - is_ok
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_spdm_vendor_defined_request(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:11,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:13,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:16,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:18,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:18,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:19,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:19,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:20,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:21,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:21,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:23,1
    - Dst: Self::send_receive_spdm_capability
      Src: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 32
      start: 10
    functionDepth: 6
    functionLinenumber: 10
    functionLinenumberEnd: 32
    functionName: fuzz_send_receive_spdm_capability
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - SharedBuffer::new
    - requester::RequesterContext::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - Self::set_rx
    - spdmlib::secret::pqc_asym_sign::register
    - req_create_info
    - fake_device_io::FakeSpdmDeviceIo::new
    - Self::send_receive_spdm_capability
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_capability(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:17,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:18,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:19,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:21,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:24,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:25,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:27,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:29,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:37,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:38,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:38,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:39,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:40,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:43,1
    - Dst: Self::send_receive_spdm_heartbeat
      Src: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 66
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 49
      start: 16
    functionDepth: 6
    functionLinenumber: 16
    functionLinenumberEnd: 49
    functionName: fuzz_send_receive_spdm_heartbeat
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::send_receive_spdm_heartbeat
    - unwrap
    - SharedBuffer::new
    - requester::RequesterContext::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - Self::set_rx
    - spdmlib::secret::pqc_asym_sign::register
    - fake_device_io::FakeSpdmDeviceIo::new
    - SpdmKemAlgo::empty
    - set_crypto_param
    - SpdmSession::new
    - req_create_info
    - spdmlib::crypto::aead::register
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_heartbeat(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:12,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:14,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:16,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:16,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:18,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:19,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:21,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:23,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:25,1
    - Dst: Self::send_receive_spdm_digest
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:35,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 36
      start: 11
    functionDepth: 6
    functionLinenumber: 11
    functionLinenumberEnd: 36
    functionName: fuzz_send_receive_spdm_digest
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - is_err
    - SharedBuffer::new
    - requester::RequesterContext::new
    - Self::send_receive_spdm_digest
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - Self::set_rx
    - spdmlib::secret::pqc_asym_sign::register
    - req_create_info
    - fake_device_io::FakeSpdmDeviceIo::new
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_digest(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:11,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:13,1
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:16,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:18,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:18,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:19,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:19,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:20,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:21,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:21,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:23,1
    - Dst: Self::send_receive_spdm_algorithm
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:31,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 32
      start: 10
    functionDepth: 6
    functionLinenumber: 10
    functionLinenumberEnd: 32
    functionName: fuzz_send_receive_spdm_algorithm
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - is_err
    - SharedBuffer::new
    - requester::RequesterContext::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - Self::set_rx
    - spdmlib::secret::pqc_asym_sign::register
    - req_create_info
    - fake_device_io::FakeSpdmDeviceIo::new
    - Self::send_receive_spdm_algorithm
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_algorithm(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:13,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:14,1
    - Dst: spdmlib::secret::measurement::register
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:15,1
    - Dst: spdmlib::crypto::asym_verify::register
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:16,1
    - Dst: spdmlib::crypto::pqc_asym_verify::register
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:17,1
    - Dst: spdmlib::crypto::hkdf::register
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:18,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:26,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:29,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:29,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:31,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:33,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:33,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:35,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:49,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:49,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:50,1
    - Dst: Self::send_receive_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:52,1
    - Dst: spdmlib::crypto::hmac::register
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:60,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:60,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:68,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:70,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:71,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:71,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:73,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:73,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:74,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:75,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:75,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:77,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:91,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:91,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:92,1
    - Dst: Self::send_receive_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:94,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:107,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:109,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:110,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:110,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:112,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:112,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:113,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:114,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:114,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:116,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:128,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:128,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:129,1
    - Dst: Self::send_receive_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:131,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:145,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:147,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:148,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:148,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:150,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:150,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:151,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:152,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:152,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:154,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:168,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:168,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:173,1
    - Dst: Self::send_receive_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:175,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:188,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:190,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:191,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:191,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:193,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:193,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:194,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:195,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:195,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:197,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:211,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:211,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:216,1
    - Dst: Self::send_receive_spdm_key_exchange
      Src: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 345
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 225
      start: 12
    functionDepth: 8
    functionLinenumber: 12
    functionLinenumberEnd: 225
    functionName: fuzz_send_receive_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs
    functionUses: 0
    functionsReached:
    - SharedBuffer::new
    - clone
    - fake_device_io::FakeSpdmDeviceIo::new
    - get_rsp_cert_chain_buff
    - spdmlib::secret::asym_sign::register
    - req_create_info
    - spdmlib::secret::measurement::register
    - Some
    - requester::RequesterContext::new
    - spdmlib::crypto::hmac::register
    - Self::set_rx
    - Mutex::new
    - spdmlib::crypto::hkdf::register
    - Arc::new
    - spdmlib::crypto::asym_verify::register
    - reset_runtime_info
    - spdmlib::secret::pqc_asym_sign::register
    - Self::send_receive_spdm_key_exchange
    - spdmlib::crypto::pqc_asym_verify::register
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_key_exchange(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:14,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:15,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:16,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:23,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:25,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:27,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:29,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:29,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:31,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:49,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:50,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:50,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:51,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:52,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:55,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:59,1
    - Dst: Self::session_based_mutual_authenticate
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:62,1
    - Dst: is_ok
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:62,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:73,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:74,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:75,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:75,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:77,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:77,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:78,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:79,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:79,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:81,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:99,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:100,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:100,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:101,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:102,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:105,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:109,1
    - Dst: Self::session_based_mutual_authenticate
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:113,1
    - Dst: is_ok
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:113,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:124,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:125,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:126,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:126,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:128,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:128,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:129,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:130,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:130,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:132,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:150,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:151,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:151,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:152,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:153,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:156,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:160,1
    - Dst: Self::session_based_mutual_authenticate
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:164,1
    - Dst: is_ok
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:164,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:175,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:176,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:177,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:177,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:179,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:179,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:180,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:181,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:181,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:183,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:201,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:202,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:202,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:203,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:204,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:207,1
    - Dst: Self::session_based_mutual_authenticate
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:212,1
    - Dst: is_ok
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 334
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 217
      start: 13
    functionDepth: 6
    functionLinenumber: 13
    functionLinenumberEnd: 217
    functionName: fuzz_session_based_mutual_authenticate
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - SpdmKemAlgo::empty
    - fake_device_io::FakeSpdmDeviceIo::new
    - spdmlib::crypto::aead::register
    - spdmlib::secret::asym_sign::register
    - req_create_info
    - is_ok
    - requester::RequesterContext::new
    - Self::set_rx
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - Self::session_based_mutual_authenticate
    - set_mut_auth_requested
    - spdmlib::secret::pqc_asym_sign::register
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_session_based_mutual_authenticate(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:18,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:19,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:20,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:20,1
    - Dst: spdmlib::crypto::hmac::register
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:21,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:21,1
    - Dst: spdmlib::crypto::hkdf::register
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:22,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:22,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:30,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:33,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:33,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:35,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:35,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:36,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:37,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:37,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:39,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:61,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:63,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:64,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:64,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:65,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:68,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:75,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:76,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:77,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:77,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:81,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:84,1
    - Dst: Self::send_receive_spdm_finish
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:86,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:94,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:96,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:97,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:97,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:99,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:99,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:100,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:101,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:101,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:103,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:125,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:127,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:128,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:128,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:129,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:132,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:139,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:140,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:141,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:141,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:145,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:148,1
    - Dst: Self::send_receive_spdm_finish
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:150,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:158,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:160,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:161,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:161,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:163,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:163,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:164,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:165,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:165,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:167,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:188,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:188,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:190,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:190,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:200,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:202,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:203,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:203,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:204,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:207,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:214,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:215,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:216,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:216,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:220,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:223,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:224,1
    - Dst: Self::send_receive_spdm_finish
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:228,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 430
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 232
      start: 17
    functionDepth: 9
    functionLinenumber: 17
    functionLinenumberEnd: 232
    functionName: fuzz_send_receive_spdm_finish
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - spdmlib::crypto::hash::hash_ctx_init
    - SpdmKemAlgo::empty
    - fake_device_io::FakeSpdmDeviceIo::new
    - spdmlib::crypto::aead::register
    - SpdmSharedSecretFinalKeyStruct::default
    - Self::send_receive_spdm_finish
    - spdmlib::secret::asym_sign::register
    - get_key_size
    - req_create_info
    - Some
    - requester::RequesterContext::new
    - spdmlib::crypto::hmac::register
    - Self::set_rx
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - spdmlib::crypto::hkdf::register
    - Arc::new
    - set_mut_auth_requested
    - reset_runtime_info
    - spdmlib::secret::pqc_asym_sign::register
    - set_shared_secret
    - setup
    - get_rsp_cert_chain_buff
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_finish(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:16,1
    - Dst: spdmlib::secret::psk::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:17,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:18,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:20,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:23,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:23,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:24,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:26,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:28,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:41,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:42,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:42,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:43,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:44,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:47,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:51,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:52,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:52,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:57,1
    - Dst: Self::send_receive_spdm_psk_finish
      Src: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 114
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 61
      start: 14
    functionDepth: 8
    functionLinenumber: 14
    functionLinenumberEnd: 61
    functionName: fuzz_send_receive_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs
    functionUses: 0
    functionsReached:
    - spdmlib::secret::psk::register
    - unwrap
    - SharedBuffer::new
    - set_use_psk
    - clone
    - spdmlib::crypto::hash::hash_ctx_init
    - SpdmKemAlgo::empty
    - fake_device_io::FakeSpdmDeviceIo::new
    - spdmlib::crypto::aead::register
    - Self::send_receive_spdm_psk_finish
    - spdmlib::secret::asym_sign::register
    - req_create_info
    - Some
    - requester::RequesterContext::new
    - Self::set_rx
    - Mutex::new
    - SpdmPskHintStruct::default
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - spdmlib::secret::pqc_asym_sign::register
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_psk_finish(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzzlib::req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:26,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:29,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:29,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:31,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:31,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:32,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:33,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:33,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:35,1
    - Dst: Self::send_receive_spdm_version
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:42,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:42,1
    - Dst: fuzzlib::req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:50,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:52,1
    - Dst: SpdmVersion::default
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:52,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:55,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:57,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:57,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:59,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:59,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:60,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:61,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:61,1
    - Dst: RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:63,1
    - Dst: Self::send_receive_spdm_version
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:70,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 72
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 72
    functionName: fuzz_send_receive_spdm_version
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::send_receive_spdm_version
    - is_err
    - Some
    - SpdmVersion::default
    - SharedBuffer::new
    - RequesterContext::new
    - Self::set_rx
    - Mutex::new
    - fuzzlib::req_create_info
    - fake_device_io::FakeSpdmDeviceIo::new
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_version(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:22,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:26,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:28,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:30,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:30,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:32,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:40,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:41,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:41,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:42,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:43,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:46,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:51,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:52,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:53,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:53,1
    - Dst: SpdmDigestStruct::from
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:57,1
    - Dst: Digest::as_ref
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:57,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:58,1
    - Dst: Self::send_receive_spdm_key_update
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 78
    argCount: 2
    argNames:
    - fuzzdata
    - key_update_op
    argTypes:
    - '&[u8]'
    - SpdmKeyUpdateOperation
    constantsTouched: []
    func_position:
      end: 64
      start: 21
    functionDepth: 9
    functionLinenumber: 21
    functionLinenumberEnd: 64
    functionName: f::u::z::z::_::s::e::n::d::_::r::e::c::e::i::v::e::_::s::p::d::m::_::k::e::y::_::u::p::d::a::t::e::f
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs
    functionUses: 0
    functionsReached:
    - Self::send_receive_spdm_key_update
    - unwrap
    - SharedBuffer::new
    - generate_data_secret
    - SpdmKemAlgo::empty
    - fake_device_io::FakeSpdmDeviceIo::new
    - SpdmSharedSecretFinalKeyStruct::default
    - set_session_state
    - get_key_size
    - req_create_info
    - requester::RequesterContext::new
    - Self::set_rx
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - Digest::as_ref
    - set_shared_secret
    - setup
    - SpdmDigestStruct::from
    linkageType: ''
    returnType: void
    signature: 'async fn f(fuzzdata: &[u8], key_update_op: SpdmKeyUpdateOperation)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:16,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:17,1
    - Dst: spdmlib::crypto::hkdf::register
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:18,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:19,1
    - Dst: f
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:66,1
    - Dst: f
      Src: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 102
    argCount: 1
    argNames:
    - data
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 68
      start: 15
    functionDepth: 11
    functionLinenumber: 15
    functionLinenumberEnd: 68
    functionName: fuzz_send_receive_spdm_key_update
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs
    functionUses: 0
    functionsReached:
    - f
    - clone
    - spdmlib::secret::asym_sign::register
    - spdmlib::secret::pqc_asym_sign::register
    - spdmlib::crypto::aead::register
    - spdmlib::crypto::hkdf::register
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_key_update(data: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:13,1
    - Dst: spdmlib::crypto::cert_operation::register
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:14,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:21,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:22,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:24,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:24,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:26,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:28,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:28,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:30,1
    - Dst: Self::send_receive_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:41,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:41,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:52,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:53,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:55,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:55,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:57,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:57,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:58,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:59,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:59,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:61,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:71,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:71,1
    - Dst: SpdmCertChainData::default
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:74,1
    - Dst: Arc<Vec<u8>>::len
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:79,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:80,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:85,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:86,1
    - Dst: Self::send_receive_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:89,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:89,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:100,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:101,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:103,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:103,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:106,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:106,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:107,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:108,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:108,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:110,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:121,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:122,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:122,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:123,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:124,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:127,1
    - Dst: Self::send_receive_spdm_certificate
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:132,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:133,1
    - Dst: is_err
      Src: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 181
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 137
      start: 12
    functionDepth: 9
    functionLinenumber: 12
    functionLinenumberEnd: 137
    functionName: fuzz_send_receive_spdm_certificate
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - copy_from_slice
    - SpdmKemAlgo::empty
    - fake_device_io::FakeSpdmDeviceIo::new
    - spdmlib::crypto::aead::register
    - Self::send_receive_spdm_certificate
    - SpdmCertChainBuffer::default
    - gen_array_clone
    - req_create_info
    - Some
    - spdmlib::crypto::cert_operation::register
    - requester::RequesterContext::new
    - Self::set_rx
    - Mutex::new
    - Arc<Vec<u8>>::len
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - SpdmCertChainData::default
    - is_err
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_certificate(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:16,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:17,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:19,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:21,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:22,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:22,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:23,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:23,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:25,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:27,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:35,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:36,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:36,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:37,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:38,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:41,1
    - Dst: Self::send_receive_spdm_end_session
      Src: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 66
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 47
      start: 14
    functionDepth: 6
    functionLinenumber: 14
    functionLinenumberEnd: 47
    functionName: fuzz_send_receive_spdm_end_session
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Self::send_receive_spdm_end_session
    - unwrap
    - SharedBuffer::new
    - requester::RequesterContext::new
    - clone
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - Self::set_rx
    - spdmlib::secret::pqc_asym_sign::register
    - fake_device_io::FakeSpdmDeviceIo::new
    - SpdmKemAlgo::empty
    - set_crypto_param
    - SpdmSession::new
    - req_create_info
    - spdmlib::crypto::aead::register
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_end_session(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::crypto::asym_verify::register
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:18,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:18,1
    - Dst: spdmlib::crypto::pqc_asym_verify::register
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:19,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:19,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:26,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:30,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:30,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:33,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:33,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:34,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:36,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:36,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:38,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:61,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:61,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:63,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:66,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:70,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:91,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:92,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:94,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:94,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:96,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:96,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:97,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:98,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:98,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:100,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:123,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:126,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:130,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:151,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:153,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:155,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:155,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:157,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:157,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:158,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:159,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:159,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:161,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:184,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:187,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:191,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:212,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:214,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:216,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:216,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:218,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:218,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:219,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:220,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:220,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:222,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:245,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:248,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:252,1
    - Dst: SpdmMeasurementAttributes::empty
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:256,1
    - Dst: SpdmMeasurementOperation::Unknown
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:257,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:272,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:272,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:274,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:276,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:278,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:278,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:280,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:280,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:281,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:282,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:282,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:284,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:312,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:313,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:313,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:314,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:317,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:321,1
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:325,1
    - Dst: get_key_size
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:326,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:327,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:327,1
    - Dst: spdmlib::crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:331,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:334,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:334,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:336,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:338,1
    - Dst: Self::send_receive_spdm_measurement
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:342,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 456
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 357
      start: 17
    functionDepth: 8
    functionLinenumber: 17
    functionLinenumberEnd: 357
    functionName: fuzz_send_receive_spdm_measurement
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementOperation::Unknown
    - unwrap
    - SharedBuffer::new
    - clone
    - spdmlib::crypto::hash::hash_ctx_init
    - SpdmKemAlgo::empty
    - spdmlib::crypto::aead::register
    - fake_device_io::FakeSpdmDeviceIo::new
    - SpdmSharedSecretFinalKeyStruct::default
    - SpdmMeasurementAttributes::empty
    - get_key_size
    - req_create_info
    - Some
    - requester::RequesterContext::new
    - Self::set_rx
    - Mutex::new
    - set_crypto_param
    - SpdmSession::new
    - SpdmMeasurementRecordStructure::default
    - Arc::new
    - spdmlib::crypto::asym_verify::register
    - Self::send_receive_spdm_measurement
    - reset_runtime_info
    - set_shared_secret
    - setup
    - get_rsp_cert_chain_buff
    - spdmlib::crypto::pqc_asym_verify::register
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_measurement(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:15,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:16,1
    - Dst: spdmlib::crypto::aead::register
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:17,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:17,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:24,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:25,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:25,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:26,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:27,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:27,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:27,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:27,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:31,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:49,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:49,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:59,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:60,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:60,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:61,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:62,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:65,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:69,1
    - Dst: Writer::init
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:74,1
    - Dst: Self::encap_handle_get_digest
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:76,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:84,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:85,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:85,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:86,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:87,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:87,1
    - Dst: FakeSpdmDeviceIoReceve::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:87,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:87,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:91,1
    - Dst: Some
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:108,1
    - Dst: get_rsp_cert_chain_buff
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:108,1
    - Dst: SpdmSession::new
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:118,1
    - Dst: setup
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:119,1
    - Dst: unwrap
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:119,1
    - Dst: set_session_state
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:120,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:121,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:124,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:128,1
    - Dst: Writer::init
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:133,1
    - Dst: Self::encap_handle_get_digest
      Src: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 187
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 137
      start: 14
    functionDepth: 9
    functionLinenumber: 14
    functionLinenumberEnd: 137
    functionName: fuzz_encap_handle_get_digest
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - SharedBuffer::new
    - clone
    - Writer::init
    - SpdmKemAlgo::empty
    - spdmlib::crypto::aead::register
    - spdmlib::secret::asym_sign::register
    - req_create_info
    - Some
    - requester::RequesterContext::new
    - Mutex::new
    - Self::encap_handle_get_digest
    - set_crypto_param
    - SpdmSession::new
    - Arc::new
    - FakeSpdmDeviceIoReceve::new
    - set_mut_auth_requested
    - spdmlib::secret::pqc_asym_sign::register
    - setup
    - get_rsp_cert_chain_buff
    - set_session_state
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_encap_handle_get_digest(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spdmlib::secret::asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:12,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:12,1
    - Dst: spdmlib::secret::pqc_asym_sign::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:13,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:13,1
    - Dst: spdmlib::secret::measurement::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:14,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:14,1
    - Dst: spdmlib::secret::psk::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:15,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:15,1
    - Dst: spdmlib::crypto::hkdf::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:16,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:16,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:24,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:25,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:26,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:26,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:28,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:28,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:29,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:30,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:30,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:32,1
    - Dst: Self::send_receive_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:47,1
    - Dst: spdmlib::crypto::hmac::register
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:55,1
    - Dst: clone
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:55,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:63,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:64,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:65,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:65,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:67,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:67,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:68,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:69,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:69,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:71,1
    - Dst: Self::send_receive_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:86,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:99,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:100,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:101,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:101,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:103,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:103,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:104,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:105,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:105,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:107,1
    - Dst: Self::send_receive_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:122,1
    - Dst: req_create_info
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:135,1
    - Dst: SharedBuffer::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:136,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:138,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:138,1
    - Dst: fake_device_io::FakeSpdmDeviceIo::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:140,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:140,1
    - Dst: Self::set_rx
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:141,1
    - Dst: Arc::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:142,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:142,1
    - Dst: requester::RequesterContext::new
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:144,1
    - Dst: Self::send_receive_spdm_psk_exchange
      Src: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 207
    argCount: 1
    argNames:
    - fuzzdata
    argTypes:
    - Arc<Vec<u8>>
    constantsTouched: []
    func_position:
      end: 164
      start: 11
    functionDepth: 6
    functionLinenumber: 11
    functionLinenumberEnd: 164
    functionName: fuzz_send_receive_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs
    functionUses: 0
    functionsReached:
    - spdmlib::secret::measurement::register
    - Arc::new
    - Self::send_receive_spdm_psk_exchange
    - spdmlib::secret::psk::register
    - SharedBuffer::new
    - requester::RequesterContext::new
    - clone
    - spdmlib::crypto::hmac::register
    - spdmlib::secret::asym_sign::register
    - Mutex::new
    - Self::set_rx
    - spdmlib::secret::pqc_asym_sign::register
    - req_create_info
    - fake_device_io::FakeSpdmDeviceIo::new
    - spdmlib::crypto::hkdf::register
    linkageType: ''
    returnType: void
    signature: 'async fn fuzz_send_receive_spdm_psk_exchange(fuzzdata: Arc<Vec<u8>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: MctpMessageType::default
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MctpMessageType
    signature: fn default() -> MctpMessageType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/mctp_transport/src/header.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: MctpMessageHeader::encode
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MctpMessageType::read
      Src: /src/spdm-rs/mctp_transport/src/header.rs:52,1
    - Dst: Some
      Src: /src/spdm-rs/mctp_transport/src/header.rs:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 6
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: MctpMessageHeader::read
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 3
    functionsReached:
    - MctpMessageType::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<MctpMessageHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/mctp_transport/src/header.rs:68,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/mctp_transport/src/header.rs:69,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:70,1
    - Dst: Writer::init
      Src: /src/spdm-rs/mctp_transport/src/header.rs:71,1
    - Dst: encode
      Src: /src/spdm-rs/mctp_transport/src/header.rs:79,1
    - Dst: map_err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:79,1
    - Dst: Writer::used
      Src: /src/spdm-rs/mctp_transport/src/header.rs:82,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:83,1
    - Dst: Err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:84,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/mctp_transport/src/header.rs:86,1
    - Dst: Ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 3
    argNames:
    - spdm_buffer
    - transport_buffer
    - secured_message
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    - bool
    constantsTouched: []
    func_position:
      end: 88
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 88
    functionName: MctpTransportEncap::encap
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::len'
    - Err
    - encode
    - Writer::init
    - copy_from_slice
    - Ok
    - Arc<&[u8]>::len
    - '&mut [u8]::deref_mut'
    - c_int::lock
    - Writer::used
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn encap(&mut self,spdm_buffer: Arc<&[u8]>,transport_buffer:
      Arc<Mutex<&mut [u8]>>,secured_message: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::deref'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:95,1
    - Dst: Reader::init
      Src: /src/spdm-rs/mctp_transport/src/header.rs:96,1
    - Dst: MctpMessageHeader::read
      Src: /src/spdm-rs/mctp_transport/src/header.rs:98,1
    - Dst: Err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:106,1
    - Dst: Err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:108,1
    - Dst: Result::used
      Src: /src/spdm-rs/mctp_transport/src/header.rs:110,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:111,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/mctp_transport/src/header.rs:112,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:113,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:114,1
    - Dst: Err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:115,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/mctp_transport/src/header.rs:118,1
    - Dst: Ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 2
    argNames:
    - transport_buffer
    - spdm_buffer
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 7
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: MctpTransportEncap::decap
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Result::used
    - '&mut [u8]::len'
    - Err
    - MctpMessageHeader::read
    - '&[u8]::deref'
    - copy_from_slice
    - '&[u8]::len'
    - Ok
    - Reader::init
    - c_int::lock
    - '&mut [u8]::deref_mut'
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn decap(&mut self,transport_buffer: Arc<&[u8]>,spdm_buffer:
      Arc<Mutex<&mut [u8]>>,) -> SpdmResult<(usize, bool)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/mctp_transport/src/header.rs:128,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/mctp_transport/src/header.rs:129,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:130,1
    - Dst: Writer::init
      Src: /src/spdm-rs/mctp_transport/src/header.rs:131,1
    - Dst: encode
      Src: /src/spdm-rs/mctp_transport/src/header.rs:141,1
    - Dst: map_err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:141,1
    - Dst: Writer::used
      Src: /src/spdm-rs/mctp_transport/src/header.rs:144,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:145,1
    - Dst: Err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:146,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/mctp_transport/src/header.rs:148,1
    - Dst: Ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 3
    argNames:
    - spdm_buffer
    - app_buffer
    - is_app_message
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    - bool
    constantsTouched: []
    func_position:
      end: 150
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 150
    functionName: MctpTransportEncap::encap_app
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::len'
    - Err
    - encode
    - Writer::init
    - copy_from_slice
    - Ok
    - Arc<&[u8]>::len
    - '&mut [u8]::deref_mut'
    - c_int::lock
    - Writer::used
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn encap_app(&mut self,spdm_buffer: Arc<&[u8]>,app_buffer: Arc<Mutex<&mut
      [u8]>>,is_app_message: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/mctp_transport/src/header.rs:157,1
    - Dst: MctpMessageHeader::read
      Src: /src/spdm-rs/mctp_transport/src/header.rs:159,1
    - Dst: Err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:165,1
    - Dst: Err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:167,1
    - Dst: Result::used
      Src: /src/spdm-rs/mctp_transport/src/header.rs:169,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/mctp_transport/src/header.rs:170,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/mctp_transport/src/header.rs:171,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:172,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/mctp_transport/src/header.rs:173,1
    - Dst: Err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:174,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/mctp_transport/src/header.rs:177,1
    - Dst: Ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 2
    argNames:
    - app_buffer
    - spdm_buffer
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    constantsTouched: []
    func_position:
      end: 179
      start: 152
    functionDepth: 7
    functionLinenumber: 152
    functionLinenumberEnd: 179
    functionName: MctpTransportEncap::decap_app
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Result::used
    - '&mut [u8]::len'
    - Err
    - MctpMessageHeader::read
    - copy_from_slice
    - Ok
    - Reader::init
    - Arc<&[u8]>::len
    - c_int::lock
    - '&mut [u8]::deref_mut'
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn decap_app(&mut self,app_buffer: Arc<&[u8]>,spdm_buffer: Arc<Mutex<&mut
      [u8]>>,) -> SpdmResult<(usize, bool)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: MctpTransportEncap::get_sequence_number_count
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_sequence_number_count(&mut self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: MctpTransportEncap::get_max_random_count
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: fn get_max_random_count(&mut self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/mctp_transport/src/header.rs:198,1
    - Dst: Reader::init
      Src: /src/spdm-rs/mctp_transport/src/header.rs:203,1
    - Dst: MctpMessageHeader::read
      Src: /src/spdm-rs/mctp_transport/src/header.rs:205,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/mctp_transport/src/header.rs:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 196
    functionDepth: 7
    functionLinenumber: 196
    functionLinenumberEnd: 211
    functionName: tests::test_case0_mctpmessageheader
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - MctpMessageHeader::read
    - Reader::init
    - Writer::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_mctpmessageheader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:224,1
    - Dst: encap
      Src: /src/spdm-rs/mctp_transport/src/header.rs:224,1
    - Dst: T::is_ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:224,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:238,1
    - Dst: encap
      Src: /src/spdm-rs/mctp_transport/src/header.rs:238,1
    - Dst: T::is_ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:238,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:252,1
    - Dst: encap
      Src: /src/spdm-rs/mctp_transport/src/header.rs:252,1
    - Dst: T::is_ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 260
    functionName: tests::test_case0_encap
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - encap
    - T::is_ok
    - executor::block_on
    linkageType: ''
    returnType: void
    signature: fn test_case0_encap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:270,1
    - Dst: decap
      Src: /src/spdm-rs/mctp_transport/src/header.rs:270,1
    - Dst: T::is_err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:270,1
    - Dst: Writer::init
      Src: /src/spdm-rs/mctp_transport/src/header.rs:274,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:281,1
    - Dst: decap
      Src: /src/spdm-rs/mctp_transport/src/header.rs:281,1
    - Dst: T::is_ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:281,1
    - Dst: Writer::init
      Src: /src/spdm-rs/mctp_transport/src/header.rs:286,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:293,1
    - Dst: decap
      Src: /src/spdm-rs/mctp_transport/src/header.rs:293,1
    - Dst: T::is_ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 296
    functionName: tests::test_case0_decap
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - decap
    - T::is_err
    - Writer::init
    - executor::block_on
    - T::is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_decap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:303,1
    - Dst: encap_app
      Src: /src/spdm-rs/mctp_transport/src/header.rs:303,1
    - Dst: T::is_ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:303,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:313,1
    - Dst: encap_app
      Src: /src/spdm-rs/mctp_transport/src/header.rs:313,1
    - Dst: T::is_err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 320
    functionName: tests::test_case0_encap_app
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - T::is_ok
    - encap_app
    - T::is_err
    - executor::block_on
    linkageType: ''
    returnType: void
    signature: fn test_case0_encap_app()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:330,1
    - Dst: decap_app
      Src: /src/spdm-rs/mctp_transport/src/header.rs:330,1
    - Dst: T::is_err
      Src: /src/spdm-rs/mctp_transport/src/header.rs:330,1
    - Dst: Writer::init
      Src: /src/spdm-rs/mctp_transport/src/header.rs:334,1
    - Dst: executor::block_on
      Src: /src/spdm-rs/mctp_transport/src/header.rs:341,1
    - Dst: decap_app
      Src: /src/spdm-rs/mctp_transport/src/header.rs:341,1
    - Dst: T::is_ok
      Src: /src/spdm-rs/mctp_transport/src/header.rs:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 344
    functionName: tests::test_case0_decap_app
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - T::is_err
    - decap_app
    - Writer::init
    - executor::block_on
    - T::is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_decap_app()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: tests::test_case0_get_sequence_number_count
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_get_sequence_number_count()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: tests::test_case0_get_max_random_count
    functionSourceFile: /src/spdm-rs/mctp_transport/src/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_get_max_random_count()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_lock
      Src: /src/spdm-rs/executor/src/executor.rs:38,1
    - Dst: poll_tasks
      Src: /src/spdm-rs/executor/src/executor.rs:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames: []
    argTypes:
    - '&Arc<Self>'
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Task::wake_by_ref
    functionSourceFile: /src/spdm-rs/executor/src/executor.rs
    functionUses: 0
    functionsReached:
    - try_lock
    - poll_tasks
    linkageType: ''
    returnType: void
    signature: 'fn wake_by_ref(_: &Arc<Self>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/executor/src/executor.rs:47,1
    - Dst: '{

        alloc::

        },

        spin::Mutex,

        woke::waker_ref'
      Src: /src/spdm-rs/executor/src/executor.rs:49,1
    - Dst: Context::from_waker
      Src: /src/spdm-rs/executor/src/executor.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: Arc::is_pending
    functionSourceFile: /src/spdm-rs/executor/src/executor.rs
    functionUses: 0
    functionsReached:
    - Context::from_waker
    - '{

      alloc::

      },

      spin::Mutex,

      woke::waker_ref'
    - lock
    linkageType: ''
    returnType: bool
    signature: fn is_pending(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/executor/src/executor.rs:62,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/executor/src/executor.rs:63,1
    - Dst: lock
      Src: /src/spdm-rs/executor/src/executor.rs:66,1
    - Dst: '{

        alloc::

        },

        spin::Mutex,

        woke::waker_ref'
      Src: /src/spdm-rs/executor/src/executor.rs:67,1
    - Dst: Context::from_waker
      Src: /src/spdm-rs/executor/src/executor.rs:68,1
    - Dst: Pin<Box<dyn Future<Output = T> + 'static + Send>>::as_mut
      Src: /src/spdm-rs/executor/src/executor.rs:69,1
    - Dst: '&mut [u8]::poll'
      Src: /src/spdm-rs/executor/src/executor.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - future
    argTypes:
    - Pin<Box<dyn Future<Output = T> + 'static + Send>>
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Executor::run
    functionSourceFile: /src/spdm-rs/executor/src/executor.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - '{

      alloc::

      },

      spin::Mutex,

      woke::waker_ref'
    - Pin<Box<dyn Future<Output = T> + 'static + Send>>::as_mut
    - Context::from_waker
    - Mutex::new
    - '&mut [u8]::poll'
    - lock
    linkageType: ''
    returnType: Poll
    signature: 'pub fn run<T>(&mut self, future: Pin<Box<dyn Future<Output = T> +
      ''static + Send>>) -> Poll<T>whereT: Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/executor/src/executor.rs:77,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/executor/src/executor.rs:78,1
    - Dst: lock
      Src: /src/spdm-rs/executor/src/executor.rs:81,1
    - Dst: '{

        alloc::

        },

        spin::Mutex,

        woke::waker_ref'
      Src: /src/spdm-rs/executor/src/executor.rs:82,1
    - Dst: Context::from_waker
      Src: /src/spdm-rs/executor/src/executor.rs:83,1
    - Dst: Pin<Box<dyn Future<Output = T> + 'static + Send>>::as_mut
      Src: /src/spdm-rs/executor/src/executor.rs:85,1
    - Dst: '&mut [u8]::poll'
      Src: /src/spdm-rs/executor/src/executor.rs:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - future
    argTypes:
    - Pin<Box<dyn Future<Output = T> + 'static + Send>>
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: Executor::block_on
    functionSourceFile: /src/spdm-rs/executor/src/executor.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - '{

      alloc::

      },

      spin::Mutex,

      woke::waker_ref'
    - Pin<Box<dyn Future<Output = T> + 'static + Send>>::as_mut
    - Context::from_waker
    - Mutex::new
    - '&mut [u8]::poll'
    - lock
    linkageType: ''
    returnType: T
    signature: 'pub fn block_on<T>(&mut self, future: Pin<Box<dyn Future<Output =
      T> + ''static + Send>>) -> TwhereT: Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/spdm-rs/executor/src/executor.rs:98,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/executor/src/executor.rs:99,1
    - Dst: is_none
      Src: /src/spdm-rs/executor/src/executor.rs:101,1
    - Dst: Some
      Src: /src/spdm-rs/executor/src/executor.rs:102,1
    - Dst: TasksList::new
      Src: /src/spdm-rs/executor/src/executor.rs:102,1
    - Dst: as_mut
      Src: /src/spdm-rs/executor/src/executor.rs:104,1
    - Dst: expect
      Src: /src/spdm-rs/executor/src/executor.rs:104,1
    - Dst: bool::push_back
      Src: /src/spdm-rs/executor/src/executor.rs:105,1
    - Dst: Box::new
      Src: /src/spdm-rs/executor/src/executor.rs:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - future
    argTypes:
    - Pin<Box<dyn Future<Output = T> + 'static + Send>>
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: Executor::add_task
    functionSourceFile: /src/spdm-rs/executor/src/executor.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - expect
    - Some
    - is_none
    - TasksList::new
    - Mutex::new
    - as_mut
    - bool::push_back
    - Box::new
    linkageType: ''
    returnType: void
    signature: 'pub fn add_task<T>(&mut self, future: Pin<Box<dyn Future<Output =
      T> + ''static + Send>>)whereT: Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/spdm-rs/executor/src/executor.rs:111,1
    - Dst: Some
      Src: /src/spdm-rs/executor/src/executor.rs:112,1
    - Dst: TasksList::new
      Src: /src/spdm-rs/executor/src/executor.rs:112,1
    - Dst: as_mut
      Src: /src/spdm-rs/executor/src/executor.rs:114,1
    - Dst: expect
      Src: /src/spdm-rs/executor/src/executor.rs:114,1
    - Dst: bool::len
      Src: /src/spdm-rs/executor/src/executor.rs:115,1
    - Dst: bool::pop_front
      Src: /src/spdm-rs/executor/src/executor.rs:116,1
    - Dst: unwrap
      Src: /src/spdm-rs/executor/src/executor.rs:116,1
    - Dst: is_pending
      Src: /src/spdm-rs/executor/src/executor.rs:117,1
    - Dst: bool::push_back
      Src: /src/spdm-rs/executor/src/executor.rs:118,1
    - Dst: bool::front
      Src: /src/spdm-rs/executor/src/executor.rs:122,1
    - Dst: is_some
      Src: /src/spdm-rs/executor/src/executor.rs:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: Executor::poll_tasks
    functionSourceFile: /src/spdm-rs/executor/src/executor.rs
    functionUses: 0
    functionsReached:
    - expect
    - bool::len
    - is_pending
    - Some
    - unwrap
    - is_some
    - is_none
    - TasksList::new
    - bool::pop_front
    - as_mut
    - bool::push_back
    - bool::front
    linkageType: ''
    returnType: bool
    signature: pub fn poll_tasks(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: W32::len
      Src: /src/spdm-rs/executor/src/executor.rs:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: Executor::active_tasks_count
    functionSourceFile: /src/spdm-rs/executor/src/executor.rs
    functionUses: 0
    functionsReached:
    - W32::len
    linkageType: ''
    returnType: usize
    signature: pub fn active_tasks_count(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lines
      Src: /src/spdm-rs/external/ring/src/testutil.rs:321,1
    - Dst: String::from
      Src: /src/spdm-rs/external/ring/src/testutil.rs:323,1
    - Dst: parse_test_case
      Src: /src/spdm-rs/external/ring/src/testutil.rs:326,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/testutil.rs:327,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/testutil.rs:329,1
    - Dst: any
      Src: /src/spdm-rs/external/ring/src/testutil.rs:329,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/testutil.rs:334,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/testutil.rs:337,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/testutil.rs:340,1
    - Dst: is_err
      Src: /src/spdm-rs/external/ring/src/testutil.rs:343,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 2
    argNames:
    - test_file
    - f
    argTypes:
    - File
    - F
    constantsTouched: []
    func_position:
      end: 361
      start: 317
    functionDepth: 11
    functionLinenumber: 317
    functionLinenumberEnd: 361
    functionName: run
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 57
    functionsReached:
    - f
    - Err
    - is_err
    - Ok
    - lines
    - iter
    - String::from
    - parse_test_case
    - any
    linkageType: ''
    returnType: void
    signature: 'pub fn run<F>(test_file: File, mut f: F)whereF: FnMut(&str, &mut TestCase)
      -> Result<(), error::Unspecified>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/executor/src/lib.rs:36,1
    - Dst: add_task
      Src: /src/spdm-rs/executor/src/lib.rs:36,1
    - Dst: Box::pin
      Src: /src/spdm-rs/executor/src/lib.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - future
    argTypes:
    - impl Future<Output = T> + 'static + Send
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: add_task
    functionSourceFile: /src/spdm-rs/executor/src/lib.rs
    functionUses: 4
    functionsReached:
    - Box::pin
    - add_task
    - lock
    linkageType: ''
    returnType: void
    signature: 'pub fn add_task<T>(future: impl Future<Output = T> + ''static + Send)whereT:
      Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/executor/src/lib.rs:41,1
    - Dst: poll_tasks
      Src: /src/spdm-rs/executor/src/lib.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: poll_tasks
    functionSourceFile: /src/spdm-rs/executor/src/lib.rs
    functionUses: 5
    functionsReached:
    - poll_tasks
    - lock
    linkageType: ''
    returnType: bool
    signature: pub fn poll_tasks() -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/executor/src/lib.rs:45,1
    - Dst: active_tasks_count
      Src: /src/spdm-rs/executor/src/lib.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: active_tasks_count
    functionSourceFile: /src/spdm-rs/executor/src/lib.rs
    functionUses: 1
    functionsReached:
    - active_tasks_count
    - lock
    linkageType: ''
    returnType: usize
    signature: pub fn active_tasks_count() -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_update_in_progress_flag
      Src: /src/spdm-rs/sys_time/src/rtc.rs:53,1
    - Dst: read_date_time
      Src: /src/spdm-rs/sys_time/src/rtc.rs:54,1
    - Dst: get_update_in_progress_flag
      Src: /src/spdm-rs/sys_time/src/rtc.rs:57,1
    - Dst: read_date_time
      Src: /src/spdm-rs/sys_time/src/rtc.rs:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: read_rtc
    functionSourceFile: /src/spdm-rs/sys_time/src/rtc.rs
    functionUses: 1
    functionsReached:
    - get_update_in_progress_flag
    - read_date_time
    linkageType: ''
    returnType: DateTime
    signature: pub fn read_rtc() -> DateTime
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - bcd
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: bcd_to_binary
    functionSourceFile: /src/spdm-rs/sys_time/src/rtc.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'const fn bcd_to_binary(bcd: u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_cmos_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: is_24_hour_format
    functionSourceFile: /src/spdm-rs/sys_time/src/rtc.rs
    functionUses: 1
    functionsReached:
    - read_cmos_register
    linkageType: ''
    returnType: bool
    signature: fn is_24_hour_format() -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_cmos_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: is_binary_mode
    functionSourceFile: /src/spdm-rs/sys_time/src/rtc.rs
    functionUses: 2
    functionsReached:
    - read_cmos_register
    linkageType: ''
    returnType: bool
    signature: fn is_binary_mode() -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::write_to_port
      Src: /src/spdm-rs/sys_time/src/rtc.rs:86,1
    - Dst: u8::read_from_port
      Src: /src/spdm-rs/sys_time/src/rtc.rs:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reg
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: read_cmos_register
    functionSourceFile: /src/spdm-rs/sys_time/src/rtc.rs
    functionUses: 5
    functionsReached:
    - u8::write_to_port
    - u8::read_from_port
    linkageType: ''
    returnType: u8
    signature: 'fn read_cmos_register(reg: u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_cmos_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: get_update_in_progress_flag
    functionSourceFile: /src/spdm-rs/sys_time/src/rtc.rs
    functionUses: 1
    functionsReached:
    - read_cmos_register
    linkageType: ''
    returnType: u8
    signature: fn get_update_in_progress_flag() -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_cmos_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:96,1
    - Dst: is_binary_mode
      Src: /src/spdm-rs/sys_time/src/rtc.rs:98,1
    - Dst: bcd_to_binary
      Src: /src/spdm-rs/sys_time/src/rtc.rs:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - register
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: read_datetime_register
    functionSourceFile: /src/spdm-rs/sys_time/src/rtc.rs
    functionUses: 1
    functionsReached:
    - is_binary_mode
    - bcd_to_binary
    - read_cmos_register
    linkageType: ''
    returnType: u8
    signature: 'fn read_datetime_register(register: u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_cmos_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:106,1
    - Dst: is_binary_mode
      Src: /src/spdm-rs/sys_time/src/rtc.rs:107,1
    - Dst: is_24_hour_format
      Src: /src/spdm-rs/sys_time/src/rtc.rs:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: read_hour_register
    functionSourceFile: /src/spdm-rs/sys_time/src/rtc.rs
    functionUses: 1
    functionsReached:
    - is_24_hour_format
    - is_binary_mode
    - read_cmos_register
    linkageType: ''
    returnType: u8
    signature: fn read_hour_register() -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_datetime_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:122,1
    - Dst: read_datetime_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:123,1
    - Dst: read_datetime_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:124,1
    - Dst: read_datetime_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:125,1
    - Dst: read_datetime_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:126,1
    - Dst: read_hour_register
      Src: /src/spdm-rs/sys_time/src/rtc.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: read_date_time
    functionSourceFile: /src/spdm-rs/sys_time/src/rtc.rs
    functionUses: 1
    functionsReached:
    - read_datetime_register
    - read_hour_register
    linkageType: ''
    returnType: DateTime
    signature: fn read_date_time() -> DateTime
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rtc::read_rtc
      Src: /src/spdm-rs/sys_time/src/lib.rs:16,1
    - Dst: PrimitiveDateTime::new
      Src: /src/spdm-rs/sys_time/src/lib.rs:18,1
    - Dst: Date::from_calendar_date
      Src: /src/spdm-rs/sys_time/src/lib.rs:19,1
    - Dst: Month::try_from
      Src: /src/spdm-rs/sys_time/src/lib.rs:21,1
    - Dst: Result::ok
      Src: /src/spdm-rs/sys_time/src/lib.rs:21,1
    - Dst: ok
      Src: /src/spdm-rs/sys_time/src/lib.rs:19,1
    - Dst: Time::from_hms
      Src: /src/spdm-rs/sys_time/src/lib.rs:25,1
    - Dst: ok
      Src: /src/spdm-rs/sys_time/src/lib.rs:25,1
    - Dst: Some
      Src: /src/spdm-rs/sys_time/src/lib.rs:27,1
    - Dst: DateTime::assume_utc
      Src: /src/spdm-rs/sys_time/src/lib.rs:27,1
    - Dst: unix_timestamp
      Src: /src/spdm-rs/sys_time/src/lib.rs:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: get_sys_time
    functionSourceFile: /src/spdm-rs/sys_time/src/lib.rs
    functionUses: 0
    functionsReached:
    - Date::from_calendar_date
    - Result::ok
    - Some
    - unix_timestamp
    - Month::try_from
    - PrimitiveDateTime::new
    - DateTime::assume_utc
    - ok
    - rtc::read_rtc
    - Time::from_hms
    linkageType: ''
    returnType: Option
    signature: pub fn get_sys_time() -> Option<i64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciDoeVendorId::Unknown
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: PciDoeVendorId::default
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - PciDoeVendorId::Unknown
    linkageType: ''
    returnType: PciDoeVendorId
    signature: fn default() -> PciDoeVendorId
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciDoeDataObjectType::Unknown
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: PciDoeDataObjectType::default
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - PciDoeDataObjectType::Unknown
    linkageType: ''
    returnType: PciDoeDataObjectType
    signature: fn default() -> PciDoeDataObjectType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:56,1
    - Dst: encode
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:57,1
    - Dst: encode
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:58,1
    - Dst: encode
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:70,1
    - Dst: Ok
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:71,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: PciDoeMessageHeader::encode
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PciDoeVendorId::read
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:75,1
    - Dst: PciDoeDataObjectType::read
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:76,1
    - Dst: u8::read
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:77,1
    - Dst: u32::read
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:78,1
    - Dst: checked_sub
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:87,1
    - Dst: Some
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:88,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 6
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: PciDoeMessageHeader::read
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 6
    functionsReached:
    - Some
    - checked_sub
    - u32::read
    - PciDoeVendorId::read
    - PciDoeDataObjectType::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<PciDoeMessageHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:108,1
    - Dst: usize::div_ceil
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:109,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:110,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:111,1
    - Dst: Writer::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:112,1
    - Dst: encode
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:123,1
    - Dst: map_err
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:123,1
    - Dst: Writer::used
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:126,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:127,1
    - Dst: Err
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:128,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:130,1
    - Dst: Ok
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - spdm_buffer
    - transport_buffer
    - secured_message
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    - bool
    constantsTouched: []
    func_position:
      end: 132
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 132
    functionName: PciDoeTransportEncap::encap
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::len'
    - Err
    - encode
    - Writer::init
    - copy_from_slice
    - Ok
    - Arc<&[u8]>::len
    - '&mut [u8]::deref_mut'
    - c_int::lock
    - Writer::used
    - usize::div_ceil
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn encap(&mut self,spdm_buffer: Arc<&[u8]>,transport_buffer:
      Arc<Mutex<&mut [u8]>>,secured_message: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:139,1
    - Dst: PciDoeMessageHeader::read
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:141,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:141,1
    - Dst: Err
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:144,1
    - Dst: Err
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:149,1
    - Dst: Result::used
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:151,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:153,1
    - Dst: Err
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:154,1
    - Dst: c_int::lock
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:156,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:157,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:158,1
    - Dst: Err
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:159,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:162,1
    - Dst: Ok
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 2
    argNames:
    - transport_buffer
    - spdm_buffer
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    constantsTouched: []
    func_position:
      end: 164
      start: 134
    functionDepth: 7
    functionLinenumber: 134
    functionLinenumberEnd: 164
    functionName: PciDoeTransportEncap::decap
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Result::used
    - '&mut [u8]::len'
    - PciDoeMessageHeader::read
    - Err
    - Option::ok_or
    - copy_from_slice
    - Ok
    - Reader::init
    - Arc<&[u8]>::len
    - c_int::lock
    - '&mut [u8]::deref_mut'
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn decap(&mut self,transport_buffer: Arc<&[u8]>,spdm_buffer:
      Arc<Mutex<&mut [u8]>>,) -> SpdmResult<(usize, bool)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:172,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:173,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:174,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:174,1
    - Dst: Ok
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:175,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - spdm_buffer
    - app_buffer
    - _is_app_message
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    - bool
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: PciDoeTransportEncap::encap_app
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Ok
    - copy_from_slice
    - Arc<&[u8]>::len
    - '&mut [u8]::deref_mut'
    - c_int::lock
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn encap_app(&mut self,spdm_buffer: Arc<&[u8]>,app_buffer: Arc<Mutex<&mut
      [u8]>>,_is_app_message: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c_int::lock
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:183,1
    - Dst: '&mut [u8]::deref_mut'
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:184,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:185,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:185,1
    - Dst: Ok
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:186,1
    - Dst: Arc<&[u8]>::len
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - app_buffer
    - spdm_buffer
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: PciDoeTransportEncap::decap_app
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Ok
    - copy_from_slice
    - Arc<&[u8]>::len
    - '&mut [u8]::deref_mut'
    - c_int::lock
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn decap_app(&mut self,app_buffer: Arc<&[u8]>,spdm_buffer: Arc<Mutex<&mut
      [u8]>>,) -> SpdmResult<(usize, bool)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: PciDoeTransportEncap::get_sequence_number_count
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_sequence_number_count(&mut self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: PciDoeTransportEncap::get_max_random_count
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: fn get_max_random_count(&mut self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:204,1
    - Dst: Reader::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:212,1
    - Dst: PciDoeMessageHeader::read
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:214,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 202
    functionDepth: 7
    functionLinenumber: 202
    functionLinenumberEnd: 225
    functionName: tests_header::test_case0_pcidoemessageheader
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    - PciDoeMessageHeader::read
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_pcidoemessageheader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:229,1
    - Dst: Reader::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:237,1
    - Dst: PciDoeMessageHeader::read
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:238,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 7
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: tests_header::test_case1_pcidoemessageheader
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    - PciDoeMessageHeader::read
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_pcidoemessageheader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:244,1
    - Dst: Reader::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:252,1
    - Dst: PciDoeMessageHeader::read
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:253,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 7
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: tests_header::test_case2_pcidoemessageheader
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    - PciDoeMessageHeader::read
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case2_pcidoemessageheader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:260,1
    - Dst: Reader::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:271,1
    - Dst: PciDoeMessageHeader::read
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 258
    functionDepth: 7
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: tests_header::test_case3_pcidoemessageheader
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    - PciDoeMessageHeader::read
    linkageType: ''
    returnType: void
    signature: fn test_case3_pcidoemessageheader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 289
    functionName: tests_header::test_case4_pcidoemessageheader
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case4_pcidoemessageheader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/pcidoe_transport/src/header.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: tests_header::test_case5_pcidoemessageheader
    functionSourceFile: /src/spdm-rs/pcidoe_transport/src/header.rs
    functionUses: 0
    functionsReached:
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case5_pcidoemessageheader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 72
    functionName: SpdmConfig::validate_content
    functionSourceFile: /src/spdm-rs/spdmlib/build.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn validate_content(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 199
    functionName: TEMPLATE
    functionSourceFile: /src/spdm-rs/spdmlib/build.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: StatusSeverity::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:30,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:31,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/error.rs:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: StatusSeverity::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: core::result::Result
    signature: 'fn try_from(value: u8) -> core::result::Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:70,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:71,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:72,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:73,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:74,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:75,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:76,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:77,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:78,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:79,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:80,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:81,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:82,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:83,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:84,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:85,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:86,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:87,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:88,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/error.rs:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - value
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 91
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 91
    functionName: StatusCodeCore::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: core::result::Result
    signature: 'fn try_from(value: u16) -> core::result::Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: StatusCodeCore::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:117,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:118,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:119,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:120,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:121,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/error.rs:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: StatusCodeCrypto::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: core::result::Result
    signature: 'fn try_from(value: u16) -> core::result::Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: StatusCodeCrypto::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:146,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/error.rs:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: StatusCodeCertParse::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: core::result::Result
    signature: 'fn try_from(value: u16) -> core::result::Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: StatusCodeCertParse::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:178,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:179,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:180,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:181,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:182,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:183,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/error.rs:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: StatusCodeTransport::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: core::result::Result
    signature: 'fn try_from(value: u16) -> core::result::Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: StatusCodeTransport::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:209,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:210,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/error.rs:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: StatusCodeMeasCollect::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: core::result::Result
    signature: 'fn try_from(value: u16) -> core::result::Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: StatusCodeMeasCollect::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:235,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/error.rs:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: StatusCodeRNG::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: core::result::Result
    signature: 'fn try_from(value: u16) -> core::result::Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: StatusCodeRNG::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: StatusCodeVdmError::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - Ok
    linkageType: ''
    returnType: core::result::Result
    signature: 'fn try_from(value: u16) -> core::result::Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::CORE
      Src: /src/spdm-rs/spdmlib/src/error.rs:280,1
    - Dst: StatusCodeCore::default
      Src: /src/spdm-rs/spdmlib/src/error.rs:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: StatusCode::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached:
    - Self::CORE
    - StatusCodeCore::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::get
      Src: /src/spdm-rs/spdmlib/src/error.rs:288,1
    - Dst: SpdmResult::get
      Src: /src/spdm-rs/spdmlib/src/error.rs:289,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:291,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:292,1
    - Dst: StatusCode::CORE
      Src: /src/spdm-rs/spdmlib/src/error.rs:292,1
    - Dst: StatusCodeCore::try_from
      Src: /src/spdm-rs/spdmlib/src/error.rs:292,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:293,1
    - Dst: StatusCode::CRYPTO
      Src: /src/spdm-rs/spdmlib/src/error.rs:293,1
    - Dst: StatusCodeCrypto::try_from
      Src: /src/spdm-rs/spdmlib/src/error.rs:293,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:294,1
    - Dst: StatusCode::CERT_PARSE
      Src: /src/spdm-rs/spdmlib/src/error.rs:294,1
    - Dst: StatusCodeCertParse::try_from
      Src: /src/spdm-rs/spdmlib/src/error.rs:294,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:295,1
    - Dst: StatusCode::TRANSPORT
      Src: /src/spdm-rs/spdmlib/src/error.rs:295,1
    - Dst: StatusCodeTransport::try_from
      Src: /src/spdm-rs/spdmlib/src/error.rs:295,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:296,1
    - Dst: StatusCode::MEAS_COLLECT
      Src: /src/spdm-rs/spdmlib/src/error.rs:296,1
    - Dst: StatusCodeMeasCollect::try_from
      Src: /src/spdm-rs/spdmlib/src/error.rs:296,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:299,1
    - Dst: StatusCode::RNG
      Src: /src/spdm-rs/spdmlib/src/error.rs:299,1
    - Dst: StatusCodeRNG::try_from
      Src: /src/spdm-rs/spdmlib/src/error.rs:299,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:300,1
    - Dst: StatusCode::VDM
      Src: /src/spdm-rs/spdmlib/src/error.rs:300,1
    - Dst: StatusCodeVdmError::try_from
      Src: /src/spdm-rs/spdmlib/src/error.rs:300,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/error.rs:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 1
    argNames:
    - value
    argTypes:
    - u24
    constantsTouched: []
    func_position:
      end: 303
      start: 287
    functionDepth: 13
    functionLinenumber: 287
    functionLinenumberEnd: 303
    functionName: StatusCode::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - StatusCodeVdmError::try_from
    - StatusCodeTransport::try_from
    - Err
    - StatusCode::TRANSPORT
    - StatusCodeCrypto::try_from
    - StatusCode::VDM
    - StatusCode::CORE
    - StatusCodeCore::try_from
    - Ok
    - StatusCodeRNG::try_from
    - StatusCode::MEAS_COLLECT
    - StatusCode::CERT_PARSE
    - StatusCodeCertParse::try_from
    - StatusCodeMeasCollect::try_from
    - StatusCode::CRYPTO
    - SpdmResult::get
    - StatusCode::RNG
    linkageType: ''
    returnType: core::result::Result
    signature: 'fn try_from(value: u24) -> core::result::Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:311,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/error.rs:311,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:312,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/error.rs:312,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:313,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/error.rs:313,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:314,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/error.rs:314,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:315,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/error.rs:315,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:316,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/error.rs:316,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:317,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/error.rs:317,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:318,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/error.rs:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 320
    functionName: StatusCode::try_into
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached:
    - u24::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn try_into(self) -> Result<u24, Self::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/spdm-rs/spdmlib/src/error.rs:337,1
    - Dst: Default::default
      Src: /src/spdm-rs/spdmlib/src/error.rs:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: SpdmErrorMessageData::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: SpdmStatus::eq
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &Self) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <StatusCode as TryInto<u24>>::try_into
      Src: /src/spdm-rs/spdmlib/src/error.rs:362,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/error.rs:362,1
    - Dst: get
      Src: /src/spdm-rs/spdmlib/src/error.rs:362,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/error.rs:365,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 367
      start: 359
    functionDepth: 12
    functionLinenumber: 359
    functionLinenumberEnd: 367
    functionName: SpdmStatus::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 1
    functionsReached:
    - encode
    - Ok
    - Result::map_err
    - get
    - <StatusCode as TryInto<u24>>::try_into
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/error.rs:370,1
    - Dst: StatusSeverity::try_from
      Src: /src/spdm-rs/spdmlib/src/error.rs:372,1
    - Dst: core::result::Result::ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:372,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/error.rs:376,1
    - Dst: StatusCode::try_from
      Src: /src/spdm-rs/spdmlib/src/error.rs:377,1
    - Dst: core::result::Result::ok
      Src: /src/spdm-rs/spdmlib/src/error.rs:377,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/error.rs:379,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 13
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: SpdmStatus::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached:
    - core::result::Result::ok
    - Some
    - u32::read
    - StatusCode::try_from
    - u24::new
    - StatusSeverity::try_from
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmStatus::encode
      Src: /src/spdm-rs/spdmlib/src/error.rs:391,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/error.rs:391,1
    - Dst: u32::from_le_bytes
      Src: /src/spdm-rs/spdmlib/src/error.rs:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 13
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: SpdmStatus::get_u32
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached:
    - SpdmStatus::encode
    - Writer::init
    - u32::from_le_bytes
    linkageType: ''
    returnType: u32
    signature: pub fn get_u32(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::read_bytes
      Src: /src/spdm-rs/spdmlib/src/error.rs:397,1
    - Dst: to_le_bytes
      Src: /src/spdm-rs/spdmlib/src/error.rs:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 7
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: SpdmStatus::from_u32
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - Self::read_bytes
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_u32(status: u32) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: SpdmStatus::spdm_status_is_success
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn spdm_status_is_success(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 408
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 408
    functionName: SpdmStatus::spdm_status_is_error
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn spdm_status_is_error(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/error.rs:412,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/error.rs:414,1
    - Dst: Default::default
      Src: /src/spdm-rs/spdmlib/src/error.rs:415,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/error.rs:417,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/error.rs:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - error_data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 423
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 423
    functionName: SpdmStatus::spdm_status_set_error_data
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached:
    - Some
    - Default::default
    - copy_from_slice
    - len
    linkageType: ''
    returnType: void
    signature: 'pub fn spdm_status_set_error_data(&mut self, error_data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: SpdmStatus::fmt
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: spdm_return_status
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StatusCode::VDM
      Src: /src/spdm-rs/spdmlib/src/error.rs:4,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 677
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 677
    functionName: SPDM_STATUS_VDM_DEFINED_ERROR
    functionSourceFile: /src/spdm-rs/spdmlib/src/error.rs
    functionUses: 0
    functionsReached:
    - StatusCode::VDM
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:68,1
    - Dst: check_cert_format
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:71,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:76,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - cert_chain
    - base_asym_algo
    argTypes:
    - '&[u8]'
    - SpdmBaseAsymAlgo
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: check_cert_chain_format
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - check_cert_format
    - SpdmResult::len
    - Ok
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn check_cert_chain_format(cert_chain: &[u8],base_asym_algo: SpdmBaseAsymAlgo,)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:87,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:89,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:92,1
    - Dst: check_tbs_certificate
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:96,1
    - Dst: check_signature_algorithm
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:97,1
    - Dst: check_tbs_certificate
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:99,1
    - Dst: check_signature_algorithm
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:100,1
    - Dst: check_signature_value
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:103,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:106,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 2
    argNames:
    - cert
    - base_asym_algo
    argTypes:
    - '&[u8]'
    - SpdmBaseAsymAlgo
    constantsTouched: []
    func_position:
      end: 110
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 110
    functionName: check_cert_format
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_signature_algorithm
    - check_length
    - check_signature_value
    - Err
    - Ok
    - check_tbs_certificate
    - check_tag_is_sequence
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_cert_format(cert: &[u8], base_asym_algo: SpdmBaseAsymAlgo)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:118,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:120,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:123,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:129,1
    - Dst: check_version
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:133,1
    - Dst: check_and_skip_common_tag
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:137,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:141,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:143,1
    - Dst: check_object_identifier
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:147,1
    - Dst: get_oid_by_base_asym_algo
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:147,1
    - Dst: check_object_identifier
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:149,1
    - Dst: check_name
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:153,1
    - Dst: check_validity
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:157,1
    - Dst: check_name
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:161,1
    - Dst: check_public_key_info
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:165,1
    - Dst: check_and_get_extensions
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:173,1
    - Dst: get_key_usage_value
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:174,1
    - Dst: check_extensions_spdm_oid
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:183,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:190,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:192,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 110
    argCount: 3
    argNames:
    - data
    - base_asym_algo
    - is_leaf_cert
    argTypes:
    - '&[u8]'
    - SpdmBaseAsymAlgo
    - bool
    constantsTouched: []
    func_position:
      end: 194
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 194
    functionName: check_tbs_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_extensions_spdm_oid
    - check_length
    - check_public_key_info
    - check_and_get_extensions
    - check_object_identifier
    - check_version
    - Err
    - Ok
    - check_and_skip_common_tag
    - check_validity
    - check_name
    - get_key_usage_value
    - check_tag_is_sequence
    - get_oid_by_base_asym_algo
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_tbs_certificate(data: &[u8],base_asym_algo: SpdmBaseAsymAlgo,is_leaf_cert:
      bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:203,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:205,1
    - Dst: check_object_identifier
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:209,1
    - Dst: get_oid_by_base_asym_algo
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:209,1
    - Dst: check_object_identifier
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:211,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - data
    - base_asym_algo
    - is_leaf_cert
    argTypes:
    - '&[u8]'
    - SpdmBaseAsymAlgo
    - bool
    constantsTouched: []
    func_position:
      end: 215
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 215
    functionName: check_signature_algorithm
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_length
    - check_object_identifier
    - Ok
    - check_tag_is_sequence
    - get_oid_by_base_asym_algo
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_signature_algorithm(data: &[u8],base_asym_algo: SpdmBaseAsymAlgo,is_leaf_cert:
      bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_and_skip_common_tag
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - _base_asym_algo
    argTypes:
    - '&[u8]'
    - SpdmBaseAsymAlgo
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: check_signature_value
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_and_skip_common_tag
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_signature_value(data: &[u8], _base_asym_algo: SpdmBaseAsymAlgo)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:222,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:223,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:225,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: check_tag_is_sequence
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 6
    functionsReached:
    - is_empty
    - Ok
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_tag_is_sequence(data: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:232,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:233,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:235,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: check_tag_is_num_oid
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - is_empty
    - Ok
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_tag_is_num_oid(data: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:242,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:243,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:245,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: check_tag_is_bool
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - is_empty
    - Ok
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_tag_is_bool(data: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:252,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:253,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:255,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: check_tag_is_octet_string
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - is_empty
    - Ok
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_tag_is_octet_string(data: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:265,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:267,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:274,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:278,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:286,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:293,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:300,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:305,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:307,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 58
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 310
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 310
    functionName: check_length
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 14
    functionsReached:
    - Ok
    - Err
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_length(data: &[u8]) -> SpdmResult<(usize, usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:313,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:320,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:324,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 329
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 329
    functionName: check_version
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 3
    functionsReached:
    - Ok
    - Err
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_version(data: &[u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:332,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:334,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:338,1
    - Dst: object_identifiers_are_same
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:340,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:341,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:343,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - data
    - oid
    argTypes:
    - '&[u8]'
    - Option<&'static [u8]>
    constantsTouched: []
    func_position:
      end: 349
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 349
    functionName: check_object_identifier
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 4
    functionsReached:
    - Ok
    - object_identifiers_are_same
    - Err
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_object_identifier(data: &[u8], oid: Option<&''static [u8]>)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_and_skip_common_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: check_name
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 2
    functionsReached:
    - check_and_skip_common_sequence
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_name(data: &[u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_and_skip_common_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 357
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 357
    functionName: check_validity
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 3
    functionsReached:
    - check_and_skip_common_sequence
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_validity(data: &[u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_and_skip_common_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: check_public_key_info
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 2
    functionsReached:
    - check_and_skip_common_sequence
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_public_key_info(data: &[u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:364,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:366,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:368,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:370,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 378
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 378
    functionName: check_and_get_extensions
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 2
    functionsReached:
    - check_length
    - Err
    - Ok
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_and_get_extensions(data: &[u8]) -> SpdmResult<(usize, &[u8])>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:382,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:383,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:385,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:387,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:389,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:395,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:397,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:399,1
    - Dst: object_identifiers_are_same
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:407,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:414,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:419,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:421,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:425,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:430,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:432,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:436,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:444,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:453,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:455,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 154
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 458
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 458
    functionName: get_key_usage_value
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_length
    - Err
    - Ok
    - object_identifiers_are_same
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn get_key_usage_value(data: &[u8]) -> SpdmResult<(bool, u8)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:463,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:465,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:467,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:469,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:471,1
    - Dst: check_and_get_extn_id
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:475,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:477,1
    - Dst: object_identifiers_are_same
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:480,1
    - Dst: find_target_object_identifier_in_single_extension
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:481,1
    - Dst: object_identifiers_are_same
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:489,1
    - Dst: find_target_object_identifier_in_single_extension
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:490,1
    - Dst: find_target_object_identifier_in_single_extension
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:496,1
    - Dst: object_identifiers_are_same
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:505,1
    - Dst: find_target_object_identifier_in_single_extension
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:506,1
    - Dst: find_target_object_identifier_in_single_extension
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:511,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:525,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 112
    argCount: 2
    argNames:
    - extensions
    - is_leaf_cert
    argTypes:
    - '&[u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 529
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 529
    functionName: check_extensions_spdm_oid
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_length
    - check_and_get_extn_id
    - find_target_object_identifier_in_single_extension
    - Err
    - Ok
    - object_identifiers_are_same
    - SpdmResult::len
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_extensions_spdm_oid(extensions: &[u8], is_leaf_cert: bool)
      -> SpdmResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:539,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:540,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:542,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:545,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:550,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:552,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:554,1
    - Dst: object_identifiers_are_same
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:557,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:576,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 82
    argCount: 2
    argNames:
    - data
    - target_oid
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 578
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 578
    functionName: find_target_object_identifier_in_single_extension
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_length
    - Err
    - Ok
    - '&[u8]::len'
    - object_identifiers_are_same
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn find_target_object_identifier_in_single_extension(data: &[u8],target_oid:
      &[u8],) -> SpdmResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:584,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:587,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:590,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:593,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:596,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:599,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:606,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:609,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:612,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:615,1
    - Dst: check_tag_is_num_oid
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:620,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:623,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:626,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:629,1
    - Dst: object_identifiers_are_same
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:633,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:640,1
    - Dst: check_tag_is_bool
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:644,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:644,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:647,1
    - Dst: check_tag_is_octet_string
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:652,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:655,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:658,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:661,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:665,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:668,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:671,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:674,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:678,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:681,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:684,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:687,1
    - Dst: check_tag_is_num_oid
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:690,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:693,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:696,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:699,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:702,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:703,1
    - Dst: object_identifiers_are_same
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:707,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:712,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:719,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 250
    argCount: 2
    argNames:
    - data
    - target_oid
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 720
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 720
    functionName: find_target_object_identifier_in_extensions
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_length
    - check_tag_is_num_oid
    - Err
    - check_tag_is_octet_string
    - Ok
    - '&[u8]::len'
    - check_tag_is_bool
    - check_tag_is_sequence
    - object_identifiers_are_same
    - SpdmResult::is_ok
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn find_target_object_identifier_in_extensions(data: &[u8], target_oid:
      &[u8]) -> SpdmResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:726,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:728,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:730,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:732,1
    - Dst: SpdmResult::is_empty
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:736,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:737,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:739,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:740,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 1
    argNames:
    - extn_sequences
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 748
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 748
    functionName: check_and_get_extn_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_length
    - Err
    - SpdmResult::is_empty
    - Ok
    - '&[u8]::len'
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_and_get_extn_id(extn_sequences: &[u8]) -> SpdmResult<(&[u8],
      usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:751,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:753,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:755,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:757,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:759,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 762
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 762
    functionName: check_and_skip_common_sequence
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 3
    functionsReached:
    - check_length
    - Ok
    - Err
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_and_skip_common_sequence(data: &[u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:765,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:767,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:769,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:771,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:773,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 776
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 776
    functionName: check_and_skip_common_tag
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 4
    functionsReached:
    - check_length
    - Ok
    - Err
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_and_skip_common_tag(data: &[u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:779,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:781,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:783,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:785,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 793
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 793
    functionName: check_and_get_common_tag
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_length
    - Ok
    - Err
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn check_and_get_common_tag(data: &[u8]) -> SpdmResult<(usize, &[u8])>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:797,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:798,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:799,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:800,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:801,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:802,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:803,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - base_asym_algo
    argTypes:
    - SpdmBaseAsymAlgo
    constantsTouched: []
    func_position:
      end: 807
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 807
    functionName: get_oid_by_base_asym_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 2
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn get_oid_by_base_asym_algo(base_asym_algo: SpdmBaseAsymAlgo) ->
      Option<&''static [u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:810,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:810,1
    - Dst: Vec::iter
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:813,1
    - Dst: Self::IntoIter::zip
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:813,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:813,1
    - Dst: cmp
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:814,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 821
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 821
    functionName: object_identifiers_are_same
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 5
    functionsReached:
    - cmp
    - Self::IntoIter::zip
    - SpdmResult::iter
    - Vec::len
    - SpdmResult::len
    - Vec::iter
    linkageType: ''
    returnType: bool
    signature: 'fn object_identifiers_are_same(a: &[u8], b: &[u8]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:827,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:830,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:836,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:838,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:841,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:845,1
    - Dst: check_version
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:849,1
    - Dst: check_and_skip_common_tag
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:853,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:857,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:859,1
    - Dst: check_object_identifier
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:862,1
    - Dst: check_and_get_common_tag
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:866,1
    - Dst: check_validity
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:870,1
    - Dst: check_and_get_common_tag
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:874,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:877,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:879,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 87
    argCount: 1
    argNames:
    - cert
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 881
      start: 824
    functionDepth: 4
    functionLinenumber: 824
    functionLinenumberEnd: 881
    functionName: is_root_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 2
    functionsReached:
    - check_length
    - check_object_identifier
    - check_version
    - Err
    - Ok
    - check_and_skip_common_tag
    - check_and_get_common_tag
    - check_validity
    - check_tag_is_sequence
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn is_root_certificate(cert: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:887,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:890,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:896,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:898,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:901,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:905,1
    - Dst: check_version
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:909,1
    - Dst: check_and_skip_common_tag
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:913,1
    - Dst: check_tag_is_sequence
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:917,1
    - Dst: check_length
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:919,1
    - Dst: check_object_identifier
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:922,1
    - Dst: check_name
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:926,1
    - Dst: check_validity
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:930,1
    - Dst: check_name
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:934,1
    - Dst: check_public_key_info
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:938,1
    - Dst: check_and_get_extensions
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:942,1
    - Dst: find_target_object_identifier_in_extensions
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:945,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:951,1
    - Dst: find_target_object_identifier_in_extensions
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:953,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:959,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:961,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 111
    argCount: 2
    argNames:
    - cert
    - is_alias_cert_model
    argTypes:
    - '&[u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 963
      start: 884
    functionDepth: 4
    functionLinenumber: 884
    functionLinenumberEnd: 963
    functionName: check_leaf_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 1
    functionsReached:
    - check_length
    - check_public_key_info
    - check_and_get_extensions
    - check_object_identifier
    - check_version
    - Err
    - find_target_object_identifier_in_extensions
    - Ok
    - check_and_skip_common_tag
    - check_validity
    - check_name
    - check_tag_is_sequence
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn check_leaf_certificate(cert: &[u8], is_alias_cert_model: bool)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 981
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 981
    functionName: tests::test_case0_object_identifiers_are_same
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_object_identifiers_are_same()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 993
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 993
    functionName: tests::test_case0_get_oid_by_base_asym_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_get_oid_by_base_asym_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1019
    functionName: tests::test_case0_check_and_skip_common_tag
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_and_skip_common_tag()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1057
    functionName: tests::test_case0_check_object_identifier
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_object_identifier()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: tests::test_case0_check_version
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_version()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1122
    functionName: tests::test_case0_check_length
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_length()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1143
    functionName: tests::test_case0_check_tag_is_sequence
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_tag_is_sequence()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1195
    functionName: tests::test_case0_check_signature_algorithm
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_signature_algorithm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1199,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1199,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1201,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1201,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1202,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1271
    functionName: tests::test_case0_check_tbs_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_tbs_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1275,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1275,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1277,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1296
    functionName: tests::test_case1_check_tbs_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_case1_check_tbs_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1300,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1300,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1302,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1302,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1303,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1328
    functionName: tests::test_case0_check_cert_format
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_cert_format()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1332,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1332,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1334,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1334,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1336,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1336,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1338,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1338,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1340,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1373
    functionName: tests::test_case0_check_cert_chain_format
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_cert_chain_format()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1377,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1377,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1379,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1379,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1381,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1381,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1382,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1382,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1384,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1396
    functionName: tests::test_case0_is_root_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_case0_is_root_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1420
    functionName: tests::test_case0_get_key_usage_value
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_get_key_usage_value()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1424,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1424,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1427,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1427,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1430,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1474
    functionName: tests::test_case1_get_key_usage_value
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_case1_get_key_usage_value()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1478,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1478,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1480,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1480,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1482,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1490
    functionName: tests::test_case0_check_extensions_spdm_oid
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_extensions_spdm_oid()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1521
    functionName: tests::test_case0_check_and_get_extn_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_and_get_extn_id()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1566
    functionName: tests::test_case0_find_target_object_identifiers
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_find_target_object_identifiers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1570,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1570,1
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1572,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1569
    functionDepth: 0
    functionLinenumber: 1569
    functionLinenumberEnd: 1583
    functionName: tests::test_case0_check_leaf_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_case0_check_leaf_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1589
    functionName: tests::test_check_length_short_form
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_check_length_short_form()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1595
    functionName: tests::test_check_length_short_form_large_than_128
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_check_length_short_form_large_than_128()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1612
    functionName: tests::test_check_length_long_form
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_check_length_long_form()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1615
    functionDepth: 0
    functionLinenumber: 1615
    functionLinenumberEnd: 1618
    functionName: tests::test_check_length_long_form_smaller_than_128
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_check_length_long_form_smaller_than_128()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1621
    functionDepth: 0
    functionLinenumber: 1621
    functionLinenumberEnd: 1628
    functionName: tests::test_check_length_overflow_the_length_of_k_octets_bytes_is_less_than_k
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_check_length_overflow_the_length_of_k_octets_bytes_is_less_than_k()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1632,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1632,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs:1634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1631
    functionDepth: 2
    functionLinenumber: 1631
    functionLinenumberEnd: 1646
    functionName: tests::test_check_cert_format_large_length
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Option::expect
    - clone
    linkageType: ''
    returnType: void
    signature: fn test_check_cert_format_large_length()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::with_capacity
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: BytesMutStrubbed::with_capacity
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - BytesMut::with_capacity
    linkageType: ''
    returnType: BytesMutStrubbed
    signature: 'pub fn with_capacity(capacity: usize) -> BytesMutStrubbed'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: BytesMutStrubbed::new
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 1
    functionsReached:
    - BytesMut::new
    linkageType: ''
    returnType: BytesMutStrubbed
    signature: pub fn new() -> BytesMutStrubbed
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: BytesMutStrubbed::len
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: BytesMutStrubbed::is_empty
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - is_empty
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: capacity
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: BytesMutStrubbed::capacity
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - capacity
    linkageType: ''
    returnType: usize
    signature: pub fn capacity(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - extend
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: BytesMutStrubbed::extend_from_slice
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - extend_from_slice
    linkageType: ''
    returnType: void
    signature: 'pub fn extend_from_slice(&mut self, extend: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - additional
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: BytesMutStrubbed::reserve
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - reserve
    linkageType: ''
    returnType: void
    signature: 'pub fn reserve(&mut self, additional: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - new_len
    - value
    argTypes:
    - usize
    - u8
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: BytesMutStrubbed::resize
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: 'pub fn resize(&mut self, new_len: usize, value: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: BytesMutStrubbed::clear
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: pub fn clear(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: BytesMutStrubbed::truncate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - truncate
    linkageType: ''
    returnType: void
    signature: 'pub fn truncate(&mut self, len: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::zeroed
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: BytesMutStrubbed::zeroed
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - BytesMut::zeroed
    linkageType: ''
    returnType: BytesMutStrubbed
    signature: 'pub fn zeroed(len: usize) -> BytesMutStrubbed'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_u8
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: BytesMutStrubbed::put_u8
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - put_u8
    linkageType: ''
    returnType: void
    signature: 'pub fn put_u8(&mut self, n: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zeroize
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: BytesMutStrubbed::drop
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - zeroize
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remaining
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: BytesMutStrubbed::remaining
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - remaining
    linkageType: ''
    returnType: usize
    signature: fn remaining(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chunk
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: BytesMutStrubbed::chunk
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - chunk
    linkageType: ''
    returnType: '&[u8]'
    signature: fn chunk(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: advance
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cnt
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: BytesMutStrubbed::advance
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - advance
    linkageType: ''
    returnType: void
    signature: 'fn advance(&mut self, cnt: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_to_bytes
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: BytesMutStrubbed::copy_to_bytes
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - copy_to_bytes
    linkageType: ''
    returnType: Bytes
    signature: 'fn copy_to_bytes(&mut self, len: usize) -> Bytes'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: BytesMutStrubbed::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 1
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: deref
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: BytesMutStrubbed::deref
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - deref
    linkageType: ''
    returnType: '&[u8]'
    signature: fn deref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: BytesMutStrubbed::as_mut
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - as_mut
    linkageType: ''
    returnType: '&mut [u8]'
    signature: fn as_mut(&mut self) -> &mut [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: BytesMutStrubbed::deref_mut
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - deref_mut
    linkageType: ''
    returnType: '&mut [u8]'
    signature: fn deref_mut(&mut self) -> &mut [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::from
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - '&''a str'
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: BytesMutStrubbed::from
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - BytesMut::from
    linkageType: ''
    returnType: BytesMutStrubbed
    signature: 'fn from(src: &''a str) -> BytesMutStrubbed'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eq
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&BytesMutStrubbed'
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: BytesMutStrubbed::eq
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - eq
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &BytesMutStrubbed) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:162,1
    - Dst: BytesMutStrubbed::cmp
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&BytesMutStrubbed'
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: BytesMutStrubbed::partial_cmp
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - BytesMutStrubbed::cmp
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn partial_cmp(&self, other: &BytesMutStrubbed) -> Option<cmp::Ordering>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&BytesMutStrubbed'
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: BytesMutStrubbed::cmp
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 1
    functionsReached:
    - cmp
    linkageType: ''
    returnType: cmp::Ordering
    signature: 'fn cmp(&self, other: &BytesMutStrubbed) -> cmp::Ordering'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: core::hash
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - '&mut H'
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: BytesMutStrubbed::hash
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - core::hash
    linkageType: ''
    returnType: void
    signature: 'fn hash<H>(&self, state: &mut H)whereH: hash::Hasher,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: BytesMutStrubbed::borrow
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - borrow
    linkageType: ''
    returnType: '&[u8]'
    signature: fn borrow(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow_mut
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: BytesMutStrubbed::borrow_mut
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - borrow_mut
    linkageType: ''
    returnType: '&mut [u8]'
    signature: fn borrow_mut(&mut self) -> &mut [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: BytesMutStrubbed::clone
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 3
    functionsReached:
    - clone
    linkageType: ''
    returnType: BytesMutStrubbed
    signature: fn clone(&self) -> BytesMutStrubbed
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IntoIter::new
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: BytesMutStrubbed::into_iter
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - IntoIter::new
    linkageType: ''
    returnType: Self::IntoIter
    signature: fn into_iter(self) -> Self::IntoIter
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''a BytesMutStrubbed::as_ref'
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:217,1
    - Dst: '&[u8]::iter'
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: '&''a BytesMutStrubbed::into_iter'
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - '&''a BytesMutStrubbed::as_ref'
    - '&[u8]::iter'
    linkageType: ''
    returnType: Self::IntoIter
    signature: fn into_iter(self) -> Self::IntoIter
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extend
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iter
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: BytesMutStrubbed::extend
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - extend
    linkageType: ''
    returnType: void
    signature: 'fn extend<T>(&mut self, iter: T)whereT: IntoIterator<Item = Bytes>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::from_iter
      Src: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - into_iter
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: BytesMutStrubbed::from_iter
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
    functionUses: 0
    functionsReached:
    - BytesMut::from_iter
    linkageType: ''
    returnType: Self
    signature: 'fn from_iter<T: IntoIterator<Item = &''a u8>>(into_iter: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:63,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmHash
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: hash::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 1
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmHash) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:67,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:68,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - base_hash_algo
    - data
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 9
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: hash::hash_all
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 28
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn hash_all(base_hash_algo: SpdmBaseHashAlgo, data: &[u8]) ->
      Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hash_ctx_dup
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:83,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: hash::SpdmHashCtx::clone
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 0
    functionsReached:
    - hash_ctx_dup
    - Option::expect
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hash_ctx_finalize
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:90,1
    - Dst: self::hash::SpdmHashCtx
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 10
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: hash::SpdmHashCtx::drop
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 0
    functionsReached:
    - hash_ctx_finalize
    - self::hash::SpdmHashCtx
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut codec::Writer'
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: hash::SpdmHashCtx::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut codec::Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:101,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:102,1
    - Dst: self::hash::SpdmHashCtx
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut codec::Reader'
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: hash::SpdmHashCtx::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 0
    functionsReached:
    - u64::read
    - self::hash::SpdmHashCtx
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut codec::Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:107,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:108,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:107,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:111,1
    - Dst: self::hash::SpdmHashCtx
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - base_hash_algo
    argTypes:
    - SpdmBaseHashAlgo
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 9
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: hash::hash_ctx_init
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 17
    functionsReached:
    - try_get_or_init
    - Some
    - clone
    - self::hash::SpdmHashCtx
    - ok
    linkageType: ''
    returnType: Option
    signature: 'pub fn hash_ctx_init(base_hash_algo: SpdmBaseHashAlgo) -> Option<SpdmHashCtx>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:117,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:118,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - '&SpdmHashCtx'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: hash::hash_ctx_update
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 7
    functionsReached:
    - try_get_or_init
    - clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn hash_ctx_update(ctx: &SpdmHashCtx, data: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:126,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:127,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SpdmHashCtx
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 9
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: hash::hash_ctx_finalize
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 4
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn hash_ctx_finalize(mut ctx: SpdmHashCtx) -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:133,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:134,1
    - Dst: expect
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:133,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:137,1
    - Dst: self::hash::SpdmHashCtx
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - '&SpdmHashCtx'
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: hash::hash_ctx_dup
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 0
    functionsReached:
    - expect
    - Some
    - clone
    - self::hash::SpdmHashCtx
    - try_get_or_init
    linkageType: ''
    returnType: Option
    signature: 'pub fn hash_ctx_dup(ctx: &SpdmHashCtx) -> Option<SpdmHashCtx>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:168,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmHmac
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: hmac::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 16
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmHmac) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:176,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:177,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - base_hash_algo
    - key
    - data
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 180
      start: 171
    functionDepth: 9
    functionLinenumber: 171
    functionLinenumberEnd: 180
    functionName: hmac::hmac
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 3
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn hmac(base_hash_algo: SpdmBaseHashAlgo,key: &[u8],data: &[u8],)
      -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:188,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:189,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - base_hash_algo
    - key
    - data
    - hmac
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    - '&[u8]'
    - '&SpdmDigestStruct'
    constantsTouched: []
    func_position:
      end: 192
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 192
    functionName: hmac::hmac_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 2
    functionsReached:
    - try_get_or_init
    - clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn hmac_verify(base_hash_algo: SpdmBaseHashAlgo,key: &[u8],data:
      &[u8],hmac: &SpdmDigestStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:208,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmAsymVerify
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: asym_verify::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 6
    functionsReached:
    - try_get_or_init
    - is_ok
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmAsymVerify) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:218,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:219,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - base_hash_algo
    - base_asym_algo
    - der
    - data
    - signature
    argTypes:
    - SpdmBaseHashAlgo
    - SpdmBaseAsymAlgo
    - SpdmDer
    - '&[u8]'
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 222
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 222
    functionName: asym_verify::verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 2
    functionsReached:
    - try_get_or_init
    - clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn verify(base_hash_algo: SpdmBaseHashAlgo,base_asym_algo: SpdmBaseAsymAlgo,der:
      SpdmDer,data: &[u8],signature: &SpdmSignatureStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:238,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmPqcAsymVerify
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: pqc_asym_verify::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 6
    functionsReached:
    - try_get_or_init
    - is_ok
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmPqcAsymVerify) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:248,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:249,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - base_hash_algo
    - pqc_asym_algo
    - public_cert_der
    - data
    - signature
    argTypes:
    - SpdmBaseHashAlgo
    - SpdmPqcAsymAlgo
    - '&[u8]'
    - '&[u8]'
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 258
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 258
    functionName: pqc_asym_verify::verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 1
    functionsReached:
    - try_get_or_init
    - clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn verify(base_hash_algo: SpdmBaseHashAlgo,pqc_asym_algo: SpdmPqcAsymAlgo,public_cert_der:
      &[u8],data: &[u8],signature: &SpdmSignatureStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:276,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmDhe
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: dhe::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 1
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmDhe) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:282,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:283,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - dhe_algo
    argTypes:
    - SpdmDheAlgo
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 9
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: dhe::generate_key_pair
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 3
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn generate_key_pair(dhe_algo: SpdmDheAlgo,) -> Option<(SpdmDheExchangeStruct,
      Box<dyn SpdmDheKeyExchange + Send>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:304,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmKemDecap
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: kem_decap::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 1
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmKemDecap) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:313,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:314,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - kem_algo
    argTypes:
    - SpdmKemAlgo
    constantsTouched: []
    func_position:
      end: 317
      start: 307
    functionDepth: 9
    functionLinenumber: 307
    functionLinenumberEnd: 317
    functionName: kem_decap::generate_key_pair
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn generate_key_pair(kem_algo: SpdmKemAlgo,) -> Option<(SpdmKemEncapKeyStruct,Box<dyn
      SpdmKemEncapKeyExchange + Send>,)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:335,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmKemEncap
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: kem_encap::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 1
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmKemEncap) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:342,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:343,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - kem_algo
    - kem_encap_key
    argTypes:
    - SpdmKemAlgo
    - '&SpdmKemEncapKeyStruct'
    constantsTouched: []
    func_position:
      end: 346
      start: 338
    functionDepth: 9
    functionLinenumber: 338
    functionLinenumberEnd: 346
    functionName: kem_encap::new_key
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn new_key(kem_algo: SpdmKemAlgo,kem_encap_key: &SpdmKemEncapKeyStruct,)
      -> Option<Box<dyn SpdmKemCipherTextExchange + Send>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:361,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmCertOperation
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: cert_operation::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 5
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmCertOperation) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:365,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:366,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - cert_chain
    - index
    argTypes:
    - '&[u8]'
    - isize
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: cert_operation::get_cert_from_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 5
    functionsReached:
    - try_get_or_init
    - clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn get_cert_from_cert_chain(cert_chain: &[u8], index: isize) ->
      SpdmResult<(usize, usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:372,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:373,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - cert_chain
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: cert_operation::verify_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 2
    functionsReached:
    - try_get_or_init
    - clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn verify_cert_chain(cert_chain: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:394,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmHkdf
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: hkdf::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 7
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmHkdf) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:402,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:403,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - hash_algo
    - salt
    - ikm
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    - '&SpdmHkdfInputKeyingMaterial'
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 9
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: hkdf::hkdf_extract
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 4
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn hkdf_extract(hash_algo: SpdmBaseHashAlgo,salt: &[u8],ikm: &SpdmHkdfInputKeyingMaterial,)
      -> Option<SpdmHkdfPseudoRandomKey>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:414,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:415,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - hash_algo
    - prk
    - info
    - out_size
    argTypes:
    - SpdmBaseHashAlgo
    - '&SpdmHkdfPseudoRandomKey'
    - '&[u8]'
    - u16
    constantsTouched: []
    func_position:
      end: 418
      start: 408
    functionDepth: 9
    functionLinenumber: 408
    functionLinenumberEnd: 418
    functionName: hkdf::hkdf_expand
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 11
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn hkdf_expand(hash_algo: SpdmBaseHashAlgo,prk: &SpdmHkdfPseudoRandomKey,info:
      &[u8],out_size: u16,) -> Option<SpdmHkdfOutputKeyingMaterial>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:434,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmAead
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: aead::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 13
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmAead) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:446,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:447,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - aead_algo
    - key
    - iv
    - aad
    - plain_text
    - tag
    - cipher_text
    argTypes:
    - SpdmAeadAlgo
    - '&SpdmAeadKeyStruct'
    - '&SpdmAeadIvStruct'
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 450
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 450
    functionName: aead::encrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 6
    functionsReached:
    - try_get_or_init
    - clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encrypt(aead_algo: SpdmAeadAlgo,key: &SpdmAeadKeyStruct,iv:
      &SpdmAeadIvStruct,aad: &[u8],plain_text: &[u8],tag: &mut [u8],cipher_text: &mut
      [u8],) -> SpdmResult<(usize, usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:461,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:462,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - aead_algo
    - key
    - iv
    - aad
    - cipher_text
    - tag
    - plain_text
    argTypes:
    - SpdmAeadAlgo
    - '&SpdmAeadKeyStruct'
    - '&SpdmAeadIvStruct'
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 465
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 465
    functionName: aead::decrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 6
    functionsReached:
    - try_get_or_init
    - clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn decrypt(aead_algo: SpdmAeadAlgo,key: &SpdmAeadKeyStruct,iv:
      &SpdmAeadIvStruct,aad: &[u8],cipher_text: &[u8],tag: &[u8],plain_text: &mut
      [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:480,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmCryptoRandom
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: rand::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 7
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmCryptoRandom) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:484,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:485,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: rand::get_random
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 10
    functionsReached:
    - try_get_or_init
    - clone
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn get_random(data: &mut [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:507,1
    - Dst: self::pqc_asym_verify::verify
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:509,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:516,1
    - Dst: self::asym_verify::verify
      Src: /src/spdm-rs/spdmlib/src/crypto/mod.rs:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - base_hash_algo
    - base_asym_algo
    - pqc_asym_algo
    - der
    - data
    - signature
    argTypes:
    - SpdmBaseHashAlgo
    - SpdmBaseAsymAlgo
    - SpdmPqcAsymAlgo
    - SpdmDer
    - '&[u8]'
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 521
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 521
    functionName: spdm_asym_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/mod.rs
    functionUses: 6
    functionsReached:
    - self::asym_verify::verify
    - self::pqc_asym_verify::verify
    - Err
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn spdm_asym_verify(base_hash_algo: SpdmBaseHashAlgo,base_asym_algo:
      SpdmBaseAsymAlgo,pqc_asym_algo: SpdmPqcAsymAlgo,der: SpdmDer,data: &[u8],signature:
      &SpdmSignatureStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hash::hash_ctx_init
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:26,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:26,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:27,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:27,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:28,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:28,1
    - Dst: hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:29,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:29,1
    - Dst: hash::hash_ctx_finalize
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:30,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:30,1
    - Dst: hash::hash_ctx_init
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:36,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:36,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:37,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:37,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:38,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:38,1
    - Dst: hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:39,1
    - Dst: as_slice
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:39,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:39,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:40,1
    - Dst: hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:41,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:41,1
    - Dst: hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:42,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:42,1
    - Dst: hash::hash_ctx_finalize
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:43,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:43,1
    - Dst: hash::hash_ctx_finalize
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:44,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 22
    functionDepth: 10
    functionLinenumber: 22
    functionLinenumberEnd: 47
    functionName: test_case_hash
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs
    functionUses: 0
    functionsReached:
    - hash::hash_ctx_init
    - as_slice
    - Result::unwrap
    - hash::hash_ctx_update
    - from_hex
    - clone
    - Option::unwrap
    - SpdmResult::unwrap
    - hash::hash_ctx_finalize
    linkageType: ''
    returnType: void
    signature: fn test_case_hash()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_hex_to_aead_key
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:67,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:67,1
    - Dst: from_hex_to_aead_iv
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:69,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:69,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:70,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:70,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:71,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:71,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:72,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:72,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:73,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:73,1
    - Dst: super::aead::encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:78,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:78,1
    - Dst: super::aead::decrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:83,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 86
    functionName: test_case_gcm256
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs
    functionUses: 0
    functionsReached:
    - from_hex_to_aead_iv
    - super::aead::decrypt
    - from_hex
    - Result::unwrap
    - from_hex_to_aead_key
    - super::aead::encrypt
    - SpdmResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case_gcm256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_hex_to_aead_key
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:106,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:106,1
    - Dst: from_hex_to_aead_iv
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:107,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:107,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:108,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:108,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:109,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:109,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:110,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:110,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:111,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:111,1
    - Dst: super::aead::encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:116,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:116,1
    - Dst: super::aead::decrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:121,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 124
    functionName: test_case_gcm128
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs
    functionUses: 0
    functionsReached:
    - from_hex_to_aead_iv
    - super::aead::decrypt
    - from_hex
    - Result::unwrap
    - from_hex_to_aead_key
    - super::aead::encrypt
    - SpdmResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case_gcm128()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_hex_to_aead_key
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:137,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:137,1
    - Dst: from_hex_to_aead_iv
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:139,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:139,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:141,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:141,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:143,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:143,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:144,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:144,1
    - Dst: super::aead::encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:149,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:149,1
    - Dst: super::aead::decrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:154,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 157
    functionName: test_case_chacha20_poly1305
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs
    functionUses: 0
    functionsReached:
    - from_hex_to_aead_iv
    - super::aead::decrypt
    - from_hex
    - Result::unwrap
    - from_hex_to_aead_key
    - super::aead::encrypt
    - SpdmResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case_chacha20_poly1305()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:176,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:176,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:177,1
    - Dst: String::from
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:177,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:183,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:184,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:186,1
    - Dst: chunks
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:186,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:186,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:187,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:188,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 1
    argNames:
    - hex_str
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: from_hex_to_aead_key
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs
    functionUses: 4
    functionsReached:
    - chunks
    - Err
    - from_hex_digit
    - Ok
    - '&str::len'
    - Box::new
    - String::from
    - enumerate
    - '&str::as_bytes'
    linkageType: ''
    returnType: Result
    signature: 'fn from_hex_to_aead_key(hex_str: &str) -> Result<SpdmAeadKeyStruct,
      String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:195,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:195,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:196,1
    - Dst: String::from
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:196,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:202,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:203,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:205,1
    - Dst: chunks
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:205,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:205,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:206,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:207,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 1
    argNames:
    - hex_str
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 211
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 211
    functionName: from_hex_to_aead_iv
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs
    functionUses: 4
    functionsReached:
    - chunks
    - Err
    - from_hex_digit
    - Ok
    - '&str::len'
    - Box::new
    - String::from
    - enumerate
    - '&str::as_bytes'
    linkageType: ''
    returnType: Result
    signature: 'fn from_hex_to_aead_iv(hex_str: &str) -> Result<SpdmAeadIvStruct,
      String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsa_sig_ver::get_cavs_vectors
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:154,1
    - Dst: '[CavsVector::iter'
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:155,1
    - Dst: Result::verify
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:166,1
    - Dst: Option::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:167,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:171,1
    - Dst: ecdsa_p256_sha256_sig_ver::get_cavs_vectors
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:180,1
    - Dst: '[CavsVector::iter'
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:181,1
    - Dst: ecdsa_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:182,1
    - Dst: to_vec
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:185,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:195,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:199,1
    - Dst: ecdsa_p256_sha384_sig_ver::get_cavs_vectors
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:206,1
    - Dst: '[CavsVector::iter'
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:207,1
    - Dst: ecdsa_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:208,1
    - Dst: to_vec
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:211,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:221,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:225,1
    - Dst: ecdsa_p384_sha256_sig_ver::get_cavs_vectors
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:232,1
    - Dst: '[CavsVector::iter'
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:233,1
    - Dst: ecdsa_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:234,1
    - Dst: to_vec
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:237,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:247,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:251,1
    - Dst: ecdsa_p384_sha384_sig_ver::get_cavs_vectors
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:258,1
    - Dst: '[CavsVector::iter'
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:259,1
    - Dst: ecdsa_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:260,1
    - Dst: to_vec
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:263,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:273,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:277,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs:282,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 165
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 283
    functionName: run_self_tests
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs
    functionUses: 0
    functionsReached:
    - rsa_sig_ver::get_cavs_vectors
    - Option::is_ok
    - ecdsa_p256_sha384_sig_ver::get_cavs_vectors
    - Result::verify
    - ecdsa_p256_sha256_sig_ver::get_cavs_vectors
    - Err
    - ecdsa_p384_sha256_sig_ver::get_cavs_vectors
    - Ok
    - ecdsa_p384_sha384_sig_ver::get_cavs_vectors
    - to_vec
    - '[CavsVector::iter'
    - ecdsa_verify
    linkageType: ''
    returnType: SpdmResult
    signature: pub fn run_self_tests() -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcm_encrypt_ext_iv256::get_cavs_vectors
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:25,1
    - Dst: '[CavsVector::iter'
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:27,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:29,1
    - Dst: get_key_size
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:29,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:30,1
    - Dst: get_iv_size
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:30,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:31,1
    - Dst: get_tag_size
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:31,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:33,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:37,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:38,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:40,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:45,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:46,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:48,1
    - Dst: super::aead::encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:60,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:60,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:63,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:66,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:70,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 71
    functionName: encrypt_self_test
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - get_tag_size
    - Ok
    - super::aead::encrypt
    - get_key_size
    - Box::new
    - SpdmResult::unwrap
    - get_iv_size
    - gcm_encrypt_ext_iv256::get_cavs_vectors
    - '[CavsVector::iter'
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: fn encrypt_self_test() -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcm_decrypt256::get_cavs_vectors
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:75,1
    - Dst: '[CavsVector::iter'
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:77,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:79,1
    - Dst: get_key_size
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:79,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:80,1
    - Dst: get_iv_size
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:80,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:81,1
    - Dst: get_tag_size
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:81,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:83,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:87,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:88,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:90,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:95,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:96,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:98,1
    - Dst: super::aead::decrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:108,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:108,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:110,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:111,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:114,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 119
    functionName: decrypt_self_test
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::len
    - Err
    - super::aead::decrypt
    - get_tag_size
    - gcm_decrypt256::get_cavs_vectors
    - Ok
    - get_key_size
    - Box::new
    - SpdmResult::unwrap
    - get_iv_size
    - '[CavsVector::iter'
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: fn decrypt_self_test() -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 813
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6955
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 6955
    functionName: get_cavs_vectors
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/rsa_sig_ver.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: '[CavsVector'
    signature: pub fn get_cavs_vectors() -> [CavsVector<'static>; 90]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 5
    argNames:
    - _base_hash_algo
    - _pqc_asym_algo
    - _public_cert_der
    - _data
    - _signature
    argTypes:
    - SpdmBaseHashAlgo
    - SpdmPqcAsymAlgo
    - '&[u8]'
    - '&[u8]'
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: pqc_asym_verify
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/pqc_asym_verify_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn pqc_asym_verify(_base_hash_algo: SpdmBaseHashAlgo,_pqc_asym_algo:
      SpdmPqcAsymAlgo,_public_cert_der: &[u8],_data: &[u8],_signature: &SpdmSignatureStruct,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:24,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:25,1
    - Dst: <mbedtls::hash::Type as Into<Option<hash::MdInfo>>>::into
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:28,1
    - Dst: SpdmHkdfPseudoRandomKey::default
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:30,1
    - Dst: hkdf_extract
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:32,1
    - Dst: into
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:33,1
    - Dst: '&[u8]::as_ptr'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:34,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:35,1
    - Dst: '&SpdmHkdfInputKeyingMaterial::as_ref'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:36,1
    - Dst: '&[u8]::as_ptr'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:36,1
    - Dst: '&SpdmHkdfInputKeyingMaterial::as_ref'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:37,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:37,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:38,1
    - Dst: size
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:43,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 3
    argNames:
    - hash_algo
    - salt
    - ikm
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    - '&SpdmHkdfInputKeyingMaterial'
    constantsTouched: []
    func_position:
      end: 46
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 46
    functionName: hkdf_extract
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs
    functionUses: 5
    functionsReached:
    - <mbedtls::hash::Type as Into<Option<hash::MdInfo>>>::into
    - into
    - Some
    - hkdf_extract
    - '&SpdmHkdfInputKeyingMaterial::as_ref'
    - '&[u8]::len'
    - size
    - as_mut_ptr
    - SpdmHkdfPseudoRandomKey::default
    - '&[u8]::as_ptr'
    linkageType: ''
    returnType: Option
    signature: 'fn hkdf_extract(hash_algo: SpdmBaseHashAlgo,salt: &[u8],ikm: &SpdmHkdfInputKeyingMaterial,)
      -> Option<SpdmHkdfPseudoRandomKey>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:56,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:57,1
    - Dst: <mbedtls::hash::Type as Into<Option<hash::MdInfo>>>::into
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:60,1
    - Dst: SpdmHkdfOutputKeyingMaterial::default
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:61,1
    - Dst: hkdf_expand
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:63,1
    - Dst: into
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:64,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:65,1
    - Dst: '&[u8]::as_ptr'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:65,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:66,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:66,1
    - Dst: (SpdmConfigInfo, SpdmProvisionInfo)::as_ptr
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:67,1
    - Dst: (SpdmConfigInfo, SpdmProvisionInfo)::len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:68,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:69,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 4
    argNames:
    - hash_algo
    - prk
    - info
    - out_size
    argTypes:
    - SpdmBaseHashAlgo
    - '&SpdmHkdfPseudoRandomKey'
    - '&[u8]'
    - u16
    constantsTouched: []
    func_position:
      end: 78
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 78
    functionName: hkdf_expand
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs
    functionUses: 14
    functionsReached:
    - <mbedtls::hash::Type as Into<Option<hash::MdInfo>>>::into
    - Option::as_ref
    - into
    - Some
    - (SpdmConfigInfo, SpdmProvisionInfo)::as_ptr
    - '&[u8]::len'
    - hkdf_expand
    - (SpdmConfigInfo, SpdmProvisionInfo)::len
    - as_mut_ptr
    - '&[u8]::as_ptr'
    - SpdmHkdfOutputKeyingMaterial::default
    linkageType: ''
    returnType: Option
    signature: 'fn hkdf_expand(hash_algo: SpdmBaseHashAlgo,prk: &SpdmHkdfPseudoRandomKey,info:
      &[u8],out_size: u16,) -> Option<SpdmHkdfOutputKeyingMaterial>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:17,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:18,1
    - Dst: hash::Hmac::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:21,1
    - Dst: Self::ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:21,1
    - Dst: update
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:22,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:22,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:23,1
    - Dst: finish
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:24,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:24,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:24,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:26,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - base_hash_algo
    - key
    - data
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: hmac
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs
    functionUses: 8
    functionsReached:
    - SpdmDigestStruct::default
    - Some
    - hash::Hmac::new
    - update
    - as_mut
    - Self::ok
    - finish
    - ok
    linkageType: ''
    returnType: Option
    signature: 'fn hmac(base_hash_algo: SpdmBaseHashAlgo, key: &[u8], data: &[u8])
      -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hmac
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:35,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:35,1
    - Dst: Digest::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:36,1
    - Dst: '&SpdmDigestStruct::as_ref'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:36,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:37,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - base_hash_algo
    - key
    - data
    - message_digest
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    - '&[u8]'
    - '&SpdmDigestStruct'
    constantsTouched: []
    func_position:
      end: 41
      start: 29
    functionDepth: 10
    functionLinenumber: 29
    functionLinenumberEnd: 41
    functionName: hmac_verify
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs
    functionUses: 6
    functionsReached:
    - Err
    - Digest::as_ref
    - Option::ok_or
    - Ok
    - hmac
    - '&SpdmDigestStruct::as_ref'
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn hmac_verify(base_hash_algo: SpdmBaseHashAlgo,key: &[u8],data: &[u8],message_digest:
      &SpdmDigestStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDheKeyExchangeP256::generate_key_pair
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:26,1
    - Dst: SpdmDheKeyExchangeP384::generate_key_pair
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dhe_algo
    argTypes:
    - SpdmDheAlgo
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 10
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: generate_key_pair
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
    functionUses: 6
    functionsReached:
    - SpdmDheKeyExchangeP384::generate_key_pair
    - SpdmDheKeyExchangeP256::generate_key_pair
    linkageType: ''
    returnType: Option
    signature: 'fn generate_key_pair(dhe_algo: SpdmDheAlgo,) -> Option<(SpdmDheExchangeStruct,
      Box<dyn SpdmDheKeyExchange + Send>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:92,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:94,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:95,1
    - Dst: hash::Md::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:99,1
    - Dst: Self::ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:99,1
    - Dst: update
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:100,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:100,1
    - Dst: finish
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:101,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:101,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:101,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - base_hash_algo
    - data
    argTypes:
    - SpdmBaseHashAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 9
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: hash_all
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs
    functionUses: 32
    functionsReached:
    - SpdmDigestStruct::default
    - Some
    - hash::Md::new
    - update
    - as_mut
    - Self::ok
    - finish
    - ok
    linkageType: ''
    returnType: Option
    signature: 'fn hash_all(base_hash_algo: SpdmBaseHashAlgo, data: &[u8]) -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:47,1
    - Dst: usize::get_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:48,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:48,1
    - Dst: update
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:49,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - handle
    - data
    argTypes:
    - usize
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 11
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: hash_ext::hash_ctx_update
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs
    functionUses: 0
    functionsReached:
    - ok_or
    - update
    - lock
    - usize::get_mut
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub(crate) fn hash_ctx_update(handle: usize, data: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:53,1
    - Dst: remove
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:53,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:54,1
    - Dst: finish
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:55,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:55,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:55,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - handle
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 14
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: hash_ext::hash_ctx_finalize
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs
    functionUses: 0
    functionsReached:
    - SpdmDigestStruct::default
    - Some
    - lock
    - ok
    - as_mut
    - finish
    - remove
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn hash_ctx_finalize(handle: usize) -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:65,1
    - Dst: usize::get
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:66,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:67,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:69,1
    - Dst: insert_to_table
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - handle
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 13
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: hash_ext::hash_ctx_dup
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs
    functionUses: 0
    functionsReached:
    - Some
    - insert_to_table
    - lock
    - clone
    - usize::get
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn hash_ctx_dup(handle: usize) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:36,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:37,1
    - Dst: hash::Md::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:41,1
    - Dst: Self::ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:41,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:42,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:43,1
    - Dst: insert_to_table
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - base_hash_algo
    argTypes:
    - SpdmBaseHashAlgo
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 9
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: hash_ext::hash_ctx_init
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs
    functionUses: 0
    functionsReached:
    - Some
    - insert_to_table
    - hash::Md::new
    - Self::ok
    - Box::new
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn hash_ctx_init(base_hash_algo: SpdmBaseHashAlgo) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:19,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:21,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:21,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:22,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:25,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:30,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:34,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:39,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 72
    argCount: 2
    argNames:
    - cert_chain
    - index
    argTypes:
    - '&[u8]'
    - isize
    constantsTouched: []
    func_position:
      end: 43
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 43
    functionName: get_cert_from_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs
    functionUses: 11
    functionsReached:
    - Ok
    - SpdmResult::len
    - Err
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn get_cert_from_cert_chain(cert_chain: &[u8], index: isize) -> SpdmResult<(usize,
      usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SliceReader::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:46,1
    - Dst: Self::map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:46,1
    - Dst: mbedtls::alloc::List::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:47,1
    - Dst: mbedtls::alloc::List::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:48,1
    - Dst: Result::tlv_bytes
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:51,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:52,1
    - Dst: Certificate::from_der
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:55,1
    - Dst: Features::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:55,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:55,1
    - Dst: Self::is_empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:56,1
    - Dst: Self::push
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:57,1
    - Dst: SpdmResult::push
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:59,1
    - Dst: SpdmResult::is_empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:62,1
    - Dst: Self::is_empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:62,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:63,1
    - Dst: SpdmResult::is_empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:65,1
    - Dst: SpdmResult::append
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:66,1
    - Dst: Self::clone
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:66,1
    - Dst: Certificate::verify
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:68,1
    - Dst: bool::map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:68,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 1
    argNames:
    - cert_chain
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 7
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: verify_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs
    functionUses: 3
    functionsReached:
    - SpdmResult::append
    - SpdmResult::push
    - Self::clone
    - Certificate::from_der
    - Err
    - Result::tlv_bytes
    - SpdmResult::is_empty
    - Self::is_empty
    - Self::map_err
    - Features::is_err
    - mbedtls::alloc::List::new
    - Result::map_err
    - SliceReader::new
    - Self::push
    - bool::map_err
    - Certificate::verify
    - Features::unwrap
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn verify_cert_chain(cert_chain: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::get_sig_size
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:21,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:22,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:27,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:31,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:32,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:33,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:42,1
    - Dst: ecc_signature_bin_to_der
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:51,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:51,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:59,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:61,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:69,1
    - Dst: Certificate::from_der
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:72,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:72,1
    - Dst: public_key_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:73,1
    - Dst: verify
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:73,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:75,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:73,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 64
    argCount: 5
    argNames:
    - base_hash_algo
    - base_asym_algo
    - der
    - data
    - signature
    argTypes:
    - SpdmBaseHashAlgo
    - SpdmBaseAsymAlgo
    - SpdmDer
    - '&[u8]'
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 77
      start: 14
    functionDepth: 7
    functionLinenumber: 14
    functionLinenumberEnd: 77
    functionName: asym_verify
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs
    functionUses: 10
    functionsReached:
    - Option::get_sig_size
    - as_ref
    - Err
    - unwrap
    - Certificate::from_der
    - public_key_mut
    - verify
    - Ok
    - Result::map_err
    - SpdmResult::as_ref
    - ecc_signature_bin_to_der
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn asym_verify(base_hash_algo: SpdmBaseHashAlgo,base_asym_algo: SpdmBaseAsymAlgo,der:
      SpdmDer,data: &[u8],signature: &SpdmSignatureStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:32,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:32,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:34,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:36,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:37,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:40,1
    - Dst: Vec::<u8>::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:42,1
    - Dst: Self::extend_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:43,1
    - Dst: Self::extend_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:44,1
    - Dst: Cipher::<Encryption, Authenticated, Fresh>::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:47,1
    - Dst: Self::map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:47,1
    - Dst: set_key_iv
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:53,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:54,1
    - Dst: Result::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:54,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:53,1
    - Dst: encrypt_auth
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:57,1
    - Dst: Self::as_mut_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:61,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:57,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:66,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:67,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:69,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:70,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:72,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 91
    argCount: 7
    argNames:
    - aead_algo
    - key
    - iv
    - aad
    - plain_text
    - tag
    - cipher_text
    argTypes:
    - SpdmAeadAlgo
    - '&SpdmAeadKeyStruct'
    - '&SpdmAeadIvStruct'
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 76
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 76
    functionName: encrypt
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs
    functionUses: 19
    functionsReached:
    - encrypt_auth
    - Option::as_ref
    - Vec::<u8>::new
    - set_key_iv
    - '&mut [u8]::len'
    - Err
    - Self::map_err
    - '&[u8]::len'
    - Self::as_mut_slice
    - copy_from_slice
    - Ok
    - Self::extend_from_slice
    - Result::as_ref
    - SpdmResult::len
    - map_err
    - Cipher::<Encryption, Authenticated, Fresh>::new
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn encrypt(aead_algo: SpdmAeadAlgo,key: &SpdmAeadKeyStruct,iv: &SpdmAeadIvStruct,aad:
      &[u8],plain_text: &[u8],tag: &mut [u8],cipher_text: &mut [u8],) -> SpdmResult<(usize,
      usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:87,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:87,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:89,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:91,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:92,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:95,1
    - Dst: Vec::<u8>::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:98,1
    - Dst: Self::extend_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:99,1
    - Dst: Self::extend_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:100,1
    - Dst: Cipher::<Decryption, Authenticated, _>::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:104,1
    - Dst: Self::map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:104,1
    - Dst: set_key_iv
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:110,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:111,1
    - Dst: Result::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:111,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:110,1
    - Dst: decrypt_auth
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:113,1
    - Dst: Self::as_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:116,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:113,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:121,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 61
    argCount: 7
    argNames:
    - aead_algo
    - key
    - iv
    - aad
    - cipher_text
    - tag
    - plain_text
    argTypes:
    - SpdmAeadAlgo
    - '&SpdmAeadKeyStruct'
    - '&SpdmAeadIvStruct'
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 125
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 125
    functionName: decrypt
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs
    functionUses: 9
    functionsReached:
    - Cipher::<Decryption, Authenticated, _>::new
    - Option::as_ref
    - Vec::<u8>::new
    - set_key_iv
    - decrypt_auth
    - Err
    - Self::map_err
    - '&[u8]::len'
    - Ok
    - Self::extend_from_slice
    - Self::as_slice
    - Result::as_ref
    - SpdmResult::len
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn decrypt(aead_algo: SpdmAeadAlgo,key: &SpdmAeadKeyStruct,iv: &SpdmAeadIvStruct,aad:
      &[u8],cipher_text: &[u8],tag: &[u8],plain_text: &mut [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _kem_algo
    argTypes:
    - SpdmKemAlgo
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: kem_generate_key_pair
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/kem_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn kem_generate_key_pair(_kem_algo: SpdmKemAlgo,) -> Option<(SpdmKemEncapKeyStruct,Box<dyn
      SpdmKemEncapKeyExchange + Send>,)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - _kem_algo
    - _kem_encap_key
    argTypes:
    - SpdmKemAlgo
    - '&SpdmKemEncapKeyStruct'
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: kem_new_key
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/kem_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn kem_new_key(_kem_algo: SpdmKemAlgo,_kem_encap_key: &SpdmKemEncapKeyStruct,)
      -> Option<Box<dyn SpdmKemCipherTextExchange + Send>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: SpdmCryptoHkdfKeyLen::new
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hkdf_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(len: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: SpdmCryptoHkdfKeyLen::len
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hkdf_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:91,1
    - Dst: hkdf_expand
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 105
    functionName: tests::test_case0_hkdf_expand
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs
    functionUses: 0
    functionsReached:
    - hkdf_expand
    - Box::new
    linkageType: ''
    returnType: void
    signature: fn test_case0_hkdf_expand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseHashAlgo::empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:110,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:113,1
    - Dst: hkdf_expand
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: tests::test_case1_hkdf_expand
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs
    functionUses: 0
    functionsReached:
    - hkdf_expand
    - SpdmBaseHashAlgo::empty
    - Box::new
    linkageType: ''
    returnType: void
    signature: fn test_case1_hkdf_expand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:64,1
    - Dst: hmac
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:67,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:67,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:67,1
    - Dst: hmac_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:68,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 10
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: tests::test_case0_hmac_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs
    functionUses: 0
    functionsReached:
    - Option::as_ref
    - hmac_verify
    - Option::unwrap
    - Box::new
    - hmac
    linkageType: ''
    returnType: void
    signature: fn test_case0_hmac_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:84,1
    - Dst: hmac
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:87,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:87,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:87,1
    - Dst: hmac_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:88,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 80
    functionDepth: 10
    functionLinenumber: 80
    functionLinenumberEnd: 98
    functionName: tests::test_case1_hmac_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs
    functionUses: 0
    functionsReached:
    - Option::as_ref
    - hmac_verify
    - Option::unwrap
    - Box::new
    - hmac
    linkageType: ''
    returnType: void
    signature: fn test_case1_hmac_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:105,1
    - Dst: hmac
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:108,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:108,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:108,1
    - Dst: hmac_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:110,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 101
    functionDepth: 10
    functionLinenumber: 101
    functionLinenumberEnd: 120
    functionName: tests::test_case2_hmac_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs
    functionUses: 0
    functionsReached:
    - Option::as_ref
    - hmac_verify
    - Option::unwrap
    - Box::new
    - hmac
    linkageType: ''
    returnType: void
    signature: fn test_case2_hmac_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:54,1
    - Dst: EcGroup::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:56,1
    - Dst: Self::ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:56,1
    - Dst: Vec::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:57,1
    - Dst: Option::push
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:58,1
    - Dst: Option::extend_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:59,1
    - Dst: Box<Self>::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:59,1
    - Dst: EcPoint::from_binary
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:60,1
    - Dst: Option::as_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:60,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:60,1
    - Dst: Pk::public_from_ec_components
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:61,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:61,1
    - Dst: agree
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:62,1
    - Dst: as_mut_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:64,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:62,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 2
    argNames:
    - peer_pub_key
    argTypes:
    - Box<Self>
    - '&SpdmDheExchangeStruct'
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 9
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: SpdmDheKeyExchangeP256::compute_final_key
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
    functionUses: 0
    functionsReached:
    - SpdmSharedSecretFinalKeyStruct::default
    - agree
    - Some
    - EcPoint::from_binary
    - Option::extend_from_slice
    - Option::as_slice
    - EcGroup::new
    - as_mut_slice
    - Self::ok
    - Box<Self>::as_ref
    - Pk::public_from_ec_components
    - ok
    - Option::push
    - Vec::new
    linkageType: ''
    returnType: Option
    signature: 'fn compute_final_key(mut self: Box<Self>,peer_pub_key: &SpdmDheExchangeStruct,)
      -> Option<SpdmSharedSecretFinalKeyStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDheExchangeStruct::default
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:36,1
    - Dst: EcGroup::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:38,1
    - Dst: Self::ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:38,1
    - Dst: Pk::generate_ec
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:39,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:39,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:39,1
    - Dst: ec_public
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:40,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:40,1
    - Dst: to_binary
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:40,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:40,1
    - Dst: as_mut_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:41,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:41,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:41,1
    - Dst: as_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:42,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:42,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:43,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:44,1
    - Dst: Self
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:44,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 9
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: SpdmDheKeyExchangeP256::generate_key_pair
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
    functionUses: 1
    functionsReached:
    - ec_public
    - Some
    - Pk::generate_ec
    - clone
    - SpdmDheExchangeStruct::default
    - copy_from_slice
    - as_slice
    - EcGroup::new
    - as_mut_slice
    - Self::ok
    - Box::new
    - Self
    - ok
    - to_binary
    - len
    linkageType: ''
    returnType: Option
    signature: fn generate_key_pair() -> Option<(SpdmDheExchangeStruct, Box<dyn SpdmDheKeyExchange
      + Send>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSharedSecretFinalKeyStruct::default
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:93,1
    - Dst: EcGroup::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:95,1
    - Dst: Self::ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:95,1
    - Dst: Vec::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:96,1
    - Dst: Option::push
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:97,1
    - Dst: Option::extend_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:98,1
    - Dst: Box<Self>::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:98,1
    - Dst: EcPoint::from_binary
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:99,1
    - Dst: Option::as_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:99,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:99,1
    - Dst: Pk::public_from_ec_components
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:100,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:100,1
    - Dst: agree
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:101,1
    - Dst: as_mut_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:103,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:101,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 2
    argNames:
    - peer_pub_key
    argTypes:
    - Box<Self>
    - '&SpdmDheExchangeStruct'
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 9
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: SpdmDheKeyExchangeP384::compute_final_key
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
    functionUses: 0
    functionsReached:
    - SpdmSharedSecretFinalKeyStruct::default
    - agree
    - Some
    - EcPoint::from_binary
    - Option::extend_from_slice
    - Option::as_slice
    - EcGroup::new
    - as_mut_slice
    - Self::ok
    - Box<Self>::as_ref
    - Pk::public_from_ec_components
    - ok
    - Option::push
    - Vec::new
    linkageType: ''
    returnType: Option
    signature: 'fn compute_final_key(mut self: Box<Self>,peer_pub_key: &SpdmDheExchangeStruct,)
      -> Option<SpdmSharedSecretFinalKeyStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDheExchangeStruct::default
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:75,1
    - Dst: EcGroup::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:77,1
    - Dst: Self::ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:77,1
    - Dst: Pk::generate_ec
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:78,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:78,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:78,1
    - Dst: ec_public
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:79,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:79,1
    - Dst: to_binary
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:79,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:79,1
    - Dst: as_mut_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:80,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:80,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:80,1
    - Dst: as_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:81,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:81,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:82,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:83,1
    - Dst: Self
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:83,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 9
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: SpdmDheKeyExchangeP384::generate_key_pair
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
    functionUses: 1
    functionsReached:
    - ec_public
    - Some
    - Pk::generate_ec
    - clone
    - SpdmDheExchangeStruct::default
    - copy_from_slice
    - as_slice
    - EcGroup::new
    - as_mut_slice
    - Self::ok
    - Box::new
    - Self
    - ok
    - to_binary
    - len
    linkageType: ''
    returnType: Option
    signature: fn generate_key_pair() -> Option<(SpdmDheExchangeStruct, Box<dyn SpdmDheKeyExchange
      + Send>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:113,1
    - Dst: generate_key_pair
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:114,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:114,1
    - Dst: generate_key_pair
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:115,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:115,1
    - Dst: compute_final_key
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:117,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:117,1
    - Dst: compute_final_key
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:118,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 11
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: tests::test_case0_dhe
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs
    functionUses: 0
    functionsReached:
    - compute_final_key
    - unwrap
    - Option::unwrap
    - iter
    - generate_key_pair
    linkageType: ''
    returnType: void
    signature: fn test_case0_dhe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDheAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:125,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: tests::test_case1_dhe
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs
    functionUses: 0
    functionsReached:
    - SpdmDheAlgo::empty
    - iter
    linkageType: ''
    returnType: void
    signature: fn test_case1_dhe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:75,1
    - Dst: insert
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - Box<HashCtxConcrete>
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: hash_ext::insert_to_table
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs
    functionUses: 0
    functionsReached:
    - insert
    - lock
    linkageType: ''
    returnType: usize
    signature: 'pub(crate) fn insert_to_table(value: Box<HashCtxConcrete>) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hash_all
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:102,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 10
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: tests::test_case0_hash_all
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs
    functionUses: 0
    functionsReached:
    - hash_all
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_hash_all()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hash_all
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:110,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 10
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: tests::test_case1_hash_all
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs
    functionUses: 0
    functionsReached:
    - hash_all
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_hash_all()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseHashAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:115,1
    - Dst: hash_all
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 10
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: tests::test_case2_hash_all
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs
    functionUses: 0
    functionsReached:
    - hash_all
    - SpdmBaseHashAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case2_hash_all()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ring::digest::digest
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:123,1
    - Dst: ring::digest::digest
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:124,1
    - Dst: ring::digest::Context::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:125,1
    - Dst: Self::update
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:126,1
    - Dst: Self::update
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:127,1
    - Dst: Self::clone
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:128,1
    - Dst: BytesMutStrubbed::update
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:129,1
    - Dst: Self::update
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:130,1
    - Dst: Self::finish
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:131,1
    - Dst: BytesMutStrubbed::clone
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:132,1
    - Dst: BytesMutStrubbed::finish
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:132,1
    - Dst: BytesMutStrubbed::finish
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 11
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: tests::test_case0_hash_update
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs
    functionUses: 0
    functionsReached:
    - Self::finish
    - Self::clone
    - BytesMutStrubbed::finish
    - Self::update
    - BytesMutStrubbed::clone
    - ring::digest::Context::new
    - BytesMutStrubbed::update
    - ring::digest::digest
    linkageType: ''
    returnType: void
    signature: fn test_case0_hash_update()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyPurposeId::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:75,1
    - Dst: KeyPurposeId::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:76,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:92,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:99,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:105,1
    - Dst: webpki::Error::RequiredEkuNotFoundContext
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:105,1
    - Dst: KeyUsage::required
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:107,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - iter
    argTypes:
    - KeyPurposeIdIter<'_, '_>
    constantsTouched: []
    func_position:
      end: 118
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 118
    functionName: SpdmRequesterEkuValidator::validate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - Err
    - webpki::Error::RequiredEkuNotFoundContext
    - Ok
    - KeyPurposeId::new
    - KeyUsage::required
    linkageType: ''
    returnType: Result
    signature: 'fn validate(&self, iter: KeyPurposeIdIter<''_, ''_>) -> Result<(),
      webpki::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: spdm_requester_eku_validator
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: impl ExtendedKeyUsageValidator
    signature: pub fn spdm_requester_eku_validator() -> impl ExtendedKeyUsageValidator
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyPurposeId::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:143,1
    - Dst: KeyPurposeId::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:144,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:160,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:167,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:173,1
    - Dst: webpki::Error::RequiredEkuNotFoundContext
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:173,1
    - Dst: webpki::KeyUsage::required
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:175,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - iter
    argTypes:
    - KeyPurposeIdIter<'_, '_>
    constantsTouched: []
    func_position:
      end: 186
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 186
    functionName: SpdmResponderEkuValidator::validate
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - Err
    - webpki::Error::RequiredEkuNotFoundContext
    - Ok
    - KeyPurposeId::new
    - webpki::KeyUsage::required
    linkageType: ''
    returnType: Result
    signature: 'fn validate(&self, iter: KeyPurposeIdIter<''_, ''_>) -> Result<(),
      webpki::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: spdm_responder_eku_validator
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: impl ExtendedKeyUsageValidator
    signature: pub fn spdm_responder_eku_validator() -> impl ExtendedKeyUsageValidator
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:432,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: tests::test_case0_cert_from_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - get_cert_from_cert_chain
    - SpdmResult::is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_cert_from_cert_chain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:439,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: tests::test_case1_cert_from_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - get_cert_from_cert_chain
    - SpdmResult::is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case1_cert_from_cert_chain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:445,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: tests::test_case2_cert_from_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - get_cert_from_cert_chain
    - SpdmResult::is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case2_cert_from_cert_chain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:453,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: tests::test_case3_cert_from_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - get_cert_from_cert_chain
    - SpdmResult::is_err
    linkageType: ''
    returnType: void
    signature: fn test_case3_cert_from_cert_chain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:459,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: tests::test_case4_cert_from_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - get_cert_from_cert_chain
    - SpdmResult::is_err
    linkageType: ''
    returnType: void
    signature: fn test_case4_cert_from_cert_chain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:465,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:465,1
    - Dst: verify_cert_chain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:468,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 463
    functionDepth: 8
    functionLinenumber: 463
    functionLinenumberEnd: 470
    functionName: tests::test_case5_cert_from_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - get_cert_from_cert_chain
    - SpdmResult::is_ok
    - verify_cert_chain
    linkageType: ''
    returnType: void
    signature: fn test_case5_cert_from_cert_chain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_vec
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:492,1
    - Dst: to_vec
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 502
    functionName: tests::test_verify_cert_chain_case1
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - to_vec
    linkageType: ''
    returnType: void
    signature: fn test_verify_cert_chain_case1()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: tests::test_certificate_eku_v3_end_with_eku_example_1
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_certificate_eku_v3_end_with_eku_example_1()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: tests::test_certificate_eku_v3_end_with_eku_spdm_oid_3
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_certificate_eku_v3_end_with_eku_spdm_oid_3()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: tests::test_certificate_eku_v3_end_with_eku_spdm_oid_4
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_certificate_eku_v3_end_with_eku_spdm_oid_4()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 532
    functionName: tests::test_certificate_eku_v3_end_with_eku_spdm_oid_3_and_4
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_certificate_eku_v3_end_with_eku_spdm_oid_3_and_4()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 540
    functionName: tests::test_certificate_eku_v3_end_without_eku
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_certificate_eku_v3_end_without_eku()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 548
    functionName: tests::test_certificate_eku_v3_end_with_eku_spdm_without_spdm_oid
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_certificate_eku_v3_end_with_eku_spdm_without_spdm_oid()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::is_empty
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:14,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:20,1
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:23,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 31
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 31
    functionName: parse_der_length
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 1
    functionsReached:
    - untrusted::Input::is_empty
    - untrusted::Input::len
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn parse_der_length(input: &[u8]) -> Option<(usize, usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:38,1
    - Dst: parse_der_length
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:42,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:44,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:50,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:51,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 1
    argNames:
    - spki
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: extract_spki_pubkey
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 1
    functionsReached:
    - Some
    - parse_der_length
    - '&[u8]::len'
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn extract_spki_pubkey(spki: &[u8]) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:81,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:90,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:90,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:90,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:109,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:117,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:118,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:125,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:133,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:136,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:142,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:145,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs:148,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 155
    argCount: 2
    argNames:
    - signature
    - der_signature
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 149
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 149
    functionName: ecc_signature_bin_to_der
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs
    functionUses: 5
    functionsReached:
    - '&mut [u8]::len'
    - SpdmResult::iter
    - Err
    - take
    - Ok
    - Self::IntoIter::enumerate
    - copy_from_slice
    - SpdmResult::len
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn ecc_signature_bin_to_der(signature: &[u8], der_signature: &mut
      [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:286,1
    - Dst: ecc_signature_bin_to_der
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:292,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: tests::test_case0_ecc_signature_bin_to_der
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 0
    functionsReached:
    - ecc_signature_bin_to_der
    - SpdmResult::len
    - SpdmResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_ecc_signature_bin_to_der()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:298,1
    - Dst: ecc_signature_bin_to_der
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:304,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: tests::test_case1_ecc_signature_bin_to_der
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 0
    functionsReached:
    - ecc_signature_bin_to_der
    - SpdmResult::len
    - SpdmResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_ecc_signature_bin_to_der()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ecc_signature_bin_to_der
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:312,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: tests::test_case2_ecc_signature_bin_to_der
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 0
    functionsReached:
    - ecc_signature_bin_to_der
    - SpdmResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case2_ecc_signature_bin_to_der()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ecc_signature_bin_to_der
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:319,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: tests::test_case3_ecc_signature_bin_to_der
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 0
    functionsReached:
    - ecc_signature_bin_to_der
    - SpdmResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case3_ecc_signature_bin_to_der()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asym_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:335,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 322
    functionDepth: 8
    functionLinenumber: 322
    functionLinenumberEnd: 343
    functionName: tests::test_case0_asym_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 0
    functionsReached:
    - asym_verify
    - SpdmDer::SpdmDerCertChain
    linkageType: ''
    returnType: void
    signature: fn test_case0_asym_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asym_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:358,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 345
    functionDepth: 8
    functionLinenumber: 345
    functionLinenumberEnd: 366
    functionName: tests::test_case1_asym_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 0
    functionsReached:
    - asym_verify
    - SpdmDer::SpdmDerCertChain
    linkageType: ''
    returnType: void
    signature: fn test_case1_asym_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:392,1
    - Dst: Option::iter
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:393,1
    - Dst: asym_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:394,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 368
    functionDepth: 8
    functionLinenumber: 368
    functionLinenumberEnd: 404
    functionName: tests::test_case2_asym_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 0
    functionsReached:
    - asym_verify
    - SpdmDer::SpdmDerCertChain
    - iter
    - Option::iter
    linkageType: ''
    returnType: void
    signature: fn test_case2_asym_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asym_verify
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:419,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 406
    functionDepth: 8
    functionLinenumber: 406
    functionLinenumberEnd: 427
    functionName: tests::test_case3_asym_verify
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 0
    functionsReached:
    - asym_verify
    - SpdmDer::SpdmDerCertChain
    linkageType: ''
    returnType: void
    signature: fn test_case3_asym_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extract_spki_pubkey
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:445,1
    - Dst: Option::expect
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 453
    functionName: tests::test_extract_spki_pubkey_rfc7250
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
    functionUses: 0
    functionsReached:
    - extract_spki_pubkey
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_extract_spki_pubkey_rfc7250()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:645,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nonce
    argTypes:
    - aead::Nonce
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: OneNonceSequence::new
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 1
    functionsReached:
    - Self
    - Some
    linkageType: ''
    returnType: Self
    signature: 'fn new(nonce: aead::Nonce) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:651,1
    - Dst: ok_or
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 650
    functionDepth: 4
    functionLinenumber: 650
    functionLinenumberEnd: 652
    functionName: OneNonceSequence::advance
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - take
    - ok_or
    linkageType: ''
    returnType: Result
    signature: fn advance(&mut self) -> Result<aead::Nonce, error::Unspecified>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aead::UnboundKey::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:629,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:629,1
    - Dst: OneNonceSequence::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:630,1
    - Dst: K::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - algorithm
    - key
    - nonce
    argTypes:
    - '&''static aead::Algorithm'
    - '&[u8]'
    - aead::Nonce
    constantsTouched: []
    func_position:
      end: 632
      start: 624
    functionDepth: 12
    functionLinenumber: 624
    functionLinenumberEnd: 632
    functionName: make_key
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 5
    functionsReached:
    - K::new
    - aead::UnboundKey::new
    - OneNonceSequence::new
    - Result::unwrap
    linkageType: ''
    returnType: K
    signature: 'fn make_key<K: aead::BoundKey<OneNonceSequence>>(algorithm: &''static
      aead::Algorithm,key: &[u8],nonce: aead::Nonce,) -> K'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:170,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:174,1
    - Dst: encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:181,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 183
    functionName: tests::test_case0_encrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs
    functionUses: 0
    functionsReached:
    - encrypt
    - Box::new
    - SpdmResult::is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case0_encrypt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:189,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:193,1
    - Dst: encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:201,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: tests::test_case1_encrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs
    functionUses: 0
    functionsReached:
    - encrypt
    - Box::new
    - SpdmResult::is_ok
    linkageType: ''
    returnType: void
    signature: fn test_case1_encrypt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAeadAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:207,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:210,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:214,1
    - Dst: encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 222
    functionName: tests::test_case2_encrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - encrypt
    - SpdmAeadAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case2_encrypt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:228,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:232,1
    - Dst: encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: tests::test_case3_encrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs
    functionUses: 0
    functionsReached:
    - encrypt
    - Box::new
    linkageType: ''
    returnType: void
    signature: fn test_case3_encrypt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:246,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:250,1
    - Dst: encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: tests::test_case4_encrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs
    functionUses: 0
    functionsReached:
    - encrypt
    - Box::new
    linkageType: ''
    returnType: void
    signature: fn test_case4_encrypt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:264,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:268,1
    - Dst: encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 276
    functionName: tests::test_case5_encrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs
    functionUses: 0
    functionsReached:
    - encrypt
    - Box::new
    linkageType: ''
    returnType: void
    signature: fn test_case5_encrypt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:282,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:286,1
    - Dst: encrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: tests::test_case6_encrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs
    functionUses: 0
    functionsReached:
    - encrypt
    - Box::new
    linkageType: ''
    returnType: void
    signature: fn test_case6_encrypt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:301,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:305,1
    - Dst: decrypt
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 322
    functionName: tests::test_case0_decrypt
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - decrypt
    linkageType: ''
    returnType: void
    signature: fn test_case0_decrypt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_random
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/rand_impl.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 15
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: tests::test_case0_get_random
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/rand_impl.rs
    functionUses: 0
    functionsReached:
    - get_random
    linkageType: ''
    returnType: void
    signature: fn test_case0_get_random()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_random
      Src: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/rand_impl.rs:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 15
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: tests::test_case1_get_random
    functionSourceFile: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/rand_impl.rs
    functionUses: 0
    functionsReached:
    - get_random
    linkageType: ''
    returnType: void
    signature: fn test_case1_get_random()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:19,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:19,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:20,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:20,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: SpdmHeartbeatRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/heartbeat.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:28,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:29,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: SpdmHeartbeatRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/heartbeat.rs
    functionUses: 4
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmHeartbeatRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:44,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:44,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:45,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:45,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: SpdmHeartbeatResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/heartbeat.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:53,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:54,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: SpdmHeartbeatResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/heartbeat.rs
    functionUses: 4
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmHeartbeatResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:74,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:77,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:80,1
    - Dst: SpdmHeartbeatResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: tests::test_case0_spdm_heartbeat_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/heartbeat.rs
    functionUses: 0
    functionsReached:
    - SpdmHeartbeatResponsePayload::spdm_read
    - Reader::init
    - Writer::init
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_heartbeat_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:86,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:89,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:92,1
    - Dst: SpdmHeartbeatRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 7
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: tests::test_case0_spdm_heartbeat_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/heartbeat.rs
    functionUses: 0
    functionsReached:
    - SpdmHeartbeatRequestPayload::spdm_read
    - Reader::init
    - Writer::init
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_heartbeat_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:30,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:30,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:34,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:34,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:38,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:38,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:43,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:43,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: SpdmChallengeRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:55,1
    - Dst: SpdmMeasurementSummaryHashType::read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:59,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:64,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:68,1
    - Dst: SpdmNonceStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:78,1
    - Dst: SpdmChallengeContextStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:82,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:84,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:87,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 93
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 93
    functionName: SpdmChallengeRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge.rs
    functionUses: 5
    functionsReached:
    - contains
    - Some
    - SpdmMeasurementSummaryHashType::read
    - SpdmChallengeContextStruct::default
    - SpdmChallengeContextStruct::read
    - SpdmNonceStruct::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmChallengeRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:124,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:125,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:125,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:126,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:126,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:130,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:131,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:131,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:136,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:138,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:140,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:140,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:145,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:146,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 66
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 147
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 147
    functionName: SpdmChallengeAuthResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - spdm_encode
    - bits
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:153,1
    - Dst: SpdmChallengeAuthAttribute::from_bits
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:158,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:161,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:162,1
    - Dst: SpdmNonceStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:163,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:165,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:167,1
    - Dst: SpdmOpaqueStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:169,1
    - Dst: SpdmChallengeContextStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:172,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:174,1
    - Dst: SpdmSignatureStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:176,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:178,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 189
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 189
    functionName: SpdmChallengeAuthResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge.rs
    functionUses: 6
    functionsReached:
    - SpdmDigestStruct::default
    - Some
    - SpdmSignatureStruct::spdm_read
    - SpdmChallengeContextStruct::default
    - SpdmOpaqueStruct::spdm_read
    - SpdmDigestStruct::spdm_read
    - SpdmChallengeContextStruct::read
    - SpdmNonceStruct::read
    - u8::read
    - SpdmChallengeAuthAttribute::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmChallengeAuthResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:209,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:222,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:226,1
    - Dst: SpdmChallengeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:229,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 207
    functionDepth: 7
    functionLinenumber: 207
    functionLinenumberEnd: 242
    functionName: tests::test_case0_spdm_challenge_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - SpdmChallengeRequestPayload::spdm_read
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_challenge_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:246,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:254,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:257,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:261,1
    - Dst: SpdmChallengeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:264,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 274
    functionName: tests::test_case1_spdm_challenge_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - SpdmChallengeContextStruct::default
    - Writer::init
    - SpdmChallengeRequestPayload::spdm_read
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_challenge_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:285,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:292,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:299,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:314,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:323,1
    - Dst: SpdmChallengeAuthResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:336,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:336,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 276
    functionDepth: 7
    functionLinenumber: 276
    functionLinenumberEnd: 377
    functionName: tests::test_case0_spdm_challenge_auth_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge.rs
    functionUses: 0
    functionsReached:
    - SpdmChallengeAuthResponsePayload::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Box::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_challenge_auth_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:386,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:393,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:398,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:403,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:410,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:428,1
    - Dst: SpdmChallengeAuthResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:439,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/challenge.rs:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 379
    functionDepth: 7
    functionLinenumber: 379
    functionLinenumberEnd: 445
    functionName: tests::test_case1_spdm_challenge_auth_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge.rs
    functionUses: 0
    functionsReached:
    - SpdmDigestStruct::default
    - SpdmChallengeAuthResponsePayload::spdm_read
    - create_spdm_context
    - SpdmChallengeContextStruct::default
    - Writer::init
    - Reader::init
    - Box::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_challenge_auth_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:13,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:18,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:28,1
    - Dst: SpdmChunkGetRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:29,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:29,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:41,1
    - Dst: SpdmChunkSenderAttributes::default
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:43,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:47,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:56,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:58,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:63,1
    - Dst: SpdmChunkResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:64,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 12
    functionDepth: 7
    functionLinenumber: 12
    functionLinenumberEnd: 73
    functionName: test_chunk_get_and_response_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs
    functionUses: 0
    functionsReached:
    - SpdmChunkGetRequestPayload::spdm_read
    - LittleEndian::write_u32
    - SpdmChunkResponsePayload::spdm_read
    - Some
    - Writer::init
    - SpdmChunkSenderAttributes::default
    - Reader::init
    - Option::unwrap
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_chunk_get_and_response_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:77,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:87,1
    - Dst: SpdmChunkSenderAttributes::default
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:89,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 76
    functionDepth: 7
    functionLinenumber: 76
    functionLinenumberEnd: 101
    functionName: test_chunk_response_msg_overflow
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs
    functionUses: 0
    functionsReached:
    - testlib::create_spdm_context
    - Reader::init
    - Writer::init
    - SpdmChunkSenderAttributes::default
    linkageType: ''
    returnType: void
    signature: fn test_chunk_response_msg_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:15,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:22,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:22,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:23,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:24,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:26,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:27,1
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:32,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:39,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:39,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:40,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:41,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:43,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 12
    functionDepth: 7
    functionLinenumber: 12
    functionLinenumberEnd: 46
    functionName: test_capability_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability_test.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - SpdmCapabilitiesResponsePayload::spdm_read
    - Reader::init
    - testlib::create_spdm_context
    - bits
    linkageType: ''
    returnType: void
    signature: fn test_capability_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:52,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:66,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:66,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:67,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:68,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:70,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:71,1
    - Dst: Features::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:73,1
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:81,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:86,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:86,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:87,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:88,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:90,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:91,1
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:96,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:101,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:101,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:102,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:103,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:105,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:106,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:111,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:111,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:113,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 116
    functionName: test_capability_request_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability_test.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - Reader::init
    - SpdmGetCapabilitiesRequestPayload::spdm_read
    - testlib::create_spdm_context
    - bits
    - Features::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_capability_request_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:122,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:143,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:143,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:144,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:145,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:147,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:148,1
    - Dst: Features::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:150,1
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:158,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:164,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:164,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:165,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:166,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:168,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:169,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:173,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:173,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:175,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability_test.rs:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 119
    functionDepth: 7
    functionLinenumber: 119
    functionLinenumberEnd: 178
    functionName: test_capability_response_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability_test.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - SpdmCapabilitiesResponsePayload::spdm_read
    - Reader::init
    - testlib::create_spdm_context
    - bits
    - Features::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_capability_response_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:41,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:41,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:45,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:45,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:49,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:49,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:67,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:67,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:71,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:71,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:74,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:74,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:76,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:76,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:80,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:81,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:82,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 79
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 83
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 83
    functionName: SpdmKeyExchangeRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    - spdm_encode
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementSummaryHashType::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:89,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:94,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:98,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:108,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:112,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:115,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:120,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:123,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:127,1
    - Dst: SpdmRandomStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:129,1
    - Dst: SpdmReqExchangeStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:130,1
    - Dst: SpdmOpaqueStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:131,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:133,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 142
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 142
    functionName: SpdmKeyExchangeRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 5
    functionsReached:
    - SpdmRandomStruct::read
    - contains
    - Some
    - SpdmMeasurementSummaryHashType::read
    - u16::read
    - SpdmReqExchangeStruct::spdm_read
    - SpdmOpaqueStruct::spdm_read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmKeyExchangeRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeyExchangeMutAuthAttributes::bits
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:157,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: SpdmKeyExchangeMutAuthAttributes::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmKeyExchangeMutAuthAttributes::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:161,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::from_bits
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: SpdmKeyExchangeMutAuthAttributes::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 3
    functionsReached:
    - SpdmKeyExchangeMutAuthAttributes::from_bits
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmKeyExchangeMutAuthAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:190,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:190,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:194,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:194,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:195,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:195,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:199,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:199,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:203,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:203,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:208,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:208,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:212,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:214,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:216,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:217,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:219,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:223,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:228,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 89
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 231
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 231
    functionName: SpdmKeyExchangeResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 0
    functionsReached:
    - contains
    - encode
    - Ok
    - spdm_encode
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:237,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:238,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:240,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:241,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:242,1
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:247,1
    - Dst: SpdmRandomStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:255,1
    - Dst: SpdmRspExchangeStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:256,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:258,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:260,1
    - Dst: SpdmOpaqueStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:262,1
    - Dst: SpdmSignatureStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:263,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:264,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:268,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:273,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:275,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:278,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 290
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 290
    functionName: SpdmKeyExchangeResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 6
    functionsReached:
    - SpdmRspExchangeStruct::spdm_read
    - SpdmRandomStruct::read
    - SpdmDigestStruct::default
    - contains
    - Some
    - is_empty
    - SpdmKeyExchangeMutAuthAttributes::read
    - u16::read
    - SpdmSignatureStruct::spdm_read
    - SpdmOpaqueStruct::spdm_read
    - SpdmDigestStruct::spdm_read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmKeyExchangeResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:310,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 321
    functionName: tests::test_case0_spdm_key_exchange_mut_auth_attributes
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_key_exchange_mut_auth_attributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:326,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:346,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:353,1
    - Dst: SpdmKeyExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:359,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 323
    functionDepth: 7
    functionLinenumber: 323
    functionLinenumberEnd: 384
    functionName: tests::test_case0_spdm_key_exchange_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyExchangeRequestPayload::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_key_exchange_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:396,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:411,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:423,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:427,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:435,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:447,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:447,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 387
    functionDepth: 7
    functionLinenumber: 387
    functionLinenumberEnd: 501
    functionName: tests::test_case0_spdm_key_exchange_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Box::new
    - Option::unwrap
    - SpdmKeyExchangeResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_key_exchange_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:511,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:524,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:535,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:539,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:547,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:558,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange.rs:558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 609
      start: 503
    functionDepth: 7
    functionLinenumber: 503
    functionLinenumberEnd: 609
    functionName: tests::test_case1_spdm_key_exchange_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
    functionUses: 0
    functionsReached:
    - SpdmDigestStruct::default
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Box::new
    - Option::unwrap
    - SpdmKeyExchangeResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_key_exchange_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:16,1
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:21,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:22,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:23,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:26,1
    - Dst: SpdmKeyUpdateRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:27,1
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:33,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:34,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:35,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:38,1
    - Dst: SpdmKeyUpdateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:39,1
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:45,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:46,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:47,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:50,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:51,1
    - Dst: SpdmKeyUpdateRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:52,1
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:57,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:58,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:59,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:62,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:63,1
    - Dst: SpdmKeyUpdateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_update_test.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 66
    functionName: test_key_update_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_update_test.rs
    functionUses: 0
    functionsReached:
    - get_u8
    - SpdmKeyUpdateRequestPayload::spdm_read
    - u8::from
    - Reader::init
    - SpdmKeyUpdateResponsePayload::spdm_read
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_key_update_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/digest_test.rs:17,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/digest_test.rs:25,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/digest_test.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 14
    functionDepth: 7
    functionLinenumber: 14
    functionLinenumberEnd: 28
    functionName: test_digest_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/digest_test.rs
    functionUses: 0
    functionsReached:
    - SpdmDigestsResponsePayload::spdm_read
    - testlib::create_spdm_context
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn test_digest_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/digest_test.rs:34,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/digest_test.rs:42,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/digest_test.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 31
    functionDepth: 7
    functionLinenumber: 31
    functionLinenumberEnd: 46
    functionName: test_digest_struct_case2
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/digest_test.rs
    functionUses: 0
    functionsReached:
    - SpdmDigestsResponsePayload::spdm_read
    - testlib::create_spdm_context
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn test_digest_struct_case2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: alloc::sync::Arc::new
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:5,1
    - Dst: spin::Mutex::new
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:5,1
    - Dst: alloc::sync::Arc::new
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:9,1
    - Dst: spin::Mutex::new
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:9,1
    - Dst: SpdmConfigInfo::default
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:10,1
    - Dst: SpdmProvisionInfo::default
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:11,1
    - Dst: SpdmContext::new
      Src: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 6
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: create_spdm_context
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 108
    functionsReached:
    - SpdmConfigInfo::default
    - SpdmProvisionInfo::default
    - alloc::sync::Arc::new
    - SpdmContext::new
    - spin::Mutex::new
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _buffer
    argTypes:
    - Arc<&[u8]>
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: DeviceIO::send
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: crate::error::SpdmResult
    signature: 'async fn send(&mut self, _buffer: Arc<&[u8]>) -> crate::error::SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - _buffer
    - _timeoutt
    argTypes:
    - Arc<Mutex<&mut [u8]>>
    - usize
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: DeviceIO::receive
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'async fn receive(&mut self,_buffer: Arc<Mutex<&mut [u8]>>,_timeoutt:
      usize,) -> Result<usize, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: DeviceIO::flush_all
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: crate::error::SpdmResult
    signature: async fn flush_all(&mut self) -> crate::error::SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _spdm_buffer
    - _transport_buffer
    - _secured_messagesage
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    - bool
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: TransportEncap::encap
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: crate::error::SpdmResult
    signature: 'async fn encap(&mut self,_spdm_buffer: Arc<&[u8]>,_transport_buffer:
      Arc<Mutex<&mut [u8]>>,_secured_messagesage: bool,) -> crate::error::SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - _transport_buffer
    - _spdm_buffer
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: TransportEncap::decap
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: crate::error::SpdmResult
    signature: 'async fn decap(&mut self,_transport_buffer: Arc<&[u8]>,_spdm_buffer:
      Arc<Mutex<&mut [u8]>>,) -> crate::error::SpdmResult<(usize, bool)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _spdm_buffer
    - _app_buffer
    - _is_app_messagesage
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    - bool
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: TransportEncap::encap_app
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: crate::error::SpdmResult
    signature: 'async fn encap_app(&mut self,_spdm_buffer: Arc<&[u8]>,_app_buffer:
      Arc<Mutex<&mut [u8]>>,_is_app_messagesage: bool,) -> crate::error::SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - _app_buffer
    - _spdm_buffer
    argTypes:
    - Arc<&[u8]>
    - Arc<Mutex<&mut [u8]>>
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: TransportEncap::decap_app
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: crate::error::SpdmResult
    signature: 'async fn decap_app(&mut self,_app_buffer: Arc<&[u8]>,_spdm_buffer:
      Arc<Mutex<&mut [u8]>>,) -> crate::error::SpdmResult<(usize, bool)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: TransportEncap::get_sequence_number_count
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: fn get_sequence_number_count(&mut self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: TransportEncap::get_max_random_count
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: fn get_max_random_count(&mut self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:35,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:35,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:40,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:40,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:43,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:43,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:50,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:50,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:52,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:52,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:58,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:58,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:63,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:63,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:66,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:66,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:70,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:70,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:76,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:76,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:82,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:82,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:87,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:87,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:90,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:90,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:92,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:92,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:94,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:94,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:97,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:97,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:102,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:102,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:106,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:106,1
    - Dst: Option::encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:107,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:107,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:110,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 186
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 111
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 111
    functionName: SpdmNegotiateAlgorithmsRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Option::encode
    - Ok
    - Result::map_err
    - iter
    - SpdmResult::encode
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:119,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:124,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:126,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:128,1
    - Dst: SpdmMeasurementSpecification::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:129,1
    - Dst: SpdmAlgoOtherParams::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:133,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:135,1
    - Dst: SpdmAlgoOtherParams::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:136,1
    - Dst: SpdmBaseAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:139,1
    - Dst: SpdmBaseHashAlgo::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:140,1
    - Dst: SpdmPqcAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:144,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:147,1
    - Dst: SpdmPqcAsymAlgo::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:149,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:153,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:156,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:161,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:166,1
    - Dst: SpdmMelSpecification::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:170,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:172,1
    - Dst: SpdmMelSpecification::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:173,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:177,1
    - Dst: SpdmAlgStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:177,1
    - Dst: SpdmAlgType::Unknown
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:185,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:186,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:186,1
    - Dst: SpdmAlgStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:187,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:188,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:188,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:250,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 177
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 260
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 260
    functionName: SpdmNegotiateAlgorithmsRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 6
    functionsReached:
    - SpdmAlgoOtherParams::default
    - SpdmMelSpecification::default
    - u16::read
    - iter_mut
    - u8::read
    - get_u8
    - SpdmPqcAsymAlgo::default
    - SpdmMelSpecification::read
    - take
    - SpdmPqcAsymAlgo::read
    - gen_array_clone
    - SpdmAlgStruct::default
    - SpdmBaseHashAlgo::read
    - Some
    - SpdmAlgStruct::read
    - SpdmMeasurementSpecification::read
    - SpdmBaseAsymAlgo::read
    - SpdmAlgoOtherParams::read
    - SpdmAlgType::Unknown
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmNegotiateAlgorithmsRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:285,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:285,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:290,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:290,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:293,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:293,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:300,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:300,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:302,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:302,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:308,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:308,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:313,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:313,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:316,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:316,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:320,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:320,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:324,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:324,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:330,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:330,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:336,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:336,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:341,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:341,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:345,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:345,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:350,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:350,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:353,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:353,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:355,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:355,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:357,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:357,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:360,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:360,1
    - Dst: Option::encode
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:361,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:361,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:364,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 194
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 365
      start: 277
    functionDepth: 4
    functionLinenumber: 277
    functionLinenumberEnd: 365
    functionName: SpdmAlgorithmsResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Option::encode
    - Ok
    - Result::map_err
    - iter
    - SpdmResult::encode
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:373,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:378,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:380,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:382,1
    - Dst: SpdmMeasurementSpecification::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:384,1
    - Dst: is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:385,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:388,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:392,1
    - Dst: is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:396,1
    - Dst: SpdmAlgoOtherParams::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:403,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:405,1
    - Dst: SpdmAlgoOtherParams::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:406,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:409,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:413,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:417,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:421,1
    - Dst: SpdmMeasurementHashAlgo::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:426,1
    - Dst: is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:427,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:430,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:434,1
    - Dst: is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:438,1
    - Dst: SpdmBaseAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:443,1
    - Dst: is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:444,1
    - Dst: SpdmBaseHashAlgo::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:448,1
    - Dst: is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:449,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:452,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:456,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:460,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:464,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:468,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:472,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:476,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:480,1
    - Dst: is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:484,1
    - Dst: SpdmPqcAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:491,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:494,1
    - Dst: SpdmPqcAsymAlgo::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:496,1
    - Dst: is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:498,1
    - Dst: is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:501,1
    - Dst: is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:501,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:504,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:508,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:512,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:516,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:520,1
    - Dst: is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:524,1
    - Dst: is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:525,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:531,1
    - Dst: SpdmMelSpecification::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:536,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:538,1
    - Dst: SpdmMelSpecification::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:539,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:542,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:547,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:552,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:555,1
    - Dst: SpdmAlgStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:555,1
    - Dst: SpdmAlgType::Unknown
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:563,1
    - Dst: SpdmDheAlgo::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:564,1
    - Dst: SpdmReqAsymAlgo::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:565,1
    - Dst: SpdmPqcReqAsymAlgo::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:566,1
    - Dst: SpdmKemAlgo::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:567,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:568,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:568,1
    - Dst: SpdmAlgStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:569,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:570,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:570,1
    - Dst: Self::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:581,1
    - Dst: v::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:591,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:594,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:598,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:602,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:606,1
    - Dst: v::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:610,1
    - Dst: Self::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:621,1
    - Dst: v::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:631,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:634,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:638,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:642,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:646,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:650,1
    - Dst: v::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:654,1
    - Dst: Self::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:665,1
    - Dst: Self::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:675,1
    - Dst: Self::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:685,1
    - Dst: Self::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:685,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:688,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:692,1
    - Dst: Self::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:696,1
    - Dst: Self::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:697,1
    - Dst: Self::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:701,1
    - Dst: Self::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:701,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:704,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:708,1
    - Dst: Self::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:712,1
    - Dst: Self::is_valid_one_select
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:713,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:729,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 557
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 740
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 740
    functionName: SpdmAlgorithmsResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 7
    functionsReached:
    - SpdmAlgoOtherParams::default
    - v::is_valid_one_select
    - SpdmMelSpecification::default
    - contains
    - u16::read
    - iter_mut
    - u8::read
    - Self::is_valid_one_select
    - SpdmPqcReqAsymAlgo::default
    - SpdmDheAlgo::default
    - get_u8
    - SpdmPqcAsymAlgo::default
    - SpdmMelSpecification::read
    - SpdmReqAsymAlgo::default
    - take
    - SpdmPqcAsymAlgo::read
    - gen_array_clone
    - SpdmAlgStruct::default
    - SpdmBaseHashAlgo::read
    - is_no_more_than_one_selected
    - Some
    - SpdmAlgStruct::read
    - SpdmMeasurementSpecification::read
    - Self::is_no_more_than_one_selected
    - SpdmBaseAsymAlgo::read
    - SpdmAlgoOtherParams::read
    - is_valid_one_select
    - SpdmAlgType::Unknown
    - SpdmMeasurementHashAlgo::read
    - SpdmKemAlgo::default
    - v::is_no_more_than_one_selected
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmAlgorithmsResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:757,1
    - Dst: SpdmAlg::SpdmAlgoDhe
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:770,1
    - Dst: SpdmAlg::SpdmAlgoAead
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:774,1
    - Dst: SpdmAlg::SpdmAlgoReqAsym
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:778,1
    - Dst: SpdmAlg::SpdmAlgoKeySchedule
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:784,1
    - Dst: SpdmAlg::SpdmAlgoPqcReqAsym
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:790,1
    - Dst: SpdmAlg::SpdmAlgoKem
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:794,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:798,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:802,1
    - Dst: SpdmNegotiateAlgorithmsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:805,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 863
      start: 755
    functionDepth: 7
    functionLinenumber: 755
    functionLinenumberEnd: 863
    functionName: tests::test_case0_spdm_negotiate_algorithms_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 0
    functionsReached:
    - SpdmAlg::SpdmAlgoAead
    - create_spdm_context
    - SpdmAlg::SpdmAlgoKeySchedule
    - SpdmAlg::SpdmAlgoPqcReqAsym
    - SpdmAlg::SpdmAlgoKem
    - SpdmAlg::SpdmAlgoDhe
    - Writer::init
    - SpdmNegotiateAlgorithmsRequestPayload::spdm_read
    - Reader::init
    - Option::unwrap
    - SpdmAlg::SpdmAlgoReqAsym
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_negotiate_algorithms_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:868,1
    - Dst: SpdmMeasurementSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:870,1
    - Dst: SpdmAlgoOtherParams::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:871,1
    - Dst: SpdmBaseAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:872,1
    - Dst: SpdmBaseHashAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:873,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:874,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:875,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:877,1
    - Dst: SpdmAlgStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:878,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:883,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:887,1
    - Dst: SpdmNegotiateAlgorithmsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:890,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 903
      start: 866
    functionDepth: 5
    functionLinenumber: 866
    functionLinenumberEnd: 903
    functionName: tests::test_case1_spdm_negotiate_algorithms_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 0
    functionsReached:
    - SpdmBaseAsymAlgo::empty
    - create_spdm_context
    - SpdmBaseHashAlgo::empty
    - Writer::init
    - gen_array_clone
    - SpdmNegotiateAlgorithmsRequestPayload::spdm_read
    - SpdmAlgoOtherParams::empty
    - Reader::init
    - Option::unwrap
    - SpdmAlgStruct::default
    - SpdmMelSpecification::empty
    - SpdmMeasurementSpecification::empty
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_negotiate_algorithms_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:907,1
    - Dst: SpdmAlgoOtherParams::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:910,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:914,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:916,1
    - Dst: SpdmAlgStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:917,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:922,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:928,1
    - Dst: SpdmNegotiateAlgorithmsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 933
      start: 905
    functionDepth: 5
    functionLinenumber: 905
    functionLinenumberEnd: 933
    functionName: tests::test_case2_spdm_negotiate_algorithms_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - gen_array_clone
    - SpdmNegotiateAlgorithmsRequestPayload::spdm_read
    - SpdmAlgoOtherParams::empty
    - Reader::init
    - SpdmAlgStruct::default
    - SpdmMelSpecification::empty
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdm_negotiate_algorithms_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:937,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:945,1
    - Dst: SpdmAlg::SpdmAlgoDhe
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:951,1
    - Dst: SpdmAlg::SpdmAlgoAead
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:955,1
    - Dst: SpdmAlg::SpdmAlgoReqAsym
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:959,1
    - Dst: SpdmAlg::SpdmAlgoKeySchedule
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:965,1
    - Dst: SpdmAlg::SpdmAlgoPqcReqAsym
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:971,1
    - Dst: SpdmPqcReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:971,1
    - Dst: SpdmAlg::SpdmAlgoKem
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:975,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:975,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:980,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:989,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:992,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 935
    functionDepth: 7
    functionLinenumber: 935
    functionLinenumberEnd: 1054
    functionName: tests::test_case0_spdm_algorithms_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 0
    functionsReached:
    - SpdmAlg::SpdmAlgoAead
    - create_spdm_context
    - SpdmAlg::SpdmAlgoKeySchedule
    - SpdmAlg::SpdmAlgoPqcReqAsym
    - SpdmAlg::SpdmAlgoKem
    - SpdmAlg::SpdmAlgoDhe
    - Writer::init
    - SpdmPqcReqAsymAlgo::empty
    - SpdmKemAlgo::empty
    - SpdmAlgorithmsResponsePayload::spdm_read
    - Reader::init
    - Option::unwrap
    - SpdmAlg::SpdmAlgoReqAsym
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_algorithms_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1058,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1069,1
    - Dst: SpdmAlgStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1070,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1075,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1081,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1084,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1090,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1093,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1099,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1056
    functionDepth: 5
    functionLinenumber: 1056
    functionLinenumberEnd: 1110
    functionName: tests::test_case1_spdm_algorithms_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - gen_array_clone
    - SpdmAlgorithmsResponsePayload::spdm_read
    - Reader::init
    - SpdmAlgStruct::default
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_algorithms_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1114,1
    - Dst: SpdmMeasurementSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1116,1
    - Dst: SpdmAlgoOtherParams::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1117,1
    - Dst: SpdmMeasurementHashAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1118,1
    - Dst: SpdmBaseAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1119,1
    - Dst: SpdmBaseHashAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1120,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1121,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1122,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1124,1
    - Dst: SpdmAlgStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1125,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1130,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1134,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1137,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/algorithm.rs:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1112
    functionDepth: 5
    functionLinenumber: 1112
    functionLinenumberEnd: 1158
    functionName: tests::test_case2_spdm_algorithms_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm.rs
    functionUses: 0
    functionsReached:
    - SpdmBaseAsymAlgo::empty
    - create_spdm_context
    - SpdmBaseHashAlgo::empty
    - Writer::init
    - gen_array_clone
    - SpdmAlgorithmsResponsePayload::spdm_read
    - SpdmAlgoOtherParams::empty
    - Reader::init
    - SpdmMeasurementHashAlgo::empty
    - Option::unwrap
    - SpdmAlgStruct::default
    - SpdmMelSpecification::empty
    - SpdmMeasurementSpecification::empty
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdm_algorithms_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/finish_test.rs:15,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/finish_test.rs:22,1
    - Dst: SpdmFinishRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish_test.rs:23,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/finish_test.rs:29,1
    - Dst: SpdmFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish_test.rs:30,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/finish_test.rs:40,1
    - Dst: SpdmFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish_test.rs:41,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/finish_test.rs:50,1
    - Dst: SpdmFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish_test.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 14
    functionDepth: 7
    functionLinenumber: 14
    functionLinenumberEnd: 54
    functionName: test_finish_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish_test.rs
    functionUses: 0
    functionsReached:
    - testlib::create_spdm_context
    - SpdmFinishResponsePayload::spdm_read
    - Reader::init
    - SpdmFinishRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_finish_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: RegistryOrStandardsBodyID::get_default_vendor_id_len
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_default_vendor_id_len(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:73,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:74,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:74,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:75,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: VendorIDStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:81,1
    - Dst: VendorIDStruct::iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:83,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:83,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:84,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: VendorIDStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 2
    functionsReached:
    - VendorIDStruct::iter_mut
    - take
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<VendorIDStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:90,1
    - Dst: Self::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: VendorIDStruct::read_bytes
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - Self::read
    - Reader::init
    linkageType: ''
    returnType: Option
    signature: 'fn read_bytes(bytes: &[u8]) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - vid
    argTypes:
    - '&VendorIDStruct'
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: VendorIDStruct::eq
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, vid: &VendorIDStruct) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: VendorIDStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:125,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:126,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:126,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:131,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: VendorDefinedReqPayloadStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:138,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:144,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:144,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:148,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: VendorDefinedReqPayloadStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 1
    functionsReached:
    - Some
    - take
    - u16::read
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<VendorDefinedReqPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:161,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:162,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:163,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:163,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:168,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: VendorDefinedReqPayloadStruct::encode_large
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn encode_large(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:174,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:175,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:181,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:181,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:185,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 192
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 192
    functionName: VendorDefinedReqPayloadStruct::read_large
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 1
    functionsReached:
    - Some
    - take
    - u32::read
    - u16::read
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read_large(r: &mut Reader) -> Option<VendorDefinedReqPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:205,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:206,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:206,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:211,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 214
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 214
    functionName: VendorDefinedRspPayloadStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:218,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:224,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:224,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:228,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 235
      start: 216
    functionDepth: 5
    functionLinenumber: 216
    functionLinenumberEnd: 235
    functionName: VendorDefinedRspPayloadStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 1
    functionsReached:
    - Some
    - take
    - u16::read
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:241,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:242,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:243,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:243,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:248,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: VendorDefinedRspPayloadStruct::encode_large
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn encode_large(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:254,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:255,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:261,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:261,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:265,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 272
      start: 253
    functionDepth: 5
    functionLinenumber: 253
    functionLinenumberEnd: 272
    functionName: VendorDefinedRspPayloadStruct::read_large
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 1
    functionsReached:
    - Some
    - take
    - u32::read
    - u16::read
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read_large(r: &mut Reader) -> Option<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:289,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:293,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:299,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:299,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:300,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:300,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:301,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:301,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:305,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:305,1
    - Dst: encode_large
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:310,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:310,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:315,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:315,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:320,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 321
      start: 283
    functionDepth: 5
    functionLinenumber: 283
    functionLinenumberEnd: 321
    functionName: SpdmVendorDefinedRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - contains
    - encode
    - encode_large
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:327,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:328,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:332,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:336,1
    - Dst: RegistryOrStandardsBodyID::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:343,1
    - Dst: VendorIDStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:344,1
    - Dst: VendorDefinedReqPayloadStruct::read_large
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:346,1
    - Dst: VendorDefinedReqPayloadStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:348,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:351,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 356
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 356
    functionName: SpdmVendorDefinedRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 1
    functionsReached:
    - contains
    - Some
    - VendorIDStruct::read
    - RegistryOrStandardsBodyID::read
    - VendorDefinedReqPayloadStruct::read
    - VendorDefinedReqPayloadStruct::read_large
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmVendorDefinedRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:373,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:377,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:383,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:383,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:384,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:384,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:385,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:385,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:389,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:389,1
    - Dst: encode_large
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:394,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:394,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:399,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:399,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:404,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 405
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 405
    functionName: SpdmVendorDefinedResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - contains
    - encode
    - encode_large
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:411,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:412,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:416,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:420,1
    - Dst: RegistryOrStandardsBodyID::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:427,1
    - Dst: VendorIDStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:428,1
    - Dst: VendorDefinedRspPayloadStruct::read_large
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:430,1
    - Dst: VendorDefinedRspPayloadStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:432,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:435,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 440
      start: 407
    functionDepth: 5
    functionLinenumber: 407
    functionLinenumberEnd: 440
    functionName: SpdmVendorDefinedResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 1
    functionsReached:
    - contains
    - Some
    - VendorIDStruct::read
    - RegistryOrStandardsBodyID::read
    - VendorDefinedRspPayloadStruct::read_large
    - VendorDefinedRspPayloadStruct::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmVendorDefinedResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:468,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - VendorDefinedStruct
    constantsTouched: []
    func_position:
      end: 469
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 469
    functionName: register_vendor_defined_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 3
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register_vendor_defined_struct(context: VendorDefinedStruct)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:475,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - vendor_id_struct
    - vendor_defined_req_payload_struct
    argTypes:
    - '&VendorIDStruct'
    - '&VendorDefinedReqPayloadStruct'
    constantsTouched: []
    func_position:
      end: 484
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 484
    functionName: vendor_defined_request_handler
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - try_get_or_init
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn vendor_defined_request_handler(vendor_id_struct: &VendorIDStruct,vendor_defined_req_payload_struct:
      &VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:516,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - VendorDefinedStructEx
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: register_vendor_defined_struct_ex
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register_vendor_defined_struct_ex(context: VendorDefinedStructEx)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:525,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/message/vendor.rs:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - responder_context
    - session_id
    - req_bytes
    - rsp_bytes
    argTypes:
    - '&mut ResponderContext'
    - Option<u32>
    - '&[u8]'
    - '&''a mut [u8]'
    constantsTouched: []
    func_position:
      end: 530
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 530
    functionName: vendor_defined_request_handler_ex
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/vendor.rs
    functionUses: 0
    functionsReached:
    - try_get_or_init
    - Err
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn vendor_defined_request_handler_ex<''a>(responder_context: &mut
      ResponderContext,session_id: Option<u32>,req_bytes: &[u8],rsp_bytes: &''a mut
      [u8],) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:17,1
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:18,1
    - Dst: SpdmVersionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:19,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:27,1
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:28,1
    - Dst: SpdmVersionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:29,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:36,1
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:37,1
    - Dst: SpdmVersionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:38,1
    - Dst: Features::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/version_test.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 45
    functionName: test_case1_spdmversion_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version_test.rs
    functionUses: 0
    functionsReached:
    - testlib::create_spdm_context
    - Reader::init
    - Features::unwrap
    - SpdmVersionResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdmversion_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmFinishRequestAttributes::bits
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:26,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: SpdmFinishRequestAttributes::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmFinishRequestAttributes::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:30,1
    - Dst: SpdmFinishRequestAttributes::from_bits
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: SpdmFinishRequestAttributes::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 1
    functionsReached:
    - SpdmFinishRequestAttributes::from_bits
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmFinishRequestAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:52,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:52,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:56,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:56,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:61,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:63,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:67,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:69,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 71
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 71
    functionName: SpdmFinishRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 0
    functionsReached:
    - contains
    - encode
    - Ok
    - spdm_encode
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmFinishRequestAttributes::read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:77,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:78,1
    - Dst: SpdmOpaqueStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:82,1
    - Dst: SpdmOpaqueStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:84,1
    - Dst: SpdmSignatureStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:86,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:87,1
    - Dst: SpdmSignatureStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:88,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:90,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 99
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: SpdmFinishRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 5
    functionsReached:
    - contains
    - Some
    - SpdmSignatureStruct::spdm_read
    - SpdmSignatureStruct::default
    - SpdmFinishRequestAttributes::read
    - SpdmDigestStruct::spdm_read
    - SpdmOpaqueStruct::default
    - SpdmOpaqueStruct::spdm_read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmFinishRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:115,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:115,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:116,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:116,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:118,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:120,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:124,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:129,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: SpdmFinishResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 0
    functionsReached:
    - contains
    - encode
    - Ok
    - spdm_encode
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:138,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:139,1
    - Dst: SpdmOpaqueStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:140,1
    - Dst: SpdmOpaqueStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:142,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:144,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:148,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:154,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:156,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 163
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 163
    functionName: SpdmFinishResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 5
    functionsReached:
    - SpdmDigestStruct::default
    - contains
    - Some
    - SpdmDigestStruct::spdm_read
    - SpdmOpaqueStruct::default
    - SpdmOpaqueStruct::spdm_read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmFinishResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:182,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:192,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:200,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:206,1
    - Dst: SpdmFinishRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:209,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 180
    functionDepth: 7
    functionLinenumber: 180
    functionLinenumberEnd: 229
    functionName: tests::test_case0_spdm_finish_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - SpdmFinishRequestPayload::spdm_read
    - Reader::init
    - Box::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_finish_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:233,1
    - Dst: SpdmFinishRequestAttributes::empty
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:235,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:243,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:251,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:257,1
    - Dst: SpdmFinishRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:260,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 231
    functionDepth: 7
    functionLinenumber: 231
    functionLinenumberEnd: 270
    functionName: tests::test_case1_spdm_finish_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - SpdmFinishRequestAttributes::empty
    - SpdmFinishRequestPayload::spdm_read
    - Reader::init
    - Box::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_finish_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:274,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:278,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:286,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:295,1
    - Dst: SpdmFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:297,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 272
    functionDepth: 7
    functionLinenumber: 272
    functionLinenumberEnd: 303
    functionName: tests::test_case0_spdm_finish_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 0
    functionsReached:
    - SpdmFinishResponsePayload::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Box::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_finish_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:307,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:311,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:319,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:327,1
    - Dst: SpdmFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:329,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/finish.rs:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 305
    functionDepth: 7
    functionLinenumber: 305
    functionLinenumberEnd: 335
    functionName: tests::test_case1_spdm_finish_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/finish.rs
    functionUses: 0
    functionsReached:
    - SpdmFinishResponsePayload::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Box::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_finish_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:29,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:33,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:39,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:39,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:40,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:40,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:42,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:43,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:43,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:44,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:44,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:48,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:48,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:53,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:53,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:56,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:56,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:60,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 88
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 61
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 61
    functionName: SpdmGetCertificateRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/certificate.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - contains
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:67,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:75,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:79,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:86,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:88,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:89,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:92,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:94,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:97,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:99,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:102,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 107
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 107
    functionName: SpdmGetCertificateRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/certificate.rs
    functionUses: 6
    functionsReached:
    - contains
    - Some
    - u32::read
    - u16::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmGetCertificateRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: SpdmCertificateResponsePayload::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/certificate.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SpdmCertificateResponsePayload
    signature: fn default() -> SpdmCertificateResponsePayload
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:135,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:139,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:145,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:145,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:146,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:146,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:148,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:148,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:149,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:149,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:150,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:150,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:154,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:154,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:159,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:159,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:162,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:162,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:167,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:167,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:168,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:168,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:170,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 104
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 171
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 171
    functionName: SpdmCertificateResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/certificate.rs
    functionUses: 0
    functionsReached:
    - contains
    - encode
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:177,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:185,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:189,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:196,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:198,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:199,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:202,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:204,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:207,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:209,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:219,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:219,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:220,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:222,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 223
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 223
    functionName: SpdmCertificateResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/certificate.rs
    functionUses: 8
    functionsReached:
    - contains
    - Some
    - take
    - u32::read
    - u16::read
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmCertificateResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:240,1
    - Dst: SpdmGetCertificateRequestPayload::default
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:241,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:246,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:249,1
    - Dst: SpdmGetCertificateRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:252,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 238
    functionDepth: 7
    functionLinenumber: 238
    functionLinenumberEnd: 257
    functionName: tests::test_case0_spdm_get_certificate_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/certificate.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - SpdmGetCertificateRequestPayload::spdm_read
    - Writer::init
    - Reader::init
    - Option::unwrap
    - SpdmGetCertificateRequestPayload::default
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_get_certificate_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:261,1
    - Dst: SpdmCertificateResponsePayload::default
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:262,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:268,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:271,1
    - Dst: SpdmCertificateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:274,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/certificate.rs:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 259
    functionDepth: 7
    functionLinenumber: 259
    functionLinenumberEnd: 284
    functionName: tests::test_case0_spdm_certificate_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/certificate.rs
    functionUses: 0
    functionsReached:
    - SpdmCertificateResponsePayload::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    - SpdmCertificateResponsePayload::default
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_certificate_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmErrorCode::Unknown
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: SpdmErrorCode::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - SpdmErrorCode::Unknown
    linkageType: ''
    returnType: SpdmErrorCode
    signature: fn default() -> SpdmErrorCode
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _context
    - _bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: SpdmErrorResponseNoneExtData::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,_bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _context
    - _r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: SpdmErrorResponseNoneExtData::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,_r: &mut Reader,)
      -> Option<SpdmErrorResponseNoneExtData>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:75,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:76,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:77,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:78,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: SpdmErrorResponseNotReadyExtData::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:83,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:84,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:85,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:86,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: SpdmErrorResponseNotReadyExtData::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmErrorResponseNotReadyExtData>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:103,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:103,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:107,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:107,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:111,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:111,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:115,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:115,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 120
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 120
    functionName: SpdmErrorResponseNotReadyExtData::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:126,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:127,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:128,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:129,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 5
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: SpdmErrorResponseNotReadyExtData::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 2
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmErrorResponseNotReadyExtData>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:152,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:152,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:153,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:153,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: SpdmErrorResponseVendorExtData::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:166,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 179
      start: 158
    functionDepth: 5
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: SpdmErrorResponseVendorExtData::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 3
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmErrorResponseVendorExtData>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataNone
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: SpdmErrorResponseExtData::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 1
    functionsReached:
    - SpdmErrorResponseExtData::SpdmErrorExtDataNone
    linkageType: ''
    returnType: SpdmErrorResponseExtData
    signature: fn default() -> SpdmErrorResponseExtData
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:208,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:208,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:212,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:212,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:219,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:222,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:225,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 230
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 230
    functionName: SpdmErrorResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    - spdm_encode
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmErrorCode::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:236,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:237,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:241,1
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataNotReady
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:241,1
    - Dst: SpdmErrorResponseNotReadyExtData::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:242,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:246,1
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataVendorDefined
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:246,1
    - Dst: SpdmErrorResponseVendorExtData::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:247,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:250,1
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataNone
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:250,1
    - Dst: SpdmErrorResponseNoneExtData::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:251,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: SpdmErrorResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 3
    functionsReached:
    - SpdmErrorResponseNotReadyExtData::spdm_read
    - SpdmErrorResponseVendorExtData::spdm_read
    - Some
    - SpdmErrorResponseExtData::SpdmErrorExtDataVendorDefined
    - SpdmErrorResponseExtData::SpdmErrorExtDataNotReady
    - SpdmErrorResponseNoneExtData::spdm_read
    - SpdmErrorResponseExtData::SpdmErrorExtDataNone
    - SpdmErrorCode::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmErrorResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:279,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:288,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:291,1
    - Dst: SpdmErrorResponseNotReadyExtData::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:294,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 277
    functionDepth: 7
    functionLinenumber: 277
    functionLinenumberEnd: 300
    functionName: tests::test_case0_spdm_error_response_not_ready_ext_data
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - SpdmErrorResponseNotReadyExtData::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_error_response_not_ready_ext_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:304,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:310,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:313,1
    - Dst: SpdmErrorResponseVendorExtData::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:316,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 302
    functionDepth: 7
    functionLinenumber: 302
    functionLinenumberEnd: 321
    functionName: tests::test_case0_spdm_error_response_vendor_ext_data
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - SpdmErrorResponseVendorExtData::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_error_response_vendor_ext_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:325,1
    - Dst: SpdmErrorResponseVendorExtData::default
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:326,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:328,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:331,1
    - Dst: SpdmErrorResponseVendorExtData::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:334,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 7
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: tests::test_case1_spdm_error_response_vendor_ext_data
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - SpdmErrorResponseVendorExtData::default
    - SpdmErrorResponseVendorExtData::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_error_response_vendor_ext_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataNotReady
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:348,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:358,1
    - Dst: new_spdm_response
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:360,1
    - Dst: SpdmErrorResponseExtData::default
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:379,1
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataVendorDefined
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:381,1
    - Dst: new_spdm_response
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:387,1
    - Dst: SpdmErrorResponseExtData::default
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:404,1
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataNone
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:407,1
    - Dst: new_spdm_response
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 344
    functionDepth: 7
    functionLinenumber: 344
    functionLinenumberEnd: 409
    functionName: tests::test_case0_spdm_error_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - SpdmErrorResponseExtData::default
    - SpdmErrorResponseExtData::SpdmErrorExtDataVendorDefined
    - SpdmErrorResponseExtData::SpdmErrorExtDataNotReady
    - SpdmErrorResponseExtData::SpdmErrorExtDataNone
    - new_spdm_response
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_error_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:416,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:418,1
    - Dst: SpdmErrorResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:420,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/error.rs:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - value
    - context
    argTypes:
    - SpdmErrorResponsePayload
    - '&mut common::SpdmContext'
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 7
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: tests::new_spdm_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/error.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    - SpdmErrorResponsePayload::spdm_read
    - Option::unwrap
    linkageType: ''
    returnType: SpdmErrorResponsePayload
    signature: 'fn new_spdm_response(value: SpdmErrorResponsePayload,context: &mut
      common::SpdmContext,) -> SpdmErrorResponsePayload'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: SpdmRequestResponseCode::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmRequestResponseCode::Unknown
    linkageType: ''
    returnType: SpdmRequestResponseCode
    signature: fn default() -> SpdmRequestResponseCode
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:131,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:132,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: SpdmMessageHeader::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmVersion::read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:137,1
    - Dst: SpdmRequestResponseCode::read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:138,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 10
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: SpdmMessageHeader::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 70
    functionsReached:
    - SpdmVersion::read
    - SpdmRequestResponseCode::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmMessageHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:156,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:157,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: SpdmMessageGeneralPayload::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:162,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:163,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 5
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: SpdmMessageGeneralPayload::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 4
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmMessageGeneralPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:174,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:174,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:175,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:175,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: SpdmMessageGeneralPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:180,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:181,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: SpdmMessageGeneralPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmMessageGeneralPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:273,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:277,1
    - Dst: SpdmMessagePayload::SpdmVersionResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:277,1
    - Dst: SpdmVersionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:278,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:282,1
    - Dst: SpdmMessagePayload::SpdmGetVersionRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:282,1
    - Dst: SpdmGetVersionRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:283,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:288,1
    - Dst: SpdmMessagePayload::SpdmCapabilitiesResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:288,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:289,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:293,1
    - Dst: SpdmMessagePayload::SpdmGetCapabilitiesRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:293,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:294,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:299,1
    - Dst: SpdmMessagePayload::SpdmAlgorithmsResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:299,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:300,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:304,1
    - Dst: SpdmMessagePayload::SpdmNegotiateAlgorithmsRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:304,1
    - Dst: SpdmNegotiateAlgorithmsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:305,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:310,1
    - Dst: SpdmMessagePayload::SpdmDigestsResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:310,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:311,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:315,1
    - Dst: SpdmMessagePayload::SpdmGetDigestsRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:315,1
    - Dst: SpdmGetDigestsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:316,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:321,1
    - Dst: SpdmMessagePayload::SpdmCertificateResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:321,1
    - Dst: SpdmCertificateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:322,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:326,1
    - Dst: SpdmMessagePayload::SpdmGetCertificateRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:326,1
    - Dst: SpdmGetCertificateRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:327,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:332,1
    - Dst: SpdmMessagePayload::SpdmChallengeAuthResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:332,1
    - Dst: SpdmChallengeAuthResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:333,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:337,1
    - Dst: SpdmMessagePayload::SpdmChallengeRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:337,1
    - Dst: SpdmChallengeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:338,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:343,1
    - Dst: SpdmMessagePayload::SpdmMeasurementsResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:343,1
    - Dst: SpdmMeasurementsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:344,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:348,1
    - Dst: SpdmMessagePayload::SpdmGetMeasurementsRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:348,1
    - Dst: SpdmGetMeasurementsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:349,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:354,1
    - Dst: SpdmMessagePayload::SpdmKeyExchangeResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:354,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:355,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:359,1
    - Dst: SpdmMessagePayload::SpdmKeyExchangeRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:359,1
    - Dst: SpdmKeyExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:360,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:365,1
    - Dst: SpdmMessagePayload::SpdmFinishResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:365,1
    - Dst: SpdmFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:366,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:370,1
    - Dst: SpdmMessagePayload::SpdmFinishRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:370,1
    - Dst: SpdmFinishRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:371,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:376,1
    - Dst: SpdmMessagePayload::SpdmPskExchangeResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:376,1
    - Dst: SpdmPskExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:377,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:381,1
    - Dst: SpdmMessagePayload::SpdmPskExchangeRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:381,1
    - Dst: SpdmPskExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:382,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:387,1
    - Dst: SpdmMessagePayload::SpdmPskFinishResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:387,1
    - Dst: SpdmPskFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:388,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:392,1
    - Dst: SpdmMessagePayload::SpdmPskFinishRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:392,1
    - Dst: SpdmPskFinishRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:393,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:398,1
    - Dst: SpdmMessagePayload::SpdmHeartbeatResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:398,1
    - Dst: SpdmHeartbeatResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:399,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:403,1
    - Dst: SpdmMessagePayload::SpdmHeartbeatRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:403,1
    - Dst: SpdmHeartbeatRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:404,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:409,1
    - Dst: SpdmMessagePayload::SpdmKeyUpdateResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:409,1
    - Dst: SpdmKeyUpdateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:410,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:414,1
    - Dst: SpdmMessagePayload::SpdmKeyUpdateRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:414,1
    - Dst: SpdmKeyUpdateRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:415,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:420,1
    - Dst: SpdmMessagePayload::SpdmEndSessionResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:420,1
    - Dst: SpdmEndSessionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:421,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:425,1
    - Dst: SpdmMessagePayload::SpdmEndSessionRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:425,1
    - Dst: SpdmEndSessionRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:426,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:432,1
    - Dst: SpdmMessagePayload::SpdmErrorResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:432,1
    - Dst: SpdmErrorResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:433,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:440,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 123
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 441
      start: 269
    functionDepth: 11
    functionLinenumber: 269
    functionLinenumberEnd: 441
    functionName: SpdmMessage::read_with_detailed_error
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 1
    functionsReached:
    - SpdmKeyUpdateRequestPayload::spdm_read
    - SpdmMessagePayload::SpdmCertificateResponse
    - SpdmMessagePayload::SpdmKeyExchangeResponse
    - SpdmEndSessionRequestPayload::spdm_read
    - SpdmGetDigestsRequestPayload::spdm_read
    - SpdmMessagePayload::SpdmNegotiateAlgorithmsRequest
    - SpdmMessagePayload::SpdmEndSessionRequest
    - SpdmMessagePayload::SpdmKeyUpdateResponse
    - SpdmMessageHeader::read
    - SpdmMessagePayload::SpdmChallengeRequest
    - SpdmGetVersionRequestPayload::spdm_read
    - SpdmCertificateResponsePayload::spdm_read
    - SpdmMessagePayload::SpdmGetCapabilitiesRequest
    - SpdmCapabilitiesResponsePayload::spdm_read
    - SpdmPskFinishRequestPayload::spdm_read
    - SpdmGetCertificateRequestPayload::spdm_read
    - SpdmFinishRequestPayload::spdm_read
    - SpdmMessagePayload::SpdmAlgorithmsResponse
    - SpdmGetMeasurementsRequestPayload::spdm_read
    - SpdmMessagePayload::SpdmVersionResponse
    - SpdmMessagePayload::SpdmChallengeAuthResponse
    - SpdmMessagePayload::SpdmMeasurementsResponse
    - SpdmEndSessionResponsePayload::spdm_read
    - SpdmKeyUpdateResponsePayload::spdm_read
    - SpdmMessagePayload::SpdmGetDigestsRequest
    - SpdmKeyExchangeResponsePayload::spdm_read
    - SpdmDigestsResponsePayload::spdm_read
    - SpdmMessagePayload::SpdmGetMeasurementsRequest
    - SpdmPskFinishResponsePayload::spdm_read
    - SpdmMessagePayload::SpdmKeyExchangeRequest
    - SpdmMessagePayload::SpdmPskExchangeRequest
    - SpdmMessagePayload::SpdmHeartbeatResponse
    - Some
    - SpdmMessagePayload::SpdmKeyUpdateRequest
    - SpdmMessagePayload::SpdmCapabilitiesResponse
    - SpdmMessagePayload::SpdmPskExchangeResponse
    - SpdmMessagePayload::SpdmPskFinishRequest
    - SpdmHeartbeatResponsePayload::spdm_read
    - SpdmMessagePayload::SpdmFinishRequest
    - SpdmMessagePayload::SpdmDigestsResponse
    - SpdmMessagePayload::SpdmFinishResponse
    - SpdmErrorResponsePayload::spdm_read
    - SpdmPskExchangeResponsePayload::spdm_read
    - SpdmKeyExchangeRequestPayload::spdm_read
    - SpdmFinishResponsePayload::spdm_read
    - SpdmChallengeAuthResponsePayload::spdm_read
    - SpdmMeasurementsResponsePayload::spdm_read
    - SpdmHeartbeatRequestPayload::spdm_read
    - SpdmVersionResponsePayload::spdm_read
    - SpdmChallengeRequestPayload::spdm_read
    - SpdmAlgorithmsResponsePayload::spdm_read
    - SpdmNegotiateAlgorithmsRequestPayload::spdm_read
    - SpdmMessagePayload::SpdmGetCertificateRequest
    - SpdmMessagePayload::SpdmEndSessionResponse
    - SpdmMessagePayload::SpdmErrorResponse
    - SpdmMessagePayload::SpdmGetVersionRequest
    - SpdmGetCapabilitiesRequestPayload::spdm_read
    - SpdmPskExchangeRequestPayload::spdm_read
    - SpdmMessagePayload::SpdmHeartbeatRequest
    - SpdmMessagePayload::SpdmPskFinishResponse
    linkageType: ''
    returnType: Option
    signature: 'pub fn read_with_detailed_error(context: &mut SpdmContext,r: &mut
      Reader,) -> Option<SpdmMessage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:451,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:451,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:457,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:460,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:463,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:467,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:470,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:474,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:477,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:481,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:484,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:488,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:491,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:495,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:498,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:502,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:505,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:509,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:512,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:516,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:519,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:523,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:526,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:530,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:533,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:537,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:540,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:544,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:547,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:551,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:554,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:559,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:563,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:567,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:571,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:576,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:579,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:582,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:586,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:590,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:594,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:598,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:601,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 173
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 602
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 602
    functionName: SpdmMessage::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    - spdm_encode
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessage::read_with_detailed_error
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 12
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: SpdmMessage::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 9
    functionsReached:
    - SpdmMessage::read_with_detailed_error
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmMessage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:628,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:635,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:637,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 643
      start: 626
    functionDepth: 11
    functionLinenumber: 626
    functionLinenumberEnd: 643
    functionName: tests::test_case0_spdm_message_header
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Reader::init
    - Writer::init
    - SpdmMessageHeader::read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_message_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:647,1
    - Dst: SpdmVersionStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:647,1
    - Dst: SpdmMessagePayload::SpdmVersionResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:658,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:664,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 679
      start: 646
    functionDepth: 12
    functionLinenumber: 646
    functionLinenumberEnd: 679
    functionName: tests::test_case0_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmVersionStruct::default
    - create_spdm_context
    - gen_array_clone
    - SpdmMessagePayload::SpdmVersionResponse
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmGetCapabilitiesRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:687,1
    - Dst: SpdmRequestCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:694,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:698,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 713
      start: 681
    functionDepth: 12
    functionLinenumber: 681
    functionLinenumberEnd: 713
    functionName: tests::test_case1_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - create_spdm_context
    - SpdmRequestCapabilityExFlags::default
    - SpdmMessagePayload::SpdmGetCapabilitiesRequest
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmCapabilitiesResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:721,1
    - Dst: SpdmResponseCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:727,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:731,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 743
      start: 715
    functionDepth: 12
    functionLinenumber: 715
    functionLinenumberEnd: 743
    functionName: tests::test_case2_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmResponseCapabilityExFlags::default
    - SpdmMessagePayload::SpdmCapabilitiesResponse
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmNegotiateAlgorithmsRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:751,1
    - Dst: SpdmAlgoOtherParams::empty
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:754,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:758,1
    - Dst: SpdmAlg::SpdmAlgoDhe
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:763,1
    - Dst: SpdmAlg::SpdmAlgoAead
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:767,1
    - Dst: SpdmAlg::SpdmAlgoReqAsym
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:771,1
    - Dst: SpdmAlg::SpdmAlgoKeySchedule
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:777,1
    - Dst: SpdmAlg::SpdmAlgoPqcReqAsym
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:783,1
    - Dst: SpdmAlg::SpdmAlgoKem
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:789,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:795,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 844
      start: 745
    functionDepth: 12
    functionLinenumber: 745
    functionLinenumberEnd: 844
    functionName: tests::test_case3_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmAlg::SpdmAlgoAead
    - create_spdm_context
    - SpdmAlg::SpdmAlgoKeySchedule
    - SpdmAlg::SpdmAlgoPqcReqAsym
    - SpdmAlg::SpdmAlgoKem
    - SpdmAlg::SpdmAlgoDhe
    - SpdmMessagePayload::SpdmNegotiateAlgorithmsRequest
    - SpdmAlgoOtherParams::empty
    - SpdmAlg::SpdmAlgoReqAsym
    - SpdmMelSpecification::empty
    linkageType: ''
    returnType: void
    signature: fn test_case3_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmAlgorithmsResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:852,1
    - Dst: SpdmAlgoOtherParams::empty
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:854,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:858,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:859,1
    - Dst: SpdmAlg::SpdmAlgoDhe
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:864,1
    - Dst: SpdmAlg::SpdmAlgoAead
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:868,1
    - Dst: SpdmAlg::SpdmAlgoReqAsym
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:872,1
    - Dst: SpdmAlg::SpdmAlgoKeySchedule
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:878,1
    - Dst: SpdmAlg::SpdmAlgoPqcReqAsym
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:884,1
    - Dst: SpdmPqcReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:884,1
    - Dst: SpdmAlg::SpdmAlgoKem
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:888,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:888,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:893,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 948
      start: 846
    functionDepth: 12
    functionLinenumber: 846
    functionLinenumberEnd: 948
    functionName: tests::test_case4_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmAlg::SpdmAlgoAead
    - create_spdm_context
    - SpdmAlg::SpdmAlgoKeySchedule
    - SpdmAlg::SpdmAlgoPqcReqAsym
    - SpdmAlg::SpdmAlgoKem
    - SpdmAlg::SpdmAlgoDhe
    - SpdmPqcReqAsymAlgo::empty
    - SpdmKemAlgo::empty
    - SpdmMessagePayload::SpdmAlgorithmsResponse
    - SpdmAlgoOtherParams::empty
    - SpdmAlg::SpdmAlgoReqAsym
    - SpdmMelSpecification::empty
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case4_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmCertificateResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:956,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:963,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 978
      start: 950
    functionDepth: 12
    functionLinenumber: 950
    functionLinenumberEnd: 978
    functionName: tests::test_case5_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - create_spdm_context
    - SpdmMessagePayload::SpdmCertificateResponse
    linkageType: ''
    returnType: void
    signature: fn test_case5_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmChallengeRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:986,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:999,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1002,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 980
    functionDepth: 12
    functionLinenumber: 980
    functionLinenumberEnd: 1020
    functionName: tests::test_case6_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmMessagePayload::SpdmChallengeRequest
    - new_spdm_message
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case6_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmChallengeAuthResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1028,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1035,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1042,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1058,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1064,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1022
    functionDepth: 12
    functionLinenumber: 1022
    functionLinenumberEnd: 1103
    functionName: tests::test_case7_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmMessagePayload::SpdmChallengeAuthResponse
    - Box::new
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case7_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmGetMeasurementsRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1111,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1126,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1105
    functionDepth: 12
    functionLinenumber: 1105
    functionLinenumberEnd: 1151
    functionName: tests::test_case8_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmMessagePayload::SpdmGetMeasurementsRequest
    - new_spdm_message
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case8_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1167,1
    - Dst: SpdmMessagePayload::SpdmMeasurementsResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1178,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1185,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1185,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1207,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1153
    functionDepth: 12
    functionLinenumber: 1153
    functionLinenumberEnd: 1243
    functionName: tests::test_case9_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - create_spdm_context
    - Writer::init
    - SpdmMessagePayload::SpdmMeasurementsResponse
    - u24::new
    - Writer::used
    linkageType: ''
    returnType: void
    signature: fn test_case9_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmKeyExchangeRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1251,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1270,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1245
    functionDepth: 12
    functionLinenumber: 1245
    functionLinenumberEnd: 1296
    functionName: tests::test_case10_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmMessagePayload::SpdmKeyExchangeRequest
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case10_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmFinishRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1304,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1313,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1321,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1298
    functionDepth: 12
    functionLinenumber: 1298
    functionLinenumberEnd: 1344
    functionName: tests::test_case12_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmMessagePayload::SpdmFinishRequest
    - new_spdm_message
    - Box::new
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case12_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmFinishResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1352,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1355,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1363,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1346
    functionDepth: 12
    functionLinenumber: 1346
    functionLinenumberEnd: 1380
    functionName: tests::test_case13_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmMessagePayload::SpdmFinishResponse
    - Box::new
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case13_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmPskExchangeRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1388,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1406,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1408,1
    - Dst: SpdmMessagePayload::SpdmPskExchangeResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1440,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1445,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1457,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1461,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1464,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1382
    functionDepth: 12
    functionLinenumber: 1382
    functionLinenumberEnd: 1497
    functionName: tests::test_case114_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmMessagePayload::SpdmPskExchangeRequest
    - create_spdm_context
    - SpdmMessagePayload::SpdmPskExchangeResponse
    - Box::new
    linkageType: ''
    returnType: void
    signature: fn test_case114_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmPskFinishRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1505,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1508,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1516,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1499
    functionDepth: 12
    functionLinenumber: 1499
    functionLinenumberEnd: 1529
    functionName: tests::test_case15_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - Box::new
    - create_spdm_context
    - SpdmMessagePayload::SpdmPskFinishRequest
    linkageType: ''
    returnType: void
    signature: fn test_case15_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmKeyUpdateRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1537,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1542,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1544,1
    - Dst: SpdmMessagePayload::SpdmKeyUpdateResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1558,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1563,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1531
    functionDepth: 12
    functionLinenumber: 1531
    functionLinenumberEnd: 1577
    functionName: tests::test_case17_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmMessagePayload::SpdmKeyUpdateRequest
    - create_spdm_context
    - SpdmMessagePayload::SpdmKeyUpdateResponse
    linkageType: ''
    returnType: void
    signature: fn test_case17_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmEndSessionRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1585,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1590,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1579
    functionDepth: 12
    functionLinenumber: 1579
    functionLinenumberEnd: 1602
    functionName: tests::test_case18_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmMessagePayload::SpdmEndSessionRequest
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case18_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmErrorResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1610,1
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataNotReady
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1613,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1623,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1604
    functionDepth: 12
    functionLinenumber: 1604
    functionLinenumberEnd: 1642
    functionName: tests::test_case19_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmErrorResponseExtData::SpdmErrorExtDataNotReady
    - new_spdm_message
    - SpdmMessagePayload::SpdmErrorResponse
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case19_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmGetVersionRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1650,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1653,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1644
    functionDepth: 12
    functionLinenumber: 1644
    functionLinenumberEnd: 1655
    functionName: tests::test_case20_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - create_spdm_context
    - SpdmMessagePayload::SpdmGetVersionRequest
    linkageType: ''
    returnType: void
    signature: fn test_case20_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmGetDigestsRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1663,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1666,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1657
    functionDepth: 12
    functionLinenumber: 1657
    functionLinenumberEnd: 1668
    functionName: tests::test_case21_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmMessagePayload::SpdmGetDigestsRequest
    - new_spdm_message
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case21_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmGetCertificateRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1676,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1685,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1670
    functionDepth: 12
    functionLinenumber: 1670
    functionLinenumberEnd: 1696
    functionName: tests::test_case22_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmMessagePayload::SpdmGetCertificateRequest
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case22_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmPskFinishResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1704,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1711,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1698
    functionDepth: 12
    functionLinenumber: 1698
    functionLinenumberEnd: 1713
    functionName: tests::test_case23_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmMessagePayload::SpdmPskFinishResponse
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case23_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmHeartbeatRequest
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1721,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1723,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1715
    functionDepth: 12
    functionLinenumber: 1715
    functionLinenumberEnd: 1725
    functionName: tests::test_case24_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmMessagePayload::SpdmHeartbeatRequest
    - new_spdm_message
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case24_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmEndSessionResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1733,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1727
    functionDepth: 7
    functionLinenumber: 1727
    functionLinenumberEnd: 1736
    functionName: tests::test_case25_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmMessagePayload::SpdmEndSessionResponse
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case25_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRequestResponseCode::Unknown
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1742,1
    - Dst: SpdmMessagePayload::SpdmEndSessionResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1744,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1746,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1748,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1750,1
    - Dst: SpdmMessage::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1738
    functionDepth: 11
    functionLinenumber: 1738
    functionLinenumberEnd: 1753
    functionName: tests::test_case26_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - SpdmRequestResponseCode::Unknown
    - SpdmMessage::spdm_read
    - Writer::init
    - SpdmMessagePayload::SpdmEndSessionResponse
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn test_case26_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmDigestsResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1762,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1764,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1767,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1772,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1773,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1777,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1777,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1780,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1756
    functionDepth: 12
    functionLinenumber: 1756
    functionLinenumberEnd: 1792
    functionName: tests::test_case27_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyUsageMask::empty
    - new_spdm_message
    - create_spdm_context
    - gen_array_clone
    - Box::new
    - SpdmMessagePayload::SpdmDigestsResponse
    linkageType: ''
    returnType: void
    signature: fn test_case27_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmHeartbeatResponse
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1800,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1802,1
    - Dst: new_spdm_message
      Src: /src/spdm-rs/spdmlib/src/message/mod.rs:1803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1794
    functionDepth: 12
    functionLinenumber: 1794
    functionLinenumberEnd: 1804
    functionName: tests::test_case28_spdm_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/mod.rs
    functionUses: 0
    functionsReached:
    - new_spdm_message
    - SpdmMessagePayload::SpdmHeartbeatResponse
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case28_spdm_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeyUpdateOperation::Unknown
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: SpdmKeyUpdateOperation::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_update.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyUpdateOperation::Unknown
    linkageType: ''
    returnType: SpdmKeyUpdateOperation
    signature: fn default() -> SpdmKeyUpdateOperation
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:39,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:39,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:43,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:43,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 48
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 48
    functionName: SpdmKeyUpdateRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_update.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeyUpdateOperation::read
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:54,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:55,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 6
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: SpdmKeyUpdateRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_update.rs
    functionUses: 4
    functionsReached:
    - SpdmKeyUpdateOperation::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmKeyUpdateRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:84,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:84,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:88,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:88,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: SpdmKeyUpdateResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_update.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeyUpdateOperation::read
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:99,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:100,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: SpdmKeyUpdateResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_update.rs
    functionUses: 4
    functionsReached:
    - SpdmKeyUpdateOperation::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmKeyUpdateResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:130,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:136,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:139,1
    - Dst: SpdmKeyUpdateRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:142,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 7
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: tests::test_case0_spdm_key_update_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_update.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyUpdateRequestPayload::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_key_update_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:153,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:159,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:162,1
    - Dst: SpdmKeyUpdateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:165,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/key_update.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 151
    functionDepth: 7
    functionLinenumber: 151
    functionLinenumberEnd: 172
    functionName: tests::test_case0_spdm_key_update_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_update.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    - SpdmKeyUpdateResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_key_update_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:33,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:33,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:37,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:37,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:42,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:47,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:47,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:50,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:50,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:52,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:52,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:57,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:58,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:58,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:58,1
    - Dst: Bytes::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:68,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:68,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 92
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 73
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 73
    functionName: SpdmChunkSendRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send.rs
    functionUses: 0
    functionsReached:
    - is_some
    - encode
    - unwrap
    - Ok
    - Bytes::extend_from_slice
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmChunkSenderAttributes::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:80,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:81,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:83,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:85,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:88,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:90,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:92,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:111,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:112,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:117,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 74
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 124
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 124
    functionName: SpdmChunkSendRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send.rs
    functionUses: 2
    functionsReached:
    - Some
    - take
    - u32::read
    - u16::read
    - copy_from_slice
    - SpdmChunkSenderAttributes::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmChunkSendRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmChunkSenderAttributes::bits
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:137,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: SpdmChunkSenderAttributes::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmChunkSenderAttributes::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:141,1
    - Dst: SpdmChunkSenderAttributes::from_bits
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: SpdmChunkSenderAttributes::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send.rs
    functionUses: 2
    functionsReached:
    - u8::read
    - SpdmChunkSenderAttributes::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmChunkSenderAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:163,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:163,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:167,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:167,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:172,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:172,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:177,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:177,1
    - Dst: Bytes::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:182,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:182,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 190
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 190
    functionName: SpdmChunkSendAckResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - encode
    - Ok
    - Bytes::extend_from_slice
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmChunkReceiverAttributes::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:197,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:198,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:200,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:202,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:206,1
    - Dst: left
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:208,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:212,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:213,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:222,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 228
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 228
    functionName: SpdmChunkSendAckResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send.rs
    functionUses: 2
    functionsReached:
    - contains
    - Some
    - take
    - u32::read
    - u16::read
    - left
    - copy_from_slice
    - SpdmChunkReceiverAttributes::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmChunkSendAckResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmChunkReceiverAttributes::bits
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:241,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: SpdmChunkReceiverAttributes::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send.rs
    functionUses: 0
    functionsReached:
    - SpdmChunkReceiverAttributes::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:245,1
    - Dst: SpdmChunkReceiverAttributes::from_bits
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send.rs:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: SpdmChunkReceiverAttributes::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send.rs
    functionUses: 1
    functionsReached:
    - SpdmChunkReceiverAttributes::from_bits
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmChunkReceiverAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:26,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:26,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:27,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:27,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:32,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:32,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:37,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:37,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 42
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 42
    functionName: SpdmChunkGetRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_get.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:49,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:50,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:52,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:54,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: SpdmChunkGetRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_get.rs
    functionUses: 2
    functionsReached:
    - u32::read
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmChunkGetRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:80,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:80,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:84,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:84,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:89,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:89,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:94,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:94,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:97,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:97,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:99,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:99,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:104,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:104,1
    - Dst: Bytes::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:111,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:111,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 114
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 114
    functionName: SpdmChunkResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_get.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - encode
    - Ok
    - Bytes::extend_from_slice
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmChunkSenderAttributes::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:121,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:122,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:124,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:126,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:129,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:131,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:133,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:133,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:137,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:145,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/chunk_get.rs:151,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 158
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 158
    functionName: SpdmChunkResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_get.rs
    functionUses: 2
    functionsReached:
    - Some
    - take
    - u32::read
    - u16::read
    - copy_from_slice
    - SpdmChunkSenderAttributes::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmChunkResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:17,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:23,1
    - Dst: SpdmNonceStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:27,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:29,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:35,1
    - Dst: SpdmNonceStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:39,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 16
    functionDepth: 7
    functionLinenumber: 16
    functionLinenumberEnd: 45
    functionName: test_measurement_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement_test.rs
    functionUses: 0
    functionsReached:
    - testlib::create_spdm_context
    - Writer::init
    - SpdmNonceStruct::default
    - SpdmMeasurementContextStruct::default
    linkageType: ''
    returnType: void
    signature: fn test_measurement_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:49,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:53,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:54,1
    - Dst: LittleEndian::write_u24
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:56,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:57,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:63,1
    - Dst: SpdmMeasurementsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/measurement_test.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: test_measurement_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement_test.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u16
    - SpdmMeasurementsResponsePayload::spdm_read
    - set_bits
    - Reader::init
    - LittleEndian::write_u24
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_measurement_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/end_session_test.rs:12,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/end_session_test.rs:17,1
    - Dst: SpdmEndSessionRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/end_session_test.rs:18,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/end_session_test.rs:24,1
    - Dst: SpdmEndSessionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/end_session_test.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 28
    functionName: test_end_session_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session_test.rs
    functionUses: 0
    functionsReached:
    - SpdmEndSessionResponsePayload::spdm_read
    - testlib::create_spdm_context
    - Reader::init
    - SpdmEndSessionRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_end_session_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat_test.rs:12,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat_test.rs:17,1
    - Dst: SpdmHeartbeatRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat_test.rs:18,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat_test.rs:24,1
    - Dst: SpdmHeartbeatResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/heartbeat_test.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 28
    functionName: test_heartbeat_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/heartbeat_test.rs
    functionUses: 0
    functionsReached:
    - SpdmHeartbeatResponsePayload::spdm_read
    - testlib::create_spdm_context
    - Reader::init
    - SpdmHeartbeatRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_heartbeat_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:13,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:17,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:29,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:30,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:32,1
    - Dst: SpdmCertificateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 12
    functionDepth: 7
    functionLinenumber: 12
    functionLinenumberEnd: 36
    functionName: test_certificate_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/certificate_test.rs
    functionUses: 0
    functionsReached:
    - SpdmCertificateResponsePayload::spdm_read
    - LittleEndian::write_u16
    - Writer::init
    - Reader::init
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_certificate_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:40,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:47,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:48,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:50,1
    - Dst: SpdmCertificateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/certificate_test.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 7
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: test_certificate_struct_negative
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/certificate_test.rs
    functionUses: 0
    functionsReached:
    - SpdmCertificateResponsePayload::spdm_read
    - testlib::create_spdm_context
    - LittleEndian::write_u16
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn test_certificate_struct_negative()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:32,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:32,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:36,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:36,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:37,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:37,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:42,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:42,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:47,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:47,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:52,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:52,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:58,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:58,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:64,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:64,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:66,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:66,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:72,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:72,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:74,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:74,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:75,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:75,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 105
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 78
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 78
    functionName: SpdmPskExchangeRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementSummaryHashType::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:84,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:89,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:93,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:103,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:104,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:106,1
    - Dst: SpdmPskContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:107,1
    - Dst: SpdmOpaqueStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:108,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:110,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:114,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:118,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:123,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:123,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:124,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:126,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:126,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:131,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:133,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:133,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:134,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:137,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 108
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 144
      start: 80
    functionDepth: 6
    functionLinenumber: 80
    functionLinenumberEnd: 144
    functionName: SpdmPskExchangeRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs
    functionUses: 4
    functionsReached:
    - SpdmPskContextStruct::default
    - contains
    - Some
    - SpdmMeasurementSummaryHashType::read
    - take
    - u16::read
    - SpdmPskHintStruct::default
    - iter_mut
    - SpdmOpaqueStruct::default
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmPskExchangeRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:164,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:164,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:168,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:168,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:169,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:169,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:173,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:173,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:175,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:180,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:180,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:182,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:182,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:188,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:188,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:195,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:198,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:198,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:204,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:204,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:207,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:207,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:208,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:208,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:210,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:211,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 115
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 212
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 212
    functionName: SpdmPskExchangeResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs
    functionUses: 0
    functionsReached:
    - contains
    - encode
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    - spdm_encode
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:218,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:219,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:221,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:222,1
    - Dst: SpdmPskContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:224,1
    - Dst: SpdmOpaqueStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:225,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:227,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:228,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:241,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:247,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:249,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:252,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:252,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:257,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:259,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:259,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:260,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:262,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:264,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 94
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 272
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 272
    functionName: SpdmPskExchangeResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs
    functionUses: 4
    functionsReached:
    - SpdmPskContextStruct::default
    - SpdmDigestStruct::default
    - contains
    - Some
    - take
    - u16::read
    - SpdmDigestStruct::spdm_read
    - iter_mut
    - SpdmOpaqueStruct::default
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmPskExchangeResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:295,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:314,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:317,1
    - Dst: SpdmPskExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:323,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 290
    functionDepth: 7
    functionLinenumber: 290
    functionLinenumberEnd: 351
    functionName: tests::test_case0_spdm_psk_exchange_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    - SpdmPskExchangeRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_psk_exchange_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:355,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:374,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:377,1
    - Dst: SpdmPskExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:380,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 353
    functionDepth: 7
    functionLinenumber: 353
    functionLinenumberEnd: 399
    functionName: tests::test_case1_spdm_psk_exchange_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    - SpdmPskExchangeRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_psk_exchange_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:407,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:413,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:425,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:429,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:435,1
    - Dst: SpdmPskExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:444,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:444,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:482,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:487,1
    - Dst: SpdmPskExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:493,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:493,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 401
    functionDepth: 7
    functionLinenumber: 401
    functionLinenumberEnd: 500
    functionName: tests::test_case0_spdm_psk_exchange_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs
    functionUses: 0
    functionsReached:
    - SpdmPskExchangeResponsePayload::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Box::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_psk_exchange_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:504,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:510,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:522,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:526,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:534,1
    - Dst: SpdmPskExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:537,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs:537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 502
    functionDepth: 7
    functionLinenumber: 502
    functionLinenumberEnd: 566
    functionName: tests::test_case1_spdm_psk_exchange_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs
    functionUses: 0
    functionsReached:
    - SpdmPskExchangeResponsePayload::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Box::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_psk_exchange_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:20,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:20,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:21,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:21,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: SpdmRespondIfReadyRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:29,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:30,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: SpdmRespondIfReadyRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs
    functionUses: 0
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmRespondIfReadyRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:45,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:45,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:46,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:46,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: SpdmRespondIfReadyRespondPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:54,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:55,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: SpdmRespondIfReadyRespondPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs
    functionUses: 0
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmRespondIfReadyRespondPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:23,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:23,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:24,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:24,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: SpdmGetEncapsulatedRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:32,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:33,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: SpdmGetEncapsulatedRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
    functionUses: 2
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmGetEncapsulatedRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:51,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:51,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:55,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:55,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: SpdmEncapsulatedRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:63,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:64,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: SpdmEncapsulatedRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
    functionUses: 3
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmEncapsulatedRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:82,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:82,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:86,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:86,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: SpdmDeliverEncapsulatedResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:94,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:95,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: SpdmDeliverEncapsulatedResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
    functionUses: 4
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmDeliverEncapsulatedResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:115,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:115,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:119,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:119,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:125,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:125,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:129,1
    - Dst: u24::encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:129,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:129,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 135
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 135
    functionName: SpdmEncapsulatedResponseAckPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - u24::encode
    - Result::map_err
    - u24::new
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:141,1
    - Dst: SpdmEncapsulatedResponseAckPayloadType::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:142,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:146,1
    - Dst: u24::read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:147,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated.rs:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: SpdmEncapsulatedResponseAckPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
    functionUses: 5
    functionsReached:
    - Some
    - u24::read
    - u8::read
    - SpdmEncapsulatedResponseAckPayloadType::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmEncapsulatedResponseAckPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: SpdmEncapsulatedResponseAckPayloadType::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmEncapsulatedResponseAckPayloadType
    signature: fn default() -> SpdmEncapsulatedResponseAckPayloadType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:16,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:24,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:26,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:27,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:31,1
    - Dst: SpdmKeyExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:32,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:39,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:41,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:42,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:46,1
    - Dst: SpdmKeyExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 50
    functionName: test_key_exchange_req_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs
    functionUses: 0
    functionsReached:
    - get_u8
    - SpdmKeyExchangeRequestPayload::spdm_read
    - LittleEndian::write_u16
    - Reader::init
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_key_exchange_req_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:54,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:63,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:65,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:66,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:70,1
    - Dst: SpdmKeyExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:71,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:78,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:80,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:81,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:85,1
    - Dst: SpdmKeyExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 53
    functionDepth: 7
    functionLinenumber: 53
    functionLinenumberEnd: 88
    functionName: test_key_exchange_req_struct_extend
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs
    functionUses: 0
    functionsReached:
    - get_u8
    - SpdmKeyExchangeRequestPayload::spdm_read
    - LittleEndian::write_u16
    - Reader::init
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_key_exchange_req_struct_extend()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:92,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:104,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:110,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:115,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:116,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:124,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:130,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:135,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:136,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:142,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:143,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:147,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 111
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 91
    functionDepth: 7
    functionLinenumber: 91
    functionLinenumberEnd: 150
    functionName: test_key_exchange_rsp_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs
    functionUses: 0
    functionsReached:
    - testlib::create_spdm_context
    - SpdmKeyExchangeResponsePayload::spdm_read
    - LittleEndian::write_u16
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn test_key_exchange_rsp_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:154,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:167,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:173,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:178,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:179,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:188,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:194,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:199,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 153
    functionDepth: 7
    functionLinenumber: 153
    functionLinenumberEnd: 203
    functionName: test_key_exchange_rsp_struct_extend
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs
    functionUses: 0
    functionsReached:
    - testlib::create_spdm_context
    - SpdmKeyExchangeResponsePayload::spdm_read
    - LittleEndian::write_u16
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn test_key_exchange_rsp_struct_extend()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:26,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:26,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:27,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:27,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: SpdmGetDigestsRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/digest.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:35,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:36,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: SpdmGetDigestsRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/digest.rs
    functionUses: 6
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmGetDigestsRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:61,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:61,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:66,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:66,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:69,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:69,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:81,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:81,1
    - Dst: Digest::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:82,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:88,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:88,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:89,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:89,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:93,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:93,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:94,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:94,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:98,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:98,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:99,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:99,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:104,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 108
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 105
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 105
    functionName: SpdmDigestsResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/digest.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - iter
    - Digest::spdm_encode
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:113,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:115,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:118,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:127,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:127,1
    - Dst: '[T; N]::iter_mut'
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:128,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:128,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:129,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:132,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:133,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:137,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:137,1
    - Dst: '[T; N]::iter_mut'
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:141,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:141,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:142,1
    - Dst: '[T; N]::iter_mut'
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:144,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:144,1
    - Dst: SpdmCertificateModelType::read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:145,1
    - Dst: '[T; N]::iter_mut'
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:147,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:147,1
    - Dst: SpdmKeyUsageMask::read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:148,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:152,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 87
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 160
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 160
    functionName: SpdmDigestsResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/digest.rs
    functionUses: 11
    functionsReached:
    - SpdmKeyUsageMask::empty
    - SpdmDigestStruct::default
    - Some
    - take
    - SpdmKeyUsageMask::read
    - gen_array_clone
    - '[T; N]::iter_mut'
    - SpdmDigestStruct::spdm_read
    - SpdmCertificateModelType::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmDigestsResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:179,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:183,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:186,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:191,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:192,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:196,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:196,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:204,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:209,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:212,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 177
    functionDepth: 5
    functionLinenumber: 177
    functionLinenumberEnd: 224
    functionName: tests::test_case0_spdm_digests_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/digest.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyUsageMask::empty
    - create_spdm_context
    - Writer::init
    - gen_array_clone
    - Reader::init
    - Box::new
    - Option::unwrap
    - SpdmDigestsResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_digests_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:229,1
    - Dst: SpdmDigestsResponsePayload::default
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:230,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:232,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:232,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:234,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:238,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:239,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:239,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:242,1
    - Dst: SpdmDigestsResponsePayload::default
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:243,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:245,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:245,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 227
    functionDepth: 5
    functionLinenumber: 227
    functionLinenumberEnd: 251
    functionName: tests::test_case1_spdm_digests_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/digest.rs
    functionUses: 0
    functionsReached:
    - SpdmDigestStruct::default
    - create_spdm_context
    - Writer::init
    - gen_array_clone
    - SpdmDigestsResponsePayload::default
    - Reader::init
    - Option::unwrap
    - SpdmDigestsResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_digests_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:255,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:258,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:261,1
    - Dst: SpdmGetDigestsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/digest.rs:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 7
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: tests::test_case0_spdm_get_digests_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/digest.rs
    functionUses: 0
    functionsReached:
    - SpdmGetDigestsRequestPayload::spdm_read
    - Reader::init
    - Writer::init
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_get_digests_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:12,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:17,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:18,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:18,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:23,1
    - Dst: SpdmGetEncapsulatedRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 26
    functionName: test_get_encapsulated_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Writer::init
    - Reader::init
    - SpdmGetEncapsulatedRequestPayload::spdm_read
    - spdm_encode
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_get_encapsulated_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:30,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:35,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:36,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:36,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:39,1
    - Dst: SpdmEncapsulatedRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:40,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 7
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: test_encapsulated_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs
    functionUses: 0
    functionsReached:
    - SpdmEncapsulatedRequestPayload::spdm_read
    - unwrap
    - Writer::init
    - Reader::init
    - Option::unwrap
    - spdm_encode
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_encapsulated_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:46,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:51,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:52,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:52,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:57,1
    - Dst: SpdmDeliverEncapsulatedResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:59,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 7
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: test_deliver_encapsulated_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Writer::init
    - Reader::init
    - Option::unwrap
    - spdm_encode
    - testlib::create_spdm_context
    - SpdmDeliverEncapsulatedResponsePayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_deliver_encapsulated_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:65,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:75,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:76,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:76,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:81,1
    - Dst: SpdmEncapsulatedResponseAckPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:83,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 64
    functionDepth: 7
    functionLinenumber: 64
    functionLinenumberEnd: 90
    functionName: test_encapsulated_response_ack_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Writer::init
    - Reader::init
    - Option::unwrap
    - SpdmEncapsulatedResponseAckPayload::spdm_read
    - spdm_encode
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_encapsulated_response_ack_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:94,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:104,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:105,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:105,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:110,1
    - Dst: SpdmEncapsulatedResponseAckPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:112,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 7
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: test_encapsulated_response_ack_payload_ver11
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Writer::init
    - Reader::init
    - Option::unwrap
    - SpdmEncapsulatedResponseAckPayload::spdm_read
    - spdm_encode
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_encapsulated_response_ack_payload_ver11()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmEndSessionRequestAttributes::bits
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:20,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: SpdmEndSessionRequestAttributes::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmEndSessionRequestAttributes::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:24,1
    - Dst: SpdmEndSessionRequestAttributes::from_bits
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: SpdmEndSessionRequestAttributes::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session.rs
    functionUses: 1
    functionsReached:
    - SpdmEndSessionRequestAttributes::from_bits
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmEndSessionRequestAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:44,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:44,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:48,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:48,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: SpdmEndSessionRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmEndSessionRequestAttributes::read
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:56,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:57,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: SpdmEndSessionRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session.rs
    functionUses: 4
    functionsReached:
    - u8::read
    - SpdmEndSessionRequestAttributes::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmEndSessionRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:74,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:74,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:75,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:75,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: SpdmEndSessionResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:83,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:84,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: SpdmEndSessionResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session.rs
    functionUses: 4
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmEndSessionResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:104,1
    - Dst: SpdmEndSessionRequestAttributes::all
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:105,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: tests::test_case0_spdm_end_session_request_attributes
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session.rs
    functionUses: 0
    functionsReached:
    - SpdmEndSessionRequestAttributes::all
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_end_session_request_attributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:118,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:124,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:127,1
    - Dst: SpdmEndSessionRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:130,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 116
    functionDepth: 7
    functionLinenumber: 116
    functionLinenumberEnd: 136
    functionName: tests::test_case0_spdm_end_session_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - SpdmEndSessionRequestPayload::spdm_read
    - Writer::init
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_end_session_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:140,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:143,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:146,1
    - Dst: SpdmEndSessionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/end_session.rs:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 7
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: tests::test_case0_spdm_end_session_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/end_session.rs
    functionUses: 0
    functionsReached:
    - SpdmEndSessionResponsePayload::spdm_read
    - Reader::init
    - Writer::init
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_end_session_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:16,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:22,1
    - Dst: SpdmNonceStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:27,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:28,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:36,1
    - Dst: SpdmNonceStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:41,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:42,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:57,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:61,1
    - Dst: SpdmChallengeAuthResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 64
    functionName: test_challenge_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge_test.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u16
    - SpdmChallengeAuthResponsePayload::spdm_read
    - SpdmChallengeContextStruct::default
    - Writer::init
    - SpdmNonceStruct::default
    - Reader::init
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_challenge_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:68,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:82,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:86,1
    - Dst: SpdmChallengeAuthResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/challenge_test.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 67
    functionDepth: 7
    functionLinenumber: 67
    functionLinenumberEnd: 90
    functionName: test_challenge_struct_opaque_data_length_negative
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/challenge_test.rs
    functionUses: 0
    functionsReached:
    - SpdmChallengeAuthResponsePayload::spdm_read
    - testlib::create_spdm_context
    - LittleEndian::write_u16
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn test_challenge_struct_opaque_data_length_negative()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:14,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:20,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:21,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:23,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:25,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:27,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:29,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:31,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:33,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:43,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:44,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:45,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:45,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:49,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:50,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:51,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:51,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:55,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:56,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:57,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:59,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:64,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:65,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:66,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:68,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:71,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:72,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:78,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:79,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:81,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:83,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:85,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:87,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:89,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:91,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:101,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:102,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:103,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:103,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:107,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:108,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:109,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:109,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:113,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:114,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:115,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:117,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:122,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:123,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:124,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:126,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:129,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 271
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 13
    functionDepth: 7
    functionLinenumber: 13
    functionLinenumberEnd: 132
    functionName: test_negotiate_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - LittleEndian::write_u16
    - set_bits
    - SpdmAlgorithmsResponsePayload::spdm_read
    - Reader::init
    - testlib::create_spdm_context
    - bits
    linkageType: ''
    returnType: void
    signature: fn test_negotiate_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:136,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:140,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:141,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:143,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:145,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:147,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:149,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:151,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:153,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:163,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:164,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:165,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:165,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:169,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:170,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:171,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:171,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:175,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:176,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:177,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:179,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:184,1
    - Dst: set_bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:185,1
    - Dst: LittleEndian::write_u16
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:186,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:188,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:191,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 134
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 135
    functionDepth: 7
    functionLinenumber: 135
    functionLinenumberEnd: 194
    functionName: test_negotiate_struct_response_negative_ext_alg_count_2
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - LittleEndian::write_u16
    - set_bits
    - SpdmAlgorithmsResponsePayload::spdm_read
    - Reader::init
    - testlib::create_spdm_context
    - bits
    linkageType: ''
    returnType: void
    signature: fn test_negotiate_struct_response_negative_ext_alg_count_2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:26,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:26,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:27,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:27,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:29,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:31,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: SpdmPskFinishRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_finish.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    - spdm_encode
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:39,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:40,1
    - Dst: SpdmOpaqueStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:41,1
    - Dst: SpdmOpaqueStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:43,1
    - Dst: SpdmDigestStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:45,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: SpdmPskFinishRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_finish.rs
    functionUses: 3
    functionsReached:
    - Some
    - SpdmDigestStruct::spdm_read
    - SpdmOpaqueStruct::default
    - SpdmOpaqueStruct::spdm_read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmPskFinishRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:66,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:66,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:67,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:67,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:69,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: SpdmPskFinishResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_finish.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    - spdm_encode
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:78,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:79,1
    - Dst: SpdmOpaqueStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:80,1
    - Dst: SpdmOpaqueStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:82,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: SpdmPskFinishResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_finish.rs
    functionUses: 3
    functionsReached:
    - SpdmOpaqueStruct::default
    - SpdmOpaqueStruct::spdm_read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmPskFinishResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:105,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:109,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:117,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:122,1
    - Dst: SpdmPskFinishRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:125,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 103
    functionDepth: 7
    functionLinenumber: 103
    functionLinenumberEnd: 135
    functionName: tests::test_case0_spdm_psk_finish_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_finish.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - SpdmPskFinishRequestPayload::spdm_read
    - Writer::init
    - Reader::init
    - Box::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_psk_finish_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:139,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:147,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:150,1
    - Dst: SpdmPskFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/psk_finish.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 7
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: tests::test_case0_spdm_psk_finish_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/psk_finish.rs
    functionUses: 0
    functionsReached:
    - SpdmPskFinishResponsePayload::spdm_read
    - Reader::init
    - Writer::init
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_psk_finish_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:13,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:18,1
    - Dst: SpdmChunkSenderAttributes::default
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:29,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:33,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:41,1
    - Dst: LittleEndian::write_u32
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:43,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:54,1
    - Dst: SpdmChunkSendRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:55,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 12
    functionDepth: 7
    functionLinenumber: 12
    functionLinenumberEnd: 64
    functionName: test_chunk_send_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs
    functionUses: 0
    functionsReached:
    - LittleEndian::write_u32
    - Some
    - Writer::init
    - SpdmChunkSenderAttributes::default
    - SpdmChunkSendRequestPayload::spdm_read
    - Reader::init
    - Option::unwrap
    - testlib::create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_chunk_send_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: testlib::create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:68,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:73,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:76,1
    - Dst: SpdmChunkReceiverAttributes::default
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:79,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:92,1
    - Dst: SpdmChunkSendAckResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:93,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 67
    functionDepth: 7
    functionLinenumber: 67
    functionLinenumberEnd: 104
    functionName: test_chunk_send_ack_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs
    functionUses: 0
    functionsReached:
    - Writer::init
    - copy_from_slice
    - Reader::init
    - Option::unwrap
    - SpdmChunkSendAckResponsePayload::spdm_read
    - testlib::create_spdm_context
    - SpdmChunkReceiverAttributes::default
    linkageType: ''
    returnType: void
    signature: fn test_chunk_send_ack_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementAttributes::bits
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:37,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: SpdmMeasurementAttributes::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementAttributes::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:41,1
    - Dst: SpdmMeasurementAttributes::from_bits
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: SpdmMeasurementAttributes::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 1
    functionsReached:
    - SpdmMeasurementAttributes::from_bits
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmMeasurementAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: SpdmMeasurementOperation::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmMeasurementOperation
    signature: fn default() -> SpdmMeasurementOperation
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:78,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:78,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:82,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:82,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:86,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:90,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:90,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:95,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:95,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:102,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:102,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 108
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 108
    functionName: SpdmGetMeasurementsRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - contains
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementAttributes::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:114,1
    - Dst: SpdmMeasurementOperation::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:115,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:117,1
    - Dst: SpdmNonceStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:118,1
    - Dst: SpdmNonceStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:120,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:123,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:125,1
    - Dst: SpdmMeasurementContextStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:137,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:139,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:142,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 149
      start: 110
    functionDepth: 6
    functionLinenumber: 110
    functionLinenumberEnd: 149
    functionName: SpdmGetMeasurementsRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 7
    functionsReached:
    - SpdmMeasurementAttributes::read
    - contains
    - SpdmMeasurementContextStruct::read
    - Some
    - SpdmNonceStruct::default
    - SpdmMeasurementOperation::read
    - SpdmMeasurementContextStruct::default
    - SpdmNonceStruct::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmGetMeasurementsRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:176,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:176,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:181,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:181,1
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:186,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:187,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:187,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:193,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:193,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:198,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:198,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:200,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:201,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:201,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:205,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:207,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:207,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:213,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:215,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 102
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 216
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 216
    functionName: SpdmMeasurementsResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached:
    - encode
    - u8::from
    - Ok
    - spdm_encode
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:222,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:223,1
    - Dst: SpdmMeasurementContentChanged::try_from
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:229,1
    - Dst: Result::ok
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:229,1
    - Dst: SpdmMeasurementRecordStructure::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:230,1
    - Dst: SpdmNonceStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:231,1
    - Dst: SpdmOpaqueStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:232,1
    - Dst: SpdmMeasurementContextStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:235,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:237,1
    - Dst: SpdmSignatureStruct::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:240,1
    - Dst: SpdmSignatureStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:242,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:244,1
    - Dst: SpdmMeasurementOperation::Unknown
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 255
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 255
    functionName: SpdmMeasurementsResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 4
    functionsReached:
    - SpdmMeasurementContentChanged::try_from
    - Result::ok
    - SpdmMeasurementContextStruct::read
    - Some
    - SpdmMeasurementOperation::Unknown
    - SpdmSignatureStruct::spdm_read
    - SpdmMeasurementRecordStructure::spdm_read
    - SpdmSignatureStruct::default
    - SpdmOpaqueStruct::spdm_read
    - SpdmMeasurementContextStruct::default
    - SpdmNonceStruct::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmMeasurementsResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:276,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 287
    functionName: tests::test_case0_spdm_spdm_measuremente_attributes
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_spdm_measuremente_attributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:291,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:299,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:302,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:306,1
    - Dst: SpdmGetMeasurementsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:309,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 289
    functionDepth: 7
    functionLinenumber: 289
    functionLinenumberEnd: 323
    functionName: tests::test_case0_spdm_get_measurements_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - SpdmGetMeasurementsRequestPayload::spdm_read
    - Reader::init
    - Option::unwrap
    - SpdmMeasurementContextStruct::default
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_get_measurements_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:327,1
    - Dst: SpdmMeasurementAttributes::empty
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:329,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:335,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:338,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:342,1
    - Dst: SpdmGetMeasurementsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:345,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 325
    functionDepth: 7
    functionLinenumber: 325
    functionLinenumberEnd: 359
    functionName: tests::test_case1_spdm_get_measurements_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - SpdmGetMeasurementsRequestPayload::spdm_read
    - SpdmMeasurementAttributes::empty
    - Reader::init
    - Option::unwrap
    - SpdmMeasurementContextStruct::default
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_get_measurements_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:364,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:377,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:381,1
    - Dst: SpdmGetMeasurementsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:387,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 362
    functionDepth: 7
    functionLinenumber: 362
    functionLinenumberEnd: 404
    functionName: tests::test_case2_spdm_get_measurements_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - SpdmGetMeasurementsRequestPayload::spdm_read
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdm_get_measurements_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:408,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:416,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:429,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:442,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:442,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:469,1
    - Dst: SpdmMeasurementsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:480,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:480,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:515,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:519,1
    - Dst: SpdmMeasurementsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:525,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/measurement.rs:525,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 407
    functionDepth: 8
    functionLinenumber: 407
    functionLinenumberEnd: 536
    functionName: tests::test_case0_spdm_measurements_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementsResponsePayload::spdm_read
    - create_spdm_context
    - Writer::init
    - Reader::init
    - Option::unwrap
    - u24::new
    - Writer::used
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_measurements_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 570
    functionName: tests::test_case0_spdm_measurement_content_changed
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/measurement.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_measurement_content_changed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:26,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:26,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:27,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:27,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:30,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:30,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:31,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:31,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:36,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:36,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:41,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:41,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:44,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:44,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:51,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:51,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:55,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:55,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:60,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 84
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 61
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 61
    functionName: SpdmGetCapabilitiesRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCapabilityParam1::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:68,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:69,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:70,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:78,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:80,1
    - Dst: SpdmRequestCapabilityFlags::default
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:83,1
    - Dst: SpdmRequestCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:84,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:86,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:87,1
    - Dst: SpdmRequestCapabilityExFlags::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:89,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:91,1
    - Dst: SpdmRequestCapabilityFlags::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:93,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:96,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:99,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:100,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:102,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:106,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:107,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:108,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:109,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:110,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:115,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:120,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:121,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:122,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:126,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:127,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:129,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:130,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:134,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:135,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:140,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:141,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:146,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:153,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:154,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:160,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:161,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:165,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:166,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:170,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:171,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:172,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:182,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:183,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:192,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 235
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 199
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 199
    functionName: SpdmGetCapabilitiesRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 7
    functionsReached:
    - contains
    - Some
    - u32::read
    - u16::read
    - SpdmRequestCapabilityExFlags::default
    - SpdmRequestCapabilityFlags::read
    - SpdmRequestCapabilityFlags::default
    - SpdmRequestCapabilityExFlags::read
    - u8::read
    - SpdmCapabilityParam1::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmGetCapabilitiesRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:219,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:219,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:220,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:220,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:222,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:222,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:223,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:223,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:228,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:228,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:233,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:233,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:235,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:235,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:241,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:241,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:245,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:245,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:251,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 79
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 252
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 252
    functionName: SpdmCapabilitiesResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:258,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:259,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:261,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:262,1
    - Dst: SpdmResponseCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:263,1
    - Dst: SpdmResponseCapabilityExFlags::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:265,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:267,1
    - Dst: SpdmResponseCapabilityFlags::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:269,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:272,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:273,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:277,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:278,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:279,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:284,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:285,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:286,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:290,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:294,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:295,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:299,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:300,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:301,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:303,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:307,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:308,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:309,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:310,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:311,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:316,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:321,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:322,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:323,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:324,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:328,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:329,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:331,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:332,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:336,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:337,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:338,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:343,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:344,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:345,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:346,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:351,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:358,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:359,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:364,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:365,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:366,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:370,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:371,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:375,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:376,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:377,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:384,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:385,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:389,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:390,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:394,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:395,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:397,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:400,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:409,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:410,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:418,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 325
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 425
      start: 254
    functionDepth: 5
    functionLinenumber: 254
    functionLinenumberEnd: 425
    functionName: SpdmCapabilitiesResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 7
    functionsReached:
    - SpdmResponseCapabilityExFlags::default
    - contains
    - Some
    - SpdmResponseCapabilityExFlags::read
    - u32::read
    - u16::read
    - SpdmResponseCapabilityFlags::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmCapabilitiesResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:442,1
    - Dst: SpdmResponseCapabilityFlags::all
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:443,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 452
    functionName: tests::test_case0_spdm_response_capability_flags
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - SpdmResponseCapabilityFlags::all
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_response_capability_flags()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: new_spdm_response_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:456,1
    - Dst: new_spdm_response_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:458,1
    - Dst: new_spdm_response_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:460,1
    - Dst: new_spdm_response_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:462,1
    - Dst: new_spdm_response_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 465
    functionName: tests::test_case1_spdm_response_capability_flags
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - new_spdm_response_capability_flags
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_response_capability_flags()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:469,1
    - Dst: SpdmResponseCapabilityFlags::empty
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:470,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 479
    functionName: tests::test_case2_spdm_response_capability_flags
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - SpdmResponseCapabilityFlags::empty
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdm_response_capability_flags()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:483,1
    - Dst: SpdmRequestCapabilityFlags::all
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:484,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 494
    functionName: tests::test_case0_spdm_request_capability_flags
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - SpdmRequestCapabilityFlags::all
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_request_capability_flags()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: new_spdm_request_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:498,1
    - Dst: new_spdm_request_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:500,1
    - Dst: new_spdm_request_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:502,1
    - Dst: new_spdm_request_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:504,1
    - Dst: new_spdm_request_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:506,1
    - Dst: new_spdm_request_capability_flags
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 509
    functionName: tests::test_case1_spdm_request_capability_flags
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - new_spdm_request_capability_flags
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_request_capability_flags()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:513,1
    - Dst: SpdmRequestCapabilityFlags::empty
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:514,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 524
    functionName: tests::test_case3_spdm_request_capability_flags
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - SpdmRequestCapabilityFlags::empty
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case3_spdm_request_capability_flags()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:528,1
    - Dst: SpdmRequestCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:534,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:537,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:541,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:544,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 526
    functionDepth: 7
    functionLinenumber: 526
    functionLinenumberEnd: 551
    functionName: tests::test_case0_spdm_get_capabilities_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - SpdmRequestCapabilityExFlags::default
    - Reader::init
    - Option::unwrap
    - SpdmGetCapabilitiesRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_get_capabilities_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:555,1
    - Dst: SpdmRequestCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:561,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:564,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:568,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:571,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 578
      start: 553
    functionDepth: 7
    functionLinenumber: 553
    functionLinenumberEnd: 578
    functionName: tests::test_case1_spdm_get_capabilities_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - SpdmRequestCapabilityExFlags::default
    - Reader::init
    - Option::unwrap
    - SpdmGetCapabilitiesRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_get_capabilities_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:582,1
    - Dst: SpdmGetCapabilitiesRequestPayload::default
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:583,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:585,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:589,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 580
    functionDepth: 7
    functionLinenumber: 580
    functionLinenumberEnd: 593
    functionName: tests::test_case2_spdm_get_capabilities_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - Writer::init
    - SpdmGetCapabilitiesRequestPayload::default
    - Reader::init
    - SpdmGetCapabilitiesRequestPayload::spdm_read
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdm_get_capabilities_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:597,1
    - Dst: SpdmResponseCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:603,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:606,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:610,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:613,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 595
    functionDepth: 7
    functionLinenumber: 595
    functionLinenumberEnd: 620
    functionName: tests::test_case0_spdm_capabilities_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - SpdmResponseCapabilityExFlags::default
    - create_spdm_context
    - SpdmCapabilitiesResponsePayload::spdm_read
    - Writer::init
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_capabilities_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:624,1
    - Dst: SpdmResponseCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:630,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:633,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:637,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:640,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 647
      start: 622
    functionDepth: 7
    functionLinenumber: 622
    functionLinenumberEnd: 647
    functionName: tests::test_case1_spdm_capabilities_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - SpdmResponseCapabilityExFlags::default
    - create_spdm_context
    - SpdmCapabilitiesResponsePayload::spdm_read
    - Writer::init
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_capabilities_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:651,1
    - Dst: SpdmCapabilitiesResponsePayload::default
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:652,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:654,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:658,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:661,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 649
    functionDepth: 7
    functionLinenumber: 649
    functionLinenumberEnd: 668
    functionName: tests::test_case2_spdm_capabilities_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - create_spdm_context
    - SpdmCapabilitiesResponsePayload::spdm_read
    - Writer::init
    - Reader::init
    - Option::unwrap
    - SpdmCapabilitiesResponsePayload::default
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdm_capabilities_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:672,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - SpdmResponseCapabilityFlags
    constantsTouched: []
    func_position:
      end: 681
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 681
    functionName: tests::new_spdm_response_capability_flags
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: 'fn new_spdm_response_capability_flags(value: SpdmResponseCapabilityFlags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:685,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/capability.rs:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - SpdmRequestCapabilityFlags
    constantsTouched: []
    func_position:
      end: 694
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 694
    functionName: tests::new_spdm_request_capability_flags
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/capability.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: 'fn new_spdm_request_capability_flags(value: SpdmRequestCapabilityFlags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:20,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:20,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:21,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:21,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: SpdmGetVersionRequestPayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:29,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:30,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: SpdmGetVersionRequestPayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 3
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmGetVersionRequestPayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:45,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:46,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: SpdmVersionStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:50,1
    - Dst: SpdmVersion::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:51,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 10
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: SpdmVersionStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 2
    functionsReached:
    - SpdmVersion::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmVersionStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:69,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:69,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:70,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:70,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:72,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:72,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:73,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:73,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:78,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:78,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:83,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:83,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: SpdmVersionResponsePayload::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Result::map_err
    - iter
    - SpdmResult::encode
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut common::SpdmContext,bytes: &mut
      Writer,) -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:92,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:93,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:95,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:96,1
    - Dst: protocol::gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:102,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:112,1
    - Dst: SpdmVersionStruct::read_bytes
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:115,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:135,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 60
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut common::SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 139
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 139
    functionName: SpdmVersionResponsePayload::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 4
    functionsReached:
    - Some
    - SpdmVersionStruct::read_bytes
    - take
    - u8::read
    - protocol::gen_array_clone
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut common::SpdmContext,r: &mut Reader,) ->
      Option<SpdmVersionResponsePayload>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:156,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:162,1
    - Dst: SpdmVersionStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:164,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 11
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: tests::test_case1_spdmversion_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 0
    functionsReached:
    - SpdmVersionStruct::read
    - Reader::init
    - Writer::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdmversion_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:171,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:177,1
    - Dst: SpdmVersionStruct::read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 11
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: tests::test_case2_spdmversion_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 0
    functionsReached:
    - SpdmVersionStruct::read
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdmversion_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:184,1
    - Dst: protocol::gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:185,1
    - Dst: SpdmVersionStruct::default
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:185,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:196,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:199,1
    - Dst: SpdmVersionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:202,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 216
    functionName: tests::test_case0_spdm_version_response_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 0
    functionsReached:
    - SpdmVersionStruct::default
    - create_spdm_context
    - Writer::init
    - SpdmVersionResponsePayload::spdm_read
    - Reader::init
    - Option::unwrap
    - protocol::gen_array_clone
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_version_response_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:220,1
    - Dst: create_spdm_context
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:223,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:226,1
    - Dst: SpdmGetVersionRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/message/version.rs:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 7
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: tests::test_case0_spdm_get_version_request_payload
    functionSourceFile: /src/spdm-rs/spdmlib/src/message/version.rs
    functionUses: 0
    functionsReached:
    - SpdmGetVersionRequestPayload::spdm_read
    - Reader::init
    - Writer::init
    - create_spdm_context
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_get_version_request_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:117,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: SpdmMeasurementSpecification::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmMeasurementSpecification::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:121,1
    - Dst: SpdmMeasurementSpecification::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: SpdmMeasurementSpecification::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 6
    functionsReached:
    - u8::read
    - SpdmMeasurementSpecification::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmMeasurementSpecification>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:132,1
    - Dst: SpdmMeasurementSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:133,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:133,1
    - Dst: SpdmMeasurementSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmMeasurementSpecification
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: SpdmMeasurementSpecification::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementSpecification::empty
    - SpdmMeasurementSpecification::bits
    - SimpleLogger::bits
    - iter
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmMeasurementSpecification)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:144,1
    - Dst: SpdmMeasurementSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:144,1
    - Dst: SpdmMeasurementSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: SpdmMeasurementSpecification::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmMeasurementSpecification::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: SpdmMeasurementSpecification::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementSpecification::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:152,1
    - Dst: SpdmMeasurementSpecification::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: SpdmMeasurementSpecification::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementSpecification::is_no_more_than_one_selected
    - SpdmMeasurementSpecification::is_valid
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAlgoOtherParams::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:168,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: SpdmAlgoOtherParams::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmAlgoOtherParams::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:172,1
    - Dst: SpdmAlgoOtherParams::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: SpdmAlgoOtherParams::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 5
    functionsReached:
    - u8::read
    - SpdmAlgoOtherParams::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmAlgoOtherParams>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 214
    functionName: SpdmMeasurementHashAlgo::get_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementHashAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:219,1
    - Dst: SpdmMeasurementHashAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:219,1
    - Dst: SpdmMeasurementHashAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: SpdmMeasurementHashAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmMeasurementHashAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: SpdmMeasurementHashAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementHashAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:227,1
    - Dst: SpdmMeasurementHashAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: SpdmMeasurementHashAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementHashAlgo::is_valid
    - SpdmMeasurementHashAlgo::is_no_more_than_one_selected
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementHashAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:232,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: SpdmMeasurementHashAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementHashAlgo::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:236,1
    - Dst: SpdmMeasurementHashAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 5
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: SpdmMeasurementHashAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached:
    - u32::read
    - SpdmMeasurementHashAlgo::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmMeasurementHashAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:278,1
    - Dst: SpdmBaseAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:279,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:279,1
    - Dst: SpdmBaseAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmBaseAsymAlgo
    constantsTouched: []
    func_position:
      end: 285
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 285
    functionName: SpdmBaseAsymAlgo::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmBaseAsymAlgo::bits
    - SimpleLogger::bits
    - iter
    - SpdmBaseAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmBaseAsymAlgo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 300
    functionName: SpdmBaseAsymAlgo::get_sig_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_sig_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:305,1
    - Dst: SpdmBaseAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:305,1
    - Dst: SpdmBaseAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: SpdmBaseAsymAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmBaseAsymAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: SpdmBaseAsymAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseAsymAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:313,1
    - Dst: SpdmBaseAsymAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: SpdmBaseAsymAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmBaseAsymAlgo::is_valid
    - SpdmBaseAsymAlgo::is_no_more_than_one_selected
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:319,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: SpdmBaseAsymAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmBaseAsymAlgo::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:323,1
    - Dst: SpdmBaseAsymAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: SpdmBaseAsymAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 4
    functionsReached:
    - SpdmBaseAsymAlgo::from_bits
    - u32::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmBaseAsymAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:350,1
    - Dst: SpdmPqcAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:351,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:351,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmPqcAsymAlgo
    constantsTouched: []
    func_position:
      end: 357
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 357
    functionName: SpdmPqcAsymAlgo::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmPqcAsymAlgo::bits
    - SimpleLogger::bits
    - iter
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmPqcAsymAlgo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: SpdmPqcAsymAlgo::get_sig_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_sig_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:372,1
    - Dst: SpdmPqcAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:372,1
    - Dst: SpdmPqcAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: SpdmPqcAsymAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmPqcAsymAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: SpdmPqcAsymAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcAsymAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:380,1
    - Dst: SpdmPqcAsymAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: SpdmPqcAsymAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmPqcAsymAlgo::is_no_more_than_one_selected
    - SpdmPqcAsymAlgo::is_valid
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:386,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: SpdmPqcAsymAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmPqcAsymAlgo::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:390,1
    - Dst: SpdmPqcAsymAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 5
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: SpdmPqcAsymAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 4
    functionsReached:
    - u32::read
    - SpdmPqcAsymAlgo::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmPqcAsymAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:417,1
    - Dst: SpdmBaseHashAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:418,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:418,1
    - Dst: SpdmBaseHashAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmBaseHashAlgo
    constantsTouched: []
    func_position:
      end: 424
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 424
    functionName: SpdmBaseHashAlgo::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SimpleLogger::bits
    - iter
    - SpdmBaseHashAlgo::empty
    - SpdmBaseHashAlgo::bits
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmBaseHashAlgo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 434
    functionName: SpdmBaseHashAlgo::get_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseHashAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:439,1
    - Dst: SpdmBaseHashAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:439,1
    - Dst: SpdmBaseHashAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: SpdmBaseHashAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmBaseHashAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: SpdmBaseHashAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseHashAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:447,1
    - Dst: SpdmBaseHashAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: SpdmBaseHashAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmBaseHashAlgo::is_valid
    - SpdmBaseHashAlgo::is_no_more_than_one_selected
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseHashAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:453,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: SpdmBaseHashAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmBaseHashAlgo::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:457,1
    - Dst: SpdmBaseHashAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 5
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: SpdmBaseHashAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 5
    functionsReached:
    - SpdmBaseHashAlgo::from_bits
    - u32::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmBaseHashAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMelSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:473,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: SpdmMelSpecification::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmMelSpecification::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:477,1
    - Dst: SpdmMelSpecification::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 5
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: SpdmMelSpecification::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 4
    functionsReached:
    - SpdmMelSpecification::from_bits
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmMelSpecification>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:488,1
    - Dst: SpdmMelSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:489,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:489,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmMelSpecification
    constantsTouched: []
    func_position:
      end: 495
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 495
    functionName: SpdmMelSpecification::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmMelSpecification::empty
    - SpdmMelSpecification::bits
    - SimpleLogger::bits
    - iter
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmMelSpecification)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMelSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:500,1
    - Dst: SpdmMelSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:500,1
    - Dst: SpdmMelSpecification::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 501
    functionName: SpdmMelSpecification::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmMelSpecification::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: SpdmMelSpecification::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMelSpecification::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:508,1
    - Dst: SpdmMelSpecification::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: SpdmMelSpecification::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmMelSpecification::is_valid
    - SpdmMelSpecification::is_no_more_than_one_selected
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:543,1
    - Dst: SpdmDheAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:544,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:544,1
    - Dst: SpdmDheAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmDheAlgo
    constantsTouched: []
    func_position:
      end: 550
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 550
    functionName: SpdmDheAlgo::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmDheAlgo::bits
    - SimpleLogger::bits
    - iter
    - SpdmDheAlgo::empty
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmDheAlgo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: SpdmDheAlgo::get_key_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_key_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDheAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:564,1
    - Dst: SpdmDheAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:564,1
    - Dst: SpdmDheAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: SpdmDheAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmDheAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: SpdmDheAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDheAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:572,1
    - Dst: SpdmDheAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 573
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 573
    functionName: SpdmDheAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmDheAlgo::is_valid
    - SpdmDheAlgo::is_no_more_than_one_selected
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDheAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:578,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: SpdmDheAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmDheAlgo::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:582,1
    - Dst: SpdmDheAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 585
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 585
    functionName: SpdmDheAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 4
    functionsReached:
    - SpdmDheAlgo::from_bits
    - u16::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmDheAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:609,1
    - Dst: SpdmKemAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:610,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:610,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmKemAlgo
    constantsTouched: []
    func_position:
      end: 616
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 616
    functionName: SpdmKemAlgo::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmKemAlgo::bits
    - SimpleLogger::bits
    - iter
    - SpdmKemAlgo::empty
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmKemAlgo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 626
    functionName: SpdmKemAlgo::get_encap_key_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_encap_key_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 636
    functionName: SpdmKemAlgo::get_cipher_text_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_cipher_text_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKemAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:641,1
    - Dst: SpdmKemAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:641,1
    - Dst: SpdmKemAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 642
    functionName: SpdmKemAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmKemAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: SpdmKemAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKemAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:649,1
    - Dst: SpdmKemAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 650
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 650
    functionName: SpdmKemAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmKemAlgo::is_valid
    - SpdmKemAlgo::is_no_more_than_one_selected
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKemAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:655,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 656
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 656
    functionName: SpdmKemAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmKemAlgo::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:659,1
    - Dst: SpdmKemAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 5
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: SpdmKemAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 4
    functionsReached:
    - SpdmKemAlgo::from_bits
    - u16::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmKemAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:686,1
    - Dst: SpdmAeadAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:687,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:687,1
    - Dst: SpdmAeadAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmAeadAlgo
    constantsTouched: []
    func_position:
      end: 693
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 693
    functionName: SpdmAeadAlgo::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmAeadAlgo::empty
    - SpdmAeadAlgo::bits
    - SimpleLogger::bits
    - iter
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmAeadAlgo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 703
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 703
    functionName: SpdmAeadAlgo::get_key_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_key_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 713
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 713
    functionName: SpdmAeadAlgo::get_iv_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_iv_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 723
    functionName: SpdmAeadAlgo::get_tag_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_tag_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAeadAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:728,1
    - Dst: SpdmAeadAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:728,1
    - Dst: SpdmAeadAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 729
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 729
    functionName: SpdmAeadAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmAeadAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 733
    functionName: SpdmAeadAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAeadAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:736,1
    - Dst: SpdmAeadAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 737
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 737
    functionName: SpdmAeadAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmAeadAlgo::is_valid
    - SpdmAeadAlgo::is_no_more_than_one_selected
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAeadAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:742,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 743
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 743
    functionName: SpdmAeadAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmAeadAlgo::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:746,1
    - Dst: SpdmAeadAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 749
      start: 745
    functionDepth: 5
    functionLinenumber: 745
    functionLinenumberEnd: 749
    functionName: SpdmAeadAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 4
    functionsReached:
    - SpdmAeadAlgo::from_bits
    - u16::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmAeadAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:788,1
    - Dst: SpdmReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:789,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:789,1
    - Dst: SpdmReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmReqAsymAlgo
    constantsTouched: []
    func_position:
      end: 795
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 795
    functionName: SpdmReqAsymAlgo::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmReqAsymAlgo::bits
    - SpdmReqAsymAlgo::empty
    - SimpleLogger::bits
    - iter
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmReqAsymAlgo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 810
    functionName: SpdmReqAsymAlgo::get_sig_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_sig_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:815,1
    - Dst: SpdmReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:815,1
    - Dst: SpdmReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 816
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 816
    functionName: SpdmReqAsymAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmReqAsymAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 820
    functionName: SpdmReqAsymAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmReqAsymAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:823,1
    - Dst: SpdmReqAsymAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 824
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 824
    functionName: SpdmReqAsymAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmReqAsymAlgo::is_no_more_than_one_selected
    - SpdmReqAsymAlgo::is_valid
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:829,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: SpdmReqAsymAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmReqAsymAlgo::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:833,1
    - Dst: SpdmReqAsymAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 5
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: SpdmReqAsymAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached:
    - SpdmReqAsymAlgo::from_bits
    - u16::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmReqAsymAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseAsymAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:841,1
    - Dst: SpdmReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:841,1
    - Dst: Self::unwrap_or
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:841,1
    - Dst: SpdmBaseAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: SpdmReqAsymAlgo::to_base
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmReqAsymAlgo::bits
    - SpdmBaseAsymAlgo::from_bits
    - Self::unwrap_or
    - SpdmBaseAsymAlgo::empty
    linkageType: ''
    returnType: SpdmBaseAsymAlgo
    signature: pub fn to_base(&self) -> SpdmBaseAsymAlgo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmReqAsymAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:845,1
    - Dst: SpdmBaseAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:845,1
    - Dst: Self::unwrap_or
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:845,1
    - Dst: SpdmReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - SpdmBaseAsymAlgo
    constantsTouched: []
    func_position:
      end: 846
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 846
    functionName: SpdmReqAsymAlgo::from_base
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmBaseAsymAlgo::bits
    - SpdmReqAsymAlgo::from_bits
    - SpdmReqAsymAlgo::empty
    - Self::unwrap_or
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_base(base: SpdmBaseAsymAlgo) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:870,1
    - Dst: SpdmPqcReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:871,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:871,1
    - Dst: SpdmPqcReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmPqcReqAsymAlgo
    constantsTouched: []
    func_position:
      end: 877
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 877
    functionName: SpdmPqcReqAsymAlgo::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmPqcReqAsymAlgo::bits
    - SimpleLogger::bits
    - iter
    - SpdmPqcReqAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmPqcReqAsymAlgo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 887
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 887
    functionName: SpdmPqcReqAsymAlgo::get_sig_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_sig_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:892,1
    - Dst: SpdmPqcReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:892,1
    - Dst: SpdmPqcReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 893
    functionName: SpdmPqcReqAsymAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmPqcReqAsymAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 897
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 897
    functionName: SpdmPqcReqAsymAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcReqAsymAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:900,1
    - Dst: SpdmPqcReqAsymAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 901
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 901
    functionName: SpdmPqcReqAsymAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmPqcReqAsymAlgo::is_valid
    - SpdmPqcReqAsymAlgo::is_no_more_than_one_selected
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:906,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 907
      start: 905
    functionDepth: 3
    functionLinenumber: 905
    functionLinenumberEnd: 907
    functionName: SpdmPqcReqAsymAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmPqcReqAsymAlgo::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:910,1
    - Dst: SpdmPqcReqAsymAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 913
      start: 909
    functionDepth: 5
    functionLinenumber: 909
    functionLinenumberEnd: 913
    functionName: SpdmPqcReqAsymAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached:
    - SpdmPqcReqAsymAlgo::from_bits
    - u16::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmPqcReqAsymAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcAsymAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:918,1
    - Dst: SpdmPqcReqAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:918,1
    - Dst: Self::unwrap_or
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:918,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 919
      start: 917
    functionDepth: 2
    functionLinenumber: 917
    functionLinenumberEnd: 919
    functionName: SpdmPqcReqAsymAlgo::to_base
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmPqcReqAsymAlgo::bits
    - Self::unwrap_or
    - SpdmPqcAsymAlgo::from_bits
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: SpdmPqcAsymAlgo
    signature: pub fn to_base(&self) -> SpdmPqcAsymAlgo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcReqAsymAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:922,1
    - Dst: SpdmBaseAsymAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:922,1
    - Dst: Self::unwrap_or
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:922,1
    - Dst: SpdmPqcReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - SpdmPqcAsymAlgo
    constantsTouched: []
    func_position:
      end: 923
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 923
    functionName: SpdmPqcReqAsymAlgo::from_base
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmPqcReqAsymAlgo::from_bits
    - SpdmPqcReqAsymAlgo::empty
    - SpdmBaseAsymAlgo::bits
    - Self::unwrap_or
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_base(base: SpdmPqcAsymAlgo) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:939,1
    - Dst: SpdmKeyScheduleAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:940,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:940,1
    - Dst: SpdmKeyScheduleAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - peer
    argTypes:
    - SpdmKeyScheduleAlgo
    constantsTouched: []
    func_position:
      end: 946
      start: 935
    functionDepth: 2
    functionLinenumber: 935
    functionLinenumberEnd: 946
    functionName: SpdmKeyScheduleAlgo::prioritize
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyScheduleAlgo::empty
    - SpdmKeyScheduleAlgo::bits
    - SimpleLogger::bits
    - iter
    linkageType: ''
    returnType: void
    signature: 'pub fn prioritize(&mut self, peer: SpdmKeyScheduleAlgo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeyScheduleAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:951,1
    - Dst: SpdmKeyScheduleAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:951,1
    - Dst: SpdmKeyScheduleAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 952
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 952
    functionName: SpdmKeyScheduleAlgo::is_no_more_than_one_selected
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmKeyScheduleAlgo::bits
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_more_than_one_selected(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 956
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 956
    functionName: SpdmKeyScheduleAlgo::is_valid
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeyScheduleAlgo::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:959,1
    - Dst: SpdmKeyScheduleAlgo::is_valid
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 960
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 960
    functionName: SpdmKeyScheduleAlgo::is_valid_one_select
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyScheduleAlgo::is_valid
    - SpdmKeyScheduleAlgo::is_no_more_than_one_selected
    linkageType: ''
    returnType: bool
    signature: pub fn is_valid_one_select(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeyScheduleAlgo::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:965,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 966
      start: 964
    functionDepth: 3
    functionLinenumber: 964
    functionLinenumberEnd: 966
    functionName: SpdmKeyScheduleAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmKeyScheduleAlgo::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:969,1
    - Dst: SpdmKeyScheduleAlgo::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 972
      start: 968
    functionDepth: 5
    functionLinenumber: 968
    functionLinenumberEnd: 972
    functionName: SpdmKeyScheduleAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 4
    functionsReached:
    - SpdmKeyScheduleAlgo::from_bits
    - u16::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmKeyScheduleAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: SpdmUnknownAlgo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, _bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 984
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 984
    functionName: SpdmUnknownAlgo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(_r: &mut Reader) -> Option<SpdmUnknownAlgo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAlgType::Unknown
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1002
    functionName: SpdmAlgType::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmAlgType::Unknown
    linkageType: ''
    returnType: SpdmAlgType
    signature: fn default() -> SpdmAlgType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAlg::SpdmAlgoUnknown
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1019
    functionName: SpdmAlg::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmAlg::SpdmAlgoUnknown
    linkageType: ''
    returnType: SpdmAlg
    signature: fn default() -> SpdmAlg
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1033,1
    - Dst: u8::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1035,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1039,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1042,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1045,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1048,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1051,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1054,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1057,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1060,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1061
      start: 1029
    functionDepth: 5
    functionLinenumber: 1029
    functionLinenumberEnd: 1061
    functionName: SpdmAlgStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - encode
    - u8::encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAlgType::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1064,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1065,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1076,1
    - Dst: SpdmAlg::SpdmAlgoDhe
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1076,1
    - Dst: SpdmDheAlgo::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1076,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1077,1
    - Dst: SpdmAlg::SpdmAlgoAead
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1077,1
    - Dst: SpdmAeadAlgo::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1077,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1079,1
    - Dst: SpdmAlg::SpdmAlgoReqAsym
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1079,1
    - Dst: SpdmReqAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1079,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1082,1
    - Dst: SpdmAlg::SpdmAlgoKeySchedule
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1082,1
    - Dst: SpdmKeyScheduleAlgo::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1082,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1084,1
    - Dst: SpdmAlg::SpdmAlgoKem
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1084,1
    - Dst: SpdmKemAlgo::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1084,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1086,1
    - Dst: SpdmAlg::SpdmAlgoPqcReqAsym
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1086,1
    - Dst: SpdmPqcReqAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1086,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1093,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1097
      start: 1063
    functionDepth: 6
    functionLinenumber: 1063
    functionLinenumberEnd: 1097
    functionName: SpdmAlgStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 4
    functionsReached:
    - SpdmAlg::SpdmAlgoAead
    - SpdmReqAsymAlgo::read
    - Some
    - SpdmPqcReqAsymAlgo::read
    - SpdmAeadAlgo::read
    - SpdmDheAlgo::read
    - SpdmAlg::SpdmAlgoKeySchedule
    - SpdmAlg::SpdmAlgoKem
    - SpdmAlg::SpdmAlgoDhe
    - SpdmAlg::SpdmAlgoPqcReqAsym
    - SpdmKeyScheduleAlgo::read
    - SpdmKemAlgo::read
    - SpdmAlgType::read
    - SpdmAlg::SpdmAlgoReqAsym
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmAlgStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1120
    functionName: SpdmCertificateModelType::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmCertificateModelType
    signature: fn default() -> SpdmCertificateModelType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeyUsageMask::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1143,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1144
      start: 1142
    functionDepth: 3
    functionLinenumber: 1142
    functionLinenumberEnd: 1144
    functionName: SpdmKeyUsageMask::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmKeyUsageMask::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1147,1
    - Dst: SpdmKeyUsageMask::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1150
      start: 1146
    functionDepth: 5
    functionLinenumber: 1146
    functionLinenumberEnd: 1150
    functionName: SpdmKeyUsageMask::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached:
    - SpdmKeyUsageMask::from_bits
    - u16::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmKeyUsageMask>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1166
    functionName: SpdmMeasurementSummaryHashType::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmMeasurementSummaryHashType
    signature: fn default() -> SpdmMeasurementSummaryHashType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1176,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1177,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1180
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1180
    functionName: SpdmNonceStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Vec::encode
    - iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1183,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1184,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1187
      start: 1181
    functionDepth: 5
    functionLinenumber: 1181
    functionLinenumberEnd: 1187
    functionName: SpdmNonceStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 5
    functionsReached:
    - Some
    - u8::read
    - iter_mut
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmNonceStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1197,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1198,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1201
      start: 1196
    functionDepth: 4
    functionLinenumber: 1196
    functionLinenumberEnd: 1201
    functionName: SpdmChallengeContextStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Vec::encode
    - iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1204,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1205,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1208
      start: 1202
    functionDepth: 5
    functionLinenumber: 1202
    functionLinenumberEnd: 1208
    functionName: SpdmChallengeContextStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached:
    - Some
    - u8::read
    - iter_mut
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmChallengeContextStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1218,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1219,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1222
      start: 1217
    functionDepth: 4
    functionLinenumber: 1217
    functionLinenumberEnd: 1222
    functionName: SpdmMeasurementContextStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Vec::encode
    - iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1225,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1226,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1229
      start: 1223
    functionDepth: 5
    functionLinenumber: 1223
    functionLinenumberEnd: 1229
    functionName: SpdmMeasurementContextStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached:
    - Some
    - u8::read
    - iter_mut
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmMeasurementContextStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1239,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1240,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1243
      start: 1238
    functionDepth: 4
    functionLinenumber: 1238
    functionLinenumberEnd: 1243
    functionName: SpdmRandomStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Vec::encode
    - iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1246,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1247,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1250
      start: 1244
    functionDepth: 5
    functionLinenumber: 1244
    functionLinenumberEnd: 1250
    functionName: SpdmRandomStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached:
    - Some
    - u8::read
    - iter_mut
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmRandomStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1264
    functionName: SpdmSignatureStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: SpdmSignatureStruct
    signature: fn default() -> SpdmSignatureStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1270
    functionName: SpdmSignatureStruct::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1276,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1276,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1278,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1278,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1278,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - value
    argTypes:
    - BytesMut
    constantsTouched: []
    func_position:
      end: 1280
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1280
    functionName: SpdmSignatureStruct::from
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - SpdmResult::as_ref
    - copy_from_slice
    - '&[u8]::len'
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: BytesMut) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1295
    functionName: SpdmCertChainData::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1300
    functionName: SpdmCertChainData::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1306,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1307,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1308,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1311
      start: 1304
    functionDepth: 3
    functionLinenumber: 1304
    functionLinenumberEnd: 1311
    functionName: SpdmCertChainData::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - encode
    - Vec::encode
    - iter
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1314,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1319,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1320,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1323
      start: 1313
    functionDepth: 5
    functionLinenumber: 1313
    functionLinenumberEnd: 1323
    functionName: SpdmCertChainData::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Some
    - u32::read
    - u8::read
    - iter_mut
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<SpdmCertChainData>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1338
    functionName: SpdmCertChainBuffer::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1343
    functionName: SpdmCertChainBuffer::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1352,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1352,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1356,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1356,1
    - Dst: Self::default
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1357,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1363,1
    - Dst: u16::to_le_bytes
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1363,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1372,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1373,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1377,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1378,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 2
    argNames:
    - cert_chain
    - root_cert_hash
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1383
      start: 1351
    functionDepth: 2
    functionLinenumber: 1351
    functionLinenumberEnd: 1383
    functionName: SpdmCertChainBuffer::new
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 2
    functionsReached:
    - Some
    - u16::to_le_bytes
    - copy_from_slice
    - Self::default
    - '&[u8]::len'
    - SpdmResult::len
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(cert_chain: &[u8], root_cert_hash: &[u8]) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1389,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1390,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1390,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1391,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1394
      start: 1387
    functionDepth: 4
    functionLinenumber: 1387
    functionLinenumberEnd: 1394
    functionName: SpdmCertChainBuffer::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1397,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1402,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1402,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1403,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1406
      start: 1396
    functionDepth: 5
    functionLinenumber: 1396
    functionLinenumberEnd: 1406
    functionName: SpdmCertChainBuffer::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 2
    functionsReached:
    - Some
    - take
    - u32::read
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmCertChainBuffer>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1456
    functionName: SpdmDmtfMeasurementStructure::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SpdmDmtfMeasurementStructure
    signature: fn default() -> SpdmDmtfMeasurementStructure
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1461,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1462,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1464,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1468,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1469,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1469,1
    - Dst: SimpleLogger::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1470,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1473
      start: 1459
    functionDepth: 4
    functionLinenumber: 1459
    functionLinenumberEnd: 1473
    functionName: SpdmDmtfMeasurementStructure::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - get_u8
    - encode
    - take
    - SimpleLogger::encode
    - Ok
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1475,1
    - Dst: SpdmDmtfMeasurementRepresentation::Unknown
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1481,1
    - Dst: SpdmDmtfMeasurementType::Unknown
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1493,1
    - Dst: SpdmDmtfMeasurementType::Unknown
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1499,1
    - Dst: SpdmDmtfMeasurementType::Unknown
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1505,1
    - Dst: SpdmDmtfMeasurementType::Unknown
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1507,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1512,1
    - Dst: SpdmResult::iter_mut
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1514,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1514,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1515,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1517,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1523
      start: 1474
    functionDepth: 5
    functionLinenumber: 1474
    functionLinenumberEnd: 1523
    functionName: SpdmDmtfMeasurementStructure::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Some
    - SpdmDmtfMeasurementType::Unknown
    - take
    - u16::read
    - SpdmResult::iter_mut
    - SpdmDmtfMeasurementRepresentation::Unknown
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmDmtfMeasurementStructure>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1536,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1537,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1538,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1539,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1541
      start: 1534
    functionDepth: 3
    functionLinenumber: 1534
    functionLinenumberEnd: 1541
    functionName: SpdmMeasurementBlockStructure::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1543,1
    - Dst: SpdmMeasurementSpecification::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1544,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1545,1
    - Dst: SpdmDmtfMeasurementStructure::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1546,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1553
      start: 1542
    functionDepth: 5
    functionLinenumber: 1542
    functionLinenumberEnd: 1553
    functionName: SpdmMeasurementBlockStructure::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmDmtfMeasurementStructure::read
    - Some
    - SpdmMeasurementSpecification::read
    - u16::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmMeasurementBlockStructure>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1563
    functionDepth: 3
    functionLinenumber: 1563
    functionLinenumberEnd: 1569
    functionName: SpdmMeasurementRecordStructure::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 11
    functionsReached:
    - u24::new
    linkageType: ''
    returnType: SpdmMeasurementRecordStructure
    signature: fn default() -> SpdmMeasurementRecordStructure
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1583
    functionName: SpdmDheExchangeStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: SpdmDheExchangeStruct
    signature: fn default() -> SpdmDheExchangeStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1589
    functionName: SpdmDheExchangeStruct::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1595,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1595,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1597,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1597,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1597,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - value
    argTypes:
    - BytesMut
    constantsTouched: []
    func_position:
      end: 1599
      start: 1593
    functionDepth: 2
    functionLinenumber: 1593
    functionLinenumberEnd: 1599
    functionName: SpdmDheExchangeStruct::from
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 2
    functionsReached:
    - SpdmResult::as_ref
    - copy_from_slice
    - '&[u8]::len'
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: BytesMut) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1613
    functionName: SpdmKemEncapKeyStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmKemEncapKeyStruct
    signature: fn default() -> SpdmKemEncapKeyStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1619
    functionName: SpdmKemEncapKeyStruct::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1625,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1625,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1627,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1627,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1627,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - value
    argTypes:
    - BytesMut
    constantsTouched: []
    func_position:
      end: 1629
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1629
    functionName: SpdmKemEncapKeyStruct::from
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::as_ref
    - copy_from_slice
    - '&[u8]::len'
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: BytesMut) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1643
    functionName: SpdmKemCipherTextStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmKemCipherTextStruct
    signature: fn default() -> SpdmKemCipherTextStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1649
    functionName: SpdmKemCipherTextStruct::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1655,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1655,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1657,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1657,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1657,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - value
    argTypes:
    - BytesMut
    constantsTouched: []
    func_position:
      end: 1659
      start: 1653
    functionDepth: 2
    functionLinenumber: 1653
    functionLinenumberEnd: 1659
    functionName: SpdmKemCipherTextStruct::from
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::as_ref
    - copy_from_slice
    - '&[u8]::len'
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: BytesMut) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1668
    functionDepth: 0
    functionLinenumber: 1668
    functionLinenumberEnd: 1673
    functionName: SpdmReqExchangeStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmReqExchangeStruct
    signature: fn default() -> SpdmReqExchangeStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1677
    functionDepth: 0
    functionLinenumber: 1677
    functionLinenumberEnd: 1679
    functionName: SpdmReqExchangeStruct::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1685,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1685,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1687,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1687,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1687,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - value
    argTypes:
    - BytesMut
    constantsTouched: []
    func_position:
      end: 1689
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1689
    functionName: SpdmReqExchangeStruct::from
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::as_ref
    - copy_from_slice
    - '&[u8]::len'
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: BytesMut) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - dhe
    argTypes:
    - SpdmDheExchangeStruct
    constantsTouched: []
    func_position:
      end: 1699
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1699
    functionName: SpdmReqExchangeStruct::from_dhe
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_dhe(dhe: SpdmDheExchangeStruct) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1700
    functionDepth: 0
    functionLinenumber: 1700
    functionLinenumberEnd: 1706
    functionName: SpdmReqExchangeStruct::to_dhe
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: SpdmDheExchangeStruct
    signature: pub fn to_dhe(self) -> SpdmDheExchangeStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - kem
    argTypes:
    - SpdmKemEncapKeyStruct
    constantsTouched: []
    func_position:
      end: 1713
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1713
    functionName: SpdmReqExchangeStruct::from_kem
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_kem(kem: SpdmKemEncapKeyStruct) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1720
    functionName: SpdmReqExchangeStruct::to_kem
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: SpdmKemEncapKeyStruct
    signature: pub fn to_kem(self) -> SpdmKemEncapKeyStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1729
    functionDepth: 0
    functionLinenumber: 1729
    functionLinenumberEnd: 1734
    functionName: SpdmRspExchangeStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmRspExchangeStruct
    signature: fn default() -> SpdmRspExchangeStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1738
    functionDepth: 0
    functionLinenumber: 1738
    functionLinenumberEnd: 1740
    functionName: SpdmRspExchangeStruct::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1746,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1746,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1748,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1748,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1748,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - value
    argTypes:
    - BytesMut
    constantsTouched: []
    func_position:
      end: 1750
      start: 1744
    functionDepth: 2
    functionLinenumber: 1744
    functionLinenumberEnd: 1750
    functionName: SpdmRspExchangeStruct::from
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::as_ref
    - copy_from_slice
    - '&[u8]::len'
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: BytesMut) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - dhe
    argTypes:
    - SpdmDheExchangeStruct
    constantsTouched: []
    func_position:
      end: 1760
      start: 1754
    functionDepth: 0
    functionLinenumber: 1754
    functionLinenumberEnd: 1760
    functionName: SpdmRspExchangeStruct::from_dhe
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_dhe(dhe: SpdmDheExchangeStruct) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1767
    functionName: SpdmRspExchangeStruct::to_dhe
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: SpdmDheExchangeStruct
    signature: pub fn to_dhe(self) -> SpdmDheExchangeStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - kem
    argTypes:
    - SpdmKemCipherTextStruct
    constantsTouched: []
    func_position:
      end: 1774
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1774
    functionName: SpdmRspExchangeStruct::from_kem
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_kem(kem: SpdmKemCipherTextStruct) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1775
    functionDepth: 0
    functionLinenumber: 1775
    functionLinenumberEnd: 1781
    functionName: SpdmRspExchangeStruct::to_kem
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: SpdmKemCipherTextStruct
    signature: pub fn to_kem(self) -> SpdmKemCipherTextStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1790
    functionDepth: 0
    functionLinenumber: 1790
    functionLinenumberEnd: 1795
    functionName: SpdmPskContextStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SpdmPskContextStruct
    signature: fn default() -> SpdmPskContextStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1800
    functionName: SpdmPskContextStruct::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1814
    functionName: SpdmPskHintStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: SpdmPskHintStruct
    signature: fn default() -> SpdmPskHintStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1817
    functionDepth: 0
    functionLinenumber: 1817
    functionLinenumberEnd: 1819
    functionName: SpdmPskHintStruct::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1825,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1826,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1826,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1827,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1830
      start: 1823
    functionDepth: 4
    functionLinenumber: 1823
    functionLinenumberEnd: 1830
    functionName: SpdmPskHintStruct::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1833,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1838,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1838,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1839,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1842
      start: 1832
    functionDepth: 5
    functionLinenumber: 1832
    functionLinenumberEnd: 1842
    functionName: SpdmPskHintStruct::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Some
    - take
    - u16::read
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmPskHintStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:12,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:26,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:26,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:27,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:28,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:28,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:28,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:28,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:36,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:37,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:38,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:38,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:38,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:46,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:47,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:47,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:48,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:50,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:54,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:58,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:59,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:59,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:60,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1845
    functionDepth: 3
    functionLinenumber: 1845
    functionLinenumberEnd: 1911
    functionName: create_sensitive_datatype
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Some
    - encode
    - take
    - u16::read
    - copy_from_slice
    - '&[u8]::len'
    - Ok
    - iter_mut
    - SpdmResult::as_ref
    - Box::new
    - iter
    - Vec::encode
    - SpdmResult::len
    - u8::read
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1958,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1959,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1960,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1961,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1962,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1963,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1964,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1956
    functionDepth: 2
    functionLinenumber: 1956
    functionLinenumberEnd: 1967
    functionName: SpdmHkdfInputKeyingMaterial::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1971
    functionDepth: 0
    functionLinenumber: 1971
    functionLinenumberEnd: 1982
    functionName: SpdmHkdfInputKeyingMaterial::get_data_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn get_data_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1994,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1996,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:1997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - okm
    argTypes:
    - SpdmHkdfOutputKeyingMaterial
    constantsTouched: []
    func_position:
      end: 1999
      start: 1986
    functionDepth: 1
    functionLinenumber: 1986
    functionLinenumberEnd: 1999
    functionName: SpdmHandshakeSecretStruct::from_spdm_hkdf_okm
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_okm(okm: SpdmHkdfOutputKeyingMaterial,) -> Option<SpdmHandshakeSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2006,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2008,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - prk
    argTypes:
    - SpdmHkdfPseudoRandomKey
    constantsTouched: []
    func_position:
      end: 2011
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2011
    functionName: SpdmHandshakeSecretStruct::from_spdm_hkdf_prk
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_prk(prk: SpdmHkdfPseudoRandomKey) -> Option<SpdmHandshakeSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2023,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2025,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - okm
    argTypes:
    - SpdmHkdfOutputKeyingMaterial
    constantsTouched: []
    func_position:
      end: 2029
      start: 2015
    functionDepth: 1
    functionLinenumber: 2015
    functionLinenumberEnd: 2029
    functionName: SpdmDirectionHandshakeSecretStruct::from_spdm_hkdf_okm
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 2
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_okm(okm: SpdmHkdfOutputKeyingMaterial,) -> Option<SpdmDirectionHandshakeSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2038,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2040,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - prk
    argTypes:
    - SpdmHkdfPseudoRandomKey
    constantsTouched: []
    func_position:
      end: 2044
      start: 2030
    functionDepth: 1
    functionLinenumber: 2030
    functionLinenumberEnd: 2044
    functionName: SpdmDirectionHandshakeSecretStruct::from_spdm_hkdf_prk
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_prk(prk: SpdmHkdfPseudoRandomKey,) -> Option<SpdmDirectionHandshakeSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2054,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2056,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - okm
    argTypes:
    - SpdmHkdfOutputKeyingMaterial
    constantsTouched: []
    func_position:
      end: 2059
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2059
    functionName: SpdmMasterSecretStruct::from_spdm_hkdf_okm
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_okm(okm: SpdmHkdfOutputKeyingMaterial) -> Option<SpdmMasterSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2066,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2068,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2069,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - prk
    argTypes:
    - SpdmHkdfPseudoRandomKey
    constantsTouched: []
    func_position:
      end: 2071
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2071
    functionName: SpdmMasterSecretStruct::from_spdm_hkdf_prk
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_prk(prk: SpdmHkdfPseudoRandomKey) -> Option<SpdmMasterSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2083,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2085,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - okm
    argTypes:
    - SpdmHkdfOutputKeyingMaterial
    constantsTouched: []
    func_position:
      end: 2089
      start: 2075
    functionDepth: 1
    functionLinenumber: 2075
    functionLinenumberEnd: 2089
    functionName: SpdmDirectionDataSecretStruct::from_spdm_hkdf_okm
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 3
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_okm(okm: SpdmHkdfOutputKeyingMaterial,) -> Option<SpdmDirectionDataSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2098,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2100,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - prk
    argTypes:
    - SpdmHkdfPseudoRandomKey
    constantsTouched: []
    func_position:
      end: 2104
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2104
    functionName: SpdmDirectionDataSecretStruct::from_spdm_hkdf_prk
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_prk(prk: SpdmHkdfPseudoRandomKey,) -> Option<SpdmDirectionDataSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2114,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2116,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - okm
    argTypes:
    - SpdmHkdfOutputKeyingMaterial
    constantsTouched: []
    func_position:
      end: 2119
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2119
    functionName: SpdmAeadKeyStruct::from_spdm_hkdf_okm
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_okm(okm: SpdmHkdfOutputKeyingMaterial) -> Option<SpdmAeadKeyStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2126,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2128,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - prk
    argTypes:
    - SpdmHkdfPseudoRandomKey
    constantsTouched: []
    func_position:
      end: 2131
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2131
    functionName: SpdmAeadKeyStruct::from_spdm_hkdf_prk
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_prk(prk: SpdmHkdfPseudoRandomKey) -> Option<SpdmAeadKeyStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2141,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2143,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - okm
    argTypes:
    - SpdmHkdfOutputKeyingMaterial
    constantsTouched: []
    func_position:
      end: 2146
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2146
    functionName: SpdmAeadIvStruct::from_spdm_hkdf_okm
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_okm(okm: SpdmHkdfOutputKeyingMaterial) -> Option<SpdmAeadIvStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2153,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2155,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - prk
    argTypes:
    - SpdmHkdfPseudoRandomKey
    constantsTouched: []
    func_position:
      end: 2158
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2158
    functionName: SpdmAeadIvStruct::from_spdm_hkdf_prk
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_prk(prk: SpdmHkdfPseudoRandomKey) -> Option<SpdmAeadIvStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2168,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2170,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - okm
    argTypes:
    - SpdmHkdfOutputKeyingMaterial
    constantsTouched: []
    func_position:
      end: 2173
      start: 2162
    functionDepth: 1
    functionLinenumber: 2162
    functionLinenumberEnd: 2173
    functionName: SpdmFinishedKeyStruct::from_spdm_hkdf_okm
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_okm(okm: SpdmHkdfOutputKeyingMaterial) -> Option<SpdmFinishedKeyStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2180,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2182,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - prk
    argTypes:
    - SpdmHkdfPseudoRandomKey
    constantsTouched: []
    func_position:
      end: 2185
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2185
    functionName: SpdmFinishedKeyStruct::from_spdm_hkdf_prk
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_prk(prk: SpdmHkdfPseudoRandomKey) -> Option<SpdmFinishedKeyStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2197,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2199,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - okm
    argTypes:
    - SpdmHkdfOutputKeyingMaterial
    constantsTouched: []
    func_position:
      end: 2202
      start: 2189
    functionDepth: 1
    functionLinenumber: 2189
    functionLinenumberEnd: 2202
    functionName: SpdmExportMasterSecretStruct::from_spdm_hkdf_okm
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 1
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_okm(okm: SpdmHkdfOutputKeyingMaterial,) -> Option<SpdmExportMasterSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2211,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2213,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - prk
    argTypes:
    - SpdmHkdfPseudoRandomKey
    constantsTouched: []
    func_position:
      end: 2216
      start: 2203
    functionDepth: 1
    functionLinenumber: 2203
    functionLinenumberEnd: 2216
    functionName: SpdmExportMasterSecretStruct::from_spdm_hkdf_prk
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_spdm_hkdf_prk(prk: SpdmHkdfPseudoRandomKey,) -> Option<SpdmExportMasterSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&SpdmHkdfInputKeyingMaterial::get_data_size'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2223,1
    - Dst: '&SpdmHkdfInputKeyingMaterial::get_data_size'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2223,1
    - Dst: '&SpdmHkdfInputKeyingMaterial::get_data_size'
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2227,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2228,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2231,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2234,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2237,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2240,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2243,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2246,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2249,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2252,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 122
    argCount: 1
    argNames:
    - ikm
    argTypes:
    - '&SpdmHkdfInputKeyingMaterial'
    constantsTouched: []
    func_position:
      end: 2258
      start: 2220
    functionDepth: 1
    functionLinenumber: 2220
    functionLinenumberEnd: 2258
    functionName: SpdmHkdfPseudoRandomKey::from_input_keying_material
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 9
    functionsReached:
    - Box::new
    - '&SpdmHkdfInputKeyingMaterial::get_data_size'
    - copy_from_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_input_keying_material(ikm: &SpdmHkdfInputKeyingMaterial,)
      -> Option<SpdmHkdfPseudoRandomKey>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2269,1
    - Dst: SpdmMeasurementSpecification::all
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2270,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2267
    functionDepth: 1
    functionLinenumber: 2267
    functionLinenumberEnd: 2280
    functionName: tests::test_case0_spdm_measurement_specification
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    - SpdmMeasurementSpecification::all
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_measurement_specification()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2284,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2288,1
    - Dst: SpdmAlgoOtherParams::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2291,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2282
    functionDepth: 6
    functionLinenumber: 2282
    functionLinenumberEnd: 2297
    functionName: tests::test_case0_spdm_algo_other_params_selection
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Reader::init
    - Writer::init
    - SpdmAlgoOtherParams::read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_algo_other_params_selection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2301,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2299
    functionDepth: 1
    functionLinenumber: 2299
    functionLinenumberEnd: 2312
    functionName: tests::test_case0_spdm_measurement_hash_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_measurement_hash_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2316,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2314
    functionDepth: 1
    functionLinenumber: 2314
    functionLinenumberEnd: 2326
    functionName: tests::test_case0_spdm_base_asym_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_base_asym_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2330,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2328
    functionDepth: 1
    functionLinenumber: 2328
    functionLinenumberEnd: 2340
    functionName: tests::test_case0_spdm_base_hash_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_base_hash_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2344,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2342
    functionDepth: 1
    functionLinenumber: 2342
    functionLinenumberEnd: 2354
    functionName: tests::test_case0_spdm_dhe_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_dhe_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2359,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2357
    functionDepth: 1
    functionLinenumber: 2357
    functionLinenumberEnd: 2369
    functionName: tests::test_case0_spdm_aead_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_aead_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2373,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2371
    functionDepth: 1
    functionLinenumber: 2371
    functionLinenumberEnd: 2383
    functionName: tests::test_case0_spdm_req_asym_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_req_asym_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2387,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2385
    functionDepth: 1
    functionLinenumber: 2385
    functionLinenumberEnd: 2397
    functionName: tests::test_case0_spdm_key_schedule_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_key_schedule_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2401,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2406,1
    - Dst: SpdmNonceStruct::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2408,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2399
    functionDepth: 6
    functionLinenumber: 2399
    functionLinenumberEnd: 2414
    functionName: tests::test_case0_spdm_nonce_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Reader::init
    - Writer::init
    - SpdmNonceStruct::read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_nonce_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2419,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2424,1
    - Dst: SpdmChallengeContextStruct::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2426,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2426,1
    - Dst: SpdmChallengeContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2417
    functionDepth: 6
    functionLinenumber: 2417
    functionLinenumberEnd: 2437
    functionName: tests::test_case0_spdm_challenge_context_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmChallengeContextStruct::default
    - Writer::init
    - Reader::init
    - Option::unwrap
    - SpdmChallengeContextStruct::read
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_challenge_context_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2442,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2447,1
    - Dst: SpdmMeasurementContextStruct::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2450,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2450,1
    - Dst: SpdmMeasurementContextStruct::default
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2440
    functionDepth: 6
    functionLinenumber: 2440
    functionLinenumberEnd: 2461
    functionName: tests::test_case0_spdm_measurement_context_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementContextStruct::read
    - Writer::init
    - Option::unwrap
    - Reader::init
    - SpdmMeasurementContextStruct::default
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_measurement_context_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2466,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2471,1
    - Dst: SpdmRandomStruct::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2473,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2464
    functionDepth: 6
    functionLinenumber: 2464
    functionLinenumberEnd: 2479
    functionName: tests::test_case0_spdm_random_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmRandomStruct::read
    - Reader::init
    - Writer::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_random_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2483,1
    - Dst: SpdmAlg::SpdmAlgoDhe
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2486,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2490,1
    - Dst: SpdmAlgStruct::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2492,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2481
    functionDepth: 7
    functionLinenumber: 2481
    functionLinenumberEnd: 2499
    functionName: tests::test_case0_spdm_alg_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmAlgStruct::read
    - SpdmAlg::SpdmAlgoDhe
    - Writer::init
    - Reader::init
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_alg_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2504,1
    - Dst: SpdmAlgType::Unknown
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2506,1
    - Dst: SpdmAlg::SpdmAlgoUnknown
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2507,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2511,1
    - Dst: SpdmAlgStruct::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2502
    functionDepth: 7
    functionLinenumber: 2502
    functionLinenumberEnd: 2516
    functionName: tests::test_case3_spdm_alg_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmAlgType::Unknown
    - SpdmAlg::SpdmAlgoUnknown
    - SpdmAlgStruct::read
    - Writer::init
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn test_case3_spdm_alg_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMutStrubbed::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2519,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2521,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2524,1
    - Dst: SpdmDigestStruct::from
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2518
    functionDepth: 2
    functionLinenumber: 2518
    functionLinenumberEnd: 2530
    functionName: tests::test_case0_spdm_digest_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - SpdmDigestStruct::from
    - Writer::init
    - BytesMutStrubbed::new
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_digest_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2534,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2532
    functionDepth: 3
    functionLinenumber: 2532
    functionLinenumberEnd: 2536
    functionName: tests::test_case1_spdm_measurement_specification
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmMeasurementSpecification::empty
    - prioritize
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_measurement_specification()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2539,1
    - Dst: SpdmSignatureStruct::from
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2538
    functionDepth: 3
    functionLinenumber: 2538
    functionLinenumberEnd: 2545
    functionName: tests::test_case1_spdm_signature_struct
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmSignatureStruct::from
    - BytesMut::new
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_signature_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementHashAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2562,1
    - Dst: SpdmResult::get_size
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2549
    functionDepth: 2
    functionLinenumber: 2549
    functionLinenumberEnd: 2564
    functionName: tests::test_case1_spdm_measurement_hash_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::get_size
    - SpdmMeasurementHashAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_measurement_hash_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmBaseAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2592,1
    - Dst: SpdmResult::get_sig_size
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2567
    functionDepth: 2
    functionLinenumber: 2567
    functionLinenumberEnd: 2594
    functionName: tests::test_case1_spdm_base_asym_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::get_sig_size
    - SpdmBaseAsymAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_base_asym_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDheAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2604,1
    - Dst: SpdmResult::get_key_size
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2597
    functionDepth: 2
    functionLinenumber: 2597
    functionLinenumberEnd: 2606
    functionName: tests::test_case1_spdm_dhe_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmDheAlgo::empty
    - SpdmResult::get_key_size
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_dhe_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAeadAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2619,1
    - Dst: SpdmResult::get_key_size
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2609
    functionDepth: 2
    functionLinenumber: 2609
    functionLinenumberEnd: 2621
    functionName: tests::test_case1_spdm_aead_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::get_key_size
    - SpdmAeadAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_aead_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAeadAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2634,1
    - Dst: SpdmResult::get_key_size
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2624
    functionDepth: 2
    functionLinenumber: 2624
    functionLinenumberEnd: 2636
    functionName: tests::test_case2_spdm_aead_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::get_key_size
    - SpdmAeadAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case2_spdm_aead_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAeadAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2649,1
    - Dst: SpdmResult::get_iv_size
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2639
    functionDepth: 2
    functionLinenumber: 2639
    functionLinenumberEnd: 2651
    functionName: tests::test_case3_spdm_aead_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmAeadAlgo::empty
    - SpdmResult::get_iv_size
    linkageType: ''
    returnType: void
    signature: fn test_case3_spdm_aead_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAeadAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2664,1
    - Dst: SpdmResult::get_tag_size
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2654
    functionDepth: 2
    functionLinenumber: 2654
    functionLinenumberEnd: 2666
    functionName: tests::test_case4_spdm_aead_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::get_tag_size
    - SpdmAeadAlgo::empty
    linkageType: ''
    returnType: void
    signature: fn test_case4_spdm_aead_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2694,1
    - Dst: SpdmResult::get_sig_size
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2669
    functionDepth: 2
    functionLinenumber: 2669
    functionLinenumberEnd: 2696
    functionName: tests::test_case1_spdm_req_asym_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmReqAsymAlgo::empty
    - SpdmResult::get_sig_size
    linkageType: ''
    returnType: void
    signature: fn test_case1_spdm_req_asym_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2700,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2703,1
    - Dst: SpdmUnknownAlgo::read
      Src: /src/spdm-rs/spdmlib/src/protocol/algo.rs:2704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2698
    functionDepth: 1
    functionLinenumber: 2698
    functionLinenumberEnd: 2705
    functionName: tests::test_case0_spdm_unknown_algo
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/algo.rs
    functionUses: 0
    functionsReached:
    - SpdmUnknownAlgo::read
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_spdm_unknown_algo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:19,1
    - Dst: VecDeque::push
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:21,1
    - Dst: T::default
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:21,1
    - Dst: VecDeque::try_into
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:23,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - count
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: gen_array
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/mod.rs
    functionUses: 1
    functionsReached:
    - VecDeque::try_into
    - VecDeque::push
    - Result::unwrap_or_else
    - T::default
    - Vec::new
    linkageType: ''
    returnType: '[T; N]'
    signature: 'pub fn gen_array<T: Default, const N: usize>(count: usize) -> [T;
      N]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:29,1
    - Dst: VecDeque::push
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:31,1
    - Dst: SimpleLogger::clone
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:31,1
    - Dst: VecDeque::push
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:33,1
    - Dst: VecDeque::try_into
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:34,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/spdmlib/src/protocol/mod.rs:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - v
    - count
    argTypes:
    - T
    - usize
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: gen_array_clone
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/mod.rs
    functionUses: 50
    functionsReached:
    - VecDeque::try_into
    - VecDeque::push
    - Result::unwrap_or_else
    - SimpleLogger::clone
    - Vec::new
    linkageType: ''
    returnType: '[T; N]'
    signature: 'pub fn gen_array_clone<T: Clone, const N: usize>(v: T, count: usize)
      -> [T; N]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRequestCapabilityFlags::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:55,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: SpdmRequestCapabilityFlags::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmRequestCapabilityFlags::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:59,1
    - Dst: SpdmRequestCapabilityFlags::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: SpdmRequestCapabilityFlags::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 3
    functionsReached:
    - SpdmRequestCapabilityFlags::from_bits
    - u32::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmRequestCapabilityFlags>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRequestCapabilityExFlags::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:73,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: SpdmRequestCapabilityExFlags::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmRequestCapabilityExFlags::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:77,1
    - Dst: SpdmRequestCapabilityExFlags::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: SpdmRequestCapabilityExFlags::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 1
    functionsReached:
    - SpdmRequestCapabilityExFlags::from_bits
    - u16::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmRequestCapabilityExFlags>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResponseCapabilityFlags::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:155,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: SpdmResponseCapabilityFlags::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - SpdmResponseCapabilityFlags::bits
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:159,1
    - Dst: SpdmResponseCapabilityFlags::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 5
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: SpdmResponseCapabilityFlags::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 3
    functionsReached:
    - SpdmResponseCapabilityFlags::from_bits
    - u32::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmResponseCapabilityFlags>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResponseCapabilityExFlags::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:175,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: SpdmResponseCapabilityExFlags::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 0
    functionsReached:
    - SpdmResponseCapabilityExFlags::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:179,1
    - Dst: SpdmResponseCapabilityExFlags::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 5
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: SpdmResponseCapabilityExFlags::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 1
    functionsReached:
    - u16::read
    - SpdmResponseCapabilityExFlags::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmResponseCapabilityExFlags>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCapabilityParam1::bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:197,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: SpdmCapabilityParam1::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 0
    functionsReached:
    - SpdmCapabilityParam1::bits
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:201,1
    - Dst: SpdmCapabilityParam1::from_bits
      Src: /src/spdm-rs/spdmlib/src/protocol/capability.rs:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: SpdmCapabilityParam1::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/capability.rs
    functionUses: 1
    functionsReached:
    - u8::read
    - SpdmCapabilityParam1::from_bits
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<SpdmCapabilityParam1>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: SpdmVersion::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/version.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:27,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:29,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:31,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:33,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:35,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - untrusted_spdm_version
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: SpdmVersion::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/version.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(untrusted_spdm_version: u8) -> Result<Self, <Self as TryFrom<u8>>::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:62,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut codec::Writer<''_>'
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: SpdmVersion::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/version.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - u8::from
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut codec::Writer<''_>) -> Result<usize,
      EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:66,1
    - Dst: Self::try_from
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:67,1
    - Dst: Result::ok
      Src: /src/spdm-rs/spdmlib/src/protocol/version.rs:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut codec::Reader<''_>'
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 9
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: SpdmVersion::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/protocol/version.rs
    functionUses: 4
    functionsReached:
    - Self::try_from
    - Result::ok
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut codec::Reader<''_>) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:21,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmSecretMeasurement
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: measurement::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 18
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmSecretMeasurement) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:64,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:65,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - spdm_version
    - measurement_specification
    - measurement_hash_algo
    - measurement_index
    argTypes:
    - SpdmVersion
    - SpdmMeasurementSpecification
    - SpdmMeasurementHashAlgo
    - usize
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 9
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: measurement::measurement_collection
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 2
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn measurement_collection(spdm_version: SpdmVersion,measurement_specification:
      SpdmMeasurementSpecification,measurement_hash_algo: SpdmMeasurementHashAlgo,measurement_index:
      usize,) -> Option<SpdmMeasurementRecordStructure>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:81,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:82,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - spdm_version
    - base_hash_algo
    - measurement_specification
    - measurement_hash_algo
    - measurement_summary_hash_type
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - SpdmMeasurementSpecification
    - SpdmMeasurementHashAlgo
    - SpdmMeasurementSummaryHashType
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 9
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: measurement::generate_measurement_summary_hash
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 3
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn generate_measurement_summary_hash(spdm_version: SpdmVersion,base_hash_algo:
      SpdmBaseHashAlgo,measurement_specification: SpdmMeasurementSpecification,measurement_hash_algo:
      SpdmMeasurementHashAlgo,measurement_summary_hash_type: SpdmMeasurementSummaryHashType,)
      -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:97,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmSecretPsk
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: psk::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 15
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmSecretPsk) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:124,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:125,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - spdm_version
    - base_hash_algo
    - psk_hint
    - info
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - '&SpdmPskHintStruct'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 9
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: psk::handshake_secret_hkdf_expand
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 2
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn handshake_secret_hkdf_expand(spdm_version: SpdmVersion,base_hash_algo:
      SpdmBaseHashAlgo,psk_hint: &SpdmPskHintStruct,info: &[u8],) -> Option<SpdmHkdfOutputKeyingMaterial>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:136,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:137,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - spdm_version
    - base_hash_algo
    - psk_hint
    - info
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - '&SpdmPskHintStruct'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 9
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: psk::master_secret_hkdf_expand
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 3
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn master_secret_hkdf_expand(spdm_version: SpdmVersion,base_hash_algo:
      SpdmBaseHashAlgo,psk_hint: &SpdmPskHintStruct,info: &[u8],) -> Option<SpdmHkdfOutputKeyingMaterial>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:150,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmSecretAsymSign
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: asym_sign::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 105
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmSecretAsymSign) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:167,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:168,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - spdm_context
    - base_hash_algo
    - base_asym_algo
    - data
    argTypes:
    - '&SpdmContext'
    - SpdmBaseHashAlgo
    - SpdmBaseAsymAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 9
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: asym_sign::sign
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn sign(spdm_context: &SpdmContext,base_hash_algo: SpdmBaseHashAlgo,base_asym_algo:
      SpdmBaseAsymAlgo,data: &[u8],) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_init_once
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:181,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - SpdmSecretPqcAsymSign
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: pqc_asym_sign::register
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 105
    functionsReached:
    - is_ok
    - try_init_once
    linkageType: ''
    returnType: bool
    signature: 'pub fn register(context: SpdmSecretPqcAsymSign) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:198,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:199,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - spdm_context
    - base_hash_algo
    - pqc_asym_algo
    - data
    argTypes:
    - '&SpdmContext'
    - SpdmBaseHashAlgo
    - SpdmPqcAsymAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 9
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: pqc_asym_sign::sign
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 1
    functionsReached:
    - ok
    - try_get_or_init
    - clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn sign(spdm_context: &SpdmContext,base_hash_algo: SpdmBaseHashAlgo,pqc_asym_algo:
      SpdmPqcAsymAlgo,data: &[u8],) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:217,1
    - Dst: pqc_asym_sign::sign
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:218,1
    - Dst: asym_sign::sign
      Src: /src/spdm-rs/spdmlib/src/secret/mod.rs:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - spdm_context
    - base_hash_algo
    - base_asym_algo
    - pqc_asym_algo
    - data
    argTypes:
    - '&SpdmContext'
    - SpdmBaseHashAlgo
    - SpdmBaseAsymAlgo
    - SpdmPqcAsymAlgo
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 222
      start: 210
    functionDepth: 10
    functionLinenumber: 210
    functionLinenumberEnd: 222
    functionName: spdm_asym_sign
    functionSourceFile: /src/spdm-rs/spdmlib/src/secret/mod.rs
    functionUses: 4
    functionsReached:
    - pqc_asym_sign::sign
    - asym_sign::sign
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: Option
    signature: 'pub fn spdm_asym_sign(spdm_context: &SpdmContext,base_hash_algo: SpdmBaseHashAlgo,base_asym_algo:
      SpdmBaseAsymAlgo,pqc_asym_algo: SpdmPqcAsymAlgo,data: &[u8],) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:34,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:35,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:36,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:37,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: GeneralOpaqueDataHeader::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:43,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:44,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:45,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:46,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: GeneralOpaqueDataHeader::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 3
    functionsReached:
    - u32::read
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeneralOpaqueDataHeader::encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:61,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: GeneralOpaqueDataHeader::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - GeneralOpaqueDataHeader::encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn spdm_encode(&self, _context: &mut SpdmContext, bytes: &mut Writer)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeneralOpaqueDataHeader::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: GeneralOpaqueDataHeader::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - GeneralOpaqueDataHeader::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut SpdmContext, r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:76,1
    - Dst: u24::new
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:77,1
    - Dst: u24::encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:77,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: FM1OpaqueDataHeader::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - u24::new
    - encode
    - Ok
    - u24::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:83,1
    - Dst: u24::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:84,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: FM1OpaqueDataHeader::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 3
    functionsReached:
    - Some
    - u8::read
    - u24::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FM1OpaqueDataHeader::encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:96,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: FM1OpaqueDataHeader::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - FM1OpaqueDataHeader::encode
    - Result::map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn spdm_encode(&self, _context: &mut SpdmContext, bytes: &mut Writer)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FM1OpaqueDataHeader::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: FM1OpaqueDataHeader::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - FM1OpaqueDataHeader::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut SpdmContext, r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:129,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:130,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - untrusted
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: SMDataId::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 2
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(untrusted: u8) -> Result<Self, <Self as TryFrom<u8>>::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:138,1
    - Dst: Self::encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: SMDataId::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - Self::encode
    - u8::from
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:142,1
    - Dst: Self::try_from
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:143,1
    - Dst: Result::ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 9
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: SMDataId::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - Self::try_from
    - Result::ok
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: SecuredMessageVersion::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:169,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:170,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: SecuredMessageVersion::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:175,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:176,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 188
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 188
    functionName: SecuredMessageVersion::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 5
    functionsReached:
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecuredMessageVersion::encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:197,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: SecuredMessageVersion::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - SecuredMessageVersion::encode
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecuredMessageVersion::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: SecuredMessageVersion::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - SecuredMessageVersion::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut SpdmContext, r: &mut Reader) -> Option<SecuredMessageVersion>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::from
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - smv
    argTypes:
    - '&opaque::SecuredMessageVersion'
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: u16::from
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 2
    functionsReached:
    - u16::from
    linkageType: ''
    returnType: Self
    signature: 'fn from(smv: &opaque::SecuredMessageVersion) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - untrusted_smv
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 261
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 261
    functionName: SecuredMessageVersion::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 9
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(untrusted_smv: u16) -> Result<Self, <Self as TryFrom<u8>>::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - smv
    argTypes:
    - '&SecuredMessageVersion'
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: SecuredMessageVersion::eq
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, smv: &SecuredMessageVersion) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:279,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:281,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 284
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 284
    functionName: SecuredMessageVersionList::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:287,1
    - Dst: SecuredMessageVersion::default
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:291,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:292,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:292,1
    - Dst: SecuredMessageVersion::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:293,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 300
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 300
    functionName: SecuredMessageVersionList::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 2
    functionsReached:
    - SecuredMessageVersion::read
    - Some
    - take
    - iter_mut
    - SecuredMessageVersion::default
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecuredMessageVersionList::encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:309,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: SecuredMessageVersionList::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - SecuredMessageVersionList::encode
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecuredMessageVersionList::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 6
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: SecuredMessageVersionList::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - SecuredMessageVersionList::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut SpdmContext, r: &mut Reader) -> Option<SecuredMessageVersionList>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:325,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:326,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:327,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:328,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:329,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:330,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 334
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 334
    functionName: SMVersionSelOpaque::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:337,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:338,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:339,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:340,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:341,1
    - Dst: SMDataId::try_from
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:342,1
    - Dst: Result::ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:342,1
    - Dst: SecuredMessageVersion::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:343,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:352,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 356
      start: 336
    functionDepth: 9
    functionLinenumber: 336
    functionLinenumberEnd: 356
    functionName: SMVersionSelOpaque::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - Result::ok
    - SecuredMessageVersion::read
    - Some
    - u16::read
    - SMDataId::try_from
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:363,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:368,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:368,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:372,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:375,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:375,1
    - Dst: SMVersionSelOpaque::encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:379,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:379,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 382
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 382
    functionName: SMVersionSelOpaque::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - contains
    - Err
    - encode
    - Ok
    - Result::map_err
    - SMVersionSelOpaque::encode
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn spdm_encode(&self, context: &mut SpdmContext, bytes: &mut Writer)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:386,1
    - Dst: FM1OpaqueDataHeader::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:391,1
    - Dst: GeneralOpaqueDataHeader::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:396,1
    - Dst: SMVersionSelOpaque::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 399
      start: 384
    functionDepth: 10
    functionLinenumber: 384
    functionLinenumberEnd: 399
    functionName: SMVersionSelOpaque::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - GeneralOpaqueDataHeader::read
    - SMVersionSelOpaque::read
    - FM1OpaqueDataHeader::read
    - contains
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:411,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:412,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:413,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:414,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:415,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:416,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:422,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:426,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 427
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 427
    functionName: SMSupportedVerListOpaque::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:430,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:431,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:432,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:433,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:434,1
    - Dst: SMDataId::try_from
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:436,1
    - Dst: Result::ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:436,1
    - Dst: SecuredMessageVersionList::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:437,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:452,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:456,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 460
      start: 429
    functionDepth: 9
    functionLinenumber: 429
    functionLinenumberEnd: 460
    functionName: SMSupportedVerListOpaque::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - Result::ok
    - Some
    - u16::read
    - SecuredMessageVersionList::read
    - SMDataId::try_from
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:467,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:472,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:472,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:476,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:479,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:479,1
    - Dst: SMSupportedVerListOpaque::encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:483,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:483,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 486
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 486
    functionName: SMSupportedVerListOpaque::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - contains
    - Err
    - encode
    - Ok
    - Result::map_err
    - SMSupportedVerListOpaque::encode
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn spdm_encode(&self, context: &mut SpdmContext, bytes: &mut Writer)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:490,1
    - Dst: FM1OpaqueDataHeader::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:495,1
    - Dst: GeneralOpaqueDataHeader::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:500,1
    - Dst: SMSupportedVerListOpaque::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 503
      start: 488
    functionDepth: 10
    functionLinenumber: 488
    functionLinenumberEnd: 503
    functionName: SMSupportedVerListOpaque::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - GeneralOpaqueDataHeader::read
    - FM1OpaqueDataHeader::read
    - contains
    - SMSupportedVerListOpaque::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: SpdmOpaqueStruct::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: SpdmOpaqueStruct
    signature: fn default() -> SpdmOpaqueStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:527,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:527,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:531,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:531,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:532,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:532,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 535
      start: 521
    functionDepth: 4
    functionLinenumber: 521
    functionLinenumberEnd: 535
    functionName: SpdmOpaqueStruct::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:537,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:542,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:542,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:543,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - _context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 547
      start: 536
    functionDepth: 5
    functionLinenumber: 536
    functionLinenumberEnd: 547
    functionName: SpdmOpaqueStruct::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 9
    functionsReached:
    - Some
    - take
    - u16::read
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(_context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmOpaqueStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:559,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:561,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - context
    - sm_version_sel_opaque
    argTypes:
    - '&mut SpdmContext'
    - '&SMVersionSelOpaque'
    constantsTouched: []
    func_position:
      end: 564
      start: 551
    functionDepth: 4
    functionLinenumber: 551
    functionLinenumberEnd: 564
    functionName: SpdmOpaqueStruct::from_sm_version_sel_opaque
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 2
    functionsReached:
    - SpdmResult::spdm_encode
    - Writer::init
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn from_sm_version_sel_opaque(context: &mut SpdmContext,sm_version_sel_opaque:
      &SMVersionSelOpaque,) -> SpdmResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SMVersionSelOpaque::spdm_read_bytes
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:570,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - context
    argTypes:
    - '&mut SpdmContext'
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 7
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: SpdmOpaqueStruct::to_sm_version_sel_opaque
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - SMVersionSelOpaque::spdm_read_bytes
    - Option::ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn to_sm_version_sel_opaque(&self,context: &mut SpdmContext,)
      -> SpdmResult<SMVersionSelOpaque>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:582,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:584,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - context
    - sm_supported_ver_list_opaque
    argTypes:
    - '&mut SpdmContext'
    - '&SMSupportedVerListOpaque'
    constantsTouched: []
    func_position:
      end: 587
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 587
    functionName: SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 6
    functionsReached:
    - SpdmResult::spdm_encode
    - Writer::init
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn from_sm_supported_ver_list_opaque(context: &mut SpdmContext,sm_supported_ver_list_opaque:
      &SMSupportedVerListOpaque,) -> SpdmResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SMSupportedVerListOpaque::spdm_read_bytes
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:593,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - context
    argTypes:
    - '&mut SpdmContext'
    constantsTouched: []
    func_position:
      end: 595
      start: 589
    functionDepth: 7
    functionLinenumber: 589
    functionLinenumberEnd: 595
    functionName: SpdmOpaqueStruct::to_sm_supported_ver_list_opaque
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 1
    functionsReached:
    - Option::ok_or
    - SMSupportedVerListOpaque::spdm_read_bytes
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn to_sm_supported_ver_list_opaque(&self,context: &mut SpdmContext,)
      -> SpdmResult<SMSupportedVerListOpaque>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmOpaqueStruct::to_sm_supported_ver_list_opaque
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:601,1
    - Dst: SpdmResult::ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:601,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - '&mut SpdmContext'
    constantsTouched: []
    func_position:
      end: 603
      start: 597
    functionDepth: 9
    functionLinenumber: 597
    functionLinenumberEnd: 603
    functionName: SpdmOpaqueStruct::rsp_get_dmtf_supported_secure_spdm_version_list
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::ok
    - SpdmOpaqueStruct::to_sm_supported_ver_list_opaque
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn rsp_get_dmtf_supported_secure_spdm_version_list(&self,context:
      &mut SpdmContext,) -> Option<SecuredMessageVersionList>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmOpaqueStruct::to_sm_version_sel_opaque
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:609,1
    - Dst: SpdmResult::ok
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:609,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/opaque.rs:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - '&mut SpdmContext'
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 9
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: SpdmOpaqueStruct::req_get_dmtf_secure_spdm_version_selection
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/opaque.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::ok
    - SpdmOpaqueStruct::to_sm_version_sel_opaque
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn req_get_dmtf_secure_spdm_version_selection(&self,context: &mut
      SpdmContext,) -> Option<SecuredMessageVersion>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: SpdmKeySchedule::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: SpdmKeySchedule::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, _writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: SpdmKeySchedule::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(_reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: SpdmKeySchedule::new
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto::hkdf::hkdf_extract
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:60,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:62,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmSharedSecretFinalKey
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:63,1
    - Dst: SpdmHandshakeSecretStruct::from_spdm_hkdf_prk
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - _spdm_version
    - hash_algo
    - key
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - '&SpdmSharedSecretFinalKeyStruct'
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 10
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: SpdmKeySchedule::derive_handshake_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHandshakeSecretStruct::from_spdm_hkdf_prk
    - get_size
    - crypto::hkdf::hkdf_extract
    - SpdmHkdfInputKeyingMaterial::SpdmSharedSecretFinalKey
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_handshake_secret(&self,_spdm_version: SpdmVersion,hash_algo:
      SpdmBaseHashAlgo,key: &SpdmSharedSecretFinalKeyStruct,) -> Option<SpdmHandshakeSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:75,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:76,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:82,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:84,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmHandshakeSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:85,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:88,1
    - Dst: crypto::hkdf::hkdf_extract
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:92,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:94,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmZeroFilled
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:95,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:96,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:97,1
    - Dst: SpdmMasterSecretStruct::from_spdm_hkdf_prk
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 3
    argNames:
    - spdm_version
    - hash_algo
    - key
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - '&SpdmHandshakeSecretStruct'
    constantsTouched: []
    func_position:
      end: 102
      start: 68
    functionDepth: 10
    functionLinenumber: 68
    functionLinenumberEnd: 102
    functionName: SpdmKeySchedule::derive_master_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfInputKeyingMaterial::SpdmHandshakeSecret
    - SpdmHkdfPseudoRandomKey::from_input_keying_material
    - as_ref
    - get_size
    - crypto::hkdf::hkdf_extract
    - crypto::hkdf::hkdf_expand
    - SpdmHkdfInputKeyingMaterial::SpdmZeroFilled
    - Box::new
    - SpdmKeySchedule::binconcat
    - SpdmMasterSecretStruct::from_spdm_hkdf_prk
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_master_secret(&self,spdm_version: SpdmVersion,hash_algo:
      SpdmBaseHashAlgo,key: &SpdmHandshakeSecretStruct,) -> Option<SpdmMasterSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:114,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:115,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:118,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:123,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:125,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmHandshakeSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:126,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:129,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:135,1
    - Dst: secret::psk::handshake_secret_hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:136,1
    - Dst: SpdmDirectionHandshakeSecretStruct::from_spdm_hkdf_okm
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - use_psk
    - spdm_version
    - hash_algo
    - key
    - psk_hint
    - th1
    argTypes:
    - bool
    - SpdmVersion
    - SpdmBaseHashAlgo
    - Option<&SpdmHandshakeSecretStruct>
    - Option<&SpdmPskHintStruct>
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 149
      start: 104
    functionDepth: 10
    functionLinenumber: 104
    functionLinenumberEnd: 149
    functionName: SpdmKeySchedule::derive_request_handshake_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfInputKeyingMaterial::SpdmHandshakeSecret
    - SpdmHkdfPseudoRandomKey::from_input_keying_material
    - secret::psk::handshake_secret_hkdf_expand
    - Some
    - get_size
    - SpdmDirectionHandshakeSecretStruct::from_spdm_hkdf_okm
    - crypto::hkdf::hkdf_expand
    - SpdmPskHintStruct::default
    - SpdmKeySchedule::binconcat
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_request_handshake_secret(&self,use_psk: bool,spdm_version:
      SpdmVersion,hash_algo: SpdmBaseHashAlgo,key: Option<&SpdmHandshakeSecretStruct>,psk_hint:
      Option<&SpdmPskHintStruct>,th1: &[u8],) -> Option<SpdmDirectionHandshakeSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:161,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:162,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:165,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:170,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:172,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmHandshakeSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:173,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:176,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:182,1
    - Dst: secret::psk::handshake_secret_hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:183,1
    - Dst: SpdmDirectionHandshakeSecretStruct::from_spdm_hkdf_okm
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - use_psk
    - spdm_version
    - hash_algo
    - key
    - psk_hint
    - th1
    argTypes:
    - bool
    - SpdmVersion
    - SpdmBaseHashAlgo
    - Option<&SpdmHandshakeSecretStruct>
    - Option<&SpdmPskHintStruct>
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 196
      start: 151
    functionDepth: 10
    functionLinenumber: 151
    functionLinenumberEnd: 196
    functionName: SpdmKeySchedule::derive_response_handshake_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfInputKeyingMaterial::SpdmHandshakeSecret
    - SpdmHkdfPseudoRandomKey::from_input_keying_material
    - secret::psk::handshake_secret_hkdf_expand
    - Some
    - get_size
    - SpdmDirectionHandshakeSecretStruct::from_spdm_hkdf_okm
    - crypto::hkdf::hkdf_expand
    - SpdmPskHintStruct::default
    - SpdmKeySchedule::binconcat
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_response_handshake_secret(&self,use_psk: bool,spdm_version:
      SpdmVersion,hash_algo: SpdmBaseHashAlgo,key: Option<&SpdmHandshakeSecretStruct>,psk_hint:
      Option<&SpdmPskHintStruct>,th1: &[u8],) -> Option<SpdmDirectionHandshakeSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:205,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:206,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:212,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:214,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmDirectionHandshakeSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:215,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:218,1
    - Dst: SpdmFinishedKeyStruct::from_spdm_hkdf_okm
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - spdm_version
    - hash_algo
    - key
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - '&SpdmDirectionHandshakeSecretStruct'
    constantsTouched: []
    func_position:
      end: 222
      start: 198
    functionDepth: 10
    functionLinenumber: 198
    functionLinenumberEnd: 222
    functionName: SpdmKeySchedule::derive_finished_key
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfPseudoRandomKey::from_input_keying_material
    - SpdmHkdfInputKeyingMaterial::SpdmDirectionHandshakeSecret
    - SpdmFinishedKeyStruct::from_spdm_hkdf_okm
    - get_size
    - crypto::hkdf::hkdf_expand
    - SpdmKeySchedule::binconcat
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_finished_key(&self,spdm_version: SpdmVersion,hash_algo:
      SpdmBaseHashAlgo,key: &SpdmDirectionHandshakeSecretStruct,) -> Option<SpdmFinishedKeyStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:232,1
    - Dst: get_key_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:233,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:240,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:242,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmDirectionHandshakeSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:243,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:248,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:250,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmDirectionDataSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:251,1
    - Dst: SpdmAeadKeyStruct::from_spdm_hkdf_okm
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:257,1
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:259,1
    - Dst: get_iv_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:260,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:267,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:269,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmDirectionHandshakeSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:270,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:275,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:277,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmDirectionDataSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:278,1
    - Dst: SpdmAeadIvStruct::from_spdm_hkdf_okm
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:284,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:286,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 4
    argNames:
    - spdm_version
    - hash_algo
    - aead_algo
    - key
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - SpdmAeadAlgo
    - '&SpdmMajorSecret'
    constantsTouched: []
    func_position:
      end: 287
      start: 224
    functionDepth: 10
    functionLinenumber: 224
    functionLinenumberEnd: 287
    functionName: SpdmKeySchedule::derive_aead_key_iv
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfPseudoRandomKey::from_input_keying_material
    - SpdmHkdfInputKeyingMaterial::SpdmDirectionHandshakeSecret
    - SpdmAeadIvStruct::from_spdm_hkdf_okm
    - Some
    - SpdmHkdfInputKeyingMaterial::SpdmDirectionDataSecret
    - SpdmAeadKeyStruct::from_spdm_hkdf_okm
    - crypto::hkdf::hkdf_expand
    - get_key_size
    - get_iv_size
    - SpdmKeySchedule::binconcat
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_aead_key_iv(&self,spdm_version: SpdmVersion,hash_algo:
      SpdmBaseHashAlgo,aead_algo: SpdmAeadAlgo,key: &SpdmMajorSecret,) -> Option<(SpdmAeadKeyStruct,
      SpdmAeadIvStruct)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:299,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:300,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:303,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:308,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:310,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmMasterSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:311,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:314,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:320,1
    - Dst: secret::psk::master_secret_hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:321,1
    - Dst: SpdmDirectionDataSecretStruct::from_spdm_hkdf_okm
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:333,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - use_psk
    - spdm_version
    - hash_algo
    - key
    - psk_hint
    - th2
    argTypes:
    - bool
    - SpdmVersion
    - SpdmBaseHashAlgo
    - Option<&SpdmMasterSecretStruct>
    - Option<&SpdmPskHintStruct>
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 334
      start: 289
    functionDepth: 10
    functionLinenumber: 289
    functionLinenumberEnd: 334
    functionName: SpdmKeySchedule::derive_request_data_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfPseudoRandomKey::from_input_keying_material
    - secret::psk::master_secret_hkdf_expand
    - Some
    - get_size
    - crypto::hkdf::hkdf_expand
    - SpdmPskHintStruct::default
    - SpdmKeySchedule::binconcat
    - SpdmDirectionDataSecretStruct::from_spdm_hkdf_okm
    - SpdmHkdfInputKeyingMaterial::SpdmMasterSecret
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_request_data_secret(&self,use_psk: bool,spdm_version:
      SpdmVersion,hash_algo: SpdmBaseHashAlgo,key: Option<&SpdmMasterSecretStruct>,psk_hint:
      Option<&SpdmPskHintStruct>,th2: &[u8],) -> Option<SpdmDirectionDataSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:346,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:347,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:350,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:355,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:357,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmMasterSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:358,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:361,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:367,1
    - Dst: secret::psk::master_secret_hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:368,1
    - Dst: SpdmDirectionDataSecretStruct::from_spdm_hkdf_okm
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:380,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - use_psk
    - spdm_version
    - hash_algo
    - key
    - psk_hint
    - th2
    argTypes:
    - bool
    - SpdmVersion
    - SpdmBaseHashAlgo
    - Option<&SpdmMasterSecretStruct>
    - Option<&SpdmPskHintStruct>
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 381
      start: 336
    functionDepth: 10
    functionLinenumber: 336
    functionLinenumberEnd: 381
    functionName: SpdmKeySchedule::derive_response_data_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfPseudoRandomKey::from_input_keying_material
    - secret::psk::master_secret_hkdf_expand
    - Some
    - get_size
    - crypto::hkdf::hkdf_expand
    - SpdmPskHintStruct::default
    - SpdmKeySchedule::binconcat
    - SpdmDirectionDataSecretStruct::from_spdm_hkdf_okm
    - SpdmHkdfInputKeyingMaterial::SpdmMasterSecret
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_response_data_secret(&self,use_psk: bool,spdm_version:
      SpdmVersion,hash_algo: SpdmBaseHashAlgo,key: Option<&SpdmMasterSecretStruct>,psk_hint:
      Option<&SpdmPskHintStruct>,th2: &[u8],) -> Option<SpdmDirectionDataSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:392,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:393,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:401,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:403,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmMasterSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:404,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:407,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:413,1
    - Dst: secret::psk::master_secret_hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:414,1
    - Dst: SpdmExportMasterSecretStruct::from_spdm_hkdf_okm
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:426,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - use_psk
    - spdm_version
    - hash_algo
    - key
    - psk_hint
    argTypes:
    - bool
    - SpdmVersion
    - SpdmBaseHashAlgo
    - Option<&SpdmMasterSecretStruct>
    - Option<&SpdmPskHintStruct>
    constantsTouched: []
    func_position:
      end: 427
      start: 383
    functionDepth: 10
    functionLinenumber: 383
    functionLinenumberEnd: 427
    functionName: SpdmKeySchedule::derive_export_master_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfPseudoRandomKey::from_input_keying_material
    - secret::psk::master_secret_hkdf_expand
    - get_size
    - crypto::hkdf::hkdf_expand
    - SpdmPskHintStruct::default
    - SpdmKeySchedule::binconcat
    - SpdmHkdfInputKeyingMaterial::SpdmMasterSecret
    - SpdmExportMasterSecretStruct::from_spdm_hkdf_okm
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_export_master_secret(&self,use_psk: bool,spdm_version:
      SpdmVersion,hash_algo: SpdmBaseHashAlgo,key: Option<&SpdmMasterSecretStruct>,psk_hint:
      Option<&SpdmPskHintStruct>,) -> Option<SpdmExportMasterSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKeySchedule::binconcat
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:436,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:437,1
    - Dst: crypto::hkdf::hkdf_expand
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:443,1
    - Dst: SpdmHkdfPseudoRandomKey::from_input_keying_material
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:445,1
    - Dst: SpdmHkdfInputKeyingMaterial::SpdmDirectionDataSecret
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:446,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:449,1
    - Dst: SpdmDirectionDataSecretStruct::from_spdm_hkdf_okm
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - spdm_version
    - hash_algo
    - key
    argTypes:
    - SpdmVersion
    - SpdmBaseHashAlgo
    - '&SpdmDirectionDataSecretStruct'
    constantsTouched: []
    func_position:
      end: 453
      start: 429
    functionDepth: 10
    functionLinenumber: 429
    functionLinenumberEnd: 453
    functionName: SpdmKeySchedule::derive_update_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 0
    functionsReached:
    - SpdmHkdfPseudoRandomKey::from_input_keying_material
    - get_size
    - SpdmHkdfInputKeyingMaterial::SpdmDirectionDataSecret
    - crypto::hkdf::hkdf_expand
    - SpdmKeySchedule::binconcat
    - SpdmDirectionDataSecretStruct::from_spdm_hkdf_okm
    linkageType: ''
    returnType: Option
    signature: 'pub fn derive_update_secret(&self,spdm_version: SpdmVersion,hash_algo:
      SpdmBaseHashAlgo,key: &SpdmDirectionDataSecretStruct,) -> Option<SpdmDirectionDataSecretStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:463,1
    - Dst: SpdmContext::len
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:465,1
    - Dst: SpdmCertChainBuffer::len
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:467,1
    - Dst: SpdmResult::copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:472,1
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:473,1
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:474,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:476,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:477,1
    - Dst: Result::ok
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:477,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:478,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:479,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:481,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:484,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/key_schedule.rs:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 62
    argCount: 5
    argNames:
    - length
    - spdm_version
    - label
    - context
    - buffer
    argTypes:
    - u16
    - SpdmVersion
    - '&[u8]'
    - Option<&[u8]>
    - '&''a mut [u8]'
    constantsTouched: []
    func_position:
      end: 486
      start: 455
    functionDepth: 9
    functionLinenumber: 455
    functionLinenumberEnd: 486
    functionName: SpdmKeySchedule::binconcat
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
    functionUses: 10
    functionsReached:
    - Result::ok
    - Some
    - SpdmContext::len
    - Writer::extend_from_slice
    - u8::from
    - Writer::init
    - '&[u8]::len'
    - SpdmResult::copy_from_slice
    - SpdmCertChainBuffer::len
    - SpdmResult::encode
    - Writer::used
    linkageType: ''
    returnType: Option
    signature: 'pub fn binconcat<''a>(&self,length: u16,spdm_version: SpdmVersion,label:
      &[u8],context: Option<&[u8]>,buffer: &''a mut [u8],) -> Option<&''a [u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: SpdmConnectionState::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmConnectionState
    signature: fn default() -> SpdmConnectionState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmNegotiateInfo::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:173,1
    - Dst: SpdmRuntimeInfo::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:174,1
    - Dst: SpdmPeerInfo::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:176,1
    - Dst: SpdmEncapContext::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:178,1
    - Dst: gen_array
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:182,1
    - Dst: SpdmChunkContext::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - device_io
    - transport_encap
    - config_info
    - provision_info
    argTypes:
    - Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - SpdmConfigInfo
    - SpdmProvisionInfo
    constantsTouched: []
    func_position:
      end: 190
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 190
    functionName: SpdmContext::new
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 4
    functionsReached:
    - SpdmRuntimeInfo::default
    - SpdmChunkContext::default
    - SpdmPeerInfo::default
    - SpdmNegotiateInfo::default
    - SpdmEncapContext::default
    - gen_array
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(device_io: Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>,transport_encap:
      Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,config_info: SpdmConfigInfo,provision_info:
      SpdmProvisionInfo,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: SpdmContext::get_hash_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - get_size
    linkageType: ''
    returnType: u16
    signature: pub fn get_hash_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:196,1
    - Dst: get_sig_size
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:197,1
    - Dst: get_sig_size
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: SpdmContext::get_asym_sig_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - get_sig_size
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: u16
    signature: pub fn get_asym_sig_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPqcReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:203,1
    - Dst: get_sig_size
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:204,1
    - Dst: get_sig_size
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: SpdmContext::get_req_asym_sig_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - get_sig_size
    - SpdmPqcReqAsymAlgo::empty
    linkageType: ''
    returnType: u16
    signature: pub fn get_req_asym_sig_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:210,1
    - Dst: get_encap_key_size
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:211,1
    - Dst: get_key_size
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: SpdmContext::get_req_key_exchange_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - get_encap_key_size
    - get_key_size
    - SpdmKemAlgo::empty
    linkageType: ''
    returnType: u16
    signature: pub fn get_req_key_exchange_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:217,1
    - Dst: get_cipher_text_size
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:218,1
    - Dst: get_key_size
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: SpdmContext::get_rsp_key_exchange_size
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - get_cipher_text_size
    - get_key_size
    - SpdmKemAlgo::empty
    linkageType: ''
    returnType: u16
    signature: pub fn get_rsp_key_exchange_size(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmRuntimeInfo::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: SpdmContext::reset_runtime_info
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - SpdmRuntimeInfo::default
    linkageType: ''
    returnType: void
    signature: pub fn reset_runtime_info(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmNegotiateInfo::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: SpdmContext::reset_negotiate_info
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - SpdmNegotiateInfo::default
    linkageType: ''
    returnType: void
    signature: pub fn reset_negotiate_info(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmPeerInfo::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: SpdmContext::reset_peer_info
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - SpdmPeerInfo::default
    linkageType: ''
    returnType: void
    signature: pub fn reset_peer_info(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::reset_runtime_info
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:237,1
    - Dst: SpdmContext::reset_negotiate_info
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:238,1
    - Dst: SpdmContext::reset_peer_info
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:239,1
    - Dst: SpdmEncapContext::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:253,1
    - Dst: SpdmResult::set_default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 265
    functionName: SpdmContext::reset_context
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::set_default
    - SpdmContext::reset_peer_info
    - SpdmContext::reset_runtime_info
    - SpdmContext::reset_negotiate_info
    - SpdmEncapContext::default
    linkageType: ''
    returnType: void
    signature: pub fn reset_context(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:268,1
    - Dst: find
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:268,1
    - Dst: get_session_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: SpdmContext::get_immutable_session_via_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 2
    functionsReached:
    - get_session_id
    - find
    - iter
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_immutable_session_via_id(&self, session_id: u32) -> Option<&SpdmSession>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:274,1
    - Dst: find
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:274,1
    - Dst: get_session_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: SpdmContext::get_session_via_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 10
    functionsReached:
    - get_session_id
    - find
    - iter_mut
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_session_via_id(&mut self, session_id: u32) -> Option<&mut
      SpdmSession>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: SpdmContext::get_next_avaiable_session
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmContext::get_session_via_id
    linkageType: ''
    returnType: Option
    signature: pub fn get_next_avaiable_session(&mut self) -> Option<&mut SpdmSession>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:286,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:286,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:286,1
    - Dst: get_session_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:291,1
    - Dst: get_session_state
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: SpdmContext::get_session_status
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - get_session_id
    - get_session_state
    - take
    - iter_mut
    - enumerate
    linkageType: ''
    returnType: '[(u32, SpdmSessionState); config::MAX_SPDM_SESSION_COUNT]'
    signature: pub fn get_session_status(&self) -> [(u32, SpdmSessionState); config::MAX_SPDM_SESSION_COUNT]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:300,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:300,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:300,1
    - Dst: SpdmResult::get_session_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:301,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:303,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - is_requester
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: SpdmContext::get_next_half_session_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - take
    - Ok
    - iter
    - SpdmResult::get_session_id
    - enumerate
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn get_next_half_session_id(&self, is_requester: bool) -> SpdmResult<u16>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:312,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:313,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:315,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:315,1
    - Dst: crypto::cert_operation::get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:319,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:325,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:334,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:336,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:339,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:342,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 120
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 310
    functionDepth: 10
    functionLinenumber: 310
    functionLinenumberEnd: 348
    functionName: SpdmContext::construct_my_cert_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_all
    - as_ref
    - Some
    - is_some
    - unwrap
    - is_none
    - Err
    - copy_from_slice
    - Ok
    - crypto::cert_operation::get_cert_from_cert_chain
    linkageType: ''
    returnType: SpdmResult
    signature: pub fn construct_my_cert_chain(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::from
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: SpdmContext::get_signing_prefix_context
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - u8::from
    linkageType: ''
    returnType: '[u8; 64]'
    signature: pub fn get_signing_prefix_context(&self) -> [u8; 64]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:363,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:363,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - new_message
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 5
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: SpdmContext::append_message_a
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - append_message
    - Ok
    - ok_or
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn append_message_a(&mut self, new_message: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 371
    functionName: SpdmContext::reset_message_a
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - reset_message
    linkageType: ''
    returnType: void
    signature: pub fn reset_message_a(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:376,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:376,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:384,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:386,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:387,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:388,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:391,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:392,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:392,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:393,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:397,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:398,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:398,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 1
    argNames:
    - new_message
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 404
      start: 373
    functionDepth: 10
    functionLinenumber: 373
    functionLinenumberEnd: 404
    functionName: SpdmContext::append_message_b
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - as_ref
    - Err
    - unwrap
    - is_none
    - append_message
    - Ok
    - ok_or
    - as_mut
    - crypto::hash::hash_ctx_update
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn append_message_b(&mut self, new_message: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 415
    functionName: SpdmContext::reset_message_b
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - reset_message
    linkageType: ''
    returnType: void
    signature: pub fn reset_message_b(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:420,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:420,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:428,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:430,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:431,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:432,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:435,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:436,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:436,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:437,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:441,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:442,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:442,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 1
    argNames:
    - new_message
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 448
      start: 417
    functionDepth: 10
    functionLinenumber: 417
    functionLinenumberEnd: 448
    functionName: SpdmContext::append_message_c
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - as_ref
    - Err
    - unwrap
    - is_none
    - append_message
    - Ok
    - ok_or
    - as_mut
    - crypto::hash::hash_ctx_update
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn append_message_c(&mut self, new_message: &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 459
    functionName: SpdmContext::reset_message_c
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - reset_message
    linkageType: ''
    returnType: void
    signature: pub fn reset_message_c(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:464,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:464,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:470,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:473,1
    - Dst: append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:475,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:475,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:489,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:491,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:494,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:496,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:498,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:499,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:500,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:504,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:505,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:505,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:506,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:511,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:512,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:512,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:517,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:519,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:520,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:521,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:525,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:526,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:526,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:527,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:532,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:533,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:533,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:540,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 133
    argCount: 2
    argNames:
    - session_id
    - new_message
    argTypes:
    - Option<u32>
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 541
      start: 461
    functionDepth: 10
    functionLinenumber: 461
    functionLinenumberEnd: 541
    functionName: SpdmContext::append_message_m
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - SpdmContext::get_session_via_id
    - Err
    - unwrap
    - as_ref
    - is_none
    - clone
    - append_message
    - ok_or
    - Ok
    - as_mut
    - SpdmResult::as_ref
    - crypto::hash::hash_ctx_update
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn append_message_m(&mut self, session_id: Option<u32>, new_message:
      &[u8]) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:545,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:547,1
    - Dst: reset_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:552,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - Option<u32>
    constantsTouched: []
    func_position:
      end: 572
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 572
    functionName: SpdmContext::reset_message_m
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - reset_message
    - SpdmContext::get_session_via_id
    linkageType: ''
    returnType: void
    signature: 'pub fn reset_message_m(&mut self, session_id: Option<u32>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:576,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:581,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:581,1
    - Dst: append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:587,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:587,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:596,1
    - Dst: crypto::hash::hash_ctx_init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:598,1
    - Dst: get_crypto_param
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:598,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:599,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:600,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:602,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:603,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:603,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:604,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:607,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:608,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:608,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:611,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:612,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:613,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:613,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:614,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:614,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:614,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:624,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:625,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:625,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 104
    argCount: 2
    argNames:
    - session_id
    - new_message
    argTypes:
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 631
      start: 574
    functionDepth: 10
    functionLinenumber: 574
    functionLinenumberEnd: 631
    functionName: SpdmContext::append_message_k
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_ctx_init
    - SpdmContext::get_session_via_id
    - Err
    - unwrap
    - as_ref
    - is_none
    - Option::ok_or
    - is_some
    - append_message
    - clone
    - ok_or
    - Ok
    - get_crypto_param
    - as_mut
    - crypto::hash::hash_ctx_update
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn append_message_k(&mut self, session_id: u32, new_message: &[u8])
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:633,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:633,1
    - Dst: reset_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 644
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 644
    functionName: SpdmContext::reset_message_k
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - reset_message
    - Option::unwrap
    - SpdmContext::get_session_via_id
    linkageType: ''
    returnType: void
    signature: 'pub fn reset_message_k(&mut self, session_id: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:671,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:671,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:674,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:675,1
    - Dst: get_use_psk
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:679,1
    - Dst: get_mut_auth_requested
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:679,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::is_empty
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:679,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:680,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:686,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:686,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:689,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:690,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:690,1
    - Dst: get_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:695,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:697,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:697,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:702,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:704,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:709,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:710,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:710,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:717,1
    - Dst: get_peer_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:720,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:722,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:722,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:727,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:729,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:734,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:735,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:737,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:735,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:742,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:746,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:746,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:749,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:750,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:750,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:757,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:757,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:763,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:763,1
    - Dst: crypto::hash::hash_ctx_update
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:766,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:767,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:767,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 185
    argCount: 3
    argNames:
    - is_requester
    - session_id
    - new_message
    argTypes:
    - bool
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 770
      start: 665
    functionDepth: 10
    functionLinenumber: 665
    functionLinenumberEnd: 770
    functionName: SpdmContext::append_message_f
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - is_none
    - clone
    - ok_or
    - as_mut
    - get_mut_auth_requested
    - crypto::hash::hash_all
    - Err
    - Some
    - Option::ok_or
    - SpdmKeyExchangeMutAuthAttributes::is_empty
    - get_peer_used_cert_chain_slot_id
    - crypto::hash::hash_ctx_update
    - get_use_psk
    - get_local_used_cert_chain_slot_id
    - SpdmContext::get_session_via_id
    - as_ref
    - SpdmContext::get_immutable_session_via_id
    - SpdmResult::as_ref
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn append_message_f(&mut self,is_requester: bool,session_id: u32,new_message:
      &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:773,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:773,1
    - Dst: reset_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 784
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 784
    functionName: SpdmContext::reset_message_f
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - reset_message
    - Option::unwrap
    - SpdmContext::get_session_via_id
    linkageType: ''
    returnType: void
    signature: 'pub fn reset_message_f(&mut self, session_id: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferTH::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:795,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:796,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:797,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:796,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:802,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:807,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:807,1
    - Dst: get_peer_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:811,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:813,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:815,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:818,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:818,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:819,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:821,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:819,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:825,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:827,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:830,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:830,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:833,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:833,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:839,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:839,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:842,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:843,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:842,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:847,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:848,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:847,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:854,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:854,1
    - Dst: get_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:858,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:860,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:862,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:865,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:865,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:866,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:868,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:866,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:872,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:874,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:877,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:877,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:880,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:880,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:886,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:886,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:889,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:890,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:889,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:896,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:897,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:896,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:902,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 242
    argCount: 5
    argNames:
    - use_psk
    - is_mut_auth
    - message_k
    - message_f
    - vdm_transcript_before_finish
    argTypes:
    - bool
    - bool
    - '&ManagedBufferK'
    - Option<&ManagedBufferF>
    - Option<&ManagedVdmBuffer>
    constantsTouched: []
    func_position:
      end: 903
      start: 787
    functionDepth: 10
    functionLinenumber: 787
    functionLinenumberEnd: 903
    functionName: SpdmContext::calc_req_transcript_data
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - get_local_used_cert_chain_slot_id
    - crypto::hash::hash_all
    - as_ref
    - Err
    - bool::append_message
    - unwrap
    - is_none
    - Option::ok_or
    - clone
    - Ok
    - ok_or
    - SpdmResult::as_ref
    - ManagedBufferTH::default
    - get_peer_used_cert_chain_slot_id
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn calc_req_transcript_data(&self,use_psk: bool,is_mut_auth: bool,message_k:
      &ManagedBufferK,message_f: Option<&ManagedBufferF>,vdm_transcript_before_finish:
      Option<&ManagedVdmBuffer>,) -> SpdmResult<ManagedBufferTH>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferTH::default
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:914,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:915,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:916,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:915,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:920,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:925,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:925,1
    - Dst: get_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:929,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:931,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:933,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:936,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:936,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:937,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:939,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:937,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:943,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:945,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:948,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:948,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:951,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:953,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:953,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:957,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:958,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:957,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:962,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:963,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:962,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:969,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:969,1
    - Dst: get_peer_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:973,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:975,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:977,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:980,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:980,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:981,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:983,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:981,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:987,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:989,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:992,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:992,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:992,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:997,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:997,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1000,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1001,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1000,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1007,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1008,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1007,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1013,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 215
    argCount: 5
    argNames:
    - use_psk
    - is_mut_auth
    - message_k
    - message_f
    - vdm_transcript_before_finish
    argTypes:
    - bool
    - bool
    - '&ManagedBufferK'
    - Option<&ManagedBufferF>
    - Option<&ManagedVdmBuffer>
    constantsTouched: []
    func_position:
      end: 1014
      start: 906
    functionDepth: 10
    functionLinenumber: 906
    functionLinenumberEnd: 1014
    functionName: SpdmContext::calc_rsp_transcript_data
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - get_local_used_cert_chain_slot_id
    - crypto::hash::hash_all
    - as_ref
    - Err
    - bool::append_message
    - unwrap
    - is_none
    - Option::ok_or
    - clone
    - Ok
    - ok_or
    - SpdmResult::as_ref
    - ManagedBufferTH::default
    - get_peer_used_cert_chain_slot_id
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn calc_rsp_transcript_data(&self,use_psk: bool,is_mut_auth: bool,message_k:
      &ManagedBufferK,message_f: Option<&ManagedBufferF>,vdm_transcript_before_finish:
      Option<&ManagedVdmBuffer>,) -> SpdmResult<ManagedBufferTH>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto::hash::hash_ctx_finalize
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1073,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1074,1
    - Dst: cloned
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1074,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1074,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1073,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1082,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - _use_psk
    - _is_mut_auth
    - session
    argTypes:
    - bool
    - bool
    - '&SpdmSession'
    constantsTouched: []
    func_position:
      end: 1083
      start: 1067
    functionDepth: 10
    functionLinenumber: 1067
    functionLinenumberEnd: 1083
    functionName: SpdmContext::calc_req_transcript_hash
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - crypto::hash::hash_ctx_finalize
    - Option::ok_or
    - Ok
    - ok_or
    - cloned
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn calc_req_transcript_hash(&self,_use_psk: bool,_is_mut_auth:
      bool,session: &SpdmSession,) -> SpdmResult<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto::hash::hash_ctx_finalize
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1092,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1093,1
    - Dst: cloned
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1093,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1093,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1092,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - _use_psk
    - _is_mut_auth
    - session
    argTypes:
    - bool
    - bool
    - '&SpdmSession'
    constantsTouched: []
    func_position:
      end: 1102
      start: 1086
    functionDepth: 10
    functionLinenumber: 1086
    functionLinenumberEnd: 1102
    functionName: SpdmContext::calc_rsp_transcript_hash
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - crypto::hash::hash_ctx_finalize
    - Option::ok_or
    - Ok
    - ok_or
    - cloned
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn calc_rsp_transcript_hash(&self,_use_psk: bool,_is_mut_auth:
      bool,session: &SpdmSession,) -> SpdmResult<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1110,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1115,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1116,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1118,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1118,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1121,1
    - Dst: SpdmDigestStruct::from
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1121,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - use_psk
    - slot_id
    argTypes:
    - bool
    - usize
    constantsTouched: []
    func_position:
      end: 1128
      start: 1104
    functionDepth: 10
    functionLinenumber: 1104
    functionLinenumberEnd: 1128
    functionName: SpdmContext::get_certchain_hash_local
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_all
    - as_ref
    - Some
    - is_none
    - Option::ok_or
    - SpdmDigestStruct::from
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_certchain_hash_local(&self,use_psk: bool,slot_id: usize,)
      -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1136,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1141,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1142,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1144,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1144,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1148,1
    - Dst: SpdmDigestStruct::from
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1148,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 2
    argNames:
    - use_psk
    - slot_id
    argTypes:
    - bool
    - usize
    constantsTouched: []
    func_position:
      end: 1155
      start: 1130
    functionDepth: 10
    functionLinenumber: 1130
    functionLinenumberEnd: 1155
    functionName: SpdmContext::get_certchain_hash_peer
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - crypto::hash::hash_all
    - as_ref
    - Some
    - is_none
    - Option::ok_or
    - SpdmDigestStruct::from
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_certchain_hash_peer(&self,use_psk: bool,slot_id: usize,)
      -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::reset_message_m
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1163,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1174,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1175,1
    - Dst: SpdmContext::reset_message_b
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1177,1
    - Dst: SpdmContext::reset_message_c
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1178,1
    - Dst: SpdmContext::reset_message_b
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - opcode
    - session_id
    argTypes:
    - SpdmRequestResponseCode
    - Option<u32>
    constantsTouched: []
    func_position:
      end: 1186
      start: 1157
    functionDepth: 3
    functionLinenumber: 1157
    functionLinenumberEnd: 1186
    functionName: SpdmContext::reset_buffer_via_request_code
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - get_u8
    - SpdmContext::reset_message_m
    - SpdmContext::reset_message_b
    - SpdmContext::reset_message_c
    linkageType: ''
    returnType: void
    signature: 'pub fn reset_buffer_via_request_code(&mut self,opcode: SpdmRequestResponseCode,session_id:
      Option<u32>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1194,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1196,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1197,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1198,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1199,1
    - Dst: encap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - send_buffer
    - transport_buffer
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1203
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1203
    functionName: SpdmContext::encap
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - Mutex::new
    - lock
    - encap
    - deref_mut
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn encap(&mut self,send_buffer: &[u8],transport_buffer:
      &mut [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1216,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1218,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1219,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1220,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1221,1
    - Dst: encap_app
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1222,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1227,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1227,1
    - Dst: encode_spdm_secured_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1232,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1238,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1240,1
    - Dst: encap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1241,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1243,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1244,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 5
    argNames:
    - session_id
    - send_buffer
    - transport_buffer
    - is_requester
    - is_app_message
    argTypes:
    - u32
    - '&[u8]'
    - '&mut [u8]'
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1248
      start: 1206
    functionDepth: 5
    functionLinenumber: 1206
    functionLinenumberEnd: 1248
    functionName: SpdmContext::encode_secured_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - encode_spdm_secured_message
    - SpdmContext::get_session_via_id
    - Option::ok_or
    - Mutex::new
    - encap_app
    - lock
    - encap
    - deref_mut
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn encode_secured_message(&mut self,session_id: u32,send_buffer:
      &[u8],transport_buffer: &mut [u8],is_requester: bool,is_app_message: bool,)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1256,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1258,1
    - Dst: decap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1260,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1262,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1263,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1263,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1268,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - transport_buffer
    - receive_buffer
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1272
      start: 1251
    functionDepth: 3
    functionLinenumber: 1251
    functionLinenumberEnd: 1272
    functionName: SpdmContext::decap
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - decap
    - Err
    - Ok
    - Mutex::new
    - lock
    - deref_mut
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn decap(&mut self,transport_buffer: &[u8],receive_buffer:
      &mut [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1284,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1286,1
    - Dst: decap
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1288,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1290,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1291,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1291,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1297,1
    - Dst: SpdmContext::get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1300,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1300,1
    - Dst: decode_spdm_secured_message
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1305,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1311,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1313,1
    - Dst: decap_app
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1315,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1317,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1318,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1318,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 3
    argNames:
    - session_id
    - transport_buffer
    - receive_buffer
    argTypes:
    - u32
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1323
      start: 1275
    functionDepth: 6
    functionLinenumber: 1275
    functionLinenumberEnd: 1323
    functionName: SpdmContext::decode_secured_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - decode_spdm_secured_message
    - decap
    - decap_app
    - SpdmContext::get_session_via_id
    - Err
    - Option::ok_or
    - Ok
    - Mutex::new
    - lock
    - deref_mut
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn decode_secured_message(&mut self,session_id: u32,transport_buffer:
      &[u8],receive_buffer: &mut [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1328,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1329,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1332,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1332,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1335,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1335,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1338,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1338,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1341,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1341,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1344,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1344,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1350,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1350,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1357,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1357,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1364,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1364,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1370,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1371,1
    - Dst: to_vec
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1371,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1372
    functionName: SpdmContext::export
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 4
    functionsReached:
    - encode
    - Writer::init
    - Ok
    - Result::map_err
    - Box::new
    - to_vec
    - Writer::used
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: pub fn export(&self) -> SpdmResult<Vec<u8>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1377,1
    - Dst: SpdmConfigInfo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1381,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1381,1
    - Dst: SpdmNegotiateInfo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1383,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1383,1
    - Dst: SpdmRuntimeInfo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1385,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1385,1
    - Dst: SpdmProvisionInfo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1387,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1387,1
    - Dst: SpdmPeerInfo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1388,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1388,1
    - Dst: SpdmEncapContext::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1393,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1393,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1398,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1398,1
    - Dst: SpdmSession::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1404,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1404,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1407,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 74
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1408
      start: 1376
    functionDepth: 11
    functionLinenumber: 1376
    functionLinenumberEnd: 1408
    functionName: SpdmContext::import
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 4
    functionsReached:
    - SpdmConfigInfo::read
    - SpdmEncapContext::read
    - SpdmRuntimeInfo::read
    - Option::ok_or
    - SpdmNegotiateInfo::read
    - SpdmProvisionInfo::read
    - SpdmSession::read
    - Ok
    - Reader::init
    - SpdmPeerInfo::read
    - u8::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn import(&mut self, data: &[u8]) -> SpdmResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1443,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1443,1
    - Dst: count
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1443,1
    - Dst: u8::encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1444,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1445,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1445,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1446,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1449,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1450,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1451,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1452,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1453,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1454,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1455,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1456,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1457,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1458,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1459,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1460,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1461,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1462,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1463,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1464,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1465,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1466,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1468,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1468,1
    - Dst: count
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1468,1
    - Dst: u8::encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1469,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1470,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1470,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1471,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1474,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1475,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1476,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1477,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1478,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 159
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1479
      start: 1440
    functionDepth: 5
    functionLinenumber: 1440
    functionLinenumberEnd: 1479
    functionName: SpdmConfigInfo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - flatten
    - encode
    - u8::encode
    - count
    - Ok
    - iter
    - SpdmResult::encode
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1482,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1484,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1484,1
    - Dst: usize::min
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1486,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1488,1
    - Dst: SpdmVersion::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1488,1
    - Dst: SpdmRequestCapabilityFlags::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1491,1
    - Dst: SpdmResponseCapabilityFlags::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1492,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1493,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1494,1
    - Dst: SpdmMeasurementSpecification::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1495,1
    - Dst: SpdmMeasurementHashAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1496,1
    - Dst: SpdmBaseHashAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1497,1
    - Dst: SpdmBaseAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1498,1
    - Dst: SpdmDheAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1499,1
    - Dst: SpdmAeadAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1500,1
    - Dst: SpdmReqAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1501,1
    - Dst: SpdmKeyScheduleAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1502,1
    - Dst: SpdmAlgoOtherParams::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1503,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1504,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1505,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1506,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1507,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1508,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1510,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1512,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1512,1
    - Dst: usize::min
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1514,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1516,1
    - Dst: SecuredMessageVersion::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1516,1
    - Dst: SpdmMelSpecification::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1519,1
    - Dst: SpdmPqcAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1520,1
    - Dst: SpdmPqcReqAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1521,1
    - Dst: SpdmKemAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1522,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1524,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 83
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1550
      start: 1481
    functionDepth: 10
    functionLinenumber: 1481
    functionLinenumberEnd: 1550
    functionName: SpdmConfigInfo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 4
    functionsReached:
    - SpdmVersion::read
    - SpdmDheAlgo::read
    - SpdmKemAlgo::read
    - iter_mut
    - u8::read
    - SpdmMelSpecification::read
    - SecuredMessageVersion::read
    - SpdmAeadAlgo::read
    - take
    - u32::read
    - SpdmPqcAsymAlgo::read
    - SpdmBaseHashAlgo::read
    - SpdmReqAsymAlgo::read
    - Some
    - usize::min
    - SpdmPqcReqAsymAlgo::read
    - SpdmMeasurementSpecification::read
    - SpdmKeyScheduleAlgo::read
    - SpdmBaseAsymAlgo::read
    - SpdmAlgoOtherParams::read
    - SpdmRequestCapabilityFlags::read
    - SpdmResponseCapabilityFlags::read
    - SpdmMeasurementHashAlgo::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1585,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1586,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1587,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1588,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1589,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1590,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1591,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1592,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1593,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1594,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1595,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1596,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1597,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1598,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1599,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1600,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1601,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1602,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1603,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1604,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1605,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1606,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1607,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1608,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1609,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1610,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 132
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1611
      start: 1583
    functionDepth: 3
    functionLinenumber: 1583
    functionLinenumberEnd: 1611
    functionName: SpdmNegotiateInfo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1614,1
    - Dst: SpdmVersion::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1615,1
    - Dst: SpdmRequestCapabilityFlags::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1616,1
    - Dst: SpdmResponseCapabilityFlags::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1617,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1618,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1619,1
    - Dst: SpdmMeasurementSpecification::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1620,1
    - Dst: SpdmMeasurementHashAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1621,1
    - Dst: SpdmBaseHashAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1622,1
    - Dst: SpdmBaseAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1623,1
    - Dst: SpdmDheAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1624,1
    - Dst: SpdmAeadAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1625,1
    - Dst: SpdmReqAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1626,1
    - Dst: SpdmKeyScheduleAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1627,1
    - Dst: SpdmAlgoOtherParams::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1628,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1629,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1630,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1631,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1632,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1633,1
    - Dst: SpdmMelSpecification::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1634,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1635,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1636,1
    - Dst: SpdmPqcAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1637,1
    - Dst: SpdmPqcReqAsymAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1638,1
    - Dst: SpdmKemAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1639,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 55
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1641
      start: 1613
    functionDepth: 10
    functionLinenumber: 1613
    functionLinenumberEnd: 1641
    functionName: SpdmNegotiateInfo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 3
    functionsReached:
    - SpdmVersion::read
    - SpdmDheAlgo::read
    - SpdmKemAlgo::read
    - u8::read
    - SpdmMelSpecification::read
    - SpdmAeadAlgo::read
    - u32::read
    - SpdmPqcAsymAlgo::read
    - SpdmBaseHashAlgo::read
    - SpdmReqAsymAlgo::read
    - Some
    - SpdmPqcReqAsymAlgo::read
    - SpdmMeasurementSpecification::read
    - SpdmKeyScheduleAlgo::read
    - SpdmBaseAsymAlgo::read
    - SpdmAlgoOtherParams::read
    - SpdmRequestCapabilityFlags::read
    - SpdmResponseCapabilityFlags::read
    - SpdmMeasurementHashAlgo::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1687,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1688,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1690,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1691
      start: 1685
    functionDepth: 4
    functionLinenumber: 1685
    functionLinenumberEnd: 1691
    functionName: ManagedBufferA::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1694
    functionName: ManagedBufferA::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1700
    functionName: ManagedBufferA::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferA
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1704
    functionDepth: 0
    functionLinenumber: 1704
    functionLinenumberEnd: 1706
    functionName: ManagedBufferA::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 4
    functionsReached:
    - ManagedBufferA
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1712,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1713,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1713,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1717
      start: 1710
    functionDepth: 3
    functionLinenumber: 1710
    functionLinenumberEnd: 1717
    functionName: ManagedBufferA::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1720,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1725,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1725,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1726,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1728,1
    - Dst: ManagedBufferA
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1729
      start: 1719
    functionDepth: 5
    functionLinenumber: 1719
    functionLinenumberEnd: 1729
    functionName: ManagedBufferA::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 6
    functionsReached:
    - u64::read
    - Some
    - take
    - iter_mut
    - u8::read
    - ManagedBufferA
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1738,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1739,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1741,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1742
      start: 1736
    functionDepth: 4
    functionLinenumber: 1736
    functionLinenumberEnd: 1742
    functionName: ManagedBufferB::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1745
    functionName: ManagedBufferB::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 1751
    functionName: ManagedBufferB::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferB
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1757
    functionName: ManagedBufferB::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 3
    functionsReached:
    - ManagedBufferB
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1763,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1764,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1764,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 1768
      start: 1761
    functionDepth: 3
    functionLinenumber: 1761
    functionLinenumberEnd: 1768
    functionName: ManagedBufferB::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1771,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1776,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1776,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1777,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1779,1
    - Dst: ManagedBufferB
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1779,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 1780
      start: 1770
    functionDepth: 5
    functionLinenumber: 1770
    functionLinenumberEnd: 1780
    functionName: ManagedBufferB::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 3
    functionsReached:
    - u64::read
    - Some
    - take
    - ManagedBufferB
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1789,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1790,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1792,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1793
      start: 1787
    functionDepth: 4
    functionLinenumber: 1787
    functionLinenumberEnd: 1793
    functionName: ManagedBufferC::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1796
    functionName: ManagedBufferC::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1802
    functionName: ManagedBufferC::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferC
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1808
    functionName: ManagedBufferC::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 2
    functionsReached:
    - ManagedBufferC
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1817,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1818,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1820,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1821
      start: 1815
    functionDepth: 4
    functionLinenumber: 1815
    functionLinenumberEnd: 1821
    functionName: ManagedBufferM::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1822
    functionDepth: 0
    functionLinenumber: 1822
    functionLinenumberEnd: 1824
    functionName: ManagedBufferM::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1830
    functionName: ManagedBufferM::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferM
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1836
    functionName: ManagedBufferM::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 2
    functionsReached:
    - ManagedBufferM
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1845,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1846,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1848,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1849
      start: 1843
    functionDepth: 4
    functionLinenumber: 1843
    functionLinenumberEnd: 1849
    functionName: ManagedBufferK::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1850
    functionDepth: 0
    functionLinenumber: 1850
    functionLinenumberEnd: 1852
    functionName: ManagedBufferK::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1858
    functionName: ManagedBufferK::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferK
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1862
    functionDepth: 0
    functionLinenumber: 1862
    functionLinenumberEnd: 1864
    functionName: ManagedBufferK::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - ManagedBufferK
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1873,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1874,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1876,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1877
      start: 1871
    functionDepth: 4
    functionLinenumber: 1871
    functionLinenumberEnd: 1877
    functionName: ManagedBufferF::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1878
    functionDepth: 0
    functionLinenumber: 1878
    functionLinenumberEnd: 1880
    functionName: ManagedBufferF::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1886
    functionName: ManagedBufferF::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferF
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1892
    functionName: ManagedBufferF::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - ManagedBufferF
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1901,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1902,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1904,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1905
      start: 1899
    functionDepth: 4
    functionLinenumber: 1899
    functionLinenumberEnd: 1905
    functionName: ManagedBufferM1M2::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1906
    functionDepth: 0
    functionLinenumber: 1906
    functionLinenumberEnd: 1908
    functionName: ManagedBufferM1M2::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1912
    functionDepth: 0
    functionLinenumber: 1912
    functionLinenumberEnd: 1914
    functionName: ManagedBufferM1M2::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferM1M2
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1918
    functionDepth: 0
    functionLinenumber: 1918
    functionLinenumberEnd: 1920
    functionName: ManagedBufferM1M2::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 3
    functionsReached:
    - ManagedBufferM1M2
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1929,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1930,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1932,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1933
      start: 1927
    functionDepth: 4
    functionLinenumber: 1927
    functionLinenumberEnd: 1933
    functionName: ManagedBufferL1L2::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1936
    functionName: ManagedBufferL1L2::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1942
    functionName: ManagedBufferL1L2::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferL1L2
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1946
    functionDepth: 0
    functionLinenumber: 1946
    functionLinenumberEnd: 1948
    functionName: ManagedBufferL1L2::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 5
    functionsReached:
    - ManagedBufferL1L2
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1957,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1958,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1960,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1961
      start: 1955
    functionDepth: 4
    functionLinenumber: 1955
    functionLinenumberEnd: 1961
    functionName: ManagedBufferTH::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1964
    functionName: ManagedBufferTH::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1968
    functionDepth: 0
    functionLinenumber: 1968
    functionLinenumberEnd: 1970
    functionName: ManagedBufferTH::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferTH
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1976
    functionName: ManagedBufferTH::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 3
    functionsReached:
    - ManagedBufferTH
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1985,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1986,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1988,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:1988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1989
      start: 1983
    functionDepth: 4
    functionLinenumber: 1983
    functionLinenumberEnd: 1989
    functionName: ManagedBuffer12Sign::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1990
    functionDepth: 0
    functionLinenumber: 1990
    functionLinenumberEnd: 1992
    functionName: ManagedBuffer12Sign::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1996
    functionDepth: 0
    functionLinenumber: 1996
    functionLinenumberEnd: 1998
    functionName: ManagedBuffer12Sign::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBuffer12Sign
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 2002
    functionDepth: 0
    functionLinenumber: 2002
    functionLinenumberEnd: 2004
    functionName: ManagedBuffer12Sign::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 3
    functionsReached:
    - ManagedBuffer12Sign
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2010,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2011,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2011,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2015
      start: 2008
    functionDepth: 3
    functionLinenumber: 2008
    functionLinenumberEnd: 2015
    functionName: ManagedBufferC::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2018,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2023,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2023,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2024,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2026,1
    - Dst: ManagedBufferC
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2026,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2027
      start: 2017
    functionDepth: 5
    functionLinenumber: 2017
    functionLinenumberEnd: 2027
    functionName: ManagedBufferC::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 2
    functionsReached:
    - u64::read
    - Some
    - take
    - ManagedBufferC
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2033,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2034,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2034,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2038
      start: 2031
    functionDepth: 3
    functionLinenumber: 2031
    functionLinenumberEnd: 2038
    functionName: ManagedBufferM::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2041,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2046,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2046,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2047,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2049,1
    - Dst: ManagedBufferM
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2049,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2050
      start: 2040
    functionDepth: 5
    functionLinenumber: 2040
    functionLinenumberEnd: 2050
    functionName: ManagedBufferM::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - u64::read
    - Some
    - take
    - ManagedBufferM
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2056,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2057,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2057,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2061
      start: 2054
    functionDepth: 3
    functionLinenumber: 2054
    functionLinenumberEnd: 2061
    functionName: ManagedBufferK::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2064,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2069,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2069,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2070,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2072,1
    - Dst: ManagedBufferK
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2072,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2073
      start: 2063
    functionDepth: 5
    functionLinenumber: 2063
    functionLinenumberEnd: 2073
    functionName: ManagedBufferK::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - u64::read
    - Some
    - take
    - iter_mut
    - ManagedBufferK
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2079,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2080,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2080,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2084
      start: 2077
    functionDepth: 3
    functionLinenumber: 2077
    functionLinenumberEnd: 2084
    functionName: ManagedBufferF::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2087,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2092,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2092,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2093,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2095,1
    - Dst: ManagedBufferF
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2095,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2096
      start: 2086
    functionDepth: 5
    functionLinenumber: 2086
    functionLinenumberEnd: 2096
    functionName: ManagedBufferF::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - u64::read
    - Some
    - take
    - ManagedBufferF
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2102,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2103,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2103,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2107
      start: 2100
    functionDepth: 3
    functionLinenumber: 2100
    functionLinenumberEnd: 2107
    functionName: ManagedBufferM1M2::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2110,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2115,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2115,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2116,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2118,1
    - Dst: ManagedBufferM1M2
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2119
      start: 2109
    functionDepth: 5
    functionLinenumber: 2109
    functionLinenumberEnd: 2119
    functionName: ManagedBufferM1M2::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - u64::read
    - Some
    - take
    - ManagedBufferM1M2
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2125,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2126,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2126,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2130
      start: 2123
    functionDepth: 3
    functionLinenumber: 2123
    functionLinenumberEnd: 2130
    functionName: ManagedBufferL1L2::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2133,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2138,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2138,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2139,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2141,1
    - Dst: ManagedBufferL1L2
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2142
      start: 2132
    functionDepth: 5
    functionLinenumber: 2132
    functionLinenumberEnd: 2142
    functionName: ManagedBufferL1L2::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - u64::read
    - ManagedBufferL1L2
    - Some
    - take
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2148,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2149,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2149,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2153
      start: 2146
    functionDepth: 3
    functionLinenumber: 2146
    functionLinenumberEnd: 2153
    functionName: ManagedBufferTH::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2156,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2161,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2161,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2162,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2164,1
    - Dst: ManagedBufferTH
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2165
      start: 2155
    functionDepth: 5
    functionLinenumber: 2155
    functionLinenumberEnd: 2165
    functionName: ManagedBufferTH::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - u64::read
    - Some
    - take
    - iter_mut
    - ManagedBufferTH
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2171,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2172,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2172,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2176
      start: 2169
    functionDepth: 3
    functionLinenumber: 2169
    functionLinenumberEnd: 2176
    functionName: ManagedBuffer12Sign::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2179,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2184,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2184,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2185,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2187,1
    - Dst: ManagedBuffer12Sign
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2188
      start: 2178
    functionDepth: 5
    functionLinenumber: 2178
    functionLinenumberEnd: 2188
    functionName: ManagedBuffer12Sign::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - u64::read
    - Some
    - take
    - ManagedBuffer12Sign
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2197,1
    - Dst: Writer::extend_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2198,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2200,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 2201
      start: 2195
    functionDepth: 4
    functionLinenumber: 2195
    functionLinenumberEnd: 2201
    functionName: ManagedVdmBuffer::append_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - Writer::used
    - Writer::extend_from_slice
    - Writer::init
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn append_message(&mut self, bytes: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2202
    functionDepth: 0
    functionLinenumber: 2202
    functionLinenumberEnd: 2204
    functionName: ManagedVdmBuffer::reset_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn reset_message(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2208
    functionDepth: 0
    functionLinenumber: 2208
    functionLinenumberEnd: 2210
    functionName: ManagedVdmBuffer::as_ref
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedVdmBuffer
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2214
    functionDepth: 0
    functionLinenumber: 2214
    functionLinenumberEnd: 2219
    functionName: ManagedVdmBuffer::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - ManagedVdmBuffer
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2225,1
    - Dst: '&mut Writer::extend_from_slice'
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2226,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2226,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2230
      start: 2223
    functionDepth: 3
    functionLinenumber: 2223
    functionLinenumberEnd: 2230
    functionName: ManagedVdmBuffer::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - '&mut Writer::extend_from_slice'
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2233,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2238,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2238,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2239,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2241,1
    - Dst: ManagedVdmBuffer
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2242
      start: 2232
    functionDepth: 5
    functionLinenumber: 2232
    functionLinenumberEnd: 2242
    functionName: ManagedVdmBuffer::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 2
    functionsReached:
    - u64::read
    - Some
    - take
    - ManagedVdmBuffer
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2253
    functionDepth: 0
    functionLinenumber: 2253
    functionLinenumberEnd: 2255
    functionName: SpdmMeasurementContentChanged::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2260,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2262
      start: 2259
    functionDepth: 4
    functionLinenumber: 2259
    functionLinenumberEnd: 2262
    functionName: SpdmMeasurementContentChanged::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::encode
    - into
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2265,1
    - Dst: Self::try_from
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2266,1
    - Dst: Result::ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2267
      start: 2264
    functionDepth: 9
    functionLinenumber: 2264
    functionLinenumberEnd: 2267
    functionName: SpdmMeasurementContentChanged::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 2
    functionsReached:
    - Self::try_from
    - Result::ok
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2274,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2276,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2278,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - content_changed
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 2282
      start: 2272
    functionDepth: 0
    functionLinenumber: 2272
    functionLinenumberEnd: 2282
    functionName: SpdmMeasurementContentChanged::try_from
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(content_changed: u8) -> Result<Self, <Self as TryFrom<u8>>::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - connection_state
    argTypes:
    - SpdmConnectionState
    constantsTouched: []
    func_position:
      end: 2333
      start: 2331
    functionDepth: 0
    functionLinenumber: 2331
    functionLinenumberEnd: 2333
    functionName: SpdmRuntimeInfo::set_connection_state
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_connection_state(&mut self, connection_state: SpdmConnectionState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2337
    functionName: SpdmRuntimeInfo::get_connection_state
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmConnectionState
    signature: pub fn get_connection_state(&self) -> SpdmConnectionState
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - last_session_id
    argTypes:
    - Option<u32>
    constantsTouched: []
    func_position:
      end: 2341
      start: 2339
    functionDepth: 0
    functionLinenumber: 2339
    functionLinenumberEnd: 2341
    functionName: SpdmRuntimeInfo::set_last_session_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_last_session_id(&mut self, last_session_id: Option<u32>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2343
    functionDepth: 0
    functionLinenumber: 2343
    functionLinenumberEnd: 2345
    functionName: SpdmRuntimeInfo::get_last_session_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn get_last_session_id(&self) -> Option<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot_id
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 2349
      start: 2347
    functionDepth: 0
    functionLinenumber: 2347
    functionLinenumberEnd: 2349
    functionName: SpdmRuntimeInfo::set_peer_used_cert_chain_slot_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_peer_used_cert_chain_slot_id(&mut self, slot_id: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2353
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2353
    functionName: SpdmRuntimeInfo::get_peer_used_cert_chain_slot_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn get_peer_used_cert_chain_slot_id(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot_id
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 2357
      start: 2355
    functionDepth: 0
    functionLinenumber: 2355
    functionLinenumberEnd: 2357
    functionName: SpdmRuntimeInfo::set_local_used_cert_chain_slot_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_local_used_cert_chain_slot_id(&mut self, slot_id: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2359
    functionDepth: 0
    functionLinenumber: 2359
    functionLinenumberEnd: 2361
    functionName: SpdmRuntimeInfo::get_local_used_cert_chain_slot_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn get_local_used_cert_chain_slot_id(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2430,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2433,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2434,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2437,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2440,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2441,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2442,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2443,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2444,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2447,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2447,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2448,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2451,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2451,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2452,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2454,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2456,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2456,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2457,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2459,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 98
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2460
      start: 2428
    functionDepth: 3
    functionLinenumber: 2428
    functionLinenumberEnd: 2460
    functionName: SpdmRuntimeInfo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2463,1
    - Dst: SpdmConnectionState::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2464,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2466,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2467,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2467,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2472,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2473,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2474,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2475,1
    - Dst: ManagedBufferA::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2476,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2478,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2480,1
    - Dst: SpdmHashCtx::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2480,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2486,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2488,1
    - Dst: SpdmHashCtx::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2488,1
    - Dst: SpdmMeasurementContentChanged::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2493,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2495,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2497,1
    - Dst: ManagedVdmBuffer::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2497,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2503
      start: 2462
    functionDepth: 10
    functionLinenumber: 2462
    functionLinenumberEnd: 2503
    functionName: SpdmRuntimeInfo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 5
    functionsReached:
    - SpdmHashCtx::read
    - Some
    - u32::read
    - SpdmMeasurementContentChanged::read
    - ManagedBufferA::read
    - ManagedVdmBuffer::read
    - SpdmConnectionState::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2523,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2523,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2524,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2528,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2529,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2529,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2530,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2533,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2533,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2534,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2538,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2539,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2539,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2540,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2543,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2543,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2544,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2548,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2549,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2549,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2550,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2552,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2553,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2555,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2557,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2562,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2564,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2566,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2568,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2568,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2569,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2573,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2574,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2574,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2575,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2578,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2578,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2579,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2583,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2584,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2584,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2585,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2588,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2588,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2589,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2593,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2594,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2594,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2595,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2597,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 206
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2598
      start: 2520
    functionDepth: 3
    functionLinenumber: 2520
    functionLinenumberEnd: 2598
    functionName: SpdmProvisionInfo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - flatten
    - is_some
    - encode
    - Ok
    - SimpleLogger::is_some
    - iter
    - enumerate
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2602,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2603,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2603,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2603,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2609,1
    - Dst: SpdmCertChainData::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2609,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2615,1
    - Dst: SpdmResult::iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2616,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2616,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2616,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2622,1
    - Dst: SpdmCertChainBuffer::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2622,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2628,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2629,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2629,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2629,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2635,1
    - Dst: SpdmCertChainData::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2635,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2640,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2642,1
    - Dst: SpdmCertChainData::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2642,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2646,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2648,1
    - Dst: SpdmCertChainData::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2648,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2652,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2654,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2655,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2655,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2655,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2661,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2661,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2667,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2668,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2668,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2668,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2674,1
    - Dst: SpdmCertificateModelType::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2674,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2680,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2681,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2681,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2681,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2687,1
    - Dst: SpdmKeyUsageMask::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2687,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2692,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 180
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2703
      start: 2600
    functionDepth: 5
    functionLinenumber: 2600
    functionLinenumberEnd: 2703
    functionName: SpdmProvisionInfo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 5
    functionsReached:
    - SpdmCertChainData::read
    - SpdmCertChainBuffer::read
    - Some
    - take
    - u32::read
    - SpdmKeyUsageMask::read
    - SpdmResult::iter_mut
    - iter_mut
    - SpdmCertificateModelType::read
    - enumerate
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2707
    functionDepth: 0
    functionLinenumber: 2707
    functionLinenumberEnd: 2719
    functionName: SpdmProvisionInfo::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2737,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2737,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2738,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2742,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2743,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2743,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2744,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2748,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2749,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2752,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2755,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2756,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2758,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2758,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2759,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2763,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2764,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2764,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2765,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2768,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2768,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2769,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2773,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2774,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2774,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2775,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2778,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2778,1
    - Dst: SimpleLogger::is_some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2779,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2783,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2784,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2784,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2785,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2787,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 139
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2788
      start: 2734
    functionDepth: 3
    functionLinenumber: 2734
    functionLinenumberEnd: 2788
    functionName: SpdmPeerInfo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - flatten
    - encode
    - Ok
    - SimpleLogger::is_some
    - iter
    - enumerate
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2792,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2793,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2793,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2793,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2799,1
    - Dst: SpdmCertChainBuffer::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2799,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2804,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2805,1
    - Dst: SpdmCertChainBuffer::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2805,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2809,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2810,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2812,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2813,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2813,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2813,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2819,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2819,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2825,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2826,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2826,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2826,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2832,1
    - Dst: SpdmCertificateModelType::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2832,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2838,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2839,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2839,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2839,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2845,1
    - Dst: SpdmKeyUsageMask::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2845,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2850,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 121
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2859
      start: 2790
    functionDepth: 5
    functionLinenumber: 2790
    functionLinenumberEnd: 2859
    functionName: SpdmPeerInfo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 5
    functionsReached:
    - SpdmCertChainBuffer::read
    - Some
    - take
    - u32::read
    - SpdmKeyUsageMask::read
    - iter_mut
    - SpdmCertificateModelType::read
    - enumerate
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2875,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2876,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2877,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2878,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 2880
      start: 2873
    functionDepth: 3
    functionLinenumber: 2873
    functionLinenumberEnd: 2880
    functionName: SpdmEncapContext::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2883,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2884,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2885,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2886,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/mod.rs:2887,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 2889
      start: 2882
    functionDepth: 6
    functionLinenumber: 2882
    functionLinenumberEnd: 2889
    functionName: SpdmEncapContext::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 2
    functionsReached:
    - u32::read
    - SpdmKeyExchangeMutAuthAttributes::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2902
    functionDepth: 0
    functionLinenumber: 2902
    functionLinenumberEnd: 2904
    functionName: SpdmChunkStatus::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2926
    functionName: SpdmChunkContext::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:34,1
    - Dst: Self::spdm_read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 6
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: SpdmCodec::spdm_read_bytes
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Self::spdm_read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read_bytes(context: &mut SpdmContext, bytes: &[u8]) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:46,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:46,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:47,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:47,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: SpdmDigestStruct::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::get_hash_size
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:52,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:53,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:54,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:54,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:55,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: SpdmDigestStruct::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 8
    functionsReached:
    - SpdmContext::get_hash_size
    - Some
    - take
    - Box::new
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:68,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:68,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:69,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:69,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: SpdmSignatureStruct::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:74,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:76,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:76,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:77,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: SpdmSignatureStruct::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 5
    functionsReached:
    - Some
    - take
    - SpdmContext::get_asym_sig_size
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:85,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:86,1
    - Dst: SpdmMeasurementBlockStructure::spdm_read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:90,1
    - Dst: Option::is_none
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:91,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:94,1
    - Dst: Result::any_left
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 1
    argNames:
    - context
    argTypes:
    - '&mut SpdmContext'
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 13
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: SpdmMeasurementRecordStructure::verify_measurement_record
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - Option::is_none
    - Option::unwrap
    - Reader::init
    - SpdmMeasurementBlockStructure::spdm_read
    - get
    - Result::any_left
    linkageType: ''
    returnType: bool
    signature: 'fn verify_measurement_record(&self, context: &mut SpdmContext) ->
      bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:114,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:114,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:118,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:118,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:123,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:123,1
    - Dst: get
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:126,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:128,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:128,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 131
      start: 108
    functionDepth: 13
    functionLinenumber: 108
    functionLinenumberEnd: 131
    functionName: SpdmMeasurementRecordStructure::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - encode
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    - get
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:137,1
    - Dst: u24::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:138,1
    - Dst: get
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:139,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:143,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:143,1
    - Dst: get
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:145,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:147,1
    - Dst: SpdmResult::verify_measurement_record
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:155,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 160
      start: 133
    functionDepth: 13
    functionLinenumber: 133
    functionLinenumberEnd: 160
    functionName: SpdmMeasurementRecordStructure::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 2
    functionsReached:
    - SpdmResult::verify_measurement_record
    - Some
    - take
    - iter_mut
    - get
    - u8::read
    - u24::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext,r: &mut Reader,) -> Option<SpdmMeasurementRecordStructure>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:169,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:169,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:170,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:170,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: SpdmDheExchangeStruct::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_key_size
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:175,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:177,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:177,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:178,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: SpdmDheExchangeStruct::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 1
    functionsReached:
    - Some
    - take
    - get_key_size
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmDheExchangeStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:190,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:190,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:191,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:191,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: SpdmKemEncapKeyStruct::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_encap_key_size
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:196,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:198,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:198,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:199,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: SpdmKemEncapKeyStruct::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - Some
    - take
    - iter_mut
    - u8::read
    - get_encap_key_size
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmKemEncapKeyStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:211,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:211,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:212,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:212,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 4
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: SpdmKemCipherTextStruct::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_text_size
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:217,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:219,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:219,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:220,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: SpdmKemCipherTextStruct::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - get_cipher_text_size
    - Some
    - take
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmKemCipherTextStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:232,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:232,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:233,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:233,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: SpdmReqExchangeStruct::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::get_req_key_exchange_size
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:238,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:240,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:240,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:241,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: SpdmReqExchangeStruct::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 1
    functionsReached:
    - Some
    - take
    - iter_mut
    - SpdmContext::get_req_key_exchange_size
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmReqExchangeStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:253,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:253,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:254,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:254,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: SpdmRspExchangeStruct::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - take
    - Ok
    - Result::map_err
    - Vec::encode
    - iter
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmContext::get_rsp_key_exchange_size
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:259,1
    - Dst: iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:261,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:261,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:262,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: SpdmRspExchangeStruct::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 1
    functionsReached:
    - Some
    - SpdmContext::get_rsp_key_exchange_size
    - take
    - iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext, r: &mut Reader) -> Option<SpdmRspExchangeStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:275,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:276,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:278,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:278,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:284,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:284,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:288,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:288,1
    - Dst: SimpleLogger::encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:289,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:289,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 2
    argNames:
    - _context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 292
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 292
    functionName: SpdmDmtfMeasurementStructure::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - get_u8
    - encode
    - take
    - SimpleLogger::encode
    - Ok
    - Result::map_err
    - iter
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,_context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:297,1
    - Dst: SpdmDmtfMeasurementType::Unknown
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:342,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:345,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:352,1
    - Dst: SpdmResult::iter_mut
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:359,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:359,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:360,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:362,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 368
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 368
    functionName: SpdmDmtfMeasurementStructure::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 2
    functionsReached:
    - Some
    - SpdmDmtfMeasurementType::Unknown
    - get_size
    - take
    - u16::read
    - SpdmResult::iter_mut
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext,r: &mut Reader,) -> Option<SpdmDmtfMeasurementStructure>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:378,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:378,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:382,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:382,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:386,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:386,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:390,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:390,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - context
    - bytes
    argTypes:
    - '&mut SpdmContext'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 395
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 395
    functionName: SpdmMeasurementBlockStructure::spdm_encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    - map_err
    - spdm_encode
    linkageType: ''
    returnType: Result
    signature: 'fn spdm_encode(&self,context: &mut SpdmContext,bytes: &mut Writer,)
      -> Result<usize, SpdmStatus>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:400,1
    - Dst: SpdmMeasurementSpecification::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:401,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:405,1
    - Dst: SpdmDmtfMeasurementStructure::spdm_read
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:409,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs:413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - context
    - r
    argTypes:
    - '&mut SpdmContext'
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 419
      start: 396
    functionDepth: 5
    functionLinenumber: 396
    functionLinenumberEnd: 419
    functionName: SpdmMeasurementBlockStructure::spdm_read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
    functionUses: 2
    functionsReached:
    - Some
    - SpdmMeasurementSpecification::read
    - u16::read
    - SpdmDmtfMeasurementStructure::spdm_read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn spdm_read(context: &mut SpdmContext,r: &mut Reader,) -> Option<SpdmMeasurementBlockStructure>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: SpdmSessionState::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SpdmSessionState
    signature: fn default() -> SpdmSessionState
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:50,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:51,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:52,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:53,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:54,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: SpdmSessionCryptoParam::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:59,1
    - Dst: SpdmBaseHashAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:60,1
    - Dst: SpdmDheAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:61,1
    - Dst: SpdmKemAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:62,1
    - Dst: SpdmAeadAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:63,1
    - Dst: SpdmKeyScheduleAlgo::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: SpdmSessionCryptoParam::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 1
    functionsReached:
    - Some
    - SpdmAeadAlgo::read
    - SpdmDheAlgo::read
    - SpdmKemAlgo::read
    - SpdmKeyScheduleAlgo::read
    - SpdmBaseHashAlgo::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:79,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:80,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:81,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: SpdmSessionSharedSecretRoot::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:86,1
    - Dst: SpdmSharedSecretFinalKeyStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:87,1
    - Dst: SpdmHandshakeSecretStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:88,1
    - Dst: SpdmMasterSecretStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: SpdmSessionSharedSecretRoot::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 1
    functionsReached:
    - SpdmHandshakeSecretStruct::read
    - SpdmMasterSecretStruct::read
    - SpdmSharedSecretFinalKeyStruct::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:104,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:105,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:106,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: SpdmSessionSecretParam::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:111,1
    - Dst: SpdmAeadKeyStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:112,1
    - Dst: SpdmAeadIvStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:113,1
    - Dst: u64::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 6
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: SpdmSessionSecretParam::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 2
    functionsReached:
    - SpdmAeadIvStruct::read
    - SpdmAeadKeyStruct::read
    - u64::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:132,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:133,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:134,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:135,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:136,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:137,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: SpdmSessionHandshakeSecret::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:142,1
    - Dst: SpdmDirectionHandshakeSecretStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:143,1
    - Dst: SpdmDirectionHandshakeSecretStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:144,1
    - Dst: SpdmFinishedKeyStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:145,1
    - Dst: SpdmFinishedKeyStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:146,1
    - Dst: SpdmSessionSecretParam::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:147,1
    - Dst: SpdmSessionSecretParam::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 6
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: SpdmSessionHandshakeSecret::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 1
    functionsReached:
    - SpdmSessionSecretParam::read
    - SpdmDirectionHandshakeSecretStruct::read
    - SpdmFinishedKeyStruct::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:165,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:166,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:167,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:168,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:169,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: SpdmSessionApplicationSecret::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:174,1
    - Dst: SpdmDirectionDataSecretStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:175,1
    - Dst: SpdmDirectionDataSecretStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:176,1
    - Dst: SpdmSessionSecretParam::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:177,1
    - Dst: SpdmSessionSecretParam::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:178,1
    - Dst: SpdmExportMasterSecretStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: SpdmSessionApplicationSecret::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 1
    functionsReached:
    - SpdmSessionSecretParam::read
    - SpdmDirectionDataSecretStruct::read
    - SpdmExportMasterSecretStruct::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:193,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:194,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: SpdmSessionTransportParam::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:199,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:200,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: SpdmSessionTransportParam::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 1
    functionsReached:
    - u16::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:323,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:324,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:327,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:330,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:331,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:334,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:335,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:338,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:343,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:344,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:347,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:352,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:353,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:356,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:361,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:362,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:365,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:370,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:371,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:374,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:377,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 109
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 378
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 378
    functionName: SpdmSessionRuntimeInfo::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:381,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:382,1
    - Dst: SpdmPskHintStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:382,1
    - Dst: ManagedBufferA::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:386,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:387,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:388,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:389,1
    - Dst: SpdmDigestStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:389,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:393,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:394,1
    - Dst: SpdmDigestStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:394,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:398,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:399,1
    - Dst: SpdmHashCtx::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:399,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:403,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:404,1
    - Dst: SpdmHashCtx::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:404,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:408,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:409,1
    - Dst: ManagedVdmBuffer::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:409,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:413,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 423
      start: 380
    functionDepth: 5
    functionLinenumber: 380
    functionLinenumberEnd: 423
    functionName: SpdmSessionRuntimeInfo::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 1
    functionsReached:
    - SpdmDigestStruct::read
    - SpdmHashCtx::read
    - Some
    - SpdmPskHintStruct::read
    - ManagedBufferA::read
    - ManagedVdmBuffer::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: SpdmSession::default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 9
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:457,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:458,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:459,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:460,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:461,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:462,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:463,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:464,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:465,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:466,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:467,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:468,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:469,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:470,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:471,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:472,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:473,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:474,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:475,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 97
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 476
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 476
    functionName: SpdmSession::encode
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, codec::EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:479,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:480,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:481,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:482,1
    - Dst: SpdmSessionState::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:483,1
    - Dst: SpdmSessionCryptoParam::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:484,1
    - Dst: SpdmSessionSharedSecretRoot::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:485,1
    - Dst: SpdmSessionHandshakeSecret::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:486,1
    - Dst: SpdmSessionApplicationSecret::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:487,1
    - Dst: SpdmSessionApplicationSecret::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:488,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:489,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:490,1
    - Dst: SpdmSessionTransportParam::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:491,1
    - Dst: SpdmSessionRuntimeInfo::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:492,1
    - Dst: SpdmKeySchedule::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:493,1
    - Dst: SpdmDigestStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:494,1
    - Dst: SpdmDigestStruct::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:495,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:496,1
    - Dst: SecuredMessageVersion::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:497,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 499
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 499
    functionName: SpdmSession::read
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 1
    functionsReached:
    - SpdmDigestStruct::read
    - SpdmSessionState::read
    - SpdmSessionHandshakeSecret::read
    - SpdmKeySchedule::read
    - Some
    - SpdmSessionTransportParam::read
    - SpdmSessionRuntimeInfo::read
    - SpdmSessionApplicationSecret::read
    - u32::read
    - SpdmKeyExchangeMutAuthAttributes::read
    - SpdmSessionCryptoParam::read
    - SpdmSessionSharedSecretRoot::read
    - SecuredMessageVersion::read
    - u8::read
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSessionState::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:507,1
    - Dst: SpdmSessionCryptoParam::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:508,1
    - Dst: SpdmSessionSharedSecretRoot::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:509,1
    - Dst: SpdmSessionHandshakeSecret::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:510,1
    - Dst: SpdmSessionApplicationSecret::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:511,1
    - Dst: SpdmSessionApplicationSecret::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:512,1
    - Dst: SpdmSessionTransportParam::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:515,1
    - Dst: SpdmSessionRuntimeInfo::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:516,1
    - Dst: SpdmKeySchedule::new
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:517,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:518,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:519,1
    - Dst: SecuredMessageVersion::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:521,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 524
    functionName: SpdmSession::new
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 40
    functionsReached:
    - SpdmSessionApplicationSecret::default
    - SpdmKeyExchangeMutAuthAttributes::default
    - SpdmDigestStruct::default
    - SpdmSessionTransportParam::default
    - SpdmSessionSharedSecretRoot::default
    - SpdmKeySchedule::new
    - SpdmSessionCryptoParam::default
    - SpdmSessionState::default
    - SpdmSessionHandshakeSecret::default
    - SecuredMessageVersion::default
    - SpdmSessionRuntimeInfo::default
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - seq
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 528
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 528
    functionName: SpdmSession::set_request_direction_sequence_number
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_request_direction_sequence_number(&mut self, seq: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: SpdmSession::get_request_direction_sequence_number
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn get_request_direction_sequence_number(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - seq
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 536
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 536
    functionName: SpdmSession::set_response_direction_sequence_number
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_response_direction_sequence_number(&mut self, seq: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 540
    functionName: SpdmSession::get_response_direction_sequence_number
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn get_response_direction_sequence_number(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: SpdmSession::get_application_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: SpdmSessionApplicationSecret
    signature: pub fn get_application_secret(&self) -> SpdmSessionApplicationSecret
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - application_secret
    argTypes:
    - SpdmSessionApplicationSecret
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 548
    functionName: SpdmSession::set_application_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_application_secret(&mut self, application_secret: SpdmSessionApplicationSecret)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSessionState::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:553,1
    - Dst: SpdmSessionCryptoParam::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:554,1
    - Dst: SpdmSessionSharedSecretRoot::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:555,1
    - Dst: SpdmSessionHandshakeSecret::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:556,1
    - Dst: SpdmSessionApplicationSecret::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:557,1
    - Dst: SpdmSessionApplicationSecret::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:558,1
    - Dst: SpdmSessionTransportParam::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:559,1
    - Dst: SpdmSessionRuntimeInfo::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:560,1
    - Dst: SecuredMessageVersion::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:563,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::empty
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 565
    functionName: SpdmSession::set_default
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 4
    functionsReached:
    - SpdmSessionApplicationSecret::default
    - SpdmKeyExchangeMutAuthAttributes::empty
    - SpdmSessionTransportParam::default
    - SpdmSessionSharedSecretRoot::default
    - SpdmSessionCryptoParam::default
    - SpdmSessionState::default
    - SpdmSessionHandshakeSecret::default
    - SecuredMessageVersion::default
    - SpdmSessionRuntimeInfo::default
    linkageType: ''
    returnType: void
    signature: pub fn set_default(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: SpdmSession::get_session_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn get_session_id(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 573
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 573
    functionName: SpdmSession::set_session_id
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_session_id(&mut self, session_id: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::set_default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:577,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 583
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 583
    functionName: SpdmSession::setup
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - SpdmSession::set_default
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn setup(&mut self, session_id: u32) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::set_default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 587
    functionName: SpdmSession::teardown
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - SpdmSession::set_default
    linkageType: ''
    returnType: void
    signature: pub fn teardown(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - use_psk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 591
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 591
    functionName: SpdmSession::set_use_psk
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_use_psk(&mut self, use_psk: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: SpdmSession::get_use_psk
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn get_use_psk(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - th1
    argTypes:
    - SpdmDigestStruct
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: SpdmSession::set_th1
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_th1(&mut self, th1: SpdmDigestStruct)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 603
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 603
    functionName: SpdmSession::get_th1
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: SpdmDigestStruct
    signature: pub fn get_th1(&self) -> SpdmDigestStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - th2
    argTypes:
    - SpdmDigestStruct
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: SpdmSession::set_th2
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_th2(&mut self, th2: SpdmDigestStruct)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: SpdmSession::get_th2
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: SpdmDigestStruct
    signature: pub fn get_th2(&self) -> SpdmDigestStruct
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: derive_handshake_secret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:621,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:628,1
    - Dst: derive_master_secret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:631,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:638,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 2
    argNames:
    - spdm_version
    - shared_secret
    argTypes:
    - SpdmVersion
    - SpdmSharedSecretFinalKeyStruct
    constantsTouched: []
    func_position:
      end: 654
      start: 613
    functionDepth: 11
    functionLinenumber: 613
    functionLinenumberEnd: 654
    functionName: SpdmSession::set_shared_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - derive_master_secret
    - derive_handshake_secret
    - Ok
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn set_shared_secret(&mut self,spdm_version: SpdmVersion,shared_secret:
      SpdmSharedSecretFinalKeyStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 658
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 658
    functionName: SpdmSession::get_crypto_param
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: SpdmSessionCryptoParam
    signature: pub fn get_crypto_param(&self) -> SpdmSessionCryptoParam
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 5
    argNames:
    - base_hash_algo
    - dhe_algo
    - kem_algo
    - aead_algo
    - key_schedule_algo
    argTypes:
    - SpdmBaseHashAlgo
    - SpdmDheAlgo
    - SpdmKemAlgo
    - SpdmAeadAlgo
    - SpdmKeyScheduleAlgo
    constantsTouched: []
    func_position:
      end: 673
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 673
    functionName: SpdmSession::set_crypto_param
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_crypto_param(&mut self,base_hash_algo: SpdmBaseHashAlgo,dhe_algo:
      SpdmDheAlgo,kem_algo: SpdmKemAlgo,aead_algo: SpdmAeadAlgo,key_schedule_algo:
      SpdmKeyScheduleAlgo,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - sequence_number_count
    - max_random_count
    argTypes:
    - u8
    - u16
    constantsTouched: []
    func_position:
      end: 678
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 678
    functionName: SpdmSession::set_transport_param
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_transport_param(&mut self, sequence_number_count: u8, max_random_count:
      u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_state
    argTypes:
    - SpdmSessionState
    constantsTouched: []
    func_position:
      end: 682
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 682
    functionName: SpdmSession::set_session_state
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_session_state(&mut self, session_state: SpdmSessionState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 686
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 686
    functionName: SpdmSession::get_session_state
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmSessionState
    signature: pub fn get_session_state(&self) -> SpdmSessionState
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mut_auth_requested
    argTypes:
    - SpdmKeyExchangeMutAuthAttributes
    constantsTouched: []
    func_position:
      end: 690
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 690
    functionName: SpdmSession::set_mut_auth_requested
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_mut_auth_requested(&mut self, mut_auth_requested: SpdmKeyExchangeMutAuthAttributes)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 694
    functionName: SpdmSession::get_mut_auth_requested
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SpdmKeyExchangeMutAuthAttributes
    signature: pub fn get_mut_auth_requested(&self) -> SpdmKeyExchangeMutAuthAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: derive_request_handshake_secret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:707,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:714,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:716,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:717,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:721,1
    - Dst: derive_response_handshake_secret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:728,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:735,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:737,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:738,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:742,1
    - Dst: derive_finished_key
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:749,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:756,1
    - Dst: derive_finished_key
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:763,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:770,1
    - Dst: derive_aead_key_iv
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:777,1
    - Dst: SpdmMajorSecret::SpdmDirectionHandshakeSecret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:781,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:787,1
    - Dst: derive_aead_key_iv
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:804,1
    - Dst: SpdmMajorSecret::SpdmDirectionHandshakeSecret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:808,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:814,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:830,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 139
    argCount: 2
    argNames:
    - spdm_version
    - th1
    argTypes:
    - SpdmVersion
    - '&SpdmDigestStruct'
    constantsTouched: []
    func_position:
      end: 831
      start: 696
    functionDepth: 11
    functionLinenumber: 696
    functionLinenumberEnd: 831
    functionName: SpdmSession::generate_handshake_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - derive_finished_key
    - derive_response_handshake_secret
    - derive_request_handshake_secret
    - SpdmMajorSecret::SpdmDirectionHandshakeSecret
    - as_ref
    - Err
    - Some
    - derive_aead_key_iv
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn generate_handshake_secret(&mut self,spdm_version: SpdmVersion,th1:
      &SpdmDigestStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: derive_request_data_secret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:844,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:851,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:853,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:854,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:858,1
    - Dst: derive_response_data_secret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:861,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:868,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:870,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:871,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:875,1
    - Dst: derive_aead_key_iv
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:886,1
    - Dst: SpdmMajorSecret::SpdmDirectionDataSecret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:890,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:894,1
    - Dst: derive_aead_key_iv
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:910,1
    - Dst: SpdmMajorSecret::SpdmDirectionDataSecret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:914,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:920,1
    - Dst: derive_export_master_secret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:937,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:944,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:946,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:950,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:953,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 131
    argCount: 2
    argNames:
    - spdm_version
    - th2
    argTypes:
    - SpdmVersion
    - '&SpdmDigestStruct'
    constantsTouched: []
    func_position:
      end: 954
      start: 833
    functionDepth: 11
    functionLinenumber: 833
    functionLinenumberEnd: 954
    functionName: SpdmSession::generate_data_secret
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - derive_export_master_secret
    - as_ref
    - Err
    - Some
    - derive_response_data_secret
    - SpdmMajorSecret::SpdmDirectionDataSecret
    - derive_aead_key_iv
    - Ok
    - derive_request_data_secret
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn generate_data_secret(&mut self,spdm_version: SpdmVersion,th2:
      &SpdmDigestStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:971,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:973,1
    - Dst: derive_update_secret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:977,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:984,1
    - Dst: derive_aead_key_iv
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:991,1
    - Dst: SpdmMajorSecret::SpdmDirectionDataSecret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:995,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1001,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1021,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1023,1
    - Dst: derive_update_secret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1027,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1034,1
    - Dst: derive_aead_key_iv
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1041,1
    - Dst: SpdmMajorSecret::SpdmDirectionDataSecret
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1045,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1051,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1068,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 141
    argCount: 3
    argNames:
    - spdm_version
    - update_requester
    - update_responder
    argTypes:
    - SpdmVersion
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1069
      start: 956
    functionDepth: 11
    functionLinenumber: 956
    functionLinenumberEnd: 1069
    functionName: SpdmSession::create_data_secret_update
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - Err
    - derive_update_secret
    - SpdmMajorSecret::SpdmDirectionDataSecret
    - derive_aead_key_iv
    - clone
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn create_data_secret_update(&mut self,spdm_version: SpdmVersion,update_requester:
      bool,update_responder: bool,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1081,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1083,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1087,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1089,1
    - Dst: SpdmDirectionDataSecretStruct::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1094,1
    - Dst: SpdmSessionSecretParam::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1096,1
    - Dst: SpdmDirectionDataSecretStruct::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1101,1
    - Dst: SpdmSessionSecretParam::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1103,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 75
    argCount: 4
    argNames:
    - _spdm_version
    - update_requester
    - update_responder
    - use_new_key
    argTypes:
    - SpdmVersion
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1108
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1108
    functionName: SpdmSession::activate_data_secret_update
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - SpdmDirectionDataSecretStruct::default
    - Ok
    - clone
    - SpdmSessionSecretParam::default
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn activate_data_secret_update(&mut self,_spdm_version: SpdmVersion,update_requester:
      bool,update_responder: bool,use_new_key: bool,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto::hmac::hmac
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1114,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1116,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - message_hash
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1120
      start: 1110
    functionDepth: 10
    functionLinenumber: 1110
    functionLinenumberEnd: 1120
    functionName: SpdmSession::generate_hmac_with_response_finished_key
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - crypto::hmac::hmac
    - Option::ok_or
    - as_ref
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn generate_hmac_with_response_finished_key(&self,message_hash:
      &[u8],) -> SpdmResult<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto::hmac::hmac
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1126,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1128,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - message_hash
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1132
      start: 1122
    functionDepth: 10
    functionLinenumber: 1122
    functionLinenumberEnd: 1132
    functionName: SpdmSession::generate_hmac_with_request_finished_key
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - crypto::hmac::hmac
    - Option::ok_or
    - as_ref
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn generate_hmac_with_request_finished_key(&self,message_hash:
      &[u8],) -> SpdmResult<SpdmDigestStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto::hmac::hmac_verify
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1139,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - message_hash
    - hmac
    argTypes:
    - '&[u8]'
    - '&SpdmDigestStruct'
    constantsTouched: []
    func_position:
      end: 1145
      start: 1134
    functionDepth: 3
    functionLinenumber: 1134
    functionLinenumberEnd: 1145
    functionName: SpdmSession::verify_hmac_with_response_finished_key
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - crypto::hmac::hmac_verify
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn verify_hmac_with_response_finished_key(&self,message_hash:
      &[u8],hmac: &SpdmDigestStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto::hmac::hmac_verify
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1152,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - message_hash
    - hmac
    argTypes:
    - '&[u8]'
    - '&SpdmDigestStruct'
    constantsTouched: []
    func_position:
      end: 1158
      start: 1147
    functionDepth: 3
    functionLinenumber: 1147
    functionLinenumberEnd: 1158
    functionName: SpdmSession::verify_hmac_with_request_finished_key
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - crypto::hmac::hmac_verify
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn verify_hmac_with_request_finished_key(&self,message_hash: &[u8],hmac:
      &SpdmDigestStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1163,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1168,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1172,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1181
    functionName: SpdmSession::export_keys
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: (SpdmSessionSecretParam, SpdmSessionSecretParam)
    signature: pub fn export_keys(&mut self) -> (SpdmSessionSecretParam, SpdmSessionSecretParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1190,1
    - Dst: SpdmSession::encode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1193,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1198,1
    - Dst: SpdmSession::encode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1203,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1208,1
    - Dst: SpdmSession::encode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1216,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1221,1
    - Dst: SpdmSession::encode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1226,1
    - Dst: is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1231,1
    - Dst: crate::error::StatusCode::CRYPTO
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1242,1
    - Dst: SpdmSession::set_default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 65
    argCount: 3
    argNames:
    - app_buffer
    - secured_buffer
    - is_requester
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 1249
      start: 1183
    functionDepth: 4
    functionLinenumber: 1183
    functionLinenumberEnd: 1249
    functionName: SpdmSession::encode_spdm_secured_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - Err
    - SpdmSession::encode_msg
    - crate::error::StatusCode::CRYPTO
    - SpdmSession::set_default
    - is_ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_secured_message(&mut self,app_buffer: &[u8],secured_buffer:
      &mut [u8],is_requester: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1258,1
    - Dst: SpdmSession::decode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1261,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1266,1
    - Dst: SpdmSession::decode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1271,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1276,1
    - Dst: SpdmSession::decode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1284,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1289,1
    - Dst: SpdmSession::decode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1294,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1300,1
    - Dst: SpdmSession::decode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1302,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1307,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1313,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1321,1
    - Dst: crate::error::StatusCode::CRYPTO
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1326,1
    - Dst: SpdmSession::set_default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 88
    argCount: 3
    argNames:
    - secured_buffer
    - app_buffer
    - is_requester
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 1333
      start: 1251
    functionDepth: 6
    functionLinenumber: 1251
    functionLinenumberEnd: 1333
    functionName: SpdmSession::decode_spdm_secured_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - SpdmSession::decode_msg
    - SpdmSession::set_default
    - crate::error::StatusCode::CRYPTO
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn decode_spdm_secured_message(&mut self,secured_buffer: &[u8],app_buffer:
      &mut [u8],is_requester: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1345,1
    - Dst: get_tag_size
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1346,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1349,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1350,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1354,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1357,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1357,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1364,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1364,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1368,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1368,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1371,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1375,1
    - Dst: u16::encode
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1376,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1376,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1379,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1381,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1381,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1385,1
    - Dst: crypto::aead::encrypt
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1396,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1408,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1409,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 204
    argCount: 3
    argNames:
    - app_buffer
    - secured_buffer
    - secret_param
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&SpdmSessionSecretParam'
    constantsTouched: []
    func_position:
      end: 1413
      start: 1335
    functionDepth: 3
    functionLinenumber: 1335
    functionLinenumberEnd: 1413
    functionName: SpdmSession::encode_msg
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 1
    functionsReached:
    - Err
    - Writer::init
    - copy_from_slice
    - '&[u8]::len'
    - clone
    - Result::map_err
    - crypto::aead::encrypt
    - Ok
    - u16::encode
    - SpdmResult::encode
    - Writer::used
    - get_tag_size
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn encode_msg(&self,app_buffer: &[u8],secured_buffer: &mut [u8],secret_param:
      &SpdmSessionSecretParam,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_tag_size
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1424,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1427,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1430,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1431,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1431,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1434,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1439,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1439,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1442,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1446,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1446,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1447,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1451,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1452,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1456,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1463,1
    - Dst: crypto::aead::decrypt
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1474,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1485,1
    - Dst: u16::read
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1486,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1486,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1488,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1491,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1492,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 201
    argCount: 3
    argNames:
    - secured_buffer
    - app_buffer
    - secret_param
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&SpdmSessionSecretParam'
    constantsTouched: []
    func_position:
      end: 1493
      start: 1415
    functionDepth: 5
    functionLinenumber: 1415
    functionLinenumberEnd: 1493
    functionName: SpdmSession::decode_msg
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 1
    functionsReached:
    - Result::used
    - Err
    - u32::read
    - Option::ok_or
    - u16::read
    - clone
    - '&[u8]::len'
    - copy_from_slice
    - Ok
    - Reader::init
    - crypto::aead::decrypt
    - get_tag_size
    - u8::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn decode_msg(&self,secured_buffer: &[u8],app_buffer: &mut [u8],secret_param:
      &SpdmSessionSecretParam,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1503,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1508,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1508,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1509,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1512,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1516,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1547,1
    - Dst: set_request_direction_sequence_number
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1550,1
    - Dst: set_response_direction_sequence_number
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1551,1
    - Dst: encode_spdm_secured_message
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1502
    functionDepth: 5
    functionLinenumber: 1502
    functionLinenumberEnd: 1567
    functionName: tests_session::test_case0_sequence_number_overflow
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - set_request_direction_sequence_number
    - encode_spdm_secured_message
    - set_response_direction_sequence_number
    - SpdmSession::default
    - SpdmKemAlgo::empty
    - set_crypto_param
    - SpdmResult::unwrap
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_sequence_number_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1571,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1576,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1576,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1577,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1580,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1584,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1615,1
    - Dst: set_request_direction_sequence_number
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1618,1
    - Dst: set_response_direction_sequence_number
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1619,1
    - Dst: encode_spdm_secured_message
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1570
    functionDepth: 5
    functionLinenumber: 1570
    functionLinenumberEnd: 1635
    functionName: tests_session::test_case1_sequence_number_overflow
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - set_request_direction_sequence_number
    - encode_spdm_secured_message
    - set_response_direction_sequence_number
    - SpdmSession::default
    - SpdmKemAlgo::empty
    - set_crypto_param
    - SpdmResult::unwrap
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case1_sequence_number_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1639,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1644,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1644,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1645,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1648,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1652,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1683,1
    - Dst: set_request_direction_sequence_number
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1686,1
    - Dst: set_response_direction_sequence_number
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1687,1
    - Dst: decode_spdm_secured_message
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1638
    functionDepth: 7
    functionLinenumber: 1638
    functionLinenumberEnd: 1704
    functionName: tests_session::test_case2_sequence_number_overflow
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - set_request_direction_sequence_number
    - decode_spdm_secured_message
    - set_response_direction_sequence_number
    - SpdmSession::default
    - SpdmKemAlgo::empty
    - set_crypto_param
    - SpdmResult::unwrap
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case2_sequence_number_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1708,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1713,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1713,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1714,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1717,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1721,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1752,1
    - Dst: set_request_direction_sequence_number
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1755,1
    - Dst: set_response_direction_sequence_number
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1756,1
    - Dst: decode_spdm_secured_message
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1707
    functionDepth: 7
    functionLinenumber: 1707
    functionLinenumberEnd: 1776
    functionName: tests_session::test_case3_sequence_number_overflow
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - set_request_direction_sequence_number
    - decode_spdm_secured_message
    - set_response_direction_sequence_number
    - SpdmSession::default
    - SpdmKemAlgo::empty
    - set_crypto_param
    - SpdmResult::unwrap
    - setup
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case3_sequence_number_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1780,1
    - Dst: activate_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1781,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1781,1
    - Dst: activate_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1786,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1786,1
    - Dst: activate_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1791,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1779
    functionDepth: 3
    functionLinenumber: 1779
    functionLinenumberEnd: 1795
    functionName: tests_session::test_case0_activate_data_secret_update
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - SpdmSession::default
    - SpdmResult::is_ok
    - activate_data_secret_update
    linkageType: ''
    returnType: void
    signature: fn test_case0_activate_data_secret_update()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1798,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1803,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1803,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1804,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1807,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1811,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1816,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1820,1
    - Dst: decode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1826,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1826,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1835,1
    - Dst: decode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1837,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1797
    functionDepth: 6
    functionLinenumber: 1797
    functionLinenumberEnd: 1845
    functionName: tests_session::test_case0_decode_msg
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - decode_msg
    - SpdmSession::default
    - Writer::init
    - SpdmKemAlgo::empty
    - Box::new
    - set_crypto_param
    - SpdmResult::unwrap
    - setup
    - SpdmResult::is_ok
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_decode_msg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1848,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1853,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1853,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1854,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1857,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1861,1
    - Dst: encode_msg
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1883,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1847
    functionDepth: 4
    functionLinenumber: 1847
    functionLinenumberEnd: 1891
    functionName: tests_session::test_case0_encode_msg
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - SpdmSession::default
    - SpdmKemAlgo::empty
    - set_crypto_param
    - SpdmResult::unwrap
    - setup
    - encode_msg
    - SpdmResult::is_ok
    - set_session_state
    linkageType: ''
    returnType: void
    signature: fn test_case0_encode_msg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1895,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1898,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1894
    functionDepth: 4
    functionLinenumber: 1894
    functionLinenumberEnd: 1899
    functionName: tests_session::test_case0_setup
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::is_err
    - setup
    - SpdmSession::default
    linkageType: ''
    returnType: void
    signature: fn test_case0_setup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmSession::default
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1902,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/common/session.rs:1904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1901
    functionDepth: 4
    functionLinenumber: 1901
    functionLinenumberEnd: 1906
    functionName: tests_session::test_case0_teardown
    functionSourceFile: /src/spdm-rs/spdmlib/src/common/session.rs
    functionUses: 0
    functionsReached:
    - teardown
    - SpdmSession::default
    linkageType: ''
    returnType: void
    signature: fn test_case0_teardown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:22,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:27,1
    - Dst: watchdog::stop_watchdog
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:33,1
    - Dst: ResponderContext::write_spdm_end_session_response
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 37
      start: 16
    functionDepth: 10
    functionLinenumber: 16
    functionLinenumberEnd: 37
    functionName: ResponderContext::handle_spdm_end_session
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::write_spdm_end_session_response
    - contains
    - watchdog::stop_watchdog
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_end_session<''a>(&mut self,session_id: u32,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:45,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:46,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:49,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:51,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:52,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:52,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:56,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:58,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:59,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:59,1
    - Dst: SpdmEndSessionRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:64,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:69,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:71,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:72,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:72,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:76,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:78,1
    - Dst: SpdmMessagePayload::SpdmEndSessionResponse
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:88,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:90,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:91,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:92,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:94,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:95,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:95,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:99,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:99,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 87
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 100
      start: 39
    functionDepth: 11
    functionLinenumber: 39
    functionLinenumberEnd: 100
    functionName: ResponderContext::write_spdm_end_session_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs
    functionUses: 1
    functionsReached:
    - '&''a mut Writer::used_slice'
    - Some
    - Err
    - reset_buffer_via_request_code
    - SpdmEndSessionRequestPayload::spdm_read
    - Features::is_err
    - Ok
    - SpdmMessageHeader::read
    - SpdmMessagePayload::SpdmEndSessionResponse
    - Reader::init
    - ResponderContext::write_spdm_error
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_end_session_response<''a>(&mut self,session_id:
      u32,bytes: &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_digest_response
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bytes
    - session_id
    - writer
    argTypes:
    - '&[u8]'
    - Option<u32>
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 12
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: ResponderContext::handle_spdm_digest
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs
    functionUses: 2
    functionsReached:
    - ResponderContext::write_spdm_digest_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_digest<''a>(&mut self,bytes: &[u8],session_id:
      Option<u32>,writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:35,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:35,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:36,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:38,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:40,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:41,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:41,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:44,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:45,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:48,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:50,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:51,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:51,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:55,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:57,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:58,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:58,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:62,1
    - Dst: SpdmGetDigestsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:67,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:72,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:74,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:75,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:75,1
    - Dst: append_message_b
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:81,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:83,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:81,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:86,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:88,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:89,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:89,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:96,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:100,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:105,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:106,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:110,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:110,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:117,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:119,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:121,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:123,1
    - Dst: SpdmMessagePayload::SpdmDigestsResponse
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:135,1
    - Dst: crate::protocol::gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:137,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:140,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:150,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:151,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:152,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:154,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:155,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:155,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:162,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:163,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:163,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:166,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:168,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:174,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:174,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:174,1
    - Dst: '&''a mut Writer::mut_used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:178,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:178,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:180,1
    - Dst: append_message_b
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:187,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:187,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:187,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:188,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:190,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:191,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:191,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:198,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:198,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs:198,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 279
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 199
      start: 29
    functionDepth: 11
    functionLinenumber: 29
    functionLinenumberEnd: 199
    functionName: ResponderContext::write_spdm_digest_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs
    functionUses: 1
    functionsReached:
    - Option::as_ref
    - '&''a mut Writer::used_slice'
    - get_connection_state
    - unwrap
    - SpdmGetDigestsRequestPayload::spdm_read
    - get_hash_size
    - Features::is_err
    - copy_from_slice
    - Box::new
    - SpdmMessageHeader::read
    - '&''a mut Writer::mut_used_slice'
    - get_u8
    - Result::used
    - gen_array_clone
    - SpdmKeyUsageMask::empty
    - crypto::hash::hash_all
    - reset_buffer_via_request_code
    - Some
    - Err
    - Ok
    - Reader::init
    - append_message_b
    - SpdmMessagePayload::SpdmDigestsResponse
    - as_ref
    - is_err
    - is_some
    - crate::protocol::gen_array_clone
    - SpdmResult::as_ref
    - ResponderContext::write_spdm_error
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn write_spdm_digest_response<''a>(&mut self,session_id: Option<u32>,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_version_response
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 12
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: ResponderContext::handle_spdm_version
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::write_spdm_version_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_version<''a>(&mut self,bytes: &[u8],writer: &''a
      mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:27,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:28,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:31,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:33,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:34,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:34,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:38,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:40,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:41,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:41,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:45,1
    - Dst: SpdmGetVersionRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:48,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:53,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:55,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:56,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:56,1
    - Dst: reset_context
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:61,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:63,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:65,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:63,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:68,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:70,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:71,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:71,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:77,1
    - Dst: SpdmVersionStruct::default
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:77,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:78,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:78,1
    - Dst: SpdmMessagePayload::SpdmVersionResponse
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:90,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:96,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:97,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:98,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:100,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:101,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:101,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:104,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:104,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:104,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:105,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:107,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:108,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:108,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:112,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:112,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 143
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 113
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 113
    functionName: ResponderContext::write_spdm_version_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs
    functionUses: 1
    functionsReached:
    - '&''a mut Writer::used_slice'
    - Features::is_err
    - SpdmMessageHeader::read
    - append_message_a
    - SpdmGetVersionRequestPayload::spdm_read
    - Result::used
    - gen_array_clone
    - SpdmMessagePayload::SpdmVersionResponse
    - iter
    - reset_buffer_via_request_code
    - Some
    - Err
    - reset_context
    - Ok
    - Reader::init
    - flatten
    - SpdmVersionStruct::default
    - is_err
    - ResponderContext::write_spdm_error
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_version_response<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/responder/app_message_handler.rs:47,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/app_message_handler.rs:48,1
    - Dst: unwrap_or
      Src: /src/spdm-rs/spdmlib/src/responder/app_message_handler.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - session_id
    - app_buffer
    - app_handle
    - writer
    argTypes:
    - '&mut ResponderContext'
    - u32
    - '&[u8]'
    - usize
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: dispatch_secured_app_message_cb
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/app_message_handler.rs
    functionUses: 1
    functionsReached:
    - try_get_or_init
    - unwrap_or
    - clone
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn dispatch_secured_app_message_cb<''a>(ctx: &mut ResponderContext,session_id:
      u32,app_buffer: &[u8],app_handle: usize, // interpreted/managed by Userwriter:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_capability_response
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 12
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: ResponderContext::handle_spdm_capability
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::write_spdm_capability_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_capability<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:29,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:32,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:34,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:35,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:35,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:38,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:39,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:46,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:48,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:49,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:49,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:55,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:57,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:58,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:58,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:62,1
    - Dst: SpdmGetCapabilitiesRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:68,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:73,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:78,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:80,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:81,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:81,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:104,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:106,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:107,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:107,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:111,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:113,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:111,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:116,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:118,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:119,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:119,1
    - Dst: SpdmMessagePayload::SpdmCapabilitiesResponse
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:130,1
    - Dst: SpdmResponseCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:136,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:140,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:141,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:142,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:144,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:145,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:145,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:148,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:148,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:148,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:149,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:151,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:152,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:152,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:156,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:156,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs:156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 238
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 157
      start: 24
    functionDepth: 11
    functionLinenumber: 24
    functionLinenumberEnd: 157
    functionName: ResponderContext::write_spdm_capability_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs
    functionUses: 1
    functionsReached:
    - Result::used
    - SpdmResponseCapabilityExFlags::default
    - contains
    - '&''a mut Writer::used_slice'
    - Some
    - get_connection_state
    - Err
    - reset_buffer_via_request_code
    - SpdmGetCapabilitiesRequestPayload::spdm_read
    - is_err
    - SpdmMessagePayload::SpdmCapabilitiesResponse
    - Features::is_err
    - Ok
    - SpdmMessageHeader::read
    - Reader::init
    - ResponderContext::write_spdm_error
    - append_message_a
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_capability_response<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmGetDigestsRequest
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:20,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:23,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - encap_request
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 26
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 26
    functionName: ResponderContext::encode_encap_request_get_digest
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs
    functionUses: 1
    functionsReached:
    - SpdmMessagePayload::SpdmGetDigestsRequest
    - Ok
    - spdm_encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_encap_request_get_digest(&mut self, encap_request: &mut
      Writer) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:29,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:30,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:33,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:38,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:41,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:44,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:47,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - encap_response
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 52
      start: 28
    functionDepth: 11
    functionLinenumber: 28
    functionLinenumberEnd: 52
    functionName: ResponderContext::handle_encap_response_digest
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    - Reader::init
    - SpdmMessageHeader::read
    - SpdmDigestsResponsePayload::spdm_read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_encap_response_digest(&mut self, encap_response: &[u8])
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_psk_finish_response
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:21,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:22,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:23,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 12
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: ResponderContext::handle_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs
    functionUses: 1
    functionsReached:
    - get_session_via_id
    - is_err
    - teardown
    - ResponderContext::write_spdm_psk_finish_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_psk_finish<''a>(&mut self,session_id: u32,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:38,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:39,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:42,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:44,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:45,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:45,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:49,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:51,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:52,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:52,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:56,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:58,1
    - Dst: SpdmPskFinishRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:61,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:67,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:69,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:70,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:70,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:74,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:75,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:78,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:84,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:87,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:89,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:90,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:90,1
    - Dst: get_use_psk
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:94,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:95,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:97,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:98,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:98,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:102,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:102,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:108,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:110,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:111,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:111,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:116,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:119,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:121,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:122,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:122,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:126,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:127,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:128,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:129,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:129,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:129,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:131,1
    - Dst: '&[u8]::unwrap'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:131,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:134,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:137,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:139,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:140,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:140,1
    - Dst: verify_hmac_with_request_finished_key
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:143,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:144,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:147,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:149,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:150,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:150,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:150,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:155,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:157,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:155,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:161,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:163,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:164,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:164,1
    - Dst: SpdmMessagePayload::SpdmPskFinishResponse
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:176,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:184,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:185,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:186,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:188,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:189,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:189,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:193,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:195,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:193,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:199,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:201,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:202,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:202,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:206,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:209,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:211,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:212,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:212,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:216,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:217,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:218,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:219,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:219,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:219,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:222,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:225,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:228,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:230,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:231,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:231,1
    - Dst: set_th2
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:234,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:234,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:235,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:236,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:237,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:237,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:237,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:240,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:240,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs:240,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 333
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 241
      start: 32
    functionDepth: 11
    functionLinenumber: 32
    functionLinenumberEnd: 241
    functionName: ResponderContext::write_spdm_psk_finish_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs
    functionUses: 1
    functionsReached:
    - '&''a mut Writer::used_slice'
    - unwrap
    - generate_data_secret
    - '&[u8]::unwrap'
    - clone
    - get_hash_size
    - Features::is_err
    - SpdmMessageHeader::read
    - Result::used
    - SpdmPskFinishRequestPayload::spdm_read
    - SpdmResult::is_err
    - append_message_f
    - reset_buffer_via_request_code
    - Some
    - Err
    - set_th2
    - Ok
    - Reader::init
    - Option::unwrap
    - get_use_psk
    - get_immutable_session_via_id
    - as_ref
    - is_err
    - verify_hmac_with_request_finished_key
    - get_session_via_id
    - SpdmResult::as_ref
    - calc_rsp_transcript_hash
    - ResponderContext::write_spdm_error
    - SpdmMessagePayload::SpdmPskFinishResponse
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_psk_finish_response<''a>(&mut self,session_id: u32,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::common::SpdmContext::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device_io
    - transport_encap
    - config_info
    - provision_info
    argTypes:
    - Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - crate::common::SpdmConfigInfo
    - crate::common::SpdmProvisionInfo
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: ResponderContext::new
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 93
    functionsReached:
    - crate::common::SpdmContext::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(device_io: Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>,transport_encap:
      Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,config_info: crate::common::SpdmConfigInfo,provision_info:
      crate::common::SpdmProvisionInfo,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:54,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:57,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:59,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:60,1
    - Dst: SpdmResult::is_none
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:61,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:62,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:63,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:65,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:66,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:69,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:74,1
    - Dst: overflowing_add
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:80,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:82,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:83,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:83,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:88,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:89,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:90,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:92,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:93,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:97,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:98,1
    - Dst: encode_secured_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:106,1
    - Dst: encap
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:116,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:122,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:123,1
    - Dst: send
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:124,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:124,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:137,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:149,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:153,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:154,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:157,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:158,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:161,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:162,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:165,1
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:166,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:166,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:167,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:169,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:173,1
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:174,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:174,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:175,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:177,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:181,1
    - Dst: set_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:182,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:185,1
    - Dst: SpdmResult::is_none
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:186,1
    - Dst: get_last_session_id
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:189,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:192,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:196,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:196,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:200,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:207,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:212,1
    - Dst: watchdog::start_watchdog
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:218,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:221,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:222,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:223,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:225,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:223,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:227,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:228,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:229,1
    - Dst: SpdmResult::is_some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:230,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:233,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:236,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:236,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:240,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:247,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:252,1
    - Dst: watchdog::start_watchdog
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:258,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:262,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 435
    argCount: 3
    argNames:
    - session_id
    - send_buffer
    - is_app_message
    argTypes:
    - Option<u32>
    - '&[u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 263
      start: 47
    functionDepth: 10
    functionLinenumber: 47
    functionLinenumberEnd: 263
    functionName: ResponderContext::send_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 1
    functionsReached:
    - contains
    - get_connection_state
    - teardown
    - Writer::init
    - copy_from_slice
    - ok_or
    - lock
    - encap
    - SpdmResult::is_none
    - SpdmResult::unwrap
    - get_u8
    - send
    - set_last_session_id
    - deref_mut
    - fill
    - overflowing_add
    - get_last_session_id
    - Err
    - Ok
    - '&[u8]::len'
    - watchdog::start_watchdog
    - Arc::new
    - SpdmResult::is_some
    - Writer::used_slice
    - set_connection_state
    - encode
    - encode_secured_message
    - get_session_via_id
    - ResponderContext::write_spdm_error
    - set_session_state
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_message(&mut self,session_id: Option<u32>,send_buffer:
      &[u8],is_app_message: bool,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:273,1
    - Dst: ResponderContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:275,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:278,1
    - Dst: u32::read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:279,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:279,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:281,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:281,1
    - Dst: decode_spdm_secured_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:285,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:290,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:291,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:293,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:297,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:299,1
    - Dst: decap_app
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:300,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:302,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:303,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:303,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:308,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:311,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:316,1
    - Dst: watchdog::reset_watchdog
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:322,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:330,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:331,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:341,1
    - Dst: overflowing_add
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:354,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:361,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:371,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:371,1
    - Dst: ResponderContext::dispatch_secured_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:375,1
    - Dst: ResponderContext::send_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:381,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:382,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:385,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:385,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:387,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:390,1
    - Dst: ResponderContext::dispatch_secured_app_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:393,1
    - Dst: ResponderContext::send_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:401,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:401,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:403,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:403,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:405,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:408,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:418,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:419,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:429,1
    - Dst: overflowing_add
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:440,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:443,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:450,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:450,1
    - Dst: ResponderContext::dispatch_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:455,1
    - Dst: ResponderContext::send_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:457,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:458,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:458,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:460,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:463,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:467,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 325
    argCount: 3
    argNames:
    - crypto_request
    - app_handle
    - raw_packet
    argTypes:
    - bool
    - usize
    - '&mut [u8; RECEIVER_BUFFER_SIZE]'
    constantsTouched: []
    func_position:
      end: 469
      start: 266
    functionDepth: 11
    functionLinenumber: 266
    functionLinenumberEnd: 469
    functionName: ResponderContext::process_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 0
    functionsReached:
    - contains
    - unwrap
    - Writer::init
    - ok_or
    - SpdmMessageHeader::read
    - lock
    - decap_app
    - u32::read
    - ResponderContext::dispatch_message
    - deref_mut
    - fill
    - decode_spdm_secured_message
    - watchdog::reset_watchdog
    - overflowing_add
    - Err
    - Some
    - Option::ok_or
    - Ok
    - Mutex::new
    - Reader::init
    - ResponderContext::dispatch_secured_app_message
    - Arc::new
    - is_err
    - ResponderContext::receive_message
    - get_session_via_id
    - ResponderContext::send_message
    - ResponderContext::dispatch_secured_message
    linkageType: ''
    returnType: Result
    signature: 'pub async fn process_message(&mut self,crypto_request: bool,app_handle:
      usize, // interpreted/managed by Userraw_packet: &mut [u8; RECEIVER_BUFFER_SIZE],)
      -> Result<SpdmResult, usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:492,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:493,1
    - Dst: receive
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:494,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:495,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:495,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:500,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:502,1
    - Dst: decap
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:503,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:505,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:506,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:506,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:503,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:512,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 2
    argNames:
    - receive_buffer
    - crypto_request
    argTypes:
    - '&mut [u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 514
      start: 476
    functionDepth: 10
    functionLinenumber: 476
    functionLinenumberEnd: 514
    functionName: ResponderContext::receive_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 1
    functionsReached:
    - Arc::new
    - receive
    - decap
    - copy_from_slice
    - Ok
    - Mutex::new
    - lock
    - deref_mut
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'async fn receive_message(&mut self,receive_buffer: &mut [u8],crypto_request:
      bool,) -> Result<(usize, bool), usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:522,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:524,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:525,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:526,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:528,1
    - Dst: get_session_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:530,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:532,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:537,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:543,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:546,1
    - Dst: ResponderContext::handle_get_encapsulated_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:550,1
    - Dst: ResponderContext::handle_deliver_encapsulated_reponse
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:554,1
    - Dst: ResponderContext::handle_spdm_finish
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:557,1
    - Dst: ResponderContext::handle_spdm_psk_finish
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:561,1
    - Dst: ResponderContext::handle_spdm_vendor_defined_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:565,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:565,1
    - Dst: ResponderContext::handle_spdm_chunk_send
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:570,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:570,1
    - Dst: ResponderContext::handle_spdm_chunk_get
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:574,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:574,1
    - Dst: ResponderContext::handle_error_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:588,1
    - Dst: ResponderContext::handle_error_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:595,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:602,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:604,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:608,1
    - Dst: ResponderContext::handle_spdm_digest
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:611,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:611,1
    - Dst: ResponderContext::handle_spdm_certificate
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:614,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:614,1
    - Dst: ResponderContext::handle_spdm_measurement
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:617,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:617,1
    - Dst: ResponderContext::handle_spdm_heartbeat
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:621,1
    - Dst: ResponderContext::handle_spdm_key_update
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:625,1
    - Dst: ResponderContext::handle_spdm_end_session
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:629,1
    - Dst: ResponderContext::handle_spdm_vendor_defined_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:632,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:632,1
    - Dst: ResponderContext::handle_spdm_chunk_send
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:637,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:637,1
    - Dst: ResponderContext::handle_spdm_chunk_get
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:641,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:641,1
    - Dst: ResponderContext::handle_error_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:651,1
    - Dst: ResponderContext::handle_error_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:658,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:665,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:667,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:670,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:671,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 108
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 673
      start: 516
    functionDepth: 11
    functionLinenumber: 516
    functionLinenumberEnd: 673
    functionName: ResponderContext::dispatch_secured_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 2
    functionsReached:
    - ResponderContext::handle_spdm_heartbeat
    - contains
    - ResponderContext::handle_error_request
    - ResponderContext::handle_spdm_finish
    - unwrap
    - is_none
    - ResponderContext::handle_deliver_encapsulated_reponse
    - SpdmMessageHeader::read
    - ResponderContext::handle_spdm_end_session
    - ResponderContext::handle_spdm_measurement
    - ResponderContext::handle_spdm_chunk_get
    - ResponderContext::handle_spdm_digest
    - ResponderContext::handle_spdm_key_update
    - ResponderContext::handle_spdm_chunk_send
    - Err
    - Some
    - ResponderContext::handle_get_encapsulated_request
    - Reader::init
    - ResponderContext::handle_spdm_psk_finish
    - get_immutable_session_via_id
    - get_session_state
    - ResponderContext::handle_spdm_vendor_defined_request
    - ResponderContext::handle_spdm_certificate
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn dispatch_secured_message<''a>(&mut self,session_id: u32,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::app_message_handler::dispatch_secured_app_message_cb
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - session_id
    - bytes
    - app_handle
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - usize
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 685
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 685
    functionName: ResponderContext::dispatch_secured_app_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 1
    functionsReached:
    - super::app_message_handler::dispatch_secured_app_message_cb
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn dispatch_secured_app_message<''a>(&mut self,session_id: u32,bytes:
      &[u8],app_handle: usize,writer: &''a mut Writer,) -> (SpdmResult, Option<&''a
      [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:692,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:693,1
    - Dst: ResponderContext::handle_spdm_version
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:696,1
    - Dst: ResponderContext::handle_spdm_capability
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:699,1
    - Dst: ResponderContext::handle_spdm_algorithm
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:702,1
    - Dst: ResponderContext::handle_spdm_digest
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:705,1
    - Dst: ResponderContext::handle_spdm_certificate
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:708,1
    - Dst: ResponderContext::handle_spdm_challenge
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:711,1
    - Dst: ResponderContext::handle_spdm_measurement
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:714,1
    - Dst: ResponderContext::handle_spdm_key_exchange
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:718,1
    - Dst: ResponderContext::handle_spdm_psk_exchange
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:722,1
    - Dst: ResponderContext::handle_spdm_vendor_defined_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:726,1
    - Dst: ResponderContext::handle_spdm_chunk_send
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:731,1
    - Dst: ResponderContext::handle_spdm_chunk_get
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:735,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:739,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:744,1
    - Dst: get_last_session_id
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:750,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:752,1
    - Dst: get_session_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:754,1
    - Dst: ResponderContext::handle_spdm_finish
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:757,1
    - Dst: ResponderContext::handle_error_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:763,1
    - Dst: ResponderContext::handle_error_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:773,1
    - Dst: ResponderContext::handle_error_request
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:779,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:785,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:787,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 74
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 789
      start: 687
    functionDepth: 12
    functionLinenumber: 687
    functionLinenumberEnd: 789
    functionName: ResponderContext::dispatch_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 2
    functionsReached:
    - contains
    - ResponderContext::handle_error_request
    - ResponderContext::handle_spdm_finish
    - SpdmMessageHeader::read
    - ResponderContext::handle_spdm_measurement
    - ResponderContext::handle_spdm_key_exchange
    - ResponderContext::handle_spdm_algorithm
    - ResponderContext::handle_spdm_chunk_get
    - ResponderContext::handle_spdm_digest
    - ResponderContext::handle_spdm_chunk_send
    - get_last_session_id
    - Err
    - ResponderContext::handle_spdm_challenge
    - Reader::init
    - get_immutable_session_via_id
    - ResponderContext::handle_spdm_psk_exchange
    - get_session_state
    - ResponderContext::handle_spdm_vendor_defined_request
    - ResponderContext::handle_spdm_capability
    - ResponderContext::handle_spdm_version
    - ResponderContext::handle_spdm_certificate
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn dispatch_message<''a>(&mut self,bytes: &[u8],writer: &''a mut
      Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_chunk_send_response
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:798,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:799,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 809
      start: 792
    functionDepth: 12
    functionLinenumber: 792
    functionLinenumberEnd: 809
    functionName: ResponderContext::handle_spdm_chunk_send
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 2
    functionsReached:
    - ResponderContext::write_spdm_chunk_send_response
    - fill
    - is_err
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn handle_spdm_chunk_send<''a>(&mut self,session_id: Option<u32>,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:830,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:835,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:841,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:842,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:842,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:842,1
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:845,1
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:847,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:850,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:852,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:853,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:853,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:857,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:858,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:865,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:867,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:868,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:868,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:872,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:874,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:875,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:875,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:879,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:881,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:882,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:882,1
    - Dst: SpdmChunkSendRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:886,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:889,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:903,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:906,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:912,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:914,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:915,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:915,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:932,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:934,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:935,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:935,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:940,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:948,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:950,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:951,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:951,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:956,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:958,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:959,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:959,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:963,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:971,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:973,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:974,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:974,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:980,1
    - Dst: ResponderContext::dispatch_secured_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:983,1
    - Dst: ResponderContext::dispatch_message
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:989,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:997,1
    - Dst: overflowing_add
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1004,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1006,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1007,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1007,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1012,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1013,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1014,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1014,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1014,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1016,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1017,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1017,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1019,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1020,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1026,1
    - Dst: SpdmMessagePayload::SpdmChunkSendAckResponse
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1034,1
    - Dst: SpdmChunkReceiverAttributes::default
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1036,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1043,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1044,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1045,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1047,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1048,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1048,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1052,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1052,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1055,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1057,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1058,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1058,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 464
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 1061
      start: 812
    functionDepth: 11
    functionLinenumber: 812
    functionLinenumberEnd: 1061
    functionName: ResponderContext::write_spdm_chunk_send_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 1
    functionsReached:
    - contains
    - '&''a mut Writer::used_slice'
    - get_connection_state
    - unwrap
    - Writer::init
    - copy_from_slice
    - Features::is_err
    - SpdmMessageHeader::read
    - ResponderContext::dispatch_message
    - SpdmChunkSendRequestPayload::spdm_read
    - SpdmMessagePayload::SpdmChunkSendAckResponse
    - SpdmChunkReceiverAttributes::default
    - overflowing_add
    - Some
    - Err
    - Ok
    - Reader::init
    - encode
    - ResponderContext::write_spdm_error
    - ResponderContext::dispatch_secured_message
    - SpdmResult::spdm_encode
    - len
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn write_spdm_chunk_send_response<''a>(&mut self,session_id: Option<u32>,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_chunk_get_response
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1070,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1071,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 1080
      start: 1064
    functionDepth: 12
    functionLinenumber: 1064
    functionLinenumberEnd: 1080
    functionName: ResponderContext::handle_spdm_chunk_get
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 2
    functionsReached:
    - ResponderContext::write_spdm_chunk_get_response
    - fill
    - is_err
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn handle_spdm_chunk_get<''a>(&mut self,session_id: Option<u32>,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1095,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1100,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1106,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1107,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1107,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1107,1
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1110,1
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1112,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1115,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1117,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1118,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1118,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1122,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1123,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1130,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1132,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1133,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1133,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1137,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1139,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1140,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1140,1
    - Dst: SpdmChunkGetRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1144,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1150,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1152,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1153,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1153,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1160,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1162,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1163,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1163,1
    - Dst: core::cmp::min
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1169,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1181,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1183,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1184,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1184,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1187,1
    - Dst: core::cmp::min
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1199,1
    - Dst: SpdmChunkSenderAttributes::default
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1207,1
    - Dst: SpdmMessagePayload::SpdmChunkResponse
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1215,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1223,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1224,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1225,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1227,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1228,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1228,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1235,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1235,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/context.rs:1235,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 241
    argCount: 3
    argNames:
    - _session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 1236
      start: 1083
    functionDepth: 11
    functionLinenumber: 1083
    functionLinenumberEnd: 1236
    functionName: ResponderContext::write_spdm_chunk_get_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/context.rs
    functionUses: 1
    functionsReached:
    - SpdmChunkGetRequestPayload::spdm_read
    - contains
    - '&''a mut Writer::used_slice'
    - Some
    - Err
    - get_connection_state
    - Features::is_err
    - Ok
    - SpdmMessageHeader::read
    - SpdmChunkSenderAttributes::default
    - Reader::init
    - ResponderContext::write_spdm_error
    - core::cmp::min
    - SpdmResult::spdm_encode
    - SpdmMessagePayload::SpdmChunkResponse
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn write_spdm_chunk_get_response<''a>(&mut self,_session_id: Option<u32>,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmErrorResponse
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:23,1
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataNone
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:26,1
    - Dst: '&mut Writer::clear'
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:31,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - error_code
    - error_data
    - writer
    argTypes:
    - SpdmErrorCode
    - u8
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 33
      start: 12
    functionDepth: 4
    functionLinenumber: 12
    functionLinenumberEnd: 33
    functionName: ResponderContext::write_spdm_error
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs
    functionUses: 22
    functionsReached:
    - SpdmErrorResponseExtData::SpdmErrorExtDataNone
    - SpdmResult::spdm_encode
    - SpdmMessagePayload::SpdmErrorResponse
    - '&mut Writer::clear'
    linkageType: ''
    returnType: void
    signature: 'pub fn write_spdm_error(&mut self,error_code: SpdmErrorCode,error_data:
      u8,writer: &mut Writer,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_error_response
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - error_code
    - bytes
    - writer
    argTypes:
    - SpdmErrorCode
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 12
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: ResponderContext::handle_error_request
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs
    functionUses: 2
    functionsReached:
    - ResponderContext::write_error_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_error_request<''a>(&mut self,error_code: SpdmErrorCode,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:52,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:53,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:56,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:58,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:59,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:59,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:63,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:67,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:69,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:71,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:72,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:72,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:76,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:76,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 3
    argNames:
    - error_code
    - bytes
    - writer
    argTypes:
    - SpdmErrorCode
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 77
      start: 46
    functionDepth: 11
    functionLinenumber: 46
    functionLinenumberEnd: 77
    functionName: ResponderContext::write_error_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs
    functionUses: 1
    functionsReached:
    - get_u8
    - '&''a mut Writer::used_slice'
    - Some
    - Err
    - Ok
    - SpdmMessageHeader::read
    - Reader::init
    - ResponderContext::write_spdm_error
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_error_response<''a>(&mut self,error_code: SpdmErrorCode,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_key_exchange_response
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:36,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:37,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:39,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 12
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: ResponderContext::handle_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::write_spdm_key_exchange_response
    - get_session_via_id
    - teardown
    - is_err
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_key_exchange<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:54,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:54,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:55,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:57,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:59,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:60,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:60,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:63,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:64,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:67,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:69,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:70,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:70,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:74,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:76,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:77,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:77,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:81,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:83,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:84,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:84,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:88,1
    - Dst: SpdmKeyExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:92,1
    - Dst: SpdmOpaqueStruct::default
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:94,1
    - Dst: secret::measurement::generate_measurement_summary_hash
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:107,1
    - Dst: Option::is_none
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:114,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:115,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:117,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:118,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:118,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:121,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:123,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:125,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:126,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:126,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:131,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:141,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:148,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:149,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:149,1
    - Dst: rsp_get_dmtf_supported_secure_spdm_version_list
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:153,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:160,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:162,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:163,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:163,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:169,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:169,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:172,1
    - Dst: SpdmOpaqueStruct::from_sm_version_sel_opaque
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:178,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:186,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:192,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:193,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:193,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:198,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:200,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:201,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:201,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:207,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:209,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:210,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:210,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:214,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:219,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:221,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:222,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:222,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:226,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:228,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:230,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:231,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:231,1
    - Dst: set_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:235,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:244,1
    - Dst: to_kem
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:245,1
    - Dst: crypto::kem_encap::new_key
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:247,1
    - Dst: Option::is_none
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:248,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:249,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:250,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:250,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:250,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:252,1
    - Dst: Option::encap_key
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:255,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:258,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:259,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:259,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:259,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:262,1
    - Dst: SpdmRspExchangeStruct::from_kem
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:263,1
    - Dst: crypto::dhe::generate_key_pair
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:267,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:271,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:272,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:272,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:272,1
    - Dst: to_dhe
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:274,1
    - Dst: compute_final_key
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:276,1
    - Dst: SpdmRspExchangeStruct::from_dhe
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:277,1
    - Dst: Option::is_none
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:283,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:284,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:285,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:285,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:285,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:287,1
    - Dst: get_next_half_session_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:290,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:291,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:292,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:294,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:295,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:295,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:298,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:307,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:309,1
    - Dst: get_sequence_number_count
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:310,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:313,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:315,1
    - Dst: get_max_random_count
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:316,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:320,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:334,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:336,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:337,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:337,1
    - Dst: set_peer_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:346,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::empty
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:351,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:357,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:359,1
    - Dst: get_certchain_hash_local
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:366,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:371,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:372,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:374,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:375,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:375,1
    - Dst: get_next_avaiable_session
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:379,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:380,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:382,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:384,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:385,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:385,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:389,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:391,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:392,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:392,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:393,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:394,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:395,1
    - Dst: set_transport_param
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:396,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:397,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:397,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:401,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:402,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:403,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:403,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:403,1
    - Dst: crypto::rand::get_random
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:410,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:411,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:412,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:413,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:413,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:413,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:416,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:421,1
    - Dst: SpdmMessagePayload::SpdmKeyExchangeResponse
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:436,1
    - Dst: get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:446,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:450,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:451,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:456,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:457,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:458,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:460,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:461,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:461,1
    - Dst: get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:466,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:467,1
    - Dst: '&''a mut Writer::used'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:469,1
    - Dst: '&''a mut Writer::used'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:471,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:474,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:476,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:474,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:479,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:480,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:480,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:480,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:482,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:484,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:482,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:487,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:489,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:490,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:490,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:494,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:497,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:499,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:500,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:500,1
    - Dst: ResponderContext::generate_key_exchange_rsp_signature
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:504,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:505,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:506,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:507,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:507,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:507,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:509,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:511,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:513,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:511,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:516,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:518,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:519,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:519,1
    - Dst: '&''a mut Writer::mut_used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:524,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:524,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:525,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:528,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:531,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:533,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:534,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:534,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:539,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:540,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:541,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:542,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:542,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:542,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:544,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:547,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:550,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:552,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:553,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:553,1
    - Dst: set_th1
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:556,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:556,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:557,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:558,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:559,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:559,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:559,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:564,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:567,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:569,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:570,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:570,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:575,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:576,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:577,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:578,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:578,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:578,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:580,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:582,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:585,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:587,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:588,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:588,1
    - Dst: generate_hmac_with_response_finished_key
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:592,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:592,1
    - Dst: Option::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:593,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:594,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:595,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:596,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:596,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:596,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:598,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:601,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:603,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:601,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:606,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:609,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:611,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:612,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:612,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:615,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:616,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:618,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:619,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:619,1
    - Dst: '&''a mut Writer::mut_used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:624,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:624,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:625,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:629,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:632,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:634,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:635,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:635,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:641,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:646,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:648,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:649,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:649,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:654,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:657,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:659,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:662,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:662,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:662,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 1061
    argCount: 3
    argNames:
    - bytes
    - writer
    - target_session_id
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    - '&mut Option<u32>'
    constantsTouched: []
    func_position:
      end: 663
      start: 48
    functionDepth: 11
    functionLinenumber: 48
    functionLinenumberEnd: 663
    functionName: ResponderContext::write_spdm_key_exchange_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs
    functionUses: 1
    functionsReached:
    - crypto::rand::get_random
    - contains
    - get_connection_state
    - is_none
    - set_use_psk
    - SpdmKeyExchangeMutAuthAttributes::empty
    - Option::is_none
    - Option::is_err
    - copy_from_slice
    - get_sequence_number_count
    - Box::new
    - Result::used
    - iter
    - get_next_avaiable_session
    - crypto::hash::hash_all
    - Err
    - Reader::init
    - Option::unwrap
    - set_crypto_param
    - get_immutable_session_via_id
    - SpdmKeyExchangeRequestPayload::spdm_read
    - crypto::dhe::generate_key_pair
    - flatten
    - append_message_k
    - set_transport_param
    - SpdmRspExchangeStruct::from_kem
    - get_certchain_hash_local
    - get_session_via_id
    - clone
    - get_hash_size
    - SpdmKemAlgo::empty
    - SpdmOpaqueStruct::from_sm_version_sel_opaque
    - SpdmResult::unwrap
    - SpdmDigestStruct::default
    - get_asym_sig_size
    - to_dhe
    - ResponderContext::generate_key_exchange_rsp_signature
    - secret::measurement::generate_measurement_summary_hash
    - reset_buffer_via_request_code
    - Some
    - get_next_half_session_id
    - '&''a mut Writer::used'
    - set_mut_auth_requested
    - set_shared_secret
    - generate_hmac_with_response_finished_key
    - Option::as_ref
    - '&''a mut Writer::used_slice'
    - teardown
    - SpdmMessagePayload::SpdmKeyExchangeResponse
    - Features::is_err
    - lock
    - get_u8
    - Option::encap_key
    - generate_handshake_secret
    - deref_mut
    - SpdmRspExchangeStruct::from_dhe
    - set_local_used_cert_chain_slot_id
    - SecuredMessageVersion::try_from
    - as_ref
    - rsp_get_dmtf_supported_secure_spdm_version_list
    - SpdmResult::as_ref
    - calc_rsp_transcript_hash
    - setup
    - SpdmOpaqueStruct::default
    - SpdmResult::spdm_encode
    - unwrap
    - to_kem
    - set_peer_used_cert_chain_slot_id
    - SpdmMessageHeader::read
    - get_max_random_count
    - SpdmResult::is_err
    - crypto::kem_encap::new_key
    - set_th1
    - set_last_session_id
    - Ok
    - compute_final_key
    - is_err
    - ResponderContext::write_spdm_error
    - '&''a mut Writer::mut_used_slice'
    - set_session_state
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_key_exchange_response<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,target_session_id: &mut Option<u32>,) -> (SpdmResult, Option<&''a
      [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:713,1
    - Dst: calc_rsp_transcript_data
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:720,1
    - Dst: bool::reset_message
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:728,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:729,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:730,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:729,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:732,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:732,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:735,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:735,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:738,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:739,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:738,1
    - Dst: crate::secret::spdm_asym_sign
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:743,1
    - Dst: bool::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:748,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs:743,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 69
    argCount: 2
    argNames:
    - _slot_id
    - session
    argTypes:
    - u8
    - '&SpdmSession'
    constantsTouched: []
    func_position:
      end: 751
      start: 708
    functionDepth: 11
    functionLinenumber: 708
    functionLinenumberEnd: 751
    functionName: ResponderContext::generate_key_exchange_rsp_signature
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs
    functionUses: 1
    functionsReached:
    - get_signing_prefix_context
    - as_ref
    - bool::append_message
    - bool::reset_message
    - Option::ok_or
    - bool::as_ref
    - calc_rsp_transcript_hash
    - crate::secret::spdm_asym_sign
    - calc_rsp_transcript_data
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn generate_key_exchange_rsp_signature(&self,_slot_id: u8,session:
      &SpdmSession,) -> SpdmResult<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_heartbeat_response
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 12
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: ResponderContext::handle_spdm_heartbeat
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::write_spdm_heartbeat_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_heartbeat<''a>(&mut self,session_id: u32,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:28,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:29,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:32,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:34,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:35,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:35,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:39,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:41,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:42,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:42,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:46,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:48,1
    - Dst: SpdmHeartbeatRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:51,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:56,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:58,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:59,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:59,1
    - Dst: SpdmMessagePayload::SpdmHeartbeatResponse
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:70,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:72,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:73,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:74,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:76,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:77,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:77,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:81,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:81,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 87
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 82
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 82
    functionName: ResponderContext::write_spdm_heartbeat_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs
    functionUses: 1
    functionsReached:
    - SpdmMessagePayload::SpdmHeartbeatResponse
    - '&''a mut Writer::used_slice'
    - Some
    - Err
    - reset_buffer_via_request_code
    - SpdmHeartbeatRequestPayload::spdm_read
    - Features::is_err
    - Ok
    - SpdmMessageHeader::read
    - Reader::init
    - ResponderContext::write_spdm_error
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_heartbeat_response<''a>(&mut self,session_id: u32,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_algorithm
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 12
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: ResponderContext::handle_spdm_algorithm
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::write_spdm_algorithm
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_algorithm<''a>(&mut self,bytes: &[u8],writer: &''a
      mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:31,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:34,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:36,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:37,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:37,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:40,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:41,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:44,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:46,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:47,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:47,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:51,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:53,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:54,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:54,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:58,1
    - Dst: SpdmNegotiateAlgorithmsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:66,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:74,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:81,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:87,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:95,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:99,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:104,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:110,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:112,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:113,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:113,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:118,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:124,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:126,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:127,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:127,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:136,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:145,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:150,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:150,1
    - Dst: SimpleLogger::is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:157,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:161,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:167,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:168,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:168,1
    - Dst: SimpleLogger::is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:173,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:177,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:183,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:184,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:184,1
    - Dst: SimpleLogger::is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:189,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:193,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:199,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:200,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:200,1
    - Dst: SimpleLogger::is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:205,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:209,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:215,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:216,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:216,1
    - Dst: SimpleLogger::is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:223,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:230,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:236,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:237,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:237,1
    - Dst: SimpleLogger::is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:245,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:249,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:255,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:256,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:256,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:266,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:268,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:269,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:269,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:273,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:275,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:273,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:278,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:280,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:281,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:281,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:285,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:291,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:295,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:299,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:303,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:307,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:311,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:315,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:319,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:324,1
    - Dst: prioritize
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:328,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:333,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:334,1
    - Dst: SpdmBaseAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:337,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:339,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:342,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:343,1
    - Dst: SpdmReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:346,1
    - Dst: SpdmPqcReqAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:348,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:351,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:352,1
    - Dst: SpdmDheAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:355,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:357,1
    - Dst: construct_my_cert_chain
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:364,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:364,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:365,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:367,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:368,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:368,1
    - Dst: SpdmAlgoOtherParams::empty
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:374,1
    - Dst: insert
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:377,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:382,1
    - Dst: insert
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:388,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:390,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:395,1
    - Dst: insert
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:401,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:409,1
    - Dst: SpdmAlgStruct::default
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:409,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:410,1
    - Dst: SpdmAlg::SpdmAlgoDhe
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:413,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:416,1
    - Dst: SpdmAlg::SpdmAlgoAead
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:419,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:422,1
    - Dst: SpdmAlg::SpdmAlgoReqAsym
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:425,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:428,1
    - Dst: SpdmAlg::SpdmAlgoKeySchedule
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:431,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:435,1
    - Dst: SpdmAlg::SpdmAlgoPqcReqAsym
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:438,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:441,1
    - Dst: SpdmAlg::SpdmAlgoKem
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:444,1
    - Dst: SpdmMessagePayload::SpdmAlgorithmsResponse
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:454,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:469,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:470,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:471,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:473,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:474,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:474,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:477,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:477,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:477,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:478,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:480,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:481,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:481,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:485,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:485,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs:485,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 857
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 486
      start: 26
    functionDepth: 11
    functionLinenumber: 26
    functionLinenumberEnd: 486
    functionName: ResponderContext::write_spdm_algorithm
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs
    functionUses: 1
    functionsReached:
    - contains
    - '&''a mut Writer::used_slice'
    - get_connection_state
    - SpdmAlg::SpdmAlgoPqcReqAsym
    - Features::is_err
    - SpdmKemAlgo::empty
    - SpdmMessageHeader::read
    - append_message_a
    - Result::used
    - SpdmBaseAsymAlgo::empty
    - take
    - SpdmMessagePayload::SpdmAlgorithmsResponse
    - is_valid
    - SpdmDheAlgo::empty
    - SpdmAlgoOtherParams::empty
    - gen_array_clone
    - iter
    - prioritize
    - SpdmAlgStruct::default
    - SimpleLogger::is_valid
    - SpdmMelSpecification::empty
    - SpdmReqAsymAlgo::empty
    - reset_buffer_via_request_code
    - Some
    - Err
    - Ok
    - Reader::init
    - SpdmAlg::SpdmAlgoReqAsym
    - SpdmPqcAsymAlgo::empty
    - SpdmAlg::SpdmAlgoAead
    - is_err
    - SpdmAlg::SpdmAlgoKeySchedule
    - SpdmAlg::SpdmAlgoKem
    - SpdmAlg::SpdmAlgoDhe
    - SpdmPqcReqAsymAlgo::empty
    - insert
    - SpdmNegotiateAlgorithmsRequestPayload::spdm_read
    - ResponderContext::write_spdm_error
    - construct_my_cert_chain
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_algorithm<''a>(&mut self,bytes: &[u8],writer: &''a
      mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_vendor_defined_response
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 12
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: ResponderContext::handle_spdm_vendor_defined_request
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs
    functionUses: 2
    functionsReached:
    - ResponderContext::write_spdm_vendor_defined_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_vendor_defined_request<''a>(&mut self,session_id:
      Option<u32>,bytes: &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a
      [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:28,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:29,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:32,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:34,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:35,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:35,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:39,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:41,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:42,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:42,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:46,1
    - Dst: SpdmVendorDefinedRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:52,1
    - Dst: Option::is_none
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:53,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:54,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:56,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:57,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:57,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:60,1
    - Dst: ResponderContext::respond_to_vendor_defined_request
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:65,1
    - Dst: ResponderContext::respond_to_vendor_defined_request_ex
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:71,1
    - Dst: '&''a mut Writer::mut_left_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:74,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:79,1
    - Dst: SpdmMessagePayload::SpdmVendorDefinedResponse
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:85,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:94,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:95,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:96,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:98,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:99,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:99,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:103,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:103,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 104
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 104
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 104
    functionName: ResponderContext::write_spdm_vendor_defined_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::respond_to_vendor_defined_request_ex
    - '&''a mut Writer::used_slice'
    - Some
    - Err
    - reset_buffer_via_request_code
    - ResponderContext::respond_to_vendor_defined_request
    - SpdmResult::unwrap
    - Option::is_none
    - Features::is_err
    - Ok
    - SpdmMessageHeader::read
    - Reader::init
    - Option::unwrap
    - SpdmMessagePayload::SpdmVendorDefinedResponse
    - ResponderContext::write_spdm_error
    - SpdmResult::spdm_encode
    - '&''a mut Writer::mut_left_slice'
    - SpdmVendorDefinedRequestPayload::spdm_read
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_vendor_defined_response<''a>(&mut self,session_id:
      Option<u32>,bytes: &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a
      [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verdor_defined_func
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - req
    - vendor_id_struct
    - verdor_defined_func
    argTypes:
    - '&VendorDefinedReqPayloadStruct'
    - '&VendorIDStruct'
    - F
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: ResponderContext::respond_to_vendor_defined_request
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs
    functionUses: 1
    functionsReached:
    - verdor_defined_func
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn respond_to_vendor_defined_request<F>(&mut self,req: &VendorDefinedReqPayloadStruct,vendor_id_struct:
      &VendorIDStruct,verdor_defined_func: F,) -> SpdmResult<VendorDefinedRspPayloadStruct>whereF:
      Fn(&VendorIDStruct,&VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verdor_defined_func_ex
      Src: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - session_id
    - req_bytes
    - rsp_bytes
    - verdor_defined_func_ex
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut [u8]'
    - F
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: ResponderContext::respond_to_vendor_defined_request_ex
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs
    functionUses: 1
    functionsReached:
    - verdor_defined_func_ex
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn respond_to_vendor_defined_request_ex<''a, F>(&mut self,session_id:
      Option<u32>,req_bytes: &[u8],rsp_bytes: &''a mut [u8],verdor_defined_func_ex:
      F,) -> (SpdmResult, Option<&''a [u8]>)whereF: Fn(&mut ResponderContext,Option<u32>,&[u8],&''a
      mut [u8],) -> (SpdmResult, Option<&''a [u8]>),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_psk_exchange_response
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:36,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:37,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:39,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 12
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: ResponderContext::handle_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs
    functionUses: 1
    functionsReached:
    - teardown
    - get_session_via_id
    - ResponderContext::write_spdm_psk_exchange_response
    - is_err
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_psk_exchange<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:54,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:54,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:55,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:57,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:59,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:60,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:60,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:63,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:64,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:67,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:69,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:70,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:70,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:74,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:76,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:77,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:77,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:81,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:83,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:84,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:84,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:88,1
    - Dst: SpdmPskExchangeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:92,1
    - Dst: SpdmOpaqueStruct::default
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:94,1
    - Dst: secret::measurement::generate_measurement_summary_hash
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:108,1
    - Dst: Option::is_none
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:115,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:116,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:117,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:117,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:117,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:119,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:121,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:122,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:122,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:122,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:126,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:129,1
    - Dst: rsp_get_dmtf_supported_secure_spdm_version_list
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:131,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:138,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:140,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:141,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:141,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:148,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:148,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:151,1
    - Dst: SpdmOpaqueStruct::from_sm_version_sel_opaque
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:157,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:165,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:171,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:172,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:172,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:177,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:179,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:180,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:180,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:186,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:188,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:189,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:189,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:193,1
    - Dst: crypto::rand::get_random
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:205,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:206,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:207,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:208,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:208,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:208,1
    - Dst: get_next_half_session_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:212,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:213,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:214,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:216,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:217,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:217,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:220,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:229,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:231,1
    - Dst: get_sequence_number_count
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:232,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:235,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:237,1
    - Dst: get_max_random_count
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:238,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:242,1
    - Dst: get_next_avaiable_session
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:244,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:245,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:247,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:249,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:250,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:250,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:254,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:256,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:257,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:258,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:258,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:259,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:261,1
    - Dst: set_transport_param
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:262,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:264,1
    - Dst: SpdmMessagePayload::SpdmPskExchangeResponse
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:277,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:287,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:288,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:293,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:294,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:295,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:297,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:298,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:298,1
    - Dst: '&''a mut Writer::used'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:301,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:303,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:306,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:308,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:306,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:311,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:313,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:314,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:314,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:317,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:319,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:317,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:322,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:324,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:325,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:325,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:329,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:332,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:334,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:335,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:335,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:340,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:341,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:342,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:343,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:343,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:343,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:345,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:348,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:351,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:353,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:354,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:354,1
    - Dst: set_th1
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:357,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:357,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:358,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:359,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:360,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:360,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:360,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:363,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:366,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:368,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:369,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:369,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:373,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:374,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:375,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:376,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:376,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:376,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:378,1
    - Dst: generate_hmac_with_response_finished_key
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:380,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:380,1
    - Dst: Option::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:381,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:382,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:385,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:387,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:388,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:388,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:391,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:392,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:393,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:393,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:393,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:395,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:398,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:400,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:398,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:403,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:406,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:408,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:409,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:409,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:412,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:413,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:415,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:416,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:416,1
    - Dst: '&''a mut Writer::mut_used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:421,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:421,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:421,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:423,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:426,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:428,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:429,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:429,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:432,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:434,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:437,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:439,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:440,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:440,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:446,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:447,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:448,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:449,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:449,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:449,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:451,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:455,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:458,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:460,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:461,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:461,1
    - Dst: set_th2
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:464,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:464,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:465,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:465,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:469,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:470,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:470,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:470,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:472,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:478,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:483,1
    - Dst: watchdog::start_watchdog
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:489,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:493,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:496,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:498,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:499,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:499,1
    - Dst: SecuredMessageVersion::try_from
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:504,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:509,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:511,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:512,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:512,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:517,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:517,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs:517,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 825
    argCount: 3
    argNames:
    - bytes
    - writer
    - target_session_id
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    - '&mut Option<u32>'
    constantsTouched: []
    func_position:
      end: 518
      start: 48
    functionDepth: 11
    functionLinenumber: 48
    functionLinenumberEnd: 518
    functionName: ResponderContext::write_spdm_psk_exchange_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs
    functionUses: 1
    functionsReached:
    - crypto::rand::get_random
    - Option::as_ref
    - contains
    - '&''a mut Writer::used_slice'
    - get_connection_state
    - unwrap
    - is_none
    - set_use_psk
    - Option::is_err
    - Option::is_none
    - clone
    - Features::is_err
    - get_hash_size
    - teardown
    - SpdmOpaqueStruct::from_sm_version_sel_opaque
    - get_sequence_number_count
    - copy_from_slice
    - Box::new
    - SpdmMessageHeader::read
    - lock
    - SpdmResult::unwrap
    - get_max_random_count
    - '&''a mut Writer::mut_used_slice'
    - get_u8
    - Result::used
    - SpdmDigestStruct::default
    - SpdmResult::is_err
    - generate_handshake_secret
    - generate_data_secret
    - iter
    - secret::measurement::generate_measurement_summary_hash
    - set_th1
    - get_next_avaiable_session
    - deref_mut
    - reset_buffer_via_request_code
    - Some
    - Err
    - set_th2
    - SpdmMessagePayload::SpdmPskExchangeResponse
    - get_next_half_session_id
    - Ok
    - watchdog::start_watchdog
    - Reader::init
    - Option::unwrap
    - set_crypto_param
    - '&''a mut Writer::used'
    - get_immutable_session_via_id
    - setup
    - SecuredMessageVersion::try_from
    - flatten
    - append_message_k
    - set_transport_param
    - is_err
    - rsp_get_dmtf_supported_secure_spdm_version_list
    - get_session_via_id
    - SpdmResult::as_ref
    - calc_rsp_transcript_hash
    - ResponderContext::write_spdm_error
    - SpdmPskExchangeRequestPayload::spdm_read
    - generate_hmac_with_response_finished_key
    - SpdmOpaqueStruct::default
    - SpdmResult::spdm_encode
    - set_session_state
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_psk_exchange_response<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,target_session_id: &mut Option<u32>,) -> (SpdmResult, Option<&''a
      [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_key_update_response
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 12
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: ResponderContext::handle_spdm_key_update
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::write_spdm_key_update_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_key_update<''a>(&mut self,session_id: u32,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:28,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:29,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:32,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:34,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:35,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:35,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:39,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:41,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:42,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:42,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:46,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:48,1
    - Dst: SpdmKeyUpdateRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:51,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:56,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:58,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:59,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:59,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:62,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:65,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:68,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:70,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:71,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:71,1
    - Dst: create_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:76,1
    - Dst: create_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:79,1
    - Dst: activate_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:80,1
    - Dst: activate_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:83,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:87,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:89,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:90,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:90,1
    - Dst: SpdmMessagePayload::SpdmKeyUpdateResponse
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:102,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:107,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:108,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:109,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:111,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:112,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:112,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:116,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:116,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 131
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 117
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 117
    functionName: ResponderContext::write_spdm_key_update_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs
    functionUses: 1
    functionsReached:
    - SpdmKeyUpdateRequestPayload::spdm_read
    - '&''a mut Writer::used_slice'
    - Some
    - Err
    - reset_buffer_via_request_code
    - activate_data_secret_update
    - Features::is_err
    - Ok
    - SpdmMessageHeader::read
    - get_session_via_id
    - Reader::init
    - Option::unwrap
    - create_data_secret_update
    - ResponderContext::write_spdm_error
    - SpdmMessagePayload::SpdmKeyUpdateResponse
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_key_update_response<''a>(&mut self,session_id: u32,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_certificate_response
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bytes
    - session_id
    - writer
    argTypes:
    - '&[u8]'
    - Option<u32>
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 12
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: ResponderContext::handle_spdm_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs
    functionUses: 2
    functionsReached:
    - ResponderContext::write_spdm_certificate_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_certificate<''a>(&mut self,bytes: &[u8],session_id:
      Option<u32>,writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:31,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:31,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:32,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:34,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:36,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:37,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:37,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:40,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:41,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:44,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:46,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:47,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:47,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:51,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:53,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:54,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:54,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:58,1
    - Dst: SpdmGetCertificateRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:64,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:68,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:70,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:71,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:71,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:76,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:78,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:79,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:79,1
    - Dst: append_message_b
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:85,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:87,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:85,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:90,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:92,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:93,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:93,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:100,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:103,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:105,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:106,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:106,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:109,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:110,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:112,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:113,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:113,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:117,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:117,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:128,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:130,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:131,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:131,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:145,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:145,1
    - Dst: SpdmMessagePayload::SpdmCertificateResponse
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:153,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:160,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:161,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:162,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:164,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:165,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:165,1
    - Dst: append_message_b
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:171,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:171,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:171,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:172,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:174,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:175,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:175,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:182,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:182,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs:182,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 265
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 183
      start: 25
    functionDepth: 11
    functionLinenumber: 25
    functionLinenumberEnd: 183
    functionName: ResponderContext::write_spdm_certificate_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs
    functionUses: 1
    functionsReached:
    - '&''a mut Writer::used_slice'
    - SpdmMessagePayload::SpdmCertificateResponse
    - get_connection_state
    - unwrap
    - is_none
    - copy_from_slice
    - Features::is_err
    - SpdmMessageHeader::read
    - get_u8
    - Result::used
    - SpdmGetCertificateRequestPayload::spdm_read
    - reset_buffer_via_request_code
    - Some
    - Err
    - Ok
    - Reader::init
    - append_message_b
    - as_ref
    - is_err
    - ResponderContext::write_spdm_error
    - SpdmResult::spdm_encode
    - len
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn write_spdm_certificate_response<''a>(&mut self,session_id: Option<u32>,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:31,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:32,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:32,1
    - Dst: SpdmMessagePayload::SpdmGetCertificateRequest
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:40,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:42,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:42,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:55,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 1
    argNames:
    - encap_request
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 58
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 58
    functionName: ResponderContext::encode_encap_requst_get_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - Some
    - unwrap
    - is_none
    - Ok
    - SpdmCertChainBuffer::default
    - SpdmMessagePayload::SpdmGetCertificateRequest
    - spdm_encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_encap_requst_get_certificate(&mut self,encap_request:
      &mut Writer,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:61,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:63,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:66,1
    - Dst: SpdmCertificateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:70,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:77,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:77,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:89,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:96,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:100,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:114,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:117,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:131,1
    - Dst: SpdmMessageGeneralPayload::read
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:135,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:135,1
    - Dst: ResponderContext::handle_encap_error_response_main
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:137,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:139,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:142,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:146,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:150,1
    - Dst: ResponderContext::verify_spdm_certificate_chain
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:153,1
    - Dst: SpdmResult::map
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:153,1
    - Dst: '[O; 3]::is_ok'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:162,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 197
    argCount: 1
    argNames:
    - encap_response
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 167
      start: 60
    functionDepth: 11
    functionLinenumber: 60
    functionLinenumberEnd: 167
    functionName: ResponderContext::handle_encap_response_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs
    functionUses: 1
    functionsReached:
    - SpdmCertificateResponsePayload::spdm_read
    - SpdmMessageGeneralPayload::read
    - Err
    - Option::ok_or
    - ResponderContext::handle_encap_error_response_main
    - SpdmResult::map
    - copy_from_slice
    - ok_or
    - Ok
    - ResponderContext::verify_spdm_certificate_chain
    - as_mut
    - '[O; 3]::is_ok'
    - Reader::init
    - SpdmMessageHeader::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_encap_response_certificate(&mut self, encap_response:
      &[u8]) -> SpdmResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:173,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:175,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:178,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:178,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:184,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:185,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:193,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:196,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:198,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:199,1
    - Dst: crypto::cert_operation::verify_cert_chain
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:208,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:208,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:214,1
    - Dst: crypto::cert_operation::get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:221,1
    - Dst: is_root_certificate
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:226,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:226,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:228,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:232,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:235,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:238,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:248,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:248,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:256,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:268,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs:274,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 206
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 169
    functionDepth: 10
    functionLinenumber: 169
    functionLinenumberEnd: 275
    functionName: ResponderContext::verify_spdm_certificate_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs
    functionUses: 1
    functionsReached:
    - crypto::hash::hash_all
    - flatten
    - as_ref
    - Err
    - is_none
    - crypto::cert_operation::verify_cert_chain
    - SpdmResult::is_err
    - get_hash_size
    - ok_or
    - copy_from_slice
    - Ok
    - iter
    - crypto::cert_operation::get_cert_from_cert_chain
    - is_root_certificate
    - SpdmResult::is_ok
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: pub fn verify_spdm_certificate_chain(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:24,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:25,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:27,1
    - Dst: ResponderContext::write_spdm_finish_response
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:30,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:31,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:32,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 38
      start: 16
    functionDepth: 12
    functionLinenumber: 16
    functionLinenumberEnd: 38
    functionName: ResponderContext::handle_spdm_finish
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs
    functionUses: 2
    functionsReached:
    - is_err
    - teardown
    - Ok
    - get_session_via_id
    - ResponderContext::write_spdm_finish_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_finish<''a>(&mut self,session_id: u32,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:47,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:48,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:51,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:53,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:54,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:54,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:58,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:60,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:61,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:61,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:65,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:67,1
    - Dst: SpdmFinishRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:70,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:75,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:77,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:78,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:78,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:81,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:90,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:90,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:95,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:97,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:98,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:98,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:103,1
    - Dst: get_mut_auth_requested
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:104,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:106,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:108,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:109,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:109,1
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:115,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:116,1
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:117,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:118,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:121,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:123,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:124,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:124,1
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:128,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:131,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:134,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:136,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:137,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:137,1
    - Dst: ResponderContext::verify_finish_req_signature
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:141,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:141,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:146,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:147,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:147,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:147,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:151,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:153,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:151,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:156,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:158,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:159,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:159,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:165,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:168,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:171,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:173,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:174,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:174,1
    - Dst: get_use_psk
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:178,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:179,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:181,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:182,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:182,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:187,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:190,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:192,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:193,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:193,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:197,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:200,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:201,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:202,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:202,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:202,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:204,1
    - Dst: '&[u8]::unwrap'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:204,1
    - Dst: verify_hmac_with_request_finished_key
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:206,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:208,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:206,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:214,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:215,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:215,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:215,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:220,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:222,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:220,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:226,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:228,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:229,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:229,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:234,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:239,1
    - Dst: SpdmMessagePayload::SpdmFinishResponse
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:252,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:254,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:255,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:264,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:265,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:266,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:268,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:269,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:269,1
    - Dst: '&''a mut Writer::used'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:272,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:278,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:280,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:278,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:284,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:286,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:287,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:287,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:292,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:295,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:297,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:298,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:298,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:302,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:305,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:306,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:307,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:307,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:307,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:309,1
    - Dst: generate_hmac_with_response_finished_key
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:311,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:311,1
    - Dst: Option::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:312,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:313,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:314,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:314,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:314,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:316,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:318,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:320,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:318,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:323,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:325,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:326,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:326,1
    - Dst: '&''a mut Writer::mut_used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:331,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:331,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:331,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:332,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:334,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:332,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:338,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:340,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:341,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:341,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:346,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:349,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:351,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:352,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:352,1
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:356,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:360,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:361,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:362,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:362,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:362,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:364,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:367,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:370,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:372,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:373,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:373,1
    - Dst: set_th2
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:376,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:376,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:377,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:378,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:379,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:379,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:379,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:381,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:381,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:381,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 557
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - u32
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 383
      start: 41
    functionDepth: 11
    functionLinenumber: 41
    functionLinenumberEnd: 383
    functionName: ResponderContext::write_spdm_finish_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs
    functionUses: 1
    functionsReached:
    - Option::as_ref
    - contains
    - '&''a mut Writer::used_slice'
    - unwrap
    - is_empty
    - generate_data_secret
    - '&[u8]::unwrap'
    - Option::is_err
    - get_hash_size
    - Features::is_err
    - copy_from_slice
    - clone
    - ResponderContext::verify_finish_req_signature
    - Box::new
    - SpdmMessageHeader::read
    - SpdmResult::unwrap
    - '&''a mut Writer::mut_used_slice'
    - SpdmResult::is_err
    - SpdmFinishRequestPayload::spdm_read
    - append_message_f
    - get_mut_auth_requested
    - reset_buffer_via_request_code
    - Some
    - Err
    - set_th2
    - Ok
    - Reader::init
    - Option::unwrap
    - '&''a mut Writer::used'
    - get_use_psk
    - get_immutable_session_via_id
    - SpdmMessagePayload::SpdmFinishResponse
    - as_ref
    - is_err
    - verify_hmac_with_request_finished_key
    - get_session_via_id
    - SpdmResult::as_ref
    - calc_rsp_transcript_hash
    - ResponderContext::write_spdm_error
    - generate_hmac_with_response_finished_key
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_finish_response<''a>(&mut self,session_id: u32,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calc_rsp_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:451,1
    - Dst: get_peer_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:453,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:455,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:455,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:463,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:463,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:466,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:467,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:467,1
    - Dst: ManagedBuffer12Sign::default
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:472,1
    - Dst: Self::reset_message
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:474,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:475,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:476,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:475,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:478,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:478,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:481,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:481,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:484,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:485,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:484,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:489,1
    - Dst: SpdmDer::SpdmDerPubKeyRfc7250
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:493,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:495,1
    - Dst: crypto::spdm_asym_verify
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:498,1
    - Dst: to_base
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:500,1
    - Dst: to_base
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:501,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs:503,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 123
    argCount: 2
    argNames:
    - signature
    - session
    argTypes:
    - '&SpdmSignatureStruct'
    - '&SpdmSession'
    constantsTouched: []
    func_position:
      end: 508
      start: 446
    functionDepth: 11
    functionLinenumber: 446
    functionLinenumberEnd: 508
    functionName: ResponderContext::verify_finish_req_signature
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs
    functionUses: 1
    functionsReached:
    - get_signing_prefix_context
    - crypto::spdm_asym_verify
    - SpdmDer::SpdmDerCertChain
    - as_ref
    - Err
    - to_base
    - Self::append_message
    - Option::ok_or
    - get_hash_size
    - ok_or
    - SpdmResult::as_ref
    - get_peer_used_cert_chain_slot_id
    - calc_rsp_transcript_hash
    - ManagedBuffer12Sign::default
    - Self::reset_message
    - Self::as_ref
    - SpdmDer::SpdmDerPubKeyRfc7250
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn verify_finish_req_signature(&self,signature: &SpdmSignatureStruct,session:
      &SpdmSession,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_measurement_response
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:35,1
    - Dst: reset_message_m
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 12
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: ResponderContext::handle_spdm_measurement
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs
    functionUses: 2
    functionsReached:
    - ResponderContext::write_spdm_measurement_response
    - reset_message_m
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_measurement<''a>(&mut self,session_id: Option<u32>,bytes:
      &[u8],writer: &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:52,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:52,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:53,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:55,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:57,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:58,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:58,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:61,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:62,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:65,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:67,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:68,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:68,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:72,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:74,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:75,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:75,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:79,1
    - Dst: SpdmGetMeasurementsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:85,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:90,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:92,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:93,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:93,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:96,1
    - Dst: get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:100,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:102,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:109,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:111,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:112,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:112,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:115,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:116,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:118,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:119,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:119,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:126,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:128,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:129,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:129,1
    - Dst: append_message_m
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:141,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:143,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:141,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:146,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:148,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:149,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:149,1
    - Dst: secret::measurement::measurement_collection
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:153,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:157,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:161,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:163,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:164,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:164,1
    - Dst: secret::measurement::measurement_collection
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:171,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:175,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:179,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:181,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:182,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:182,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:189,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:191,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:192,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:192,1
    - Dst: secret::measurement::measurement_collection
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:195,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:203,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:205,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:206,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:206,1
    - Dst: SpdmMeasurementRecordStructure::default
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:210,1
    - Dst: crypto::rand::get_random
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:221,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:222,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:223,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:224,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:224,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:224,1
    - Dst: SpdmMessagePayload::SpdmMeasurementsResponse
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:234,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:255,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:256,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:257,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:259,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:260,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:260,1
    - Dst: '&''a mut Writer<''_>::used'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:263,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:266,1
    - Dst: get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:270,1
    - Dst: append_message_m
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:273,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:275,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:273,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:278,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:280,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:281,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:281,1
    - Dst: ResponderContext::generate_measurement_signature
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:285,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:286,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:287,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:289,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:290,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:290,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:293,1
    - Dst: '&''a mut Writer<''_>::mut_used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:295,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:295,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:296,1
    - Dst: reset_message_m
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:298,1
    - Dst: append_message_m
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:299,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:301,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:299,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:304,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:306,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:307,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:307,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:311,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:311,1
    - Dst: '&''a mut Writer<''_>::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:311,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 387
    argCount: 3
    argNames:
    - session_id
    - bytes
    - writer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&''a mut Writer<''_>'
    constantsTouched: []
    func_position:
      end: 312
      start: 46
    functionDepth: 11
    functionLinenumber: 46
    functionLinenumberEnd: 312
    functionName: ResponderContext::write_spdm_measurement_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs
    functionUses: 1
    functionsReached:
    - crypto::rand::get_random
    - contains
    - get_connection_state
    - ResponderContext::generate_measurement_signature
    - is_none
    - Features::is_err
    - copy_from_slice
    - reset_message_m
    - SpdmMessageHeader::read
    - SpdmResult::unwrap
    - get_u8
    - Result::used
    - SpdmResult::is_err
    - get_asym_sig_size
    - SpdmGetMeasurementsRequestPayload::spdm_read
    - SpdmMessagePayload::SpdmMeasurementsResponse
    - '&''a mut Writer<''_>::used'
    - '&''a mut Writer<''_>::mut_used_slice'
    - reset_buffer_via_request_code
    - Some
    - Err
    - Ok
    - Reader::init
    - Option::unwrap
    - SpdmMeasurementRecordStructure::default
    - secret::measurement::measurement_collection
    - is_err
    - '&''a mut Writer<''_>::used_slice'
    - SpdmResult::as_ref
    - ResponderContext::write_spdm_error
    - append_message_m
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_measurement_response<''a>(&mut self,session_id:
      Option<u32>,bytes: &[u8],writer: &''a mut Writer<''_>,) -> (SpdmResult, Option<&''a
      [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferL1L2::default
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:379,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:381,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:382,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:383,1
    - Dst: Option::map_or_else
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:382,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:384,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:384,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:389,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:390,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:389,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:394,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:398,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:400,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:401,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:400,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:407,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:409,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:407,1
    - Dst: Self::reset_message
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:416,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:417,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:418,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:417,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:420,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:420,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:423,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:423,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:426,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:427,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:426,1
    - Dst: crate::secret::spdm_asym_sign
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:431,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:436,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs:431,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 122
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - Option<u32>
    constantsTouched: []
    func_position:
      end: 439
      start: 375
    functionDepth: 10
    functionLinenumber: 375
    functionLinenumberEnd: 439
    functionName: ResponderContext::generate_measurement_signature
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs
    functionUses: 1
    functionsReached:
    - get_signing_prefix_context
    - crypto::hash::hash_all
    - as_ref
    - Err
    - Self::append_message
    - Option::ok_or
    - clone
    - Ok
    - ManagedBufferL1L2::default
    - SpdmResult::as_ref
    - Self::reset_message
    - crate::secret::spdm_asym_sign
    - get_immutable_session_via_id
    - Self::as_ref
    - Option::map_or_else
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn generate_measurement_signature(&self,session_id: Option<u32>,)
      -> SpdmResult<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::encap_check_version_cap_state
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:30,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:31,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:34,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:35,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:35,1
    - Dst: ResponderContext::write_encap_request_response
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 12
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: ResponderContext::handle_get_encapsulated_request
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs
    functionUses: 1
    functionsReached:
    - get_u8
    - '&''a mut Writer::used_slice'
    - Some
    - SpdmResult::is_err
    - ResponderContext::write_encap_request_response
    - ResponderContext::encap_check_version_cap_state
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_get_encapsulated_request<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:45,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:46,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:48,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:50,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:51,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:51,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:55,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:57,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:58,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:58,1
    - Dst: SpdmMessagePayload::SpdmEncapsulatedRequestPayload
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:67,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:74,1
    - Dst: Result::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:74,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:78,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:80,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:81,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:81,1
    - Dst: ResponderContext::encode_encap_request_get_digest
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:85,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:85,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:86,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:88,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:89,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:89,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:93,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:93,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 82
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 94
      start: 40
    functionDepth: 11
    functionLinenumber: 40
    functionLinenumberEnd: 94
    functionName: ResponderContext::write_encap_request_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs
    functionUses: 1
    functionsReached:
    - spdm_encode
    - SpdmMessagePayload::SpdmEncapsulatedRequestPayload
    - '&''a mut Writer::used_slice'
    - Some
    - Err
    - SpdmResult::is_err
    - Result::is_err
    - Ok
    - SpdmMessageHeader::read
    - Reader::init
    - ResponderContext::write_spdm_error
    - ResponderContext::encode_encap_request_get_digest
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn write_encap_request_response<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::encap_check_version_cap_state
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:101,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:102,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:105,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:105,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:105,1
    - Dst: ResponderContext::write_encap_response_ack_response
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 12
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: ResponderContext::handle_deliver_encapsulated_reponse
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs
    functionUses: 1
    functionsReached:
    - get_u8
    - '&''a mut Writer::used_slice'
    - Some
    - Err
    - ResponderContext::encap_check_version_cap_state
    - ResponderContext::write_encap_response_ack_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_deliver_encapsulated_reponse<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:116,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:117,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:119,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:121,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:122,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:122,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:126,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:128,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:129,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:129,1
    - Dst: SpdmDeliverEncapsulatedResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:134,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:138,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:140,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:141,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:141,1
    - Dst: ResponderContext::process_encapsulated_response
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:145,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:146,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:145,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:149,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:151,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:152,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:152,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:156,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:156,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 75
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 157
      start: 111
    functionDepth: 11
    functionLinenumber: 111
    functionLinenumberEnd: 157
    functionName: ResponderContext::write_encap_response_ack_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::process_encapsulated_response
    - Result::used
    - '&''a mut Writer::used_slice'
    - Some
    - Err
    - SpdmResult::is_err
    - Ok
    - SpdmMessageHeader::read
    - Reader::init
    - ResponderContext::write_spdm_error
    - SpdmDeliverEncapsulatedResponsePayload::spdm_read
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'fn write_encap_response_ack_response<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:165,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:170,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:173,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:178,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:184,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:189,1
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:192,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:192,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:193,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:195,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:196,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 2
    argNames:
    - request_response_code
    - writer
    argTypes:
    - u8
    - '&mut Writer<''_>'
    constantsTouched: []
    func_position:
      end: 200
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 200
    functionName: ResponderContext::encap_check_version_cap_state
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs
    functionUses: 2
    functionsReached:
    - get_u8
    - contains
    - Err
    - get_connection_state
    - Ok
    - ResponderContext::write_spdm_error
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn encap_check_version_cap_state(&mut self,request_response_code:
      u8,writer: &mut Writer<''_>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:208,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:209,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:211,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:215,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:222,1
    - Dst: ResponderContext::handle_encap_response_digest
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:232,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:234,1
    - Dst: ResponderContext::encode_encap_requst_get_certificate
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:235,1
    - Dst: ResponderContext::handle_encap_response_certificate
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:238,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:241,1
    - Dst: ResponderContext::encode_encap_requst_get_certificate
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:242,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:246,1
    - Dst: encode
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:247,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:247,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:253,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:260,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:261,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:263,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:268,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 88
    argCount: 3
    argNames:
    - encap_response_payload
    - encap_response
    - encap_response_ack
    argTypes:
    - '&SpdmDeliverEncapsulatedResponsePayload'
    - '&[u8]'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 270
      start: 202
    functionDepth: 11
    functionLinenumber: 202
    functionLinenumberEnd: 270
    functionName: ResponderContext::process_encapsulated_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs
    functionUses: 1
    functionsReached:
    - spdm_encode
    - ResponderContext::handle_encap_response_certificate
    - Err
    - encode
    - Ok
    - Reader::init
    - SpdmMessageHeader::read
    - ResponderContext::handle_encap_response_digest
    - map_err
    - ResponderContext::encode_encap_requst_get_certificate
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn process_encapsulated_response(&mut self,encap_response_payload:
      &SpdmDeliverEncapsulatedResponsePayload,encap_response: &[u8],encap_response_ack:
      &mut Writer,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:273,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:274,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - error_code
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: ResponderContext::handle_encap_error_response_main
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs
    functionUses: 1
    functionsReached:
    - get_u8
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_encap_error_response_main(&self, error_code: u8) ->
      SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResponderContext::write_spdm_challenge_response
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 12
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: ResponderContext::handle_spdm_challenge
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs
    functionUses: 1
    functionsReached:
    - ResponderContext::write_spdm_challenge_response
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn handle_spdm_challenge<''a>(&mut self,bytes: &[u8],writer: &''a
      mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_state
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:37,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:37,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:38,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:40,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:42,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:43,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:43,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:46,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:47,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:50,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:52,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:53,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:53,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:57,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:59,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:60,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:60,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:64,1
    - Dst: SpdmChallengeRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:68,1
    - Dst: secret::measurement::generate_measurement_summary_hash
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:79,1
    - Dst: Option::is_none
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:86,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:87,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:89,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:90,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:90,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:93,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:95,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:97,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:98,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:98,1
    - Dst: SpdmDigestStruct::default
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:103,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:107,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:109,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:110,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:110,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:114,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:117,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:119,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:120,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:120,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:123,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:124,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:126,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:127,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:127,1
    - Dst: append_message_c
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:131,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:133,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:131,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:136,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:138,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:139,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:139,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:143,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:143,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:146,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:148,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:153,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:154,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:154,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:154,1
    - Dst: crypto::rand::get_random
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:158,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:159,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:160,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:162,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:163,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:163,1
    - Dst: SpdmMessagePayload::SpdmChallengeAuthResponse
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:181,1
    - Dst: SpdmChallengeAuthAttribute::empty
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:185,1
    - Dst: get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:197,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:203,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:204,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:205,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:207,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:208,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:208,1
    - Dst: '&''a mut Writer::used'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:211,1
    - Dst: get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:214,1
    - Dst: append_message_c
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:217,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:219,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:217,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:222,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:224,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:225,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:225,1
    - Dst: ResponderContext::generate_challenge_auth_signature
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:229,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:230,1
    - Dst: ResponderContext::write_spdm_error
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:231,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:233,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:234,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:234,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:237,1
    - Dst: '&''a mut Writer::mut_used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:239,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:239,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:239,1
    - Dst: reset_message_b
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:241,1
    - Dst: reset_message_c
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:242,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:244,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:244,1
    - Dst: '&''a mut Writer::used_slice'
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:244,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 360
    argCount: 2
    argNames:
    - bytes
    - writer
    argTypes:
    - '&[u8]'
    - '&''a mut Writer'
    constantsTouched: []
    func_position:
      end: 245
      start: 32
    functionDepth: 11
    functionLinenumber: 32
    functionLinenumberEnd: 245
    functionName: ResponderContext::write_spdm_challenge_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs
    functionUses: 1
    functionsReached:
    - crypto::rand::get_random
    - '&''a mut Writer::used_slice'
    - get_connection_state
    - unwrap
    - is_none
    - append_message_c
    - Option::is_none
    - Features::is_err
    - copy_from_slice
    - SpdmMessageHeader::read
    - SpdmResult::unwrap
    - reset_message_b
    - '&''a mut Writer::mut_used_slice'
    - get_u8
    - Result::used
    - SpdmDigestStruct::default
    - SpdmResult::is_err
    - get_asym_sig_size
    - SpdmMessagePayload::SpdmChallengeAuthResponse
    - secret::measurement::generate_measurement_summary_hash
    - crypto::hash::hash_all
    - reset_buffer_via_request_code
    - Some
    - Err
    - Ok
    - SpdmChallengeAuthAttribute::empty
    - Reader::init
    - Option::unwrap
    - '&''a mut Writer::used'
    - ResponderContext::generate_challenge_auth_signature
    - as_ref
    - is_err
    - reset_message_c
    - SpdmChallengeRequestPayload::spdm_read
    - SpdmResult::as_ref
    - ResponderContext::write_spdm_error
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: (SpdmResult, Option
    signature: 'pub fn write_spdm_challenge_response<''a>(&mut self,bytes: &[u8],writer:
      &''a mut Writer,) -> (SpdmResult, Option<&''a [u8]>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferM1M2::default
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:293,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:294,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:295,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:294,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:297,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:298,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:297,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:300,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:301,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:300,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:305,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:307,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:305,1
    - Dst: Self::reset_message
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:313,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:314,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:315,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:314,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:317,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:317,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:320,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:320,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:323,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:324,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:323,1
    - Dst: crate::secret::spdm_asym_sign
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:328,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:333,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs:328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 292
    functionDepth: 10
    functionLinenumber: 292
    functionLinenumberEnd: 336
    functionName: ResponderContext::generate_challenge_auth_signature
    functionSourceFile: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs
    functionUses: 1
    functionsReached:
    - get_signing_prefix_context
    - crypto::hash::hash_all
    - as_ref
    - Self::append_message
    - Option::ok_or
    - ManagedBufferM1M2::default
    - Self::reset_message
    - crate::secret::spdm_asym_sign
    - Self::as_ref
    linkageType: ''
    returnType: SpdmResult
    signature: pub fn generate_challenge_auth_signature(&self) -> SpdmResult<SpdmSignatureStruct>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:37,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:40,1
    - Dst: get_next_half_session_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:43,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:45,1
    - Dst: set_peer_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:48,1
    - Dst: RequesterContext::encode_spdm_key_exchange
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:53,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:59,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:64,1
    - Dst: RequesterContext::handle_spdm_key_exchange_response
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:69,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:79,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:80,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:84,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:86,1
    - Dst: None::unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:86,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 75
    argCount: 2
    argNames:
    - slot_id
    - measurement_summary_hash_type
    argTypes:
    - u8
    - SpdmMeasurementSummaryHashType
    constantsTouched: []
    func_position:
      end: 88
      start: 28
    functionDepth: 11
    functionLinenumber: 28
    functionLinenumberEnd: 88
    functionName: RequesterContext::send_receive_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs
    functionUses: 1
    functionsReached:
    - RequesterContext::handle_spdm_key_exchange_response
    - reset_buffer_via_request_code
    - Err
    - is_none
    - teardown
    - get_next_half_session_id
    - RequesterContext::encode_spdm_key_exchange
    - Ok
    - set_peer_used_cert_chain_slot_id
    - get_session_via_id
    - None::unwrap
    - RequesterContext::send_message
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_key_exchange(&mut self,slot_id: u8,measurement_summary_hash_type:
      SpdmMeasurementSummaryHashType,) -> SpdmResult<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:97,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:104,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:110,1
    - Dst: crypto::rand::get_random
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:114,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:117,1
    - Dst: crypto::kem_decap::generate_key_pair
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:119,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:119,1
    - Dst: SpdmReqExchangeStruct::from_kem
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:122,1
    - Dst: SpdmReqExchangeContext::SpdmReqExchangeContextKem
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:123,1
    - Dst: crypto::dhe::generate_key_pair
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:127,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:127,1
    - Dst: SpdmReqExchangeStruct::from_dhe
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:130,1
    - Dst: SpdmReqExchangeContext::SpdmReqExchangeContextDhe
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:131,1
    - Dst: SecuredMessageVersion::default
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:139,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:142,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:142,1
    - Dst: SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:148,1
    - Dst: SpdmMessagePayload::SpdmKeyExchangeRequest
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:160,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:170,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:171,1
    - Dst: Writer::used
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:171,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 4
    argNames:
    - req_session_id
    - buf
    - slot_id
    - measurement_summary_hash_type
    argTypes:
    - u16
    - '&mut [u8]'
    - u8
    - SpdmMeasurementSummaryHashType
    constantsTouched: []
    func_position:
      end: 172
      start: 90
    functionDepth: 10
    functionLinenumber: 90
    functionLinenumberEnd: 172
    functionName: RequesterContext::encode_spdm_key_exchange
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs
    functionUses: 1
    functionsReached:
    - crypto::rand::get_random
    - contains
    - Writer::init
    - crypto::kem_decap::generate_key_pair
    - SpdmKemAlgo::empty
    - SpdmReqExchangeContext::SpdmReqExchangeContextKem
    - iter
    - spdm_encode
    - SecuredMessageVersion::default
    - SpdmMessagePayload::SpdmKeyExchangeRequest
    - Err
    - Option::ok_or
    - Ok
    - SpdmReqExchangeStruct::from_kem
    - Writer::used
    - SpdmReqExchangeStruct::from_dhe
    - crypto::dhe::generate_key_pair
    - flatten
    - SpdmReqExchangeContext::SpdmReqExchangeContextDhe
    - SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_key_exchange(&mut self,req_session_id: u16,buf:
      &mut [u8],slot_id: u8,measurement_summary_hash_type: SpdmMeasurementSummaryHashType,)
      -> SpdmResult<(SpdmReqExchangeContext, usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:190,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:195,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:202,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:203,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:206,1
    - Dst: SpdmKeyExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:210,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:214,1
    - Dst: SpdmKemAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:226,1
    - Dst: to_kem
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:228,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:231,1
    - Dst: decap_key
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:235,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:235,1
    - Dst: to_dhe
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:239,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:242,1
    - Dst: compute_final_key
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:246,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:246,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:260,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:262,1
    - Dst: get_sequence_number_count
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:263,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:266,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:268,1
    - Dst: get_max_random_count
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:269,1
    - Dst: req_get_dmtf_secure_spdm_version_selection
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:272,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:272,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:284,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:286,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:288,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:288,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:294,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:296,1
    - Dst: get_certchain_hash_peer
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:299,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:301,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:302,1
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:306,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:307,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:312,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:318,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:323,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:331,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:333,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:341,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:348,1
    - Dst: set_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:350,1
    - Dst: get_next_avaiable_session
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:355,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:355,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:360,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:362,1
    - Dst: set_mut_auth_requested
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:364,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:366,1
    - Dst: set_transport_param
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:373,1
    - Dst: set_shared_secret
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:374,1
    - Dst: get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:380,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:381,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:388,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:389,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:394,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:394,1
    - Dst: RequesterContext::verify_key_exchange_rsp_signature
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:400,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:400,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:409,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:414,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:416,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:419,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:419,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:425,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:430,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:430,1
    - Dst: set_th1
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:434,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:434,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:435,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:438,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:438,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:444,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:448,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:448,1
    - Dst: verify_hmac_with_response_finished_key
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:453,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:455,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:453,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:461,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:461,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:465,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:466,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:472,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:476,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:472,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:480,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:480,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:484,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:485,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:490,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:490,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:498,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:503,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:505,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:508,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:511,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:515,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:522,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:523,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:526,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:529,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 466
    argCount: 7
    argNames:
    - req_session_id
    - slot_id
    - send_buffer
    - receive_buffer
    - measurement_summary_hash_type
    - key_exchange_context
    - target_session_id
    argTypes:
    - u16
    - u8
    - '&[u8]'
    - '&[u8]'
    - SpdmMeasurementSummaryHashType
    - SpdmReqExchangeContext
    - '&mut Option<u32>'
    constantsTouched: []
    func_position:
      end: 531
      start: 175
    functionDepth: 11
    functionLinenumber: 175
    functionLinenumberEnd: 531
    functionName: RequesterContext::handle_spdm_key_exchange_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs
    functionUses: 1
    functionsReached:
    - contains
    - req_get_dmtf_secure_spdm_version_selection
    - get_certchain_hash_peer
    - is_none
    - clone
    - is_empty
    - SpdmKemAlgo::empty
    - to_kem
    - ok_or
    - get_sequence_number_count
    - set_use_psk
    - get_hash_size
    - lock
    - SpdmMessageHeader::read
    - get_max_random_count
    - Result::used
    - verify_hmac_with_response_finished_key
    - SpdmResult::is_err
    - get_asym_sig_size
    - generate_handshake_secret
    - decap_key
    - set_session_state
    - to_dhe
    - SpdmKeyExchangeResponsePayload::spdm_read
    - get_next_avaiable_session
    - deref_mut
    - set_th1
    - set_last_session_id
    - crypto::hash::hash_all
    - Err
    - Some
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - set_crypto_param
    - get_immutable_session_via_id
    - set_local_used_cert_chain_slot_id
    - compute_final_key
    - append_message_k
    - as_ref
    - set_transport_param
    - set_mut_auth_requested
    - is_err
    - teardown
    - RequesterContext::verify_key_exchange_rsp_signature
    - get_session_via_id
    - SpdmResult::as_ref
    - set_shared_secret
    - setup
    - calc_req_transcript_hash
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_key_exchange_response(&mut self,req_session_id:
      u16,slot_id: u8,send_buffer: &[u8],receive_buffer: &[u8],measurement_summary_hash_type:
      SpdmMeasurementSummaryHashType,key_exchange_context: SpdmReqExchangeContext,target_session_id:
      &mut Option<u32>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:612,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:620,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:620,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:628,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:630,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:632,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:632,1
    - Dst: get_size
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:636,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:637,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:637,1
    - Dst: calc_req_transcript_data
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:643,1
    - Dst: bool::reset_message
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:652,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:653,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:654,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:653,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:656,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:656,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:659,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:659,1
    - Dst: bool::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:662,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:663,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:662,1
    - Dst: SpdmDer::SpdmDerPubKeyRfc7250
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:668,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:670,1
    - Dst: crypto::spdm_asym_verify
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:673,1
    - Dst: bool::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs:678,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 133
    argCount: 3
    argNames:
    - slot_id
    - session
    - signature
    argTypes:
    - u8
    - '&SpdmSession'
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 681
      start: 606
    functionDepth: 11
    functionLinenumber: 606
    functionLinenumberEnd: 681
    functionName: RequesterContext::verify_key_exchange_rsp_signature
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs
    functionUses: 1
    functionsReached:
    - get_signing_prefix_context
    - crypto::spdm_asym_verify
    - SpdmDer::SpdmDerCertChain
    - as_ref
    - Err
    - calc_req_transcript_data
    - bool::append_message
    - is_none
    - get_size
    - bool::reset_message
    - Option::ok_or
    - bool::as_ref
    - ok_or
    - SpdmDer::SpdmDerPubKeyRfc7250
    - calc_req_transcript_hash
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn verify_key_exchange_rsp_signature(&self,slot_id: u8,session:
      &SpdmSession,signature: &SpdmSignatureStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: construct_my_cert_chain
      Src: /src/spdm-rs/spdmlib/src/requester/mutual_authenticate.rs:15,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/mutual_authenticate.rs:17,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/mutual_authenticate.rs:17,1
    - Dst: get_mut_auth_requested
      Src: /src/spdm-rs/spdmlib/src/requester/mutual_authenticate.rs:22,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/mutual_authenticate.rs:24,1
    - Dst: RequesterContext::get_encapsulated_request_response
      Src: /src/spdm-rs/spdmlib/src/requester/mutual_authenticate.rs:27,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/mutual_authenticate.rs:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 11
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: RequesterContext::session_based_mutual_authenticate
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/mutual_authenticate.rs
    functionUses: 1
    functionsReached:
    - get_mut_auth_requested
    - Err
    - RequesterContext::get_encapsulated_request_response
    - Ok
    - ok_or
    - get_session_via_id
    - construct_my_cert_chain
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn session_based_mutual_authenticate(&mut self, session_id:
      u32) -> SpdmResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Option<ManagedBufferM>::is_none'
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:32,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:33,1
    - Dst: ManagedBufferM::default
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:33,1
    - Dst: RequesterContext::delegate_send_receive_spdm_measurement_record
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:36,1
    - Dst: reset_message_m
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 9
    argNames:
    - session_id
    - measurement_attributes
    - measurement_operation
    - spdm_nonce_struct
    - content_changed
    - spdm_measurement_record_structure
    - transcript_meas
    - slot_id
    - requester_context_struct
    argTypes:
    - Option<u32>
    - SpdmMeasurementAttributes
    - SpdmMeasurementOperation
    - Option<SpdmNonceStruct>
    - '&mut Option<SpdmMeasurementContentChanged>'
    - '&mut SpdmMeasurementRecordStructure'
    - '&mut Option<ManagedBufferM>'
    - u8
    - Option<SpdmMeasurementContextStruct>
    constantsTouched: []
    func_position:
      end: 58
      start: 20
    functionDepth: 14
    functionLinenumber: 20
    functionLinenumberEnd: 58
    functionName: RequesterContext::send_receive_spdm_measurement_record
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs
    functionUses: 1
    functionsReached:
    - Some
    - reset_message_m
    - ManagedBufferM::default
    - '&mut Option<ManagedBufferM>::is_none'
    - RequesterContext::delegate_send_receive_spdm_measurement_record
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send_receive_spdm_measurement_record(&mut self,session_id:
      Option<u32>,measurement_attributes: SpdmMeasurementAttributes,measurement_operation:
      SpdmMeasurementOperation,spdm_nonce_struct: Option<SpdmNonceStruct>,content_changed:
      &mut Option<SpdmMeasurementContentChanged>,spdm_measurement_record_structure:
      &mut SpdmMeasurementRecordStructure,transcript_meas: &mut Option<ManagedBufferM>,slot_id:
      u8,requester_context_struct: Option<SpdmMeasurementContextStruct>,) -> SpdmResult<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:77,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:80,1
    - Dst: Option<SpdmMeasurementContextStruct>::unwrap_or_default
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:85,1
    - Dst: RequesterContext::encode_spdm_measurement_record
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:88,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:96,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:101,1
    - Dst: RequesterContext::handle_spdm_measurement_record_response
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 9
    argNames:
    - session_id
    - measurement_attributes
    - measurement_operation
    - spdm_nonce_struct
    - content_changed
    - spdm_measurement_record_structure
    - transcript_meas
    - slot_id
    - requester_context_struct
    argTypes:
    - Option<u32>
    - SpdmMeasurementAttributes
    - SpdmMeasurementOperation
    - Option<SpdmNonceStruct>
    - '&mut Option<SpdmMeasurementContentChanged>'
    - '&mut SpdmMeasurementRecordStructure'
    - '&mut Option<ManagedBufferM>'
    - u8
    - Option<SpdmMeasurementContextStruct>
    constantsTouched: []
    func_position:
      end: 117
      start: 62
    functionDepth: 13
    functionLinenumber: 62
    functionLinenumberEnd: 117
    functionName: RequesterContext::delegate_send_receive_spdm_measurement_record
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs
    functionUses: 1
    functionsReached:
    - reset_buffer_via_request_code
    - Err
    - RequesterContext::handle_spdm_measurement_record_response
    - RequesterContext::send_message
    - RequesterContext::encode_spdm_measurement_record
    - Option<SpdmMeasurementContextStruct>::unwrap_or_default
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn delegate_send_receive_spdm_measurement_record(&mut self,session_id:
      Option<u32>,measurement_attributes: SpdmMeasurementAttributes,measurement_operation:
      SpdmMeasurementOperation,spdm_nonce_struct: Option<SpdmNonceStruct>,content_changed:
      &mut Option<SpdmMeasurementContentChanged>,spdm_measurement_record_structure:
      &mut SpdmMeasurementRecordStructure,transcript_meas: &mut Option<ManagedBufferM>,slot_id:
      u8,requester_context_struct: Option<SpdmMeasurementContextStruct>,) -> SpdmResult<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:128,1
    - Dst: Nonce::copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:132,1
    - Dst: crypto::rand::get_random
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:134,1
    - Dst: SpdmMessagePayload::SpdmGetMeasurementsRequest
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:142,1
    - Dst: '&SpdmMeasurementContextStruct::clone'
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:148,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 6
    argNames:
    - measurement_attributes
    - measurement_operation
    - spdm_nonce_struct
    - slot_id
    - requester_context
    - buf
    argTypes:
    - SpdmMeasurementAttributes
    - SpdmMeasurementOperation
    - Option<SpdmNonceStruct>
    - u8
    - '&SpdmMeasurementContextStruct'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 153
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 153
    functionName: RequesterContext::encode_spdm_measurement_record
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs
    functionUses: 1
    functionsReached:
    - SpdmMessagePayload::SpdmGetMeasurementsRequest
    - crypto::rand::get_random
    - Writer::init
    - Nonce::copy_from_slice
    - spdm_encode
    - '&SpdmMeasurementContextStruct::clone'
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_measurement_record(&mut self,measurement_attributes:
      SpdmMeasurementAttributes,measurement_operation: SpdmMeasurementOperation,spdm_nonce_struct:
      Option<SpdmNonceStruct>,slot_id: u8,requester_context: &SpdmMeasurementContextStruct,buf:
      &mut [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMeasurementAttributes::contains
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:170,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:172,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:173,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:176,1
    - Dst: SpdmMeasurementsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:180,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:180,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:191,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:194,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:201,1
    - Dst: get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:206,1
    - Dst: append_message_m
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:214,1
    - Dst: append_message_m
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:215,1
    - Dst: append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:218,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:218,1
    - Dst: append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:221,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:221,1
    - Dst: SpdmMeasurementAttributes::contains
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:225,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:228,1
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:228,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:229,1
    - Dst: append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:231,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:232,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:231,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:242,1
    - Dst: SpdmMeasurementAttributes::contains
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:245,1
    - Dst: RequesterContext::verify_measurement_signature
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:248,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:248,1
    - Dst: reset_message_m
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:257,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:258,1
    - Dst: reset_message_m
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:260,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:271,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:274,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:276,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:280,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:287,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:288,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:291,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:294,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 190
    argCount: 10
    argNames:
    - session_id
    - slot_id
    - measurement_attributes
    - measurement_operation
    - requester_context
    - content_changed
    - spdm_measurement_record_structure
    - send_buffer
    - receive_buffer
    - transcript_meas
    argTypes:
    - Option<u32>
    - u8
    - SpdmMeasurementAttributes
    - SpdmMeasurementOperation
    - SpdmMeasurementContextStruct
    - '&mut Option<SpdmMeasurementContentChanged>'
    - '&mut SpdmMeasurementRecordStructure'
    - '&[u8]'
    - '&[u8]'
    - '&mut Option<ManagedBufferM>'
    constantsTouched: []
    func_position:
      end: 296
      start: 156
    functionDepth: 11
    functionLinenumber: 156
    functionLinenumberEnd: 296
    functionName: RequesterContext::handle_spdm_measurement_record_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs
    functionUses: 1
    functionsReached:
    - is_empty
    - reset_message_m
    - ok_or
    - SpdmMessageHeader::read
    - Result::used
    - SpdmResult::is_err
    - get_asym_sig_size
    - SpdmMeasurementAttributes::contains
    - Err
    - Some
    - Option::ok_or
    - append_message
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - SpdmMeasurementsResponsePayload::spdm_read
    - as_ref
    - RequesterContext::verify_measurement_signature
    - append_message_m
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_measurement_record_response(&mut self,session_id:
      Option<u32>,slot_id: u8,measurement_attributes: SpdmMeasurementAttributes,measurement_operation:
      SpdmMeasurementOperation,requester_context: SpdmMeasurementContextStruct,content_changed:
      &mut Option<SpdmMeasurementContentChanged>,spdm_measurement_record_structure:
      &mut SpdmMeasurementRecordStructure,send_buffer: &[u8],receive_buffer: &[u8],transcript_meas:
      &mut Option<ManagedBufferM>,) -> SpdmResult<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::send_receive_spdm_measurement_record
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:314,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 10
    argNames:
    - session_id
    - slot_id
    - spdm_measuremente_attributes
    - measurement_operation
    - spdm_nonce_struct
    - requester_context_struct
    - content_changed
    - out_total_number
    - spdm_measurement_record_structure
    - transcript_meas
    argTypes:
    - Option<u32>
    - u8
    - SpdmMeasurementAttributes
    - SpdmMeasurementOperation
    - Option<SpdmNonceStruct>
    - Option<SpdmMeasurementContextStruct>
    - '&mut Option<SpdmMeasurementContentChanged>'
    - '&mut u8'
    - '&mut SpdmMeasurementRecordStructure'
    - '&mut Option<ManagedBufferM>'
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 15
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: RequesterContext::send_receive_spdm_measurement
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs
    functionUses: 0
    functionsReached:
    - RequesterContext::send_receive_spdm_measurement_record
    - Ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_measurement(&mut self,session_id: Option<u32>,slot_id:
      u8,spdm_measuremente_attributes: SpdmMeasurementAttributes,measurement_operation:
      SpdmMeasurementOperation,spdm_nonce_struct: Option<SpdmNonceStruct>,requester_context_struct:
      Option<SpdmMeasurementContextStruct>, // requester context, this is only used
      if spdm version >= 0x13content_changed: &mut Option<SpdmMeasurementContentChanged>,
      // out, None if spdm version < 0x12out_total_number: &mut u8, // out, total
      number when measurement_operation = SpdmMeasurementQueryTotalNumber//      number
      of blocks got measured.spdm_measurement_record_structure: &mut SpdmMeasurementRecordStructure,
      // outtranscript_meas: &mut Option<ManagedBufferM>,                           //
      out) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferL1L2::default
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:418,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:421,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:422,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:423,1
    - Dst: Option::map_or_else
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:422,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:424,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:424,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:429,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:430,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:429,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:434,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:438,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:440,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:441,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:440,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:449,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:451,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:449,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:456,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:458,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:461,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:461,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:464,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:465,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:465,1
    - Dst: Self::reset_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:471,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:472,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:473,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:472,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:475,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:475,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:478,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:478,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:481,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:482,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:481,1
    - Dst: crypto::spdm_asym_verify
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:486,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:490,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs:491,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 166
    argCount: 3
    argNames:
    - slot_id
    - session_id
    - signature
    argTypes:
    - u8
    - Option<u32>
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 494
      start: 412
    functionDepth: 10
    functionLinenumber: 412
    functionLinenumberEnd: 494
    functionName: RequesterContext::verify_measurement_signature
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs
    functionUses: 1
    functionsReached:
    - get_signing_prefix_context
    - SpdmDer::SpdmDerCertChain
    - is_none
    - clone
    - get_hash_size
    - ok_or
    - ManagedBufferL1L2::default
    - Self::reset_message
    - crypto::hash::hash_all
    - Err
    - Self::append_message
    - Option::ok_or
    - Ok
    - get_immutable_session_via_id
    - crypto::spdm_asym_verify
    - as_ref
    - SpdmResult::as_ref
    - Self::as_ref
    - Option::map_or_else
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn verify_measurement_signature(&self,slot_id: u8,session_id:
      Option<u32>,signature: &SpdmSignatureStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:14,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:16,1
    - Dst: RequesterContext::encode_spdm_heartbeat
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:20,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:21,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:21,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:26,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:27,1
    - Dst: RequesterContext::handle_spdm_heartbeat_response
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 30
      start: 11
    functionDepth: 13
    functionLinenumber: 11
    functionLinenumberEnd: 30
    functionName: RequesterContext::send_receive_spdm_heartbeat
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs
    functionUses: 0
    functionsReached:
    - RequesterContext::encode_spdm_heartbeat
    - reset_buffer_via_request_code
    - Some
    - RequesterContext::handle_spdm_heartbeat_response
    - RequesterContext::send_message
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_heartbeat(&mut self, session_id: u32)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:33,1
    - Dst: SpdmMessagePayload::SpdmHeartbeatRequest
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:39,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: RequesterContext::encode_spdm_heartbeat
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs
    functionUses: 1
    functionsReached:
    - SpdmMessagePayload::SpdmHeartbeatRequest
    - Writer::init
    - spdm_encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_heartbeat(&mut self, buf: &mut [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:49,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:50,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:53,1
    - Dst: SpdmHeartbeatResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:58,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:61,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:64,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:67,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:69,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:74,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 2
    argNames:
    - session_id
    - receive_buffer
    argTypes:
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 79
      start: 44
    functionDepth: 11
    functionLinenumber: 44
    functionLinenumberEnd: 79
    functionName: RequesterContext::handle_spdm_heartbeat_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs
    functionUses: 1
    functionsReached:
    - Err
    - Some
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - SpdmMessageHeader::read
    - SpdmHeartbeatResponsePayload::spdm_read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_heartbeat_response(&mut self,session_id: u32,receive_buffer:
      &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:13,1
    - Dst: RequesterContext::encode_spdm_capability
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:19,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:20,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:24,1
    - Dst: RequesterContext::handle_spdm_capability_response
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:27,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 12
    functionDepth: 13
    functionLinenumber: 12
    functionLinenumberEnd: 28
    functionName: RequesterContext::send_receive_spdm_capability
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs
    functionUses: 1
    functionsReached:
    - reset_buffer_via_request_code
    - RequesterContext::send_message
    - RequesterContext::encode_spdm_capability
    - RequesterContext::handle_spdm_capability_response
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: pub async fn send_receive_spdm_capability(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:31,1
    - Dst: SpdmMessagePayload::SpdmGetCapabilitiesRequest
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:37,1
    - Dst: SpdmRequestCapabilityExFlags::default
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:43,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: RequesterContext::encode_spdm_capability
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs
    functionUses: 1
    functionsReached:
    - SpdmRequestCapabilityExFlags::default
    - Writer::init
    - SpdmMessagePayload::SpdmGetCapabilitiesRequest
    - spdm_encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_capability(&mut self, buf: &mut [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:56,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:57,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:60,1
    - Dst: SpdmCapabilitiesResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:64,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:68,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:92,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:93,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:95,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:98,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:101,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:103,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:108,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 111
    argCount: 3
    argNames:
    - session_id
    - send_buffer
    - receive_buffer
    argTypes:
    - u32
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 113
      start: 50
    functionDepth: 11
    functionLinenumber: 50
    functionLinenumberEnd: 113
    functionName: RequesterContext::handle_spdm_capability_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs
    functionUses: 1
    functionsReached:
    - Result::used
    - Err
    - Some
    - SpdmCapabilitiesResponsePayload::spdm_read
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - SpdmMessageHeader::read
    - append_message_a
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_capability_response(&mut self,session_id: u32,send_buffer:
      &[u8],receive_buffer: &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_context
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:16,1
    - Dst: RequesterContext::encode_spdm_version
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:19,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:20,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:24,1
    - Dst: RequesterContext::handle_spdm_version_response
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:27,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 14
    functionDepth: 13
    functionLinenumber: 14
    functionLinenumberEnd: 28
    functionName: RequesterContext::send_receive_spdm_version
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs
    functionUses: 1
    functionsReached:
    - RequesterContext::handle_spdm_version_response
    - reset_context
    - RequesterContext::send_message
    - RequesterContext::encode_spdm_version
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: pub async fn send_receive_spdm_version(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:31,1
    - Dst: SpdmMessagePayload::SpdmGetVersionRequest
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:37,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: RequesterContext::encode_spdm_version
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs
    functionUses: 1
    functionsReached:
    - Writer::init
    - SpdmMessagePayload::SpdmGetVersionRequest
    - spdm_encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_version(&mut self, buf: &mut [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:48,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:49,1
    - Dst: SpdmVersionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:53,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:54,1
    - Dst: sort_unstable_by
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:63,1
    - Dst: cmp
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:63,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:68,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:68,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:70,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:74,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:76,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:92,1
    - Dst: reset_runtime_info
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:96,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:98,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:99,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:101,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:104,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:107,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:108,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:113,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 86
    argCount: 3
    argNames:
    - session_id
    - send_buffer
    - receive_buffer
    argTypes:
    - u32
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 117
      start: 42
    functionDepth: 11
    functionLinenumber: 42
    functionLinenumberEnd: 117
    functionName: RequesterContext::handle_spdm_version_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs
    functionUses: 1
    functionsReached:
    - cmp
    - Result::used
    - contains
    - Some
    - Err
    - take
    - Ok
    - SpdmVersionResponsePayload::spdm_read
    - reset_runtime_info
    - RequesterContext::spdm_handle_error_response_main
    - sort_unstable_by
    - Reader::init
    - iter
    - SpdmMessageHeader::read
    - append_message_a
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_version_response(&mut self,session_id: u32,send_buffer:
      &[u8],receive_buffer: &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: common::SpdmContext::new
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - device_io
    - transport_encap
    - config_info
    - provision_info
    argTypes:
    - Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>
    - Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>
    - common::SpdmConfigInfo
    - common::SpdmProvisionInfo
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 6
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: RequesterContext::new
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 55
    functionsReached:
    - common::SpdmContext::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(device_io: Arc<Mutex<dyn SpdmDeviceIo + Send + Sync>>,transport_encap:
      Arc<Mutex<dyn SpdmTransportEncap + Send + Sync>>,config_info: common::SpdmConfigInfo,provision_info:
      common::SpdmProvisionInfo,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::send_receive_spdm_version
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:49,1
    - Dst: RequesterContext::send_receive_spdm_capability
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:50,1
    - Dst: RequesterContext::send_receive_spdm_algorithm
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:51,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:52,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:52,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - transcript_vca
    argTypes:
    - '&mut Option<ManagedBufferA>'
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 14
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: RequesterContext::init_connection
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 0
    functionsReached:
    - Some
    - RequesterContext::send_receive_spdm_version
    - RequesterContext::send_receive_spdm_algorithm
    - clone
    - Ok
    - RequesterContext::send_receive_spdm_capability
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn init_connection(&mut self,transcript_vca: &mut Option<ManagedBufferA>,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::send_receive_spdm_key_exchange
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:64,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:71,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:76,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:82,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:82,1
    - Dst: get_mut_auth_requested
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:86,1
    - Dst: get_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:88,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:91,1
    - Dst: get_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:91,1
    - Dst: get_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:92,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:95,1
    - Dst: RequesterContext::session_based_mutual_authenticate
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:100,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:101,1
    - Dst: get_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:101,1
    - Dst: RequesterContext::send_receive_spdm_finish
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:108,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:110,1
    - Dst: RequesterContext::send_receive_spdm_psk_exchange
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:112,1
    - Dst: RequesterContext::send_receive_spdm_psk_finish
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:115,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:116,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 3
    argNames:
    - use_psk
    - slot_id
    - measurement_summary_hash_type
    argTypes:
    - bool
    - u8
    - SpdmMeasurementSummaryHashType
    constantsTouched: []
    func_position:
      end: 118
      start: 57
    functionDepth: 12
    functionLinenumber: 57
    functionLinenumberEnd: 118
    functionName: RequesterContext::start_session
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 0
    functionsReached:
    - get_local_used_cert_chain_slot_id
    - get_mut_auth_requested
    - RequesterContext::send_receive_spdm_finish
    - contains
    - RequesterContext::send_receive_spdm_psk_exchange
    - Some
    - RequesterContext::send_receive_spdm_key_exchange
    - RequesterContext::session_based_mutual_authenticate
    - ok_or
    - Ok
    - get_session_via_id
    - RequesterContext::send_receive_spdm_psk_finish
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn start_session(&mut self,use_psk: bool,slot_id: u8,measurement_summary_hash_type:
      SpdmMeasurementSummaryHashType,) -> SpdmResult<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::send_receive_spdm_end_session
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 14
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: RequesterContext::end_session
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 0
    functionsReached:
    - RequesterContext::send_receive_spdm_end_session
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn end_session(&mut self, session_id: u32) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:133,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:135,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:138,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:139,1
    - Dst: RequesterContext::send_single_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:143,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:146,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:147,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:149,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:154,1
    - Dst: overflowing_add
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:165,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:167,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:168,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:168,1
    - Dst: RequesterContext::send_large_request
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:173,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:177,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:180,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:186,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:190,1
    - Dst: RequesterContext::send_single_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:193,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 146
    argCount: 3
    argNames:
    - session_id
    - send_buffer
    - is_app_message
    argTypes:
    - Option<u32>
    - '&[u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 196
      start: 126
    functionDepth: 12
    functionLinenumber: 126
    functionLinenumberEnd: 196
    functionName: RequesterContext::send_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 17
    functionsReached:
    - overflowing_add
    - contains
    - RequesterContext::send_single_message
    - Err
    - fill
    - copy_from_slice
    - '&[u8]::len'
    - RequesterContext::send_large_request
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_message(&mut self,session_id: Option<u32>,send_buffer:
      &[u8],is_app_message: bool,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:206,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:207,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:209,1
    - Dst: SpdmResult::is_none
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:212,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:213,1
    - Dst: encode_secured_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:218,1
    - Dst: encap
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:228,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:233,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:234,1
    - Dst: send
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:236,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:236,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 3
    argNames:
    - session_id
    - send_buffer
    - is_app_message
    argTypes:
    - Option<u32>
    - '&[u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 237
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 237
    functionName: RequesterContext::send_single_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 3
    functionsReached:
    - Arc::new
    - Err
    - '&[u8]::len'
    - encode_secured_message
    - encap
    - send
    - lock
    - SpdmResult::is_none
    - deref_mut
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send_single_message(&mut self,session_id: Option<u32>,send_buffer:
      &[u8],is_app_message: bool,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::receive_single_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:250,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:259,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:263,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:266,1
    - Dst: RequesterContext::receive_single_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:268,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:274,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:275,1
    - Dst: SpdmMessageGeneralPayload::read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:281,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:284,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:286,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:291,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:297,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:303,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:305,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:311,1
    - Dst: RequesterContext::receive_large_response
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:316,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:323,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:327,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:330,1
    - Dst: fill
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:338,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:344,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:347,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:351,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:355,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:359,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:364,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 232
    argCount: 3
    argNames:
    - session_id
    - receive_buffer
    - crypto_request
    argTypes:
    - Option<u32>
    - '&mut [u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 368
      start: 240
    functionDepth: 11
    functionLinenumber: 240
    functionLinenumberEnd: 368
    functionName: RequesterContext::receive_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 17
    functionsReached:
    - get_u8
    - contains
    - SpdmMessageGeneralPayload::read
    - Err
    - Ok
    - copy_from_slice
    - RequesterContext::receive_large_response
    - Reader::init
    - SpdmMessageHeader::read
    - RequesterContext::receive_single_message
    - u8::read
    - fill
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn receive_message(&mut self,session_id: Option<u32>,receive_buffer:
      &mut [u8],crypto_request: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:386,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:387,1
    - Dst: receive
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:389,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:390,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:390,1
    - Dst: map_err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:389,1
    - Dst: decode_secured_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:396,1
    - Dst: decap
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 3
    argNames:
    - session_id
    - receive_buffer
    - crypto_request
    argTypes:
    - Option<u32>
    - '&mut [u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 411
      start: 371
    functionDepth: 10
    functionLinenumber: 371
    functionLinenumberEnd: 411
    functionName: RequesterContext::receive_single_message
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 3
    functionsReached:
    - Arc::new
    - receive
    - decap
    - Mutex::new
    - decode_secured_message
    - lock
    - deref_mut
    - map_err
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn receive_single_message(&mut self,session_id: Option<u32>,receive_buffer:
      &mut [u8],crypto_request: bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:422,1
    - Dst: SpdmMessagePayload::SpdmChunkGetRequest
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:429,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:434,1
    - Dst: RequesterContext::send_single_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:435,1
    - Dst: RequesterContext::receive_single_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:439,1
    - Dst: RequesterContext::handle_spdm_chunk_response
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:443,1
    - Dst: SpdmResult::map_err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:443,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:449,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 62
    argCount: 2
    argNames:
    - session_id
    - crypto_request
    argTypes:
    - Option<u32>
    - bool
    constantsTouched: []
    func_position:
      end: 452
      start: 415
    functionDepth: 11
    functionLinenumber: 415
    functionLinenumberEnd: 452
    functionName: RequesterContext::receive_large_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 1
    functionsReached:
    - RequesterContext::send_single_message
    - SpdmMessagePayload::SpdmChunkGetRequest
    - Writer::init
    - Ok
    - SpdmResult::map_err
    - spdm_encode
    - RequesterContext::receive_single_message
    - RequesterContext::handle_spdm_chunk_response
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn receive_large_response(&mut self,session_id: Option<u32>,crypto_request:
      bool,) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:472,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:474,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:477,1
    - Dst: SpdmChunkResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:482,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:486,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:495,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:501,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:511,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:523,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:530,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:540,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:547,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:555,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:559,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:561,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:569,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:575,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:579,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:581,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:583,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:590,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:593,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 196
    argCount: 2
    argNames:
    - receive_buffer
    - session_id
    argTypes:
    - '&[u8]'
    - Option<u32>
    constantsTouched: []
    func_position:
      end: 595
      start: 455
    functionDepth: 11
    functionLinenumber: 455
    functionLinenumberEnd: 595
    functionName: RequesterContext::handle_spdm_chunk_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 1
    functionsReached:
    - SpdmChunkResponsePayload::spdm_read
    - contains
    - Err
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - SpdmMessageHeader::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn handle_spdm_chunk_response(&mut self,receive_buffer: &[u8],session_id:
      Option<u32>,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: core::cmp::min
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:605,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:614,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:616,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:623,1
    - Dst: SpdmChunkSenderAttributes::default
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:634,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:642,1
    - Dst: SpdmMessagePayload::SpdmChunkSendRequest
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:652,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:660,1
    - Dst: RequesterContext::send_single_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:662,1
    - Dst: RequesterContext::receive_single_message
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:665,1
    - Dst: RequesterContext::handle_spdm_chunk_send_ack_response
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:670,1
    - Dst: SpdmResult::map_err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:670,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:681,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 108
    argCount: 2
    argNames:
    - session_id
    - send_buffer
    argTypes:
    - Option<u32>
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 682
      start: 599
    functionDepth: 11
    functionLinenumber: 599
    functionLinenumberEnd: 682
    functionName: RequesterContext::send_large_request
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 1
    functionsReached:
    - RequesterContext::send_single_message
    - Err
    - Some
    - Writer::init
    - Ok
    - '&[u8]::len'
    - SpdmChunkSenderAttributes::default
    - SpdmResult::map_err
    - spdm_encode
    - core::cmp::min
    - RequesterContext::handle_spdm_chunk_send_ack_response
    - RequesterContext::receive_single_message
    - SpdmMessagePayload::SpdmChunkSendRequest
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send_large_request(&mut self,session_id: Option<u32>,send_buffer:
      &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:696,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:697,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:700,1
    - Dst: SpdmChunkSendAckResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:704,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:709,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:713,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:717,1
    - Dst: SpdmMessageGeneralPayload::read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:725,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:725,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:728,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:731,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:734,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:738,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:743,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:749,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:755,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:762,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:765,1
    - Dst: SpdmMessageGeneralPayload::read
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:770,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:773,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:776,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:779,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:781,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:785,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:788,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:792,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:795,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/context.rs:798,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 159
    argCount: 2
    argNames:
    - receive_buffer
    - early_error_detected
    argTypes:
    - '&[u8]'
    - '&mut bool'
    constantsTouched: []
    func_position:
      end: 800
      start: 685
    functionDepth: 11
    functionLinenumber: 685
    functionLinenumberEnd: 800
    functionName: RequesterContext::handle_spdm_chunk_send_ack_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/context.rs
    functionUses: 1
    functionsReached:
    - get_u8
    - contains
    - SpdmMessageGeneralPayload::read
    - Err
    - Ok
    - '&[u8]::len'
    - copy_from_slice
    - Reader::init
    - Option::unwrap
    - SpdmChunkSendAckResponsePayload::spdm_read
    - SpdmMessageHeader::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn handle_spdm_chunk_send_ack_response(&mut self,receive_buffer: &[u8],early_error_detected:
      &mut bool,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:26,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:28,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:34,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:42,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:44,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:52,1
    - Dst: SpdmGetDigestsRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:61,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:66,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:76,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:81,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:82,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:86,1
    - Dst: SpdmKeyUsageMask::empty
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:86,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:93,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:95,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:97,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:99,1
    - Dst: SpdmMessagePayload::SpdmDigestsResponse
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:110,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:112,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:114,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:115,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:126,1
    - Dst: Result::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:126,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:130,1
    - Dst: is_some
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:139,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:140,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:140,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:143,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:145,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:143,1
    - Dst: '&mut Writer::used'
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:150,1
    - Dst: '&mut Writer::mut_used_slice'
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:151,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:151,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs:152,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 189
    argCount: 2
    argNames:
    - encap_request
    - encap_response
    argTypes:
    - '&[u8]'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 156
      start: 25
    functionDepth: 11
    functionLinenumber: 25
    functionLinenumberEnd: 156
    functionName: RequesterContext::encap_handle_get_digest
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs
    functionUses: 1
    functionsReached:
    - contains
    - unwrap
    - Result::is_err
    - SpdmGetDigestsRequestPayload::spdm_read
    - get_hash_size
    - copy_from_slice
    - Box::new
    - SpdmMessageHeader::read
    - '&mut Writer::used'
    - gen_array_clone
    - SpdmKeyUsageMask::empty
    - crypto::hash::hash_all
    - Reader::init
    - Option::unwrap
    - SpdmMessagePayload::SpdmDigestsResponse
    - RequesterContext::encode_encap_error_response
    - as_ref
    - is_some
    - SpdmResult::as_ref
    - '&mut Writer::mut_used_slice'
    - SpdmResult::spdm_encode
    linkageType: ''
    returnType: void
    signature: 'pub fn encap_handle_get_digest(&mut self, encap_request: &[u8], encap_response:
      &mut Writer)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:27,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:30,1
    - Dst: Option<SpdmChallengeContextStruct>::unwrap_or_default
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:33,1
    - Dst: RequesterContext::encode_spdm_challenge
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:36,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:42,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:47,1
    - Dst: RequesterContext::handle_spdm_challenge_response
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 3
    argNames:
    - slot_id
    - measurement_summary_hash_type
    - requester_context_struct
    argTypes:
    - u8
    - SpdmMeasurementSummaryHashType
    - Option<SpdmChallengeContextStruct>
    constantsTouched: []
    func_position:
      end: 58
      start: 18
    functionDepth: 13
    functionLinenumber: 18
    functionLinenumberEnd: 58
    functionName: RequesterContext::send_receive_spdm_challenge
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs
    functionUses: 0
    functionsReached:
    - Option<SpdmChallengeContextStruct>::unwrap_or_default
    - reset_buffer_via_request_code
    - Err
    - RequesterContext::handle_spdm_challenge_response
    - RequesterContext::encode_spdm_challenge
    - RequesterContext::send_message
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_challenge(&mut self,slot_id: u8,measurement_summary_hash_type:
      SpdmMeasurementSummaryHashType,requester_context_struct: Option<SpdmChallengeContextStruct>,)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:67,1
    - Dst: crypto::rand::get_random
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:70,1
    - Dst: SpdmMessagePayload::SpdmChallengeRequest
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:77,1
    - Dst: '&SpdmChallengeContextStruct::clone'
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:81,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 4
    argNames:
    - slot_id
    - measurement_summary_hash_type
    - buf
    - requester_context
    argTypes:
    - u8
    - SpdmMeasurementSummaryHashType
    - '&mut [u8]'
    - '&SpdmChallengeContextStruct'
    constantsTouched: []
    func_position:
      end: 85
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 85
    functionName: RequesterContext::encode_spdm_challenge
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs
    functionUses: 1
    functionsReached:
    - crypto::rand::get_random
    - '&SpdmChallengeContextStruct::clone'
    - Writer::init
    - spdm_encode
    - SpdmMessagePayload::SpdmChallengeRequest
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_challenge(&mut self,slot_id: u8,measurement_summary_hash_type:
      SpdmMeasurementSummaryHashType,buf: &mut [u8],requester_context: &SpdmChallengeContextStruct,)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:101,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:102,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:105,1
    - Dst: SpdmChallengeAuthResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:109,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:113,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:123,1
    - Dst: get_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:127,1
    - Dst: append_message_c
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:130,1
    - Dst: append_message_c
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:131,1
    - Dst: RequesterContext::verify_challenge_auth_signature
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:133,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:133,1
    - Dst: reset_message_b
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:138,1
    - Dst: reset_message_c
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:139,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:140,1
    - Dst: reset_message_b
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:142,1
    - Dst: reset_message_c
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:143,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:147,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:150,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:153,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:155,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:160,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:163,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 108
    argCount: 6
    argNames:
    - session_id
    - slot_id
    - measurement_summary_hash_type
    - requester_context
    - send_buffer
    - receive_buffer
    argTypes:
    - u32
    - u8
    - SpdmMeasurementSummaryHashType
    - SpdmChallengeContextStruct
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 165
      start: 87
    functionDepth: 11
    functionLinenumber: 87
    functionLinenumberEnd: 165
    functionName: RequesterContext::handle_spdm_challenge_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs
    functionUses: 1
    functionsReached:
    - Result::used
    - RequesterContext::verify_challenge_auth_signature
    - SpdmChallengeAuthResponsePayload::spdm_read
    - Err
    - Some
    - append_message_c
    - SpdmResult::is_err
    - get_asym_sig_size
    - Ok
    - reset_message_c
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - SpdmMessageHeader::read
    - reset_message_b
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_challenge_response(&mut self,session_id: u32,slot_id:
      u8,measurement_summary_hash_type: SpdmMeasurementSummaryHashType,requester_context:
      SpdmChallengeContextStruct,send_buffer: &[u8],receive_buffer: &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ManagedBufferM1M2::default
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:235,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:236,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:237,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:236,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:239,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:240,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:239,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:242,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:243,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:242,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:248,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:250,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:248,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:255,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:257,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:260,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:260,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:263,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:264,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:264,1
    - Dst: Self::reset_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:270,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:271,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:272,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:271,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:274,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:274,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:277,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:277,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:280,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:281,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:280,1
    - Dst: crypto::spdm_asym_verify
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:285,1
    - Dst: SpdmDer::SpdmDerCertChain
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:289,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs:290,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 144
    argCount: 2
    argNames:
    - slot_id
    - signature
    argTypes:
    - u8
    - '&SpdmSignatureStruct'
    constantsTouched: []
    func_position:
      end: 293
      start: 230
    functionDepth: 10
    functionLinenumber: 230
    functionLinenumberEnd: 293
    functionName: RequesterContext::verify_challenge_auth_signature
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs
    functionUses: 1
    functionsReached:
    - get_signing_prefix_context
    - crypto::hash::hash_all
    - SpdmDer::SpdmDerCertChain
    - as_ref
    - Err
    - Self::append_message
    - Option::ok_or
    - is_none
    - ManagedBufferM1M2::default
    - get_hash_size
    - ok_or
    - Self::reset_message
    - Self::as_ref
    - crypto::spdm_asym_verify
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn verify_challenge_auth_signature(&self,slot_id: u8,signature:
      &SpdmSignatureStruct,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:15,1
    - Dst: RequesterContext::encode_spdm_digest
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:21,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:23,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:27,1
    - Dst: RequesterContext::handle_spdm_digest_response
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - Option<u32>
    constantsTouched: []
    func_position:
      end: 36
      start: 12
    functionDepth: 13
    functionLinenumber: 12
    functionLinenumberEnd: 36
    functionName: RequesterContext::send_receive_spdm_digest
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs
    functionUses: 0
    functionsReached:
    - reset_buffer_via_request_code
    - RequesterContext::encode_spdm_digest
    - RequesterContext::send_message
    - RequesterContext::handle_spdm_digest_response
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_digest(&mut self, session_id: Option<u32>)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:39,1
    - Dst: SpdmMessagePayload::SpdmGetDigestsRequest
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:45,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: RequesterContext::encode_spdm_digest
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs
    functionUses: 1
    functionsReached:
    - SpdmMessagePayload::SpdmGetDigestsRequest
    - Writer::init
    - spdm_encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_digest(&mut self, buf: &mut [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:56,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:57,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:60,1
    - Dst: SpdmDigestsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:65,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:66,1
    - Dst: append_message_b
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:72,1
    - Dst: append_message_b
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:73,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:93,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:95,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:97,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:102,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:105,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:108,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:115,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs:118,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 116
    argCount: 3
    argNames:
    - session_id
    - send_buffer
    - receive_buffer
    argTypes:
    - Option<u32>
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 120
      start: 50
    functionDepth: 11
    functionLinenumber: 50
    functionLinenumberEnd: 120
    functionName: RequesterContext::handle_spdm_digest_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs
    functionUses: 1
    functionsReached:
    - Result::used
    - Err
    - Some
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - SpdmMessageHeader::read
    - append_message_b
    - SpdmDigestsResponsePayload::spdm_read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_digest_response(&mut self,session_id: Option<u32>,send_buffer:
      &[u8],receive_buffer: &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:17,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:19,1
    - Dst: RequesterContext::encode_spdm_end_session
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:23,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:24,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:24,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:28,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:29,1
    - Dst: RequesterContext::handle_spdm_end_session_response
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 13
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: RequesterContext::send_receive_spdm_end_session
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs
    functionUses: 1
    functionsReached:
    - reset_buffer_via_request_code
    - Some
    - RequesterContext::handle_spdm_end_session_response
    - RequesterContext::encode_spdm_end_session
    - RequesterContext::send_message
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_end_session(&mut self, session_id:
      u32) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:35,1
    - Dst: SpdmMessagePayload::SpdmEndSessionRequest
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:42,1
    - Dst: SpdmEndSessionRequestAttributes::empty
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:43,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: RequesterContext::encode_spdm_end_session
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs
    functionUses: 1
    functionsReached:
    - SpdmEndSessionRequestAttributes::empty
    - SpdmMessagePayload::SpdmEndSessionRequest
    - Writer::init
    - spdm_encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_end_session(&mut self, buf: &mut [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:54,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:55,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:58,1
    - Dst: SpdmEndSessionResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:63,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:68,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:71,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:73,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:75,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:78,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:81,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:83,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:88,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 2
    argNames:
    - session_id
    - receive_buffer
    argTypes:
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 93
      start: 49
    functionDepth: 11
    functionLinenumber: 49
    functionLinenumberEnd: 93
    functionName: RequesterContext::handle_spdm_end_session_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs
    functionUses: 1
    functionsReached:
    - Err
    - Some
    - teardown
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - SpdmEndSessionResponsePayload::spdm_read
    - get_session_via_id
    - Reader::init
    - SpdmMessageHeader::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_end_session_response(&mut self,session_id: u32,receive_buffer:
      &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:22,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:24,1
    - Dst: RequesterContext::encode_spdm_key_update_op
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:28,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:29,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:29,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:34,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:37,1
    - Dst: create_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:42,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:44,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:45,1
    - Dst: RequesterContext::handle_spdm_key_update_op_response
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:48,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 3
    argNames:
    - session_id
    - key_update_operation
    - tag
    argTypes:
    - u32
    - SpdmKeyUpdateOperation
    - u8
    constantsTouched: []
    func_position:
      end: 54
      start: 14
    functionDepth: 13
    functionLinenumber: 14
    functionLinenumberEnd: 54
    functionName: RequesterContext::send_receive_spdm_key_update_op
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs
    functionUses: 1
    functionsReached:
    - reset_buffer_via_request_code
    - Some
    - Err
    - RequesterContext::handle_spdm_key_update_op_response
    - get_session_via_id
    - RequesterContext::encode_spdm_key_update_op
    - RequesterContext::send_message
    - create_data_secret_update
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send_receive_spdm_key_update_op(&mut self,session_id: u32,key_update_operation:
      SpdmKeyUpdateOperation,tag: u8,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:62,1
    - Dst: SpdmMessagePayload::SpdmKeyUpdateRequest
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:68,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - key_update_operation
    - tag
    - buf
    argTypes:
    - SpdmKeyUpdateOperation
    - u8
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: RequesterContext::encode_spdm_key_update_op
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs
    functionUses: 1
    functionsReached:
    - SpdmMessagePayload::SpdmKeyUpdateRequest
    - Writer::init
    - spdm_encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_key_update_op(&mut self,key_update_operation: SpdmKeyUpdateOperation,tag:
      u8,buf: &mut [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:83,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:84,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:87,1
    - Dst: SpdmKeyUpdateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:92,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:94,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:97,1
    - Dst: activate_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:101,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:107,1
    - Dst: activate_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:110,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:116,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:121,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:124,1
    - Dst: activate_data_secret_update
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:127,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:133,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:134,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:140,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:143,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 67
    argCount: 4
    argNames:
    - session_id
    - update_requester
    - update_responder
    - receive_buffer
    argTypes:
    - u32
    - bool
    - bool
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 145
      start: 76
    functionDepth: 11
    functionLinenumber: 76
    functionLinenumberEnd: 145
    functionName: RequesterContext::handle_spdm_key_update_op_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs
    functionUses: 1
    functionsReached:
    - Err
    - activate_data_secret_update
    - Some
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - get_session_via_id
    - Reader::init
    - SpdmKeyUpdateResponsePayload::spdm_read
    - SpdmMessageHeader::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_key_update_op_response(&mut self,session_id: u32,update_requester:
      bool,update_responder: bool,receive_buffer: &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:156,1
    - Dst: RequesterContext::send_receive_spdm_key_update_op
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:158,1
    - Dst: RequesterContext::send_receive_spdm_key_update_op
      Src: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - session_id
    - key_update_operation
    argTypes:
    - u32
    - SpdmKeyUpdateOperation
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 14
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: RequesterContext::send_receive_spdm_key_update
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs
    functionUses: 0
    functionsReached:
    - RequesterContext::send_receive_spdm_key_update_op
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_key_update(&mut self,session_id: u32,key_update_operation:
      SpdmKeyUpdateOperation,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:16,1
    - Dst: RequesterContext::encode_spdm_algorithm
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:22,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:23,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:27,1
    - Dst: RequesterContext::handle_spdm_algorithm_response
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:30,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 11
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: RequesterContext::send_receive_spdm_algorithm
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs
    functionUses: 1
    functionsReached:
    - reset_buffer_via_request_code
    - RequesterContext::handle_spdm_algorithm_response
    - RequesterContext::send_message
    - RequesterContext::encode_spdm_algorithm
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: pub async fn send_receive_spdm_algorithm(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmAlgoOtherParams::empty
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:34,1
    - Dst: bool::insert
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:37,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:40,1
    - Dst: bool::insert
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:46,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:48,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:53,1
    - Dst: bool::insert
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:59,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:67,1
    - Dst: gen_array_clone
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:72,1
    - Dst: SpdmAlgStruct::default
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:72,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:73,1
    - Dst: SpdmAlg::SpdmAlgoDhe
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:76,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:79,1
    - Dst: SpdmAlg::SpdmAlgoAead
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:82,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:85,1
    - Dst: SpdmAlg::SpdmAlgoReqAsym
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:88,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:91,1
    - Dst: SpdmAlg::SpdmAlgoKeySchedule
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:94,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:98,1
    - Dst: SpdmAlg::SpdmAlgoPqcReqAsym
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:101,1
    - Dst: is_valid
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:104,1
    - Dst: SpdmAlg::SpdmAlgoKem
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:107,1
    - Dst: SpdmPqcAsymAlgo::empty
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:116,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:119,1
    - Dst: SpdmMessagePayload::SpdmNegotiateAlgorithmsRequest
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:125,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:138,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 214
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 139
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 139
    functionName: RequesterContext::encode_spdm_algorithm
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs
    functionUses: 1
    functionsReached:
    - bool::insert
    - SpdmAlg::SpdmAlgoAead
    - spdm_encode
    - contains
    - SpdmAlg::SpdmAlgoKeySchedule
    - SpdmAlg::SpdmAlgoPqcReqAsym
    - SpdmAlg::SpdmAlgoKem
    - SpdmAlg::SpdmAlgoDhe
    - Writer::init
    - SpdmMessagePayload::SpdmNegotiateAlgorithmsRequest
    - gen_array_clone
    - is_valid
    - SpdmAlgoOtherParams::empty
    - SpdmAlg::SpdmAlgoReqAsym
    - SpdmAlgStruct::default
    - SpdmMelSpecification::empty
    - SpdmPqcAsymAlgo::empty
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_algorithm(&mut self, buf: &mut [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:147,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:148,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:151,1
    - Dst: SpdmAlgorithmsResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:156,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:157,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:170,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:177,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:183,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:192,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:196,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:201,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:205,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:209,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:215,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:223,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:224,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:233,1
    - Dst: bits
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:234,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:236,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:238,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:238,1
    - Dst: SimpleLogger::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:245,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:245,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:252,1
    - Dst: SimpleLogger::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:256,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:256,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:263,1
    - Dst: SimpleLogger::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:267,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:267,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:274,1
    - Dst: SimpleLogger::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:278,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:278,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:285,1
    - Dst: SimpleLogger::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:292,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:292,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:299,1
    - Dst: SimpleLogger::is_no_more_than_one_selected
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:307,1
    - Dst: SimpleLogger::bits
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:307,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:314,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:326,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:327,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:336,1
    - Dst: SpdmMelSpecification::empty
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:339,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:341,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:347,1
    - Dst: append_message_a
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:348,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:350,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:353,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:355,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:357,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:362,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs:365,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 370
    argCount: 3
    argNames:
    - session_id
    - send_buffer
    - receive_buffer
    argTypes:
    - u32
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 367
      start: 141
    functionDepth: 11
    functionLinenumber: 141
    functionLinenumberEnd: 367
    functionName: RequesterContext::handle_spdm_algorithm_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs
    functionUses: 1
    functionsReached:
    - Result::used
    - SimpleLogger::is_no_more_than_one_selected
    - contains
    - SimpleLogger::bits
    - Err
    - Some
    - take
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - SpdmAlgorithmsResponsePayload::spdm_read
    - Reader::init
    - iter
    - SpdmMessageHeader::read
    - SpdmMelSpecification::empty
    - append_message_a
    - bits
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_algorithm_response(&mut self,session_id: u32,send_buffer:
      &[u8],receive_buffer: &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::delegate_send_receive_spdm_finish
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:22,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:26,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:27,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:30,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - req_slot_id
    - session_id
    argTypes:
    - Option<u8>
    - u32
    constantsTouched: []
    func_position:
      end: 34
      start: 15
    functionDepth: 13
    functionLinenumber: 15
    functionLinenumberEnd: 34
    functionName: RequesterContext::send_receive_spdm_finish
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/finish_req.rs
    functionUses: 1
    functionsReached:
    - Err
    - teardown
    - Ok
    - get_session_via_id
    - RequesterContext::delegate_send_receive_spdm_finish
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_finish(&mut self,req_slot_id: Option<u8>,session_id:
      u32,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:42,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:47,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:58,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:61,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:63,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:70,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:70,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:71,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:74,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:76,1
    - Dst: RequesterContext::encode_spdm_finish
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:80,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:81,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:82,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:82,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:82,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:86,1
    - Dst: Features::err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:86,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:86,1
    - Dst: Features::unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:88,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:90,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:93,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:93,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:96,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:97,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:97,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:97,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:106,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:108,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:108,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:111,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:112,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:112,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:112,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:116,1
    - Dst: Features::err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:116,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:116,1
    - Dst: Features::unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:118,1
    - Dst: RequesterContext::handle_spdm_finish_response
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:119,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:120,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:121,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:122,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 157
    argCount: 2
    argNames:
    - req_slot_id
    - session_id
    argTypes:
    - Option<u8>
    - u32
    constantsTouched: []
    func_position:
      end: 126
      start: 37
    functionDepth: 12
    functionLinenumber: 37
    functionLinenumberEnd: 126
    functionName: RequesterContext::delegate_send_receive_spdm_finish
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/finish_req.rs
    functionUses: 1
    functionsReached:
    - contains
    - reset_buffer_via_request_code
    - Err
    - Some
    - unwrap
    - is_none
    - teardown
    - Features::is_err
    - ok_or
    - get_session_via_id
    - RequesterContext::encode_spdm_finish
    - RequesterContext::send_message
    - Features::unwrap
    - Features::err
    - RequesterContext::receive_message
    - RequesterContext::handle_spdm_finish_response
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn delegate_send_receive_spdm_finish(&mut self,req_slot_id:
      Option<u8>,session_id: u32,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmFinishRequestAttributes::empty
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:134,1
    - Dst: SpdmSignatureStruct::default
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:135,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:138,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:138,1
    - Dst: get_mut_auth_requested
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:142,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::is_empty
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:142,1
    - Dst: get_req_asym_sig_size
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:144,1
    - Dst: SpdmMessagePayload::SpdmFinishRequest
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:158,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:163,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:164,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:176,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:177,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:180,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:183,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:183,1
    - Dst: get_mut_auth_requested
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:187,1
    - Dst: SpdmKeyExchangeMutAuthAttributes::is_empty
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:187,1
    - Dst: RequesterContext::generate_finish_req_signature
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:188,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:190,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:191,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:193,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:194,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:198,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:200,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:200,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:205,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:209,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:209,1
    - Dst: generate_hmac_with_request_finished_key
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:214,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:214,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:216,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:217,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:220,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:220,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:221,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 143
    argCount: 3
    argNames:
    - session_id
    - req_slot_id
    - buf
    argTypes:
    - u32
    - u8
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 222
      start: 128
    functionDepth: 11
    functionLinenumber: 128
    functionLinenumberEnd: 222
    functionName: RequesterContext::encode_spdm_finish
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/finish_req.rs
    functionUses: 1
    functionsReached:
    - Option::as_ref
    - Writer::init
    - get_hash_size
    - ok_or
    - copy_from_slice
    - get_req_asym_sig_size
    - Box::new
    - RequesterContext::generate_finish_req_signature
    - SpdmSignatureStruct::default
    - append_message_f
    - spdm_encode
    - get_mut_auth_requested
    - generate_hmac_with_request_finished_key
    - Ok
    - SpdmFinishRequestAttributes::empty
    - SpdmKeyExchangeMutAuthAttributes::is_empty
    - SpdmMessagePayload::SpdmFinishRequest
    - get_immutable_session_via_id
    - get_session_via_id
    - SpdmResult::as_ref
    - calc_req_transcript_hash
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_finish(&mut self,session_id: u32,req_slot_id: u8,buf:
      &mut [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:229,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:234,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:240,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:240,1
    - Dst: get_mut_auth_requested
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:240,1
    - Dst: is_empty
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:240,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:247,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:248,1
    - Dst: SpdmFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:252,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:253,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:257,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:262,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:268,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:268,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:273,1
    - Dst: verify_hmac_with_response_finished_key
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:279,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:281,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:279,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:287,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:292,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:295,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:298,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:305,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:305,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:312,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:317,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:317,1
    - Dst: set_th2
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:321,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:321,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:322,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:325,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:328,1
    - Dst: set_last_session_id
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:332,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:334,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:337,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:340,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:341,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:346,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:348,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 144
    argCount: 2
    argNames:
    - session_id
    - receive_buffer
    argTypes:
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 350
      start: 224
    functionDepth: 11
    functionLinenumber: 224
    functionLinenumberEnd: 350
    functionName: RequesterContext::handle_spdm_finish_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/finish_req.rs
    functionUses: 1
    functionsReached:
    - contains
    - is_empty
    - generate_data_secret
    - clone
    - get_hash_size
    - ok_or
    - SpdmMessageHeader::read
    - Result::used
    - verify_hmac_with_response_finished_key
    - SpdmResult::is_err
    - set_session_state
    - append_message_f
    - set_last_session_id
    - get_mut_auth_requested
    - Err
    - set_th2
    - Some
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - get_immutable_session_via_id
    - SpdmFinishResponsePayload::spdm_read
    - as_ref
    - get_session_via_id
    - SpdmResult::as_ref
    - calc_req_transcript_hash
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_finish_response(&mut self,session_id: u32,receive_buffer:
      &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:393,1
    - Dst: ManagedBuffer12Sign::default
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:397,1
    - Dst: Self::reset_message
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:399,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:400,1
    - Dst: get_signing_prefix_context
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:401,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:400,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:403,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:403,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:406,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:406,1
    - Dst: Self::append_message
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:409,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:410,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:409,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:414,1
    - Dst: crate::secret::spdm_asym_sign
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:417,1
    - Dst: to_base
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:420,1
    - Dst: to_base
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:421,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:422,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/finish_req.rs:417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 71
    argCount: 2
    argNames:
    - _slot_id
    - session
    argTypes:
    - u8
    - '&SpdmSession'
    constantsTouched: []
    func_position:
      end: 425
      start: 388
    functionDepth: 11
    functionLinenumber: 388
    functionLinenumberEnd: 425
    functionName: RequesterContext::generate_finish_req_signature
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/finish_req.rs
    functionUses: 1
    functionsReached:
    - get_signing_prefix_context
    - Err
    - to_base
    - Self::append_message
    - Option::ok_or
    - SpdmResult::as_ref
    - Self::reset_message
    - ManagedBuffer12Sign::default
    - crate::secret::spdm_asym_sign
    - Self::as_ref
    - calc_req_transcript_hash
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn generate_finish_req_signature(&self,_slot_id: u8,session: &SpdmSession,)
      -> SpdmResult<SpdmSignatureStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:24,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:25,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:26,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:27,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:28,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:30,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:33,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:35,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:37,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - session_id
    - error_code
    argTypes:
    - Option<u32>
    - u8
    constantsTouched: []
    func_position:
      end: 41
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 41
    functionName: RequesterContext::spdm_handle_simple_error_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs
    functionUses: 1
    functionsReached:
    - get_u8
    - get_session_via_id
    - set_session_state
    - Err
    linkageType: ''
    returnType: SpdmResult
    signature: 'fn spdm_handle_simple_error_response(&mut self,session_id: Option<u32>,error_code:
      u8,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:50,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:52,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:55,1
    - Dst: Reader::used
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:57,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:60,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:64,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:67,1
    - Dst: SpdmMessageGeneralPayload::read
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:69,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:72,1
    - Dst: get_u8
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:76,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:78,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:81,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:83,1
    - Dst: RequesterContext::spdm_handle_simple_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:87,1
    - Dst: spdm_status_set_error_data
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:95,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 65
    argCount: 4
    argNames:
    - session_id
    - response
    - _original_request_code
    - _expected_response_code
    argTypes:
    - Option<u32>
    - '&[u8]'
    - SpdmRequestResponseCode
    - SpdmRequestResponseCode
    constantsTouched: []
    func_position:
      end: 97
      start: 43
    functionDepth: 11
    functionLinenumber: 43
    functionLinenumberEnd: 97
    functionName: RequesterContext::spdm_handle_error_response_main
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs
    functionUses: 16
    functionsReached:
    - get_u8
    - RequesterContext::spdm_handle_simple_error_response
    - SpdmMessageGeneralPayload::read
    - Err
    - teardown
    - Reader::used
    - get_session_via_id
    - Reader::init
    - spdm_status_set_error_data
    - SpdmMessageHeader::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn spdm_handle_error_response_main(&mut self,session_id: Option<u32>,response:
      &[u8],_original_request_code: SpdmRequestResponseCode,_expected_response_code:
      SpdmRequestResponseCode,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:25,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:27,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:33,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:41,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:43,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:51,1
    - Dst: SpdmGetCertificateRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:60,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:64,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:74,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:84,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:86,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:94,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:94,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:105,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:124,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:124,1
    - Dst: SpdmMessagePayload::SpdmCertificateResponse
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:130,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs:137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 143
    argCount: 2
    argNames:
    - encap_request
    - encap_response
    argTypes:
    - '&[u8]'
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 140
      start: 20
    functionDepth: 11
    functionLinenumber: 20
    functionLinenumberEnd: 140
    functionName: RequesterContext::encap_handle_get_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs
    functionUses: 1
    functionsReached:
    - len
    - contains
    - as_ref
    - SpdmMessagePayload::SpdmCertificateResponse
    - unwrap
    - is_none
    - SpdmGetCertificateRequestPayload::spdm_read
    - copy_from_slice
    - Reader::init
    - SpdmMessageHeader::read
    - SpdmResult::spdm_encode
    - RequesterContext::encode_encap_error_response
    linkageType: ''
    returnType: void
    signature: 'pub fn encap_handle_get_certificate(&mut self,encap_request: &[u8],encap_response:
      &mut Writer,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:20,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:26,1
    - Dst: SpdmMessagePayload::SpdmVendorDefinedRequest
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:32,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:40,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:42,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:47,1
    - Dst: RequesterContext::handle_spdm_vendor_defined_respond
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 4
    argNames:
    - session_id
    - standard_id
    - vendor_id_struct
    - req_payload_struct
    argTypes:
    - Option<u32>
    - RegistryOrStandardsBodyID
    - VendorIDStruct
    - VendorDefinedReqPayloadStruct
    constantsTouched: []
    func_position:
      end: 52
      start: 11
    functionDepth: 13
    functionLinenumber: 11
    functionLinenumberEnd: 52
    functionName: RequesterContext::send_spdm_vendor_defined_request
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs
    functionUses: 15
    functionsReached:
    - RequesterContext::handle_spdm_vendor_defined_respond
    - reset_buffer_via_request_code
    - Writer::init
    - SpdmMessagePayload::SpdmVendorDefinedRequest
    - RequesterContext::send_message
    - spdm_encode
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_spdm_vendor_defined_request(&mut self,session_id:
      Option<u32>,standard_id: RegistryOrStandardsBodyID,vendor_id_struct: VendorIDStruct,req_payload_struct:
      VendorDefinedReqPayloadStruct,) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:59,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:60,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:63,1
    - Dst: SpdmVendorDefinedResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:67,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:72,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:74,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:78,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:85,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:86,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:89,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - session_id
    - receive_buffer
    argTypes:
    - Option<u32>
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 94
      start: 54
    functionDepth: 11
    functionLinenumber: 54
    functionLinenumberEnd: 94
    functionName: RequesterContext::handle_spdm_vendor_defined_respond
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs
    functionUses: 1
    functionsReached:
    - SpdmVendorDefinedResponsePayload::spdm_read
    - Err
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - SpdmMessageHeader::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_vendor_defined_respond(&mut self,session_id: Option<u32>,receive_buffer:
      &[u8],) -> SpdmResult<VendorDefinedRspPayloadStruct>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmMessagePayload::SpdmErrorResponse
      Src: /src/spdm-rs/spdmlib/src/requester/encap_error.rs:30,1
    - Dst: SpdmErrorResponseExtData::SpdmErrorExtDataNone
      Src: /src/spdm-rs/spdmlib/src/requester/encap_error.rs:33,1
    - Dst: SpdmResult::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/encap_error.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - error_code
    - error_data
    - writer
    argTypes:
    - SpdmErrorCode
    - u8
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: RequesterContext::encode_encap_error_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/encap_error.rs
    functionUses: 3
    functionsReached:
    - SpdmErrorResponseExtData::SpdmErrorExtDataNone
    - SpdmResult::spdm_encode
    - SpdmMessagePayload::SpdmErrorResponse
    linkageType: ''
    returnType: void
    signature: 'pub fn encode_encap_error_response(&mut self,error_code: SpdmErrorCode,error_data:
      u8,writer: &mut Writer,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:36,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:39,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:44,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:50,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:59,1
    - Dst: SpdmMessagePayload::SpdmGetDigestsRequest
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:65,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:69,1
    - Dst: RequesterContext::process_encapsulated_request
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:70,1
    - Dst: RequesterContext::send_get_encapsulated_request
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:74,1
    - Dst: RequesterContext::receive_encapsulated_request
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:75,1
    - Dst: RequesterContext::receive_encapsulated_response_ack
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:79,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:80,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 2
    argNames:
    - session_id
    - mut_auth_requested
    argTypes:
    - u32
    - SpdmKeyExchangeMutAuthAttributes
    constantsTouched: []
    func_position:
      end: 81
      start: 30
    functionDepth: 12
    functionLinenumber: 30
    functionLinenumberEnd: 81
    functionName: RequesterContext::get_encapsulated_request_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/encap_req.rs
    functionUses: 1
    functionsReached:
    - contains
    - Err
    - Writer::init
    - Ok
    - RequesterContext::receive_encapsulated_response_ack
    - spdm_encode
    - RequesterContext::send_get_encapsulated_request
    - SpdmMessagePayload::SpdmGetDigestsRequest
    - RequesterContext::receive_encapsulated_request
    - RequesterContext::process_encapsulated_request
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn get_encapsulated_request_response(&mut self,session_id:
      u32,mut_auth_requested: SpdmKeyExchangeMutAuthAttributes,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:86,1
    - Dst: SpdmMessagePayload::SpdmGetEncapsulatedRequestPayload
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:92,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:96,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:98,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:98,1
    - Dst: Writer::mut_used_slice
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 100
      start: 84
    functionDepth: 13
    functionLinenumber: 84
    functionLinenumberEnd: 100
    functionName: RequesterContext::send_get_encapsulated_request
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/encap_req.rs
    functionUses: 1
    functionsReached:
    - Writer::mut_used_slice
    - Some
    - Writer::init
    - RequesterContext::send_message
    - spdm_encode
    - SpdmMessagePayload::SpdmGetEncapsulatedRequestPayload
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_get_encapsulated_request(&mut self, session_id:
      u32) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:105,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:106,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:108,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:110,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:110,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:116,1
    - Dst: SpdmEncapsulatedRequestPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:119,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:119,1
    - Dst: RequesterContext::process_encapsulated_request
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:122,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 128
      start: 103
    functionDepth: 12
    functionLinenumber: 103
    functionLinenumberEnd: 128
    functionName: RequesterContext::receive_encapsulated_request
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/encap_req.rs
    functionUses: 1
    functionsReached:
    - Result::used
    - SpdmEncapsulatedRequestPayload::spdm_read
    - Some
    - Err
    - Option::ok_or
    - Reader::init
    - SpdmMessageHeader::read
    - RequesterContext::process_encapsulated_request
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn receive_encapsulated_request(&mut self, session_id: u32)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:133,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:134,1
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:136,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:138,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:138,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:144,1
    - Dst: SpdmEncapsulatedResponseAckPayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:147,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:147,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:153,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:155,1
    - Dst: u8::read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:161,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:161,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:163,1
    - Dst: set_local_used_cert_chain_slot_id
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:165,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:168,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:170,1
    - Dst: RequesterContext::process_encapsulated_request
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:176,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:179,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:183,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 85
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 184
      start: 131
    functionDepth: 12
    functionLinenumber: 131
    functionLinenumberEnd: 184
    functionName: RequesterContext::receive_encapsulated_response_ack
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/encap_req.rs
    functionUses: 1
    functionsReached:
    - set_local_used_cert_chain_slot_id
    - Result::used
    - Some
    - Err
    - Option::ok_or
    - Ok
    - Reader::init
    - SpdmEncapsulatedResponseAckPayload::spdm_read
    - SpdmMessageHeader::read
    - RequesterContext::process_encapsulated_request
    - RequesterContext::receive_message
    - u8::read
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn receive_encapsulated_response_ack(&mut self, session_id:
      u32) -> SpdmResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:193,1
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:195,1
    - Dst: SpdmMessagePayload::SpdmDeliverEncapsulatedResponsePayload
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:203,1
    - Dst: bool::spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:208,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:211,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:211,1
    - Dst: RequesterContext::encap_handle_get_digest
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:214,1
    - Dst: RequesterContext::encap_handle_get_certificate
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:217,1
    - Dst: RequesterContext::encode_encap_error_response
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:219,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:226,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:226,1
    - Dst: Writer::used_slice
      Src: /src/spdm-rs/spdmlib/src/requester/encap_req.rs:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 3
    argNames:
    - session_id
    - request_id
    - encap_request
    argTypes:
    - u32
    - u8
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 228
      start: 187
    functionDepth: 11
    functionLinenumber: 187
    functionLinenumberEnd: 228
    functionName: RequesterContext::process_encapsulated_request
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/encap_req.rs
    functionUses: 3
    functionsReached:
    - Writer::used_slice
    - RequesterContext::encap_handle_get_certificate
    - Some
    - Option::ok_or
    - Writer::init
    - bool::spdm_encode
    - Reader::init
    - SpdmMessagePayload::SpdmDeliverEncapsulatedResponsePayload
    - RequesterContext::encap_handle_get_digest
    - SpdmMessageHeader::read
    - RequesterContext::send_message
    - RequesterContext::encode_encap_error_response
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn process_encapsulated_request(&mut self,session_id: u32,request_id:
      u8,encap_request: &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::encode_spdm_certificate_partial
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:27,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:29,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:33,1
    - Dst: RequesterContext::handle_spdm_certificate_partial_response
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - session_id
    - slot_id
    - total_size
    - offset
    - length
    argTypes:
    - Option<u32>
    - u8
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 46
      start: 16
    functionDepth: 13
    functionLinenumber: 16
    functionLinenumberEnd: 46
    functionName: RequesterContext::send_receive_spdm_certificate_partial
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs
    functionUses: 1
    functionsReached:
    - RequesterContext::handle_spdm_certificate_partial_response
    - RequesterContext::encode_spdm_certificate_partial
    - RequesterContext::receive_message
    - RequesterContext::send_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'async fn send_receive_spdm_certificate_partial(&mut self,session_id:
      Option<u32>,slot_id: u8,total_size: u32,offset: u32,length: u32,) -> SpdmResult<(u32,
      u32)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:55,1
    - Dst: SpdmMessagePayload::SpdmGetCertificateRequest
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:61,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - slot_id
    - offset
    - length
    - buf
    argTypes:
    - u8
    - u32
    - u32
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 70
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: RequesterContext::encode_spdm_certificate_partial
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs
    functionUses: 1
    functionsReached:
    - SpdmMessagePayload::SpdmGetCertificateRequest
    - Writer::init
    - spdm_encode
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_certificate_partial(&mut self,slot_id: u8,offset:
      u32,length: u32,buf: &mut [u8],) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:83,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:84,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:87,1
    - Dst: SpdmCertificateResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:91,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:95,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:104,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:111,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:119,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:123,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:126,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:126,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:133,1
    - Dst: append_message_b
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:144,1
    - Dst: append_message_b
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:145,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:150,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:153,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:157,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:164,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:165,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:168,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:171,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 135
    argCount: 7
    argNames:
    - session_id
    - slot_id
    - total_size
    - offset
    - length
    - send_buffer
    - receive_buffer
    argTypes:
    - Option<u32>
    - u8
    - u32
    - u32
    - u32
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 173
      start: 73
    functionDepth: 11
    functionLinenumber: 73
    functionLinenumberEnd: 173
    functionName: RequesterContext::handle_spdm_certificate_partial_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs
    functionUses: 1
    functionsReached:
    - SpdmCertificateResponsePayload::spdm_read
    - Result::used
    - Err
    - copy_from_slice
    - ok_or
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - as_mut
    - Reader::init
    - SpdmMessageHeader::read
    - append_message_b
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_certificate_partial_response(&mut self,session_id:
      Option<u32>,slot_id: u8,total_size: u32,offset: u32,length: u32,send_buffer:
      &[u8],receive_buffer: &[u8],) -> SpdmResult<(u32, u32)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:186,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:189,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:194,1
    - Dst: SpdmCertChainBuffer::default
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:194,1
    - Dst: RequesterContext::send_receive_spdm_certificate_partial
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:196,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:212,1
    - Dst: RequesterContext::verify_spdm_certificate_chain
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:215,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:216,1
    - Dst: clone_from
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 2
    argNames:
    - session_id
    - slot_id
    argTypes:
    - Option<u32>
    - u8
    constantsTouched: []
    func_position:
      end: 222
      start: 176
    functionDepth: 14
    functionLinenumber: 176
    functionLinenumberEnd: 222
    functionName: RequesterContext::send_receive_spdm_certificate
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs
    functionUses: 0
    functionsReached:
    - reset_buffer_via_request_code
    - Some
    - Err
    - SpdmCertChainBuffer::default
    - clone_from
    - RequesterContext::verify_spdm_certificate_chain
    - RequesterContext::send_receive_spdm_certificate_partial
    - SpdmResult::is_ok
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_certificate(&mut self,session_id: Option<u32>,slot_id:
      u8,) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:228,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:230,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:233,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:233,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:239,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:240,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:248,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:251,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:253,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:254,1
    - Dst: crypto::cert_operation::verify_cert_chain
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:263,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:263,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:269,1
    - Dst: crypto::cert_operation::get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:276,1
    - Dst: crypto::is_root_certificate
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:281,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:281,1
    - Dst: crypto::hash::hash_all
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:283,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:287,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:290,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:293,1
    - Dst: crypto::cert_operation::get_cert_from_cert_chain
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:301,1
    - Dst: crypto::check_leaf_certificate
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:306,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:308,1
    - Dst: SpdmResult::is_ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:306,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:318,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:326,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:326,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:334,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:346,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs:352,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 235
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 224
    functionDepth: 10
    functionLinenumber: 224
    functionLinenumberEnd: 353
    functionName: RequesterContext::verify_spdm_certificate_chain
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs
    functionUses: 1
    functionsReached:
    - crypto::hash::hash_all
    - flatten
    - crypto::is_root_certificate
    - as_ref
    - Err
    - contains
    - is_none
    - crypto::cert_operation::verify_cert_chain
    - SpdmResult::is_err
    - get_hash_size
    - ok_or
    - copy_from_slice
    - crypto::check_leaf_certificate
    - Ok
    - iter
    - crypto::cert_operation::get_cert_from_cert_chain
    - SpdmResult::is_ok
    - len
    linkageType: ''
    returnType: SpdmResult
    signature: pub fn verify_spdm_certificate_chain(&mut self) -> SpdmResult
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RequesterContext::delegate_send_receive_spdm_psk_finish
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:20,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:21,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:22,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:25,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 13
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: RequesterContext::send_receive_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs
    functionUses: 1
    functionsReached:
    - Err
    - teardown
    - Ok
    - RequesterContext::delegate_send_receive_spdm_psk_finish
    - get_session_via_id
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_psk_finish(&mut self, session_id: u32)
      -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:33,1
    - Dst: is_none
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:33,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:34,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:37,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:39,1
    - Dst: RequesterContext::encode_spdm_psk_finish
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:43,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:44,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:45,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:45,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:45,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:49,1
    - Dst: Features::err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:49,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:49,1
    - Dst: Features::unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:51,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:52,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:53,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:55,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:56,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:56,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:56,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:64,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:65,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:67,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:68,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:68,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:68,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:72,1
    - Dst: Features::err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:72,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:72,1
    - Dst: Features::unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:74,1
    - Dst: RequesterContext::handle_spdm_psk_finish_response
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:75,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:76,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:77,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:78,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 108
    argCount: 1
    argNames:
    - session_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 82
      start: 32
    functionDepth: 12
    functionLinenumber: 32
    functionLinenumberEnd: 82
    functionName: RequesterContext::delegate_send_receive_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs
    functionUses: 1
    functionsReached:
    - reset_buffer_via_request_code
    - Some
    - Err
    - unwrap
    - is_none
    - teardown
    - Features::is_err
    - ok_or
    - get_session_via_id
    - RequesterContext::send_message
    - RequesterContext::handle_spdm_psk_finish_response
    - RequesterContext::encode_spdm_psk_finish
    - Features::unwrap
    - Features::err
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn delegate_send_receive_spdm_psk_finish(&mut self, session_id:
      u32) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:85,1
    - Dst: SpdmMessagePayload::SpdmPskFinishRequest
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:97,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:99,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:100,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:105,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:108,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:111,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:114,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:114,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:118,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:120,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:120,1
    - Dst: generate_hmac_with_request_finished_key
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:124,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:124,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:126,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:127,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:130,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:130,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 2
    argNames:
    - session_id
    - buf
    argTypes:
    - u32
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 132
      start: 84
    functionDepth: 11
    functionLinenumber: 84
    functionLinenumberEnd: 132
    functionName: RequesterContext::encode_spdm_psk_finish
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs
    functionUses: 1
    functionsReached:
    - generate_hmac_with_request_finished_key
    - Option::as_ref
    - SpdmMessagePayload::SpdmPskFinishRequest
    - Writer::init
    - get_hash_size
    - ok_or
    - copy_from_slice
    - Ok
    - get_session_via_id
    - append_message_f
    - Box::new
    - SpdmResult::as_ref
    - spdm_encode
    - get_immutable_session_via_id
    - calc_req_transcript_hash
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_psk_finish(&mut self, session_id: u32, buf: &mut
      [u8]) -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:139,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:140,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:143,1
    - Dst: SpdmPskFinishResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:148,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:149,1
    - Dst: append_message_f
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:154,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:160,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:160,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:165,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:169,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:169,1
    - Dst: set_th2
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:173,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:173,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:174,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:175,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:179,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:182,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:185,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:187,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:192,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs:195,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 77
    argCount: 2
    argNames:
    - session_id
    - receive_buffer
    argTypes:
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 197
      start: 134
    functionDepth: 11
    functionLinenumber: 134
    functionLinenumberEnd: 197
    functionName: RequesterContext::handle_spdm_psk_finish_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs
    functionUses: 1
    functionsReached:
    - Result::used
    - SpdmPskFinishResponsePayload::spdm_read
    - Err
    - set_th2
    - Some
    - generate_data_secret
    - set_session_state
    - clone
    - Ok
    - ok_or
    - RequesterContext::spdm_handle_error_response_main
    - get_session_via_id
    - Reader::init
    - append_message_f
    - SpdmMessageHeader::read
    - get_immutable_session_via_id
    - calc_req_transcript_hash
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_psk_finish_response(&mut self,session_id: u32,receive_buffer:
      &[u8],) -> SpdmResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: (usize, Option::clone
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:29,1
    - Dst: SpdmPskHintStruct::default
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:31,1
    - Dst: reset_buffer_via_request_code
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:34,1
    - Dst: get_next_half_session_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:38,1
    - Dst: RequesterContext::encode_spdm_psk_exchange
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:39,1
    - Dst: RequesterContext::send_message
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:46,1
    - Dst: RequesterContext::receive_message
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:51,1
    - Dst: RequesterContext::handle_spdm_psk_exchange_response
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:56,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:65,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:66,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:70,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:72,1
    - Dst: None::unwrap
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:72,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 2
    argNames:
    - measurement_summary_hash_type
    - psk_hint
    argTypes:
    - SpdmMeasurementSummaryHashType
    - Option<&SpdmPskHintStruct>
    constantsTouched: []
    func_position:
      end: 74
      start: 21
    functionDepth: 13
    functionLinenumber: 21
    functionLinenumberEnd: 74
    functionName: RequesterContext::send_receive_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs
    functionUses: 1
    functionsReached:
    - RequesterContext::handle_spdm_psk_exchange_response
    - RequesterContext::encode_spdm_psk_exchange
    - reset_buffer_via_request_code
    - Err
    - teardown
    - get_next_half_session_id
    - Ok
    - (usize, Option::clone
    - get_session_via_id
    - SpdmPskHintStruct::default
    - RequesterContext::send_message
    - None::unwrap
    - RequesterContext::receive_message
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub async fn send_receive_spdm_psk_exchange(&mut self,measurement_summary_hash_type:
      SpdmMeasurementSummaryHashType,psk_hint: Option<&SpdmPskHintStruct>,) -> SpdmResult<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:83,1
    - Dst: crypto::rand::get_random
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:86,1
    - Dst: SecuredMessageVersion::default
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:90,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:93,1
    - Dst: flatten
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:93,1
    - Dst: SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:99,1
    - Dst: SpdmMessagePayload::SpdmPskExchangeRequest
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:111,1
    - Dst: '&SpdmPskHintStruct::clone'
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:114,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:116,1
    - Dst: spdm_encode
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 4
    argNames:
    - half_session_id
    - measurement_summary_hash_type
    - psk_hint
    - buf
    argTypes:
    - u16
    - SpdmMeasurementSummaryHashType
    - '&SpdmPskHintStruct'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 123
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 123
    functionName: RequesterContext::encode_spdm_psk_exchange
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs
    functionUses: 1
    functionsReached:
    - crypto::rand::get_random
    - flatten
    - SpdmMessagePayload::SpdmPskExchangeRequest
    - '&SpdmPskHintStruct::clone'
    - Writer::init
    - get_hash_size
    - iter
    - spdm_encode
    - SecuredMessageVersion::default
    - SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn encode_spdm_psk_exchange(&mut self,half_session_id: u16,measurement_summary_hash_type:
      SpdmMeasurementSummaryHashType,psk_hint: &SpdmPskHintStruct,buf: &mut [u8],)
      -> SpdmResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:139,1
    - Dst: SpdmMessageHeader::read
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:140,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:143,1
    - Dst: SpdmPskExchangeResponsePayload::spdm_read
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:147,1
    - Dst: Result::used
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:151,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:162,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:164,1
    - Dst: get_sequence_number_count
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:165,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:168,1
    - Dst: deref_mut
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:170,1
    - Dst: get_max_random_count
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:171,1
    - Dst: req_get_dmtf_secure_spdm_version_selection
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:174,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:174,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:181,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:183,1
    - Dst: get_next_avaiable_session
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:185,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:185,1
    - Dst: setup
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:190,1
    - Dst: set_use_psk
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:192,1
    - Dst: set_crypto_param
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:194,1
    - Dst: set_transport_param
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:201,1
    - Dst: Some
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:203,1
    - Dst: '&SpdmPskHintStruct::clone'
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:203,1
    - Dst: get_hash_size
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:209,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:212,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:213,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:218,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:218,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:224,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:227,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:227,1
    - Dst: set_th1
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:231,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:231,1
    - Dst: generate_handshake_secret
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:232,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:234,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:234,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:241,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:243,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:243,1
    - Dst: verify_hmac_with_response_finished_key
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:248,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:250,1
    - Dst: SpdmResult::is_err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:248,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:256,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:256,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:260,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:261,1
    - Dst: append_message_k
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:267,1
    - Dst: as_ref
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:269,1
    - Dst: is_err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:267,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:272,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:272,1
    - Dst: teardown
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:276,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:277,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:280,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:280,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:284,1
    - Dst: get_immutable_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:288,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:288,1
    - Dst: contains
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:292,1
    - Dst: calc_req_transcript_hash
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:300,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:304,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:304,1
    - Dst: set_th2
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:308,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:308,1
    - Dst: generate_data_secret
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:309,1
    - Dst: set_session_state
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:310,1
    - Dst: get_session_via_id
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:315,1
    - Dst: ok_or
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:315,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:322,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:325,1
    - Dst: RequesterContext::spdm_handle_error_response_main
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:329,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:336,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:337,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:340,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs:343,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 310
    argCount: 6
    argNames:
    - half_session_id
    - measurement_summary_hash_type
    - psk_hint
    - send_buffer
    - receive_buffer
    - target_session_id
    argTypes:
    - u16
    - SpdmMeasurementSummaryHashType
    - '&SpdmPskHintStruct'
    - '&[u8]'
    - '&[u8]'
    - '&mut Option<u32>'
    constantsTouched: []
    func_position:
      end: 345
      start: 125
    functionDepth: 11
    functionLinenumber: 125
    functionLinenumberEnd: 345
    functionName: RequesterContext::handle_spdm_psk_exchange_response
    functionSourceFile: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs
    functionUses: 1
    functionsReached:
    - contains
    - '&SpdmPskHintStruct::clone'
    - req_get_dmtf_secure_spdm_version_selection
    - set_use_psk
    - teardown
    - clone
    - get_hash_size
    - ok_or
    - generate_data_secret
    - get_sequence_number_count
    - lock
    - SpdmMessageHeader::read
    - get_max_random_count
    - Result::used
    - verify_hmac_with_response_finished_key
    - SpdmResult::is_err
    - generate_handshake_secret
    - set_session_state
    - set_th1
    - get_next_avaiable_session
    - deref_mut
    - Err
    - Some
    - set_th2
    - Ok
    - RequesterContext::spdm_handle_error_response_main
    - Reader::init
    - set_crypto_param
    - get_immutable_session_via_id
    - SpdmPskExchangeResponsePayload::spdm_read
    - append_message_k
    - set_transport_param
    - as_ref
    - is_err
    - get_session_via_id
    - SpdmResult::as_ref
    - setup
    - calc_req_transcript_hash
    linkageType: ''
    returnType: SpdmResult
    signature: 'pub fn handle_spdm_psk_exchange_response(&mut self,half_session_id:
      u16,measurement_summary_hash_type: SpdmMeasurementSummaryHashType,psk_hint:
      &SpdmPskHintStruct,send_buffer: &[u8],receive_buffer: &[u8],target_session_id:
      &mut Option<u32>,) -> SpdmResult<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_get_or_init
      Src: /src/spdm-rs/spdmlib/src/time/mod.rs:22,1
    - Dst: clone
      Src: /src/spdm-rs/spdmlib/src/time/mod.rs:23,1
    - Dst: ok
      Src: /src/spdm-rs/spdmlib/src/time/mod.rs:22,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib/src/time/mod.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - us
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 9
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: sleep
    functionSourceFile: /src/spdm-rs/spdmlib/src/time/mod.rs
    functionUses: 0
    functionsReached:
    - ok
    - try_get_or_init
    - unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: 'pub fn sleep(us: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_encap_handle_get_certificate
      Src: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/encapsulated_request_certificate_req.rs:3,1
    - Dst: Arc::new
      Src: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/encapsulated_request_certificate_req.rs:3,1
    - Dst: to_vec
      Src: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/encapsulated_request_certificate_req.rs:3,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 10
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: fuzz_target
    functionSourceFile: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/encapsulated_request_certificate_req.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - fuzz_encap_handle_get_certificate
    - to_vec
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expect
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/self_test.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: rand
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/self_test.rs
    functionUses: 0
    functionsReached:
    - expect
    linkageType: ''
    returnType: c_int
    signature: pub unsafe extern "C" fn rand() -> c_int
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/self_test.rs:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - rand
    - log
    argTypes:
    - fn() -> c_int
    - Option<unsafe fn(*const c_char)>
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: enable
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/self_test.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub unsafe fn enable(rand: fn() -> c_int, log: Option<unsafe fn(*const
      c_char)>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: disable
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/self_test.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub unsafe fn disable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _what
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: mbedtls_aesni_has_support
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i32
    signature: 'pub extern "C" fn mbedtls_aesni_has_support(_what: u32) -> i32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _ctx
    - _input
    - _output
    argTypes:
    - '*mut mbedtls_sys::types::raw_types::c_void'
    - '*const u8'
    - '*mut u8'
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mbedtls_internal_aes_encrypt
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i32
    signature: 'pub extern "C" fn mbedtls_internal_aes_encrypt(_ctx: *mut mbedtls_sys::types::raw_types::c_void,_input:
      *const u8,_output: *mut u8) -> i32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - _ctx
    - _input
    - _output
    argTypes:
    - '*mut mbedtls_sys::types::raw_types::c_void'
    - '*const u8'
    - '*mut u8'
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: mbedtls_internal_aes_decrypt
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i32
    signature: 'pub extern "C" fn mbedtls_internal_aes_decrypt(_ctx: *mut mbedtls_sys::types::raw_types::c_void,_input:
      *const u8,_output: *mut u8) -> i32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '*mut mbedtls_sys::types::tm::is_null'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:71,1
    - Dst: core::ptr::null_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:72,1
    - Dst: NaiveDateTime::from_timestamp_opt
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:74,1
    - Dst: core::ptr::null_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:76,1
    - Dst: DateTime::<Utc>::from_utc
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:79,1
    - Dst: second
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:82,1
    - Dst: minute
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:83,1
    - Dst: hour
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:84,1
    - Dst: day
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:85,1
    - Dst: month0
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:86,1
    - Dst: year
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:87,1
    - Dst: checked_sub
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:87,1
    - Dst: core::ptr::null_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:89,1
    - Dst: weekday
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:91,1
    - Dst: num_days_from_sunday
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:91,1
    - Dst: ordinal0
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 73
    argCount: 2
    argNames:
    - tt
    - tp
    argTypes:
    - '*const mbedtls_sys::types::time_t'
    - '*mut mbedtls_sys::types::tm'
    constantsTouched: []
    func_position:
      end: 96
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 96
    functionName: mbedtls_platform_gmtime_r
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs
    functionUses: 0
    functionsReached:
    - year
    - num_days_from_sunday
    - day
    - core::ptr::null_mut
    - second
    - hour
    - checked_sub
    - DateTime::<Utc>::from_utc
    - ordinal0
    - month0
    - weekday
    - NaiveDateTime::from_timestamp_opt
    - minute
    - '*mut mbedtls_sys::types::tm::is_null'
    linkageType: ''
    returnType: '*mut mbedtls_sys::types::tm'
    signature: 'pub unsafe extern "C" fn mbedtls_platform_gmtime_r(tt: *const mbedtls_sys::types::time_t,
      tp: *mut mbedtls_sys::types::tm) -> *mut mbedtls_sys::types::tm'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chrono::Utc::now
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:103,1
    - Dst: timestamp
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:103,1
    - Dst: '*mut mbedtls_sys::types::time_t::is_null'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - tp
    argTypes:
    - '*mut mbedtls_sys::types::time_t'
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: mbedtls_time
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs
    functionUses: 0
    functionsReached:
    - timestamp
    - chrono::Utc::now
    - '*mut mbedtls_sys::types::time_t::is_null'
    linkageType: ''
    returnType: mbedtls_sys::types::time_t
    signature: 'pub unsafe extern "C" fn mbedtls_time(tp: *mut mbedtls_sys::types::time_t)
      -> mbedtls_sys::types::time_t'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '*mut *mut StaticMutex::as_mut'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:50,1
    - Dst: Box::into_raw
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:51,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:51,1
    - Dst: Mutex::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - '*mut *mut StaticMutex'
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: StaticMutex::init
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs
    functionUses: 0
    functionsReached:
    - Mutex::new
    - Box::into_raw
    - '*mut *mut StaticMutex::as_mut'
    - Box::new
    linkageType: ''
    returnType: void
    signature: 'unsafe extern "C" fn init(mutex: *mut *mut StaticMutex)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '*mut *mut StaticMutex::as_mut'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:59,1
    - Dst: ptr::null_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:60,1
    - Dst: Box::from_raw
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:61,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:62,1
    - Dst: ptr::null_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - '*mut *mut StaticMutex'
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: StaticMutex::free
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs
    functionUses: 0
    functionsReached:
    - ptr::null_mut
    - '*mut *mut StaticMutex::as_mut'
    - take
    - Box::from_raw
    linkageType: ''
    returnType: void
    signature: 'unsafe extern "C" fn free(mutex: *mut *mut StaticMutex)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '*mut *mut StaticMutex::as_mut'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:69,1
    - Dst: '&mut [u8]::and_then'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:69,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:69,1
    - Dst: lock
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - '*mut *mut StaticMutex'
    constantsTouched: []
    func_position:
      end: 87
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 87
    functionName: StaticMutex::lock
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::and_then'
    - as_mut
    - '*mut *mut StaticMutex::as_mut'
    - lock
    linkageType: ''
    returnType: c_int
    signature: 'unsafe extern "C" fn lock(mutex: *mut *mut StaticMutex) -> c_int'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '*mut *mut StaticMutex::as_mut'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:90,1
    - Dst: '&mut [u8]::and_then'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:90,1
    - Dst: as_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:90,1
    - Dst: take
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - '*mut *mut StaticMutex'
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: StaticMutex::unlock
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::and_then'
    - as_mut
    - '*mut *mut StaticMutex::as_mut'
    - take
    linkageType: ''
    returnType: c_int
    signature: 'unsafe extern "C" fn unlock(mutex: *mut *mut StaticMutex) -> c_int'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ptr::null_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:101,1
    - Dst: mbedtls_mutex_init
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:102,1
    - Dst: mbedtls_mutex_free
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:103,1
    - Dst: mbedtls_mutex_free
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: test_double_free
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs
    functionUses: 1
    functionsReached:
    - mbedtls_mutex_free
    - ptr::null_mut
    - mbedtls_mutex_init
    linkageType: ''
    returnType: void
    signature: pub fn test_double_free()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_double_free
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: tests::double_free
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs
    functionUses: 0
    functionsReached:
    - test_double_free
    linkageType: ''
    returnType: void
    signature: fn double_free()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:53,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:55,1
    - Dst: hmac
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:67,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:67,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:67,1
    - Dst: SpdmDigestStruct::from
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:70,1
    - Dst: hmac_verify
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:71,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:71,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 10
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: tests::test_case_rfc4231_2
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs
    functionUses: 0
    functionsReached:
    - Option::as_ref
    - copy_from_slice
    - hmac_verify
    - Option::unwrap
    - Box::new
    - SpdmResult::unwrap
    - hmac
    - SpdmDigestStruct::from
    linkageType: ''
    returnType: void
    signature: fn test_case_rfc4231_2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - _user_data
    - data
    - len
    argTypes:
    - '*mut c_void'
    - '*mut c_uchar'
    - size_t
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 14
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: RdRand::call
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
    functionUses: 0
    functionsReached:
    - random
    linkageType: ''
    returnType: c_int
    signature: 'unsafe extern "C" fn call(_user_data: *mut c_void, data: *mut c_uchar,
      len: size_t) -> c_intwhereSelf: Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: core::ptr::null_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: RdRand::data_ptr
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
    functionUses: 0
    functionsReached:
    - core::ptr::null_mut
    linkageType: ''
    returnType: '*mut c_void'
    signature: fn data_ptr(&self) -> *mut c_void
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:129,1
    - Dst: generate_key_pair
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:130,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:130,1
    - Dst: generate_key_pair
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:131,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:131,1
    - Dst: compute_final_key
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:133,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:133,1
    - Dst: compute_final_key
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:134,1
    - Dst: unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 11
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: test_case0_dhe
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
    functionUses: 0
    functionsReached:
    - compute_final_key
    - unwrap
    - Option::unwrap
    - iter
    - generate_key_pair
    linkageType: ''
    returnType: void
    signature: fn test_case0_dhe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmDheAlgo::empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:141,1
    - Dst: iter
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: test_case1_dhe
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
    functionUses: 0
    functionsReached:
    - SpdmDheAlgo::empty
    - iter
    linkageType: ''
    returnType: void
    signature: fn test_case1_dhe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:82,1
    - Dst: len
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: hash_ext::get_hash_ctx_count
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs
    functionUses: 0
    functionsReached:
    - len
    - lock
    linkageType: ''
    returnType: usize
    signature: pub fn get_hash_ctx_count() -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:114,1
    - Dst: hash_all
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:115,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:115,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 107
    functionDepth: 10
    functionLinenumber: 107
    functionLinenumberEnd: 126
    functionName: test_case1_hash_all
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs
    functionUses: 0
    functionsReached:
    - Option::as_ref
    - String::new
    - hash_all
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case1_hash_all()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SliceReader::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:76,1
    - Dst: Self::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:76,1
    - Dst: mbedtls::alloc::List::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:77,1
    - Dst: mbedtls::alloc::List::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:78,1
    - Dst: Result::tlv_bytes
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:80,1
    - Dst: Features::is_err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:81,1
    - Dst: Features::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:84,1
    - Dst: Certificate::from_der
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:85,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:85,1
    - Dst: Self::is_empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:86,1
    - Dst: Self::push
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:87,1
    - Dst: SpdmResult::push
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:89,1
    - Dst: SpdmResult::is_empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:92,1
    - Dst: Self::is_empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:92,1
    - Dst: SpdmResult::is_empty
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:95,1
    - Dst: SpdmResult::append
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:96,1
    - Dst: Self::clone
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:96,1
    - Dst: Certificate::verify
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:99,1
    - Dst: bool::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: test_certificate
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::append
    - SpdmResult::push
    - Self::clone
    - Self::unwrap
    - Certificate::from_der
    - bool::unwrap
    - Result::tlv_bytes
    - SpdmResult::is_empty
    - Self::is_empty
    - Features::is_err
    - Result::unwrap
    - mbedtls::alloc::List::new
    - Self::push
    - SliceReader::new
    - Certificate::verify
    - Features::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_hex_to_aead_key
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:156,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:156,1
    - Dst: from_hex_to_aead_iv
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:160,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:160,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:161,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:161,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:162,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:162,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:163,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:163,1
    - Dst: from_hex
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:164,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:164,1
    - Dst: encrypt
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:169,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:169,1
    - Dst: decrypt
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:174,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 177
    functionName: test::test_case_gcm256
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs
    functionUses: 0
    functionsReached:
    - from_hex_to_aead_iv
    - from_hex
    - Result::unwrap
    - from_hex_to_aead_key
    - SpdmResult::unwrap
    - encrypt
    - decrypt
    linkageType: ''
    returnType: void
    signature: fn test_case_gcm256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:180,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:181,1
    - Dst: String::from
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:181,1
    - Dst: Vec::with_capacity
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:186,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:186,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:187,1
    - Dst: chunks
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:187,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:188,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:189,1
    - Dst: BytesMutStrubbed::push
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:190,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - hex_str
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: test::from_hex
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs
    functionUses: 3
    functionsReached:
    - chunks
    - BytesMutStrubbed::push
    - Err
    - from_hex_digit
    - Ok
    - '&str::len'
    - Vec::with_capacity
    - String::from
    - '&str::as_bytes'
    linkageType: ''
    returnType: Result
    signature: 'fn from_hex(hex_str: &str) -> Result<Vec<u8>, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:196,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:196,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:197,1
    - Dst: String::from
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:197,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:203,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:204,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:206,1
    - Dst: chunks
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:206,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:206,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:207,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:208,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 1
    argNames:
    - hex_str
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: test::from_hex_to_aead_key
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs
    functionUses: 0
    functionsReached:
    - chunks
    - Err
    - from_hex_digit
    - Ok
    - '&str::len'
    - Box::new
    - String::from
    - enumerate
    - '&str::as_bytes'
    linkageType: ''
    returnType: Result
    signature: 'fn from_hex_to_aead_key(hex_str: &str) -> Result<SpdmAeadKeyStruct,
      String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:215,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:215,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:216,1
    - Dst: String::from
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:216,1
    - Dst: '&str::len'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:222,1
    - Dst: Box::new
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:223,1
    - Dst: '&str::as_bytes'
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:225,1
    - Dst: chunks
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:225,1
    - Dst: enumerate
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:225,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:226,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:227,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 1
    argNames:
    - hex_str
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 231
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 231
    functionName: test::from_hex_to_aead_iv
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs
    functionUses: 0
    functionsReached:
    - chunks
    - Err
    - from_hex_digit
    - Ok
    - '&str::len'
    - Box::new
    - String::from
    - enumerate
    - '&str::as_bytes'
    linkageType: ''
    returnType: Result
    signature: 'fn from_hex_to_aead_iv(hex_str: &str) -> Result<SpdmAeadIvStruct,
      String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:239,1
    - Dst: Ok
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:240,1
    - Dst: start
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:240,1
    - Dst: Err
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - d
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: test::from_hex_digit
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs
    functionUses: 0
    functionsReached:
    - start
    - contains
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn from_hex_digit(d: u8) -> Result<u8, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: core::arch::x86_64::_rdrand64_step
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:22,1
    - Dst: Output::add
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:22,1
    - Dst: core::arch::x86_64::_rdrand64_step
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:32,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:32,1
    - Dst: core::slice::from_raw_parts_mut
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:38,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs:38,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 49
    argCount: 2
    argNames:
    - output
    - len
    argTypes:
    - '*mut u8'
    - usize
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 13
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: random
    functionSourceFile: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs
    functionUses: 15
    functionsReached:
    - core::slice::from_raw_parts_mut
    - core::arch::x86_64::_rdrand64_step
    - Output::add
    - copy_from_slice
    - as_mut_ptr
    linkageType: ''
    returnType: i32
    signature: 'pub unsafe fn random(output: *mut u8, len: usize) -> i32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::env::var_os
      Src: /src/spdm-rs/external/ring/build.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - '&''static str'
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: env::var_os
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 4
    functionsReached:
    - std::env::var_os
    linkageType: ''
    returnType: Option
    signature: 'pub fn var_os(name: &''static str) -> Option<OsString>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: var_os
      Src: /src/spdm-rs/external/ring/build.rs:43,1
    - Dst: Option::and_then
      Src: /src/spdm-rs/external/ring/build.rs:43,1
    - Dst: SpdmResult::into_string
      Src: /src/spdm-rs/external/ring/build.rs:43,1
    - Dst: ok
      Src: /src/spdm-rs/external/ring/build.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - '&''static str'
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 9
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: env::var
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 3
    functionsReached:
    - ok
    - Option::and_then
    - SpdmResult::into_string
    - var_os
    linkageType: ''
    returnType: Option
    signature: 'pub fn var(name: &''static str) -> Option<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&cc::Tool::is_like_msvc'
      Src: /src/spdm-rs/external/ring/build.rs:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - '&cc::Tool'
    constantsTouched: []
    func_position:
      end: 168
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 168
    functionName: cpp_flags
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - '&cc::Tool::is_like_msvc'
    linkageType: ''
    returnType: '&''static [&''static str]'
    signature: 'fn cpp_flags(compiler: &cc::Tool) -> &''static [&''static str]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/spdm-rs/external/ring/build.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: AsmTarget::use_nasm
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: fn use_nasm(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env::var_os
      Src: /src/spdm-rs/external/ring/build.rs:306,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:306,1
    - Dst: PathBuf::from
      Src: /src/spdm-rs/external/ring/build.rs:307,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:309,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:309,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:310,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:310,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:311,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:311,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:312,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:312,1
    - Dst: fs::metadata
      Src: /src/spdm-rs/external/ring/build.rs:315,1
    - Dst: '&Path::join'
      Src: /src/spdm-rs/external/ring/build.rs:315,1
    - Dst: is_ok
      Src: /src/spdm-rs/external/ring/build.rs:315,1
    - Dst: env::var
      Src: /src/spdm-rs/external/ring/build.rs:318,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:318,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/build.rs:335,1
    - Dst: find
      Src: /src/spdm-rs/external/ring/build.rs:335,1
    - Dst: contains
      Src: /src/spdm-rs/external/ring/build.rs:336,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/build.rs:336,1
    - Dst: '&Path::join'
      Src: /src/spdm-rs/external/ring/build.rs:351,1
    - Dst: generate_sources_and_preassemble
      Src: /src/spdm-rs/external/ring/build.rs:353,1
    - Dst: into_iter
      Src: /src/spdm-rs/external/ring/build.rs:355,1
    - Dst: Self::clone
      Src: /src/spdm-rs/external/ring/build.rs:359,1
    - Dst: build_c_code
      Src: /src/spdm-rs/external/ring/build.rs:362,1
    - Dst: emit_rerun_if_changed
      Src: /src/spdm-rs/external/ring/build.rs:370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 62
    argCount: 2
    argNames:
    - c_root_dir
    - core_name_and_version
    argTypes:
    - '&Path'
    - '&str'
    constantsTouched: []
    func_position:
      end: 371
      start: 305
    functionDepth: 10
    functionLinenumber: 305
    functionLinenumberEnd: 371
    functionName: ring_build_rs_main
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - emit_rerun_if_changed
    - find
    - '&Path::join'
    - contains
    - as_ref
    - fs::metadata
    - generate_sources_and_preassemble
    - Self::clone
    - env::var
    - env::var_os
    - Option::unwrap
    - iter
    - into_iter
    - build_c_code
    - PathBuf::from
    - is_ok
    linkageType: ''
    returnType: void
    signature: 'fn ring_build_rs_main(c_root_dir: &Path, core_name_and_version: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Path::join'
      Src: /src/spdm-rs/external/ring/build.rs:374,1
    - Dst: fs::create_dir
      Src: /src/spdm-rs/external/ring/build.rs:375,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/build.rs:375,1
    - Dst: generate_sources_and_preassemble
      Src: /src/spdm-rs/external/ring/build.rs:376,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/build.rs:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - c_root_dir
    - core_name_and_version
    argTypes:
    - '&Path'
    - '&str'
    constantsTouched: []
    func_position:
      end: 382
      start: 373
    functionDepth: 7
    functionLinenumber: 373
    functionLinenumberEnd: 382
    functionName: pregenerate_asm_main
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - '&Path::join'
    - generate_sources_and_preassemble
    - unwrap
    - fs::create_dir
    - iter
    linkageType: ''
    returnType: void
    signature: 'fn pregenerate_asm_main(c_root_dir: &Path, core_name_and_version:
      &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: generate_prefix_symbols_headers
      Src: /src/spdm-rs/external/ring/build.rs:390,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:390,1
    - Dst: get_perl_exe
      Src: /src/spdm-rs/external/ring/build.rs:392,1
    - Dst: perlasm_src_dsts
      Src: /src/spdm-rs/external/ring/build.rs:395,1
    - Dst: perlasm
      Src: /src/spdm-rs/external/ring/build.rs:396,1
    - Dst: use_nasm
      Src: /src/spdm-rs/external/ring/build.rs:398,1
    - Dst: asm_srcs
      Src: /src/spdm-rs/external/ring/build.rs:402,1
    - Dst: nasm
      Src: /src/spdm-rs/external/ring/build.rs:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - out_dir
    - asm_targets
    - c_root_dir
    - core_name_and_version
    argTypes:
    - '&Path'
    - impl Iterator<Item = &'a AsmTarget>
    - '&Path'
    - '&str'
    constantsTouched: []
    func_position:
      end: 408
      start: 384
    functionDepth: 6
    functionLinenumber: 384
    functionLinenumberEnd: 408
    functionName: generate_sources_and_preassemble
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 2
    functionsReached:
    - perlasm
    - perlasm_src_dsts
    - asm_srcs
    - get_perl_exe
    - Result::unwrap
    - nasm
    - use_nasm
    - generate_prefix_symbols_headers
    linkageType: ''
    returnType: void
    signature: 'fn generate_sources_and_preassemble<''a>(out_dir: &Path,asm_targets:
      impl Iterator<Item = &''a AsmTarget>,c_root_dir: &Path,core_name_and_version:
      &str,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: perlasm_src_dsts
      Src: /src/spdm-rs/external/ring/build.rs:433,1
    - Dst: asm_srcs
      Src: /src/spdm-rs/external/ring/build.rs:435,1
    - Dst: Option<&AsmTarget>::use_nasm
      Src: /src/spdm-rs/external/ring/build.rs:437,1
    - Dst: Vec::iter
      Src: /src/spdm-rs/external/ring/build.rs:440,1
    - Dst: Self::IntoIter::map
      Src: /src/spdm-rs/external/ring/build.rs:440,1
    - Dst: obj_path
      Src: /src/spdm-rs/external/ring/build.rs:442,1
    - Dst: as_path
      Src: /src/spdm-rs/external/ring/build.rs:442,1
    - Dst: "iter()\n                .map(|src| obj_path(generated_dir, src.as_path()))\n\
        \                .collect::<Vec<_>>"
      Src: /src/spdm-rs/external/ring/build.rs:440,1
    - Dst: sources_for_arch
      Src: /src/spdm-rs/external/ring/build.rs:452,1
    - Dst: Vec::into_iter
      Src: /src/spdm-rs/external/ring/build.rs:452,1
    - Dst: Self::IntoIter::filter
      Src: /src/spdm-rs/external/ring/build.rs:452,1
    - Dst: is_perlasm
      Src: /src/spdm-rs/external/ring/build.rs:454,1
    - Dst: filter
      Src: /src/spdm-rs/external/ring/build.rs:452,1
    - Dst: extension
      Src: /src/spdm-rs/external/ring/build.rs:456,1
    - Dst: "arch)\n        .into_iter()\n        .filter(|p| !is_perlasm(p))\n   \
        \     .filter(|p| {\n            if let Some(extension) = p.extension() {\n\
        \                // We don't (and can't) use any .S on Windows since MSVC\
        \ and NASM can't assemble\n                // them.\n                if extension\
        \ == \"S\"\n                    && (target.arch == X86_64 || target.arch ==\
        \ X86)\n                    && target.os == WINDOWS\n                {\n \
        \                   return false;\n                }\n            }\n    \
        \        true\n        })\n        .collect::<Vec<_>>"
      Src: /src/spdm-rs/external/ring/build.rs:452,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/build.rs:470,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/build.rs:470,1
    - Dst: iter().map(PathBuf::from).collect::<Vec<_>>
      Src: /src/spdm-rs/external/ring/build.rs:470,1
    - Dst: String::from
      Src: /src/spdm-rs/external/ring/build.rs:480,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/build.rs:489,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/build.rs:489,1
    - Dst: Vec::iter
      Src: /src/spdm-rs/external/ring/build.rs:491,1
    - Dst: Self::IntoIter::chain
      Src: /src/spdm-rs/external/ring/build.rs:491,1
    - Dst: build_library
      Src: /src/spdm-rs/external/ring/build.rs:492,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 6
    argNames:
    - asm_target
    - target
    - generated_dir
    - c_root_dir
    - out_dir
    - core_name_and_version
    argTypes:
    - Option<&AsmTarget>
    - '&Target'
    - '&Path'
    - '&Path'
    - '&Path'
    - '&str'
    constantsTouched: []
    func_position:
      end: 507
      start: 424
    functionDepth: 5
    functionLinenumber: 424
    functionLinenumberEnd: 507
    functionName: build_c_code
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - map
    - perlasm_src_dsts
    - "iter()\n                .map(|src| obj_path(generated_dir, src.as_path()))\n\
      \                .collect::<Vec<_>>"
    - Self::IntoIter::filter
    - extension
    - sources_for_arch
    - Vec::iter
    - iter().map(PathBuf::from).collect::<Vec<_>>
    - filter
    - build_library
    - asm_srcs
    - Option<&AsmTarget>::use_nasm
    - iter
    - is_perlasm
    - Vec::into_iter
    - "arch)\n        .into_iter()\n        .filter(|p| !is_perlasm(p))\n        .filter(|p|\
      \ {\n            if let Some(extension) = p.extension() {\n                //\
      \ We don't (and can't) use any .S on Windows since MSVC and NASM can't assemble\n\
      \                // them.\n                if extension == \"S\"\n         \
      \           && (target.arch == X86_64 || target.arch == X86)\n             \
      \       && target.os == WINDOWS\n                {\n                    return\
      \ false;\n                }\n            }\n            true\n        })\n \
      \       .collect::<Vec<_>>"
    - Self::IntoIter::map
    - obj_path
    - for_each
    - as_path
    - String::from
    - Self::IntoIter::chain
    linkageType: ''
    returnType: void
    signature: 'fn build_c_code(asm_target: Option<&AsmTarget>,target: &Target,generated_dir:
      &Path,c_root_dir: &Path,out_dir: &Path,core_name_and_version: &str,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cc::Build::new
      Src: /src/spdm-rs/external/ring/build.rs:510,1
    - Dst: configure_cc
      Src: /src/spdm-rs/external/ring/build.rs:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - target
    - c_root_dir
    - include_dir
    argTypes:
    - '&Target'
    - '&Path'
    - '&Path'
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: new_build
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - cc::Build::new
    - configure_cc
    linkageType: ''
    returnType: cc::Build
    signature: 'fn new_build(target: &Target, c_root_dir: &Path, include_dir: &Path)
      -> cc::Build'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: new_build
      Src: /src/spdm-rs/external/ring/build.rs:524,1
    - Dst: Vec::for_each
      Src: /src/spdm-rs/external/ring/build.rs:527,1
    - Dst: file
      Src: /src/spdm-rs/external/ring/build.rs:528,1
    - Dst: '&Path::join'
      Src: /src/spdm-rs/external/ring/build.rs:528,1
    - Dst: '&[PathBuf]::iter'
      Src: /src/spdm-rs/external/ring/build.rs:531,1
    - Dst: Self::IntoIter::for_each
      Src: /src/spdm-rs/external/ring/build.rs:531,1
    - Dst: object
      Src: /src/spdm-rs/external/ring/build.rs:532,1
    - Dst: PathBuf::from
      Src: /src/spdm-rs/external/ring/build.rs:536,1
    - Dst: Self::join
      Src: /src/spdm-rs/external/ring/build.rs:536,1
    - Dst: cargo_metadata
      Src: /src/spdm-rs/external/ring/build.rs:539,1
    - Dst: compile
      Src: /src/spdm-rs/external/ring/build.rs:541,1
    - Dst: file_name
      Src: /src/spdm-rs/external/ring/build.rs:542,1
    - Dst: and_then
      Src: /src/spdm-rs/external/ring/build.rs:542,1
    - Dst: SpdmCertChainBuffer::to_str
      Src: /src/spdm-rs/external/ring/build.rs:544,1
    - Dst: expect
      Src: /src/spdm-rs/external/ring/build.rs:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 7
    argNames:
    - target
    - c_root_dir
    - out_dir
    - lib_name
    - srcs
    - include_dir
    - preassembled_objs
    argTypes:
    - '&Target'
    - '&Path'
    - '&Path'
    - '&str'
    - impl Iterator<Item = &'a PathBuf>
    - '&Path'
    - '&[PathBuf]'
    constantsTouched: []
    func_position:
      end: 551
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 551
    functionName: build_library
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - file
    - new_build
    - expect
    - '&Path::join'
    - Self::join
    - cargo_metadata
    - and_then
    - SpdmCertChainBuffer::to_str
    - Self::IntoIter::for_each
    - '&[PathBuf]::iter'
    - file_name
    - object
    - PathBuf::from
    - Vec::for_each
    - compile
    linkageType: ''
    returnType: void
    signature: 'fn build_library<''a>(target: &Target,c_root_dir: &Path,out_dir: &Path,lib_name:
      &str,srcs: impl Iterator<Item = &''a PathBuf>,include_dir: &Path,preassembled_objs:
      &[PathBuf],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Path::join'
      Src: /src/spdm-rs/external/ring/build.rs:554,1
    - Dst: '&Path::file_name'
      Src: /src/spdm-rs/external/ring/build.rs:554,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/build.rs:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out_dir
    - src
    argTypes:
    - '&Path'
    - '&Path'
    constantsTouched: []
    func_position:
      end: 560
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 560
    functionName: obj_path
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 2
    functionsReached:
    - '&Path::file_name'
    - unwrap
    - '&Path::join'
    linkageType: ''
    returnType: PathBuf
    signature: 'fn obj_path(out_dir: &Path, src: &Path) -> PathBuf'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_compiler
      Src: /src/spdm-rs/external/ring/build.rs:563,1
    - Dst: is_like_clang
      Src: /src/spdm-rs/external/ring/build.rs:565,1
    - Dst: compiler
      Src: /src/spdm-rs/external/ring/build.rs:566,1
    - Dst: get_compiler
      Src: /src/spdm-rs/external/ring/build.rs:567,1
    - Dst: include
      Src: /src/spdm-rs/external/ring/build.rs:572,1
    - Dst: '&Path::join'
      Src: /src/spdm-rs/external/ring/build.rs:572,1
    - Dst: include
      Src: /src/spdm-rs/external/ring/build.rs:573,1
    - Dst: cpp_flags
      Src: /src/spdm-rs/external/ring/build.rs:574,1
    - Dst: flag
      Src: /src/spdm-rs/external/ring/build.rs:575,1
    - Dst: contains
      Src: /src/spdm-rs/external/ring/build.rs:578,1
    - Dst: as_str
      Src: /src/spdm-rs/external/ring/build.rs:578,1
    - Dst: flag
      Src: /src/spdm-rs/external/ring/build.rs:580,1
    - Dst: is_like_msvc
      Src: /src/spdm-rs/external/ring/build.rs:581,1
    - Dst: flag
      Src: /src/spdm-rs/external/ring/build.rs:582,1
    - Dst: define
      Src: /src/spdm-rs/external/ring/build.rs:586,1
    - Dst: is_like_msvc
      Src: /src/spdm-rs/external/ring/build.rs:590,1
    - Dst: is_like_clang_cl
      Src: /src/spdm-rs/external/ring/build.rs:590,1
    - Dst: flag
      Src: /src/spdm-rs/external/ring/build.rs:592,1
    - Dst: is_like_clang
      Src: /src/spdm-rs/external/ring/build.rs:602,1
    - Dst: flag
      Src: /src/spdm-rs/external/ring/build.rs:603,1
    - Dst: flag
      Src: /src/spdm-rs/external/ring/build.rs:605,1
    - Dst: define
      Src: /src/spdm-rs/external/ring/build.rs:606,1
    - Dst: try_get_compiler
      Src: /src/spdm-rs/external/ring/build.rs:613,1
    - Dst: is_like_clang
      Src: /src/spdm-rs/external/ring/build.rs:614,1
    - Dst: define
      Src: /src/spdm-rs/external/ring/build.rs:615,1
    - Dst: flag
      Src: /src/spdm-rs/external/ring/build.rs:616,1
    - Dst: warnings_into_errors
      Src: /src/spdm-rs/external/ring/build.rs:622,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 116
    argCount: 4
    argNames:
    - c
    - target
    - c_root_dir
    - include_dir
    argTypes:
    - '&mut cc::Build'
    - '&Target'
    - '&Path'
    - '&Path'
    constantsTouched: []
    func_position:
      end: 624
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 624
    functionName: configure_cc
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - warnings_into_errors
    - '&Path::join'
    - contains
    - flag
    - is_like_clang_cl
    - define
    - as_str
    - is_like_msvc
    - cpp_flags
    - try_get_compiler
    - get_compiler
    - is_like_clang
    - compiler
    - include
    linkageType: ''
    returnType: void
    signature: 'fn configure_cc(c: &mut cc::Build, target: &Target, c_root_dir: &Path,
      include_dir: &Path)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: obj_path
      Src: /src/spdm-rs/external/ring/build.rs:627,1
    - Dst: '&Path::as_os_str'
      Src: /src/spdm-rs/external/ring/build.rs:635,1
    - Dst: to_os_string
      Src: /src/spdm-rs/external/ring/build.rs:635,1
    - Dst: '&Path::push'
      Src: /src/spdm-rs/external/ring/build.rs:636,1
    - Dst: OsString::from
      Src: /src/spdm-rs/external/ring/build.rs:636,1
    - Dst: String::from
      Src: /src/spdm-rs/external/ring/build.rs:636,1
    - Dst: Command::new
      Src: /src/spdm-rs/external/ring/build.rs:638,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: PathBuf::to_str
      Src: /src/spdm-rs/external/ring/build.rs:641,1
    - Dst: expect
      Src: /src/spdm-rs/external/ring/build.rs:641,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: arg
      Src: /src/spdm-rs/external/ring/build.rs:639,1
    - Dst: '&Path::join'
      Src: /src/spdm-rs/external/ring/build.rs:650,1
    - Dst: run_command
      Src: /src/spdm-rs/external/ring/build.rs:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 5
    argNames:
    - file
    - arch
    - include_dir
    - out_dir
    - c_root_dir
    argTypes:
    - '&Path'
    - '&str'
    - '&Path'
    - '&Path'
    - '&Path'
    constantsTouched: []
    func_position:
      end: 652
      start: 626
    functionDepth: 4
    functionLinenumber: 626
    functionLinenumberEnd: 652
    functionName: nasm
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 3
    functionsReached:
    - '&Path::push'
    - Command::new
    - '&Path::as_os_str'
    - to_os_string
    - PathBuf::to_str
    - expect
    - '&Path::join'
    - run_command
    - OsString::from
    - arg
    - String::from
    - obj_path
    linkageType: ''
    returnType: void
    signature: 'fn nasm(file: &Path, arch: &str, include_dir: &Path, out_dir: &Path,
      c_root_dir: &Path)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/spdm-rs/external/ring/build.rs:655,1
    - Dst: Self::args
      Src: /src/spdm-rs/external/ring/build.rs:656,1
    - Dst: run_command
      Src: /src/spdm-rs/external/ring/build.rs:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - command_name
    - args
    argTypes:
    - '&Path'
    - '&[OsString]'
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: run_command_with_args
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - Command::new
    - run_command
    - Self::args
    linkageType: ''
    returnType: void
    signature: 'fn run_command_with_args(command_name: &Path, args: &[OsString])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::stderr
      Src: /src/spdm-rs/external/ring/build.rs:662,1
    - Dst: Stdio::inherit
      Src: /src/spdm-rs/external/ring/build.rs:662,1
    - Dst: Command::status
      Src: /src/spdm-rs/external/ring/build.rs:663,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/build.rs:663,1
    - Dst: success
      Src: /src/spdm-rs/external/ring/build.rs:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - Command
    constantsTouched: []
    func_position:
      end: 669
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 669
    functionName: run_command
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 2
    functionsReached:
    - Command::status
    - success
    - unwrap_or_else
    - Stdio::inherit
    - Command::stderr
    linkageType: ''
    returnType: void
    signature: 'fn run_command(mut cmd: Command)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/external/ring/build.rs:672,1
    - Dst: filter
      Src: /src/spdm-rs/external/ring/build.rs:672,1
    - Dst: is_empty
      Src: /src/spdm-rs/external/ring/build.rs:674,1
    - Dst: contains
      Src: /src/spdm-rs/external/ring/build.rs:674,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/build.rs:672,1
    - Dst: PathBuf::from
      Src: /src/spdm-rs/external/ring/build.rs:675,1
    - Dst: "iter()\n        .filter(|&&(archs, _)| archs.is_empty() || archs.contains(&arch))\n\
        \        .map(|&(_, p)| PathBuf::from(p))\n        .collect::<Vec<_>>"
      Src: /src/spdm-rs/external/ring/build.rs:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - arch
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 677
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 677
    functionName: sources_for_arch
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 2
    functionsReached:
    - map
    - filter
    - contains
    - is_empty
    - iter
    - "iter()\n        .filter(|&&(archs, _)| archs.is_empty() || archs.contains(&arch))\n\
      \        .map(|&(_, p)| PathBuf::from(p))\n        .collect::<Vec<_>>"
    - PathBuf::from
    linkageType: ''
    returnType: Vec
    signature: 'fn sources_for_arch(arch: &str) -> Vec<PathBuf>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sources_for_arch
      Src: /src/spdm-rs/external/ring/build.rs:680,1
    - Dst: Vec::iter
      Src: /src/spdm-rs/external/ring/build.rs:681,1
    - Dst: Self::IntoIter::filter
      Src: /src/spdm-rs/external/ring/build.rs:681,1
    - Dst: is_perlasm
      Src: /src/spdm-rs/external/ring/build.rs:683,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/build.rs:681,1
    - Dst: clone
      Src: /src/spdm-rs/external/ring/build.rs:684,1
    - Dst: asm_path
      Src: /src/spdm-rs/external/ring/build.rs:684,1
    - Dst: "iter()\n        .filter(|p| is_perlasm(p))\n        .map(|src| (src.clone(),\
        \ asm_path(out_dir, src, asm_target)))\n        .collect::<Vec<_>>"
      Src: /src/spdm-rs/external/ring/build.rs:681,1
    - Dst: PathBuf::from
      Src: /src/spdm-rs/external/ring/build.rs:692,1
    - Dst: Vec::contains
      Src: /src/spdm-rs/external/ring/build.rs:693,1
    - Dst: PathBuf::from
      Src: /src/spdm-rs/external/ring/build.rs:694,1
    - Dst: Vec::push
      Src: /src/spdm-rs/external/ring/build.rs:695,1
    - Dst: asm_path
      Src: /src/spdm-rs/external/ring/build.rs:697,1
    - Dst: maybe_synthesize
      Src: /src/spdm-rs/external/ring/build.rs:701,1
    - Dst: maybe_synthesize
      Src: /src/spdm-rs/external/ring/build.rs:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 2
    argNames:
    - out_dir
    - asm_target
    argTypes:
    - '&Path'
    - '&AsmTarget'
    constantsTouched: []
    func_position:
      end: 706
      start: 679
    functionDepth: 4
    functionLinenumber: 679
    functionLinenumberEnd: 706
    functionName: perlasm_src_dsts
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 2
    functionsReached:
    - map
    - "iter()\n        .filter(|p| is_perlasm(p))\n        .map(|src| (src.clone(),\
      \ asm_path(out_dir, src, asm_target)))\n        .collect::<Vec<_>>"
    - Self::IntoIter::filter
    - Vec::contains
    - maybe_synthesize
    - clone
    - Vec::push
    - PathBuf::from
    - Vec::iter
    - asm_path
    - sources_for_arch
    - is_perlasm
    linkageType: ''
    returnType: Vec
    signature: 'fn perlasm_src_dsts(out_dir: &Path, asm_target: &AsmTarget) -> Vec<(PathBuf,
      PathBuf)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::into_iter
      Src: /src/spdm-rs/external/ring/build.rs:709,1
    - Dst: Self::IntoIter::map
      Src: /src/spdm-rs/external/ring/build.rs:709,1
    - Dst: "into_iter()\n        .map(|(_src, dst)| dst)\n        .collect::<Vec<_>>"
      Src: /src/spdm-rs/external/ring/build.rs:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - perlasm_src_dsts
    argTypes:
    - Vec<(PathBuf, PathBuf)>
    constantsTouched: []
    func_position:
      end: 713
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 713
    functionName: asm_srcs
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 2
    functionsReached:
    - Self::IntoIter::map
    - "into_iter()\n        .map(|(_src, dst)| dst)\n        .collect::<Vec<_>>"
    - Vec::into_iter
    linkageType: ''
    returnType: Vec
    signature: 'fn asm_srcs(perlasm_src_dsts: Vec<(PathBuf, PathBuf)>) -> Vec<PathBuf>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::extension
      Src: /src/spdm-rs/external/ring/build.rs:716,1
    - Dst: SpdmResult::unwrap
      Src: /src/spdm-rs/external/ring/build.rs:716,1
    - Dst: to_str
      Src: /src/spdm-rs/external/ring/build.rs:716,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/build.rs:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 717
      start: 715
    functionDepth: 4
    functionLinenumber: 715
    functionLinenumberEnd: 717
    functionName: is_perlasm
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 2
    functionsReached:
    - unwrap
    - to_str
    - PathBuf::extension
    - SpdmResult::unwrap
    linkageType: ''
    returnType: bool
    signature: 'fn is_perlasm(path: &Path) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Path::file_stem'
      Src: /src/spdm-rs/external/ring/build.rs:720,1
    - Dst: expect
      Src: /src/spdm-rs/external/ring/build.rs:720,1
    - Dst: to_str
      Src: /src/spdm-rs/external/ring/build.rs:722,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/build.rs:722,1
    - Dst: '&AsmTarget::use_nasm'
      Src: /src/spdm-rs/external/ring/build.rs:724,1
    - Dst: '&Path::join'
      Src: /src/spdm-rs/external/ring/build.rs:725,1
    - Dst: with_extension
      Src: /src/spdm-rs/external/ring/build.rs:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - out_dir
    - src
    - asm_target
    argTypes:
    - '&Path'
    - '&Path'
    - '&AsmTarget'
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: asm_path
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - expect
    - '&Path::join'
    - unwrap
    - to_str
    - with_extension
    - '&AsmTarget::use_nasm'
    - '&Path::file_stem'
    linkageType: ''
    returnType: PathBuf
    signature: 'fn asm_path(out_dir: &Path, src: &Path, asm_target: &AsmTarget) ->
      PathBuf'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/spdm-rs/external/ring/build.rs:740,1
    - Dst: '&str::into'
      Src: /src/spdm-rs/external/ring/build.rs:740,1
    - Dst: push
      Src: /src/spdm-rs/external/ring/build.rs:744,1
    - Dst: join_components_with_forward_slashes
      Src: /src/spdm-rs/external/ring/build.rs:744,1
    - Dst: run_command_with_args
      Src: /src/spdm-rs/external/ring/build.rs:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - perl_exe
    - src_dst
    - asm_target
    - c_root_dir
    argTypes:
    - '&Path'
    - '&[(PathBuf, PathBuf)]'
    - '&AsmTarget'
    - '&Path'
    constantsTouched: []
    func_position:
      end: 747
      start: 728
    functionDepth: 4
    functionLinenumber: 728
    functionLinenumberEnd: 747
    functionName: perlasm
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 3
    functionsReached:
    - push
    - '&str::into'
    - join_components_with_forward_slashes
    - run_command_with_args
    linkageType: ''
    returnType: void
    signature: 'fn perlasm(perl_exe: &Path,src_dst: &[(PathBuf, PathBuf)],asm_target:
      &AsmTarget,c_root_dir: &Path,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::components
      Src: /src/spdm-rs/external/ring/build.rs:750,1
    - Dst: Self::map
      Src: /src/spdm-rs/external/ring/build.rs:750,1
    - Dst: as_os_str
      Src: /src/spdm-rs/external/ring/build.rs:750,1
    - Dst: components().map(|c| c.as_os_str()).collect::<Vec<_>>
      Src: /src/spdm-rs/external/ring/build.rs:750,1
    - Dst: join
      Src: /src/spdm-rs/external/ring/build.rs:751,1
    - Dst: OsStr::new
      Src: /src/spdm-rs/external/ring/build.rs:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 752
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 752
    functionName: join_components_with_forward_slashes
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - OsStr::new
    - PathBuf::components
    - as_os_str
    - Self::map
    - join
    - components().map(|c| c.as_os_str()).collect::<Vec<_>>
    linkageType: ''
    returnType: OsString
    signature: 'fn join_components_with_forward_slashes(path: &Path) -> OsString'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_command
      Src: /src/spdm-rs/external/ring/build.rs:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 5
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: get_perl_exe
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - get_command
    linkageType: ''
    returnType: PathBuf
    signature: fn get_perl_exe() -> PathBuf
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/spdm-rs/external/ring/build.rs:759,1
    - Dst: env::var_os
      Src: /src/spdm-rs/external/ring/build.rs:759,1
    - Dst: Option::unwrap_or_else
      Src: /src/spdm-rs/external/ring/build.rs:759,1
    - Dst: Self::into
      Src: /src/spdm-rs/external/ring/build.rs:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - var
    - default
    argTypes:
    - '&''static str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 760
      start: 758
    functionDepth: 4
    functionLinenumber: 758
    functionLinenumberEnd: 760
    functionName: get_command
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - PathBuf::from
    - Self::into
    - Option::unwrap_or_else
    - env::var_os
    linkageType: ''
    returnType: PathBuf
    signature: 'fn get_command(var: &''static str, default: &str) -> PathBuf'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: walk_dir
      Src: /src/spdm-rs/external/ring/build.rs:766,1
    - Dst: PathBuf::from
      Src: /src/spdm-rs/external/ring/build.rs:766,1
    - Dst: '&[Limb]::path'
      Src: /src/spdm-rs/external/ring/build.rs:767,1
    - Dst: PathBuf::extension
      Src: /src/spdm-rs/external/ring/build.rs:768,1
    - Dst: SpdmResult::and_then
      Src: /src/spdm-rs/external/ring/build.rs:768,1
    - Dst: SpdmContext::to_str
      Src: /src/spdm-rs/external/ring/build.rs:768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 778
      start: 764
    functionDepth: 4
    functionLinenumber: 764
    functionLinenumberEnd: 778
    functionName: emit_rerun_if_changed
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - walk_dir
    - SpdmResult::and_then
    - SpdmContext::to_str
    - PathBuf::from
    - PathBuf::extension
    - '&[Limb]::path'
    linkageType: ''
    returnType: void
    signature: fn emit_rerun_if_changed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_dir
      Src: /src/spdm-rs/external/ring/build.rs:781,1
    - Dst: fs::read_dir
      Src: /src/spdm-rs/external/ring/build.rs:782,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/build.rs:782,1
    - Dst: '&[Limb]::unwrap'
      Src: /src/spdm-rs/external/ring/build.rs:783,1
    - Dst: '&[Limb]::path'
      Src: /src/spdm-rs/external/ring/build.rs:784,1
    - Dst: PathBuf::is_dir
      Src: /src/spdm-rs/external/ring/build.rs:785,1
    - Dst: walk_dir
      Src: /src/spdm-rs/external/ring/build.rs:786,1
    - Dst: cb
      Src: /src/spdm-rs/external/ring/build.rs:788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - dir
    - cb
    argTypes:
    - '&Path'
    - '&impl Fn(&DirEntry)'
    constantsTouched: []
    func_position:
      end: 792
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 792
    functionName: walk_dir
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 2
    functionsReached:
    - unwrap
    - is_dir
    - '&[Limb]::unwrap'
    - fs::read_dir
    - cb
    - PathBuf::is_dir
    - walk_dir
    - '&[Limb]::path'
    linkageType: ''
    returnType: void
    signature: 'fn walk_dir(dir: &Path, cb: &impl Fn(&DirEntry))'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from
      Src: /src/spdm-rs/external/ring/build.rs:802,1
    - Dst: generate_prefix_symbols_header
      Src: /src/spdm-rs/external/ring/build.rs:804,1
    - Dst: generate_prefix_symbols_header
      Src: /src/spdm-rs/external/ring/build.rs:806,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/build.rs:810,1
    - Dst: generate_prefix_symbols_header
      Src: /src/spdm-rs/external/ring/build.rs:814,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/build.rs:818,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/build.rs:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - out_dir
    - core_name_and_version
    argTypes:
    - '&Path'
    - '&str'
    constantsTouched: []
    func_position:
      end: 823
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 823
    functionName: generate_prefix_symbols_headers
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - generate_prefix_symbols_header
    - Some
    - Ok
    - String::from
    linkageType: ''
    returnType: Result
    signature: 'fn generate_prefix_symbols_headers(out_dir: &Path,core_name_and_version:
      &str,) -> Result<(), std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Path::join'
      Src: /src/spdm-rs/external/ring/build.rs:832,1
    - Dst: fs::create_dir_all
      Src: /src/spdm-rs/external/ring/build.rs:833,1
    - Dst: join
      Src: /src/spdm-rs/external/ring/build.rs:835,1
    - Dst: fs::File::create
      Src: /src/spdm-rs/external/ring/build.rs:836,1
    - Dst: '&str::replace'
      Src: /src/spdm-rs/external/ring/build.rs:838,1
    - Dst: to_uppercase
      Src: /src/spdm-rs/external/ring/build.rs:838,1
    - Dst: Option<&str>::is_some
      Src: /src/spdm-rs/external/ring/build.rs:855,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/build.rs:861,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - out_dir
    - filename
    - pp
    - prefix_condition
    - prefix
    argTypes:
    - '&Path'
    - '&str'
    - char
    - Option<&str>
    - '&str'
    constantsTouched: []
    func_position:
      end: 862
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 862
    functionName: generate_prefix_symbols_header
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 1
    functionsReached:
    - fs::create_dir_all
    - '&Path::join'
    - Ok
    - Option<&str>::is_some
    - to_uppercase
    - join
    - fs::File::create
    - '&str::replace'
    linkageType: ''
    returnType: Result
    signature: 'fn generate_prefix_symbols_header(out_dir: &Path,filename: &str,pp:
      char,prefix_condition: Option<&str>,prefix: &str,) -> Result<(), std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/spdm-rs/external/ring/build.rs:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - pp
    - prefix_prefix
    - prefix
    argTypes:
    - char
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1060
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 1060
    functionName: prefix_all_symbols
    functionSourceFile: /src/spdm-rs/external/ring/build.rs
    functionUses: 0
    functionsReached:
    - String::new
    linkageType: ''
    returnType: String
    signature: 'fn prefix_all_symbols(pp: char, prefix_prefix: &str, prefix: &str)
      -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::compile_time_assert_std_error_error::<error::Unspecified>
      Src: /src/spdm-rs/external/ring/tests/error_tests.rs:10,1
    - Dst: test::compile_time_assert_std_error_error::<error::KeyRejected>
      Src: /src/spdm-rs/external/ring/tests/error_tests.rs:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 12
    functionName: error_impl_std_error_error_test
    functionSourceFile: /src/spdm-rs/external/ring/tests/error_tests.rs
    functionUses: 0
    functionsReached:
    - test::compile_time_assert_std_error_error::<error::Unspecified>
    - test::compile_time_assert_std_error_error::<error::KeyRejected>
    linkageType: ''
    returnType: void
    signature: fn error_impl_std_error_error_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:28,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:30,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:31,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:35,1
    - Dst: '&''static agreement::Algorithm::as_str'
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:36,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:60,1
    - Dst: Option::consume_optional_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:62,1
    - Dst: signature::EcdsaKeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:65,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:66,1
    - Dst: signature::EcdsaKeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:75,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 27
    functionDepth: 11
    functionLinenumber: 27
    functionLinenumberEnd: 90
    functionName: ecdsa_from_pkcs8_test
    functionSourceFile: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - '&''static agreement::Algorithm::as_str'
    - ring::test_file
    - Ok
    - rand::SystemRandom::new
    - SpdmResult::clone
    - test::run
    - signature::EcdsaKeyPair::from_pkcs8
    - Option::consume_string
    - Option::consume_optional_string
    linkageType: ''
    returnType: void
    signature: fn ecdsa_from_pkcs8_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:95,1
    - Dst: signature::EcdsaKeyPair::generate_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:103,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:103,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:105,1
    - Dst: signature::EcdsaKeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:112,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:112,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 16
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: ecdsa_generate_pkcs8_test
    functionSourceFile: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs
    functionUses: 0
    functionsReached:
    - signature::EcdsaKeyPair::generate_pkcs8
    - as_ref
    - Result::unwrap
    - rand::SystemRandom::new
    - signature::EcdsaKeyPair::from_pkcs8
    linkageType: ''
    returnType: void
    signature: fn ecdsa_generate_pkcs8_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:118,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:119,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:123,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:124,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:125,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:126,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:127,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:128,1
    - Dst: '&''static agreement::Algorithm::as_str'
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:130,1
    - Dst: String::as_str
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:130,1
    - Dst: signature::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:141,1
    - Dst: Self::verify
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:141,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 117
    functionDepth: 8
    functionLinenumber: 117
    functionLinenumberEnd: 147
    functionName: signature_ecdsa_verify_asn1_test
    functionSourceFile: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - '&''static agreement::Algorithm::as_str'
    - String::as_str
    - signature::UnparsedPublicKey::new
    - ring::test_file
    - Ok
    - Self::verify
    - test::run
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: fn signature_ecdsa_verify_asn1_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:151,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:152,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:156,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:157,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:159,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:160,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:161,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:162,1
    - Dst: '&''static agreement::Algorithm::as_str'
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:164,1
    - Dst: String::as_str
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:164,1
    - Dst: signature::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:175,1
    - Dst: Self::verify
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:175,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 150
    functionDepth: 8
    functionLinenumber: 150
    functionLinenumberEnd: 181
    functionName: signature_ecdsa_verify_fixed_test
    functionSourceFile: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - '&''static agreement::Algorithm::as_str'
    - String::as_str
    - signature::UnparsedPublicKey::new
    - ring::test_file
    - Ok
    - Self::verify
    - test::run
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: fn signature_ecdsa_verify_fixed_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:189,1
    - Dst: signature::EcdsaKeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:190,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:190,1
    - Dst: Option::public_key
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:202,1
    - Dst: Result::clone
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:202,1
    - Dst: Option::public_key
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 184
    functionDepth: 16
    functionLinenumber: 184
    functionLinenumberEnd: 213
    functionName: ecdsa_test_public_key_coverage
    functionSourceFile: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs
    functionUses: 0
    functionsReached:
    - Result::clone
    - Result::unwrap
    - Option::public_key
    - rand::SystemRandom::new
    - signature::EcdsaKeyPair::from_pkcs8
    linkageType: ''
    returnType: void
    signature: fn ecdsa_test_public_key_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:222,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:224,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:225,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:229,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:230,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:232,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:233,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:234,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:237,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:238,1
    - Dst: '&''static agreement::Algorithm::as_str'
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:240,1
    - Dst: String::as_str
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:240,1
    - Dst: signature::EcdsaKeyPair::from_private_key_and_public_key
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:256,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:256,1
    - Dst: Result::sign
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:259,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:259,1
    - Dst: signature::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:261,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 221
    functionDepth: 11
    functionLinenumber: 221
    functionLinenumberEnd: 267
    functionName: signature_ecdsa_sign_fixed_sign_and_verify_test
    functionSourceFile: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - '&''static agreement::Algorithm::as_str'
    - String::as_str
    - signature::UnparsedPublicKey::new
    - ring::test_file
    - Result::unwrap
    - Ok
    - rand::SystemRandom::new
    - Option::unwrap
    - test::run
    - signature::EcdsaKeyPair::from_private_key_and_public_key
    - Option::consume_string
    - Result::sign
    linkageType: ''
    returnType: void
    signature: fn signature_ecdsa_sign_fixed_sign_and_verify_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:276,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:278,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:279,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:283,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:284,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:286,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:287,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:288,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:291,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:292,1
    - Dst: '&''static agreement::Algorithm::as_str'
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:294,1
    - Dst: String::as_str
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:294,1
    - Dst: signature::EcdsaKeyPair::from_private_key_and_public_key
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:310,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:310,1
    - Dst: Result::sign
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:313,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:313,1
    - Dst: signature::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:315,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 275
    functionDepth: 11
    functionLinenumber: 275
    functionLinenumberEnd: 321
    functionName: signature_ecdsa_sign_asn1_test
    functionSourceFile: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - '&''static agreement::Algorithm::as_str'
    - String::as_str
    - signature::UnparsedPublicKey::new
    - ring::test_file
    - Result::unwrap
    - Ok
    - rand::SystemRandom::new
    - Option::unwrap
    - test::run
    - signature::EcdsaKeyPair::from_private_key_and_public_key
    - Option::consume_string
    - Result::sign
    linkageType: ''
    returnType: void
    signature: fn signature_ecdsa_sign_asn1_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:29,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:29,1
    - Dst: Option::consume_digest_alg
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:32,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:32,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:42,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:43,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:44,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:45,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:46,1
    - Dst: hkdf::Salt::new
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:48,1
    - Dst: Self::extract
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:51,1
    - Dst: Option::expand
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:51,1
    - Dst: My
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:53,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:53,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:51,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:51,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 28
    functionDepth: 8
    functionLinenumber: 28
    functionLinenumberEnd: 60
    functionName: hkdf_tests
    functionSourceFile: /src/spdm-rs/external/ring/tests/hkdf_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - My
    - into
    - ring::test_file
    - Option::ok_or
    - hkdf::Salt::new
    - Ok
    - Vec::len
    - Option::unwrap
    - test::run
    - Option::expand
    - Self::extract
    - Option::consume_digest_alg
    linkageType: ''
    returnType: void
    signature: fn hkdf_tests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hkdf::Salt::new
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:67,1
    - Dst: Self::extract
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:68,1
    - Dst: Option::expand
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:72,1
    - Dst: My
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:72,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:72,1
    - Dst: Option::into
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:73,1
    - Dst: Option::hmac_algorithm
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:77,1
    - Dst: hmac::Algorithm::digest_algorithm
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:77,1
    - Dst: '&''static digest::Algorithm::output_len'
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:77,1
    - Dst: Option::expand
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:81,1
    - Dst: My
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:81,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:81,1
    - Dst: Option::into
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:82,1
    - Dst: Option::expand
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:93,1
    - Dst: My
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:93,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:93,1
    - Dst: Option::expand
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:100,1
    - Dst: My
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:100,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:100,1
    - Dst: Option::expand
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:107,1
    - Dst: My
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:107,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 112
    functionName: hkdf_output_len_tests
    functionSourceFile: /src/spdm-rs/external/ring/tests/hkdf_tests.rs
    functionUses: 0
    functionsReached:
    - hmac::Algorithm::digest_algorithm
    - My
    - hkdf::Salt::new
    - Option::unwrap
    - Option::expand
    - Option::into
    - Self::extract
    - '&''static digest::Algorithm::output_len'
    - Option::hmac_algorithm
    linkageType: ''
    returnType: void
    signature: fn hkdf_output_len_tests()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: My::len
    functionSourceFile: /src/spdm-rs/external/ring/tests/hkdf_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::fill
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:128,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:128,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/tests/hkdf_tests.rs:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - okm
    argTypes:
    - hkdf::Okm<My<usize>>
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: My::from
    functionSourceFile: /src/spdm-rs/external/ring/tests/hkdf_tests.rs
    functionUses: 0
    functionsReached:
    - Self
    - Result::unwrap
    - Option::fill
    linkageType: ''
    returnType: Self
    signature: 'fn from(okm: hkdf::Okm<My<usize>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:33,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:33,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:35,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:38,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:41,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:43,1
    - Dst: Ed25519KeyPair::from_seed_and_public_key
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:46,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:46,1
    - Dst: Option::sign
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:47,1
    - Dst: Ed25519KeyPair::generate_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:54,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:54,1
    - Dst: Ed25519KeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:55,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:55,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:55,1
    - Dst: Option::sign
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:59,1
    - Dst: test_signature_verification
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:63,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:63,1
    - Dst: test_signature_verification
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:68,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:68,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 32
    functionDepth: 11
    functionLinenumber: 32
    functionLinenumberEnd: 72
    functionName: test_signature_ed25519
    functionSourceFile: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - Option::sign
    - Ed25519KeyPair::from_seed_and_public_key
    - Ed25519KeyPair::from_pkcs8
    - as_ref
    - Err
    - test_signature_verification
    - ring::test_file
    - Result::unwrap
    - Ok
    - test::run
    - Ed25519KeyPair::generate_pkcs8
    linkageType: ''
    returnType: void
    signature: fn test_signature_ed25519()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:77,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:78,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:82,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:83,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:84,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:85,1
    - Dst: String::as_str
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:85,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:86,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:87,1
    - Dst: test_signature_verification
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:90,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 76
    functionDepth: 8
    functionLinenumber: 76
    functionLinenumberEnd: 94
    functionName: test_signature_ed25519_verify
    functionSourceFile: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - String::as_str
    - Err
    - ring::test_file
    - Ok
    - test::run
    - Option::consume_string
    - test_signature_verification
    linkageType: ''
    returnType: void
    signature: fn test_signature_ed25519_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - public_key
    - msg
    - sig
    - expected_result
    argTypes:
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    - Result<(), error::Unspecified>
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: test_signature_verification
    functionSourceFile: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn test_signature_verification(public_key: &[u8],msg: &[u8],sig: &[u8],expected_result:
      Result<(), error::Unspecified>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: test_ed25519_from_seed_and_public_key_misuse
    functionSourceFile: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_ed25519_from_seed_and_public_key_misuse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_ed25519_from_pkcs8_
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 9
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: test_ed25519_from_pkcs8_unchecked
    functionSourceFile: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
    functionUses: 0
    functionsReached:
    - test_ed25519_from_pkcs8_
    linkageType: ''
    returnType: void
    signature: fn test_ed25519_from_pkcs8_unchecked()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_ed25519_from_pkcs8_
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 9
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: test_ed25519_from_pkcs8
    functionSourceFile: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
    functionUses: 0
    functionsReached:
    - test_ed25519_from_pkcs8_
    linkageType: ''
    returnType: void
    signature: fn test_ed25519_from_pkcs8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:148,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:149,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:152,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:154,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:155,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:163,1
    - Dst: Option::consume_optional_bytes
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:167,1
    - Dst: Self::is_none
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:168,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:169,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:169,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 2
    argNames:
    - variant
    - f
    argTypes:
    - FromPkcs8Variant
    - impl Fn(&[u8]) -> Result<Ed25519KeyPair, error::KeyRejected>
    constantsTouched: []
    func_position:
      end: 192
      start: 143
    functionDepth: 8
    functionLinenumber: 143
    functionLinenumberEnd: 192
    functionName: test_ed25519_from_pkcs8_
    functionSourceFile: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
    functionUses: 2
    functionsReached:
    - Option::consume_bytes
    - Some
    - ring::test_file
    - Option::consume_optional_bytes
    - Ok
    - Option::unwrap
    - test::run
    - Self::is_none
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: 'fn test_ed25519_from_pkcs8_(variant: FromPkcs8Variant,f: impl Fn(&[u8])
      -> Result<Ed25519KeyPair, error::KeyRejected>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:196,1
    - Dst: Ed25519KeyPair::generate_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:197,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:197,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:198,1
    - Dst: Ed25519KeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:200,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 195
    functionDepth: 16
    functionLinenumber: 195
    functionLinenumberEnd: 206
    functionName: ed25519_test_generate_pkcs8
    functionSourceFile: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
    functionUses: 0
    functionsReached:
    - Ed25519KeyPair::from_pkcs8
    - as_ref
    - Result::unwrap
    - rand::SystemRandom::new
    - Ed25519KeyPair::generate_pkcs8
    linkageType: ''
    returnType: void
    signature: fn ed25519_test_generate_pkcs8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ed25519KeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:215,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:215,1
    - Dst: Option::public_key
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:222,1
    - Dst: Result::clone
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:222,1
    - Dst: Option::public_key
      Src: /src/spdm-rs/external/ring/tests/ed25519_tests.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 209
    functionDepth: 14
    functionLinenumber: 209
    functionLinenumberEnd: 236
    functionName: ed25519_test_public_key_coverage
    functionSourceFile: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
    functionUses: 0
    functionsReached:
    - Option::public_key
    - Result::unwrap
    - Result::clone
    - Ed25519KeyPair::from_pkcs8
    linkageType: ''
    returnType: void
    signature: fn ed25519_test_public_key_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:31,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:31,1
    - Dst: Option::consume_digest_alg
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:34,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:34,1
    - Dst: Option::consume_usize
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:47,1
    - Dst: usize::try_into
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:47,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:47,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:48,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:48,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:49,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:50,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:51,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:52,1
    - Dst: String::as_str
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:53,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:54,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:55,1
    - Dst: pbkdf2::derive
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:61,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 30
    functionDepth: 11
    functionLinenumber: 30
    functionLinenumberEnd: 72
    functionName: pbkdf2_tests
    functionSourceFile: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - String::as_str
    - Err
    - unwrap
    - ring::test_file
    - Result::unwrap
    - usize::try_into
    - Option::consume_usize
    - Ok
    - pbkdf2::derive
    - Option::unwrap
    - test::run
    - try_into
    - Option::consume_digest_alg
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: pub fn pbkdf2_tests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:29,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:29,1
    - Dst: Option::consume_digest_alg
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:31,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:32,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:33,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:34,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:40,1
    - Dst: hmac_test_case_inner
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:56,1
    - Dst: untrusted::Input::is_empty
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:59,1
    - Dst: untrusted::Input::push
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:60,1
    - Dst: hmac_test_case_inner
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:65,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 28
    functionDepth: 9
    functionLinenumber: 28
    functionLinenumberEnd: 69
    functionName: hmac_tests
    functionSourceFile: /src/spdm-rs/external/ring/tests/hmac_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - ring::test_file
    - untrusted::Input::push
    - Ok
    - test::run
    - Option::consume_digest_alg
    - untrusted::Input::is_empty
    - hmac_test_case_inner
    linkageType: ''
    returnType: void
    signature: fn hmac_tests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hmac::Key::new
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:78,1
    - Dst: hmac::sign
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:82,1
    - Dst: hmac::Context::with_key
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:89,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:90,1
    - Dst: Self::sign
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:91,1
    - Dst: hmac::Context::with_key
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:97,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:99,1
    - Dst: Self::sign
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 5
    argNames:
    - algorithm
    - key_value
    - input
    - output
    - is_ok
    argTypes:
    - hmac::Algorithm
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 104
      start: 71
    functionDepth: 11
    functionLinenumber: 71
    functionLinenumberEnd: 104
    functionName: hmac_test_case_inner
    functionSourceFile: /src/spdm-rs/external/ring/tests/hmac_tests.rs
    functionUses: 1
    functionsReached:
    - hmac::Key::new
    - Self::sign
    - Self::update
    - hmac::sign
    - hmac::Context::with_key
    linkageType: ''
    returnType: void
    signature: 'fn hmac_test_case_inner(algorithm: hmac::Algorithm,key_value: &[u8],input:
      &[u8],output: &[u8],is_ok: bool,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hmac::Key::new
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:108,1
    - Dst: hmac::Context::with_key
      Src: /src/spdm-rs/external/ring/tests/hmac_tests.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: hmac_debug
    functionSourceFile: /src/spdm-rs/external/ring/tests/hmac_tests.rs
    functionUses: 0
    functionsReached:
    - hmac::Key::new
    - hmac::Context::with_key
    linkageType: ''
    returnType: void
    signature: fn hmac_debug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:35,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:36,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:40,1
    - Dst: Option::consume_optional_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:41,1
    - Dst: rsa::KeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:43,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 12
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: rsa_from_pkcs8_test
    functionSourceFile: /src/spdm-rs/external/ring/tests/rsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - rsa::KeyPair::from_pkcs8
    - ring::test_file
    - Ok
    - test::run
    - Option::consume_optional_string
    linkageType: ''
    returnType: void
    signature: fn rsa_from_pkcs8_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:58,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:59,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:60,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:64,1
    - Dst: String::as_ref
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:65,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:72,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:73,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:74,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:75,1
    - Dst: rsa::KeyPair::from_der
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:77,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:80,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:82,1
    - Dst: Option::sign
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:87,1
    - Dst: as_mut_slice
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:88,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:87,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 94
    functionName: test_signature_rsa_pkcs1_sign
    functionSourceFile: /src/spdm-rs/external/ring/tests/rsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - Option::sign
    - String::as_ref
    - ring::test_file
    - Ok
    - rand::SystemRandom::new
    - as_mut_slice
    - Option::unwrap
    - test::run
    - Option::consume_string
    - rsa::KeyPair::from_der
    linkageType: ''
    returnType: void
    signature: fn test_signature_rsa_pkcs1_sign()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:99,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:100,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:104,1
    - Dst: String::as_ref
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:105,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:112,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:113,1
    - Dst: rsa::KeyPair::from_der
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:114,1
    - Dst: Option::is_err
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:115,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:116,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:118,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:119,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:120,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:121,1
    - Dst: Option::sign
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:127,1
    - Dst: as_mut_slice
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:127,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 98
    functionDepth: 8
    functionLinenumber: 98
    functionLinenumberEnd: 132
    functionName: test_signature_rsa_pss_sign
    functionSourceFile: /src/spdm-rs/external/ring/tests/rsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - Option::sign
    - String::as_ref
    - ring::test_file
    - Option::is_err
    - Ok
    - as_mut_slice
    - Option::unwrap
    - test::run
    - Option::consume_string
    - rsa::KeyPair::from_der
    linkageType: ''
    returnType: void
    signature: fn test_signature_rsa_pss_sign()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:141,1
    - Dst: rsa::KeyPair::from_der
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:145,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:145,1
    - Dst: Option::public
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:151,1
    - Dst: '&PublicKey::modulus_len'
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 137
    functionDepth: 7
    functionLinenumber: 137
    functionLinenumberEnd: 160
    functionName: test_signature_rsa_pkcs1_sign_output_buffer_len
    functionSourceFile: /src/spdm-rs/external/ring/tests/rsa_tests.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - rand::SystemRandom::new
    - Option::public
    - '&PublicKey::modulus_len'
    - rsa::KeyPair::from_der
    linkageType: ''
    returnType: void
    signature: fn test_signature_rsa_pkcs1_sign_output_buffer_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:193,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:194,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:198,1
    - Dst: String::as_ref
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:199,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:207,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:212,1
    - Dst: Self::read_all
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:212,1
    - Dst: der::nested
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:214,1
    - Dst: der::positive_integer
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:216,1
    - Dst: big_endian_without_leading_zero
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:216,1
    - Dst: der::positive_integer
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:217,1
    - Dst: usize::try_from
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:221,1
    - Dst: leading_zeros
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:221,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:221,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:223,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:223,1
    - Dst: expect
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:212,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:228,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:229,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:230,1
    - Dst: signature::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:234,1
    - Dst: Self::verify
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:234,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 164
    functionDepth: 8
    functionLinenumber: 164
    functionLinenumberEnd: 241
    functionName: test_signature_rsa_pkcs1_verify
    functionSourceFile: /src/spdm-rs/external/ring/tests/rsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - expect
    - usize::try_from
    - String::as_ref
    - signature::UnparsedPublicKey::new
    - untrusted::Input::from
    - ring::test_file
    - big_endian_without_leading_zero
    - der::nested
    - Result::unwrap
    - Ok
    - Self::verify
    - test::run
    - Self::read_all
    - Option::consume_string
    - leading_zeros
    - Result::len
    - der::positive_integer
    linkageType: ''
    returnType: void
    signature: fn test_signature_rsa_pkcs1_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:246,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:247,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:251,1
    - Dst: String::as_ref
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:252,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:259,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:277,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:278,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:279,1
    - Dst: signature::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:282,1
    - Dst: Self::verify
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:282,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 245
    functionDepth: 8
    functionLinenumber: 245
    functionLinenumberEnd: 288
    functionName: test_signature_rsa_pss_verify
    functionSourceFile: /src/spdm-rs/external/ring/tests/rsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - String::as_ref
    - signature::UnparsedPublicKey::new
    - ring::test_file
    - Ok
    - Self::verify
    - test::run
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: fn test_signature_rsa_pss_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:295,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:296,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:299,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:300,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:301,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:302,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:303,1
    - Dst: Result::verify
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:305,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 294
    functionDepth: 8
    functionLinenumber: 294
    functionLinenumberEnd: 310
    functionName: test_signature_rsa_primitive_verification
    functionSourceFile: /src/spdm-rs/external/ring/tests/rsa_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - Result::verify
    - ring::test_file
    - Ok
    - test::run
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: fn test_signature_rsa_primitive_verification()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsa::KeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:317,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:317,1
    - Dst: Option::public_key
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:321,1
    - Dst: test_public_key_coverage
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:323,1
    - Dst: Option::public
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:323,1
    - Dst: test_public_key_coverage
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:325,1
    - Dst: Option::public
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:325,1
    - Dst: '&PublicKey::clone'
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 314
    functionDepth: 16
    functionLinenumber: 314
    functionLinenumberEnd: 332
    functionName: rsa_test_keypair_coverage
    functionSourceFile: /src/spdm-rs/external/ring/tests/rsa_tests.rs
    functionUses: 0
    functionsReached:
    - rsa::KeyPair::from_pkcs8
    - '&PublicKey::clone'
    - test_public_key_coverage
    - Result::unwrap
    - Option::public_key
    - Option::public
    linkageType: ''
    returnType: void
    signature: fn rsa_test_keypair_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsa::PublicKeyComponents::<Vec<_>>::from
      Src: /src/spdm-rs/external/ring/tests/rsa_tests.rs:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&rsa::PublicKey'
    constantsTouched: []
    func_position:
      end: 348
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 348
    functionName: test_public_key_coverage
    functionSourceFile: /src/spdm-rs/external/ring/tests/rsa_tests.rs
    functionUses: 1
    functionsReached:
    - rsa::PublicKeyComponents::<Vec<_>>::from
    linkageType: ''
    returnType: void
    signature: 'fn test_public_key_coverage(key: &rsa::PublicKey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::compile_time_assert_clone::<signature::Signature>
      Src: /src/spdm-rs/external/ring/tests/signature_tests.rs:15,1
    - Dst: test::compile_time_assert_copy::<signature::Signature>
      Src: /src/spdm-rs/external/ring/tests/signature_tests.rs:16,1
    - Dst: test::compile_time_assert_send::<signature::Signature>
      Src: /src/spdm-rs/external/ring/tests/signature_tests.rs:17,1
    - Dst: test::compile_time_assert_sync::<signature::Signature>
      Src: /src/spdm-rs/external/ring/tests/signature_tests.rs:18,1
    - Dst: signature::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/signature_tests.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: signature_impl_test
    functionSourceFile: /src/spdm-rs/external/ring/tests/signature_tests.rs
    functionUses: 0
    functionsReached:
    - signature::UnparsedPublicKey::new
    - test::compile_time_assert_copy::<signature::Signature>
    - test::compile_time_assert_sync::<signature::Signature>
    - test::compile_time_assert_send::<signature::Signature>
    - test::compile_time_assert_clone::<signature::Signature>
    linkageType: ''
    returnType: void
    signature: fn signature_impl_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:33,1
    - Dst: agreement::EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:35,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:35,1
    - Dst: test::compile_time_assert_send::<agreement::EphemeralPrivateKey>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:37,1
    - Dst: test::compile_time_assert_sync::<agreement::EphemeralPrivateKey>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:38,1
    - Dst: Result::compute_public_key
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:45,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:45,1
    - Dst: test::compile_time_assert_clone::<agreement::PublicKey>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:47,1
    - Dst: test::compile_time_assert_send::<agreement::PublicKey>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:48,1
    - Dst: test::compile_time_assert_sync::<agreement::PublicKey>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:49,1
    - Dst: test::compile_time_assert_clone::<agreement::UnparsedPublicKey<&[u8]>>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:56,1
    - Dst: test::compile_time_assert_copy::<agreement::UnparsedPublicKey<&[u8]>>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:57,1
    - Dst: test::compile_time_assert_sync::<agreement::UnparsedPublicKey<&[u8]>>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:58,1
    - Dst: test::compile_time_assert_clone::<agreement::UnparsedPublicKey<Vec<u8>>>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:60,1
    - Dst: test::compile_time_assert_sync::<agreement::UnparsedPublicKey<Vec<u8>>>
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:61,1
    - Dst: agreement::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 30
    functionDepth: 16
    functionLinenumber: 30
    functionLinenumberEnd: 73
    functionName: agreement_traits
    functionSourceFile: /src/spdm-rs/external/ring/tests/agreement_tests.rs
    functionUses: 0
    functionsReached:
    - test::compile_time_assert_copy::<agreement::UnparsedPublicKey<&[u8]>>
    - test::compile_time_assert_sync::<agreement::UnparsedPublicKey<&[u8]>>
    - test::compile_time_assert_send::<agreement::EphemeralPrivateKey>
    - test::compile_time_assert_clone::<agreement::PublicKey>
    - test::compile_time_assert_clone::<agreement::UnparsedPublicKey<&[u8]>>
    - test::compile_time_assert_clone::<agreement::UnparsedPublicKey<Vec<u8>>>
    - test::compile_time_assert_sync::<agreement::UnparsedPublicKey<Vec<u8>>>
    - Result::unwrap
    - agreement::EphemeralPrivateKey::generate
    - rand::SystemRandom::new
    - test::compile_time_assert_send::<agreement::PublicKey>
    - agreement::UnparsedPublicKey::new
    - test::compile_time_assert_sync::<agreement::EphemeralPrivateKey>
    - Result::compute_public_key
    - test::compile_time_assert_sync::<agreement::PublicKey>
    linkageType: ''
    returnType: void
    signature: fn agreement_traits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:77,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:79,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:79,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:82,1
    - Dst: alg_from_curve_name
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:83,1
    - Dst: agreement::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:84,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:84,1
    - Dst: Option::consume_optional_string
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:86,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:88,1
    - Dst: agreement::EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:92,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:94,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:95,1
    - Dst: Vec::compute_public_key
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:99,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:99,1
    - Dst: agreement::agree_ephemeral
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:104,1
    - Dst: agreement::EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:113,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 76
    functionDepth: 11
    functionLinenumber: 76
    functionLinenumberEnd: 131
    functionName: agreement_agree_ephemeral
    functionSourceFile: /src/spdm-rs/external/ring/tests/agreement_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - Vec::compute_public_key
    - ring::test_file
    - Result::unwrap
    - agreement::EphemeralPrivateKey::generate
    - Ok
    - rand::SystemRandom::new
    - test::run
    - agreement::UnparsedPublicKey::new
    - Option::consume_string
    - alg_from_curve_name
    - Option::consume_optional_string
    - agreement::agree_ephemeral
    linkageType: ''
    returnType: void
    signature: fn agreement_agree_ephemeral()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x25519
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:145,1
    - Dst: clone_from
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - expected_result
    - range
    - k
    - u
    argTypes:
    - '&str'
    - core::ops::Range<usize>
    - '&mut Vec<u8>'
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 18
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: t::e::s::t::_::a::g::r::e::e::m::e::n::t::_::e::c::d::h::_::x::2::5::5::1::9::_::r::f::c::_::i::t::e::r::a::t::e::d::expect_iterated_x25519
    functionSourceFile: /src/spdm-rs/external/ring/tests/agreement_tests.rs
    functionUses: 0
    functionsReached:
    - clone_from
    - x25519
    linkageType: ''
    returnType: void
    signature: 'fn expect_iterated_x25519(expected_result: &str,range: core::ops::Range<usize>,k:
      &mut Vec<u8>,u: &mut Vec<u8>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: h
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:135,1
    - Dst: clone
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:136,1
    - Dst: expect_iterated_x25519
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:152,1
    - Dst: expect_iterated_x25519
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:158,1
    - Dst: expect_iterated_x25519
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:168,1
    - Dst: expect_iterated_x25519
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 134
    functionDepth: 19
    functionLinenumber: 134
    functionLinenumberEnd: 183
    functionName: test_agreement_ecdh_x25519_rfc_iterated
    functionSourceFile: /src/spdm-rs/external/ring/tests/agreement_tests.rs
    functionUses: 0
    functionsReached:
    - clone
    - h
    - expect_iterated_x25519
    linkageType: ''
    returnType: void
    signature: fn test_agreement_ecdh_x25519_rfc_iterated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x25519_
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:186,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - private_key
    - public_key
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 17
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: x25519
    functionSourceFile: /src/spdm-rs/external/ring/tests/agreement_tests.rs
    functionUses: 2
    functionsReached:
    - x25519_
    - Result::unwrap
    linkageType: ''
    returnType: Vec
    signature: 'fn x25519(private_key: &[u8], public_key: &[u8]) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: agreement::EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:192,1
    - Dst: agreement::UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:193,1
    - Dst: agreement::agree_ephemeral
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:194,1
    - Dst: Vec::from
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - private_key
    - public_key
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 16
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: x25519_
    functionSourceFile: /src/spdm-rs/external/ring/tests/agreement_tests.rs
    functionUses: 1
    functionsReached:
    - Vec::from
    - agreement::agree_ephemeral
    - agreement::UnparsedPublicKey::new
    - agreement::EphemeralPrivateKey::generate
    linkageType: ''
    returnType: Result
    signature: 'fn x25519_(private_key: &[u8], public_key: &[u8]) -> Result<Vec<u8>,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::from_hex
      Src: /src/spdm-rs/external/ring/tests/agreement_tests.rs:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: h
    functionSourceFile: /src/spdm-rs/external/ring/tests/agreement_tests.rs
    functionUses: 154
    functionsReached:
    - test::from_hex
    linkageType: ''
    returnType: Vec
    signature: 'fn h(s: &str) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - curve_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 218
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 218
    functionName: alg_from_curve_name
    functionSourceFile: /src/spdm-rs/external/ring/tests/agreement_tests.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&''static agreement::Algorithm'
    signature: 'fn alg_from_curve_name(curve_name: &str) -> &''static agreement::Algorithm'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_quic
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:23,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 18
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: quic_aes_128
    functionSourceFile: /src/spdm-rs/external/ring/tests/quic_tests.rs
    functionUses: 0
    functionsReached:
    - test_quic
    - ring::test_file
    linkageType: ''
    returnType: void
    signature: fn quic_aes_128()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_quic
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:28,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 18
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: quic_aes_256
    functionSourceFile: /src/spdm-rs/external/ring/tests/quic_tests.rs
    functionUses: 0
    functionsReached:
    - test_quic
    - ring::test_file
    linkageType: ''
    returnType: void
    signature: fn quic_aes_256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_quic
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:33,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 18
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: quic_chacha20
    functionSourceFile: /src/spdm-rs/external/ring/tests/quic_tests.rs
    functionUses: 0
    functionsReached:
    - test_quic
    - ring::test_file
    linkageType: ''
    returnType: void
    signature: fn quic_chacha20()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_key_len
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:37,1
    - Dst: test_sample_len
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:38,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:40,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:42,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:43,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:44,1
    - Dst: quic::HeaderProtectionKey::new
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:46,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - alg
    - test_file
    argTypes:
    - '&''static quic::Algorithm'
    - test::File
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 17
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: test_quic
    functionSourceFile: /src/spdm-rs/external/ring/tests/quic_tests.rs
    functionUses: 3
    functionsReached:
    - Option::consume_bytes
    - quic::HeaderProtectionKey::new
    - test_key_len
    - Ok
    - test::run
    - test_sample_len
    linkageType: ''
    returnType: void
    signature: 'fn test_quic(alg: &''static quic::Algorithm, test_file: test::File)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::key_len
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - alg
    argTypes:
    - '&''static quic::Algorithm'
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: test_key_len
    functionSourceFile: /src/spdm-rs/external/ring/tests/quic_tests.rs
    functionUses: 1
    functionsReached:
    - Option::key_len
    linkageType: ''
    returnType: void
    signature: 'fn test_key_len(alg: &''static quic::Algorithm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::key_len
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:67,1
    - Dst: quic::HeaderProtectionKey::new
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:70,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:70,1
    - Dst: Option::sample_len
      Src: /src/spdm-rs/external/ring/tests/quic_tests.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - alg
    argTypes:
    - '&''static quic::Algorithm'
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 16
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: test_sample_len
    functionSourceFile: /src/spdm-rs/external/ring/tests/quic_tests.rs
    functionUses: 1
    functionsReached:
    - Option::sample_len
    - quic::HeaderProtectionKey::new
    - Option::key_len
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_sample_len(alg: &''static quic::Algorithm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/external/ring/tests/rand_tests.rs:55,1
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/rand_tests.rs:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 68
    functionName: test_system_random_lengths
    functionSourceFile: /src/spdm-rs/external/ring/tests/rand_tests.rs
    functionUses: 0
    functionsReached:
    - rand::SystemRandom::new
    - iter
    linkageType: ''
    returnType: void
    signature: fn test_system_random_lengths()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::compile_time_assert_clone::<rand::SystemRandom>
      Src: /src/spdm-rs/external/ring/tests/rand_tests.rs:72,1
    - Dst: test::compile_time_assert_send::<rand::SystemRandom>
      Src: /src/spdm-rs/external/ring/tests/rand_tests.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: test_system_random_traits
    functionSourceFile: /src/spdm-rs/external/ring/tests/rand_tests.rs
    functionUses: 0
    functionsReached:
    - test::compile_time_assert_clone::<rand::SystemRandom>
    - test::compile_time_assert_send::<rand::SystemRandom>
    linkageType: ''
    returnType: void
    signature: fn test_system_random_traits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:30,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:30,1
    - Dst: Option::consume_digest_alg
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:32,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:32,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:33,1
    - Dst: Option::consume_usize
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:34,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:35,1
    - Dst: digest::Context::new
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:37,1
    - Dst: Vec::new
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:38,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:40,1
    - Dst: extend
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:41,1
    - Dst: Self::finish
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:43,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:46,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: digest_misc
    functionSourceFile: /src/spdm-rs/external/ring/tests/digest_tests.rs
    functionUses: 0
    functionsReached:
    - Self::finish
    - Option::consume_bytes
    - ring::test_file
    - Ok
    - Option::consume_usize
    - Self::update
    - digest::Context::new
    - Option::unwrap
    - test::run
    - extend
    - Option::consume_digest_alg
    - digest::digest
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn digest_misc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:6,1
    - Dst: digest::Context::new
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:18,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:19,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:20,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:21,1
    - Dst: Self::finish
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:22,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/tests/digest_tests.rs:24,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 58
    functionDepth: 11
    functionLinenumber: 58
    functionLinenumberEnd: 90
    functionName: test_i_u_f
    functionSourceFile: /src/spdm-rs/external/ring/tests/digest_tests.rs
    functionUses: 0
    functionsReached:
    - Self::finish
    - block_len
    - Self::update
    - digest::Context::new
    - digest::digest
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: test_fmt_algorithm
    functionSourceFile: /src/spdm-rs/external/ring/tests/digest_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_fmt_algorithm()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 137
    functionName: digest_test_fmt
    functionSourceFile: /src/spdm-rs/external/ring/tests/digest_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn digest_test_fmt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_aead
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:5,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 9
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: test_known_answer
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test_aead
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:105,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:107,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:108,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:109,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:110,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:111,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:112,1
    - Dst: Option::consume_optional_string
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:113,1
    - Dst: SpdmResult::as_deref
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:115,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:121,1
    - Dst: Nonce::as_slice
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:131,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:131,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:131,1
    - Dst: aead::Aad::from
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 3
    argNames:
    - aead_alg
    - f
    - test_file
    argTypes:
    - '&''static aead::Algorithm'
    - impl Fn(&'static aead::Algorithm, KnownAnswerTestCase) -> Result<(), error::Unspecified>
    - test::File
    constantsTouched: []
    func_position:
      end: 140
      start: 100
    functionDepth: 8
    functionLinenumber: 100
    functionLinenumberEnd: 140
    functionName: test_aead
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 1
    functionsReached:
    - Option::consume_bytes
    - unwrap
    - aead::Aad::from
    - SpdmResult::as_deref
    - Nonce::as_slice
    - Ok
    - test::run
    - try_into
    - Option::consume_optional_string
    linkageType: ''
    returnType: void
    signature: 'fn test_aead(aead_alg: &''static aead::Algorithm,f: impl Fn(&''static
      aead::Algorithm, KnownAnswerTestCase) -> Result<(), error::Unspecified>,test_file:
      test::File,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:149,1
    - Dst: seal
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:150,1
    - Dst: aead::Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:150,1
    - Dst: Vec::from
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:152,1
    - Dst: Self::extend_from_slice
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:153,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - tc
    - seal
    argTypes:
    - '&KnownAnswerTestCase'
    - Seal
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 11
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: test_seal_append_tag
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 2
    functionsReached:
    - Ok
    - seal
    - aead::Nonce::assume_unique_for_key
    - Self::extend_from_slice
    - Vec::from
    linkageType: ''
    returnType: Result
    signature: 'fn test_seal_append_tag<Seal>(tc: &KnownAnswerTestCase,seal: Seal,)
      -> Result<(), error::Unspecified>whereSeal: FnOnce(aead::Nonce, &mut Vec<u8>)
      -> Result<(), error::Unspecified>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:167,1
    - Dst: seal
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:168,1
    - Dst: aead::Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:168,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - tc
    - seal
    argTypes:
    - '&KnownAnswerTestCase'
    - Seal
    constantsTouched: []
    func_position:
      end: 173
      start: 160
    functionDepth: 11
    functionLinenumber: 160
    functionLinenumberEnd: 173
    functionName: test_seal_separate_tag
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 2
    functionsReached:
    - Vec::from
    - aead::Nonce::assume_unique_for_key
    - Ok
    - seal
    linkageType: ''
    returnType: Result
    signature: 'fn test_seal_separate_tag<Seal>(tc: &KnownAnswerTestCase,seal: Seal,)
      -> Result<(), error::Unspecified>whereSeal: Fn(aead::Nonce, &mut [u8]) -> Result<aead::Tag,
      error::Unspecified>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aead::Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:183,1
    - Dst: Vec::from
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:185,1
    - Dst: Self::extend_from_slice
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:186,1
    - Dst: open_in_place
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:188,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - tc
    - open_in_place
    argTypes:
    - '&KnownAnswerTestCase<''_>'
    - OpenInPlace
    constantsTouched: []
    func_position:
      end: 193
      start: 175
    functionDepth: 13
    functionLinenumber: 175
    functionLinenumberEnd: 193
    functionName: test_open_in_place
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 2
    functionsReached:
    - Ok
    - open_in_place
    - aead::Nonce::assume_unique_for_key
    - Self::extend_from_slice
    - Vec::from
    linkageType: ''
    returnType: Result
    signature: 'fn test_open_in_place<OpenInPlace>(tc: &KnownAnswerTestCase<''_>,open_in_place:
      OpenInPlace,) -> Result<(), error::Unspecified>whereOpenInPlace:for<''a> FnOnce(aead::Nonce,
      &''a mut [u8]) -> Result<&''a mut [u8], error::Unspecified>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: make_less_safe_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:199,1
    - Dst: Vec::from
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:201,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:202,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:202,1
    - Dst: aead::Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:206,1
    - Dst: Option::open_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:208,1
    - Dst: Self::len
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:216,1
    - Dst: Self::extend_from_slice
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:217,1
    - Dst: aead::Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:219,1
    - Dst: Option::open_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:221,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 2
    argNames:
    - alg
    - tc
    argTypes:
    - '&''static aead::Algorithm'
    - KnownAnswerTestCase
    constantsTouched: []
    func_position:
      end: 228
      start: 195
    functionDepth: 13
    functionLinenumber: 195
    functionLinenumberEnd: 228
    functionName: test_open_in_place_seperate_tag
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - Option::open_in_place_separate_tag
    - Self::len
    - unwrap
    - make_less_safe_key
    - Ok
    - aead::Nonce::assume_unique_for_key
    - Self::extend_from_slice
    - try_into
    - Vec::from
    linkageType: ''
    returnType: Result
    signature: 'fn test_open_in_place_seperate_tag(alg: &''static aead::Algorithm,tc:
      KnownAnswerTestCase,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:299,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:306,1
    - Dst: truncate
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:307,1
    - Dst: resize
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:308,1
    - Dst: extend_from_slice
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:309,1
    - Dst: extend_from_slice
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:310,1
    - Dst: open_within
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:312,1
    - Dst: aead::Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:313,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 2
    argNames:
    - tc
    - open_within
    argTypes:
    - '&KnownAnswerTestCase<''_>'
    - OpenWithin
    constantsTouched: []
    func_position:
      end: 322
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 322
    functionName: test_open_within
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 2
    functionsReached:
    - truncate
    - extend_from_slice
    - resize
    - Ok
    - aead::Nonce::assume_unique_for_key
    - iter
    - open_within
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn test_open_within<OpenWithin>(tc: &KnownAnswerTestCase<''_>,open_within:
      OpenWithin,) -> Result<(), error::Unspecified>whereOpenWithin: for<''a> Fn(aead::Nonce,&''a
      mut [u8],RangeFrom<usize>,) -> Result<&''a mut [u8], error::Unspecified>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_seal_append_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:328,1
    - Dst: make_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:329,1
    - Dst: Option::seal_in_place_append_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - alg
    - tc
    argTypes:
    - '&''static aead::Algorithm'
    - KnownAnswerTestCase
    constantsTouched: []
    func_position:
      end: 332
      start: 324
    functionDepth: 12
    functionLinenumber: 324
    functionLinenumberEnd: 332
    functionName: sealing_key_seal_in_place_append_tag
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test_seal_append_tag
    - make_key
    - Option::seal_in_place_append_tag
    linkageType: ''
    returnType: Result
    signature: 'fn sealing_key_seal_in_place_append_tag(alg: &''static aead::Algorithm,tc:
      KnownAnswerTestCase,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_seal_separate_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:338,1
    - Dst: make_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:339,1
    - Dst: Option::seal_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - alg
    - tc
    argTypes:
    - '&''static aead::Algorithm'
    - KnownAnswerTestCase
    constantsTouched: []
    func_position:
      end: 342
      start: 334
    functionDepth: 12
    functionLinenumber: 334
    functionLinenumberEnd: 342
    functionName: sealing_key_seal_in_place_separate_tag
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test_seal_separate_tag
    - make_key
    - Option::seal_in_place_separate_tag
    linkageType: ''
    returnType: Result
    signature: 'fn sealing_key_seal_in_place_separate_tag(alg: &''static aead::Algorithm,tc:
      KnownAnswerTestCase,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_open_in_place
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:348,1
    - Dst: make_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:349,1
    - Dst: Option::open_in_place
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - alg
    - tc
    argTypes:
    - '&''static aead::Algorithm'
    - KnownAnswerTestCase
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 14
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: opening_key_open_in_place
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - Option::open_in_place
    - test_open_in_place
    - make_key
    linkageType: ''
    returnType: Result
    signature: 'fn opening_key_open_in_place(alg: &''static aead::Algorithm,tc: KnownAnswerTestCase,)
      -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_open_within
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:358,1
    - Dst: make_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:359,1
    - Dst: Option::open_within
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - alg
    - tc
    argTypes:
    - '&''static aead::Algorithm'
    - KnownAnswerTestCase
    constantsTouched: []
    func_position:
      end: 362
      start: 354
    functionDepth: 13
    functionLinenumber: 354
    functionLinenumberEnd: 362
    functionName: opening_key_open_within
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - Option::open_within
    - test_open_within
    - make_key
    linkageType: ''
    returnType: Result
    signature: 'fn opening_key_open_within(alg: &''static aead::Algorithm,tc: KnownAnswerTestCase,)
      -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_seal_append_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:368,1
    - Dst: make_less_safe_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:369,1
    - Dst: Option::seal_in_place_append_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - alg
    - tc
    argTypes:
    - '&''static aead::Algorithm'
    - KnownAnswerTestCase
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 12
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: less_safe_key_seal_in_place_append_tag
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test_seal_append_tag
    - make_less_safe_key
    - Option::seal_in_place_append_tag
    linkageType: ''
    returnType: Result
    signature: 'fn less_safe_key_seal_in_place_append_tag(alg: &''static aead::Algorithm,tc:
      KnownAnswerTestCase,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_open_in_place
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:378,1
    - Dst: make_less_safe_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:379,1
    - Dst: Option::open_in_place
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - alg
    - tc
    argTypes:
    - '&''static aead::Algorithm'
    - KnownAnswerTestCase
    constantsTouched: []
    func_position:
      end: 382
      start: 374
    functionDepth: 14
    functionLinenumber: 374
    functionLinenumberEnd: 382
    functionName: less_safe_key_open_in_place
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - Option::open_in_place
    - make_less_safe_key
    - test_open_in_place
    linkageType: ''
    returnType: Result
    signature: 'fn less_safe_key_open_in_place(alg: &''static aead::Algorithm,tc:
      KnownAnswerTestCase,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_seal_separate_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:388,1
    - Dst: make_less_safe_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:389,1
    - Dst: Option::seal_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - alg
    - tc
    argTypes:
    - '&''static aead::Algorithm'
    - KnownAnswerTestCase
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 12
    functionLinenumber: 384
    functionLinenumberEnd: 392
    functionName: less_safe_key_seal_in_place_separate_tag
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test_seal_separate_tag
    - make_less_safe_key
    - Option::seal_in_place_separate_tag
    linkageType: ''
    returnType: Result
    signature: 'fn less_safe_key_seal_in_place_separate_tag(alg: &''static aead::Algorithm,tc:
      KnownAnswerTestCase,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_open_within
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:398,1
    - Dst: make_less_safe_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:399,1
    - Dst: Option::open_within
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - alg
    - tc
    argTypes:
    - '&''static aead::Algorithm'
    - KnownAnswerTestCase
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 13
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: less_safe_key_open_within
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - make_less_safe_key
    - Option::open_within
    - test_open_within
    linkageType: ''
    returnType: Result
    signature: 'fn less_safe_key_open_within(alg: &''static aead::Algorithm,tc: KnownAnswerTestCase,)
      -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static aead::Algorithm::key_len'
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - aead_alg
    argTypes:
    - '&''static aead::Algorithm'
    constantsTouched: []
    func_position:
      end: 429
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 429
    functionName: key_sizes
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - '&''static aead::Algorithm::key_len'
    linkageType: ''
    returnType: void
    signature: 'fn key_sizes(aead_alg: &''static aead::Algorithm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 446
    functionName: test_aead_nonce_sizes
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_aead_nonce_sizes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:453,1
    - Dst: ring::test_file
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:454,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:460,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:462,1
    - Dst: Option::consume_usize
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:466,1
    - Dst: usize::try_into
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:466,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:466,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:470,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:471,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:472,1
    - Dst: Vec::clone
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:478,1
    - Dst: aead::chacha20_poly1305_openssh::SealingKey::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:479,1
    - Dst: seal_in_place
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:480,1
    - Dst: aead::chacha20_poly1305_openssh::OpeningKey::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:483,1
    - Dst: Self::open_in_place
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:486,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 450
    functionDepth: 14
    functionLinenumber: 450
    functionLinenumberEnd: 495
    functionName: aead_chacha20_poly1305_openssh
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - aead::chacha20_poly1305_openssh::SealingKey::new
    - ring::test_file
    - copy_from_slice
    - usize::try_into
    - Option::consume_usize
    - Result::unwrap
    - Ok
    - test::run
    - aead::chacha20_poly1305_openssh::OpeningKey::new
    - Self::open_in_place
    - seal_in_place
    - Vec::clone
    linkageType: ''
    returnType: void
    signature: fn aead_chacha20_poly1305_openssh()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::compile_time_assert_send::<aead::Aad<&'_ [u8]>>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:499,1
    - Dst: test::compile_time_assert_sync::<aead::Aad<&'_ [u8]>>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:500,1
    - Dst: test::compile_time_assert_copy::<aead::Aad<&'_ [u8]>>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:501,1
    - Dst: test::compile_time_assert_eq::<aead::Aad<Vec<u8>>>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:502,1
    - Dst: aead::Aad::from
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: aead_test_aad_traits
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test::compile_time_assert_copy::<aead::Aad<&'_ [u8]>>
    - aead::Aad::from
    - test::compile_time_assert_send::<aead::Aad<&'_ [u8]>>
    - test::compile_time_assert_eq::<aead::Aad<Vec<u8>>>
    - test::compile_time_assert_sync::<aead::Aad<&'_ [u8]>>
    linkageType: ''
    returnType: void
    signature: fn aead_test_aad_traits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::compile_time_assert_send::<aead::Nonce>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:514,1
    - Dst: test::compile_time_assert_sync::<aead::Nonce>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: test_nonce_traits
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test::compile_time_assert_send::<aead::Nonce>
    - test::compile_time_assert_sync::<aead::Nonce>
    linkageType: ''
    returnType: void
    signature: fn test_nonce_traits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::compile_time_assert_send::<aead::Tag>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:520,1
    - Dst: test::compile_time_assert_sync::<aead::Tag>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:521,1
    - Dst: test::compile_time_assert_copy::<aead::Tag>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:523,1
    - Dst: test::compile_time_assert_clone::<aead::Tag>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:524,1
    - Dst: aead::Tag::from
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 529
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 529
    functionName: test_tag_traits
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test::compile_time_assert_copy::<aead::Tag>
    - test::compile_time_assert_clone::<aead::Tag>
    - test::compile_time_assert_send::<aead::Tag>
    - aead::Tag::from
    - test::compile_time_assert_sync::<aead::Tag>
    linkageType: ''
    returnType: void
    signature: fn test_tag_traits()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 531
    functionName: test_aead_key_traits
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn test_aead_key_traits<T: Send + Sync>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_aead_key_traits::<aead::OpeningKey<OneNonceSequence>>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:535,1
    - Dst: test_aead_key_traits::<aead::SealingKey<OneNonceSequence>>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:536,1
    - Dst: test_aead_key_traits::<aead::LessSafeKey>
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: test_aead_key_traits_all
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test_aead_key_traits::<aead::SealingKey<OneNonceSequence>>
    - test_aead_key_traits::<aead::LessSafeKey>
    - test_aead_key_traits::<aead::OpeningKey<OneNonceSequence>>
    linkageType: ''
    returnType: void
    signature: fn test_aead_key_traits_all()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aead::UnboundKey::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:545,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:545,1
    - Dst: make_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:551,1
    - Dst: aead::Nonce::try_assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:554,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:554,1
    - Dst: make_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:561,1
    - Dst: aead::Nonce::try_assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:564,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:564,1
    - Dst: make_less_safe_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 576
      start: 541
    functionDepth: 12
    functionLinenumber: 541
    functionLinenumberEnd: 576
    functionName: test_aead_key_debug
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - make_less_safe_key
    - Result::unwrap
    - aead::UnboundKey::new
    - make_key
    - aead::Nonce::try_assume_unique_for_key
    linkageType: ''
    returnType: void
    signature: fn test_aead_key_debug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: collect
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:579,1
    - Dst: key_len
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:580,1
    - Dst: nonce_len
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:581,1
    - Dst: aead::LessSafeKey::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:584,1
    - Dst: aead::UnboundKey::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:584,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:584,1
    - Dst: Self::clone
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:585,1
    - Dst: collect
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:589,1
    - Dst: clone
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:590,1
    - Dst: Self::seal_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:591,1
    - Dst: aead::Nonce::try_assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:593,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:593,1
    - Dst: aead::Aad::empty
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:594,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:591,1
    - Dst: BytesMutStrubbed::seal_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:598,1
    - Dst: aead::Nonce::try_assume_unique_for_key
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:600,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:600,1
    - Dst: aead::Aad::empty
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:601,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - '&''static aead::Algorithm'
    constantsTouched: []
    func_position:
      end: 607
      start: 578
    functionDepth: 12
    functionLinenumber: 578
    functionLinenumberEnd: 607
    functionName: test_aead_lesssafekey_clone_for_algorithm
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 3
    functionsReached:
    - nonce_len
    - Self::clone
    - BytesMutStrubbed::seal_in_place_separate_tag
    - aead::LessSafeKey::new
    - clone
    - Result::unwrap
    - key_len
    - aead::UnboundKey::new
    - Self::seal_in_place_separate_tag
    - aead::Nonce::try_assume_unique_for_key
    - aead::Aad::empty
    - collect
    linkageType: ''
    returnType: void
    signature: 'fn test_aead_lesssafekey_clone_for_algorithm(algorithm: &''static
      aead::Algorithm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_aead_lesssafekey_clone_for_algorithm
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 13
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: test_aead_lesssafekey_clone_aes_128_gcm
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test_aead_lesssafekey_clone_for_algorithm
    linkageType: ''
    returnType: void
    signature: fn test_aead_lesssafekey_clone_aes_128_gcm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_aead_lesssafekey_clone_for_algorithm
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 617
      start: 615
    functionDepth: 13
    functionLinenumber: 615
    functionLinenumberEnd: 617
    functionName: test_aead_lesssafekey_clone_aes_256_gcm
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test_aead_lesssafekey_clone_for_algorithm
    linkageType: ''
    returnType: void
    signature: fn test_aead_lesssafekey_clone_aes_256_gcm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_aead_lesssafekey_clone_for_algorithm
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 622
      start: 620
    functionDepth: 13
    functionLinenumber: 620
    functionLinenumberEnd: 622
    functionName: test_aead_lesssafekey_clone_chacha20_poly1305
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 0
    functionsReached:
    - test_aead_lesssafekey_clone_for_algorithm
    linkageType: ''
    returnType: void
    signature: fn test_aead_lesssafekey_clone_chacha20_poly1305()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aead::UnboundKey::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:635,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:635,1
    - Dst: aead::LessSafeKey::new
      Src: /src/spdm-rs/external/ring/tests/aead_tests.rs:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - algorithm
    - key
    argTypes:
    - '&''static aead::Algorithm'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 637
      start: 634
    functionDepth: 12
    functionLinenumber: 634
    functionLinenumberEnd: 637
    functionName: make_less_safe_key
    functionSourceFile: /src/spdm-rs/external/ring/tests/aead_tests.rs
    functionUses: 6
    functionsReached:
    - aead::LessSafeKey::new
    - aead::UnboundKey::new
    - Result::unwrap
    linkageType: ''
    returnType: aead::LessSafeKey
    signature: 'fn make_less_safe_key(algorithm: &''static aead::Algorithm, key: &[u8])
      -> aead::LessSafeKey'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::generate
      Src: /src/spdm-rs/external/ring/tests/constant_time_tests.rs:33,1
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/tests/constant_time_tests.rs:33,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/tests/constant_time_tests.rs:33,1
    - Dst: expose
      Src: /src/spdm-rs/external/ring/tests/constant_time_tests.rs:33,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/tests/constant_time_tests.rs:37,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/tests/constant_time_tests.rs:53,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/tests/constant_time_tests.rs:58,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/tests/constant_time_tests.rs:67,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/tests/constant_time_tests.rs:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 32
    functionDepth: 15
    functionLinenumber: 32
    functionLinenumberEnd: 78
    functionName: test_verify_slices_are_equal
    functionSourceFile: /src/spdm-rs/external/ring/tests/constant_time_tests.rs
    functionUses: 0
    functionsReached:
    - expose
    - Err
    - Result::unwrap
    - Ok
    - rand::generate
    - rand::SystemRandom::new
    - len
    linkageType: ''
    returnType: void
    signature: fn test_verify_slices_are_equal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: polyfill::u64_from_usize
      Src: /src/spdm-rs/external/ring/src/bits.rs:56,1
    - Dst: u64::checked_mul
      Src: /src/spdm-rs/external/ring/src/bits.rs:56,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/bits.rs:57,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/bits.rs:57,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/bits.rs:58,1
    - Dst: InputTooLongError::new
      Src: /src/spdm-rs/external/ring/src/bits.rs:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: BitLength::from_byte_len
    functionSourceFile: /src/spdm-rs/external/ring/src/bits.rs
    functionUses: 3
    functionsReached:
    - u64::checked_mul
    - Err
    - Ok
    - InputTooLongError::new
    - polyfill::u64_from_usize
    - Self
    linkageType: ''
    returnType: Result
    signature: 'fn from_byte_len(bytes: usize) -> Result<Self, InputTooLongError<usize>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/bits.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bits
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: BitLength::from_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/bits.rs
    functionUses: 5
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub const fn from_bits(bits: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: BitLength::as_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/bits.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: pub fn as_bits(self) -> T
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/bits.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: BitLength::half_rounded_up
    functionSourceFile: /src/spdm-rs/external/ring/src/bits.rs
    functionUses: 2
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn half_rounded_up(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: BitLength::as_usize_bytes_rounded_up
    functionSourceFile: /src/spdm-rs/external/ring/src/bits.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub const fn as_usize_bytes_rounded_up(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_sub
      Src: /src/spdm-rs/external/ring/src/bits.rs:104,1
    - Dst: ok_or
      Src: /src/spdm-rs/external/ring/src/bits.rs:104,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/bits.rs:105,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/bits.rs:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: BitLength::try_sub_1
    functionSourceFile: /src/spdm-rs/external/ring/src/bits.rs
    functionUses: 1
    functionsReached:
    - Self
    - checked_sub
    - Ok
    - ok_or
    linkageType: ''
    returnType: Result
    signature: pub(crate) fn try_sub_1(self) -> Result<Self, crate::error::Unspecified>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_be_bytes
      Src: /src/spdm-rs/external/ring/src/bits.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: BitLength::to_be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/bits.rs
    functionUses: 0
    functionsReached:
    - to_be_bytes
    linkageType: ''
    returnType: '[u8; 8]'
    signature: pub fn to_be_bytes(self) -> [u8; 8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitLength
      Src: /src/spdm-rs/external/ring/src/bits.rs:118,1
    - Dst: polyfill::u64_from_usize
      Src: /src/spdm-rs/external/ring/src/bits.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - BitLength<usize>
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: BitLength::from
    functionSourceFile: /src/spdm-rs/external/ring/src/bits.rs
    functionUses: 0
    functionsReached:
    - polyfill::u64_from_usize
    - BitLength
    linkageType: ''
    returnType: Self
    signature: 'fn from(BitLength(value): BitLength<usize>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::try_into
      Src: /src/spdm-rs/external/ring/src/bits.rs:126,1
    - Dst: Result::map
      Src: /src/spdm-rs/external/ring/src/bits.rs:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames: []
    argTypes:
    - BitLength<u64>
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: BitLength::try_from
    functionSourceFile: /src/spdm-rs/external/ring/src/bits.rs
    functionUses: 0
    functionsReached:
    - Result::map
    - SpdmResult::try_into
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(BitLength(value): BitLength<u64>) -> Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/bssl.rs:28,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/bssl.rs:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ret
    argTypes:
    - Result
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: core::result::Result::from
    functionSourceFile: /src/spdm-rs/external/ring/src/bssl.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: Self
    signature: 'fn from(ret: Result) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: tests::size_and_alignment
    functionSourceFile: /src/spdm-rs/external/ring/src/bssl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn size_and_alignment()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: tests::semantics
    functionSourceFile: /src/spdm-rs/external/ring/src/bssl.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn semantics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::core::fmt::Debug::fmt
      Src: /src/spdm-rs/external/ring/src/debug.rs:4,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: derive_debug_via_id
    functionSourceFile: /src/spdm-rs/external/ring/src/debug.rs
    functionUses: 0
    functionsReached:
    - ::core::fmt::Debug::fmt
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_struct
      Src: /src/spdm-rs/external/ring/src/debug.rs:4,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/debug.rs:4,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/debug.rs:4,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 14
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: derive_debug_via_field
    functionSourceFile: /src/spdm-rs/external/ring/src/debug.rs
    functionUses: 0
    functionsReached:
    - SpdmCertChainBuffer::debug_struct
    - field
    - finish
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::debug::write_hex_tuple
      Src: /src/spdm-rs/external/ring/src/debug.rs:4,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: derive_debug_self_as_ref_hex_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/debug.rs
    functionUses: 0
    functionsReached:
    - crate::debug::write_hex_tuple
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmt::Result::debug_tuple
      Src: /src/spdm-rs/external/ring/src/debug.rs:60,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/debug.rs:60,1
    - Dst: HexStr
      Src: /src/spdm-rs/external/ring/src/debug.rs:61,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/external/ring/src/debug.rs:61,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/debug.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - fmt
    - type_name
    - value
    argTypes:
    - '&mut core::fmt::Formatter'
    - '&str'
    - '&dyn AsRef<[u8]>'
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 15
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: write_hex_tuple
    functionSourceFile: /src/spdm-rs/external/ring/src/debug.rs
    functionUses: 1
    functionsReached:
    - HexStr
    - field
    - fmt::Result::debug_tuple
    - SpdmResult::as_ref
    - finish
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn write_hex_tuple(fmt: &mut core::fmt::Formatter,type_name:
      &str,value: &dyn AsRef<[u8]>,) -> Result<(), ::core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmt::Result::write_str
      Src: /src/spdm-rs/external/ring/src/debug.rs:69,1
    - Dst: write_hex_bytes
      Src: /src/spdm-rs/external/ring/src/debug.rs:70,1
    - Dst: fmt::Result::write_str
      Src: /src/spdm-rs/external/ring/src/debug.rs:71,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/debug.rs:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: HexStr::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/debug.rs
    functionUses: 0
    functionsReached:
    - fmt::Result::write_str
    - write_hex_bytes
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, fmt: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/debug.rs:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fmt
    - bytes
    argTypes:
    - '&mut core::fmt::Formatter'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: write_hex_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/debug.rs
    functionUses: 2
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn write_hex_bytes(fmt: &mut core::fmt::Formatter,bytes:
      &[u8],) -> Result<(), ::core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:57,1
    - Dst: Template::alg_id_value_
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Template::alg_id_value
    functionSourceFile: /src/spdm-rs/external/ring/src/pkcs8.rs
    functionUses: 1
    functionsReached:
    - untrusted::Input::from
    - Template::alg_id_value_
    linkageType: ''
    returnType: untrusted::Input
    signature: fn alg_id_value(&self) -> untrusted::Input
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Template::alg_id_value_
    functionSourceFile: /src/spdm-rs/external/ring/src/pkcs8.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn alg_id_value_(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:66,1
    - Dst: Template::alg_id_value_
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Template::curve_oid
    functionSourceFile: /src/spdm-rs/external/ring/src/pkcs8.rs
    functionUses: 1
    functionsReached:
    - untrusted::Input::from
    - Template::alg_id_value_
    linkageType: ''
    returnType: untrusted::Input
    signature: pub fn curve_oid(&self) -> untrusted::Input
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap_key_
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:81,1
    - Dst: '&Template::alg_id_value'
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - template
    - version
    - input
    argTypes:
    - '&Template'
    - Version
    - untrusted::Input<'a>
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 7
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: unwrap_key
    functionSourceFile: /src/spdm-rs/external/ring/src/pkcs8.rs
    functionUses: 2
    functionsReached:
    - '&Template::alg_id_value'
    - unwrap_key_
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn unwrap_key<''a>(template: &Template,version: Version,input:
      untrusted::Input<''a>,) -> Result<(untrusted::Input<''a>, Option<untrusted::Input<''a>>),
      error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::read_all
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:99,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:99,1
    - Dst: der::nested
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:100,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:103,1
    - Dst: unwrap_key__
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - alg_id
    - version
    - input
    argTypes:
    - untrusted::Input
    - Version
    - untrusted::Input<'a>
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 6
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: unwrap_key_
    functionSourceFile: /src/spdm-rs/external/ring/src/pkcs8.rs
    functionUses: 2
    functionsReached:
    - unwrap_key__
    - der::nested
    - untrusted::Input::read_all
    - error::KeyRejected::invalid_encoding
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn unwrap_key_<''a>(alg_id: untrusted::Input,version: Version,input:
      untrusted::Input<''a>,) -> Result<(untrusted::Input<''a>, Option<untrusted::Input<''a>>),
      error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: der::small_nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:114,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:114,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:115,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:123,1
    - Dst: error::KeyRejected::version_not_supported
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:123,1
    - Dst: der::expect_tag_and_get_value
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:126,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:126,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:127,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:128,1
    - Dst: untrusted::Input::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:128,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:129,1
    - Dst: error::KeyRejected::wrong_algorithm
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:129,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:135,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:137,1
    - Dst: error::KeyRejected::version_not_supported
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:137,1
    - Dst: der::expect_tag_and_get_value
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:141,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:141,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:142,1
    - Dst: untrusted::Input::peek
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:145,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:145,1
    - Dst: der::expect_tag_and_get_value
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:146,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:146,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:147,1
    - Dst: untrusted::Input::at_end
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:151,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:152,1
    - Dst: error::KeyRejected::public_key_is_missing
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:152,1
    - Dst: untrusted::Input::peek
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:157,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:157,1
    - Dst: der::nested
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:159,1
    - Dst: der::bit_string_tagged_with_no_unused_bits
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:166,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:169,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:169,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:170,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:175,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 81
    argCount: 3
    argNames:
    - alg_id
    - version
    - input
    argTypes:
    - untrusted::Input
    - Version
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 176
      start: 109
    functionDepth: 7
    functionLinenumber: 109
    functionLinenumberEnd: 176
    functionName: unwrap_key__
    functionSourceFile: /src/spdm-rs/external/ring/src/pkcs8.rs
    functionUses: 1
    functionsReached:
    - into
    - untrusted::Input::as_slice_less_safe
    - Err
    - error::KeyRejected::invalid_encoding
    - error::KeyRejected::wrong_algorithm
    - Some
    - error::KeyRejected::version_not_supported
    - untrusted::Input::peek
    - untrusted::Input::at_end
    - error::KeyRejected::public_key_is_missing
    - Result::map_err
    - der::nested
    - der::small_nonnegative_integer
    - der::bit_string_tagged_with_no_unused_bits
    - Ok
    - der::expect_tag_and_get_value
    - as_slice_less_safe
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn unwrap_key__<''a>(alg_id: untrusted::Input,version: Version,input:
      &mut untrusted::Reader<''a>,) -> Result<(untrusted::Input<''a>, Option<untrusted::Input<''a>>),
      error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: Document::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/pkcs8.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:194,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:194,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:194,1
    - Dst: wrap_key_
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - template
    - private_key
    - public_key
    argTypes:
    - '&Template'
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: wrap_key
    functionSourceFile: /src/spdm-rs/external/ring/src/pkcs8.rs
    functionUses: 4
    functionsReached:
    - Result::len
    - wrap_key_
    - len
    linkageType: ''
    returnType: Document
    signature: 'pub(crate) fn wrap_key(template: &Template, private_key: &[u8], public_key:
      &[u8]) -> Document'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split_at
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:209,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:210,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:211,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:212,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:213,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:213,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:215,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/pkcs8.rs:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 4
    argNames:
    - template
    - private_key
    - public_key
    - bytes
    argTypes:
    - '&Template'
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: wrap_key_
    functionSourceFile: /src/spdm-rs/external/ring/src/pkcs8.rs
    functionUses: 3
    functionsReached:
    - Result::len
    - split_at
    - copy_from_slice
    - len
    linkageType: ''
    returnType: void
    signature: 'fn wrap_key_(template: &Template, private_key: &[u8], public_key:
      &[u8], bytes: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Algorithm::digest_algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: '&''static digest::Algorithm'
    signature: pub fn digest_algorithm(&self) -> &'static digest::Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/aead.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: Tag::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/aead.rs
    functionUses: 1
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_struct
      Src: /src/spdm-rs/external/ring/src/hmac.rs:162,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/hmac.rs:162,1
    - Dst: Key::algorithm
      Src: /src/spdm-rs/external/ring/src/hmac.rs:163,1
    - Dst: Algorithm::digest_algorithm
      Src: /src/spdm-rs/external/ring/src/hmac.rs:163,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/hmac.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 15
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: Key::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 0
    functionsReached:
    - field
    - SpdmCertChainBuffer::debug_struct
    - Algorithm::digest_algorithm
    - finish
    - Key::algorithm
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::construct
      Src: /src/spdm-rs/external/ring/src/hmac.rs:180,1
    - Dst: '&dyn rand::SecureRandom::fill'
      Src: /src/spdm-rs/external/ring/src/hmac.rs:180,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/hmac.rs:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - algorithm
    - rng
    argTypes:
    - Algorithm
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 14
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: Key::generate
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 10
    functionsReached:
    - '&dyn rand::SecureRandom::fill'
    - cpu::features
    - Self::construct
    linkageType: ''
    returnType: Result
    signature: 'pub fn generate(algorithm: Algorithm,rng: &dyn rand::SecureRandom,)
      -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: output_len
      Src: /src/spdm-rs/external/ring/src/hmac.rs:192,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/hmac.rs:193,1
    - Dst: Self::try_new
      Src: /src/spdm-rs/external/ring/src/hmac.rs:194,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/hmac.rs:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - algorithm
    - fill
    - cpu
    argTypes:
    - Algorithm
    - F
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 13
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: Key::construct
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - output_len
    - Self::try_new
    - fill
    linkageType: ''
    returnType: Result
    signature: 'fn construct<F>(algorithm: Algorithm,fill: F,cpu: cpu::Features,)
      -> Result<Self, error::Unspecified>whereF: FnOnce(&mut [u8]) -> Result<(), error::Unspecified>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htable_new
      Src: /src/spdm-rs/external/ring/src/aead/gcm/neon.rs:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - value
    - _cpu
    argTypes:
    - KeyValue
    - RequiredCpuFeatures
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: Key::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/neon.rs
    functionUses: 42
    functionsReached:
    - htable_new
    linkageType: ''
    returnType: Self
    signature: 'pub(in super::super) fn new(value: KeyValue, _cpu: RequiredCpuFeatures)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest::BlockContext::new
      Src: /src/spdm-rs/external/ring/src/hmac.rs:229,1
    - Dst: digest::BlockContext::new
      Src: /src/spdm-rs/external/ring/src/hmac.rs:230,1
    - Dst: Option::block_len
      Src: /src/spdm-rs/external/ring/src/hmac.rs:233,1
    - Dst: gcm::KeyValue::len
      Src: /src/spdm-rs/external/ring/src/hmac.rs:236,1
    - Dst: Digest::compute_from
      Src: /src/spdm-rs/external/ring/src/hmac.rs:239,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/hmac.rs:240,1
    - Dst: bb::xor_assign_at_start
      Src: /src/spdm-rs/external/ring/src/hmac.rs:251,1
    - Dst: update
      Src: /src/spdm-rs/external/ring/src/hmac.rs:253,1
    - Dst: bb::xor_assign
      Src: /src/spdm-rs/external/ring/src/hmac.rs:260,1
    - Dst: update
      Src: /src/spdm-rs/external/ring/src/hmac.rs:261,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/hmac.rs:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 3
    argNames:
    - algorithm
    - key_value
    - cpu_features
    argTypes:
    - Algorithm
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 265
      start: 222
    functionDepth: 12
    functionLinenumber: 222
    functionLinenumberEnd: 265
    functionName: Key::try_new
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 2
    functionsReached:
    - gcm::KeyValue::len
    - digest::BlockContext::new
    - as_ref
    - Ok
    - update
    - bb::xor_assign_at_start
    - bb::xor_assign
    - Digest::compute_from
    - Option::block_len
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn try_new(algorithm: Algorithm,key_value: &[u8],cpu_features:
      cpu::Features,) -> Result<Self, InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Algorithm
      Src: /src/spdm-rs/external/ring/src/hmac.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: Key::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 2
    functionsReached:
    - Algorithm
    linkageType: ''
    returnType: Algorithm
    signature: pub fn algorithm(&self) -> Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Context::with_key
      Src: /src/spdm-rs/external/ring/src/hmac.rs:274,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/hmac.rs:275,1
    - Dst: Self::try_sign
      Src: /src/spdm-rs/external/ring/src/hmac.rs:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - cpu
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 11
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: Key::sign
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 1
    functionsReached:
    - Context::with_key
    - Self::try_sign
    - Self::update
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn sign(&self, data: &[u8], cpu: cpu::Features) -> Result<Tag,
      InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Key::sign
      Src: /src/spdm-rs/external/ring/src/hmac.rs:280,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/hmac.rs:280,1
    - Dst: bb::verify_slices_are_equal
      Src: /src/spdm-rs/external/ring/src/hmac.rs:283,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/hmac.rs:283,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/hmac.rs:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - data
    - tag
    - cpu
    argTypes:
    - '&[u8]'
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 12
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: Key::verify
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 0
    functionsReached:
    - bb::verify_slices_are_equal
    - as_ref
    - Key::sign
    - Result::map_err
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn verify(&self, data: &[u8], tag: &[u8], cpu: cpu::Features) -> Result<(),
      VerifyError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest_algorithm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:50,1
    - Dst: output_len
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Algorithm::len
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached:
    - output_len
    - digest_algorithm
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::construct
      Src: /src/spdm-rs/external/ring/src/hmac.rs:296,1
    - Dst: Option::len
      Src: /src/spdm-rs/external/ring/src/hmac.rs:296,1
    - Dst: Option::fill
      Src: /src/spdm-rs/external/ring/src/hmac.rs:296,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/hmac.rs:296,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/hmac.rs:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - okm
    argTypes:
    - hkdf::Okm<Algorithm>
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 14
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: Key::from
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 2
    functionsReached:
    - cpu::features
    - Result::unwrap
    - Option::fill
    - Option::len
    - Self::construct
    linkageType: ''
    returnType: Self
    signature: 'fn from(okm: hkdf::Okm<Algorithm>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_struct
      Src: /src/spdm-rs/external/ring/src/hmac.rs:311,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/hmac.rs:311,1
    - Dst: algorithm
      Src: /src/spdm-rs/external/ring/src/hmac.rs:312,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/hmac.rs:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 15
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: Context::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 0
    functionsReached:
    - SpdmCertChainBuffer::debug_struct
    - field
    - algorithm
    - finish
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest::Context::clone_from
      Src: /src/spdm-rs/external/ring/src/hmac.rs:322,1
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/hmac.rs:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - signing_key
    argTypes:
    - '&Key'
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: Context::with_key
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 5
    functionsReached:
    - digest::Context::clone_from
    - clone
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_key(signing_key: &Key) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Context::update_internal
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:62,1
    - Dst: untrusted::Input::as_flattened
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - AsChunks<u8, BLOCK_LEN>
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Context::update
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/poly1305.rs
    functionUses: 4
    functionsReached:
    - Context::update_internal
    - untrusted::Input::as_flattened
    linkageType: ''
    returnType: void
    signature: 'pub fn update(&mut self, input: AsChunks<u8, BLOCK_LEN>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Context::try_sign
      Src: /src/spdm-rs/external/ring/src/hmac.rs:341,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/hmac.rs:341,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/hmac.rs:341,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/hmac.rs:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 13
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: Context::sign
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Result::map_err
    - cpu::features
    - Context::try_sign
    linkageType: ''
    returnType: Tag
    signature: pub fn sign(self) -> Tag
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_finish
      Src: /src/spdm-rs/external/ring/src/hmac.rs:351,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/hmac.rs:352,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/hmac.rs:353,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/hmac.rs:357,1
    - Dst: try_finish
      Src: /src/spdm-rs/external/ring/src/hmac.rs:359,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/hmac.rs:359,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/hmac.rs:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 376
      start: 346
    functionDepth: 12
    functionLinenumber: 346
    functionLinenumberEnd: 376
    functionName: Context::try_sign
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 1
    functionsReached:
    - map
    - try_finish
    - as_ref
    - copy_from_slice
    - map_err
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn try_sign(self, cpu_features: cpu::Features) -> Result<Tag,
      InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bench_function
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:37,1
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:38,1
    - Dst: EcdsaKeyPair::generate_pkcs8
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:39,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:39,1
    - Dst: EcdsaKeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:40,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:40,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:40,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:42,1
    - Dst: Option::sign
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:43,1
    - Dst: criterion::black_box
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:43,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/bench/ecdsa.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 16
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: sign
    functionSourceFile: /src/spdm-rs/external/ring/bench/ecdsa.rs
    functionUses: 35
    functionsReached:
    - Option::sign
    - bench_function
    - as_ref
    - SpdmResult::iter
    - EcdsaKeyPair::from_pkcs8
    - Result::unwrap
    - criterion::black_box
    - rand::SystemRandom::new
    - Option::unwrap
    - EcdsaKeyPair::generate_pkcs8
    linkageType: ''
    returnType: void
    signature: 'fn sign(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bench_function
      Src: /src/spdm-rs/external/ring/bench/rsa.rs:64,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/external/ring/bench/rsa.rs:69,1
    - Dst: UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/bench/rsa.rs:71,1
    - Dst: Result::verify
      Src: /src/spdm-rs/external/ring/bench/rsa.rs:72,1
    - Dst: bool::unwrap
      Src: /src/spdm-rs/external/ring/bench/rsa.rs:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 77
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 77
    functionName: verify
    functionSourceFile: /src/spdm-rs/external/ring/bench/rsa.rs
    functionUses: 33
    functionsReached:
    - bench_function
    - Result::verify
    - bool::unwrap
    - SpdmResult::iter
    - UnparsedPublicKey::new
    linkageType: ''
    returnType: void
    signature: 'fn verify(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/src/hmac.rs:423,1
    - Dst: hmac::Key::generate
      Src: /src/spdm-rs/external/ring/src/hmac.rs:434,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/hmac.rs:434,1
    - Dst: hmac::sign
      Src: /src/spdm-rs/external/ring/src/hmac.rs:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 422
    functionDepth: 15
    functionLinenumber: 422
    functionLinenumberEnd: 439
    functionName: tests::hmac_signing_key_coverage
    functionSourceFile: /src/spdm-rs/external/ring/src/hmac.rs
    functionUses: 0
    functionsReached:
    - hmac::sign
    - rand::SystemRandom::new
    - Result::unwrap
    - hmac::Key::generate
    linkageType: ''
    returnType: void
    signature: pub fn hmac_signing_key_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/limb.rs:45,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/limb.rs:45,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/limb.rs:46,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:46,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/limb.rs:46,1
    - Dst: Vec::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:48,1
    - Dst: Self::IntoIter::zip
      Src: /src/spdm-rs/external/ring/src/limb.rs:48,1
    - Dst: fold
      Src: /src/spdm-rs/external/ring/src/limb.rs:48,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/limb.rs:49,1
    - Dst: limb_is_zero
      Src: /src/spdm-rs/external/ring/src/limb.rs:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&[Limb]'
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: limbs_equal_limbs_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 2
    functionsReached:
    - Self::IntoIter::zip
    - Err
    - LenMismatchError::new
    - Ok
    - limb_is_zero
    - Vec::len
    - SpdmResult::len
    - fold
    - Vec::iter
    linkageType: ''
    returnType: Result
    signature: 'pub fn limbs_equal_limbs_consttime(a: &[Limb], b: &[Limb]) -> Result<LimbMask,
      LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:62,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/limb.rs:62,1
    - Dst: OnceNonZeroUsize::ok_or_else
      Src: /src/spdm-rs/external/ring/src/limb.rs:62,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:62,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/limb.rs:62,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/limb.rs:63,1
    - Dst: usize::get
      Src: /src/spdm-rs/external/ring/src/limb.rs:63,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/limb.rs:64,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:64,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/limb.rs:64,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/limb.rs:66,1
    - Dst: LIMBS_less_than
      Src: /src/spdm-rs/external/ring/src/limb.rs:66,1
    - Dst: Vec::as_ptr
      Src: /src/spdm-rs/external/ring/src/limb.rs:66,1
    - Dst: SpdmResult::as_ptr
      Src: /src/spdm-rs/external/ring/src/limb.rs:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&[Limb]'
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 13
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: limbs_less_than_limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 2
    functionsReached:
    - Err
    - OnceNonZeroUsize::ok_or_else
    - LenMismatchError::new
    - LIMBS_less_than
    - NonZeroUsize::new
    - Ok
    - Vec::len
    - usize::get
    - Vec::as_ptr
    - SpdmResult::len
    - SpdmResult::as_ptr
    linkageType: ''
    returnType: Result
    signature: 'fn limbs_less_than_limbs(a: &[Limb], b: &[Limb]) -> Result<LimbMask,
      LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limbs_less_than_limbs
      Src: /src/spdm-rs/external/ring/src/limb.rs:74,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/limb.rs:74,1
    - Dst: leak
      Src: /src/spdm-rs/external/ring/src/limb.rs:75,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/limb.rs:76,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/limb.rs:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&[Limb]'
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 14
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: verify_limbs_less_than_limbs_leak_bit
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 4
    functionsReached:
    - leak
    - Err
    - Ok
    - limbs_less_than_limbs
    - Result::map_err
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn verify_limbs_less_than_limbs_leak_bit(a: &[Limb],b:
      &[Limb],) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limbs_less_than_limbs
      Src: /src/spdm-rs/external/ring/src/limb.rs:84,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/limb.rs:85,1
    - Dst: leak
      Src: /src/spdm-rs/external/ring/src/limb.rs:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&[Limb]'
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 14
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: limbs_less_than_limbs_vartime
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 1
    functionsReached:
    - leak
    - Ok
    - limbs_less_than_limbs
    linkageType: ''
    returnType: Result
    signature: 'pub fn limbs_less_than_limbs_vartime(a: &[Limb], b: &[Limb]) -> Result<bool,
      LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LIMB_is_zero
      Src: /src/spdm-rs/external/ring/src/limb.rs:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - limb
    argTypes:
    - Limb
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: limb_is_zero
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 4
    functionsReached:
    - LIMB_is_zero
    linkageType: ''
    returnType: LimbMask
    signature: 'fn limb_is_zero(limb: Limb) -> LimbMask'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limb_is_zero
      Src: /src/spdm-rs/external/ring/src/limb.rs:98,1
    - Dst: Result::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:98,1
    - Dst: Self::IntoIter::fold
      Src: /src/spdm-rs/external/ring/src/limb.rs:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - limbs
    argTypes:
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: limbs_are_zero
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 4
    functionsReached:
    - Result::iter
    - limb_is_zero
    - Self::IntoIter::fold
    linkageType: ''
    returnType: LimbMask
    signature: 'pub fn limbs_are_zero(limbs: &[Limb]) -> LimbMask'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::first
      Src: /src/spdm-rs/external/ring/src/limb.rs:106,1
    - Dst: ok_or
      Src: /src/spdm-rs/external/ring/src/limb.rs:106,1
    - Dst: limb_is_zero
      Src: /src/spdm-rs/external/ring/src/limb.rs:107,1
    - Dst: LimbMask::leak
      Src: /src/spdm-rs/external/ring/src/limb.rs:107,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/limb.rs:108,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/limb.rs:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - limbs
    argTypes:
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: limbs_reject_even_leak_bit
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 2
    functionsReached:
    - Err
    - limb_is_zero
    - Result::first
    - ok_or
    - Ok
    - LimbMask::leak
    linkageType: ''
    returnType: Result
    signature: 'pub fn limbs_reject_even_leak_bit(limbs: &[Limb]) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limb_is_zero
      Src: /src/spdm-rs/external/ring/src/limb.rs:117,1
    - Dst: limbs_are_zero
      Src: /src/spdm-rs/external/ring/src/limb.rs:117,1
    - Dst: leak
      Src: /src/spdm-rs/external/ring/src/limb.rs:118,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/limb.rs:119,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/limb.rs:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: verify_limbs_equal_1_leak_bit
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 1
    functionsReached:
    - leak
    - Err
    - limbs_are_zero
    - Ok
    - limb_is_zero
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify_limbs_equal_1_leak_bit(a: &[Limb]) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/limb.rs:134,1
    - Dst: rev
      Src: /src/spdm-rs/external/ring/src/limb.rs:134,1
    - Dst: rev
      Src: /src/spdm-rs/external/ring/src/limb.rs:141,1
    - Dst: LIMB_shr
      Src: /src/spdm-rs/external/ring/src/limb.rs:142,1
    - Dst: bits::BitLength::from_bits
      Src: /src/spdm-rs/external/ring/src/limb.rs:144,1
    - Dst: bits::BitLength::from_bits
      Src: /src/spdm-rs/external/ring/src/limb.rs:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 153
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 153
    functionName: limbs_minimal_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 1
    functionsReached:
    - bits::BitLength::from_bits
    - Vec::len
    - rev
    - LIMB_shr
    linkageType: ''
    returnType: bits::BitLength
    signature: 'pub fn limbs_minimal_bits(a: &[Limb]) -> bits::BitLength'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:161,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/limb.rs:161,1
    - Dst: OnceNonZeroUsize::ok_or_else
      Src: /src/spdm-rs/external/ring/src/limb.rs:161,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:161,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/limb.rs:161,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/limb.rs:162,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/limb.rs:163,1
    - Dst: LIMBS_reduce_once
      Src: /src/spdm-rs/external/ring/src/limb.rs:164,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/limb.rs:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - r
    - m
    argTypes:
    - '&mut [Limb]'
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: limbs_reduce_once
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 3
    functionsReached:
    - as_ptr
    - OnceNonZeroUsize::ok_or_else
    - LenMismatchError::new
    - NonZeroUsize::new
    - Ok
    - as_mut_ptr
    - LIMBS_reduce_once
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub fn limbs_reduce_once(r: &mut [Limb], m: &[Limb]) -> Result<(),
      LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_big_endian_and_pad_consttime
      Src: /src/spdm-rs/external/ring/src/limb.rs:188,1
    - Dst: verify_limbs_less_than_limbs_leak_bit
      Src: /src/spdm-rs/external/ring/src/limb.rs:189,1
    - Dst: limbs_are_zero
      Src: /src/spdm-rs/external/ring/src/limb.rs:191,1
    - Dst: LimbMask::leak
      Src: /src/spdm-rs/external/ring/src/limb.rs:191,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/limb.rs:192,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/limb.rs:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - input
    - allow_zero
    - max_exclusive
    - result
    argTypes:
    - untrusted::Input
    - AllowZero
    - '&[Limb]'
    - '&mut [Limb]'
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 14
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: parse_big_endian_in_range_and_pad_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 2
    functionsReached:
    - verify_limbs_less_than_limbs_leak_bit
    - Err
    - limbs_are_zero
    - Ok
    - parse_big_endian_and_pad_consttime
    - LimbMask::leak
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_big_endian_in_range_and_pad_consttime(input: untrusted::Input,allow_zero:
      AllowZero,max_exclusive: &[Limb],result: &mut [Limb],) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::is_empty
      Src: /src/spdm-rs/external/ring/src/limb.rs:205,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/limb.rs:206,1
    - Dst: untrusted::Input::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/limb.rs:208,1
    - Dst: rchunks
      Src: /src/spdm-rs/external/ring/src/limb.rs:208,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:208,1
    - Dst: sliceutil::overwrite_at_start
      Src: /src/spdm-rs/external/ring/src/limb.rs:210,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/external/ring/src/limb.rs:210,1
    - Dst: Limb::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/limb.rs:211,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/limb.rs:213,1
    - Dst: '&mut [Limb]::len'
      Src: /src/spdm-rs/external/ring/src/limb.rs:213,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/limb.rs:214,1
    - Dst: '&mut [Limb]::iter_mut'
      Src: /src/spdm-rs/external/ring/src/limb.rs:217,1
    - Dst: zip
      Src: /src/spdm-rs/external/ring/src/limb.rs:217,1
    - Dst: chain
      Src: /src/spdm-rs/external/ring/src/limb.rs:219,1
    - Dst: iter::repeat
      Src: /src/spdm-rs/external/ring/src/limb.rs:219,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/limb.rs:217,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/limb.rs:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 2
    argNames:
    - input
    - result
    argTypes:
    - untrusted::Input
    - '&mut [Limb]'
    constantsTouched: []
    func_position:
      end: 223
      start: 201
    functionDepth: 6
    functionLinenumber: 201
    functionLinenumberEnd: 223
    functionName: parse_big_endian_and_pad_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 6
    functionsReached:
    - map
    - sliceutil::overwrite_at_start
    - rchunks
    - '&mut [Limb]::iter_mut'
    - untrusted::Input::as_slice_less_safe
    - Err
    - zip
    - iter::repeat
    - Ok
    - '&[u8]::len'
    - chain
    - for_each
    - '&mut [Limb]::len'
    - Limb::from_be_bytes
    - untrusted::Input::is_empty
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_big_endian_and_pad_consttime(input: untrusted::Input,result:
      &mut [Limb],) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unstripped_be_bytes
      Src: /src/spdm-rs/external/ring/src/limb.rs:226,1
    - Dst: '&mut [u8]::iter_mut'
      Src: /src/spdm-rs/external/ring/src/limb.rs:228,1
    - Dst: zip
      Src: /src/spdm-rs/external/ring/src/limb.rs:228,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/limb.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - limbs
    - out
    argTypes:
    - '&[Limb]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 231
    functionName: big_endian_from_limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 7
    functionsReached:
    - '&mut [u8]::iter_mut'
    - for_each
    - unstripped_be_bytes
    - zip
    linkageType: ''
    returnType: void
    signature: 'pub fn big_endian_from_limbs(limbs: &[Limb], out: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ArrayFlatMap::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:239,1
    - Dst: Result::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:239,1
    - Dst: Self::IntoIter::rev
      Src: /src/spdm-rs/external/ring/src/limb.rs:239,1
    - Dst: copied
      Src: /src/spdm-rs/external/ring/src/limb.rs:239,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/src/limb.rs:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - limbs
    argTypes:
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: unstripped_be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 2
    functionsReached:
    - ArrayFlatMap::new
    - Result::iter
    - copied
    - Option::unwrap
    - Self::IntoIter::rev
    linkageType: ''
    returnType: impl ExactSizeIterator
    signature: 'pub fn unstripped_be_bytes(limbs: &[Limb]) -> impl ExactSizeIterator<Item
      = u8> + Clone + ''_'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/limb.rs:281,1
    - Dst: BitIndex
      Src: /src/spdm-rs/external/ring/src/limb.rs:288,1
    - Dst: core::num::Wrapping
      Src: /src/spdm-rs/external/ring/src/limb.rs:288,1
    - Dst: LIMBS_window5_split_window
      Src: /src/spdm-rs/external/ring/src/limb.rs:293,1
    - Dst: Result::first
      Src: /src/spdm-rs/external/ring/src/limb.rs:293,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/limb.rs:293,1
    - Dst: init
      Src: /src/spdm-rs/external/ring/src/limb.rs:295,1
    - Dst: Limb::from
      Src: /src/spdm-rs/external/ring/src/limb.rs:298,1
    - Dst: Result::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:299,1
    - Dst: Self::IntoIter::fold
      Src: /src/spdm-rs/external/ring/src/limb.rs:299,1
    - Dst: core::num::Wrapping
      Src: /src/spdm-rs/external/ring/src/limb.rs:303,1
    - Dst: LIMBS_window5_split_window
      Src: /src/spdm-rs/external/ring/src/limb.rs:305,1
    - Dst: fold
      Src: /src/spdm-rs/external/ring/src/limb.rs:307,1
    - Dst: core::num::Wrapping
      Src: /src/spdm-rs/external/ring/src/limb.rs:309,1
    - Dst: LIMBS_window5_unsplit_window
      Src: /src/spdm-rs/external/ring/src/limb.rs:310,1
    - Dst: fold
      Src: /src/spdm-rs/external/ring/src/limb.rs:314,1
    - Dst: core::num::Wrapping
      Src: /src/spdm-rs/external/ring/src/limb.rs:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 65
    argCount: 3
    argNames:
    - limbs
    - init
    - fold
    argTypes:
    - '&[Limb]'
    - I
    - F
    constantsTouched: []
    func_position:
      end: 320
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 320
    functionName: fold_5_bit_windows
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 1
    functionsReached:
    - Result::iter
    - unwrap
    - Self::IntoIter::fold
    - BitIndex
    - Result::first
    - core::num::Wrapping
    - Limb::from
    - LIMBS_window5_split_window
    - init
    - LIMBS_window5_unsplit_window
    - Result::len
    - fold
    linkageType: ''
    returnType: R
    signature: 'pub fn fold_5_bit_windows<R, I: FnOnce(Window) -> R, F: Fn(R, Window)
      -> R>(limbs: &[Limb],init: I,fold: F,) -> R'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:338,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/limb.rs:338,1
    - Dst: OnceNonZeroUsize::ok_or_else
      Src: /src/spdm-rs/external/ring/src/limb.rs:338,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:338,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/limb.rs:338,1
    - Dst: with_non_dangling_non_null_pointers_rab
      Src: /src/spdm-rs/external/ring/src/limb.rs:339,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/limb.rs:340,1
    - Dst: LIMBS_add_mod
      Src: /src/spdm-rs/external/ring/src/limb.rs:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - '&mut [Limb]'
    - '&[Limb]'
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 343
      start: 323
    functionDepth: 10
    functionLinenumber: 323
    functionLinenumberEnd: 343
    functionName: limbs_add_assign_mod
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 2
    functionsReached:
    - with_non_dangling_non_null_pointers_rab
    - as_ptr
    - OnceNonZeroUsize::ok_or_else
    - LenMismatchError::new
    - NonZeroUsize::new
    - LIMBS_add_mod
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn limbs_add_assign_mod(a: &mut [Limb],b: &[Limb],m: &[Limb],)
      -> Result<(), LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:355,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/limb.rs:355,1
    - Dst: OnceNonZeroUsize::ok_or_else
      Src: /src/spdm-rs/external/ring/src/limb.rs:355,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/limb.rs:355,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/limb.rs:355,1
    - Dst: with_non_dangling_non_null_pointers_ra
      Src: /src/spdm-rs/external/ring/src/limb.rs:356,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/limb.rs:357,1
    - Dst: LIMBS_shl_mod
      Src: /src/spdm-rs/external/ring/src/limb.rs:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - r
    - m
    argTypes:
    - '&mut [Limb]'
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 362
      start: 346
    functionDepth: 10
    functionLinenumber: 346
    functionLinenumberEnd: 362
    functionName: limbs_double_mod
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 2
    functionsReached:
    - LIMBS_shl_mod
    - as_ptr
    - OnceNonZeroUsize::ok_or_else
    - LenMismatchError::new
    - with_non_dangling_non_null_pointers_ra
    - NonZeroUsize::new
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn limbs_double_mod(r: &mut [Limb], m: &[Limb]) -> Result<(),
      LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/spdm-rs/external/ring/src/limb.rs:369,1
    - Dst: zip
      Src: /src/spdm-rs/external/ring/src/limb.rs:369,1
    - Dst: Vec::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:369,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/limb.rs:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - '&mut [Limb]'
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 375
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 375
    functionName: limbs_negative_odd
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 1
    functionsReached:
    - Vec::iter
    - for_each
    - zip
    - iter_mut
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn limbs_negative_odd(r: &mut [Limb], a: &[Limb])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::leak
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BoolMask
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: tests::leak_in_test
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/mod.rs
    functionUses: 0
    functionsReached:
    - Vec::leak
    linkageType: ''
    returnType: bool
    signature: 'fn leak_in_test(a: BoolMask) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from_iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:409,1
    - Dst: core::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:409,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/limb.rs:409,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:409,1
    - Dst: Vec::from_iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:426,1
    - Dst: core::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:426,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/limb.rs:426,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 429
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 429
    functionName: tests::test_limbs_are_even
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::IntoIter::copied
    - core::iter
    - Vec::from_iter
    linkageType: ''
    returnType: void
    signature: fn test_limbs_are_even()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from_iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:456,1
    - Dst: LimbMask::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:456,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/limb.rs:456,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:456,1
    - Dst: Vec::from_iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:460,1
    - Dst: Self::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:460,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/limb.rs:460,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 463
    functionName: tests::test_limbs_are_zero
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 0
    functionsReached:
    - LimbMask::iter
    - map
    - Self::iter
    - Self::IntoIter::copied
    - Vec::from_iter
    linkageType: ''
    returnType: void
    signature: fn test_limbs_are_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from_iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:470,1
    - Dst: Vec::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:470,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/limb.rs:470,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:470,1
    - Dst: Vec::from_iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:488,1
    - Dst: Vec::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:488,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/limb.rs:488,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 494
    functionName: tests::test_limbs_equal_limb
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::IntoIter::copied
    - Vec::from_iter
    - Vec::iter
    linkageType: ''
    returnType: void
    signature: fn test_limbs_equal_limb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/limb.rs:502,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:503,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/limb.rs:510,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:511,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/limb.rs:518,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:519,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/limb.rs:530,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 583
    functionName: tests::test_parse_big_endian_and_pad_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 0
    functionsReached:
    - map
    - untrusted::Input::from
    linkageType: ''
    returnType: void
    signature: fn test_parse_big_endian_and_pad_consttime()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::map
      Src: /src/spdm-rs/external/ring/src/limb.rs:601,1
    - Dst: big_endian_from_limbs
      Src: /src/spdm-rs/external/ring/src/limb.rs:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 586
    functionDepth: 6
    functionLinenumber: 586
    functionLinenumberEnd: 612
    functionName: tests::test_big_endian_from_limbs_same_length
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 0
    functionsReached:
    - big_endian_from_limbs
    - Result::map
    linkageType: ''
    returnType: void
    signature: fn test_big_endian_from_limbs_same_length()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::map
      Src: /src/spdm-rs/external/ring/src/limb.rs:631,1
    - Dst: big_endian_from_limbs
      Src: /src/spdm-rs/external/ring/src/limb.rs:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 616
    functionDepth: 6
    functionLinenumber: 616
    functionLinenumberEnd: 636
    functionName: tests::test_big_endian_from_limbs_fewer_limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 0
    functionsReached:
    - big_endian_from_limbs
    - Result::map
    linkageType: ''
    returnType: void
    signature: fn test_big_endian_from_limbs_fewer_limbs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from_iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:658,1
    - Dst: Result::iter
      Src: /src/spdm-rs/external/ring/src/limb.rs:658,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/limb.rs:658,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/limb.rs:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 661
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 661
    functionName: tests::test_limbs_minimal_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/limb.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::iter
    - Self::IntoIter::copied
    - Vec::from_iter
    linkageType: ''
    returnType: void
    signature: fn test_limbs_minimal_bits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pub
      Src: /src/spdm-rs/external/ring/src/cpu.rs:5,1
    - Dst: impl
      Src: /src/spdm-rs/external/ring/src/cpu.rs:8,1
    - Dst: get_feature
      Src: /src/spdm-rs/external/ring/src/cpu.rs:17,1
    - Dst: $Name::mask
      Src: /src/spdm-rs/external/ring/src/cpu.rs:18,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/cpu.rs:21,1
    - Dst: impl_get_feature::cpu
      Src: /src/spdm-rs/external/ring/src/cpu.rs:21,1
    - Dst: impl_get_feature::values
      Src: /src/spdm-rs/external/ring/src/cpu.rs:24,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/cpu.rs:25,1
    - Dst: impl_get_feature::cpu
      Src: /src/spdm-rs/external/ring/src/cpu.rs:25,1
    - Dst: repr
      Src: /src/spdm-rs/external/ring/src/cpu.rs:33,1
    - Dst: Shift
      Src: /src/spdm-rs/external/ring/src/cpu.rs:34,1
    - Dst: cfg
      Src: /src/spdm-rs/external/ring/src/cpu.rs:40,1
    - Dst: cfg
      Src: /src/spdm-rs/external/ring/src/cpu.rs:43,1
    - Dst: any
      Src: /src/spdm-rs/external/ring/src/cpu.rs:43,1
    - Dst: all
      Src: /src/spdm-rs/external/ring/src/cpu.rs:43,1
    - Dst: all
      Src: /src/spdm-rs/external/ring/src/cpu.rs:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 18
    functionDepth: 10
    functionLinenumber: 18
    functionLinenumberEnd: 74
    functionName: impl_get_feature
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu.rs
    functionUses: 0
    functionsReached:
    - cfg
    - Some
    - repr
    - all
    - pub
    - $Name::mask
    - Shift
    - impl_get_feature::cpu
    - impl
    - impl_get_feature::values
    - get_feature
    - any
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: features::Values::get_feature
      Src: /src/spdm-rs/external/ring/src/cpu.rs:109,1
    - Dst: features::Values::get_feature
      Src: /src/spdm-rs/external/ring/src/cpu.rs:109,1
    - Dst: features::Values::get_feature
      Src: /src/spdm-rs/external/ring/src/cpu.rs:109,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/cpu.rs:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: features::Values::get_feature
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu.rs
    functionUses: 1
    functionsReached:
    - features::Values::get_feature
    - Some
    linkageType: ''
    returnType: Option
    signature: fn get_feature(&self) -> Option<(A, B, C)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Features::values
      Src: /src/spdm-rs/external/ring/src/cpu.rs:122,1
    - Dst: get_feature
      Src: /src/spdm-rs/external/ring/src/cpu.rs:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 11
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: Features::get_feature
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu.rs
    functionUses: 4
    functionsReached:
    - Features::values
    - get_feature
    linkageType: ''
    returnType: Option
    signature: fn get_feature(&self) -> Option<F>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: featureflags::get_or_init
      Src: /src/spdm-rs/external/ring/src/cpu.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 14
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: features
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu.rs
    functionUses: 73
    functionsReached:
    - featureflags::get_or_init
    linkageType: ''
    returnType: Features
    signature: pub(crate) fn features() -> Features
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: features
      Src: /src/spdm-rs/external/ring/src/cpu.rs:227,1
    - Dst: featureflags::get
      Src: /src/spdm-rs/external/ring/src/cpu.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 15
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: tests::test_static_is_subset_of_dynamic
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu.rs
    functionUses: 0
    functionsReached:
    - featureflags::get
    - features
    linkageType: ''
    returnType: void
    signature: fn test_static_is_subset_of_dynamic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:173,1
    - Dst: try_derive
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:174,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:174,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - algorithm
    - iterations
    - salt
    - secret
    - out
    argTypes:
    - Algorithm
    - NonZeroU32
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 15
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: derive
    functionSourceFile: /src/spdm-rs/external/ring/src/pbkdf2.rs
    functionUses: 4
    functionsReached:
    - unwrap
    - Result::map_err
    - cpu::features
    - try_derive
    linkageType: ''
    returnType: void
    signature: 'pub fn derive(algorithm: Algorithm,iterations: NonZeroU32,salt: &[u8],secret:
      &[u8],out: &mut [u8],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest_algorithm
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:187,1
    - Dst: Option::output_len
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:188,1
    - Dst: hmac::Key::try_new
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:196,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:196,1
    - Dst: '&mut [u8]::fill'
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:199,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:203,1
    - Dst: '&mut [u8]::chunks_mut'
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:204,1
    - Dst: checked_add
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:205,1
    - Dst: ok_or_else
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:205,1
    - Dst: DeriveError::too_much_output_requested
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:206,1
    - Dst: TooMuchOutputRequestedError::new
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:206,1
    - Dst: derive_block
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:210,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:210,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 6
    argNames:
    - algorithm
    - iterations
    - salt
    - secret
    - out
    - cpu
    argTypes:
    - Algorithm
    - NonZeroU32
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 214
      start: 179
    functionDepth: 13
    functionLinenumber: 179
    functionLinenumberEnd: 214
    functionName: try_derive
    functionSourceFile: /src/spdm-rs/external/ring/src/pbkdf2.rs
    functionUses: 1
    functionsReached:
    - '&mut [u8]::len'
    - '&mut [u8]::fill'
    - checked_add
    - TooMuchOutputRequestedError::new
    - Ok
    - Result::map_err
    - Option::output_len
    - ok_or_else
    - DeriveError::too_much_output_requested
    - derive_block
    - hmac::Key::try_new
    - '&mut [u8]::chunks_mut'
    - digest_algorithm
    linkageType: ''
    returnType: Result
    signature: 'fn try_derive(algorithm: Algorithm,iterations: NonZeroU32,salt: &[u8],secret:
      &[u8],out: &mut [u8],cpu: cpu::Features,) -> Result<(), DeriveError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hmac::Context::with_key
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:224,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:225,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:226,1
    - Dst: u32::to_be_bytes
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:226,1
    - Dst: Self::try_sign
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:228,1
    - Dst: NonZeroU32::into
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:230,1
    - Dst: bb::xor_assign_at_start
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:232,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:232,1
    - Dst: Option::sign
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:242,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:242,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 6
    argNames:
    - secret
    - iterations
    - salt
    - idx
    - out
    - cpu
    argTypes:
    - '&hmac::Key'
    - NonZeroU32
    - '&[u8]'
    - u32
    - '&mut [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 245
      start: 216
    functionDepth: 11
    functionLinenumber: 216
    functionLinenumberEnd: 245
    functionName: derive_block
    functionSourceFile: /src/spdm-rs/external/ring/src/pbkdf2.rs
    functionUses: 2
    functionsReached:
    - Option::sign
    - as_ref
    - u32::to_be_bytes
    - Self::try_sign
    - Ok
    - Self::update
    - bb::xor_assign_at_start
    - NonZeroU32::into
    - hmac::Context::with_key
    linkageType: ''
    returnType: Result
    signature: 'fn derive_block(secret: &hmac::Key,iterations: NonZeroU32,salt: &[u8],idx:
      u32,out: &mut [u8],cpu: cpu::Features,) -> Result<(), InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest_algorithm
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:299,1
    - Dst: '&[u8]::is_empty'
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:301,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:302,1
    - Dst: VerifyError::previously_derived_empty
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:302,1
    - Dst: Option::output_len
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:307,1
    - Dst: hmac::Key::try_new
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:309,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:309,1
    - Dst: '&[u8]::chunks'
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:314,1
    - Dst: checked_add
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:315,1
    - Dst: ok_or_else
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:315,1
    - Dst: VerifyError::mismatch
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:318,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:321,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:322,1
    - Dst: derive_block
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:324,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:324,1
    - Dst: bb::verify_slices_are_equal
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:330,1
    - Dst: is_ok
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:330,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:340,1
    - Dst: VerifyError::mismatch
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:340,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/pbkdf2.rs:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 62
    argCount: 6
    argNames:
    - algorithm
    - iterations
    - salt
    - secret
    - previously_derived
    - cpu
    argTypes:
    - Algorithm
    - NonZeroU32
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 344
      start: 291
    functionDepth: 13
    functionLinenumber: 291
    functionLinenumberEnd: 344
    functionName: try_verify
    functionSourceFile: /src/spdm-rs/external/ring/src/pbkdf2.rs
    functionUses: 0
    functionsReached:
    - VerifyError::previously_derived_empty
    - bb::verify_slices_are_equal
    - Err
    - checked_add
    - '&[u8]::chunks'
    - fill
    - Ok
    - VerifyError::mismatch
    - Result::map_err
    - '&[u8]::is_empty'
    - Option::output_len
    - ok_or_else
    - is_ok
    - derive_block
    - hmac::Key::try_new
    - digest_algorithm
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn try_verify(algorithm: Algorithm,iterations: NonZeroU32,salt: &[u8],secret:
      &[u8],previously_derived: &[u8],cpu: cpu::Features,) -> Result<(), VerifyError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: compile_time_assert_clone
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub const fn compile_time_assert_clone<T: Clone>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: compile_time_assert_copy
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub const fn compile_time_assert_copy<T: Copy>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: compile_time_assert_eq
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub const fn compile_time_assert_eq<T: Eq>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: compile_time_assert_send
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub const fn compile_time_assert_send<T: Send>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: compile_time_assert_sync
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub const fn compile_time_assert_sync<T: Sync>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: compile_time_assert_std_error_error
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub const fn compile_time_assert_std_error_error<T: std::error::Error>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCase::consume_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:167,1
    - Dst: String::as_ref
      Src: /src/spdm-rs/external/ring/src/testutil.rs:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: TestCase::consume_bool
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - String::as_ref
    - TestCase::consume_string
    linkageType: ''
    returnType: bool
    signature: 'pub fn consume_bool(&mut self, key: &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCase::consume_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:180,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/external/ring/src/testutil.rs:181,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:182,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:184,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:185,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:186,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: TestCase::consume_digest_alg
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::as_ref
    - TestCase::consume_string
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn consume_digest_alg(&mut self, key: &str) -> Option<&''static
      digest::Algorithm>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCase::consume_optional_bytes
      Src: /src/spdm-rs/external/ring/src/testutil.rs:196,1
    - Dst: Option::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/testutil.rs:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: TestCase::consume_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - TestCase::consume_optional_bytes
    - Option::unwrap_or_else
    linkageType: ''
    returnType: Vec
    signature: 'pub fn consume_bytes(&mut self, key: &str) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCase::consume_optional_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:203,1
    - Dst: SpdmResult::as_bytes
      Src: /src/spdm-rs/external/ring/src/testutil.rs:204,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/external/ring/src/testutil.rs:206,1
    - Dst: Vec::with_capacity
      Src: /src/spdm-rs/external/ring/src/testutil.rs:207,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/testutil.rs:207,1
    - Dst: SpdmResult::next
      Src: /src/spdm-rs/external/ring/src/testutil.rs:209,1
    - Dst: SpdmResult::next
      Src: /src/spdm-rs/external/ring/src/testutil.rs:211,1
    - Dst: SpdmResult::next
      Src: /src/spdm-rs/external/ring/src/testutil.rs:218,1
    - Dst: Option::expect
      Src: /src/spdm-rs/external/ring/src/testutil.rs:218,1
    - Dst: SpdmResult::next
      Src: /src/spdm-rs/external/ring/src/testutil.rs:219,1
    - Dst: Option::expect
      Src: /src/spdm-rs/external/ring/src/testutil.rs:219,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/external/ring/src/testutil.rs:220,1
    - Dst: from_hex_digit
      Src: /src/spdm-rs/external/ring/src/testutil.rs:220,1
    - Dst: SpdmResult::next
      Src: /src/spdm-rs/external/ring/src/testutil.rs:233,1
    - Dst: Option::is_some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:233,1
    - Dst: Bytes::push
      Src: /src/spdm-rs/external/ring/src/testutil.rs:241,1
    - Dst: from_hex
      Src: /src/spdm-rs/external/ring/src/testutil.rs:246,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 254
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 254
    functionName: TestCase::consume_optional_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 1
    functionsReached:
    - Option::is_some
    - SpdmResult::next
    - TestCase::consume_optional_string
    - SpdmResult::iter
    - Some
    - from_hex_digit
    - Bytes::push
    - from_hex
    - Vec::with_capacity
    - Option::expect
    - SpdmResult::as_bytes
    - SpdmResult::len
    linkageType: ''
    returnType: Option
    signature: 'pub fn consume_optional_bytes(&mut self, key: &str) -> Option<Vec<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCase::consume_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:259,1
    - Dst: parse::<usize>
      Src: /src/spdm-rs/external/ring/src/testutil.rs:260,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/testutil.rs:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: TestCase::consume_usize
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - parse::<usize>
    - TestCase::consume_string
    linkageType: ''
    returnType: usize
    signature: 'pub fn consume_usize(&mut self, key: &str) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCase::consume_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:266,1
    - Dst: parse::<usize>
      Src: /src/spdm-rs/external/ring/src/testutil.rs:267,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/testutil.rs:267,1
    - Dst: bits::BitLength::from_bits
      Src: /src/spdm-rs/external/ring/src/testutil.rs:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: TestCase::consume_usize_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - bits::BitLength::from_bits
    - parse::<usize>
    - TestCase::consume_string
    linkageType: ''
    returnType: bits::BitLength
    signature: 'pub fn consume_usize_bits(&mut self, key: &str) -> bits::BitLength'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCase::consume_optional_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:274,1
    - Dst: Option::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/testutil.rs:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: TestCase::consume_string
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 4
    functionsReached:
    - TestCase::consume_optional_string
    - Option::unwrap_or_else
    linkageType: ''
    returnType: String
    signature: 'pub fn consume_string(&mut self, key: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:287,1
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/external/ring/src/testutil.rs:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: TestCase::consume_optional_string
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 2
    functionsReached:
    - SpdmResult::clone
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn consume_optional_string(&mut self, key: &str) -> Option<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 303
    functionName: test_vector_file
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/spdm-rs/external/ring/src/testutil.rs:398,1
    - Dst: '&mut dyn Iterator<Item = &str>::next'
      Src: /src/spdm-rs/external/ring/src/testutil.rs:402,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:418,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/testutil.rs:424,1
    - Dst: Option::starts_with
      Src: /src/spdm-rs/external/ring/src/testutil.rs:430,1
    - Dst: Option::starts_with
      Src: /src/spdm-rs/external/ring/src/testutil.rs:432,1
    - Dst: '&mut String::truncate'
      Src: /src/spdm-rs/external/ring/src/testutil.rs:435,1
    - Dst: '&mut String::push_str'
      Src: /src/spdm-rs/external/ring/src/testutil.rs:436,1
    - Dst: '&mut String::pop'
      Src: /src/spdm-rs/external/ring/src/testutil.rs:437,1
    - Dst: '&mut String::remove'
      Src: /src/spdm-rs/external/ring/src/testutil.rs:438,1
    - Dst: Option::splitn
      Src: /src/spdm-rs/external/ring/src/testutil.rs:444,1
    - Dst: collect
      Src: /src/spdm-rs/external/ring/src/testutil.rs:444,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/testutil.rs:445,1
    - Dst: trim
      Src: /src/spdm-rs/external/ring/src/testutil.rs:449,1
    - Dst: trim
      Src: /src/spdm-rs/external/ring/src/testutil.rs:450,1
    - Dst: push
      Src: /src/spdm-rs/external/ring/src/testutil.rs:457,1
    - Dst: String::from
      Src: /src/spdm-rs/external/ring/src/testutil.rs:457,1
    - Dst: String::from
      Src: /src/spdm-rs/external/ring/src/testutil.rs:457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 2
    argNames:
    - current_section
    - lines
    argTypes:
    - '&mut String'
    - '&mut dyn Iterator<Item = &str>'
    constantsTouched: []
    func_position:
      end: 461
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 461
    functionName: parse_test_case
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 1
    functionsReached:
    - Option::starts_with
    - len
    - '&mut String::push_str'
    - Some
    - push
    - Option::splitn
    - String::from
    - '&mut String::remove'
    - '&mut String::pop'
    - '&mut dyn Iterator<Item = &str>::next'
    - trim
    - '&mut String::truncate'
    - collect
    - Vec::new
    linkageType: ''
    returnType: Option
    signature: 'fn parse_test_case(current_section: &mut String,lines: &mut dyn Iterator<Item
      = &str>,) -> Option<TestCase>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/testutil.rs:546,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/testutil.rs:546,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:547,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/testutil.rs:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 8
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: tests::one_ok
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - test::run
    - Ok
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: fn one_ok()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/testutil.rs:555,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/testutil.rs:555,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:556,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/testutil.rs:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 554
    functionDepth: 8
    functionLinenumber: 554
    functionLinenumberEnd: 559
    functionName: tests::one_err
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - test::run
    - Err
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: fn one_err()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/testutil.rs:564,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/testutil.rs:564,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 8
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: tests::one_panics
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - test::run
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: fn one_panics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: err_one
      Src: /src/spdm-rs/external/ring/src/testutil.rs:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 572
    functionDepth: 9
    functionLinenumber: 572
    functionLinenumberEnd: 574
    functionName: tests::first_err
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - err_one
    linkageType: ''
    returnType: void
    signature: fn first_err()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: err_one
      Src: /src/spdm-rs/external/ring/src/testutil.rs:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 578
    functionDepth: 9
    functionLinenumber: 578
    functionLinenumberEnd: 580
    functionName: tests::middle_err
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - err_one
    linkageType: ''
    returnType: void
    signature: fn middle_err()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: err_one
      Src: /src/spdm-rs/external/ring/src/testutil.rs:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 586
      start: 584
    functionDepth: 9
    functionLinenumber: 584
    functionLinenumberEnd: 586
    functionName: tests::last_err
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - err_one
    linkageType: ''
    returnType: void
    signature: fn last_err()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/testutil.rs:590,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/testutil.rs:590,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:591,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/testutil.rs:593,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/testutil.rs:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - test_to_fail
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 600
      start: 588
    functionDepth: 8
    functionLinenumber: 588
    functionLinenumberEnd: 600
    functionName: tests::err_one
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - Err
    - test_vector_file
    - Ok
    - test::run
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: 'fn err_one(test_to_fail: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: panic_one
      Src: /src/spdm-rs/external/ring/src/testutil.rs:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 9
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: tests::first_panic
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - panic_one
    linkageType: ''
    returnType: void
    signature: fn first_panic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: panic_one
      Src: /src/spdm-rs/external/ring/src/testutil.rs:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 9
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: tests::middle_panic
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - panic_one
    linkageType: ''
    returnType: void
    signature: fn middle_panic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: panic_one
      Src: /src/spdm-rs/external/ring/src/testutil.rs:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 616
    functionDepth: 9
    functionLinenumber: 616
    functionLinenumberEnd: 618
    functionName: tests::last_panic
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - panic_one
    linkageType: ''
    returnType: void
    signature: fn last_panic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/testutil.rs:622,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/testutil.rs:622,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/testutil.rs:623,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/testutil.rs:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - test_to_fail
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 630
      start: 620
    functionDepth: 8
    functionLinenumber: 620
    functionLinenumberEnd: 630
    functionName: tests::panic_one
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - test::run
    - Ok
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: 'fn panic_one(test_to_fail: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/testutil.rs:635,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/testutil.rs:636,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/testutil.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 8
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: tests::syntax_error
    functionSourceFile: /src/spdm-rs/external/ring/src/testutil.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - test::run
    - Ok
    linkageType: ''
    returnType: void
    signature: fn syntax_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::fill_impl
      Src: /src/spdm-rs/external/ring/src/rand.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dest
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: T::fill
    functionSourceFile: /src/spdm-rs/external/ring/src/rand.rs
    functionUses: 0
    functionsReached:
    - T::fill_impl
    linkageType: ''
    returnType: Result
    signature: 'fn fill(&self, dest: &mut [u8]) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Random::expose
    functionSourceFile: /src/spdm-rs/external/ring/src/rand.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: pub fn expose(self) -> T
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::zero
      Src: /src/spdm-rs/external/ring/src/rand.rs:57,1
    - Dst: '&dyn SecureRandom::fill'
      Src: /src/spdm-rs/external/ring/src/rand.rs:58,1
    - Dst: as_mut_bytes
      Src: /src/spdm-rs/external/ring/src/rand.rs:58,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rand.rs:59,1
    - Dst: Random
      Src: /src/spdm-rs/external/ring/src/rand.rs:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - rng
    argTypes:
    - '&dyn SecureRandom'
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: generate
    functionSourceFile: /src/spdm-rs/external/ring/src/rand.rs
    functionUses: 14
    functionsReached:
    - '&dyn SecureRandom::fill'
    - Ok
    - as_mut_bytes
    - Random
    - T::zero
    linkageType: ''
    returnType: Result
    signature: 'pub fn generate<T: RandomlyConstructable>(rng: &dyn SecureRandom,)
      -> Result<Random<T>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/rand.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: SystemRandom::new
    functionSourceFile: /src/spdm-rs/external/ring/src/rand.rs
    functionUses: 27
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getrandom::getrandom
      Src: /src/spdm-rs/external/ring/src/rand.rs:165,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/rand.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dest
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: SystemRandom::fill_impl
    functionSourceFile: /src/spdm-rs/external/ring/src/rand.rs
    functionUses: 0
    functionsReached:
    - getrandom::getrandom
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn fill_impl(&self, dest: &mut [u8]) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/digest.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - '&''static Algorithm'
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: BlockContext::new
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 1
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(algorithm: &''static Algorithm) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BlockContext::block_data_order
      Src: /src/spdm-rs/external/ring/src/digest.rs:63,1
    - Dst: saturating_add
      Src: /src/spdm-rs/external/ring/src/digest.rs:68,1
    - Dst: polyfill::u64_from_usize
      Src: /src/spdm-rs/external/ring/src/digest.rs:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - input
    - cpu_features
    argTypes:
    - '&''i [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: BlockContext::update
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - saturating_add
    - BlockContext::block_data_order
    - polyfill::u64_from_usize
    linkageType: ''
    returnType: '&''i [u8]'
    signature: 'pub(crate) fn update<''i>(&mut self, input: &''i [u8], cpu_features:
      cpu::Features) -> &''i [u8]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_add
      Src: /src/spdm-rs/external/ring/src/digest.rs:85,1
    - Dst: polyfill::u64_from_usize
      Src: /src/spdm-rs/external/ring/src/digest.rs:87,1
    - Dst: ok_or_else
      Src: /src/spdm-rs/external/ring/src/digest.rs:85,1
    - Dst: InputTooLongError::new
      Src: /src/spdm-rs/external/ring/src/digest.rs:90,1
    - Dst: and_then
      Src: /src/spdm-rs/external/ring/src/digest.rs:85,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/digest.rs:85,1
    - Dst: block_len
      Src: /src/spdm-rs/external/ring/src/digest.rs:95,1
    - Dst: Result::get_mut
      Src: /src/spdm-rs/external/ring/src/digest.rs:98,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/digest.rs:105,1
    - Dst: FinishError::pending_not_a_partial_block
      Src: /src/spdm-rs/external/ring/src/digest.rs:105,1
    - Dst: as_deref
      Src: /src/spdm-rs/external/ring/src/digest.rs:106,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/digest.rs:111,1
    - Dst: checked_sub
      Src: /src/spdm-rs/external/ring/src/digest.rs:111,1
    - Dst: len_len
      Src: /src/spdm-rs/external/ring/src/digest.rs:113,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/digest.rs:117,1
    - Dst: BlockContext::block_data_order
      Src: /src/spdm-rs/external/ring/src/digest.rs:118,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/digest.rs:126,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/digest.rs:126,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/digest.rs:127,1
    - Dst: usize::copy_from_slice
      Src: /src/spdm-rs/external/ring/src/digest.rs:128,1
    - Dst: to_be_bytes
      Src: /src/spdm-rs/external/ring/src/digest.rs:128,1
    - Dst: BlockContext::block_data_order
      Src: /src/spdm-rs/external/ring/src/digest.rs:130,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/digest.rs:133,1
    - Dst: format_output
      Src: /src/spdm-rs/external/ring/src/digest.rs:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 74
    argCount: 3
    argNames:
    - block
    - num_pending
    - cpu_features
    argTypes:
    - '&mut [u8; MAX_BLOCK_LEN]'
    - usize
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 137
      start: 79
    functionDepth: 11
    functionLinenumber: 79
    functionLinenumberEnd: 137
    functionName: BlockContext::try_finish
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - checked_add
    - and_then
    - to_be_bytes
    - usize::copy_from_slice
    - format_output
    - polyfill::u64_from_usize
    - as_deref
    - fill
    - FinishError::pending_not_a_partial_block
    - Err
    - checked_sub
    - BlockContext::block_data_order
    - Ok
    - split_at_mut
    - map_err
    - len_len
    - block_len
    - InputTooLongError::new
    - ok_or_else
    - Result::get_mut
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn try_finish(mut self,block: &mut [u8; MAX_BLOCK_LEN],num_pending:
      usize,cpu_features: cpu::Features,) -> Result<Digest, FinishError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - cpu_features
    argTypes:
    - '&''d [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: BlockContext::block_data_order
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: (usize, &'d [u8])
    signature: 'fn block_data_order<''d>(&mut self,data: &''d [u8],cpu_features: cpu::Features,)
      -> (usize, &''d [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::pending_not_a_partial_block_inner
      Src: /src/spdm-rs/external/ring/src/digest.rs:163,1
    - Dst: Self::pending_not_a_partial_block_inner
      Src: /src/spdm-rs/external/ring/src/digest.rs:164,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/digest.rs:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - padding
    argTypes:
    - Option<&[u8]>
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: FinishError::pending_not_a_partial_block
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 1
    functionsReached:
    - Self::pending_not_a_partial_block_inner
    - len
    linkageType: ''
    returnType: Self
    signature: 'fn pending_not_a_partial_block(padding: Option<&[u8]>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:59,1
    - Dst: BitLength::from_byte_len
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:62,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:62,1
    - Dst: BitLength::from_byte_len
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:63,1
    - Dst: Aad<&[u8]>::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:63,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:63,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:63,1
    - Dst: Xi
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:71,1
    - Dst: chunks
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:78,1
    - Dst: '{

        bits::sliceutil::overwrite_at_start'
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:80,1
    - Dst: update_block
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:81,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - key
    - aad
    - in_out_len
    argTypes:
    - '&''key K'
    - Aad<&[u8]>
    - usize
    constantsTouched: []
    func_position:
      end: 85
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 85
    functionName: Context::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm.rs
    functionUses: 139
    functionsReached:
    - Aad<&[u8]>::as_ref
    - chunks
    - Err
    - Xi
    - Ok
    - '&[u8]::len'
    - Result::map_err
    - update_block
    - '{

      bits::sliceutil::overwrite_at_start'
    - BitLength::from_byte_len
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn new(key: &''key K,aad: Aad<&[u8]>,in_out_len: usize,)
      -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::clone
      Src: /src/spdm-rs/external/ring/src/digest.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - '&BlockContext'
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: Context::clone_from
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 1
    functionsReached:
    - Result::clone
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn clone_from(block: &BlockContext) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Context::update_internal
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:74,1
    - Dst: SpdmResult::finish
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:77,1
    - Dst: SpdmResult::finish
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 12
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: Context::finish
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/poly1305.rs
    functionUses: 4
    functionsReached:
    - Context::update_internal
    - SpdmResult::finish
    linkageType: ''
    returnType: Tag
    signature: 'pub(super) fn finish(mut self, input: &[u8]) -> Tag'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_finish
      Src: /src/spdm-rs/external/ring/src/digest.rs:271,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/digest.rs:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 12
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: Context::try_finish
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - try_finish
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn try_finish(mut self,cpu_features: cpu::Features,) ->
      Result<Digest, InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: Context::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: pub fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/digest.rs:291,1
    - Dst: Digest::compute_from
      Src: /src/spdm-rs/external/ring/src/digest.rs:292,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/digest.rs:292,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/digest.rs:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - algorithm
    - data
    argTypes:
    - '&''static Algorithm'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 15
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: digest
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 43
    functionsReached:
    - unwrap
    - Result::map_err
    - cpu::features
    - Digest::compute_from
    linkageType: ''
    returnType: Digest
    signature: 'pub fn digest(algorithm: &''static Algorithm, data: &[u8]) -> Digest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Context::new
      Src: /src/spdm-rs/external/ring/src/digest.rs:312,1
    - Dst: Result::update
      Src: /src/spdm-rs/external/ring/src/digest.rs:313,1
    - Dst: Result::try_finish
      Src: /src/spdm-rs/external/ring/src/digest.rs:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - algorithm
    - data
    - cpu
    argTypes:
    - '&''static Algorithm'
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 315
      start: 307
    functionDepth: 11
    functionLinenumber: 307
    functionLinenumberEnd: 315
    functionName: Digest::compute_from
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 2
    functionsReached:
    - Result::update
    - Context::new
    - Result::try_finish
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn compute_from(algorithm: &''static Algorithm,data: &[u8],cpu:
      cpu::Features,) -> Result<Self, InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: Digest::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: pub fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: output_len
      Src: /src/spdm-rs/external/ring/src/digest.rs:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: Digest::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 9
    functionsReached:
    - output_len
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug::write_hex_bytes
      Src: /src/spdm-rs/external/ring/src/digest.rs:334,1
    - Dst: Digest::as_ref
      Src: /src/spdm-rs/external/ring/src/digest.rs:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 6
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: Digest::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - Digest::as_ref
    - debug::write_hex_bytes
    linkageType: ''
    returnType: core::fmt::Result
    signature: 'fn fmt(&self, fmt: &mut core::fmt::Formatter) -> core::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: Algorithm::eq
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &Self) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/digest.rs:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 4
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Algorithm::block_len
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: usize
    signature: pub fn block_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: Algorithm::chaining_len
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn chaining_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/digest.rs:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: Algorithm::output_len
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 1
    functionsReached:
    - into
    linkageType: ''
    returnType: usize
    signature: pub fn output_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Output
      Src: /src/spdm-rs/external/ring/src/digest.rs:530,1
    - Dst: chunks_mut
      Src: /src/spdm-rs/external/ring/src/digest.rs:531,1
    - Dst: zip
      Src: /src/spdm-rs/external/ring/src/digest.rs:531,1
    - Dst: untrusted::Input::iter
      Src: /src/spdm-rs/external/ring/src/digest.rs:534,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/digest.rs:534,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/digest.rs:534,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/digest.rs:534,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/digest.rs:531,1
    - Dst: SpdmResult::copy_from_slice
      Src: /src/spdm-rs/external/ring/src/digest.rs:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - input
    - f
    argTypes:
    - '[Wrapping<T>; sha2::CHAINING_WORDS]'
    - F
    constantsTouched: []
    func_position:
      end: 539
      start: 525
    functionDepth: 11
    functionLinenumber: 525
    functionLinenumberEnd: 539
    functionName: format_output
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 1
    functionsReached:
    - map
    - zip
    - Output
    - f
    - Self::IntoIter::copied
    - for_each
    - untrusted::Input::iter
    - SpdmResult::copy_from_slice
    - chunks_mut
    linkageType: ''
    returnType: Output
    signature: 'fn format_output<T, F, const N: usize>(input: [Wrapping<T>; sha2::CHAINING_WORDS],
      f: F) -> OutputwhereF: Fn(T) -> [u8; N],T: Copy,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 567
    functionName: BlockLen::into
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: const fn into(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 576
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 576
    functionName: BlockLen::len_len
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: const fn len_len(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: OutputLen::into
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: const fn into(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::max_input_test
      Src: /src/spdm-rs/external/ring/src/digest.rs:7,1
    - Dst: super::too_long_input_test_block
      Src: /src/spdm-rs/external/ring/src/digest.rs:13,1
    - Dst: super::too_long_input_test_byte
      Src: /src/spdm-rs/external/ring/src/digest.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 633
      start: 610
    functionDepth: 12
    functionLinenumber: 610
    functionLinenumberEnd: 633
    functionName: max_input_tests
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - super::max_input_test
    - super::too_long_input_test_byte
    - super::too_long_input_test_block
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nearly_full_context
      Src: /src/spdm-rs/external/ring/src/digest.rs:636,1
    - Dst: SpdmContext::update
      Src: /src/spdm-rs/external/ring/src/digest.rs:638,1
    - Dst: SpdmContext::finish
      Src: /src/spdm-rs/external/ring/src/digest.rs:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - alg
    argTypes:
    - '&''static digest::Algorithm'
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 11
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: tests::max_input_test
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - SpdmContext::update
    - SpdmContext::finish
    - nearly_full_context
    linkageType: ''
    returnType: void
    signature: 'fn max_input_test(alg: &''static digest::Algorithm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nearly_full_context
      Src: /src/spdm-rs/external/ring/src/digest.rs:643,1
    - Dst: SpdmContext::update
      Src: /src/spdm-rs/external/ring/src/digest.rs:645,1
    - Dst: SpdmContext::finish
      Src: /src/spdm-rs/external/ring/src/digest.rs:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - alg
    argTypes:
    - '&''static digest::Algorithm'
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 11
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: tests::too_long_input_test_block
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - SpdmContext::update
    - SpdmContext::finish
    - nearly_full_context
    linkageType: ''
    returnType: void
    signature: 'fn too_long_input_test_block(alg: &''static digest::Algorithm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nearly_full_context
      Src: /src/spdm-rs/external/ring/src/digest.rs:650,1
    - Dst: SpdmContext::update
      Src: /src/spdm-rs/external/ring/src/digest.rs:652,1
    - Dst: SpdmContext::update
      Src: /src/spdm-rs/external/ring/src/digest.rs:653,1
    - Dst: SpdmContext::finish
      Src: /src/spdm-rs/external/ring/src/digest.rs:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - '&''static digest::Algorithm'
    constantsTouched: []
    func_position:
      end: 655
      start: 649
    functionDepth: 11
    functionLinenumber: 649
    functionLinenumberEnd: 655
    functionName: tests::too_long_input_test_byte
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - SpdmContext::update
    - SpdmContext::finish
    - nearly_full_context
    linkageType: ''
    returnType: void
    signature: 'fn too_long_input_test_byte(alg: &''static digest::Algorithm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: polyfill::u64_from_usize
      Src: /src/spdm-rs/external/ring/src/digest.rs:662,1
    - Dst: Option::block_len
      Src: /src/spdm-rs/external/ring/src/digest.rs:662,1
    - Dst: polyfill::u64_from_usize
      Src: /src/spdm-rs/external/ring/src/digest.rs:663,1
    - Dst: Option::block_len
      Src: /src/spdm-rs/external/ring/src/digest.rs:663,1
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/digest.rs:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - alg
    argTypes:
    - '&''static digest::Algorithm'
    constantsTouched: []
    func_position:
      end: 673
      start: 657
    functionDepth: 5
    functionLinenumber: 657
    functionLinenumberEnd: 673
    functionName: tests::nearly_full_context
    functionSourceFile: /src/spdm-rs/external/ring/src/digest.rs
    functionUses: 0
    functionsReached:
    - Option::block_len
    - polyfill::u64_from_usize
    - clone
    linkageType: ''
    returnType: digest::Context
    signature: 'fn nearly_full_context(alg: &''static digest::Algorithm) -> digest::Context'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/aead.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aad
    argTypes:
    - A
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Aad::from
    functionSourceFile: /src/spdm-rs/external/ring/src/aead.rs
    functionUses: 7
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn from(aad: A) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/aead.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: Aad::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/aead.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from
      Src: /src/spdm-rs/external/ring/src/aead.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Aad::empty
    functionSourceFile: /src/spdm-rs/external/ring/src/aead.rs
    functionUses: 1
    functionsReached:
    - Self::from
    linkageType: ''
    returnType: Self
    signature: pub fn empty() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_tuple
      Src: /src/spdm-rs/external/ring/src/aead.rs:104,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/aead.rs:104,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/aead.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 15
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Aad::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/aead.rs
    functionUses: 0
    functionsReached:
    - SpdmCertChainBuffer::debug_tuple
    - field
    - finish
    linkageType: ''
    returnType: core::fmt::Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter<''_>) -> core::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eq
      Src: /src/spdm-rs/external/ring/src/aead.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Aad::eq
    functionSourceFile: /src/spdm-rs/external/ring/src/aead.rs
    functionUses: 0
    functionsReached:
    - eq
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &Self) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize_from_u64_saturated
      Src: /src/spdm-rs/external/ring/src/aead.rs:130,1
    - Dst: '{

        cpu,error,

        polyfill::u64_from_usize'
      Src: /src/spdm-rs/external/ring/src/aead.rs:131,1
    - Dst: '{

        cpu,error,

        polyfill::u64_from_usize'
      Src: /src/spdm-rs/external/ring/src/aead.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - block_len
    - overhead_blocks_per_nonce
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: max_input_len
    functionSourceFile: /src/spdm-rs/external/ring/src/aead.rs
    functionUses: 0
    functionsReached:
    - usize_from_u64_saturated
    - '{

      cpu,error,

      polyfill::u64_from_usize'
    linkageType: ''
    returnType: usize
    signature: 'const fn max_input_len(block_len: usize, overhead_blocks_per_nonce:
      usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::try_into
      Src: /src/spdm-rs/external/ring/src/aead.rs:151,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead.rs:151,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead.rs:152,1
    - Dst: Self::from
      Src: /src/spdm-rs/external/ring/src/aead.rs:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: Tag::try_from
    functionSourceFile: /src/spdm-rs/external/ring/src/aead.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - Self::from
    - Ok
    - SpdmResult::try_into
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(value: &[u8]) -> Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/aead.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - '[u8; TAG_LEN]'
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: Tag::from
    functionSourceFile: /src/spdm-rs/external/ring/src/aead.rs
    functionUses: 1
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: [u8; TAG_LEN]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:28,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:29,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:30,1
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:32,1
    - Dst: Vec::as_ptr
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:34,1
    - Dst: SpdmResult::as_ptr
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:35,1
    - Dst: CRYPTO_memcmp
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:38,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:40,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:41,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: verify_slices_are_equal
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/mod.rs
    functionUses: 4
    functionsReached:
    - Err
    - CRYPTO_memcmp
    - NonZeroUsize::new
    - Ok
    - Vec::len
    - Vec::as_ptr
    - SpdmResult::len
    - SpdmResult::as_ptr
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify_slices_are_equal(a: &[u8], b: &[u8]) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 16
      start: 2
    functionDepth: 0
    functionLinenumber: 2
    functionLinenumberEnd: 16
    functionName: core_name_and_version
    functionSourceFile: /src/spdm-rs/external/ring/src/prefixed.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: prefix
    functionSourceFile: /src/spdm-rs/external/ring/src/prefixed.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_item
      Src: /src/spdm-rs/external/ring/src/prefixed.rs:3,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 82
    functionName: prefixed_extern
    functionSourceFile: /src/spdm-rs/external/ring/src/prefixed.rs
    functionUses: 16
    functionsReached:
    - prefixed_item
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_item
      Src: /src/spdm-rs/external/ring/src/prefixed.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: prefixed_export
    functionSourceFile: /src/spdm-rs/external/ring/src/prefixed.rs
    functionUses: 0
    functionsReached:
    - prefixed_item
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: prefixed_item
    functionSourceFile: /src/spdm-rs/external/ring/src/prefixed.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/signature.rs:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - fill
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: Signature::new
    functionSourceFile: /src/spdm-rs/external/ring/src/signature.rs
    functionUses: 2
    functionsReached:
    - fill
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new<F>(fill: F) -> SelfwhereF: FnOnce(&mut [u8; MAX_LEN])
      -> usize,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: Signature::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/signature.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/agreement.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: UnparsedPublicKey::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_struct
      Src: /src/spdm-rs/external/ring/src/agreement.rs:218,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/agreement.rs:218,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/agreement.rs:218,1
    - Dst: debug::HexStr
      Src: /src/spdm-rs/external/ring/src/agreement.rs:220,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/agreement.rs:220,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/agreement.rs:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 15
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: UnparsedPublicKey::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached:
    - field
    - as_ref
    - SpdmCertChainBuffer::debug_struct
    - debug::HexStr
    - finish
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - algorithm
    - bytes
    argTypes:
    - '&''static Algorithm'
    - B
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: UnparsedPublicKey::new
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(algorithm: &''static Algorithm, bytes: B) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/signature.rs:402,1
    - Dst: verify
      Src: /src/spdm-rs/external/ring/src/signature.rs:403,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/signature.rs:404,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/signature.rs:404,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/signature.rs:405,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/signature.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - message
    - signature
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 15
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: UnparsedPublicKey::verify
    functionSourceFile: /src/spdm-rs/external/ring/src/signature.rs
    functionUses: 0
    functionsReached:
    - verify
    - cpu::features
    - untrusted::Input::from
    - as_ref
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify(&self, message: &[u8], signature: &[u8]) -> Result<(),
      error::Unspecified>whereB: AsRef<[u8]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/agreement.rs:110,1
    - Dst: ec::Seed::generate
      Src: /src/spdm-rs/external/ring/src/agreement.rs:116,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/agreement.rs:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - alg
    - rng
    argTypes:
    - '&''static Algorithm'
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 15
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: EphemeralPrivateKey::generate
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 9
    functionsReached:
    - cpu::features
    - Ok
    - ec::Seed::generate
    linkageType: ''
    returnType: Result
    signature: 'pub fn generate(alg: &''static Algorithm,rng: &dyn rand::SecureRandom,)
      -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: compute_public_key
      Src: /src/spdm-rs/external/ring/src/agreement.rs:131,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/agreement.rs:132,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/agreement.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 17
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: EphemeralPrivateKey::compute_public_key
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached:
    - map
    - compute_public_key
    - cpu::features
    linkageType: ''
    returnType: Result
    signature: pub fn compute_public_key(&self) -> Result<PublicKey, error::Unspecified>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: EphemeralPrivateKey::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: pub fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EphemeralPrivateKey::bytes_for_test
      Src: /src/spdm-rs/external/ring/src/agreement.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: EphemeralPrivateKey::bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached:
    - EphemeralPrivateKey::bytes_for_test
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes_less_safe
      Src: /src/spdm-rs/external/ring/src/agreement.rs:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: EphemeralPrivateKey::bytes_for_test
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 1
    functionsReached:
    - bytes_less_safe
    linkageType: ''
    returnType: '&[u8]'
    signature: pub(super) fn bytes_for_test(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec::Seed::from_bytes
      Src: /src/spdm-rs/external/ring/src/agreement.rs:159,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/agreement.rs:159,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/agreement.rs:159,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/agreement.rs:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - alg
    - bytes
    argTypes:
    - '&''static Algorithm'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 15
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: EphemeralPrivateKey::from_bytes_for_test
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 1
    functionsReached:
    - ec::Seed::from_bytes
    - untrusted::Input::from
    - cpu::features
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_bytes_for_test(alg: &''static Algorithm, bytes: &[u8])
      -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: PublicKey::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_struct
      Src: /src/spdm-rs/external/ring/src/agreement.rs:182,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/agreement.rs:182,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/agreement.rs:182,1
    - Dst: debug::HexStr
      Src: /src/spdm-rs/external/ring/src/agreement.rs:184,1
    - Dst: PublicKey::as_ref
      Src: /src/spdm-rs/external/ring/src/agreement.rs:184,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/agreement.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 15
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: PublicKey::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached:
    - field
    - SpdmCertChainBuffer::debug_struct
    - debug::HexStr
    - finish
    - PublicKey::as_ref
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: PublicKey::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: pub fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: UnparsedPublicKey::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: pub fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: UnparsedPublicKey::bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&B'
    signature: pub fn bytes(&self) -> &B
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bench_function
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:55,1
    - Dst: bench_name
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:55,1
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:56,1
    - Dst: agreement::EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:59,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:59,1
    - Dst: compute_public_key
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:60,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:60,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:62,1
    - Dst: SpdmResult::iter_batched
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:64,1
    - Dst: EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:65,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:65,1
    - Dst: UnparsedPublicKey::new
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:67,1
    - Dst: agreement::agree_ephemeral
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:68,1
    - Dst: criterion::black_box
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:69,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 77
      start: 53
    functionDepth: 16
    functionLinenumber: 53
    functionLinenumberEnd: 77
    functionName: agree_ephemeral
    functionSourceFile: /src/spdm-rs/external/ring/bench/agreement.rs
    functionUses: 4
    functionsReached:
    - SpdmResult::iter_batched
    - bench_function
    - as_ref
    - unwrap
    - UnparsedPublicKey::new
    - Result::unwrap
    - agreement::EphemeralPrivateKey::generate
    - criterion::black_box
    - rand::SystemRandom::new
    - bench_name
    - compute_public_key
    - EphemeralPrivateKey::generate
    - agreement::agree_ephemeral
    linkageType: ''
    returnType: void
    signature: 'fn agree_ephemeral(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/agreement.rs:286,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/agreement.rs:311,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/agreement.rs:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 4
    argNames:
    - my_private_key
    - peer_public_key
    - kdf
    - cpu
    argTypes:
    - EphemeralPrivateKey
    - UnparsedPublicKey<&[u8]>
    - impl FnOnce(&[u8]) -> R
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 320
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 320
    functionName: agree_ephemeral_
    functionSourceFile: /src/spdm-rs/external/ring/src/agreement.rs
    functionUses: 0
    functionsReached:
    - untrusted::Input::from
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn agree_ephemeral_<R>(my_private_key: EphemeralPrivateKey,peer_public_key:
      UnparsedPublicKey<&[u8]>,kdf: impl FnOnce(&[u8]) -> R,cpu: cpu::Features,) ->
      Result<R, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Algorithm::hmac_algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: hmac::Algorithm
    signature: pub fn hmac_algorithm(&self) -> hmac::Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:65,1
    - Dst: hmac::Key::new
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - algorithm
    - value
    argTypes:
    - Algorithm
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Salt::new
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 2
    functionsReached:
    - Self
    - hmac::Key::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(algorithm: Algorithm, value: &[u8]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hmac::sign
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:79,1
    - Dst: Prk
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:80,1
    - Dst: hmac::Key::new
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:80,1
    - Dst: algorithm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:80,1
    - Dst: Option::as_ref
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - secret
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 8
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: Salt::extract
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached:
    - Option::as_ref
    - hmac::Key::new
    - Prk
    - algorithm
    - hmac::sign
    linkageType: ''
    returnType: Prk
    signature: 'pub fn extract(&self, secret: &[u8]) -> Prk'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Algorithm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:86,1
    - Dst: algorithm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Salt::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached:
    - algorithm
    - Algorithm
    linkageType: ''
    returnType: Algorithm
    signature: pub fn algorithm(&self) -> Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:92,1
    - Dst: hmac::Key::from
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:92,1
    - Dst: Option::len
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - okm
    argTypes:
    - Okm<'_, Algorithm>
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 15
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: Salt::from
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached:
    - Self
    - hmac::Key::from
    - Option::len
    linkageType: ''
    returnType: Self
    signature: 'fn from(okm: Okm<''_, Algorithm>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:118,1
    - Dst: hmac::Key::new
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:118,1
    - Dst: hmac_algorithm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - algorithm
    - value
    argTypes:
    - Algorithm
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: Prk::new_less_safe
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached:
    - Self
    - hmac::Key::new
    - hmac_algorithm
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_less_safe(algorithm: Algorithm, value: &[u8]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::len
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:132,1
    - Dst: algorithm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:133,1
    - Dst: digest_algorithm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:133,1
    - Dst: output_len
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:133,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:134,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - info
    - len
    argTypes:
    - '&''a [&''a [u8]]'
    - L
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 8
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: Prk::expand
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - usize::len
    - output_len
    - algorithm
    - digest_algorithm
    linkageType: ''
    returnType: Result
    signature: 'pub fn expand<''a, L: KeyType>(&''a self,info: &''a [&''a [u8]],len:
      L,) -> Result<Okm<''a, L>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:147,1
    - Dst: hmac::Key::from
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:147,1
    - Dst: Option::len
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - okm
    argTypes:
    - Okm<Algorithm>
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 15
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: Prk::from
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached:
    - Self
    - hmac::Key::from
    - Option::len
    linkageType: ''
    returnType: Self
    signature: 'fn from(okm: Okm<Algorithm>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: Okm::len
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&L'
    signature: pub fn len(&self) -> &L
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fill_okm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 12
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: Okm::fill
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 0
    functionsReached:
    - fill_okm
    linkageType: ''
    returnType: Result
    signature: 'pub fn fill(self, out: &mut [u8]) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:194,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:195,1
    - Dst: algorithm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:198,1
    - Dst: digest_algorithm
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:198,1
    - Dst: hmac::Context::with_key
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:201,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:207,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:209,1
    - Dst: Self::sign
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:211,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:212,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:215,1
    - Dst: Option::output_len
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:215,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:216,1
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:217,1
    - Dst: '&mut [u8]::split_at_mut'
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:220,1
    - Dst: Option::output_len
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:220,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:221,1
    - Dst: '&mut [u8]::is_empty'
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:225,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:226,1
    - Dst: hmac::Context::with_key
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:229,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:230,1
    - Dst: checked_add
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:231,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/hkdf.rs:231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 80
    argCount: 4
    argNames:
    - prk
    - info
    - out
    - len
    argTypes:
    - '&Prk'
    - '&[&[u8]]'
    - '&mut [u8]'
    - usize
    constantsTouched: []
    func_position:
      end: 233
      start: 188
    functionDepth: 11
    functionLinenumber: 188
    functionLinenumberEnd: 233
    functionName: fill_okm
    functionSourceFile: /src/spdm-rs/external/ring/src/hkdf.rs
    functionUses: 1
    functionsReached:
    - '&mut [u8]::len'
    - Err
    - unwrap
    - checked_add
    - Self::sign
    - copy_from_slice
    - Ok
    - Self::update
    - Option::output_len
    - algorithm
    - SpdmResult::as_ref
    - '&mut [u8]::copy_from_slice'
    - '&mut [u8]::is_empty'
    - hmac::Context::with_key
    - '&mut [u8]::split_at_mut'
    - digest_algorithm
    linkageType: ''
    returnType: Result
    signature: 'fn fill_okm(prk: &Prk,info: &[&[u8]],out: &mut [u8],len: usize,) ->
      Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: u64_from_usize
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill.rs
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: 'pub const fn u64_from_usize(x: usize) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: usize_from_u32
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'pub const fn usize_from_u32(x: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: usize_from_u64
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'pub fn usize_from_u64(x: u64) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: usize_from_u64_saturated
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'pub const fn usize_from_u64_saturated(x: u64) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: tests::test_usize_from_u64_saturated
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_usize_from_u64_saturated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::read_all
      Src: /src/spdm-rs/external/ring/src/rsa.rs:47,1
    - Dst: der::nested
      Src: /src/spdm-rs/external/ring/src/rsa.rs:48,1
    - Dst: der::positive_integer
      Src: /src/spdm-rs/external/ring/src/rsa.rs:49,1
    - Dst: der::positive_integer
      Src: /src/spdm-rs/external/ring/src/rsa.rs:50,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa.rs:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - input
    argTypes:
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: parse_public_key
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa.rs
    functionUses: 1
    functionsReached:
    - der::nested
    - der::positive_integer
    - Ok
    - untrusted::Input::read_all
    linkageType: ''
    returnType: Result
    signature: 'fn parse_public_key(input: untrusted::Input,) -> Result<(io::Positive,
      io::Positive), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: test_file
    functionSourceFile: /src/spdm-rs/external/ring/src/deprecated_test.rs
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from
      Src: /src/spdm-rs/external/ring/src/io/der.rs:47,1
    - Dst: Tag::into
      Src: /src/spdm-rs/external/ring/src/io/der.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - Tag
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: usize::from
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 3
    functionsReached:
    - Tag::into
    - Self::from
    linkageType: ''
    returnType: Self
    signature: 'fn from(tag: Tag) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: LengthMeasurement::zero
    functionSourceFile: /src/spdm-rs/external/ring/src/io/writer.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn zero() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_add
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:40,1
    - Dst: ok_or_else
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:40,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - _value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: LengthMeasurement::write_byte
    functionSourceFile: /src/spdm-rs/external/ring/src/io/writer.rs
    functionUses: 0
    functionsReached:
    - checked_add
    - ok_or_else
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn write_byte(&mut self, _value: u8) -> Result<(), TooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_add
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:44,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:46,1
    - Dst: ok_or_else
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:44,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: LengthMeasurement::write_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/io/writer.rs
    functionUses: 0
    functionsReached:
    - checked_add
    - ok_or_else
    - SpdmResult::len
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn write_bytes(&mut self, value: &[u8]) -> Result<(), TooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - LengthMeasurement
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Writer::with_capacity
    functionSourceFile: /src/spdm-rs/external/ring/src/io/writer.rs
    functionUses: 1
    functionsReached:
    - Vec::with_capacity
    linkageType: ''
    returnType: Self
    signature: 'pub(super) fn with_capacity(capacity: LengthMeasurement) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_boxed_slice
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - writer
    argTypes:
    - Writer
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Box::from
    functionSourceFile: /src/spdm-rs/external/ring/src/io/writer.rs
    functionUses: 0
    functionsReached:
    - into_boxed_slice
    linkageType: ''
    returnType: Self
    signature: 'fn from(writer: Writer) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:75,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: Writer::write_byte
    functionSourceFile: /src/spdm-rs/external/ring/src/io/writer.rs
    functionUses: 0
    functionsReached:
    - push
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn write_byte(&mut self, value: u8) -> Result<(), TooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extend
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:79,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Writer::write_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/io/writer.rs
    functionUses: 0
    functionsReached:
    - Ok
    - extend
    linkageType: ''
    returnType: Result
    signature: 'fn write_bytes(&mut self, value: &[u8]) -> Result<(), TooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut dyn Accumulator::write_bytes'
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:88,1
    - Dst: untrusted::Input::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - accumulator
    - to_copy
    argTypes:
    - '&mut dyn Accumulator'
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: write_copy
    functionSourceFile: /src/spdm-rs/external/ring/src/io/writer.rs
    functionUses: 1
    functionsReached:
    - untrusted::Input::as_slice_less_safe
    - '&mut dyn Accumulator::write_bytes'
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_copy(accumulator: &mut dyn Accumulator,to_copy: untrusted::Input,)
      -> Result<(), TooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/io/writer.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: TooLongError::new
    functionSourceFile: /src/spdm-rs/external/ring/src/io/writer.rs
    functionUses: 5
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Tag::into
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub const fn into(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_tag_and_get_value
      Src: /src/spdm-rs/external/ring/src/io/der.rs:68,1
    - Dst: usize::from
      Src: /src/spdm-rs/external/ring/src/io/der.rs:69,1
    - Dst: usize::from
      Src: /src/spdm-rs/external/ring/src/io/der.rs:69,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:70,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der.rs:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - input
    - tag
    argTypes:
    - '&mut untrusted::Reader<''a>'
    - Tag
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: expect_tag_and_get_value
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 5
    functionsReached:
    - read_tag_and_get_value
    - Ok
    - Err
    - usize::from
    linkageType: ''
    returnType: Result
    signature: 'pub fn expect_tag_and_get_value<''a>(input: &mut untrusted::Reader<''a>,tag:
      Tag,) -> Result<untrusted::Input<''a>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::read_byte
      Src: /src/spdm-rs/external/ring/src/io/der.rs:78,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:80,1
    - Dst: untrusted::Input::read_byte
      Src: /src/spdm-rs/external/ring/src/io/der.rs:86,1
    - Dst: usize::from
      Src: /src/spdm-rs/external/ring/src/io/der.rs:87,1
    - Dst: untrusted::Input::read_byte
      Src: /src/spdm-rs/external/ring/src/io/der.rs:89,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:91,1
    - Dst: usize::from
      Src: /src/spdm-rs/external/ring/src/io/der.rs:93,1
    - Dst: usize::from
      Src: /src/spdm-rs/external/ring/src/io/der.rs:96,1
    - Dst: untrusted::Input::read_byte
      Src: /src/spdm-rs/external/ring/src/io/der.rs:96,1
    - Dst: usize::from
      Src: /src/spdm-rs/external/ring/src/io/der.rs:97,1
    - Dst: untrusted::Input::read_byte
      Src: /src/spdm-rs/external/ring/src/io/der.rs:97,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:100,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:105,1
    - Dst: untrusted::Input::read_bytes
      Src: /src/spdm-rs/external/ring/src/io/der.rs:109,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der.rs:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 54
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 111
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 111
    functionName: read_tag_and_get_value
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 1
    functionsReached:
    - untrusted::Input::read_byte
    - Err
    - Ok
    - usize::from
    - untrusted::Input::read_bytes
    linkageType: ''
    returnType: Result
    signature: 'pub fn read_tag_and_get_value<''a>(input: &mut untrusted::Reader<''a>,)
      -> Result<(u8, untrusted::Input<''a>), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bit_string_tagged_with_no_unused_bits
      Src: /src/spdm-rs/external/ring/src/io/der.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 7
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: bit_string_with_no_unused_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 0
    functionsReached:
    - bit_string_tagged_with_no_unused_bits
    linkageType: ''
    returnType: Result
    signature: 'pub fn bit_string_with_no_unused_bits<''a>(input: &mut untrusted::Reader<''a>,)
      -> Result<untrusted::Input<''a>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nested
      Src: /src/spdm-rs/external/ring/src/io/der.rs:124,1
    - Dst: SpdmResult::read_byte
      Src: /src/spdm-rs/external/ring/src/io/der.rs:125,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:125,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:127,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der.rs:129,1
    - Dst: SpdmResult::read_bytes_to_end
      Src: /src/spdm-rs/external/ring/src/io/der.rs:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - tag
    - input
    argTypes:
    - Tag
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: bit_string_tagged_with_no_unused_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 2
    functionsReached:
    - SpdmResult::read_bytes_to_end
    - Err
    - Ok
    - nested
    - SpdmResult::read_byte
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn bit_string_tagged_with_no_unused_bits<''a>(tag: Tag,input:
      &mut untrusted::Reader<''a>,) -> Result<untrusted::Input<''a>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expect_tag_and_get_value
      Src: /src/spdm-rs/external/ring/src/io/der.rs:144,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:144,1
    - Dst: read_all
      Src: /src/spdm-rs/external/ring/src/io/der.rs:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - input
    - tag
    - error
    - decoder
    argTypes:
    - '&mut untrusted::Reader<''a>'
    - Tag
    - E
    - F
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: nested
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 9
    functionsReached:
    - read_all
    - Result::map_err
    - expect_tag_and_get_value
    linkageType: ''
    returnType: Result
    signature: 'pub fn nested<''a, F, R, E: Copy>(input: &mut untrusted::Reader<''a>,tag:
      Tag,error: E,decoder: F,) -> Result<R, E>whereF: FnOnce(&mut untrusted::Reader<''a>)
      -> Result<R, E>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expect_tag_and_get_value
      Src: /src/spdm-rs/external/ring/src/io/der.rs:151,1
    - Dst: SpdmResult::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/io/der.rs:152,1
    - Dst: split_first
      Src: /src/spdm-rs/external/ring/src/io/der.rs:152,1
    - Dst: ok_or
      Src: /src/spdm-rs/external/ring/src/io/der.rs:152,1
    - Dst: '&[u8]::first'
      Src: /src/spdm-rs/external/ring/src/io/der.rs:159,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der.rs:161,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der.rs:163,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/io/der.rs:163,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:165,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der.rs:169,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 173
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 173
    functionName: nonnegative_integer
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 6
    functionsReached:
    - Err
    - untrusted::Input::from
    - Ok
    - ok_or
    - expect_tag_and_get_value
    - '&[u8]::first'
    - SpdmResult::as_slice_less_safe
    - split_first
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn nonnegative_integer<''a>(input: &mut untrusted::Reader<''a>,)
      -> Result<untrusted::Input<''a>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/io/der.rs:179,1
    - Dst: SpdmResult::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/io/der.rs:180,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der.rs:181,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/der.rs:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&mut untrusted::Reader'
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 6
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: small_nonnegative_integer
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 3
    functionsReached:
    - nonnegative_integer
    - SpdmResult::as_slice_less_safe
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub fn small_nonnegative_integer(input: &mut untrusted::Reader) ->
      Result<u8, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/io/der.rs:191,1
    - Dst: Positive::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/io/der.rs:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 6
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: positive_integer
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 4
    functionsReached:
    - nonnegative_integer
    - Positive::from_be_bytes
    linkageType: ''
    returnType: Result
    signature: 'pub fn positive_integer<''a>(input: &mut untrusted::Reader<''a>,)
      -> Result<Positive<''a>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/io/der.rs:204,1
    - Dst: Self::read_all
      Src: /src/spdm-rs/external/ring/src/io/der.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - f
    argTypes:
    - '&''a [u8]'
    - F
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: tests::with_i
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 0
    functionsReached:
    - untrusted::Input::from
    - Self::read_all
    linkageType: ''
    returnType: Result
    signature: 'fn with_i<''a, F, R>(value: &''a [u8], f: F) -> Result<R, error::Unspecified>whereF:
      FnOnce(&mut untrusted::Reader<''a>) -> Result<R, error::Unspecified>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: core::iter::once
      Src: /src/spdm-rs/external/ring/src/io/der.rs:263,1
    - Dst: Result::chain
      Src: /src/spdm-rs/external/ring/src/io/der.rs:263,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/io/der.rs:263,1
    - Dst: with_i
      Src: /src/spdm-rs/external/ring/src/io/der.rs:265,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der.rs:267,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/io/der.rs:271,1
    - Dst: chain
      Src: /src/spdm-rs/external/ring/src/io/der.rs:271,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/io/der.rs:273,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/io/der.rs:273,1
    - Dst: with_i
      Src: /src/spdm-rs/external/ring/src/io/der.rs:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 278
    functionName: tests::test_small_nonnegative_integer
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 0
    functionsReached:
    - map
    - Ok
    - chain
    - core::iter::once
    - iter
    - Result::chain
    - with_i
    linkageType: ''
    returnType: void
    signature: fn test_small_nonnegative_integer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/io/der.rs:282,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/io/der.rs:282,1
    - Dst: core::slice::from_ref
      Src: /src/spdm-rs/external/ring/src/io/der.rs:284,1
    - Dst: chain
      Src: /src/spdm-rs/external/ring/src/io/der.rs:282,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/io/der.rs:285,1
    - Dst: copied
      Src: /src/spdm-rs/external/ring/src/io/der.rs:285,1
    - Dst: with_i
      Src: /src/spdm-rs/external/ring/src/io/der.rs:287,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der.rs:292,1
    - Dst: core::iter::once
      Src: /src/spdm-rs/external/ring/src/io/der.rs:296,1
    - Dst: Result::chain
      Src: /src/spdm-rs/external/ring/src/io/der.rs:296,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/io/der.rs:296,1
    - Dst: with_i
      Src: /src/spdm-rs/external/ring/src/io/der.rs:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 300
    functionName: tests::test_positive_integer
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der.rs
    functionUses: 0
    functionsReached:
    - map
    - copied
    - chain
    - Ok
    - core::iter::once
    - iter
    - core::slice::from_ref
    - Result::chain
    - with_i
    linkageType: ''
    returnType: void
    signature: fn test_positive_integer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:27,1
    - Dst: first
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:27,1
    - Dst: ok_or
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:27,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:33,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:35,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - input
    argTypes:
    - untrusted::Input<'a>
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: Positive::from_be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/io/positive.rs
    functionUses: 2
    functionsReached:
    - first
    - Err
    - untrusted::Input::as_slice_less_safe
    - Ok
    - ok_or
    - Self
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn from_be_bytes(input: untrusted::Input<''a>) -> Result<Self,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Positive::big_endian_without_leading_zero_as_input
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:43,1
    - Dst: untrusted::Input::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Positive::big_endian_without_leading_zero
    functionSourceFile: /src/spdm-rs/external/ring/src/io/positive.rs
    functionUses: 0
    functionsReached:
    - Positive::big_endian_without_leading_zero_as_input
    - untrusted::Input::as_slice_less_safe
    linkageType: ''
    returnType: '&''a [u8]'
    signature: pub fn big_endian_without_leading_zero(&self) -> &'a [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Positive::big_endian_without_leading_zero_as_input
    functionSourceFile: /src/spdm-rs/external/ring/src/io/positive.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: untrusted::Input
    signature: pub(crate) fn big_endian_without_leading_zero_as_input(&self) -> untrusted::Input<'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Positive::first_byte
    functionSourceFile: /src/spdm-rs/external/ring/src/io/positive.rs
    functionUses: 0
    functionsReached:
    - as_slice_less_safe
    linkageType: ''
    returnType: u8
    signature: pub fn first_byte(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/io/positive.rs:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 97
    functionName: tests::test_from_be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/io/positive.rs
    functionUses: 0
    functionsReached:
    - untrusted::Input::from
    linkageType: ''
    returnType: void
    signature: fn test_from_be_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::first_byte
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:22,1
    - Dst: SpdmResult::big_endian_without_leading_zero_as_input
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:23,1
    - Dst: write_tlv
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:24,1
    - Dst: Output::write_byte
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:26,1
    - Dst: write_copy
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - output
    - value
    argTypes:
    - '&mut dyn Accumulator'
    - '&Positive'
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: write_positive_integer
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der_writer.rs
    functionUses: 1
    functionsReached:
    - write_tlv
    - write_copy
    - SpdmResult::first_byte
    - Output::write_byte
    - SpdmResult::big_endian_without_leading_zero_as_input
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn write_positive_integer(output: &mut dyn Accumulator,value:
      &Positive,) -> Result<(), TooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LengthMeasurement::zero
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:37,1
    - Dst: write_tlv
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:38,1
    - Dst: Writer::with_capacity
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:42,1
    - Dst: write_tlv
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:43,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:45,1
    - Dst: Output::into
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - tag
    - write_value
    argTypes:
    - Tag
    - '&dyn Fn(&mut dyn Accumulator) -> Result<(), TooLongError>'
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: write_all
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der_writer.rs
    functionUses: 2
    functionsReached:
    - write_tlv
    - Ok
    - Writer::with_capacity
    - LengthMeasurement::zero
    - Output::into
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn write_all(tag: Tag,write_value: &dyn Fn(&mut dyn Accumulator)
      -> Result<(), TooLongError>,) -> Result<Box<[u8]>, TooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LengthMeasurement::zero
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:53,1
    - Dst: write_value
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:54,1
    - Dst: SpdmResult::into
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:55,1
    - Dst: SpdmResult::try_into
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:57,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:57,1
    - Dst: TooLongError::new
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:57,1
    - Dst: Output::write_byte
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:59,1
    - Dst: SpdmResult::into
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:59,1
    - Dst: SpdmResult::to_le_bytes
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:61,1
    - Dst: Output::write_byte
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:63,1
    - Dst: Output::write_byte
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:64,1
    - Dst: Output::write_byte
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:66,1
    - Dst: Output::write_byte
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:68,1
    - Dst: write_value
      Src: /src/spdm-rs/external/ring/src/io/der_writer.rs:70,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - output
    - tag
    - write_value
    argTypes:
    - '&mut dyn Accumulator'
    - Tag
    - F
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: write_tlv
    functionSourceFile: /src/spdm-rs/external/ring/src/io/der_writer.rs
    functionUses: 2
    functionsReached:
    - Output::write_byte
    - TooLongError::new
    - SpdmResult::into
    - Result::map_err
    - SpdmResult::to_le_bytes
    - LengthMeasurement::zero
    - write_value
    - SpdmResult::try_into
    linkageType: ''
    returnType: Result
    signature: 'fn write_tlv<F>(output: &mut dyn Accumulator, tag: Tag, write_value:
      F) -> Result<(), TooLongError>whereF: Fn(&mut dyn Accumulator) -> Result<(),
      TooLongError>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitLength::<usize>::from_byte_len
      Src: /src/spdm-rs/external/ring/src/tests/bits_tests.rs:25,1
    - Dst: BitLength::<u64>::from_byte_len
      Src: /src/spdm-rs/external/ring/src/tests/bits_tests.rs:38,1
    - Dst: BitLength::<u64>::from_byte_len
      Src: /src/spdm-rs/external/ring/src/tests/bits_tests.rs:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 64
    functionName: test_from_byte_len_overflow
    functionSourceFile: /src/spdm-rs/external/ring/src/tests/bits_tests.rs
    functionUses: 0
    functionsReached:
    - BitLength::<u64>::from_byte_len
    - BitLength::<usize>::from_byte_len
    linkageType: ''
    returnType: void
    signature: fn test_from_byte_len_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - imprecise_input_length
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: InputTooLongError::new
    functionSourceFile: /src/spdm-rs/external/ring/src/error/input_too_long.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(imprecise_input_length: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::erase
      Src: /src/spdm-rs/external/ring/src/error/into_unspecified.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - source
    argTypes:
    - KeyRejected
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Unspecified::from
    functionSourceFile: /src/spdm-rs/external/ring/src/error/into_unspecified.rs
    functionUses: 0
    functionsReached:
    - super::erase
    linkageType: ''
    returnType: Self
    signature: 'fn from(source: KeyRejected) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames: []
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: erase
    functionSourceFile: /src/spdm-rs/external/ring/src/error/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Unspecified
    signature: 'pub(crate) fn erase<T>(_: T) -> Unspecified'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::write_str
      Src: /src/spdm-rs/external/ring/src/error/unspecified.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Unspecified::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/error/unspecified.rs
    functionUses: 0
    functionsReached:
    - SpdmCertChainBuffer::write_str
    linkageType: ''
    returnType: core::fmt::Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: KeyRejected::inconsistent_components
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 5
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn inconsistent_components() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: KeyRejected::invalid_component
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 4
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn invalid_component() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: KeyRejected::invalid_encoding
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 12
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn invalid_encoding() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: KeyRejected::rng_failed
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 1
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn rng_failed() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: KeyRejected::public_key_is_missing
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 1
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn public_key_is_missing() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: KeyRejected::too_small
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 2
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn too_small() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: KeyRejected::too_large
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 3
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn too_large() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: KeyRejected::version_not_supported
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 3
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn version_not_supported() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: KeyRejected::wrong_algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 2
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn wrong_algorithm() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: KeyRejected::private_modulus_len_not_multiple_of_512_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 1
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn private_modulus_len_not_multiple_of_512_bits() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: KeyRejected::unexpected_error
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 4
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn unexpected_error() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::write_str
      Src: /src/spdm-rs/external/ring/src/error/key_rejected.rs:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: KeyRejected::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/error/key_rejected.rs
    functionUses: 0
    functionsReached:
    - SpdmCertChainBuffer::write_str
    linkageType: ''
    returnType: core::fmt::Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::to_ascii_lowercase
      Src: /src/spdm-rs/external/ring/src/arithmetic/constant.rs:5,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 10
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 10
    functionName: parse_digit
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/constant.rs
    functionUses: 1
    functionsReached:
    - Vec::to_ascii_lowercase
    linkageType: ''
    returnType: u8
    signature: 'const fn parse_digit(d: u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::as_bytes
      Src: /src/spdm-rs/external/ring/src/arithmetic/constant.rs:14,1
    - Dst: size_of::<LeakyLimb>
      Src: /src/spdm-rs/external/ring/src/arithmetic/constant.rs:16,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/constant.rs:19,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/constant.rs:20,1
    - Dst: parse_digit
      Src: /src/spdm-rs/external/ring/src/arithmetic/constant.rs:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - hex
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 27
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 27
    functionName: limbs_from_hex
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/constant.rs
    functionUses: 1
    functionsReached:
    - Result::as_bytes
    - Result::len
    - size_of::<LeakyLimb>
    - parse_digit
    linkageType: ''
    returnType: '[LeakyLimb; LIMBS]'
    signature: 'pub const fn limbs_from_hex<const LIMBS: usize>(hex: &str) -> [LeakyLimb;
      LIMBS]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:77,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:78,1
    - Dst: LimbSliceError::too_short
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:78,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:78,1
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:80,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:80,1
    - Dst: OnceNonZeroUsize::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:80,1
    - Dst: usize::get
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:87,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:88,1
    - Dst: LimbSliceError::too_long
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:88,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:88,1
    - Dst: impl AliasingSlices3<Limb>::with_non_dangling_non_null_pointers_rab
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:90,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:92,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:94,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 5
    argNames:
    - in_out
    - n
    - n0
    - cpu
    - f
    argTypes:
    - impl AliasingSlices3<Limb>
    - '&[Limb]'
    - '&N0'
    - Cpu
    - "unsafe extern \"C\" fn(\n        r: *mut Limb,\n        a: *const Limb,\n \
      \       b: *const Limb,\n        n: *const Limb,\n        n0: &N0,\n       \
      \ len: c::NonZero_size_t,\n    )"
    constantsTouched: []
    func_position:
      end: 97
      start: 55
    functionDepth: 13
    functionLinenumber: 55
    functionLinenumberEnd: 97
    functionName: bn_mul_mont_ffi
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs
    functionUses: 0
    functionsReached:
    - Err
    - impl AliasingSlices3<Limb>::with_non_dangling_non_null_pointers_rab
    - as_ptr
    - f
    - NonZeroUsize::new
    - LimbSliceError::too_long
    - Result::map_err
    - LimbSliceError::too_short
    - usize::get
    - OnceNonZeroUsize::unwrap_or_else
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(super) unsafe fn bn_mul_mont_ffi<Cpu, const LEN_MIN: usize, const
      LEN_MOD: usize>(in_out: impl AliasingSlices3<Limb>,n: &[Limb],n0: &N0,cpu: Cpu,f:
      unsafe extern "C" fn(r: *mut Limb,a: *const Limb,b: *const Limb,n: *const Limb,n0:
      &N0,len: c::NonZero_size_t,),) -> Result<(), LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/arithmetic/n0.rs:29,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/arithmetic/n0.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - n0
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: N0::precalculated
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/n0.rs
    functionUses: 1
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub const fn precalculated(n0: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - Elem<M, E>
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Storage::from
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(elem: Elem<M, E>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - Storage<M>
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: Elem::clone_into
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 1
    functionsReached:
    - copy_from_slice
    linkageType: ''
    returnType: Self
    signature: 'pub fn clone_into(&self, mut out: Storage<M>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limb::limbs_are_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:104,1
    - Dst: LimbMask::leak
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Elem::is_zero
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 1
    functionsReached:
    - limb::limbs_are_zero
    - LimbMask::leak
    linkageType: ''
    returnType: bool
    signature: pub fn is_zero(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:116,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:116,1
    - Dst: limbs_mul_mont
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:117,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:119,1
    - Dst: n0
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:120,1
    - Dst: cpu_features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:121,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - in_out
    - m
    argTypes:
    - Storage<M>
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 14
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: from_montgomery_amm
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 2
    functionsReached:
    - Result::len
    - cpu_features
    - limbs_mul_mont
    - Result::unwrap_or_else
    - n0
    - limbs
    linkageType: ''
    returnType: Elem
    signature: 'fn from_montgomery_amm<M>(mut in_out: Storage<M>, m: &Modulus<M>)
      -> Elem<M, Unencoded>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_montgomery_amm
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:134,1
    - Dst: Storage::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 15
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Elem::into_unencoded
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 2
    functionsReached:
    - from_montgomery_amm
    - Storage::from
    linkageType: ''
    returnType: Elem
    signature: 'pub fn into_unencoded(self, m: &Modulus<M>) -> Elem<M, Unencoded>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:143,1
    - Dst: BoxedLimbs::from_be_bytes_padded_less_than
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - input
    - m
    argTypes:
    - untrusted::Input
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 15
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: Elem::from_be_bytes_padded
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 3
    functionsReached:
    - BoxedLimbs::from_be_bytes_padded_less_than
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_be_bytes_padded(input: untrusted::Input,m: &Modulus<M>,)
      -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limb::big_endian_from_limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: Elem::fill_be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 1
    functionsReached:
    - limb::big_endian_from_limbs
    linkageType: ''
    returnType: void
    signature: 'pub fn fill_be_bytes(&self, out: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limbs_mul_mont
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:165,1
    - Dst: as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:166,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:166,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:166,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:167,1
    - Dst: n0
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:168,1
    - Dst: cpu_features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:169,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 4
    argNames:
    - out
    - a
    - b
    - m
    argTypes:
    - Storage<M>
    - '&Elem<M, AF>'
    - '&Elem<M, BF>'
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 176
      start: 156
    functionDepth: 14
    functionLinenumber: 156
    functionLinenumberEnd: 176
    functionName: elem_mul_into
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - cpu_features
    - limbs_mul_mont
    - Result::unwrap_or_else
    - as_mut
    - n0
    - limbs
    linkageType: ''
    returnType: Elem
    signature: 'pub fn elem_mul_into<M, AF, BF>(mut out: Storage<M>,a: &Elem<M, AF>,b:
      &Elem<M, BF>,m: &Modulus<M>,) -> Elem<M, <(AF, BF) as ProductEncoding>::Output>where(AF,
      BF): ProductEncoding,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limbs_mul_mont
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:186,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:188,1
    - Dst: n0
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:189,1
    - Dst: cpu_features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:190,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - '&Elem<M, AF>'
    - Elem<M, BF>
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 14
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: elem_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 13
    functionsReached:
    - cpu_features
    - limbs_mul_mont
    - Result::unwrap_or_else
    - n0
    - limbs
    linkageType: ''
    returnType: Elem
    signature: 'pub fn elem_mul<M, AF, BF>(a: &Elem<M, AF>,mut b: Elem<M, BF>,m: &Modulus<M>,)
      -> Elem<M, <(AF, BF) as ProductEncoding>::Output>where(AF, BF): ProductEncoding,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limb::limbs_double_mod
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:201,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:201,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - r
    - m
    argTypes:
    - '&mut Elem<M, AF>'
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 12
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: elem_double
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 1
    functionsReached:
    - limb::limbs_double_mod
    - limbs
    - Result::unwrap_or_else
    linkageType: ''
    returnType: void
    signature: 'fn elem_double<M, AF>(r: &mut Elem<M, AF>, m: &Modulus<M>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:216,1
    - Dst: limb::limbs_reduce_once
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:217,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:217,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 4
    argNames:
    - r
    - a
    - m
    - other_modulus_len_bits
    argTypes:
    - Storage<M>
    - '&Elem<A, Unencoded>'
    - '&Modulus<M>'
    - BitLength
    constantsTouched: []
    func_position:
      end: 223
      start: 209
    functionDepth: 14
    functionLinenumber: 209
    functionLinenumberEnd: 223
    functionName: elem_reduced_once
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 2
    functionsReached:
    - limb::limbs_reduce_once
    - Result::unwrap_or_else
    - limbs
    - copy_from_slice
    linkageType: ''
    returnType: Elem
    signature: 'pub fn elem_reduced_once<A, M>(mut r: Storage<M>,a: &Elem<A, Unencoded>,m:
      &Modulus<M>,other_modulus_len_bits: BitLength,) -> Elem<M, Unencoded>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:241,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:242,1
    - Dst: limbs_from_mont_in_place
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:244,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:244,1
    - Dst: n0
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 4
    argNames:
    - r
    - a
    - m
    - other_prime_len_bits
    argTypes:
    - Storage<Smaller>
    - '&Elem<Larger, Unencoded>'
    - '&Modulus<Smaller>'
    - BitLength
    constantsTouched: []
    func_position:
      end: 249
      start: 226
    functionDepth: 14
    functionLinenumber: 226
    functionLinenumberEnd: 249
    functionName: elem_reduced
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 3
    functionsReached:
    - copy_from_slice
    - limbs_from_mont_in_place
    - n0
    - limbs
    - len
    linkageType: ''
    returnType: Elem
    signature: 'pub fn elem_reduced<Larger, Smaller>(mut r: Storage<Smaller>,a: &Elem<Larger,
      Unencoded>,m: &Modulus<Smaller>,other_prime_len_bits: BitLength,) -> Elem<Smaller,
      RInverse>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limbs_square_mont
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:259,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:259,1
    - Dst: n0
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:259,1
    - Dst: cpu_features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:259,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - a
    - m
    argTypes:
    - Elem<M, E>
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 13
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: elem_squared
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 11
    functionsReached:
    - cpu_features
    - Result::unwrap_or_else
    - n0
    - limbs
    - limbs_square_mont
    linkageType: ''
    returnType: Elem
    signature: 'fn elem_squared<M, E>(mut a: Elem<M, E>,m: &Modulus<M>,) -> Elem<M,
      <(E, E) as ProductEncoding>::Output>where(E, E): ProductEncoding,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:273,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:274,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:276,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:276,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:277,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:278,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 4
    argNames:
    - r
    - a
    - m
    - smaller_modulus_bits
    argTypes:
    - Storage<Larger>
    - Elem<Smaller, Unencoded>
    - '&Modulus<Larger>'
    - BitLength
    constantsTouched: []
    func_position:
      end: 283
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 283
    functionName: elem_widen
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 1
    functionsReached:
    - Err
    - fill
    - copy_from_slice
    - Ok
    - len_bits
    - split_at_mut
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub fn elem_widen<Larger, Smaller>(mut r: Storage<Larger>,a: Elem<Smaller,
      Unencoded>,m: &Modulus<Larger>,smaller_modulus_bits: BitLength,) -> Result<Elem<Larger,
      Unencoded>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limb::limbs_add_assign_mod
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:287,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:287,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - Elem<M, E>
    - Elem<M, E>
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 12
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: elem_add
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 1
    functionsReached:
    - limb::limbs_add_assign_mod
    - limbs
    - Result::unwrap_or_else
    linkageType: ''
    returnType: Elem
    signature: 'pub fn elem_add<M, E>(mut a: Elem<M, E>, b: Elem<M, E>, m: &Modulus<M>)
      -> Elem<M, E>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:304,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:304,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:304,1
    - Dst: OnceNonZeroUsize::unwrap
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:304,1
    - Dst: as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:305,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:305,1
    - Dst: with_non_dangling_non_null_pointers_rab
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:305,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:307,1
    - Dst: Result::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:307,1
    - Dst: LIMBS_sub_mod
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:308,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - Elem<M, E>
    - '&Elem<M, E>'
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 312
      start: 293
    functionDepth: 14
    functionLinenumber: 293
    functionLinenumberEnd: 312
    functionName: elem_sub
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 2
    functionsReached:
    - LIMBS_sub_mod
    - with_non_dangling_non_null_pointers_rab
    - OnceNonZeroUsize::unwrap
    - as_ref
    - unwrap_or_else
    - Result::as_ptr
    - limbs
    - NonZeroUsize::new
    - as_mut
    - Result::len
    linkageType: ''
    returnType: Elem
    signature: 'pub fn elem_sub<M, E>(mut a: Elem<M, E>, b: &Elem<M, E>, m: &Modulus<M>)
      -> Elem<M, E>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:327,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:327,1
    - Dst: oneR
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:332,1
    - Dst: Self::trailing_zeros
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:349,1
    - Dst: elem_double
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:355,1
    - Dst: elem_squared
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:390,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 2
    argNames:
    - out
    - m
    argTypes:
    - Storage<M>
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 397
      start: 325
    functionDepth: 14
    functionLinenumber: 325
    functionLinenumberEnd: 397
    functionName: One::newRR
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 5
    functionsReached:
    - elem_squared
    - Result::len
    - elem_double
    - Self::trailing_zeros
    - Self
    - oneR
    - limbs
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn newRR(mut out: Storage<M>, m: &Modulus<M>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:402,1
    - Dst: elem_squared
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    argTypes:
    - One<M, RR>
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 14
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: One::newRRR
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 2
    functionsReached:
    - Self
    - elem_squared
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn newRRR(One(oneRR): One<M, RR>, m: &Modulus<M>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: One::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Elem'
    signature: fn as_ref(&self) -> &Elem<M, E>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:414,1
    - Dst: clone_into
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - Storage<M>
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: One::clone_into
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - Self
    - clone_into
    linkageType: ''
    returnType: Self
    signature: 'pub fn clone_into(&self, out: Storage<M>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::get
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:450,1
    - Dst: SpdmBaseAsymAlgo::clone_into
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:451,1
    - Dst: Result::leading_zeros
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:452,1
    - Dst: elem_squared
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:456,1
    - Dst: elem_mul
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 4
    argNames:
    - out
    - base
    - exponent
    - m
    argTypes:
    - Storage<M>
    - Elem<M, R>
    - NonZeroU64
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 462
      start: 427
    functionDepth: 13
    functionLinenumber: 427
    functionLinenumberEnd: 462
    functionName: elem_exp_vartime
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 1
    functionsReached:
    - elem_squared
    - Result::get
    - elem_mul
    - Result::leading_zeros
    - SpdmBaseAsymAlgo::clone_into
    linkageType: ''
    returnType: Elem
    signature: 'pub(crate) fn elem_exp_vartime<M>(out: Storage<M>,base: Elem<M, R>,exponent:
      NonZeroU64,m: &Modulus<M>,) -> Elem<M, R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:494,1
    - Dst: bigint::elem_exp_consttime
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:495,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:496,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - c
    - p
    - other_prime_len_bits
    - cpu_features
    argTypes:
    - '&bigint::Elem<N>'
    - '&PrivateCrtPrime<M>'
    - BitLength
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 504
      start: 488
    functionDepth: 16
    functionLinenumber: 488
    functionLinenumberEnd: 504
    functionName: elem_exp_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 3
    functionsReached:
    - Result::map_err
    - modulus
    - alloc_zero
    - bigint::elem_exp_consttime
    linkageType: ''
    returnType: Result
    signature: 'fn elem_exp_consttime<M>(c: &bigint::Elem<N>,p: &PrivateCrtPrime<M>,other_prime_len_bits:
      BitLength,cpu_features: cpu::Features,) -> Result<bigint::Elem<M>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:538,1
    - Dst: LIMBS_select_512_32
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:539,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:539,1
    - Dst: usize::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:539,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:539,1
    - Dst: Self::unwrap
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - table
    - acc
    - i
    argTypes:
    - '&[Limb]'
    - '&mut Elem<M, R>'
    - Window
    constantsTouched: []
    func_position:
      end: 542
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 542
    functionName: e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::gather
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - LIMBS_select_512_32
    - Self::unwrap
    - Result::from
    - as_mut_ptr
    - usize::as_ptr
    - len
    linkageType: ''
    returnType: void
    signature: 'fn gather<M>(table: &[Limb], acc: &mut Elem<M, R>, i: Window)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_squared
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:552,1
    - Dst: gather
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:554,1
    - Dst: elem_mul
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - table
    - acc
    - m
    - i
    - tmp
    argTypes:
    - '&[Limb]'
    - Elem<M, R>
    - '&Modulus<M>'
    - Window
    - Elem<M, R>
    constantsTouched: []
    func_position:
      end: 557
      start: 544
    functionDepth: 14
    functionLinenumber: 544
    functionLinenumberEnd: 557
    functionName: e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::power
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - elem_squared
    - gather
    - elem_mul
    linkageType: ''
    returnType: (Elem
    signature: 'fn power<M>(table: &[Limb],mut acc: Elem<M, R>,m: &Modulus<M>,i: Window,mut
      tmp: Elem<M, R>,) -> (Elem<M, R>, Elem<M, R>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - table
    - i
    - num_limbs
    argTypes:
    - '&[Limb]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 561
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 561
    functionName: e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::entry
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[Limb]'
    signature: 'fn entry(table: &[Limb], i: usize, num_limbs: usize) -> &[Limb]'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - table
    - i
    - num_limbs
    argTypes:
    - '&mut [Limb]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 564
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 564
    functionName: e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::entry_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut [Limb]'
    signature: 'fn entry_mut(table: &mut [Limb], i: usize, num_limbs: usize) -> &mut
      [Limb]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n0
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:635,1
    - Dst: cpu_features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:637,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:637,1
    - Dst: cpu_features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:638,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:638,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:640,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:640,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:640,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:641,1
    - Dst: LimbSliceError::len_mismatch
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:641,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:641,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:642,1
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:646,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:646,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:648,1
    - Dst: LimbSliceError::len_mismatch
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:648,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:648,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:650,1
    - Dst: '&One<M, RRR>::as_ref'
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:652,1
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:653,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:656,1
    - Dst: LimbSliceError::len_mismatch
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:656,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:656,1
    - Dst: '&One<M, RRR>::len'
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:657,1
    - Dst: limbs512::AlignedStorage::<STORAGE_LIMBS>::zeroed
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:682,1
    - Dst: usize::aligned_chunks_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:683,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:683,1
    - Dst: usize::split_at_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:686,1
    - Dst: SpdmResult::split_at_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:690,1
    - Dst: '&[u8]::split_at_mut'
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:691,1
    - Dst: as_flattened_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:694,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:694,1
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:696,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:697,1
    - Dst: elem_reduced
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:699,1
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:700,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:703,1
    - Dst: LimbSliceError::len_mismatch
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:703,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:703,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:704,1
    - Dst: mul_mont5
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:710,1
    - Dst: as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:711,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:718,1
    - Dst: Storage::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:719,1
    - Dst: oneR
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:745,1
    - Dst: as_flattened_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:745,1
    - Dst: scatter5
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:746,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:746,1
    - Dst: usize::as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:746,1
    - Dst: as_flattened_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:749,1
    - Dst: '&mut [T]::copy_from_slice'
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:749,1
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:750,1
    - Dst: scatter_powers_of_2
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:753,1
    - Dst: usize::as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:753,1
    - Dst: as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:753,1
    - Dst: step_by
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:756,1
    - Dst: Window::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:757,1
    - Dst: mul_mont_gather5_amm
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:760,1
    - Dst: as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:761,1
    - Dst: usize::as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:763,1
    - Dst: scatter_powers_of_2
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:770,1
    - Dst: usize::as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:770,1
    - Dst: as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:770,1
    - Dst: usize::as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:773,1
    - Dst: limb::fold_5_bit_windows
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:775,1
    - Dst: Result::limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:776,1
    - Dst: gather5
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:778,1
    - Dst: as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:778,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:778,1
    - Dst: power5_amm
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:783,1
    - Dst: as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:783,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:783,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:790,1
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:790,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:791,1
    - Dst: from_montgomery_amm
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:791,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 196
    argCount: 6
    argNames:
    - out
    - base_mod_n
    - oneRRR
    - exponent
    - m
    - other_prime_len_bits
    argTypes:
    - Storage<M>
    - '&Elem<N>'
    - '&One<M, RRR>'
    - '&PrivateExponent'
    - '&Modulus<M>'
    - BitLength
    constantsTouched: []
    func_position:
      end: 792
      start: 615
    functionDepth: 12
    functionLinenumber: 615
    functionLinenumberEnd: 792
    functionName: elem_exp_consttime_inner
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - from_montgomery_amm
    - mul_mont5
    - usize::aligned_chunks_mut
    - copy_from_slice
    - limb::fold_5_bit_windows
    - Result::map_err
    - Result::limbs
    - usize::split_at_mut
    - cpu_features
    - LimbSliceError::len_mismatch
    - step_by
    - Storage::from
    - '&One<M, RRR>::as_ref'
    - '&[u8]::split_at_mut'
    - as_mut
    - '&mut [T]::copy_from_slice'
    - slice::as_chunks
    - limbs512::AlignedStorage::<STORAGE_LIMBS>::zeroed
    - oneR
    - SpdmResult::split_at_mut
    - limbs
    - '&One<M, RRR>::len'
    - Window::from
    - unwrap_or_else
    - Err
    - usize::as_ref
    - gather5
    - Ok
    - cpu::Features::get_feature
    - usize::as_mut
    - scatter5
    - mul_mont_gather5_amm
    - as_ref
    - LenMismatchError::new
    - power5_amm
    - scatter_powers_of_2
    - as_flattened
    - as_flattened_mut
    - n0
    - Result::len
    - elem_reduced
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn elem_exp_consttime_inner<N, M, const STORAGE_LIMBS: usize>(out:
      Storage<M>,base_mod_n: &Elem<N>,oneRRR: &One<M, RRR>,exponent: &PrivateExponent,m:
      &Modulus<M>,other_prime_len_bits: BitLength,) -> Result<Elem<M, Unencoded>,
      LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scatter5
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:732,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:732,1
    - Dst: usize::as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:732,1
    - Dst: sqr_mont5
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:737,1
    - Dst: as_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:737,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:739,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - table
    - acc
    - m_cached
    - n0
    - i
    - cpu
    argTypes:
    - AsChunksMut<Limb, 8>
    - AsChunksMut<Limb, 8>
    - AsChunks<Limb, 8>
    - '&N0'
    - LeakyWindow
    - Option<(Adx, Bmi2)>
    constantsTouched: []
    func_position:
      end: 740
      start: 723
    functionDepth: 15
    functionLinenumber: 723
    functionLinenumberEnd: 740
    functionName: e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::scatter_powers_of_2
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - sqr_mont5
    - Ok
    - as_mut
    - usize::as_mut
    - scatter5
    linkageType: ''
    returnType: Result
    signature: 'fn scatter_powers_of_2(mut table: AsChunksMut<Limb, 8>,mut acc: AsChunksMut<Limb,
      8>,m_cached: AsChunks<Limb, 8>,n0: &N0,mut i: LeakyWindow,cpu: Option<(Adx,
      Bmi2)>,) -> Result<(), LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_mul
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:800,1
    - Dst: limb::verify_limbs_equal_1_leak_bit
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - '&Elem<M, R>'
    - Elem<M, Unencoded>
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 802
      start: 795
    functionDepth: 15
    functionLinenumber: 795
    functionLinenumberEnd: 802
    functionName: verify_inverses_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 1
    functionsReached:
    - elem_mul
    - limb::verify_limbs_equal_1_leak_bit
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify_inverses_consttime<M>(a: &Elem<M, R>,b: Elem<M, Unencoded>,m:
      &Modulus<M>,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limb::limbs_equal_limbs_consttime
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:809,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:809,1
    - Dst: leak
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:811,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:812,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&Elem<M, E>'
    - '&Elem<M, E>'
    constantsTouched: []
    func_position:
      end: 815
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 815
    functionName: elem_verify_equal_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 2
    functionsReached:
    - leak
    - Err
    - Ok
    - Result::unwrap_or_else
    - limb::limbs_equal_limbs_consttime
    linkageType: ''
    returnType: Result
    signature: 'pub fn elem_verify_equal_consttime<M, E>(a: &Elem<M, E>,b: &Elem<M,
      E>,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames: []
    argTypes:
    - LenMismatchError
    constantsTouched: []
    func_position:
      end: 610
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 610
    functionName: unwrap_impossible_len_mismatch_error
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: fn unwrap_impossible_len_mismatch_error<T>(LenMismatchError
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - LimbSliceError
    constantsTouched: []
    func_position:
      end: 831
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 831
    functionName: unwrap_impossible_limb_slice_error
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn unwrap_impossible_limb_slice_error(err: LimbSliceError)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:846,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:847,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:848,1
    - Dst: consume_modulus::<M>
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:852,1
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:853,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:854,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:855,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:857,1
    - Dst: PrivateExponent::from_be_bytes_for_test_only
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:858,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:858,1
    - Dst: Result::expect
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:858,1
    - Dst: One::newRR
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:862,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:862,1
    - Dst: One::newRRR
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:863,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:870,1
    - Dst: BoxedLimbs::zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:872,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:872,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:873,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:873,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:880,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:880,1
    - Dst: elem_exp_consttime
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:882,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:883,1
    - Dst: elem_exp_consttime
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:891,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:892,1
    - Dst: elem_exp_consttime_inner::<_, _, { (4096 / LIMB_BITS) * STORAGE_ENTRIES
        }>
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:902,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:903,1
    - Dst: assert_elem_eq
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:912,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 921
      start: 845
    functionDepth: 15
    functionLinenumber: 845
    functionLinenumberEnd: 921
    functionName: tests::test_elem_exp_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - alloc_zero
    - copy_from_slice
    - modulus
    - consume_elem
    - cpu::features
    - BoxedLimbs::zero
    - consume_modulus::<M>
    - PrivateExponent::from_be_bytes_for_test_only
    - elem_exp_consttime
    - elem_exp_consttime_inner::<_, _, { (4096 / LIMB_BITS) * STORAGE_ENTRIES }>
    - limbs
    - Option::consume_bytes
    - One::newRRR
    - Ok
    - len_bits
    - assert_elem_eq
    - One::newRR
    - Result::expect
    - test_vector_file
    - untrusted::Input::from
    - test::run
    - Result::len
    - len
    linkageType: ''
    returnType: void
    signature: fn test_elem_exp_consttime()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:929,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:930,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:931,1
    - Dst: consume_modulus::<M>
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:935,1
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:936,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:937,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:938,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:939,1
    - Dst: into_encoded
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:941,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:941,1
    - Dst: into_encoded
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:942,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:942,1
    - Dst: elem_mul
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:943,1
    - Dst: Elem::into_unencoded
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:944,1
    - Dst: assert_elem_eq
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:945,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 950
      start: 928
    functionDepth: 15
    functionLinenumber: 928
    functionLinenumberEnd: 950
    functionName: tests::test_elem_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - consume_elem
    - cpu::features
    - alloc_zero
    - test_vector_file
    - consume_modulus::<M>
    - Ok
    - elem_mul
    - into_encoded
    - test::run
    - assert_elem_eq
    - Elem::into_unencoded
    - modulus
    linkageType: ''
    returnType: void
    signature: fn test_elem_mul()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:954,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:955,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:956,1
    - Dst: consume_modulus::<M>
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:960,1
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:961,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:962,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:963,1
    - Dst: into_encoded
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:965,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:965,1
    - Dst: elem_squared
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:966,1
    - Dst: Elem::into_unencoded
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:967,1
    - Dst: assert_elem_eq
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:968,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 953
    functionDepth: 15
    functionLinenumber: 953
    functionLinenumberEnd: 973
    functionName: tests::test_elem_squared
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - elem_squared
    - consume_elem
    - cpu::features
    - alloc_zero
    - test_vector_file
    - consume_modulus::<M>
    - Ok
    - into_encoded
    - test::run
    - assert_elem_eq
    - Elem::into_unencoded
    - modulus
    linkageType: ''
    returnType: void
    signature: fn test_elem_squared()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:977,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:978,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:979,1
    - Dst: consume_modulus::<M>
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:985,1
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:986,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:987,1
    - Dst: consume_elem_unchecked::<M>
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:989,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:989,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:990,1
    - Dst: elem_reduced
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:992,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:992,1
    - Dst: One::newRR
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:993,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:993,1
    - Dst: elem_mul
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:994,1
    - Dst: '&bigint::Elem::as_ref'
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:994,1
    - Dst: assert_elem_eq
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:995,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 976
    functionDepth: 15
    functionLinenumber: 976
    functionLinenumberEnd: 1000
    functionName: tests::test_elem_reduced
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - consume_elem
    - cpu::features
    - alloc_zero
    - test_vector_file
    - elem_reduced
    - consume_modulus::<M>
    - consume_elem_unchecked::<M>
    - Ok
    - elem_mul
    - len_bits
    - test::run
    - assert_elem_eq
    - '&bigint::Elem::as_ref'
    - One::newRR
    - modulus
    - len
    linkageType: ''
    returnType: void
    signature: fn test_elem_reduced()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1004,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1005,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1006,1
    - Dst: consume_modulus::<M>
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1012,1
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1013,1
    - Dst: consume_elem_unchecked::<O>
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1014,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1014,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1014,1
    - Dst: consume_elem::<M>
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1015,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1016,1
    - Dst: elem_reduced_once
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1019,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1019,1
    - Dst: assert_elem_eq
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1020,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1003
    functionDepth: 15
    functionLinenumber: 1003
    functionLinenumberEnd: 1025
    functionName: tests::test_elem_reduced_once
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - cpu::features
    - Result::len
    - alloc_zero
    - test_vector_file
    - consume_modulus::<M>
    - Ok
    - elem_reduced_once
    - len_bits
    - test::run
    - consume_elem::<M>
    - assert_elem_eq
    - limbs
    - modulus
    - consume_elem_unchecked::<O>
    linkageType: ''
    returnType: void
    signature: fn test_elem_reduced_once()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1367,1
    - Dst: Bytes::extend
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1369,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1371,1
    - Dst: elem_parse_big_endian_fixed_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1372,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - q
    - test_case
    - name
    argTypes:
    - '&Modulus<Q>'
    - '&mut test::TestCase'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1379
      start: 1366
    functionDepth: 16
    functionLinenumber: 1366
    functionLinenumberEnd: 1379
    functionName: tests::consume_elem
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - untrusted::Input::from
    - Bytes::extend
    - Result::unwrap
    - elem_parse_big_endian_fixed_consttime
    linkageType: ''
    returnType: Elem
    signature: 'fn consume_elem(q: &Modulus<Q>, test_case: &mut test::TestCase, name:
      &str) -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1041,1
    - Dst: BoxedLimbs::zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1042,1
    - Dst: limb::parse_big_endian_and_pad_consttime
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1043,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1043,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - test_case
    - name
    - num_limbs
    argTypes:
    - '&mut test::TestCase'
    - '&str'
    - usize
    constantsTouched: []
    func_position:
      end: 1049
      start: 1036
    functionDepth: 7
    functionLinenumber: 1036
    functionLinenumberEnd: 1049
    functionName: tests::consume_elem_unchecked
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - BoxedLimbs::zero
    - untrusted::Input::from
    - Result::unwrap
    - limb::parse_big_endian_and_pad_consttime
    linkageType: ''
    returnType: Elem
    signature: 'fn consume_elem_unchecked<M>(test_case: &mut test::TestCase,name:
      &str,num_limbs: usize,) -> Elem<M, Unencoded>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1052,1
    - Dst: OwnedModulus::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1053,1
    - Dst: OwnedModulusValue::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1054,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1054,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - test_case
    - name
    argTypes:
    - '&mut test::TestCase'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1056
      start: 1051
    functionDepth: 15
    functionLinenumber: 1051
    functionLinenumberEnd: 1056
    functionName: tests::consume_modulus
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - untrusted::Input::from
    - Result::unwrap
    - OwnedModulusValue::from_be_bytes
    - OwnedModulus::from
    linkageType: ''
    returnType: OwnedModulus
    signature: 'fn consume_modulus<M>(test_case: &mut test::TestCase, name: &str)
      -> OwnedModulus<M>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_verify_equal_consttime
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1059,1
    - Dst: Result::is_err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&Elem<M, E>'
    - '&Elem<M, E>'
    constantsTouched: []
    func_position:
      end: 1062
      start: 1058
    functionDepth: 4
    functionLinenumber: 1058
    functionLinenumberEnd: 1062
    functionName: tests::assert_elem_eq
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - Result::is_err
    - elem_verify_equal_consttime
    linkageType: ''
    returnType: void
    signature: 'fn assert_elem_eq<M, E>(a: &Elem<M, E>, b: &Elem<M, E>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: One::newRR
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1065,1
    - Dst: elem_mul
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1066,1
    - Dst: '&bigint::Elem::as_ref'
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - a
    - m
    argTypes:
    - Storage<M>
    - Elem<M, Unencoded>
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 1067
      start: 1064
    functionDepth: 15
    functionLinenumber: 1064
    functionLinenumberEnd: 1067
    functionName: tests::into_encoded
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
    functionUses: 0
    functionsReached:
    - elem_mul
    - '&bigint::Elem::as_ref'
    - One::newRR
    linkageType: ''
    returnType: Elem
    signature: 'fn into_encoded<M>(out: Storage<M>, a: Elem<M, Unencoded>, m: &Modulus<M>)
      -> Elem<M, R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AliasingSlices2::with_potentially_dangling_non_null_pointers_ra
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:44,1
    - Dst: NonZeroUsize::get
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - expected_len
    - f
    argTypes:
    - NonZeroUsize
    - impl FnOnce(*mut T, *const T) -> R
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 9
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: AliasingSlices2::with_non_dangling_non_null_pointers_ra
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/inout.rs
    functionUses: 0
    functionsReached:
    - NonZeroUsize::get
    - AliasingSlices2::with_potentially_dangling_non_null_pointers_ra
    linkageType: ''
    returnType: Result
    signature: 'fn with_non_dangling_non_null_pointers_ra<R>(self,expected_len: NonZeroUsize,f:
      impl FnOnce(*mut T, *const T) -> R,) -> Result<R, LenMismatchError>whereSelf:
      Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:69,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:70,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:70,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:70,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:72,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:72,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - expected_len
    - f
    argTypes:
    - usize
    - impl FnOnce(*mut T, *const T) -> R
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: '&mut [T]::with_potentially_dangling_non_null_pointers_ra'
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/inout.rs
    functionUses: 0
    functionsReached:
    - Err
    - as_ptr
    - LenMismatchError::new
    - Ok
    - as_mut_ptr
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn with_potentially_dangling_non_null_pointers_ra<R>(self,expected_len:
      usize,f: impl FnOnce(*mut T, *const T) -> R,) -> Result<R, LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:83,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:84,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:84,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:84,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:86,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:87,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:87,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:87,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:89,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:89,1
    - Dst: Vec::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - expected_len
    - f
    argTypes:
    - usize
    - impl FnOnce(*mut T, *const T) -> R
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: (&mut [T], &[T])::with_potentially_dangling_non_null_pointers_ra
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/inout.rs
    functionUses: 0
    functionsReached:
    - Err
    - LenMismatchError::new
    - Ok
    - Vec::len
    - as_mut_ptr
    - Vec::as_ptr
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn with_potentially_dangling_non_null_pointers_ra<R>(self,expected_len:
      usize,f: impl FnOnce(*mut T, *const T) -> R,) -> Result<R, LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AliasingSlices3::with_potentially_dangling_non_null_pointers_rab
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:119,1
    - Dst: NonZeroUsize::get
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - expected_len
    - f
    argTypes:
    - NonZeroUsize
    - impl FnOnce(*mut T, *const T, *const T) -> R
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: AliasingSlices3::with_non_dangling_non_null_pointers_rab
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/inout.rs
    functionUses: 0
    functionsReached:
    - NonZeroUsize::get
    - AliasingSlices3::with_potentially_dangling_non_null_pointers_rab
    linkageType: ''
    returnType: Result
    signature: 'fn with_non_dangling_non_null_pointers_rab<R>(self,expected_len: NonZeroUsize,f:
      impl FnOnce(*mut T, *const T, *const T) -> R,) -> Result<R, LenMismatchError>whereSelf:
      Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <Self as AliasingSlices2<T>>::with_potentially_dangling_non_null_pointers_ra
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - expected_len
    - f
    argTypes:
    - usize
    - impl FnOnce(*mut T, *const T, *const T) -> R
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: '&mut [T]::with_potentially_dangling_non_null_pointers_rab'
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/inout.rs
    functionUses: 0
    functionsReached:
    - <Self as AliasingSlices2<T>>::with_potentially_dangling_non_null_pointers_ra
    linkageType: ''
    returnType: Result
    signature: 'fn with_potentially_dangling_non_null_pointers_rab<R>(self,expected_len:
      usize,f: impl FnOnce(*mut T, *const T, *const T) -> R,) -> Result<R, LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_potentially_dangling_non_null_pointers_rab
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - expected_len
    - f
    argTypes:
    - usize
    - impl FnOnce(*mut T, *const T, *const T) -> R
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: (&mut [T], &[T], &[T])::with_potentially_dangling_non_null_pointers_rab
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/inout.rs
    functionUses: 0
    functionsReached:
    - with_potentially_dangling_non_null_pointers_rab
    linkageType: ''
    returnType: Result
    signature: 'fn with_potentially_dangling_non_null_pointers_rab<R>(self,expected_len:
      usize,f: impl FnOnce(*mut T, *const T, *const T) -> R,) -> Result<R, LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:172,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:173,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:173,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:173,1
    - Dst: Result::with_potentially_dangling_non_null_pointers_ra
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:175,1
    - Dst: SpdmResult::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/inout.rs:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - expected_len
    - f
    argTypes:
    - usize
    - impl FnOnce(*mut T, *const T, *const T) -> R
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: (RA, &[T])::with_potentially_dangling_non_null_pointers_rab
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/inout.rs
    functionUses: 0
    functionsReached:
    - Err
    - Result::with_potentially_dangling_non_null_pointers_ra
    - LenMismatchError::new
    - SpdmResult::len
    - SpdmResult::as_ptr
    linkageType: ''
    returnType: Result
    signature: 'fn with_potentially_dangling_non_null_pointers_rab<R>(self,expected_len:
      usize,f: impl FnOnce(*mut T, *const T, *const T) -> R,) -> Result<R, LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 0
    argCount: 4
    argNames:
    - in_out
    - n
    - n0
    - cpu
    argTypes:
    - impl AliasingSlices3<Limb>
    - '&[Limb]'
    - '&N0'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 190
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 190
    functionName: limbs_mul_mont
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn limbs_mul_mont(in_out: impl AliasingSlices3<Limb>,n:
      &[Limb],n0: &N0,cpu: cpu::Features,) -> Result<(), LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:269,1
    - Dst: bn_from_montgomery_in_place
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:270,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:271,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:272,1
    - Dst: '&mut [Limb]::as_mut_ptr'
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:273,1
    - Dst: '&mut [Limb]::len'
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:274,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:275,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:276,1
    - Dst: Self::unwrap
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - r
    - tmp
    - m
    - n0
    argTypes:
    - '&mut [Limb]'
    - '&mut [Limb]'
    - '&[Limb]'
    - '&N0'
    constantsTouched: []
    func_position:
      end: 281
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 281
    functionName: limbs_from_mont_in_place
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs
    functionUses: 1
    functionsReached:
    - Self::unwrap
    - as_ptr
    - bn_from_montgomery_in_place
    - Result::from
    - '&mut [Limb]::len'
    - as_mut_ptr
    - '&mut [Limb]::as_mut_ptr'
    - len
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn limbs_from_mont_in_place(r: &mut [Limb], tmp: &mut [Limb],
      m: &[Limb], n0: &N0)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:291,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:293,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:294,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:294,1
    - Dst: limbs_mul_add_limb
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:296,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:296,1
    - Dst: Vec::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - '&mut [Limb]'
    - '&[Limb]'
    - '&[Limb]'
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: limbs_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::iter
    - limbs_mul_add_limb
    - Self::IntoIter::enumerate
    - Vec::len
    - as_mut_ptr
    - Vec::as_ptr
    - fill
    linkageType: ''
    returnType: void
    signature: 'fn limbs_mul(r: &mut [Limb], a: &[Limb], b: &[Limb])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slice::as_chunks_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:326,1
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:326,1
    - Dst: aarch64::mont::sqr_mont5
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:327,1
    - Dst: slice::as_chunks_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:335,1
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:335,1
    - Dst: x86_64::mont::sqr_mont5
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:336,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:336,1
    - Dst: limbs_mul_mont
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - r
    - n
    - n0
    - cpu
    argTypes:
    - '&mut [Limb]'
    - '&[Limb]'
    - '&N0'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 341
      start: 316
    functionDepth: 12
    functionLinenumber: 316
    functionLinenumberEnd: 341
    functionName: limbs_square_mont
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs
    functionUses: 1
    functionsReached:
    - limbs_mul_mont
    - x86_64::mont::sqr_mont5
    - aarch64::mont::sqr_mont5
    - cpu::Features::get_feature
    - slice::as_chunks
    - slice::as_chunks_mut
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn limbs_square_mont(r: &mut [Limb],n: &[Limb],n0: &N0,cpu:
      cpu::Features,) -> Result<(), LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:366,1
    - Dst: enumerate
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:366,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:369,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:370,1
    - Dst: limbs_mul_add_limb
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:375,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:375,1
    - Dst: Vec::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:375,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 383
    functionName: tests::test_mul_add_words
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs
    functionUses: 0
    functionsReached:
    - limbs_mul_add_limb
    - copy_from_slice
    - Vec::len
    - iter
    - as_mut_ptr
    - Vec::as_ptr
    - enumerate
    - len
    linkageType: ''
    returnType: void
    signature: fn test_mul_add_words()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [T]::as_flattened_mut'
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:92,1
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:93,1
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:94,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:94,1
    - Dst: OnceNonZeroUsize::ok_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:94,1
    - Dst: LimbSliceError::too_short
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:94,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:94,1
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:97,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:98,1
    - Dst: LimbSliceError::too_long
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:98,1
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:98,1
    - Dst: Limb::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:103,1
    - Dst: Limb::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:104,1
    - Dst: '&mut [T]::with_non_dangling_non_null_pointers_ra'
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:107,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:109,1
    - Dst: bn_sqr8x_mont
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:110,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 4
    argNames:
    - in_out
    - n
    - n0
    - maybe_adx_bmi2
    argTypes:
    - AsChunksMut<Limb, 8>
    - AsChunks<Limb, 8>
    - '&N0'
    - Option<(Adx, Bmi2)>
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 13
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: sqr_mont5
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
    functionUses: 2
    functionsReached:
    - '&mut [T]::with_non_dangling_non_null_pointers_ra'
    - '&mut [T]::as_flattened_mut'
    - Err
    - OnceNonZeroUsize::ok_or_else
    - as_ptr
    - NonZeroUsize::new
    - bn_sqr8x_mont
    - LimbSliceError::too_long
    - Result::map_err
    - as_flattened
    - LimbSliceError::too_short
    - Limb::from
    - get
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(in super::super::super) fn sqr_mont5(mut in_out: AsChunksMut<Limb,
      8>,n: AsChunks<Limb, 8>,n0: &N0,maybe_adx_bmi2: Option<(Adx, Bmi2)>,) -> Result<(),
      LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul_mont5_4x
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:42,1
    - Dst: as_flattened_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:43,1
    - Dst: Vec::as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:43,1
    - Dst: SpdmResult::as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:43,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - r
    - a
    - b
    - m
    - n0
    - maybe_adx_bmi2
    argTypes:
    - AsChunksMut<Limb, 8>
    - AsChunks<Limb, 8>
    - AsChunks<Limb, 8>
    - AsChunks<Limb, 8>
    - '&N0'
    - Option<(Adx, Bmi2)>
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: mul_mont5
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
    functionUses: 1
    functionsReached:
    - mul_mont5_4x
    - SpdmResult::as_flattened
    - into
    - as_flattened_mut
    - Vec::as_flattened
    linkageType: ''
    returnType: Result
    signature: 'pub(in super::super::super) fn mul_mont5(mut r: AsChunksMut<Limb,
      8>,a: AsChunks<Limb, 8>,b: AsChunks<Limb, 8>,m: AsChunks<Limb, 8>,n0: &N0,maybe_adx_bmi2:
      Option<(Adx, Bmi2)>,) -> Result<(), LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in_out
    - n
    - n0
    - maybe_adx_bmi2
    argTypes:
    - impl AliasingSlices3<Limb>
    - AsChunks<Limb, 4>
    - '&N0'
    - Option<(Adx, Bmi2)>
    constantsTouched: []
    func_position:
      end: 70
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 70
    functionName: mul_mont5_4x
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
    functionUses: 1
    functionsReached:
    - as_flattened
    linkageType: ''
    returnType: Result
    signature: 'pub(in super::super::super) fn mul_mont5_4x(in_out: impl AliasingSlices3<Limb>,n:
      AsChunks<Limb, 4>,n0: &N0,maybe_adx_bmi2: Option<(Adx, Bmi2)>,) -> Result<(),
      LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_common
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:131,1
    - Dst: usize::as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:131,1
    - Dst: Vec::as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:132,1
    - Dst: usize::as_flattened_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:133,1
    - Dst: bn_scatter5
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:135,1
    - Dst: Vec::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:135,1
    - Dst: usize::as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:135,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - a
    - table
    - power
    argTypes:
    - AsChunks<Limb, 8>
    - AsChunksMut<Limb, 8>
    - LeakyWindow
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 14
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: scatter5
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
    functionUses: 3
    functionsReached:
    - usize::as_flattened_mut
    - check_common
    - Ok
    - Vec::as_flattened
    - bn_scatter5
    - Vec::as_ptr
    - usize::as_ref
    - usize::as_mut_ptr
    linkageType: ''
    returnType: Result
    signature: 'pub(in super::super::super) fn scatter5(a: AsChunks<Limb, 8>,mut table:
      AsChunksMut<Limb, 8>,power: LeakyWindow,) -> Result<(), LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_common
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:155,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:155,1
    - Dst: as_flattened_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:156,1
    - Dst: usize::as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:157,1
    - Dst: bn_gather5
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:160,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:160,1
    - Dst: usize::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:160,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - r
    - table
    - power
    argTypes:
    - AsChunksMut<Limb, 8>
    - AsChunks<Limb, 8>
    - Window
    constantsTouched: []
    func_position:
      end: 162
      start: 141
    functionDepth: 14
    functionLinenumber: 141
    functionLinenumberEnd: 162
    functionName: gather5
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
    functionUses: 3
    functionsReached:
    - usize::as_flattened
    - as_ref
    - check_common
    - Ok
    - bn_gather5
    - as_flattened_mut
    - as_mut_ptr
    - usize::as_ptr
    linkageType: ''
    returnType: Result
    signature: 'pub(in super::super::super) unsafe fn gather5(mut r: AsChunksMut<Limb,
      8>,table: AsChunks<Limb, 8>,power: Window,) -> Result<(), LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_common_with_n
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:199,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:199,1
    - Dst: Vec::as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:200,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:201,1
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:201,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:202,1
    - Dst: LimbSliceError::len_mismatch
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:202,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:202,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:202,1
    - Dst: as_flattened_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:204,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:205,1
    - Dst: Vec::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:206,1
    - Dst: usize::as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:207,1
    - Dst: usize::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:208,1
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:209,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:210,1
    - Dst: Option<(Adx, Bmi1, Bmi2)>::is_some
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:213,1
    - Dst: bn_mulx4x_mont_gather5
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:214,1
    - Dst: bn_mul4x_mont_gather5
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:216,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 7
    argNames:
    - r
    - a
    - table
    - n
    - n0
    - power
    - maybe_adx_bmi1_bmi2
    argTypes:
    - AsChunksMut<Limb, 8>
    - AsChunks<Limb, 8>
    - AsChunks<Limb, 8>
    - AsChunks<Limb, 8>
    - '&N0'
    - Window
    - Option<(Adx, Bmi1, Bmi2)>
    constantsTouched: []
    func_position:
      end: 219
      start: 166
    functionDepth: 15
    functionLinenumber: 166
    functionLinenumberEnd: 219
    functionName: mul_mont_gather5_amm
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
    functionUses: 1
    functionsReached:
    - bn_mulx4x_mont_gather5
    - bn_mul4x_mont_gather5
    - usize::as_flattened
    - Vec::as_ptr
    - LimbSliceError::len_mismatch
    - as_ptr
    - check_common_with_n
    - get
    - Option<(Adx, Bmi1, Bmi2)>::is_some
    - Err
    - Ok
    - as_mut_ptr
    - as_ref
    - LenMismatchError::new
    - Vec::len
    - as_flattened
    - as_flattened_mut
    - Vec::as_flattened
    - usize::as_ptr
    linkageType: ''
    returnType: Result
    signature: 'pub(in super::super::super) unsafe fn mul_mont_gather5_amm(mut r:
      AsChunksMut<Limb, 8>,a: AsChunks<Limb, 8>,table: AsChunks<Limb, 8>,n: AsChunks<Limb,
      8>,n0: &N0,power: Window,maybe_adx_bmi1_bmi2: Option<(Adx, Bmi1, Bmi2)>,) ->
      Result<(), LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_common_with_n
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:255,1
    - Dst: AsChunksMut<Limb, 8>::as_ref
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:255,1
    - Dst: '&mut [T]::as_flattened_mut'
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:256,1
    - Dst: '&mut [T]::as_mut_ptr'
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:257,1
    - Dst: '&mut [T]::as_ptr'
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:258,1
    - Dst: usize::as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:259,1
    - Dst: usize::as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:260,1
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:261,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:262,1
    - Dst: Option<(Adx, Bmi1, Bmi2)>::is_some
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:265,1
    - Dst: bn_powerx5
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:266,1
    - Dst: bn_power5_nohw
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:268,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 6
    argNames:
    - in_out
    - table
    - n
    - n0
    - power
    - maybe_adx_bmi1_bmi2
    argTypes:
    - AsChunksMut<Limb, 8>
    - AsChunks<Limb, 8>
    - AsChunks<Limb, 8>
    - '&N0'
    - Window
    - Option<(Adx, Bmi1, Bmi2)>
    constantsTouched: []
    func_position:
      end: 271
      start: 223
    functionDepth: 15
    functionLinenumber: 223
    functionLinenumberEnd: 271
    functionName: power5_amm
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
    functionUses: 1
    functionsReached:
    - '&mut [T]::as_mut_ptr'
    - usize::as_flattened
    - Option<(Adx, Bmi1, Bmi2)>::is_some
    - '&mut [T]::as_flattened_mut'
    - as_ptr
    - bn_powerx5
    - '&mut [T]::as_ptr'
    - bn_power5_nohw
    - Ok
    - check_common_with_n
    - as_flattened
    - AsChunksMut<Limb, 8>::as_ref
    - usize::as_ptr
    linkageType: ''
    returnType: Result
    signature: 'pub(in super::super::super) unsafe fn power5_amm(mut in_out: AsChunksMut<Limb,
      8>,table: AsChunks<Limb, 8>,n: AsChunks<Limb, 8>,n0: &N0,power: Window,maybe_adx_bmi1_bmi2:
      Option<(Adx, Bmi1, Bmi2)>,) -> Result<(), LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:283,1
    - Dst: usize::as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:284,1
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:285,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:285,1
    - Dst: OnceNonZeroUsize::ok_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:285,1
    - Dst: LimbSliceError::too_short
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:285,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:285,1
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:286,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:287,1
    - Dst: LimbSliceError::too_long
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:287,1
    - Dst: Vec::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:287,1
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:289,1
    - Dst: usize::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:289,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:290,1
    - Dst: LimbSliceError::len_mismatch
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:290,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:290,1
    - Dst: usize::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:291,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - a
    - table
    argTypes:
    - AsChunks<Limb, 8>
    - AsChunks<Limb, 8>
    constantsTouched: []
    func_position:
      end: 295
      start: 278
    functionDepth: 13
    functionLinenumber: 278
    functionLinenumberEnd: 295
    functionName: check_common
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
    functionUses: 3
    functionsReached:
    - usize::as_flattened
    - LimbSliceError::len_mismatch
    - Err
    - OnceNonZeroUsize::ok_or_else
    - LenMismatchError::new
    - NonZeroUsize::new
    - Ok
    - LimbSliceError::too_long
    - usize::len
    - Vec::len
    - LimbSliceError::too_short
    - Vec::as_flattened
    - get
    linkageType: ''
    returnType: Result
    signature: 'fn check_common(a: AsChunks<Limb, 8>,table: AsChunks<Limb, 8>,) ->
      Result<NonZeroUsize, LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_common
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:306,1
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:307,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:308,1
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:308,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:309,1
    - Dst: LimbSliceError::len_mismatch
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:309,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:309,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:309,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - a
    - table
    - n
    argTypes:
    - AsChunks<Limb, 8>
    - AsChunks<Limb, 8>
    - AsChunks<Limb, 8>
    constantsTouched: []
    func_position:
      end: 312
      start: 298
    functionDepth: 14
    functionLinenumber: 298
    functionLinenumberEnd: 312
    functionName: check_common_with_n
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
    functionUses: 2
    functionsReached:
    - LimbSliceError::len_mismatch
    - Err
    - LenMismatchError::new
    - check_common
    - Ok
    - as_flattened
    - get
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn check_common_with_n(a: AsChunks<Limb, 8>,table: AsChunks<Limb,
      8>,n: AsChunks<Limb, 8>,) -> Result<NonZeroUsize, LimbSliceError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: BoxedLimbs::deref
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Self::Target'
    signature: fn deref(&self) -> &Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: BoxedLimbs::deref_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self::Target'
    signature: fn deref_mut(&mut self) -> &mut Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: BoxedLimbs::clone
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs:65,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs:65,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs:65,1
    - Dst: limb::parse_big_endian_and_pad_consttime
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs:66,1
    - Dst: limb::verify_limbs_less_than_limbs_leak_bit
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs:67,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs:67,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - m
    argTypes:
    - untrusted::Input
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 14
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: BoxedLimbs::from_be_bytes_padded_less_than
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs
    functionUses: 2
    functionsReached:
    - Result::len
    - Ok
    - Self::zero
    - limbs
    - limb::parse_big_endian_and_pad_consttime
    - limb::verify_limbs_less_than_limbs_leak_bit
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn from_be_bytes_padded_less_than(input: untrusted::Input,m:
      &Modulus<M>,) -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_boxed_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: BoxedLimbs::zero
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs
    functionUses: 5
    functionsReached:
    - into_boxed_slice
    linkageType: ''
    returnType: Self
    signature: 'pub(super) fn zero(len: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: BoxedLimbs::into_limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Box
    signature: pub(super) fn into_limbs(self) -> Box<[Limb]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: OwnedModulus::clone
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:87,1
    - Dst: u64::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:92,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:92,1
    - Dst: u64::from
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:98,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:98,1
    - Dst: N0::precalculated
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:100,1
    - Dst: bn_neg_inv_mod_r_u64
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - n
    argTypes:
    - OwnedModulusValue<M>
    constantsTouched: []
    func_position:
      end: 104
      start: 82
    functionDepth: 14
    functionLinenumber: 82
    functionLinenumberEnd: 104
    functionName: OwnedModulus::from
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 3
    functionsReached:
    - u64::from
    - bn_neg_inv_mod_r_u64
    - N0::precalculated
    - prefixed_extern
    - limbs
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn from(n: OwnedModulusValue<M>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verify_less_than
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:107,1
    - Dst: BoxedLimbs::zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:108,1
    - Dst: Option::limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:108,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:108,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:109,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:109,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:109,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:109,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - l
    argTypes:
    - '&Modulus<L>'
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 15
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: OwnedModulus::to_elem
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 0
    functionsReached:
    - Option::limbs
    - Result::len
    - BoxedLimbs::zero
    - copy_from_slice
    - Ok
    - verify_less_than
    - limbs
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub fn to_elem<L>(&self, l: &Modulus<L>) -> Result<Elem<L, Unencoded>,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:118,1
    - Dst: OwnedModulus::len_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 14
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: OwnedModulus::modulus
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 0
    functionsReached:
    - OwnedModulus::len_bits
    - limbs
    linkageType: ''
    returnType: Modulus
    signature: 'pub(crate) fn modulus(&self, cpu_features: cpu::Features) -> Modulus<M>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: OwnedModulus::len_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 1
    functionsReached:
    - len_bits
    linkageType: ''
    returnType: BitLength
    signature: pub fn len_bits(&self) -> BitLength
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LeadingZerosStripped::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:133,1
    - Dst: limb::unstripped_be_bytes
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:133,1
    - Dst: limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 14
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: OwnedModulus::be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 0
    functionsReached:
    - limbs
    - LeadingZerosStripped::new
    - limb::unstripped_be_bytes
    linkageType: ''
    returnType: LeadingZerosStripped
    signature: pub fn be_bytes(&self) -> LeadingZerosStripped<impl ExactSizeIterator<Item
      = u8> + Clone + '_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:149,1
    - Dst: limb::limbs_negative_odd
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:152,1
    - Dst: Modulus::len_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:154,1
    - Dst: BitLength::as_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:154,1
    - Dst: '&mut [Limb]::last_mut'
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:164,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:164,1
    - Dst: limb::limbs_double_mod
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:169,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut [Limb]'
    constantsTouched: []
    func_position:
      end: 175
      start: 146
    functionDepth: 11
    functionLinenumber: 146
    functionLinenumberEnd: 175
    functionName: Modulus::oneR
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 0
    functionsReached:
    - BitLength::as_bits
    - unwrap
    - Modulus::len_bits
    - limb::limbs_double_mod
    - limb::limbs_negative_odd
    - Result::unwrap_or_else
    - '&mut [Limb]::last_mut'
    - len
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn oneR(&self, out: &mut [Limb])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxedLimbs::zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:180,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: Modulus::alloc_zero
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 1
    functionsReached:
    - BoxedLimbs::zero
    - len
    linkageType: ''
    returnType: Storage
    signature: pub fn alloc_zero(&self) -> Storage<M>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: Modulus::limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[Limb]'
    signature: pub(super) fn limbs(&self) -> &[Limb]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: Modulus::n0
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&N0'
    signature: pub(super) fn n0(&self) -> &N0
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: Modulus::len_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BitLength
    signature: pub fn len_bits(&self) -> BitLength
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: Modulus::cpu_features
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cpu::Features
    signature: pub(crate) fn cpu_features(&self) -> cpu::Features
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxedLimbs::from_be_bytes_padded_less_than
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:31,1
    - Dst: limb::limbs_reject_even_leak_bit
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:41,1
    - Dst: reverse
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:42,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:44,1
    - Dst: into_limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - input
    - p
    argTypes:
    - untrusted::Input
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 47
      start: 27
    functionDepth: 15
    functionLinenumber: 27
    functionLinenumberEnd: 47
    functionName: PrivateExponent::from_be_bytes_padded
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs
    functionUses: 1
    functionsReached:
    - BoxedLimbs::from_be_bytes_padded_less_than
    - into_limbs
    - Ok
    - limb::limbs_reject_even_leak_bit
    - reverse
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_be_bytes_padded<M>(input: untrusted::Input,p: &Modulus<M>,)
      -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_be_bytes_padded
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:59,1
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:63,1
    - Dst: BoxedLimbs::<M>::zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:64,1
    - Dst: limb::parse_big_endian_and_pad_consttime
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:65,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:65,1
    - Dst: error::KeyRejected::unexpected_error
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:66,1
    - Dst: Result::reverse
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:67,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:68,1
    - Dst: Result::into_limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - input
    - p
    argTypes:
    - untrusted::Input
    - '&Modulus<M>'
    constantsTouched: []
    func_position:
      end: 71
      start: 52
    functionDepth: 16
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: PrivateExponent::from_be_bytes_for_test_only
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs
    functionUses: 1
    functionsReached:
    - Result::into_limbs
    - Result::reverse
    - error::KeyRejected::unexpected_error
    - Self::from_be_bytes_padded
    - Ok
    - Result::map_err
    - untrusted::Input::len
    - BoxedLimbs::<M>::zero
    - limb::parse_big_endian_and_pad_consttime
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_be_bytes_for_test_only<M>(input: untrusted::Input,p: &Modulus<M>,)
      -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: PrivateExponent::limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[Limb]'
    signature: pub(super) fn limbs(&self) -> &[Limb]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: OwnedModulusValue::clone
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:43,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:46,1
    - Dst: error::KeyRejected::unexpected_error
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:46,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:49,1
    - Dst: error::KeyRejected::too_large
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:49,1
    - Dst: untrusted::Reader::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:55,1
    - Dst: Self::peek
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:55,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:56,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:56,1
    - Dst: BoxedLimbs::zero
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:59,1
    - Dst: limb::parse_big_endian_and_pad_consttime
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:60,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:60,1
    - Dst: error::KeyRejected::unexpected_error
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:61,1
    - Dst: limb::limbs_reject_even_leak_bit
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:62,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:62,1
    - Dst: error::KeyRejected::invalid_component
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:63,1
    - Dst: limb::limbs_minimal_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:65,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 1
    argNames:
    - input
    argTypes:
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 68
      start: 42
    functionDepth: 7
    functionLinenumber: 42
    functionLinenumberEnd: 68
    functionName: OwnedModulusValue::from_be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs
    functionUses: 3
    functionsReached:
    - error::KeyRejected::invalid_component
    - untrusted::Reader::new
    - Err
    - error::KeyRejected::unexpected_error
    - error::KeyRejected::invalid_encoding
    - BoxedLimbs::zero
    - Ok
    - limb::limbs_minimal_bits
    - Result::map_err
    - limb::limbs_reject_even_leak_bit
    - error::KeyRejected::too_large
    - untrusted::Input::len
    - Self::peek
    - limb::parse_big_endian_and_pad_consttime
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn from_be_bytes(input: untrusted::Input) -> Result<Self,
      error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OwnedModulusValue::len_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:71,1
    - Dst: Option::len_bits
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:71,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:72,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:74,1
    - Dst: Option::limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:74,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:74,1
    - Dst: limb::verify_limbs_less_than_limbs_leak_bit
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:75,1
    - Dst: Option::limbs
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:75,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - l
    argTypes:
    - '&Modulus<L>'
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 14
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: OwnedModulusValue::verify_less_than
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs
    functionUses: 0
    functionsReached:
    - Option::limbs
    - Err
    - OwnedModulusValue::len_bits
    - Option::len_bits
    - Ok
    - limb::verify_limbs_less_than_limbs_leak_bit
    - Result::len
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify_less_than<L>(&self, l: &Modulus<L>) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: OwnedModulusValue::len_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BitLength
    signature: pub fn len_bits(&self) -> BitLength
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: OwnedModulusValue::limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[Limb]'
    signature: pub(super) fn limbs(&self) -> &[Limb]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: AlignedStorage::zeroed
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs
    functionUses: 0
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: pub fn zeroed() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:50,1
    - Dst: get_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:51,1
    - Dst: ok_or_else
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:51,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:54,1
    - Dst: slice::as_chunks_mut
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:55,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:56,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:57,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:57,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - num_entries
    - chunks_per_entry
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: AlignedStorage::aligned_chunks_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - Err
    - LenMismatchError::new
    - Ok
    - ok_or_else
    - slice::as_chunks_mut
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub fn aligned_chunks_mut(&mut self,num_entries: usize,chunks_per_entry:
      usize,) -> Result<AsChunksMut<Limb, LIMBS_PER_CHUNK>, LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u128::from_ne_bytes
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:53,1
    - Dst: u128::from_ne_bytes
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:54,1
    - Dst: to_ne_bytes
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '[u8; 16]'
    - '[u8; 16]'
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: xor_16
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/mod.rs
    functionUses: 2
    functionsReached:
    - to_ne_bytes
    - u128::from_ne_bytes
    linkageType: ''
    returnType: '[u8; 16]'
    signature: 'pub(crate) fn xor_16(a: [u8; 16], b: [u8; 16]) -> [u8; 16]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::into_iter
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:61,1
    - Dst: Self::IntoIter::for_each
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - impl IntoIterator<Item = &'a mut u8>
    - u8
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: xor_assign
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/mod.rs
    functionUses: 2
    functionsReached:
    - Self::IntoIter::for_each
    - Vec::into_iter
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn xor_assign<''a>(a: impl IntoIterator<Item = &''a mut
      u8>, b: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::into_iter
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:71,1
    - Dst: Self::IntoIter::zip
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:71,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - impl IntoIterator<Item = &'a mut u8>
    - impl IntoIterator<Item = &'a u8>
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: xor_assign_at_start
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/mod.rs
    functionUses: 6
    functionsReached:
    - Self::IntoIter::zip
    - for_each
    - Vec::into_iter
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn xor_assign_at_start<''a>(a: impl IntoIterator<Item =
      &''a mut u8>,b: impl IntoIterator<Item = &''a u8>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::from
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:88,1
    - Dst: bssl_constant_time_test_main
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: tests::test_constant_time
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/mod.rs
    functionUses: 0
    functionsReached:
    - bssl_constant_time_test_main
    - Result::from
    linkageType: ''
    returnType: Result
    signature: fn test_constant_time() -> Result<(), error::Unspecified>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:93,1
    - Dst: rand::generate::<[u8; 256]>
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:95,1
    - Dst: expose
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:95,1
    - Dst: rand::generate::<[u8; 256]>
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:96,1
    - Dst: expose
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:96,1
    - Dst: rand::generate::<[u8; 1]>
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:99,1
    - Dst: expose
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:99,1
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:104,1
    - Dst: bssl_constant_time_test_conditional_memcpy
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:108,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 119
    functionName: tests::constant_time_conditional_memcpy
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/mod.rs
    functionUses: 0
    functionsReached:
    - rand::generate::<[u8; 1]>
    - expose
    - bssl_constant_time_test_conditional_memcpy
    - rand::generate::<[u8; 256]>
    - Ok
    - prefixed_extern
    - rand::SystemRandom::new
    linkageType: ''
    returnType: Result
    signature: fn constant_time_conditional_memcpy() -> Result<(), error::Unspecified>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:123,1
    - Dst: rand::generate::<[u8; 256]>
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:125,1
    - Dst: expose
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:125,1
    - Dst: rand::generate::<[u8; 256]>
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:126,1
    - Dst: expose
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:126,1
    - Dst: rand::generate::<[u8; 1]>
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:129,1
    - Dst: expose
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:129,1
    - Dst: xor_assign_at_start
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:134,1
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:137,1
    - Dst: bssl_constant_time_test_conditional_memxor
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:141,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/bb/mod.rs:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 153
    functionName: tests::constant_time_conditional_memxor
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/mod.rs
    functionUses: 0
    functionsReached:
    - rand::generate::<[u8; 1]>
    - expose
    - rand::generate::<[u8; 256]>
    - Ok
    - prefixed_extern
    - xor_assign_at_start
    - rand::SystemRandom::new
    - bssl_constant_time_test_conditional_memxor
    linkageType: ''
    returnType: Result
    signature: fn constant_time_conditional_memxor() -> Result<(), error::Unspecified>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: tests::test_bool_mask_bitwise_and_is_logical_and
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_bool_mask_bitwise_and_is_logical_and()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: BoolMask::leak
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/boolmask.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn leak(self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/bb/boolmask.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - Self
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: BoolMask::bitand
    functionSourceFile: /src/spdm-rs/external/ring/src/bb/boolmask.rs
    functionUses: 0
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'fn bitand(self, rhs: Self) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - W32
    - W32
    - W32
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: parity
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha1.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: W32
    signature: 'fn parity(x: W32, y: W32, z: W32) -> W32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:61,1
    - Dst: sha1::sha1_block_data_order
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:62,1
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:63,1
    - Dst: '&[T]::len'
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - state
    - data
    - _cpu_features
    argTypes:
    - '&mut DynState'
    - '&''d [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: sha1_block_data_order
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/dynstate.rs
    functionUses: 1
    functionsReached:
    - as_flattened
    - sha1::sha1_block_data_order
    - slice::as_chunks
    - '&[T]::len'
    linkageType: ''
    returnType: (usize, &'d [u8])
    signature: 'pub(super) fn sha1_block_data_order<''d>(state: &mut DynState,data:
      &''d [u8],_cpu_features: cpu::Features,) -> (usize, &''d [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:39,1
    - Dst: S::zero_w
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:46,1
    - Dst: '&mut [u8]::as_mut'
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:47,1
    - Dst: '&mut [u8]::iter_mut'
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:48,1
    - Dst: zip
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:48,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:48,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:49,1
    - Dst: S::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:50,1
    - Dst: sigma_1
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:53,1
    - Dst: sigma_0
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:53,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:60,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:60,1
    - Dst: zip
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:60,1
    - Dst: '&mut [u8]::iter'
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:60,1
    - Dst: SIGMA_1
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:61,1
    - Dst: ch
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:61,1
    - Dst: SIGMA_0
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:62,1
    - Dst: maj
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 95
    argCount: 2
    argNames:
    - H
    - M
    argTypes:
    - '[S; CHAINING_WORDS]'
    - AsChunks<u8, BLOCK_LEN>
    constantsTouched: []
    func_position:
      end: 85
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 85
    functionName: block_data_order
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 3
    functionsReached:
    - '&mut [u8]::as_mut'
    - '&mut [u8]::iter'
    - into
    - zip
    - as_ref
    - SIGMA_1
    - maj
    - for_each
    - sigma_1
    - sigma_0
    - slice::as_chunks
    - iter
    - ch
    - SIGMA_0
    - '&mut [u8]::iter_mut'
    - S::from_be_bytes
    - S::zero_w
    linkageType: ''
    returnType: '[S; CHAINING_WORDS]'
    signature: 'pub(super) fn block_data_order<S: Sha2, const BLOCK_LEN: usize, const
      BYTES_LEN: usize>(mut H: [S; CHAINING_WORDS],M: AsChunks<u8, BLOCK_LEN>,) ->
      [S; CHAINING_WORDS]wherefor<''a> &''a S::InputBytes: From<&''a [u8; BYTES_LEN]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[W32; 80]::iter'
      Src: /src/spdm-rs/external/ring/src/digest/sha1.rs:105,1
    - Dst: rotl
      Src: /src/spdm-rs/external/ring/src/digest/sha1.rs:106,1
    - Dst: rotl
      Src: /src/spdm-rs/external/ring/src/digest/sha1.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 9
    argNames:
    - a
    - b
    - c
    - d
    - e
    - W
    - t
    - k
    - f
    argTypes:
    - W32
    - W32
    - W32
    - W32
    - W32
    - '&[W32; 80]'
    - usize
    - W32
    - impl Fn(W32, W32, W32) -> W32
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: step3
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha1.rs
    functionUses: 0
    functionsReached:
    - '&[W32; 80]::iter'
    - rotl
    linkageType: ''
    returnType: (W32, W32, W32, W32, W32)
    signature: 'fn step3(mut a: W32,mut b: W32,mut c: W32,mut d: W32,mut e: W32,W:
      &[W32; 80],t: usize,k: W32,f: impl Fn(W32, W32, W32) -> W32,) -> (W32, W32,
      W32, W32, W32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: core::num::Wrapping
      Src: /src/spdm-rs/external/ring/src/digest/sha1.rs:118,1
    - Dst: rotate_left
      Src: /src/spdm-rs/external/ring/src/digest/sha1.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - W32
    - u32
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: rotl
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha1.rs
    functionUses: 1
    functionsReached:
    - rotate_left
    - core::num::Wrapping
    linkageType: ''
    returnType: W32
    signature: 'fn rotl(x: W32, n: u32) -> W32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::As32
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - initial_state
    argTypes:
    - sha2::State32
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: DynState::new32
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/dynstate.rs
    functionUses: 0
    functionsReached:
    - Self::As32
    linkageType: ''
    returnType: Self
    signature: 'pub const fn new32(initial_state: sha2::State32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::As64
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - initial_state
    argTypes:
    - sha2::State64
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: DynState::new64
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/dynstate.rs
    functionUses: 0
    functionsReached:
    - Self::As64
    linkageType: ''
    returnType: Self
    signature: 'pub const fn new64(initial_state: sha2::State64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<u64>
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:40,1
    - Dst: format_output::<_, _, { size_of::<u64>() }>
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:40,1
    - Dst: size_of::<u32>
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:43,1
    - Dst: format_output::<_, _, { size_of::<u32>() }>
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: DynState::format_output
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/dynstate.rs
    functionUses: 0
    functionsReached:
    - size_of::<u64>
    - format_output::<_, _, { size_of::<u64>() }>
    - size_of::<u32>
    - format_output::<_, _, { size_of::<u32>() }>
    linkageType: ''
    returnType: Output
    signature: pub fn format_output(self) -> Output
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:78,1
    - Dst: sha2::block_data_order_32
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:79,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:80,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - state
    - data
    - cpu_features
    argTypes:
    - '&mut DynState'
    - '&''d [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: sha256_block_data_order
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/dynstate.rs
    functionUses: 0
    functionsReached:
    - sha2::block_data_order_32
    - into
    - slice::as_chunks
    - len
    linkageType: ''
    returnType: (usize, &'d [u8])
    signature: 'pub(super) fn sha256_block_data_order<''d>(state: &mut DynState,data:
      &''d [u8],cpu_features: cpu::Features,) -> (usize, &''d [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:95,1
    - Dst: sha2::block_data_order_64
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:96,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:97,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/digest/dynstate.rs:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - state
    - data
    - cpu_features
    argTypes:
    - '&mut DynState'
    - '&''d [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 98
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 98
    functionName: sha512_block_data_order
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/dynstate.rs
    functionUses: 0
    functionsReached:
    - sha2::block_data_order_64
    - into
    - slice::as_chunks
    - len
    linkageType: ''
    returnType: (usize, &'d [u8])
    signature: 'pub(super) fn sha512_block_data_order<''d>(state: &mut DynState,data:
      &''d [u8],cpu_features: cpu::Features,) -> (usize, &''d [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - W
    - W
    - W
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: ch
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: W
    signature: 'pub(in super::super) fn ch<W: Word>(x: W, y: W, z: W) -> W'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - W
    - W
    - W
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: maj
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: W
    signature: 'pub(in super::super) fn maj<W: Word>(x: W, y: W, z: W) -> W'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:102,1
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:102,1
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - x
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: SIGMA_0
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 1
    functionsReached:
    - Result::rotr
    linkageType: ''
    returnType: S
    signature: 'fn SIGMA_0<S: Sha2>(x: S) -> S'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:108,1
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:108,1
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - x
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: SIGMA_1
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 1
    functionsReached:
    - Result::rotr
    linkageType: ''
    returnType: S
    signature: 'fn SIGMA_1<S: Sha2>(x: S) -> S'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:114,1
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - x
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: sigma_0
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 1
    functionsReached:
    - Result::rotr
    linkageType: ''
    returnType: S
    signature: 'fn sigma_0<S: Sha2>(x: S) -> S'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:120,1
    - Dst: Result::rotr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - x
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: sigma_1
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 1
    functionsReached:
    - Result::rotr
    linkageType: ''
    returnType: S
    signature: 'fn sigma_1<S: Sha2>(x: S) -> S'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:264,1
    - Dst: u64::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Self::InputBytes
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: Wrapping::from_be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 0
    functionsReached:
    - Self
    - u64::from_be_bytes
    linkageType: ''
    returnType: Self
    signature: 'fn from_be_bytes(input: Self::InputBytes) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:269,1
    - Dst: rotate_right
      Src: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - count
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: Wrapping::rotr
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 0
    functionsReached:
    - Self
    - rotate_right
    linkageType: ''
    returnType: Self
    signature: 'fn rotr(self, count: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: Wrapping::zero_w
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self::W
    signature: fn zero_w() -> Self::W
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - data
    - cpu
    argTypes:
    - '&mut State32'
    - AsChunks<u8, { SHA256_BLOCK_LEN.into() }>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 63
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 63
    functionName: block_data_order_32
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/sha2_32.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn block_data_order_32(state: &mut State32,data: AsChunks<u8,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/digest/sha2/ffi.rs:61,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/digest/sha2/ffi.rs:61,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/digest/sha2/ffi.rs:62,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/digest/sha2/ffi.rs:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - data
    - cpu
    - f
    argTypes:
    - '&mut [Wrapping<U>; CHAINING_WORDS]'
    - AsChunks<u8, BLOCK_LEN>
    - Cpu
    - "unsafe extern \"C\" fn(\n        *mut [Wrapping<U>; CHAINING_WORDS],\n    \
      \    *const [u8; BLOCK_LEN],\n        crate::c::NonZero_size_t,\n    )"
    constantsTouched: []
    func_position:
      end: 71
      start: 51
    functionDepth: 11
    functionLinenumber: 51
    functionLinenumberEnd: 71
    functionName: sha2_ffi
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/ffi.rs
    functionUses: 0
    functionsReached:
    - f
    - NonZeroUsize::new
    - as_ptr
    - len
    linkageType: ''
    returnType: void
    signature: 'pub(super) unsafe fn sha2_ffi<U, Cpu, const BLOCK_LEN: usize>(state:
      &mut [Wrapping<U>; CHAINING_WORDS],data: AsChunks<u8, BLOCK_LEN>,cpu: Cpu,f:
      unsafe extern "C" fn(*mut [Wrapping<U>; CHAINING_WORDS],*const [u8; BLOCK_LEN],crate::c::NonZero_size_t,),)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: sha2_32_ffi
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/ffi.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: sha2_64_ffi
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/ffi.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - data
    - cpu
    argTypes:
    - '&mut State64'
    - AsChunks<u8, { SHA512_BLOCK_LEN.into() }>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 60
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 60
    functionName: block_data_order_64
    functionSourceFile: /src/spdm-rs/external/ring/src/digest/sha2/sha2_64.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn block_data_order_64(state: &mut State64,data: AsChunks<u8,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:41,1
    - Dst: LessSafeKey::new_
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:42,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - algorithm
    - key_bytes
    argTypes:
    - '&''static Algorithm'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 11
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: UnboundKey::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/unbound_key.rs
    functionUses: 6
    functionsReached:
    - LessSafeKey::new_
    - cpu::features
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(algorithm: &''static Algorithm,key_bytes: &[u8],) -> Result<Self,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: algorithm
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: UnboundKey::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/unbound_key.rs
    functionUses: 0
    functionsReached:
    - algorithm
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: pub fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: UnboundKey::into_inner
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/unbound_key.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LessSafeKey
    signature: pub(super) fn into_inner(self) -> LessSafeKey
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmt_debug
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 16
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: UnboundKey::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/unbound_key.rs
    functionUses: 0
    functionsReached:
    - fmt_debug
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::len
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:67,1
    - Dst: usize::key_len
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:67,1
    - Dst: Option::len
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:68,1
    - Dst: Option::fill
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:69,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:69,1
    - Dst: LessSafeKey::new_
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:71,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:71,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/unbound_key.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - okm
    argTypes:
    - hkdf::Okm<&'static Algorithm>
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 11
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: UnboundKey::from
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/unbound_key.rs
    functionUses: 0
    functionsReached:
    - usize::key_len
    - cpu::features
    - Result::unwrap
    - Option::fill
    - LessSafeKey::new_
    - Option::len
    linkageType: ''
    returnType: Self
    signature: 'fn from(okm: hkdf::Okm<&''static Algorithm>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::try_into
      Src: /src/spdm-rs/external/ring/src/aead/nonce.rs:32,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/nonce.rs:33,1
    - Dst: Self::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/src/aead/nonce.rs:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Nonce::try_assume_unique_for_key
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/nonce.rs
    functionUses: 3
    functionsReached:
    - Self::assume_unique_for_key
    - Ok
    - SpdmResult::try_into
    linkageType: ''
    returnType: Result
    signature: 'pub fn try_assume_unique_for_key(value: &[u8]) -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/aead/nonce.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - '[u8; NONCE_LEN]'
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Nonce::assume_unique_for_key
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/nonce.rs
    functionUses: 9
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn assume_unique_for_key(value: [u8; NONCE_LEN]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Nonce::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/nonce.rs
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: '&[u8; NONCE_LEN]'
    signature: fn as_ref(&self) -> &[u8; NONCE_LEN]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Counter::zero_one_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:64,1
    - Dst: Key::encrypt
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:65,1
    - Dst: '&mut [u8; N]::as_mut'
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:65,1
    - Dst: '&mut [u8]::into'
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - nonce
    - in_out
    - cpu
    argTypes:
    - Nonce
    - '&mut [u8; N]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: Key::encrypt_single_block_with_ctr_0
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8; N]::as_mut'
    - Key::encrypt
    - Counter::zero_one_less_safe
    - '&mut [u8]::into'
    linkageType: ''
    returnType: Counter
    signature: 'pub(super) fn encrypt_single_block_with_ctr_0<const N: usize>(&self,nonce:
      Nonce,in_out: &mut [u8; N],cpu: cpu::Features,) -> Counter'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Key::encrypt_block
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sample
    argTypes:
    - Sample
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: Key::new_mask
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - Key::encrypt_block
    linkageType: ''
    returnType: '[u8; 5]'
    signature: 'pub fn new_mask(&self, sample: Sample) -> [u8; 5]'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - counter
    - in_out
    - cpu
    argTypes:
    - Counter
    - Overlapping<'_>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 154
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 154
    functionName: Key::encrypt
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn encrypt(&self, counter: Counter, in_out: Overlapping<''_>,
      cpu: cpu::Features)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: Key::words_less_safe
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u32; KEY_LEN / 4]'
    signature: pub(super) fn words_less_safe(&self) -> &[u32; KEY_LEN / 4]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_nonce_and_ctr
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:170,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nonce
    argTypes:
    - Nonce
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: Counter::zero_one_less_safe
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 1
    functionsReached:
    - Self
    - Self::from_nonce_and_ctr
    linkageType: ''
    returnType: (Self, Self)
    signature: 'fn zero_one_less_safe(nonce: Nonce) -> (Self, Self)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Nonce::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:176,1
    - Dst: '&[u8; NONCE_LEN]::array_split_map'
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:176,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - nonce
    - ctr
    argTypes:
    - Nonce
    - u32
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: Counter::from_nonce_and_ctr
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 1
    functionsReached:
    - '&[u8; NONCE_LEN]::array_split_map'
    - Self
    - Nonce::as_ref
    linkageType: ''
    returnType: Self
    signature: 'fn from_nonce_and_ctr(nonce: Nonce, ctr: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: Counter::into_words_less_safe
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[u32; 4]'
    signature: fn into_words_less_safe(self) -> [u32; 4]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chacha20_test
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 217
    functionDepth: 16
    functionLinenumber: 217
    functionLinenumberEnd: 230
    functionName: tests::chacha20_test_default
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 0
    functionsReached:
    - chacha20_test
    linkageType: ''
    returnType: void
    signature: fn chacha20_test_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chacha20_test
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:235,1
    - Dst: fallback::ChaCha20_ctr32
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 16
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: tests::chacha20_test_fallback
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 0
    functionsReached:
    - chacha20_test
    - fallback::ChaCha20_ctr32
    linkageType: ''
    returnType: void
    signature: fn chacha20_test_fallback()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:251,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:256,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:257,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:261,1
    - Dst: Option::as_slice
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:262,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:262,1
    - Dst: Key::new
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:263,1
    - Dst: Option::consume_usize
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:265,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:266,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:267,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:268,1
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:273,1
    - Dst: chacha20_test_case_inner
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:275,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 2
    argNames:
    - max_alignment_and_offset
    - f
    argTypes:
    - (usize, usize)
    - impl for<'k, 'o> Fn(&'k Key, Counter, Overlapping<'o>, cpu::Features)
    constantsTouched: []
    func_position:
      end: 291
      start: 247
    functionDepth: 15
    functionLinenumber: 247
    functionLinenumberEnd: 291
    functionName: tests::chacha20_test
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - cpu::features
    - test_vector_file
    - Key::new
    - chacha20_test_case_inner
    - Option::as_slice
    - Ok
    - Option::consume_usize
    - test::run
    - untrusted::Input::len
    - try_into
    linkageType: ''
    returnType: void
    signature: 'fn chacha20_test(max_alignment_and_offset: (usize, usize),f: impl
      for<''k, ''o> Fn(&''k Key, Counter, Overlapping<''o>, cpu::Features),)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:307,1
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:310,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:311,1
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:313,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:313,1
    - Dst: Counter::from_nonce_and_ctr
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:315,1
    - Dst: Nonce::try_assume_unique_for_key
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:316,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:316,1
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:319,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:319,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:319,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/chacha.rs:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 9
    argNames:
    - key
    - nonce
    - ctr
    - input
    - expected
    - buf
    - cpu
    - f
    argTypes:
    - '&Key'
    - '&[u8]'
    - u32
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    - (usize, usize)
    - cpu::Features
    - '&impl for<''k, ''o> Fn(&''k Key, Counter, Overlapping<''o>, cpu::Features)'
    constantsTouched: []
    func_position:
      end: 326
      start: 293
    functionDepth: 13
    functionLinenumber: 293
    functionLinenumberEnd: 326
    functionName: tests::chacha20_test_case_inner
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha.rs
    functionUses: 0
    functionsReached:
    - Overlapping::new
    - f
    - unwrap
    - Nonce::try_assume_unique_for_key
    - clone
    - Counter::from_nonce_and_ctr
    - copy_from_slice
    - Result::unwrap
    - Result::map_err
    - untrusted::Input::len
    - fill
    linkageType: ''
    returnType: void
    signature: 'fn chacha20_test_case_inner(key: &Key,nonce: &[u8],ctr: u32,input:
      &[u8],expected: &[u8],buf: &mut [u8],(max_alignment, max_offset): (usize, usize),cpu:
      cpu::Features,f: &impl for<''k, ''o> Fn(&''k Key, Counter, Overlapping<''o>,
      cpu::Features),)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::len
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:39,1
    - Dst: key_len
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:40,1
    - Dst: Option::fill
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:41,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:41,1
    - Dst: Self::new
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:42,1
    - Dst: Self::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - okm
    argTypes:
    - hkdf::Okm<&'static Algorithm>
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: HeaderProtectionKey::from
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 0
    functionsReached:
    - Self::new
    - Self::unwrap
    - Result::unwrap
    - Option::fill
    - key_len
    - Option::len
    linkageType: ''
    returnType: Self
    signature: 'fn from(okm: hkdf::Okm<&''static Algorithm>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:54,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - algorithm
    - key_bytes
    argTypes:
    - '&''static Algorithm'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 15
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: HeaderProtectionKey::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 2
    functionsReached:
    - cpu::features
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(algorithm: &''static Algorithm,key_bytes: &[u8],) -> Result<Self,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <&[u8; SAMPLE_LEN]>::try_from
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:64,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - sample
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: HeaderProtectionKey::new_mask
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 0
    functionsReached:
    - <&[u8; SAMPLE_LEN]>::try_from
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn new_mask(&self, sample: &[u8]) -> Result<[u8; 5], error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: HeaderProtectionKey::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: pub fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static Algorithm::key_len'
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: '&''static Algorithm::len'
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached:
    - '&''static Algorithm::key_len'
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Algorithm::key_len
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn key_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Algorithm::sample_len
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn sample_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::try_into
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:147,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:147,1
    - Dst: aes::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:148,1
    - Dst: aes::KeyBytes::AES_128
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:148,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:149,1
    - Dst: KeyInner::Aes
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - key
    - cpu_features
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: aes_init_128
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 0
    functionsReached:
    - Option::try_into
    - aes::KeyBytes::AES_128
    - Ok
    - Result::map_err
    - aes::Key::new
    - KeyInner::Aes
    linkageType: ''
    returnType: Result
    signature: 'fn aes_init_128(key: &[u8], cpu_features: cpu::Features) -> Result<KeyInner,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::try_into
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:153,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:153,1
    - Dst: aes::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:154,1
    - Dst: aes::KeyBytes::AES_256
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:154,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:155,1
    - Dst: KeyInner::Aes
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - key
    - cpu_features
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 5
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: aes_init_256
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 0
    functionsReached:
    - Option::try_into
    - Ok
    - Result::map_err
    - aes::Key::new
    - aes::KeyBytes::AES_256
    - KeyInner::Aes
    linkageType: ''
    returnType: Result
    signature: 'fn aes_init_256(key: &[u8], cpu_features: cpu::Features) -> Result<KeyInner,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: new_mask
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - sample
    argTypes:
    - '&KeyInner'
    - Sample
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 5
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: aes_new_mask
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 0
    functionsReached:
    - new_mask
    linkageType: ''
    returnType: '[u8; 5]'
    signature: 'fn aes_new_mask(key: &KeyInner, sample: Sample) -> [u8; 5]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::try_into
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:176,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:177,1
    - Dst: KeyInner::ChaCha20
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:177,1
    - Dst: chacha::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - _cpu_features
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 5
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: chacha20_init
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 0
    functionsReached:
    - KeyInner::ChaCha20
    - chacha::Key::new
    - Ok
    - Option::try_into
    linkageType: ''
    returnType: Result
    signature: 'fn chacha20_init(key: &[u8], _cpu_features: cpu::Features) -> Result<KeyInner,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: new_mask
      Src: /src/spdm-rs/external/ring/src/aead/quic.rs:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - sample
    argTypes:
    - '&KeyInner'
    - Sample
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: chacha20_new_mask
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/quic.rs
    functionUses: 0
    functionsReached:
    - new_mask
    linkageType: ''
    returnType: '[u8; 5]'
    signature: 'fn chacha20_new_mask(key: &KeyInner, sample: Sample) -> [u8; 5]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:50,1
    - Dst: ffi_arm_neon::State::new_context
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:51,1
    - Dst: ffi_fallback::State::new_context
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - key
    - cpu
    argTypes:
    - Key
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 12
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: Context::from_key
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/poly1305.rs
    functionUses: 2
    functionsReached:
    - cpu::Features::get_feature
    - ffi_arm_neon::State::new_context
    - ffi_fallback::State::new_context
    linkageType: ''
    returnType: Self
    signature: 'pub(super) fn from_key(key: Key, cpu: cpu::Features) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update_block
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - Block
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Context::update_block
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm.rs
    functionUses: 2
    functionsReached:
    - update_block
    linkageType: ''
    returnType: void
    signature: 'pub fn update_block(&mut self, a: Block)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::update_internal
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:68,1
    - Dst: SpdmResult::update_internal
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: Context::update_internal
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/poly1305.rs
    functionUses: 2
    functionsReached:
    - SpdmResult::update_internal
    linkageType: ''
    returnType: void
    signature: 'fn update_internal(&mut self, input: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:100,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:101,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:102,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:105,1
    - Dst: Option::as_slice
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:106,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:106,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:106,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:107,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:108,1
    - Dst: Key::new
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:109,1
    - Dst: sign
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:110,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/poly1305.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 15
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: tests::test_poly1305
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/poly1305.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - cpu::features
    - test_vector_file
    - unwrap
    - Key::new
    - Option::as_slice
    - Ok
    - test::run
    - try_into
    - sign
    linkageType: ''
    returnType: void
    signature: pub fn test_poly1305()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Algorithm::tag_len
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn tag_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Algorithm::nonce_len
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn nonce_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key_bytes
    - cpu_features
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: Algorithm::new_key
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn new_key(&self,key_bytes: &[u8],cpu_features: cpu::Features,)
      -> Result<KeyInner, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''io mut [u8]::get'
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:99,1
    - Dst: RangeFrom<usize>::clone
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:99,1
    - Dst: (SpdmResult, Option::ok_or
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:99,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:99,1
    - Dst: bb::verify_slices_are_equal
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:103,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:103,1
    - Dst: Tag::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:103,1
    - Dst: is_err
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:103,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:111,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 7
    argNames:
    - key
    - nonce
    - aad
    - received_tag
    - in_out
    - src
    - cpu_features
    argTypes:
    - '&KeyInner'
    - Nonce
    - Aad<&[u8]>
    - Tag
    - '&''io mut [u8]'
    - RangeFrom<usize>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 116
      start: 89
    functionDepth: 13
    functionLinenumber: 89
    functionLinenumberEnd: 116
    functionName: Algorithm::open_within
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached:
    - bb::verify_slices_are_equal
    - as_ref
    - is_err
    - Err
    - Tag::as_ref
    - Ok
    - (SpdmResult, Option::ok_or
    - '&''io mut [u8]::get'
    - RangeFrom<usize>::clone
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn open_within<''io>(&self,key: &KeyInner,nonce: Nonce,aad:
      Aad<&[u8]>,received_tag: Tag,in_out: &''io mut [u8],src: RangeFrom<usize>,cpu_features:
      cpu::Features,) -> Result<&''io mut [u8], error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - nonce
    - aad
    - in_out
    - cpu_features
    argTypes:
    - '&KeyInner'
    - Nonce
    - Aad<&[u8]>
    - '&mut [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: Algorithm::seal
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn seal(&self,key: &KeyInner,nonce: Nonce,aad: Aad<&[u8]>,in_out:
      &mut [u8],cpu_features: cpu::Features,) -> Result<Tag, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::try_into
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:170,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:170,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:171,1
    - Dst: KeyInner::AesGcm
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:171,1
    - Dst: aes_gcm::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:171,1
    - Dst: aes::KeyBytes::AES_128
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - key
    - cpu_features
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: aes_gcm_init_128
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached:
    - Option::try_into
    - KeyInner::AesGcm
    - aes_gcm::Key::new
    - aes::KeyBytes::AES_128
    - Ok
    - Result::map_err
    linkageType: ''
    returnType: Result
    signature: 'fn aes_gcm_init_128(key: &[u8],cpu_features: cpu::Features,) -> Result<KeyInner,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::try_into
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:181,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:181,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:182,1
    - Dst: KeyInner::AesGcm
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:182,1
    - Dst: aes_gcm::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:182,1
    - Dst: aes::KeyBytes::AES_256
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - key
    - cpu_features
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 5
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: aes_gcm_init_256
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached:
    - Option::try_into
    - KeyInner::AesGcm
    - aes_gcm::Key::new
    - Ok
    - Result::map_err
    - aes::KeyBytes::AES_256
    linkageType: ''
    returnType: Result
    signature: 'fn aes_gcm_init_256(key: &[u8],cpu_features: cpu::Features,) -> Result<KeyInner,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aes_gcm::seal
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - key
    - nonce
    - aad
    - in_out
    - _cpu_features
    argTypes:
    - '&KeyInner'
    - Nonce
    - Aad<&[u8]>
    - '&mut [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: aes_gcm_seal
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached:
    - aes_gcm::seal
    linkageType: ''
    returnType: Result
    signature: 'fn aes_gcm_seal(key: &KeyInner,nonce: Nonce,aad: Aad<&[u8]>,in_out:
      &mut [u8],_cpu_features: cpu::Features,) -> Result<Tag, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aes_gcm::open
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - key
    - nonce
    - aad
    - in_out
    - src
    - _cpu_features
    argTypes:
    - '&KeyInner'
    - Nonce
    - Aad<&[u8]>
    - '&mut [u8]'
    - RangeFrom<usize>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: aes_gcm_open
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached:
    - aes_gcm::open
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn aes_gcm_open(key: &KeyInner,nonce: Nonce,aad: Aad<&[u8]>,in_out:
      &mut [u8],src: RangeFrom<usize>,_cpu_features: cpu::Features,) -> Result<Tag,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::try_into
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:235,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:236,1
    - Dst: KeyInner::ChaCha20Poly1305
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:236,1
    - Dst: chacha20_poly1305::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - _cpu_features
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: chacha20_poly1305_init
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached:
    - KeyInner::ChaCha20Poly1305
    - chacha20_poly1305::Key::new
    - Ok
    - Option::try_into
    linkageType: ''
    returnType: Result
    signature: 'fn chacha20_poly1305_init(key: &[u8],_cpu_features: cpu::Features,)
      -> Result<KeyInner, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chacha20_poly1305::seal
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:250,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - nonce
    - aad
    - in_out
    - cpu_features
    argTypes:
    - '&KeyInner'
    - Nonce
    - Aad<&[u8]>
    - '&mut [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 252
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 252
    functionName: chacha20_poly1305_seal
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - chacha20_poly1305::seal
    linkageType: ''
    returnType: Result
    signature: 'fn chacha20_poly1305_seal(key: &KeyInner,nonce: Nonce,aad: Aad<&[u8]>,in_out:
      &mut [u8],cpu_features: cpu::Features,) -> Result<Tag, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:266,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:266,1
    - Dst: chacha20_poly1305::open
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:267,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/algorithm.rs:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - key
    - nonce
    - aad
    - in_out
    - src
    - cpu_features
    argTypes:
    - '&KeyInner'
    - Nonce
    - Aad<&[u8]>
    - '&mut [u8]'
    - RangeFrom<usize>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 269
      start: 254
    functionDepth: 14
    functionLinenumber: 254
    functionLinenumberEnd: 269
    functionName: chacha20_poly1305_open
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/algorithm.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - chacha20_poly1305::open
    - Overlapping::new
    linkageType: ''
    returnType: Result
    signature: 'fn chacha20_poly1305_open(key: &KeyInner,nonce: Nonce,aad: Aad<&[u8]>,in_out:
      &mut [u8],src: RangeFrom<usize>,cpu_features: cpu::Features,) -> Result<Tag,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::into_inner
      Src: /src/spdm-rs/external/ring/src/aead/sealing_key.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - nonce_sequence
    argTypes:
    - UnboundKey
    - N
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: SealingKey::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/sealing_key.rs
    functionUses: 2
    functionsReached:
    - Option::into_inner
    linkageType: ''
    returnType: Self
    signature: 'fn new(key: UnboundKey, nonce_sequence: N) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slice::split_first_chunk_mut
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:78,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:78,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:80,1
    - Dst: chacha20_poly1305::begin
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:82,1
    - Dst: make_nonce
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:84,1
    - Dst: Aad::from
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:85,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:82,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:82,1
    - Dst: encrypt_single_block_with_ctr_0
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:92,1
    - Dst: make_nonce
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:93,1
    - Dst: encrypt
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:97,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:99,1
    - Dst: poly1305::sign
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 3
    argNames:
    - sequence_number
    - plaintext_in_ciphertext_out
    - tag_out
    argTypes:
    - u32
    - '&mut [u8]'
    - '&mut [u8; TAG_LEN]'
    constantsTouched: []
    func_position:
      end: 103
      start: 70
    functionDepth: 10
    functionLinenumber: 70
    functionLinenumberEnd: 103
    functionName: SealingKey::seal_in_place
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs
    functionUses: 0
    functionsReached:
    - make_nonce
    - cpu::features
    - into
    - poly1305::sign
    - unwrap
    - Aad::from
    - chacha20_poly1305::begin
    - Result::map_err
    - encrypt_single_block_with_ctr_0
    - Option::unwrap
    - encrypt
    - slice::split_first_chunk_mut
    linkageType: ''
    returnType: void
    signature: 'pub fn seal_in_place(&self,sequence_number: u32,plaintext_in_ciphertext_out:
      &mut [u8],tag_out: &mut [u8; TAG_LEN],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::into_inner
      Src: /src/spdm-rs/external/ring/src/aead/opening_key.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - nonce_sequence
    argTypes:
    - UnboundKey
    - N
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: OpeningKey::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/opening_key.rs
    functionUses: 1
    functionsReached:
    - Option::into_inner
    linkageType: ''
    returnType: Self
    signature: 'fn new(key: UnboundKey, nonce_sequence: N) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:128,1
    - Dst: encrypt_single_block_with_ctr_0
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:130,1
    - Dst: make_nonce
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - sequence_number
    - encrypted_packet_length
    argTypes:
    - u32
    - '[u8; PACKET_LENGTH_LEN]'
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 15
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: OpeningKey::decrypt_packet_length
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs
    functionUses: 0
    functionsReached:
    - encrypt_single_block_with_ctr_0
    - cpu::features
    - make_nonce
    linkageType: ''
    returnType: '[u8; PACKET_LENGTH_LEN]'
    signature: 'pub fn decrypt_packet_length(&self,sequence_number: u32,encrypted_packet_length:
      [u8; PACKET_LENGTH_LEN],) -> [u8; PACKET_LENGTH_LEN]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open_in_place
      Src: /src/spdm-rs/external/ring/src/aead/opening_key.rs:79,1
    - Dst: advance
      Src: /src/spdm-rs/external/ring/src/aead/opening_key.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - aad
    - in_out
    argTypes:
    - Aad<A>
    - '&''in_out mut [u8]'
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 13
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: OpeningKey::open_in_place
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/opening_key.rs
    functionUses: 0
    functionsReached:
    - open_in_place
    - advance
    linkageType: ''
    returnType: Result
    signature: 'pub fn open_in_place<''in_out, A>(&mut self,aad: Aad<A>,in_out: &''in_out
      mut [u8],) -> Result<&''in_out mut [u8], error::Unspecified>whereA: AsRef<[u8]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_be_bytes
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:200,1
    - Dst: Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sequence_number
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: make_nonce
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs
    functionUses: 2
    functionsReached:
    - Nonce::assume_unique_for_key
    - to_be_bytes
    linkageType: ''
    returnType: Nonce
    signature: 'fn make_nonce(sequence_number: u32) -> Nonce'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: algorithm
      Src: /src/spdm-rs/external/ring/src/aead/sealing_key.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 8
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: SealingKey::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/sealing_key.rs
    functionUses: 0
    functionsReached:
    - algorithm
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmt_debug
      Src: /src/spdm-rs/external/ring/src/aead/sealing_key.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 16
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: SealingKey::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/sealing_key.rs
    functionUses: 0
    functionsReached:
    - fmt_debug
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seal_in_place_append_tag
      Src: /src/spdm-rs/external/ring/src/aead/sealing_key.rs:77,1
    - Dst: advance
      Src: /src/spdm-rs/external/ring/src/aead/sealing_key.rs:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - aad
    - in_out
    argTypes:
    - Aad<A>
    - '&mut InOut'
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 13
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: SealingKey::seal_in_place_append_tag
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/sealing_key.rs
    functionUses: 0
    functionsReached:
    - seal_in_place_append_tag
    - advance
    linkageType: ''
    returnType: Result
    signature: 'pub fn seal_in_place_append_tag<A, InOut>(&mut self,aad: Aad<A>,in_out:
      &mut InOut,) -> Result<(), error::Unspecified>whereA: AsRef<[u8]>,InOut: AsMut<[u8]>
      + for<''in_out> Extend<&''in_out u8>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seal_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/src/aead/sealing_key.rs:101,1
    - Dst: advance
      Src: /src/spdm-rs/external/ring/src/aead/sealing_key.rs:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - aad
    - in_out
    argTypes:
    - Aad<A>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 13
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: SealingKey::seal_in_place_separate_tag
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/sealing_key.rs
    functionUses: 0
    functionsReached:
    - seal_in_place_separate_tag
    - advance
    linkageType: ''
    returnType: Result
    signature: 'pub fn seal_in_place_separate_tag<A>(&mut self,aad: Aad<A>,in_out:
      &mut [u8],) -> Result<Tag, error::Unspecified>whereA: AsRef<[u8]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encrypt_block
      Src: /src/spdm-rs/external/ring/src/aead/aes/vp.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - block
    argTypes:
    - Block
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Key::encrypt_block
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/vp.rs
    functionUses: 1
    functionsReached:
    - encrypt_block
    linkageType: ''
    returnType: Block
    signature: 'fn encrypt_block(&self, block: Block) -> Block'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:141,1
    - Dst: Nonce::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:141,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - nonce
    argTypes:
    - Nonce
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: Counter::one
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 1
    functionsReached:
    - Self
    - Nonce::as_ref
    - copy_from_slice
    linkageType: ''
    returnType: Self
    signature: 'pub fn one(nonce: Nonce) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Iv
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:149,1
    - Dst: Counter::increment_by_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 14
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: Counter::increment
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - Iv
    - Counter::increment_by_less_safe
    linkageType: ''
    returnType: Iv
    signature: pub fn increment(&mut self) -> Iv
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:156,1
    - Dst: Result::wrapping_add
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:157,1
    - Dst: NonZeroU32::get
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:157,1
    - Dst: u32::to_be_bytes
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - increment_by
    argTypes:
    - NonZeroU32
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 13
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: Counter::increment_by_less_safe
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 1
    functionsReached:
    - u32::to_be_bytes
    - u32::from_be_bytes
    - NonZeroU32::get
    - Result::wrapping_add
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn increment_by_less_safe(&mut self, increment_by: NonZeroU32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counter
    argTypes:
    - Counter
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Iv::from
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'fn from(counter: Counter) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::encrypt_iv_xor_block
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:188,1
    - Dst: Iv
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - block
    argTypes:
    - '&impl EncryptBlock'
    - Block
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: encrypt_block_using_encrypt_iv_xor_block
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - Iv
    - Option::encrypt_iv_xor_block
    linkageType: ''
    returnType: Block
    signature: 'fn encrypt_block_using_encrypt_iv_xor_block(key: &impl EncryptBlock,
      block: Block) -> Block'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::encrypt_block
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:196,1
    - Dst: bb::xor_16
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - iv
    - block
    argTypes:
    - '&impl EncryptBlock'
    - Iv
    - Block
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: encrypt_iv_xor_block_using_encrypt_block
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 1
    functionsReached:
    - Option::encrypt_block
    - bb::xor_16
    linkageType: ''
    returnType: Block
    signature: 'fn encrypt_iv_xor_block_using_encrypt_block(key: &impl EncryptBlock,iv:
      Iv,block: Block,) -> Block'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ffi::Counter
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:202,1
    - Dst: Option::ctr32_encrypt_within
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:203,1
    - Dst: Result::as_mut
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:203,1
    - Dst: '&mut [u8]::into'
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - key
    - iv
    - block
    argTypes:
    - '&impl EncryptCtr32'
    - Iv
    - Block
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 16
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: encrypt_iv_xor_block_using_ctr32
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - ffi::Counter
    - Option::ctr32_encrypt_within
    - Result::as_mut
    - '&mut [u8]::into'
    linkageType: ''
    returnType: Block
    signature: 'fn encrypt_iv_xor_block_using_ctr32(key: &impl EncryptCtr32, iv: Iv,
      mut block: Block) -> Block'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:214,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:214,1
    - Dst: consume_key
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:216,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:217,1
    - Dst: untrusted::Input::as_slice
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:218,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:218,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:219,1
    - Dst: Option::encrypt_block
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:221,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 12
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: tests::test_aes
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - consume_key
    - Option::consume_bytes
    - try_into
    - test_vector_file
    - Ok
    - test::run
    - untrusted::Input::as_slice
    - Option::encrypt_block
    linkageType: ''
    returnType: void
    signature: pub fn test_aes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:229,1
    - Dst: Option::len
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:231,1
    - Dst: KeyBytes::AES_128
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:232,1
    - Dst: Option::try_into
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:232,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:232,1
    - Dst: KeyBytes::AES_256
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:233,1
    - Dst: Option::try_into
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:233,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:233,1
    - Dst: Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:236,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:236,1
    - Dst: Self::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - test_case
    - name
    argTypes:
    - '&mut test::TestCase'
    - '&str'
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 15
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: tests::consume_key
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - KeyBytes::AES_128
    - cpu::features
    - Self::unwrap
    - Option::try_into
    - Key::new
    - Result::unwrap
    - Option::len
    - KeyBytes::AES_256
    linkageType: ''
    returnType: Key
    signature: 'fn consume_key(test_case: &mut test::TestCase, name: &str) -> Key'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_aes_gcm_counter_blocks
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 11
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: aes_gcm_tests::test_aes_gcm_counter_blocks_max
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - test_aes_gcm_counter_blocks
    linkageType: ''
    returnType: void
    signature: fn test_aes_gcm_counter_blocks_max()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_aes_gcm_counter_blocks
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 11
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: aes_gcm_tests::test_aes_gcm_counter_blocks_max_minus_one
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - test_aes_gcm_counter_blocks
    linkageType: ''
    returnType: void
    signature: fn test_aes_gcm_counter_blocks_max_minus_one()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:259,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - '&Counter'
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: a::e::s::_::g::c::m::_::t::e::s::t::s::::::::t::e::s::t::_::a::e::s::_::g::c::m::_::c::o::u::n::t::e::r::_::b::l::o::c::k::s::ctr32
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - try_into
    linkageType: ''
    returnType: '&[u8; 4]'
    signature: 'fn ctr32(ctr: &Counter) -> &[u8; 4]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::try_from
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:264,1
    - Dst: Result::ok
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:264,1
    - Dst: and_then
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:264,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:264,1
    - Dst: Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:269,1
    - Dst: Counter::one
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:270,1
    - Dst: Self::increment
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:272,1
    - Dst: Self::increment_by_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes.rs:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 2
    argNames:
    - in_out_len
    - expected_final_counter
    argTypes:
    - usize
    - '&[u8; 4]'
    constantsTouched: []
    func_position:
      end: 283
      start: 257
    functionDepth: 10
    functionLinenumber: 257
    functionLinenumberEnd: 283
    functionName: aes_gcm_tests::test_aes_gcm_counter_blocks
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes.rs
    functionUses: 0
    functionsReached:
    - u32::try_from
    - Self::increment_by_less_safe
    - Result::ok
    - Nonce::assume_unique_for_key
    - Self::increment
    - unwrap
    - and_then
    - Counter::one
    linkageType: ''
    returnType: void
    signature: 'fn test_aes_gcm_counter_blocks(in_out_len: usize, expected_final_counter:
      &[u8; 4])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::into_inner
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - UnboundKey
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: LessSafeKey::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 3
    functionsReached:
    - Option::into_inner
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(key: UnboundKey) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:41,1
    - Dst: new_key
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - algorithm
    - key_bytes
    - cpu_features
    argTypes:
    - '&''static Algorithm'
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 10
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: LessSafeKey::new_
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 2
    functionsReached:
    - new_key
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn new_(algorithm: &''static Algorithm,key_bytes: &[u8],cpu_features:
      cpu::Features,) -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Aad::from
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:61,1
    - Dst: Self::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:61,1
    - Dst: open_within
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:62,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - nonce
    - aad
    - tag
    - in_out
    - ciphertext
    argTypes:
    - Nonce
    - Aad<A>
    - Tag
    - '&''in_out mut [u8]'
    - RangeFrom<usize>
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 15
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: LessSafeKey::open_in_place_separate_tag
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 1
    functionsReached:
    - Aad::from
    - cpu::features
    - open_within
    - Self::as_ref
    linkageType: ''
    returnType: Result
    signature: 'pub fn open_in_place_separate_tag<''in_out, A>(&self,nonce: Nonce,aad:
      Aad<A>,tag: Tag,in_out: &''in_out mut [u8],ciphertext: RangeFrom<usize>,) ->
      Result<&''in_out mut [u8], error::Unspecified>whereA: AsRef<[u8]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LessSafeKey::open_within
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nonce
    - aad
    - in_out
    argTypes:
    - Nonce
    - Aad<A>
    - '&''in_out mut [u8]'
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 17
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: LessSafeKey::open_in_place
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 0
    functionsReached:
    - LessSafeKey::open_within
    linkageType: ''
    returnType: Result
    signature: 'pub fn open_in_place<''in_out, A>(&self,nonce: Nonce,aad: Aad<A>,in_out:
      &''in_out mut [u8],) -> Result<&''in_out mut [u8], error::Unspecified>whereA:
      AsRef<[u8]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''in_out mut [u8]::len'
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:105,1
    - Dst: usize::checked_sub
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:105,1
    - Dst: ok_or
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:105,1
    - Dst: '&''in_out mut [u8]::split_at_mut'
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:111,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:112,1
    - Dst: LessSafeKey::open_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - nonce
    - aad
    - in_out
    - ciphertext_and_tag
    argTypes:
    - Nonce
    - Aad<A>
    - '&''in_out mut [u8]'
    - RangeFrom<usize>
    constantsTouched: []
    func_position:
      end: 116
      start: 95
    functionDepth: 16
    functionLinenumber: 95
    functionLinenumberEnd: 116
    functionName: LessSafeKey::open_within
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 1
    functionsReached:
    - '&''in_out mut [u8]::split_at_mut'
    - ok_or
    - try_into
    - '&''in_out mut [u8]::len'
    - LessSafeKey::open_in_place_separate_tag
    - usize::checked_sub
    linkageType: ''
    returnType: Result
    signature: 'pub fn open_within<''in_out, A>(&self,nonce: Nonce,aad: Aad<A>,in_out:
      &''in_out mut [u8],ciphertext_and_tag: RangeFrom<usize>,) -> Result<&''in_out
      mut [u8], error::Unspecified>whereA: AsRef<[u8]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LessSafeKey::seal_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:133,1
    - Dst: '&mut InOut::as_mut'
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:133,1
    - Dst: Result::map
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:133,1
    - Dst: '&mut InOut::extend'
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:134,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - nonce
    - aad
    - in_out
    argTypes:
    - Nonce
    - Aad<A>
    - '&mut InOut'
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 12
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: LessSafeKey::seal_in_place_append_tag
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 0
    functionsReached:
    - LessSafeKey::seal_in_place_separate_tag
    - '&mut InOut::as_mut'
    - Result::map
    - '&mut InOut::extend'
    - SpdmResult::as_ref
    linkageType: ''
    returnType: Result
    signature: 'pub fn seal_in_place_append_tag<A, InOut>(&self,nonce: Nonce,aad:
      Aad<A>,in_out: &mut InOut,) -> Result<(), error::Unspecified>whereA: AsRef<[u8]>,InOut:
      AsMut<[u8]> + for<''in_out> Extend<&''in_out u8>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seal
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:151,1
    - Dst: Aad::from
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:154,1
    - Dst: Aad<A>::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:154,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - nonce
    - aad
    - in_out
    argTypes:
    - Nonce
    - Aad<A>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 11
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: LessSafeKey::seal_in_place_separate_tag
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 1
    functionsReached:
    - Aad<A>::as_ref
    - Aad::from
    - cpu::features
    - seal
    linkageType: ''
    returnType: Result
    signature: 'pub fn seal_in_place_separate_tag<A>(&self,nonce: Nonce,aad: Aad<A>,in_out:
      &mut [u8],) -> Result<Tag, error::Unspecified>whereA: AsRef<[u8]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: LessSafeKey::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: pub fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_struct
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:171,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:171,1
    - Dst: LessSafeKey::algorithm
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:172,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - type_name
    - f
    argTypes:
    - '&''static str'
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 15
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: LessSafeKey::fmt_debug
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 1
    functionsReached:
    - SpdmCertChainBuffer::debug_struct
    - field
    - LessSafeKey::algorithm
    - finish
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn fmt_debug(&self,type_name: &''static str,f: &mut core::fmt::Formatter,)
      -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LessSafeKey::fmt_debug
      Src: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 16
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: LessSafeKey::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
    functionUses: 0
    functionsReached:
    - LessSafeKey::fmt_debug
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitLength::from_bits
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:100,1
    - Dst: usize_from_u64
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:100,1
    - Dst: as_bits
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: Context::in_out_whole_block_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm.rs
    functionUses: 0
    functionsReached:
    - BitLength::from_bits
    - as_bits
    - usize_from_u64
    linkageType: ''
    returnType: BitLength
    signature: pub(super) fn in_out_whole_block_bits(&self) -> BitLength<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 12
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Context::inner
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm.rs
    functionUses: 0
    functionsReached:
    - inner
    linkageType: ''
    returnType: (&HTable, &mut Xi)
    signature: pub(super) fn inner(&mut self) -> (&HTable, &mut Xi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update_blocks
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - AsChunks<u8, BLOCK_LEN>
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Context::update_blocks
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm.rs
    functionUses: 0
    functionsReached:
    - update_blocks
    linkageType: ''
    returnType: void
    signature: 'pub fn update_blocks(&mut self, input: AsChunks<u8, BLOCK_LEN>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::split_at_mut
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:149,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:150,1
    - Dst: BitLength::<u64>::to_be_bytes
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:150,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:151,1
    - Dst: BitLength::<u64>::to_be_bytes
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:151,1
    - Dst: Context::update_block
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:152,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/gcm.rs:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 11
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: Context::pre_finish
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm.rs
    functionUses: 0
    functionsReached:
    - f
    - copy_from_slice
    - Context::update_block
    - Result::split_at_mut
    - BitLength::<u64>::to_be_bytes
    linkageType: ''
    returnType: super::Tag
    signature: 'pub(super) fn pre_finish<F>(mut self, f: F) -> super::TagwhereF: FnOnce(Block)
      -> super::Tag,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::overlapping::Overlapping<'_, u8>::into_slice_src_mut
      Src: /src/spdm-rs/external/ring/src/aead/shift.rs:20,1
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/aead/shift.rs:21,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/aead/shift.rs:21,1
    - Dst: step_by
      Src: /src/spdm-rs/external/ring/src/aead/shift.rs:23,1
    - Dst: <&[u8; BLOCK_LEN]>::try_from
      Src: /src/spdm-rs/external/ring/src/aead/shift.rs:26,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/shift.rs:26,1
    - Dst: <&mut [u8; BLOCK_LEN]>::try_from
      Src: /src/spdm-rs/external/ring/src/aead/shift.rs:29,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/shift.rs:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 2
    argNames:
    - in_out
    - transform
    argTypes:
    - super::overlapping::Overlapping<'_, u8>
    - impl FnMut(&[u8; BLOCK_LEN]) -> [u8; BLOCK_LEN]
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: shift_full_blocks
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/shift.rs
    functionUses: 1
    functionsReached:
    - step_by
    - super::overlapping::Overlapping<'_, u8>::into_slice_src_mut
    - clone
    - Result::unwrap
    - <&[u8; BLOCK_LEN]>::try_from
    - <&mut [u8; BLOCK_LEN]>::try_from
    - len
    linkageType: ''
    returnType: void
    signature: 'pub fn shift_full_blocks<const BLOCK_LEN: usize>(in_out: super::overlapping::Overlapping<''_,
      u8>,mut transform: impl FnMut(&[u8; BLOCK_LEN]) -> [u8; BLOCK_LEN],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: algorithm
      Src: /src/spdm-rs/external/ring/src/aead/opening_key.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 8
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: OpeningKey::algorithm
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/opening_key.rs
    functionUses: 0
    functionsReached:
    - algorithm
    linkageType: ''
    returnType: '&''static Algorithm'
    signature: fn algorithm(&self) -> &'static Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmt_debug
      Src: /src/spdm-rs/external/ring/src/aead/opening_key.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 16
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: OpeningKey::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/opening_key.rs
    functionUses: 0
    functionsReached:
    - fmt_debug
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open_within
      Src: /src/spdm-rs/external/ring/src/aead/opening_key.rs:136,1
    - Dst: advance
      Src: /src/spdm-rs/external/ring/src/aead/opening_key.rs:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - aad
    - in_out
    - ciphertext_and_tag
    argTypes:
    - Aad<A>
    - '&''in_out mut [u8]'
    - RangeFrom<usize>
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: OpeningKey::open_within
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/opening_key.rs
    functionUses: 0
    functionsReached:
    - open_within
    - advance
    linkageType: ''
    returnType: Result
    signature: 'pub fn open_within<''in_out, A>(&mut self,aad: Aad<A>,in_out: &''in_out
      mut [u8],ciphertext_and_tag: RangeFrom<usize>,) -> Result<&''in_out mut [u8],
      error::Unspecified>whereA: AsRef<[u8]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::Features::values
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:81,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:84,1
    - Dst: aes::hw::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:86,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:86,1
    - Dst: derive_gcm_key_value
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:87,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:88,1
    - Dst: gcm::vclmulavx2::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:89,1
    - Dst: Self::VAesClMulAvx2
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:90,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:91,1
    - Dst: gcm::clmulavxmovbe::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:92,1
    - Dst: Self::AesHwClMulAvxMovbe
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:93,1
    - Dst: gcm::clmul::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:95,1
    - Dst: Self::AesHwClMul
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:96,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:98,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:106,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:106,1
    - Dst: aes::hw::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:107,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:107,1
    - Dst: derive_gcm_key_value
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:108,1
    - Dst: gcm::clmul::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:109,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:110,1
    - Dst: Self::AesHwClMul
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:110,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:117,1
    - Dst: Self::new_neon
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:118,1
    - Dst: cpu::Features::get_feature
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:122,1
    - Dst: Self::new_ssse3
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:123,1
    - Dst: Self::new_fallback
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 64
    argCount: 2
    argNames:
    - key
    - cpu
    argTypes:
    - aes::KeyBytes
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 128
      start: 80
    functionDepth: 12
    functionLinenumber: 80
    functionLinenumberEnd: 128
    functionName: DynKey::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 0
    functionsReached:
    - derive_gcm_key_value
    - gcm::clmul::Key::new
    - Self::AesHwClMul
    - Self::new_fallback
    - aes::hw::Key::new
    - Ok
    - gcm::vclmulavx2::Key::new
    - Self::VAesClMulAvx2
    - cpu::Features::get_feature
    - gcm::clmulavxmovbe::Key::new
    - Self::AesHwClMulAvxMovbe
    - Self::new_ssse3
    - cpu::Features::values
    - Self::new_neon
    linkageType: ''
    returnType: Result
    signature: 'fn new(key: aes::KeyBytes, cpu: cpu::Features) -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aes::vp::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:136,1
    - Dst: derive_gcm_key_value
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:137,1
    - Dst: gcm::neon::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:138,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:139,1
    - Dst: Self::Simd
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - key
    - cpu
    argTypes:
    - aes::KeyBytes
    - cpu::arm::Neon
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: DynKey::new_neon
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 0
    functionsReached:
    - derive_gcm_key_value
    - Self::Simd
    - aes::vp::Key::new
    - Ok
    - gcm::neon::Key::new
    linkageType: ''
    returnType: Result
    signature: 'fn new_neon(key: aes::KeyBytes, cpu: cpu::arm::Neon) -> Result<Self,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aes::vp::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:148,1
    - Dst: derive_gcm_key_value
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:149,1
    - Dst: gcm::fallback::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:150,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:151,1
    - Dst: Self::Simd
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - key
    - cpu
    argTypes:
    - aes::KeyBytes
    - aes::vp::RequiredCpuFeatures
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: DynKey::new_ssse3
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 0
    functionsReached:
    - derive_gcm_key_value
    - Self::Simd
    - aes::vp::Key::new
    - Ok
    - gcm::fallback::Key::new
    linkageType: ''
    returnType: Result
    signature: 'fn new_ssse3(key: aes::KeyBytes,cpu: aes::vp::RequiredCpuFeatures,)
      -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aes::fallback::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:164,1
    - Dst: derive_gcm_key_value
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:165,1
    - Dst: gcm::fallback::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:166,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:167,1
    - Dst: Self::Fallback
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - aes::KeyBytes
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: DynKey::new_fallback
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 0
    functionsReached:
    - derive_gcm_key_value
    - Self::Fallback
    - Ok
    - gcm::fallback::Key::new
    - aes::fallback::Key::new
    linkageType: ''
    returnType: Result
    signature: 'fn new_fallback(key: aes::KeyBytes) -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcm::KeyValue::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:172,1
    - Dst: encrypt_block
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aes_key
    argTypes:
    - '&impl aes::EncryptBlock'
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: derive_gcm_key_value
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 4
    functionsReached:
    - gcm::KeyValue::new
    - encrypt_block
    linkageType: ''
    returnType: gcm::KeyValue
    signature: 'fn derive_gcm_key_value(aes_key: &impl aes::EncryptBlock) -> gcm::KeyValue'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcm::Context::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:51,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:51,1
    - Dst: inner
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:52,1
    - Dst: aesni_gcm_encrypt
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:55,1
    - Dst: '&mut [u8]::as_ptr'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:56,1
    - Dst: '&mut [u8]::as_mut_ptr'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:57,1
    - Dst: '&mut [u8]::len'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:58,1
    - Dst: inner_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:59,1
    - Dst: '&mut [u8]::get_mut'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:66,1
    - Dst: slice::as_chunks_mut
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:74,1
    - Dst: ctr32_encrypt_within
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:75,1
    - Dst: as_flattened_mut
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:75,1
    - Dst: '&mut [T]::into'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:75,1
    - Dst: update_blocks
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:76,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:76,1
    - Dst: OverlappingPartialBlock::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:77,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:77,1
    - Dst: Self::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:77,1
    - Dst: super::seal_finish
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 6
    argNames:
    - aes_key
    - gcm_key
    - ctr
    - tag_iv
    - aad
    - in_out
    argTypes:
    - '&aes::hw::Key'
    - '&gcm::clmulavxmovbe::Key'
    - Counter
    - aes::Iv
    - Aad<&[u8]>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 81
      start: 30
    functionDepth: 10
    functionLinenumber: 30
    functionLinenumberEnd: 81
    functionName: seal
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs
    functionUses: 5
    functionsReached:
    - inner_less_safe
    - '&mut [u8]::len'
    - into
    - '&mut [u8]::get_mut'
    - as_ref
    - '&mut [T]::into'
    - ctr32_encrypt_within
    - gcm::Context::new
    - OverlappingPartialBlock::new
    - as_flattened_mut
    - '&mut [u8]::as_mut_ptr'
    - '&mut [u8]::as_ptr'
    - aesni_gcm_encrypt
    - slice::as_chunks_mut
    - super::seal_finish
    - update_blocks
    - Self::unwrap_or_else
    - inner
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn seal(aes_key: &aes::hw::Key,gcm_key: &gcm::clmulavxmovbe::Key,mut
      ctr: Counter,tag_iv: aes::Iv,aad: Aad<&[u8]>,in_out: &mut [u8],) -> Result<Tag,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcm::Context::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:235,1
    - Dst: Aad<&[u8]>::len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:235,1
    - Dst: slice::as_chunks_mut
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:236,1
    - Dst: seal_whole
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:237,1
    - Dst: OverlappingPartialBlock::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:238,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:238,1
    - Dst: Self::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:238,1
    - Dst: seal_finish
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 6
    argNames:
    - aad
    - in_out
    - ctr
    - tag_iv
    - seal_whole
    argTypes:
    - '&Combo<A, G>'
    - Aad<&[u8]>
    - '&mut [u8]'
    - Counter
    - aes::Iv
    - impl FnOnce(&A, &mut gcm::Context<G>, &mut Counter, slice::AsChunksMut<u8, BLOCK_LEN>)
    constantsTouched: []
    func_position:
      end: 241
      start: 227
    functionDepth: 13
    functionLinenumber: 227
    functionLinenumberEnd: 241
    functionName: seal_whole_partial
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 0
    functionsReached:
    - seal_whole
    - into
    - seal_finish
    - gcm::Context::new
    - Aad<&[u8]>::len
    - OverlappingPartialBlock::new
    - slice::as_chunks_mut
    - Self::unwrap_or_else
    linkageType: ''
    returnType: Result
    signature: 'fn seal_whole_partial<A: aes::EncryptBlock, G: gcm::UpdateBlock>(Combo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcm::Context::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:269,1
    - Dst: Aad<&[u8]>::len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:269,1
    - Dst: slice::as_chunks_mut
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:271,1
    - Dst: chunks_mut::<CHUNK_BLOCKS>
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:273,1
    - Dst: ctr32_encrypt_within
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:274,1
    - Dst: '&[u8]::as_flattened_mut'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:274,1
    - Dst: '&mut [T]::into'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:274,1
    - Dst: update_blocks
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:275,1
    - Dst: '&[u8]::as_ref'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:275,1
    - Dst: OverlappingPartialBlock::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:278,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:278,1
    - Dst: Self::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:278,1
    - Dst: seal_finish
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 5
    argNames:
    - aad
    - in_out
    - ctr
    - tag_iv
    argTypes:
    - '&Combo<A, G>'
    - Aad<&[u8]>
    - '&mut [u8]'
    - Counter
    - aes::Iv
    constantsTouched: []
    func_position:
      end: 281
      start: 259
    functionDepth: 14
    functionLinenumber: 259
    functionLinenumberEnd: 281
    functionName: seal_strided
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 0
    functionsReached:
    - into
    - '&mut [T]::into'
    - ctr32_encrypt_within
    - seal_finish
    - gcm::Context::new
    - Aad<&[u8]>::len
    - '&[u8]::as_flattened_mut'
    - OverlappingPartialBlock::new
    - update_blocks
    - slice::as_chunks_mut
    - chunks_mut::<CHUNK_BLOCKS>
    - '&[u8]::as_ref'
    - Self::unwrap_or_else
    linkageType: ''
    returnType: Result
    signature: 'fn seal_strided<A: aes::EncryptBlock + aes::EncryptCtr32,G: gcm::UpdateBlock
      + gcm::UpdateBlocks,>(Combo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OverlappingPartialBlock<'_>::len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:290,1
    - Dst: '{

        cpu,

        error::sliceutil::overwrite_at_start'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:293,1
    - Dst: OverlappingPartialBlock<'_>::input
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:293,1
    - Dst: encrypt_iv_xor_block
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:294,1
    - Dst: Self::into
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:294,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:295,1
    - Dst: gcm::Context<G>::update_block
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:296,1
    - Dst: OverlappingPartialBlock<'_>::overwrite_at_start
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:297,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:300,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 5
    argNames:
    - aes_key
    - auth
    - remainder
    - ctr
    - tag_iv
    argTypes:
    - '&A'
    - gcm::Context<G>
    - OverlappingPartialBlock<'_>
    - Counter
    - aes::Iv
    constantsTouched: []
    func_position:
      end: 301
      start: 283
    functionDepth: 13
    functionLinenumber: 283
    functionLinenumberEnd: 301
    functionName: seal_finish
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 3
    functionsReached:
    - '{

      cpu,

      error::sliceutil::overwrite_at_start'
    - encrypt_iv_xor_block
    - OverlappingPartialBlock<'_>::len
    - Self::into
    - Ok
    - gcm::Context<G>::update_block
    - OverlappingPartialBlock<'_>::input
    - OverlappingPartialBlock<'_>::overwrite_at_start
    - finish
    - fill
    linkageType: ''
    returnType: Result
    signature: 'fn seal_finish<A: aes::EncryptBlock, G: gcm::UpdateBlock>(aes_key:
      &A,mut auth: gcm::Context<G>,remainder: OverlappingPartialBlock<''_>,ctr: Counter,tag_iv:
      aes::Iv,) -> Result<Tag, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:106,1
    - Dst: RangeFrom<usize>::clone
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:106,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:106,1
    - Dst: gcm::Context::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:107,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:107,1
    - Dst: with_input_output_len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:108,1
    - Dst: inner
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:109,1
    - Dst: aesni_gcm_decrypt
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:111,1
    - Dst: inner_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:115,1
    - Dst: '&mut [u8]::get_mut'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:122,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:122,1
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:129,1
    - Dst: RangeFrom<usize>::clone
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:129,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:129,1
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:134,1
    - Dst: input
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:134,1
    - Dst: update_blocks
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:135,1
    - Dst: as_flattened
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:137,1
    - Dst: '&[T]::len'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:137,1
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:140,1
    - Dst: RangeFrom<usize>::clone
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:140,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:140,1
    - Dst: ctr32_encrypt_within
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:142,1
    - Dst: '&mut [u8]::get_mut'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:144,1
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:149,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:149,1
    - Dst: OverlappingPartialBlock::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:150,1
    - Dst: Self::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:150,1
    - Dst: super::open_finish
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 7
    argNames:
    - aes_key
    - gcm_key
    - ctr
    - tag_iv
    - aad
    - in_out_slice
    - src
    argTypes:
    - '&aes::hw::Key'
    - '&gcm::clmulavxmovbe::Key'
    - Counter
    - aes::Iv
    - Aad<&[u8]>
    - '&mut [u8]'
    - RangeFrom<usize>
    constantsTouched: []
    func_position:
      end: 154
      start: 84
    functionDepth: 14
    functionLinenumber: 84
    functionLinenumberEnd: 154
    functionName: open
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs
    functionUses: 2
    functionsReached:
    - '&mut [u8]::get_mut'
    - Result::map_err
    - '&[T]::len'
    - input
    - OverlappingPartialBlock::new
    - slice::as_chunks
    - RangeFrom<usize>::clone
    - unwrap_or_else
    - Overlapping::new
    - ctr32_encrypt_within
    - gcm::Context::new
    - super::open_finish
    - aesni_gcm_decrypt
    - update_blocks
    - with_input_output_len
    - inner_less_safe
    - Result::unwrap_or_else
    - as_flattened
    - Self::unwrap_or_else
    - inner
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn open(aes_key: &aes::hw::Key,gcm_key: &gcm::clmulavxmovbe::Key,mut
      ctr: Counter,tag_iv: aes::Iv,aad: Aad<&[u8]>,in_out_slice: &mut [u8],src: RangeFrom<usize>,)
      -> Result<Tag, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:364,1
    - Dst: '&mut [u8]::clone'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:364,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:364,1
    - Dst: gcm::Context::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:365,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:365,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:367,1
    - Dst: Aad<&[u8]>::len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:369,1
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:371,1
    - Dst: '&mut [u8]::clone'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:371,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:371,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:373,1
    - Dst: open_whole
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:374,1
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:378,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:378,1
    - Dst: OverlappingPartialBlock::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:379,1
    - Dst: Self::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:379,1
    - Dst: open_finish
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 7
    argNames:
    - aad
    - in_out_slice
    - src
    - ctr
    - tag_iv
    - open_whole
    argTypes:
    - '&Combo<A, G>'
    - Aad<&[u8]>
    - '&mut [u8]'
    - RangeFrom<usize>
    - Counter
    - aes::Iv
    - impl FnOnce(&A, &mut gcm::Context<G>, Overlapping, &mut Counter)
    constantsTouched: []
    func_position:
      end: 382
      start: 355
    functionDepth: 14
    functionLinenumber: 355
    functionLinenumberEnd: 382
    functionName: open_whole_partial
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 0
    functionsReached:
    - Overlapping::new
    - '&mut [u8]::clone'
    - open_finish
    - gcm::Context::new
    - Aad<&[u8]>::len
    - Result::unwrap_or_else
    - Result::map_err
    - OverlappingPartialBlock::new
    - open_whole
    - Self::unwrap_or_else
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn open_whole_partial<A: aes::EncryptBlock, G: gcm::UpdateBlock>(Combo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:418,1
    - Dst: '&mut [u8]::clone'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:418,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:418,1
    - Dst: input
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:419,1
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:420,1
    - Dst: gcm::Context::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:422,1
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:438,1
    - Dst: is_empty
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:440,1
    - Dst: update_blocks
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:443,1
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:445,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:445,1
    - Dst: ctr32_encrypt_within
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:450,1
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:456,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:456,1
    - Dst: OverlappingPartialBlock::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:458,1
    - Dst: Self::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:458,1
    - Dst: open_finish
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:461,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 72
    argCount: 6
    argNames:
    - aad
    - in_out_slice
    - src
    - ctr
    - tag_iv
    argTypes:
    - '&Combo<A, G>'
    - Aad<&[u8]>
    - '&mut [u8]'
    - RangeFrom<usize>
    - Counter
    - aes::Iv
    constantsTouched: []
    func_position:
      end: 462
      start: 407
    functionDepth: 14
    functionLinenumber: 407
    functionLinenumberEnd: 462
    functionName: open_strided
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 0
    functionsReached:
    - Overlapping::new
    - '&mut [u8]::clone'
    - open_finish
    - is_empty
    - ctr32_encrypt_within
    - gcm::Context::new
    - Result::unwrap_or_else
    - Result::map_err
    - input
    - OverlappingPartialBlock::new
    - slice::as_chunks
    - untrusted::Input::len
    - update_blocks
    - Self::unwrap_or_else
    linkageType: ''
    returnType: Result
    signature: 'fn open_strided<A: aes::EncryptBlock + aes::EncryptCtr32,G: gcm::UpdateBlock
      + gcm::UpdateBlocks,>(Combo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OverlappingPartialBlock<'_>::len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:471,1
    - Dst: '{

        cpu,

        error::sliceutil::overwrite_at_start'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:473,1
    - Dst: OverlappingPartialBlock<'_>::input
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:473,1
    - Dst: gcm::Context<G>::update_block
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:474,1
    - Dst: OverlappingPartialBlock<'_>::overwrite_at_start
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:475,1
    - Dst: encrypt_iv_xor_block
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:475,1
    - Dst: Self::into
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:475,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:477,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 5
    argNames:
    - aes_key
    - auth
    - remainder
    - ctr
    - tag_iv
    argTypes:
    - '&A'
    - gcm::Context<G>
    - OverlappingPartialBlock<'_>
    - Counter
    - aes::Iv
    constantsTouched: []
    func_position:
      end: 478
      start: 464
    functionDepth: 13
    functionLinenumber: 464
    functionLinenumberEnd: 478
    functionName: open_finish
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
    functionUses: 3
    functionsReached:
    - '{

      cpu,

      error::sliceutil::overwrite_at_start'
    - encrypt_iv_xor_block
    - OverlappingPartialBlock<'_>::len
    - Self::into
    - Ok
    - gcm::Context<G>::update_block
    - OverlappingPartialBlock<'_>::overwrite_at_start
    - OverlappingPartialBlock<'_>::input
    - finish
    linkageType: ''
    returnType: Result
    signature: 'fn open_finish<A: aes::EncryptBlock, G: gcm::UpdateBlock>(aes_key:
      &A,mut auth: gcm::Context<G>,remainder: OverlappingPartialBlock<''_>,ctr: Counter,tag_iv:
      aes::Iv,) -> Result<Tag, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::split_at_mut
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:152,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:153,1
    - Dst: u64::to_le_bytes
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:153,1
    - Dst: '{

        cpu,

        error::InputTooLongError,

        polyfill::u64_from_usize'
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:153,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:154,1
    - Dst: u64::to_le_bytes
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:154,1
    - Dst: '{

        cpu,

        error::InputTooLongError,

        polyfill::u64_from_usize'
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:154,1
    - Dst: poly1305::Context::finish
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - auth
    - aad_len
    - in_out_len
    argTypes:
    - poly1305::Context
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 13
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: finish
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs
    functionUses: 61
    functionsReached:
    - u64::to_le_bytes
    - copy_from_slice
    - poly1305::Context::finish
    - Result::split_at_mut
    - '{

      cpu,

      error::InputTooLongError,

      polyfill::u64_from_usize'
    linkageType: ''
    returnType: Tag
    signature: 'fn finish(auth: poly1305::Context, aad_len: usize, in_out_len: usize)
      -> Tag'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data_len
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:65,1
    - Dst: Default::default
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:66,1
    - Dst: CRYPTO_poly1305_init_neon
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:72,1
    - Dst: super::Context::ArmNeon
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - neon
    argTypes:
    - Key
    - Neon
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: State::new_context
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs
    functionUses: 1
    functionsReached:
    - data_len
    - super::Context::ArmNeon
    - CRYPTO_poly1305_init_neon
    - Default::default
    linkageType: ''
    returnType: super::Context
    signature: pub(super) fn new_context(Key
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:83,1
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:83,1
    - Dst: untrusted::Input::as_ptr
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:85,1
    - Dst: CRYPTO_poly1305_update_neon
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: State::update_internal
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs
    functionUses: 0
    functionsReached:
    - untrusted::Input::as_ptr
    - NonZeroUsize::new
    - untrusted::Input::len
    - CRYPTO_poly1305_update_neon
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn update_internal(&mut self, input: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::Tag
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:94,1
    - Dst: CRYPTO_poly1305_finish_neon
      Src: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: State::finish
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs
    functionUses: 0
    functionsReached:
    - CRYPTO_poly1305_finish_neon
    - super::Tag
    linkageType: ''
    returnType: Tag
    signature: pub(super) fn finish(mut self) -> Tag
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: data_len
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: const fn data_len() -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:76,1
    - Dst: poly1305::Context::from_key
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:77,1
    - Dst: poly1305_update_padded_16
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:79,1
    - Dst: Nonce::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:79,1
    - Dst: encrypt
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:80,1
    - Dst: Aad<&[u8]>::into
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:80,1
    - Dst: poly1305_update_padded_16
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:81,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:82,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:82,1
    - Dst: Nonce::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:82,1
    - Dst: '&[u8; NONCE_LEN]::len'
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:82,1
    - Dst: Aad<&[u8]>::len
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 5
    argNames:
    - nonce
    - aad
    - in_out
    - cpu
    argTypes:
    - '&Key'
    - Nonce
    - Aad<&[u8]>
    - '&mut [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 13
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: seal_fallback
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs
    functionUses: 0
    functionsReached:
    - poly1305::Context::from_key
    - '&[u8; NONCE_LEN]::len'
    - Ok
    - Aad<&[u8]>::len
    - poly1305_update_padded_16
    - begin
    - Nonce::as_ref
    - finish
    - Aad<&[u8]>::into
    - encrypt
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn seal_fallback(Key(chacha20_key): &Key,nonce: Nonce,aad:
      Aad<&[u8]>,in_out: &mut [u8],cpu: cpu::Features,) -> Result<Tag, InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:110,1
    - Dst: Aad<&[u8]>::input
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:110,1
    - Dst: poly1305::Context::from_key
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:111,1
    - Dst: poly1305_update_padded_16
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:113,1
    - Dst: Nonce::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:113,1
    - Dst: poly1305_update_padded_16
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:114,1
    - Dst: Aad<&[u8]>::input
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:114,1
    - Dst: Aad<&[u8]>::len
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:115,1
    - Dst: encrypt
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:116,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:117,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:117,1
    - Dst: Nonce::as_ref
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:117,1
    - Dst: '&[u8; NONCE_LEN]::len'
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 5
    argNames:
    - nonce
    - aad
    - in_out
    - cpu
    argTypes:
    - '&Key'
    - Nonce
    - Aad<&[u8]>
    - Overlapping<'_>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 13
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: open_fallback
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs
    functionUses: 0
    functionsReached:
    - poly1305::Context::from_key
    - '&[u8; NONCE_LEN]::len'
    - Aad<&[u8]>::len
    - Ok
    - poly1305_update_padded_16
    - begin
    - Aad<&[u8]>::input
    - Nonce::as_ref
    - finish
    - encrypt
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn open_fallback(Key(chacha20_key): &Key,nonce: Nonce,aad:
      Aad<&[u8]>,in_out: Overlapping<''_>,cpu: cpu::Features,) -> Result<Tag, InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:121,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:122,1
    - Dst: InputTooLongError::new
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:122,1
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:122,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - aad
    - input
    argTypes:
    - Aad<&[u8]>
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: check_input_lengths
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs
    functionUses: 1
    functionsReached:
    - InputTooLongError::new
    - Ok
    - untrusted::Input::len
    - Err
    linkageType: ''
    returnType: Result
    signature: 'fn check_input_lengths(aad: Aad<&[u8]>, input: &[u8]) -> Result<(),
      InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_input_lengths
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:142,1
    - Dst: Option::encrypt_single_block_with_ctr_0
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:145,1
    - Dst: poly1305::Key::new
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:146,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - key
    - nonce
    - aad
    - input
    - cpu
    argTypes:
    - '&chacha::Key'
    - Nonce
    - Aad<&[u8]>
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: begin
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs
    functionUses: 3
    functionsReached:
    - poly1305::Key::new
    - Ok
    - check_input_lengths
    - Option::encrypt_single_block_with_ctr_0
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn begin(key: &chacha::Key,nonce: Nonce,aad: Aad<&[u8]>,input:
      &[u8],cpu: cpu::Features,) -> Result<(Counter, poly1305::Key), InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:160,1
    - Dst: '&mut poly1305::Context::update'
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:161,1
    - Dst: is_empty
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:162,1
    - Dst: sliceutil::overwrite_at_start
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:164,1
    - Dst: '&mut poly1305::Context::update_block'
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - input
    argTypes:
    - '&mut poly1305::Context'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 6
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: poly1305_update_padded_16
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs
    functionUses: 2
    functionsReached:
    - sliceutil::overwrite_at_start
    - '&mut poly1305::Context::update_block'
    - is_empty
    - '&mut poly1305::Context::update'
    - slice::as_chunks
    linkageType: ''
    returnType: void
    signature: 'fn poly1305_update_padded_16(ctx: &mut poly1305::Context, input: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/integrated.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: declare_open
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/integrated.rs
    functionUses: 0
    functionsReached:
    - prefixed_extern
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/integrated.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: declare_seal
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/integrated.rs
    functionUses: 0
    functionsReached:
    - prefixed_extern
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::encrypt_iv_xor_block_using_encrypt_block
      Src: /src/spdm-rs/external/ring/src/aead/aes/vp.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - iv
    - block
    argTypes:
    - Iv
    - Block
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Key::encrypt_iv_xor_block
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/vp.rs
    functionUses: 1
    functionsReached:
    - super::encrypt_iv_xor_block_using_encrypt_block
    linkageType: ''
    returnType: Block
    signature: 'fn encrypt_iv_xor_block(&self, iv: Iv, block: Block) -> Block'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::super::shift::shift_full_blocks
      Src: /src/spdm-rs/external/ring/src/aead/aes/vp.rs:135,1
    - Dst: Key::encrypt_iv_xor_block
      Src: /src/spdm-rs/external/ring/src/aead/aes/vp.rs:136,1
    - Dst: Self::increment
      Src: /src/spdm-rs/external/ring/src/aead/aes/vp.rs:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - in_out
    - ctr
    argTypes:
    - Overlapping<'_>
    - '&mut Counter'
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 15
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: Key::ctr32_encrypt_within
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/vp.rs
    functionUses: 0
    functionsReached:
    - Key::encrypt_iv_xor_block
    - super::super::shift::shift_full_blocks
    - Self::increment
    linkageType: ''
    returnType: void
    signature: 'fn ctr32_encrypt_within(&self, in_out: Overlapping<''_>, ctr: &mut
      Counter)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_KEY::derive
      Src: /src/spdm-rs/external/ring/src/aead/aes/bs.rs:45,1
    - Dst: ctr32_encrypt_blocks
      Src: /src/spdm-rs/external/ring/src/aead/aes/bs.rs:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - in_out
    - vpaes_key
    - ctr
    argTypes:
    - Overlapping<'_>
    - '&AES_KEY'
    - '&mut Counter'
    constantsTouched: []
    func_position:
      end: 60
      start: 29
    functionDepth: 12
    functionLinenumber: 29
    functionLinenumberEnd: 60
    functionName: ctr32_encrypt_blocks_with_vpaes_key
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/bs.rs
    functionUses: 0
    functionsReached:
    - ctr32_encrypt_blocks
    - AES_KEY::derive
    linkageType: ''
    returnType: void
    signature: 'pub(super) unsafe fn ctr32_encrypt_blocks_with_vpaes_key(in_out: Overlapping<''_>,vpaes_key:
      &AES_KEY,ctr: &mut Counter,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitLength::from_bits
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:49,1
    - Dst: BitLength::from_bits
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:50,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:54,1
    - Dst: Bytes::as_ptr
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:54,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:56,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - f
    - bytes
    argTypes:
    - unsafe extern "C" fn(*const u8, BitLength<c_int>, *mut AES_KEY) -> c_int
    - KeyBytes<'_>
    constantsTouched: []
    func_position:
      end: 60
      start: 39
    functionDepth: 11
    functionLinenumber: 39
    functionLinenumberEnd: 60
    functionName: AES_KEY::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs
    functionUses: 1
    functionsReached:
    - BitLength::from_bits
    - Err
    - f
    - Ok
    - Bytes::as_ptr
    linkageType: ''
    returnType: Result
    signature: 'pub(super) unsafe fn new(f: unsafe extern "C" fn(*const u8, BitLength<c_int>,
      *mut AES_KEY) -> c_int,bytes: KeyBytes<''_>,) -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - f
    - src
    argTypes:
    - for<'a> unsafe extern "C" fn(*mut AES_KEY, &'a AES_KEY)
    - '&Self'
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 11
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: AES_KEY::derive
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs
    functionUses: 1
    functionsReached:
    - f
    linkageType: ''
    returnType: Self
    signature: 'pub(super) unsafe fn derive(f: for<''a> unsafe extern "C" fn(*mut
      AES_KEY, &''a AES_KEY),src: &Self,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: AES_KEY::rounds
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub(super) fn rounds(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:4,1
    - Dst: $crate::aead::aes::ffi::AES_KEY::new
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: set_encrypt_key
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs
    functionUses: 0
    functionsReached:
    - $crate::aead::aes::ffi::AES_KEY::new
    - prefixed_extern
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:3,1
    - Dst: encrypt_block
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: encrypt_block
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs
    functionUses: 7
    functionsReached:
    - encrypt_block
    - prefixed_extern
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: core::mem::MaybeUninit::uninit
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:120,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:122,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:122,1
    - Dst: assume_init
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - f
    - a
    argTypes:
    - unsafe extern "C" fn(&Block, *mut Block, &AES_KEY)
    - Block
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 11
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: AES_KEY::encrypt_block
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs
    functionUses: 0
    functionsReached:
    - core::mem::MaybeUninit::uninit
    - as_mut_ptr
    - assume_init
    - f
    linkageType: ''
    returnType: Block
    signature: 'pub(super) unsafe fn encrypt_block(&self,f: unsafe extern "C" fn(&Block,
      *mut Block, &AES_KEY),a: Block,) -> Block'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:6,1
    - Dst: ctr32_encrypt_blocks
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 150
    functionName: ctr32_encrypt_blocks
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs
    functionUses: 2
    functionsReached:
    - ctr32_encrypt_blocks
    - prefixed_extern
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping<'_>::with_input_output_len
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:177,1
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:180,1
    - Dst: untrusted::Input::cast
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:187,1
    - Dst: Output::cast
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:188,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:189,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:189,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:200,1
    - Dst: Self::increment_by_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - f
    - in_out
    - ctr
    argTypes:
    - "unsafe extern \"C\" fn(\n            input: *const [u8; BLOCK_LEN],\n     \
      \       output: *mut [u8; BLOCK_LEN],\n            blocks: c::NonZero_size_t,\n\
      \            key: &AES_KEY,\n            ivec: &Counter,\n        )"
    - Overlapping<'_>
    - '&mut Counter'
    constantsTouched: []
    func_position:
      end: 205
      start: 165
    functionDepth: 16
    functionLinenumber: 165
    functionLinenumberEnd: 205
    functionName: AES_KEY::ctr32_encrypt_blocks
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs
    functionUses: 0
    functionsReached:
    - Self::increment_by_less_safe
    - f
    - NonZeroUsize::new
    - Result::unwrap
    - Overlapping<'_>::with_input_output_len
    - untrusted::Input::cast
    - try_into
    - Output::cast
    linkageType: ''
    returnType: void
    signature: 'pub(super) unsafe fn ctr32_encrypt_blocks(&self,f: unsafe extern "C"
      fn(input: *const [u8; BLOCK_LEN],output: *mut [u8; BLOCK_LEN],blocks: c::NonZero_size_t,key:
      &AES_KEY,ivec: &Counter,),in_out: Overlapping<''_>,ctr: &mut Counter,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: Key::inner_less_safe
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes/hw.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&AES_KEY'
    signature: pub(in super::super) fn inner_less_safe(&self) -> &AES_KEY
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bitxor_assign
      Src: /src/spdm-rs/external/ring/src/aead/gcm/neon.rs:43,1
    - Dst: gmult
      Src: /src/spdm-rs/external/ring/src/aead/gcm/neon.rs:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - xi
    - a
    argTypes:
    - '&mut Xi'
    - '[u8; BLOCK_LEN]'
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 14
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: Key::update_block
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/neon.rs
    functionUses: 0
    functionsReached:
    - bitxor_assign
    - gmult
    linkageType: ''
    returnType: void
    signature: 'fn update_block(&self, xi: &mut Xi, a: [u8; BLOCK_LEN])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ghash
      Src: /src/spdm-rs/external/ring/src/aead/gcm/neon.rs:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - xi
    - input
    argTypes:
    - '&mut Xi'
    - AsChunks<u8, BLOCK_LEN>
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Key::update_blocks
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/neon.rs
    functionUses: 0
    functionsReached:
    - ghash
    linkageType: ''
    returnType: void
    signature: 'fn update_blocks(&self, xi: &mut Xi, input: AsChunks<u8, BLOCK_LEN>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - a
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: g::c::m::_::m::u::l::6::4::_::n::o::h::w::lo
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: 'fn lo(a: u64) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: g::c::m::_::m::u::l::6::4::_::n::o::h::w::hi
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 0
    functionsReached:
    - lo
    linkageType: ''
    returnType: u32
    signature: 'fn hi(a: u64) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u128::from
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:67,1
    - Dst: u128::from
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: g::c::m::_::m::u::l::6::4::_::n::o::h::w::mul
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 0
    functionsReached:
    - u128::from
    linkageType: ''
    returnType: u128
    signature: 'fn mul(a: u64, b: u64) -> u128'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lo
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:154,1
    - Dst: hi
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:155,1
    - Dst: lo
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:156,1
    - Dst: hi
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:157,1
    - Dst: gcm_mul32_nohw
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:159,1
    - Dst: gcm_mul32_nohw
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:160,1
    - Dst: gcm_mul32_nohw
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 16
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: gcm_mul64_nohw
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 1
    functionsReached:
    - gcm_mul32_nohw
    - lo
    - hi
    linkageType: ''
    returnType: (u64, u64)
    signature: 'fn gcm_mul64_nohw(a: u64, b: u64) -> (u64, u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:117,1
    - Dst: u64::from
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: g::c::m::_::m::u::l::3::2::_::n::o::h::w::mul
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 0
    functionsReached:
    - u64::from
    linkageType: ''
    returnType: u64
    signature: 'fn mul(a: u32, b: u32) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:132,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:132,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:132,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:132,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:133,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:133,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:133,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:133,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:134,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:134,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:134,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:134,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:135,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:135,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:135,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 141
      start: 114
    functionDepth: 15
    functionLinenumber: 114
    functionLinenumberEnd: 141
    functionName: gcm_mul32_nohw
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 1
    functionsReached:
    - mul
    linkageType: ''
    returnType: u64
    signature: 'fn gcm_mul32_nohw(a: u32, b: u32) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::into_inner
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:166,1
    - Dst: wrapping_sub
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - value
    argTypes:
    - KeyValue
    constantsTouched: []
    func_position:
      end: 195
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 195
    functionName: init
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 439
    functionsReached:
    - SpdmResult::into_inner
    - wrapping_sub
    linkageType: ''
    returnType: U128
    signature: 'fn init(value: KeyValue) -> U128'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcm_mul64_nohw
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:201,1
    - Dst: gcm_mul64_nohw
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:202,1
    - Dst: gcm_mul64_nohw
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 2
    argNames:
    - xi
    - h
    argTypes:
    - '&mut [u64; 2]'
    - U128
    constantsTouched: []
    func_position:
      end: 244
      start: 197
    functionDepth: 17
    functionLinenumber: 197
    functionLinenumberEnd: 244
    functionName: gcm_polyval_nohw
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 1
    functionsReached:
    - gcm_mul64_nohw
    linkageType: ''
    returnType: void
    signature: 'fn gcm_polyval_nohw(xi: &mut [u64; 2], h: U128)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_swapped_xi
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:247,1
    - Dst: gcm_polyval_nohw
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xi
    - h
    argTypes:
    - '&mut Xi'
    - U128
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 13
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: gmult
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 1
    functionsReached:
    - gcm_polyval_nohw
    - with_swapped_xi
    linkageType: ''
    returnType: void
    signature: 'fn gmult(xi: &mut Xi, h: U128)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:3,1
    - Dst: ghash
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: ghash
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs
    functionUses: 2
    functionsReached:
    - ghash
    - prefixed_extern
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: array_split_map
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:265,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:267,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:268,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:269,1
    - Dst: u64::to_be_bytes
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:269,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:270,1
    - Dst: u64::to_be_bytes
      Src: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - f
    argTypes:
    - '&mut Xi'
    - impl FnOnce(&mut [u64; 2])
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 11
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: with_swapped_xi
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
    functionUses: 1
    functionsReached:
    - u64::to_be_bytes
    - array_split_map
    - f
    - copy_from_slice
    - split_at_mut
    linkageType: ''
    returnType: void
    signature: 'fn with_swapped_xi(Xi(xi): &mut Xi, f: impl FnOnce(&mut [u64; 2]))'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Key::inner
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/vclmulavx2.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&HTable'
    signature: pub(super) fn inner(&self) -> &HTable
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:3,1
    - Dst: HTable::new
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: htable_new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs
    functionUses: 1
    functionsReached:
    - HTable::new
    - prefixed_extern
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:68,1
    - Dst: SpdmResult::array_split_map
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - Block
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: KeyValue::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs
    functionUses: 1
    functionsReached:
    - Self
    - SpdmResult::array_split_map
    linkageType: ''
    returnType: Self
    signature: 'pub(in super::super) fn new(value: Block) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: KeyValue::into_inner
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[u64; 2]'
    signature: pub(super) fn into_inner(self) -> [u64; 2]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - init
    - value
    argTypes:
    - 'unsafe extern "C" fn(HTable: &mut HTable, &[u64; 2])'
    - KeyValue
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: HTable::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs
    functionUses: 1
    functionsReached:
    - init
    linkageType: ''
    returnType: Self
    signature: 'pub(super) unsafe fn new(init: unsafe extern "C" fn(HTable: &mut HTable,
      &[u64; 2]),value: KeyValue,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - f
    - xi
    argTypes:
    - 'unsafe extern "C" fn(xi: &mut Xi, h_table: &HTable)'
    - '&mut Xi'
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 11
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: HTable::gmult
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: 'pub(super) unsafe fn gmult(&self,f: unsafe extern "C" fn(xi: &mut
      Xi, h_table: &HTable),xi: &mut Xi,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::as_flattened
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:123,1
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:125,1
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:125,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:136,1
    - Dst: untrusted::Input::as_ptr
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - f
    - xi
    - input
    argTypes:
    - "unsafe extern \"C\" fn(\n            xi: &mut Xi,\n            Htable: &HTable,\n\
      \            inp: *const u8,\n            len: crate::c::NonZero_size_t,\n \
      \       )"
    - '&mut Xi'
    - AsChunks<u8, BLOCK_LEN>
    constantsTouched: []
    func_position:
      end: 138
      start: 110
    functionDepth: 11
    functionLinenumber: 110
    functionLinenumberEnd: 138
    functionName: HTable::ghash
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs
    functionUses: 0
    functionsReached:
    - f
    - NonZeroUsize::new
    - untrusted::Input::len
    - untrusted::Input::as_ptr
    - untrusted::Input::as_flattened
    linkageType: ''
    returnType: void
    signature: 'pub(super) unsafe fn ghash(&self,f: unsafe extern "C" fn(xi: &mut
      Xi,Htable: &HTable,inp: *const u8,len: crate::c::NonZero_size_t,),xi: &mut Xi,input:
      AsChunks<u8, BLOCK_LEN>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bb::xor_16
      Src: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - Block
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: Xi::bitxor_assign
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs
    functionUses: 0
    functionsReached:
    - bb::xor_16
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn bitxor_assign(&mut self, a: Block)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::words_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:30,1
    - Dst: '[u32; 4]::into_words_less_safe'
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:31,1
    - Dst: Overlapping<'_>::len
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:38,1
    - Dst: chacha_core
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:42,1
    - Dst: split_first_chunk::<BLOCK_LEN>
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:50,1
    - Dst: bb::xor_assign_at_start
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:52,1
    - Dst: Overlapping<'_>::input
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:52,1
    - Dst: sliceutil::overwrite_at_start
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:53,1
    - Dst: Overlapping<'_>::into_unwritten_output
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:53,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:50,1
    - Dst: bb::xor_assign_at_start
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:60,1
    - Dst: Overlapping<'_>::input
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:60,1
    - Dst: sliceutil::overwrite_at_start
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:61,1
    - Dst: Overlapping<'_>::into_unwritten_output
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 77
    argCount: 3
    argNames:
    - key
    - counter
    - in_out
    argTypes:
    - '&Key'
    - Counter
    - Overlapping<'_>
    constantsTouched: []
    func_position:
      end: 67
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 67
    functionName: ChaCha20_ctr32
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs
    functionUses: 1
    functionsReached:
    - Overlapping<'_>::input
    - sliceutil::overwrite_at_start
    - unwrap_or_else
    - Overlapping<'_>::into_unwritten_output
    - split_first_chunk::<BLOCK_LEN>
    - Option::words_less_safe
    - chacha_core
    - bb::xor_assign_at_start
    - Overlapping<'_>::len
    - '[u32; 4]::into_words_less_safe'
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn ChaCha20_ctr32(key: &Key, counter: Counter, mut in_out:
      Overlapping<''_>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: step_by
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:74,1
    - Dst: quarterround
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:75,1
    - Dst: quarterround
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:76,1
    - Dst: quarterround
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:77,1
    - Dst: quarterround
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:78,1
    - Dst: quarterround
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:79,1
    - Dst: quarterround
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:80,1
    - Dst: quarterround
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:81,1
    - Dst: quarterround
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:82,1
    - Dst: Result::iter_mut
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:85,1
    - Dst: zip
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:85,1
    - Dst: untrusted::Input::iter
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:85,1
    - Dst: Result::wrapping_add
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:86,1
    - Dst: Output::chunks_exact_mut
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:89,1
    - Dst: size_of::<u32>
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:90,1
    - Dst: zip
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:89,1
    - Dst: Result::iter
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:91,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:89,1
    - Dst: Output::copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:92,1
    - Dst: Result::to_le_bytes
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 61
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - '&mut [u8; BLOCK_LEN]'
    - '&State'
    constantsTouched: []
    func_position:
      end: 93
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 93
    functionName: chacha_core
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs
    functionUses: 1
    functionsReached:
    - Result::iter_mut
    - Result::iter
    - Output::copy_from_slice
    - zip
    - step_by
    - size_of::<u32>
    - Output::chunks_exact_mut
    - Result::wrapping_add
    - for_each
    - untrusted::Input::iter
    - Result::to_le_bytes
    - quarterround
    linkageType: ''
    returnType: void
    signature: 'fn chacha_core(output: &mut [u8; BLOCK_LEN], input: &State)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wrapping_add
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:99,1
    - Dst: rotate_left
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - x
    - a
    - b
    - c
    - rotation
    argTypes:
    - '&mut State'
    - usize
    - usize
    - usize
    - u32
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: q::u::a::r::t::e::r::r::o::u::n::d::step
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs
    functionUses: 0
    functionsReached:
    - rotate_left
    - wrapping_add
    linkageType: ''
    returnType: void
    signature: 'fn step(x: &mut State, a: usize, b: usize, c: usize, rotation: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: step
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:102,1
    - Dst: step
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:103,1
    - Dst: step
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:104,1
    - Dst: step
      Src: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 5
    argNames:
    - x
    - a
    - b
    - c
    - d
    argTypes:
    - '&mut State'
    - usize
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: quarterround
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs
    functionUses: 1
    functionsReached:
    - step
    linkageType: ''
    returnType: void
    signature: 'fn quarterround(x: &mut State, a: usize, b: usize, c: usize, d: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::into
      Src: /src/spdm-rs/external/ring/src/aead/chacha/ffi.rs:59,1
    - Dst: Result::with_input_output_len
      Src: /src/spdm-rs/external/ring/src/aead/chacha/ffi.rs:60,1
    - Dst: Option::words_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/chacha/ffi.rs:62,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/aead/chacha/ffi.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - key
    - counter
    - in_out
    - cpu
    - f
    argTypes:
    - '&Key'
    - Counter
    - InOut
    - Cpu
    - unsafe extern "C" fn(*mut u8, *const u8, crate::c::size_t, &[u32; 8], &Counter)
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 15
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: chacha20_ctr32_ffi
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/chacha/ffi.rs
    functionUses: 0
    functionsReached:
    - f
    - Result::with_input_output_len
    - Option::words_less_safe
    - Result::into
    linkageType: ''
    returnType: void
    signature: 'pub(super) unsafe fn chacha20_ctr32_ffi<''o,InOut: ''o + Into<Overlapping<''o,
      u8>>,Cpu,const MIN_LEN: usize,>(key: &Key,counter: Counter,in_out: InOut,cpu:
      Cpu,f: unsafe extern "C" fn(*mut u8, *const u8, crate::c::size_t, &[u32; 8],
      &Counter),)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping<'o, T>::len
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:29,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:30,1
    - Dst: LenMismatchError::new
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:30,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - in_out
    argTypes:
    - Overlapping<'o, T>
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: Array::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs
    functionUses: 1
    functionsReached:
    - Overlapping<'o, T>::len
    - LenMismatchError::new
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn new(in_out: Overlapping<''o, T>) -> Result<Self, LenMismatchError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_unwritten_output
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:39,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:39,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Array::into_unwritten_output
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - into_unwritten_output
    - try_into
    linkageType: ''
    returnType: '&''o mut [T; N]'
    signature: 'pub fn into_unwritten_output(self) -> &''o mut [T; N]where&''o mut
      [T]: TryInto<&''o mut [T; N], Error = TryFromSliceError>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: input
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:53,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:53,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: Array::input
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs
    functionUses: 0
    functionsReached:
    - input
    - unwrap_or_else
    - try_into
    linkageType: ''
    returnType: '&''s [T; N]'
    signature: 'pub fn input<''s>(&''s self) -> &''s [T; N]where&''s [T]: TryInto<&''s
      [T; N], Error = TryFromSliceError>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping<'i, T>::len
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:25,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:27,1
    - Dst: InputTooLongError::new
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:27,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - in_out
    argTypes:
    - Overlapping<'i, T>
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: PartialBlock::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs
    functionUses: 6
    functionsReached:
    - InputTooLongError::new
    - Ok
    - Err
    - Overlapping<'i, T>::len
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(in_out: Overlapping<''i, T>) -> Result<Self, InputTooLongError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PartialBlock::len
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:36,1
    - Dst: into_unwritten_output
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:37,1
    - Dst: Output::copy_from_slice
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - padded
    argTypes:
    - '[T; BLOCK_LEN]'
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: PartialBlock::overwrite_at_start
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs
    functionUses: 0
    functionsReached:
    - into_unwritten_output
    - Output::copy_from_slice
    - PartialBlock::len
    linkageType: ''
    returnType: void
    signature: 'pub fn overwrite_at_start(self, padded: [T; BLOCK_LEN])whereT: Copy,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: input
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:46,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: PartialBlock::input
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs
    functionUses: 1
    functionsReached:
    - input
    - len
    linkageType: ''
    returnType: '&[T]'
    signature: pub fn input(&self) -> &[T]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PartialBlock::input
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:57,1
    - Dst: '&[T]::len'
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: PartialBlock::len
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs
    functionUses: 1
    functionsReached:
    - '&[T]::len'
    - PartialBlock::input
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in_out
    argTypes:
    - '&''o mut [T]'
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Overlapping::from
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(in_out: &''o mut [T]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''o mut [T]::get'
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:34,1
    - Dst: RangeFrom<usize>::clone
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:34,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:35,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:36,1
    - Dst: IndexError::new
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - in_out
    - src
    argTypes:
    - '&''o mut [T]'
    - RangeFrom<usize>
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 13
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: Overlapping::new
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
    functionUses: 6
    functionsReached:
    - Err
    - Ok
    - '&''o mut [T]::get'
    - IndexError::new
    - RangeFrom<usize>::clone
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(in_out: &''o mut [T], src: RangeFrom<usize>) -> Result<Self,
      IndexError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping::len
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:51,1
    - Dst: copy_within
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 15
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: Overlapping::copy_within
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
    functionUses: 0
    functionsReached:
    - copy_within
    - Overlapping::len
    linkageType: ''
    returnType: '&''o mut [T]'
    signature: 'pub fn copy_within(self) -> &''o mut [T]whereT: Copy,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Overlapping::into_slice_src_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (&'o mut [T], RangeFrom
    signature: pub fn into_slice_src_mut(self) -> (&'o mut [T], RangeFrom<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping::len
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:66,1
    - Dst: get_mut
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:67,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 15
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: Overlapping::into_unwritten_output
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - Overlapping::len
    - unwrap_or_else
    linkageType: ''
    returnType: '&''o mut [T]'
    signature: pub fn into_unwritten_output(self) -> &'o mut [T]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping::input
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:76,1
    - Dst: '&[T]::len'
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 14
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Overlapping::len
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
    functionUses: 4
    functionsReached:
    - '&[T]::len'
    - Overlapping::input
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:80,1
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:80,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 13
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: Overlapping::input
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
    functionUses: 1
    functionsReached:
    - get
    - clone
    - unwrap_or_else
    linkageType: ''
    returnType: '&[T]'
    signature: pub fn input(&self) -> &[T]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping::len
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:87,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:88,1
    - Dst: output::add
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl FnOnce(*const T, *mut T, usize) -> R
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 15
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: Overlapping::with_input_output_len
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
    functionUses: 2
    functionsReached:
    - output::add
    - Overlapping::len
    - as_mut_ptr
    linkageType: ''
    returnType: R
    signature: 'pub fn with_input_output_len<R>(self, f: impl FnOnce(*const T, *mut
      T, usize) -> R) -> R'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:116,1
    - Dst: checked_add
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:117,1
    - Dst: ok_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:117,1
    - Dst: IndexError::new
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:121,1
    - Dst: get_mut
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:122,1
    - Dst: ok_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:122,1
    - Dst: IndexError::new
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:125,1
    - Dst: Overlapping::new
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:126,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:126,1
    - Dst: Array::new
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:130,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:130,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:136,1
    - Dst: mem::take
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:138,1
    - Dst: Option::get_mut
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:138,1
    - Dst: unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:138,1
    - Dst: Self::new
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:142,1
    - Dst: Self::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl for<'a> FnOnce(Array<'a, T, N>)
    constantsTouched: []
    func_position:
      end: 147
      start: 112
    functionDepth: 14
    functionLinenumber: 112
    functionLinenumberEnd: 147
    functionName: Overlapping::split_first_chunk
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - Overlapping::new
    - unwrap_or_else
    - Self::new
    - Option::get_mut
    - checked_add
    - clone
    - Result::unwrap_or_else
    - Ok
    - ok_or_else
    - IndexError::new
    - mem::take
    - Array::new
    - Self::unwrap_or_else
    linkageType: ''
    returnType: Result
    signature: 'pub fn split_first_chunk<const N: usize>(mut self,f: impl for<''a>
      FnOnce(Array<''a, T, N>),) -> Result<Self, IndexError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut gcm::Context<gcm::clmul::Key>::in_out_whole_block_bits'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:27,1
    - Dst: BitLength::into
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:28,1
    - Dst: Result::try_into
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:29,1
    - Dst: '&mut gcm::Context<gcm::clmul::Key>::inner'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:30,1
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:32,1
    - Dst: aes_gcm_enc_kernel
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:44,1
    - Dst: AsChunksMut<u8, BLOCK_LEN>::as_ptr
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:45,1
    - Dst: AsChunksMut<u8, BLOCK_LEN>::as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:47,1
    - Dst: inner_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - aes_key
    - auth
    - ctr
    - in_out
    argTypes:
    - '&aes::hw::Key'
    - '&mut gcm::Context<gcm::clmul::Key>'
    - '&mut Counter'
    - AsChunksMut<u8, BLOCK_LEN>
    constantsTouched: []
    func_position:
      end: 55
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 55
    functionName: seal_whole
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs
    functionUses: 1
    functionsReached:
    - inner_less_safe
    - AsChunksMut<u8, BLOCK_LEN>::as_mut_ptr
    - '&mut gcm::Context<gcm::clmul::Key>::inner'
    - aes_gcm_enc_kernel
    - prefixed_extern
    - BitLength::into
    - '&mut gcm::Context<gcm::clmul::Key>::in_out_whole_block_bits'
    - AsChunksMut<u8, BLOCK_LEN>::as_ptr
    - Result::try_into
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn seal_whole(aes_key: &aes::hw::Key,auth: &mut gcm::Context<gcm::clmul::Key>,ctr:
      &mut Counter,mut in_out: AsChunksMut<u8, BLOCK_LEN>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Overlapping::with_input_output_len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:66,1
    - Dst: '&mut gcm::Context<gcm::clmul::Key>::in_out_whole_block_bits'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:67,1
    - Dst: BitLength::into
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:68,1
    - Dst: Result::try_into
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:69,1
    - Dst: '&mut gcm::Context<gcm::clmul::Key>::inner'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:70,1
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:71,1
    - Dst: aes_gcm_dec_kernel
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:83,1
    - Dst: inner_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - aes_key
    - auth
    - in_out
    - ctr
    argTypes:
    - '&aes::hw::Key'
    - '&mut gcm::Context<gcm::clmul::Key>'
    - Overlapping
    - '&mut Counter'
    constantsTouched: []
    func_position:
      end: 95
      start: 57
    functionDepth: 16
    functionLinenumber: 57
    functionLinenumberEnd: 95
    functionName: open_whole
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs
    functionUses: 1
    functionsReached:
    - inner_less_safe
    - '&mut gcm::Context<gcm::clmul::Key>::inner'
    - Overlapping::with_input_output_len
    - prefixed_extern
    - BitLength::into
    - aes_gcm_dec_kernel
    - '&mut gcm::Context<gcm::clmul::Key>::in_out_whole_block_bits'
    - Result::try_into
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn open_whole(aes_key: &aes::hw::Key,auth: &mut gcm::Context<gcm::clmul::Key>,in_out:
      Overlapping,ctr: &mut Counter,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [T]::as_flattened_mut'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:38,1
    - Dst: u32::try_from
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:42,1
    - Dst: '&mut [T]::len'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:42,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:42,1
    - Dst: NonZeroU32::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:44,1
    - Dst: inner_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:45,1
    - Dst: '&mut gcm::Context<gcm::vclmulavx2::Key>::inner'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:46,1
    - Dst: '&mut [T]::as_ptr'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:47,1
    - Dst: '&mut [T]::as_mut_ptr'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:48,1
    - Dst: '&mut [T]::len'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:49,1
    - Dst: aes_gcm_enc_update_vaes_avx2
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:50,1
    - Dst: Self::increment_by_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 4
    argNames:
    - aes_key
    - auth
    - ctr
    - in_out
    argTypes:
    - '&aes::hw::Key'
    - '&mut gcm::Context<gcm::vclmulavx2::Key>'
    - '&mut Counter'
    - AsChunksMut<u8, BLOCK_LEN>
    constantsTouched: []
    func_position:
      end: 53
      start: 21
    functionDepth: 14
    functionLinenumber: 21
    functionLinenumberEnd: 53
    functionName: seal_whole_vaes_clmul_avx2
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs
    functionUses: 0
    functionsReached:
    - NonZeroU32::new
    - u32::try_from
    - '&mut [T]::as_mut_ptr'
    - inner_less_safe
    - Self::increment_by_less_safe
    - '&mut [T]::as_flattened_mut'
    - aes_gcm_enc_update_vaes_avx2
    - '&mut [T]::len'
    - '&mut [T]::as_ptr'
    - Result::unwrap
    - '&mut gcm::Context<gcm::vclmulavx2::Key>::inner'
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn seal_whole_vaes_clmul_avx2(aes_key: &aes::hw::Key,auth:
      &mut gcm::Context<gcm::vclmulavx2::Key>,ctr: &mut Counter,mut in_out: AsChunksMut<u8,
      BLOCK_LEN>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::try_from
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:76,1
    - Dst: Overlapping::len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:76,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:76,1
    - Dst: NonZeroU32::new
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:78,1
    - Dst: inner_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:79,1
    - Dst: '&mut gcm::Context<gcm::vclmulavx2::Key>::inner'
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:80,1
    - Dst: Overlapping::with_input_output_len
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:81,1
    - Dst: aes_gcm_dec_update_vaes_avx2
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:82,1
    - Dst: Self::increment_by_less_safe
      Src: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - aes_key
    - auth
    - in_out
    - ctr
    argTypes:
    - '&aes::hw::Key'
    - '&mut gcm::Context<gcm::vclmulavx2::Key>'
    - Overlapping
    - '&mut Counter'
    constantsTouched: []
    func_position:
      end: 86
      start: 55
    functionDepth: 15
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: open_whole_vaes_clmul_avx2
    functionSourceFile: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs
    functionUses: 0
    functionsReached:
    - NonZeroU32::new
    - u32::try_from
    - Self::increment_by_less_safe
    - inner_less_safe
    - Overlapping::with_input_output_len
    - Result::unwrap
    - aes_gcm_dec_update_vaes_avx2
    - Overlapping::len
    - '&mut gcm::Context<gcm::vclmulavx2::Key>::inner'
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn open_whole_vaes_clmul_avx2(aes_key: &aes::hw::Key,auth:
      &mut gcm::Context<gcm::vclmulavx2::Key>,in_out: Overlapping,ctr: &mut Counter,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Seed::compute_public_key
      Src: /src/spdm-rs/external/ring/src/ec/keys.rs:14,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/keys.rs:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - cpu_features
    argTypes:
    - Seed
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: KeyPair::derive
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/keys.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Seed::compute_public_key
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn derive(seed: Seed,cpu_features: cpu::Features,) -> Result<Self,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyPair::public
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: KeyPair::public_key
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 0
    functionsReached:
    - KeyPair::public
    linkageType: ''
    returnType: '&Self::PublicKey'
    signature: fn public_key(&self) -> &Self::PublicKey
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: KeyPair::split
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/keys.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (Seed, PublicKey)
    signature: pub fn split(self) -> (Seed, PublicKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/keys.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - curve
    - rng
    - cpu
    argTypes:
    - '&''static Curve'
    - '&dyn rand::SecureRandom'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: Seed::generate
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/keys.rs
    functionUses: 2
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn generate(curve: &''static Curve,rng: &dyn rand::SecureRandom,cpu:
      cpu::Features,) -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/keys.rs:50,1
    - Dst: Bytes::len
      Src: /src/spdm-rs/external/ring/src/ec/keys.rs:51,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/keys.rs:52,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/ec/keys.rs:59,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/keys.rs:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - curve
    - bytes
    - cpu
    argTypes:
    - '&''static Curve'
    - untrusted::Input
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: Seed::from_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/keys.rs
    functionUses: 3
    functionsReached:
    - Err
    - Bytes::as_slice_less_safe
    - Ok
    - copy_from_slice
    - Bytes::len
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn from_bytes(curve: &''static Curve,bytes: untrusted::Input,cpu:
      cpu::Features,) -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Seed::bytes_less_safe
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/keys.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn bytes_less_safe(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/keys.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: Seed::compute_public_key
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/keys.rs
    functionUses: 1
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn compute_public_key(&self,cpu_features: cpu::Features,)
      -> Result<PublicKey, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verify_affine_point_is_on_the_curve_scaled
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:36,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:36,1
    - Dst: bool::a
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:36,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:36,1
    - Dst: bool::b
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - q
    argTypes:
    - '&Modulus<Q>'
    - (&Elem<R>, &Elem<R>)
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 15
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: verify_affine_point_is_on_the_curve
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b.rs
    functionUses: 2
    functionsReached:
    - bool::b
    - bool::a
    - Elem::from
    - verify_affine_point_is_on_the_curve_scaled
    linkageType: ''
    returnType: Result
    signature: 'fn verify_affine_point_is_on_the_curve(q: &Modulus<Q>,(x, y): (&Elem<R>,
      &Elem<R>),) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::point_z
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:52,1
    - Dst: bool::elem_verify_is_not_zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:55,1
    - Dst: bool::point_x
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:57,1
    - Dst: bool::point_y
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:58,1
    - Dst: bool::elem_squared
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:102,1
    - Dst: bool::elem_squared
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:103,1
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:104,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:104,1
    - Dst: bool::a
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:104,1
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:105,1
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:106,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:106,1
    - Dst: bool::b
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:106,1
    - Dst: verify_affine_point_is_on_the_curve_scaled
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:107,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 2
    argNames:
    - q
    - p
    argTypes:
    - '&Modulus<Q>'
    - '&Point'
    constantsTouched: []
    func_position:
      end: 109
      start: 48
    functionDepth: 14
    functionLinenumber: 48
    functionLinenumberEnd: 109
    functionName: verify_jacobian_point_is_on_the_curve
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b.rs
    functionUses: 1
    functionsReached:
    - bool::elem_verify_is_not_zero
    - bool::point_x
    - bool::point_z
    - Elem::from
    - bool::elem_squared
    - bool::point_y
    - bool::a
    - verify_affine_point_is_on_the_curve_scaled
    - Ok
    - bool::b
    - bool::elem_product
    linkageType: ''
    returnType: Result
    signature: 'fn verify_jacobian_point_is_on_the_curve(q: &Modulus<Q>,p: &Point,)
      -> Result<Elem<R>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::elem_squared
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:142,1
    - Dst: bool::elem_squared
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:144,1
    - Dst: bool::add_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:145,1
    - Dst: bool::elem_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:146,1
    - Dst: bool::add_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:147,1
    - Dst: bool::elems_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:149,1
    - Dst: LimbMask::leak
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:149,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:150,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 4
    argNames:
    - q
    - a_scaled
    - b_scaled
    argTypes:
    - '&Modulus<Q>'
    - (&Elem<R>, &Elem<R>)
    - '&Elem<R>'
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 154
      start: 136
    functionDepth: 14
    functionLinenumber: 136
    functionLinenumberEnd: 154
    functionName: verify_affine_point_is_on_the_curve_scaled
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b.rs
    functionUses: 2
    functionsReached:
    - bool::add_assign
    - bool::elems_are_equal
    - Err
    - bool::elem_squared
    - Ok
    - bool::elem_mul
    - LimbMask::leak
    linkageType: ''
    returnType: Result
    signature: 'fn verify_affine_point_is_on_the_curve_scaled(q: &Modulus<Q>,(x, y):
      (&Elem<R>, &Elem<R>),a_scaled: &Elem<R>,b_scaled: &Elem<R>,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkcs8::unwrap_key
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:162,1
    - Dst: read_all
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:164,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:164,1
    - Dst: der::nested
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:166,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:169,1
    - Dst: key_pair_from_pkcs8_
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:170,1
    - Dst: key_pair_from_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - curve
    - template
    - input
    - cpu_features
    argTypes:
    - '&''static ec::Curve'
    - '&pkcs8::Template'
    - untrusted::Input
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 19
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: key_pair_from_pkcs8
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b.rs
    functionUses: 1
    functionsReached:
    - key_pair_from_bytes
    - key_pair_from_pkcs8_
    - error::KeyRejected::invalid_encoding
    - der::nested
    - read_all
    - pkcs8::unwrap_key
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn key_pair_from_pkcs8(curve: &''static ec::Curve,template:
      &pkcs8::Template,input: untrusted::Input,cpu_features: cpu::Features,) -> Result<ec::KeyPair,
      error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: der::small_nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:180,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:180,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:181,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:183,1
    - Dst: error::KeyRejected::version_not_supported
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:183,1
    - Dst: der::expect_tag_and_get_value
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:186,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:186,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:187,1
    - Dst: untrusted::Input::peek
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:190,1
    - Dst: u8::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:190,1
    - Dst: der::expect_tag_and_get_value
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:192,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:192,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:193,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:194,1
    - Dst: '&pkcs8::Template::curve_oid'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:194,1
    - Dst: untrusted::Input::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:194,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:195,1
    - Dst: error::KeyRejected::wrong_algorithm
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:195,1
    - Dst: der::nested
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:201,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:201,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:207,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 2
    argNames:
    - template
    - input
    argTypes:
    - '&pkcs8::Template'
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 210
      start: 176
    functionDepth: 7
    functionLinenumber: 176
    functionLinenumberEnd: 210
    functionName: key_pair_from_pkcs8_
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b.rs
    functionUses: 1
    functionsReached:
    - untrusted::Input::as_slice_less_safe
    - Err
    - error::KeyRejected::invalid_encoding
    - error::KeyRejected::wrong_algorithm
    - u8::from
    - error::KeyRejected::version_not_supported
    - untrusted::Input::peek
    - der::nested
    - Ok
    - Result::map_err
    - der::small_nonnegative_integer
    - '&pkcs8::Template::curve_oid'
    - der::expect_tag_and_get_value
    - as_slice_less_safe
    linkageType: ''
    returnType: Result
    signature: 'fn key_pair_from_pkcs8_<''a>(template: &pkcs8::Template,input: &mut
      untrusted::Reader<''a>,) -> Result<(untrusted::Input<''a>, untrusted::Input<''a>),
      error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec::Seed::from_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:218,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:218,1
    - Dst: error::KeyRejected::invalid_component
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:219,1
    - Dst: ec::KeyPair::derive
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:221,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:221,1
    - Dst: error::KeyRejected::unexpected_error
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:222,1
    - Dst: untrusted::Input::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:223,1
    - Dst: public_key
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:223,1
    - Dst: Result::as_ref
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:223,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:224,1
    - Dst: error::KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:224,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b.rs:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - curve
    - private_key_bytes
    - public_key_bytes
    - cpu_features
    argTypes:
    - '&''static ec::Curve'
    - untrusted::Input
    - untrusted::Input
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 228
      start: 212
    functionDepth: 18
    functionLinenumber: 212
    functionLinenumberEnd: 228
    functionName: key_pair_from_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b.rs
    functionUses: 2
    functionsReached:
    - error::KeyRejected::invalid_component
    - untrusted::Input::as_slice_less_safe
    - Err
    - error::KeyRejected::unexpected_error
    - Ok
    - ec::Seed::from_bytes
    - Result::map_err
    - Result::as_ref
    - public_key
    - ec::KeyPair::derive
    - error::KeyRejected::inconsistent_components
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn key_pair_from_bytes(curve: &''static ec::Curve,private_key_bytes:
      untrusted::Input,public_key_bytes: untrusted::Input,cpu_features: cpu::Features,)
      -> Result<ec::KeyPair, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:96,1
    - Dst: parse_uncompressed_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:106,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:128,1
    - Dst: private_key_as_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:129,1
    - Dst: '&PrivateKeyOps::point_mul'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:130,1
    - Dst: big_endian_affine_from_jacobian
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 6
    argNames:
    - private_key_ops
    - public_key_ops
    - out
    - my_private_key
    - peer_public_key
    - cpu
    argTypes:
    - '&PrivateKeyOps'
    - '&PublicKeyOps'
    - '&mut [u8]'
    - '&ec::Seed'
    - untrusted::Input
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 145
      start: 82
    functionDepth: 17
    functionLinenumber: 82
    functionLinenumberEnd: 145
    functionName: ecdh
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs
    functionUses: 0
    functionsReached:
    - private_key_as_scalar
    - elem_modulus
    - parse_uncompressed_point
    - '&PrivateKeyOps::point_mul'
    - big_endian_affine_from_jacobian
    - scalar_modulus
    linkageType: ''
    returnType: Result
    signature: 'fn ecdh(private_key_ops: &PrivateKeyOps,public_key_ops: &PublicKeyOps,out:
      &mut [u8],my_private_key: &ec::Seed,peer_public_key: untrusted::Input,cpu: cpu::Features,)
      -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:178,1
    - Dst: limb::big_endian_from_limbs
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:193,1
    - Dst: n_limbs
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:193,1
    - Dst: agreement::EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:209,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:209,1
    - Dst: core::cell::UnsafeCell::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:236,1
    - Dst: agreement::EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:238,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 169
    functionDepth: 14
    functionLinenumber: 169
    functionLinenumberEnd: 242
    functionName: tests::test_agreement_suite_b_ecdh_generate
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs
    functionUses: 0
    functionsReached:
    - limb::big_endian_from_limbs
    - n_limbs
    - Result::unwrap
    - agreement::EphemeralPrivateKey::generate
    - iter
    - core::cell::UnsafeCell::new
    linkageType: ''
    returnType: void
    signature: fn test_agreement_suite_b_ecdh_generate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:125,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:126,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: Point::new_at_infinity
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 8
    functionsReached:
    - Elem::zero
    linkageType: ''
    returnType: Self
    signature: pub fn new_at_infinity() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: CommonOps::elem_modulus
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Modulus
    signature: 'pub(super) fn elem_modulus(&''static self, cpu_features: cpu::Features)
      -> Modulus<Q>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: CommonOps::scalar_modulus
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Modulus
    signature: 'pub(super) fn scalar_modulus(&''static self, cpu_features: cpu::Features)
      -> Modulus<N>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: CommonOps::len
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: CommonOps::n_limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: '&[Limb]'
    signature: pub(super) fn n_limbs(&self) -> &[Limb]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Modulus::cpu
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cpu::Features
    signature: pub fn cpu(&self) -> cpu::Features
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Modulus::bytes_len
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: usize
    signature: pub fn bytes_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:135,1
    - Dst: limbs_add_assign_mod
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:136,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&mut elem::Elem<M, E>'
    - '&elem::Elem<M, E>'
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 10
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: Modulus::add_assign
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_or_else
    - into
    - limbs_add_assign_mod
    linkageType: ''
    returnType: void
    signature: 'pub fn add_assign<E: Encoding>(&self, a: &mut elem::Elem<M, E>, b:
      &elem::Elem<M, E>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:148,1
    - Dst: limbs_equal_limbs_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:149,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&Elem<E>'
    - '&Elem<E>'
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Modulus::elems_are_equal
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - into
    - limbs_equal_limbs_consttime
    - Result::unwrap_or_else
    linkageType: ''
    returnType: LimbMask
    signature: 'pub fn elems_are_equal<E: Encoding>(&self, a: &Elem<E>, b: &Elem<E>)
      -> LimbMask'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Modulus::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:155,1
    - Dst: Elem::one
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Modulus::elem_unencoded
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - Modulus::elem_product
    - Elem::one
    linkageType: ''
    returnType: Elem
    signature: 'pub fn elem_unencoded(&self, a: &Elem<R>) -> Elem<Unencoded>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:162,1
    - Dst: limbs_are_zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:163,1
    - Dst: LimbMask::leak
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&elem::Elem<M, E>'
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: CommonOps::is_zero
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - LimbMask::leak
    - into
    - limbs_are_zero
    linkageType: ''
    returnType: bool
    signature: 'fn is_zero<M, E: Encoding>(&self, a: &elem::Elem<M, E>) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem::binary_op_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - _cpu
    argTypes:
    - '&mut Elem<R>'
    - '&Elem<R>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 12
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: CommonOps::elem_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - elem::binary_op_assign
    linkageType: ''
    returnType: void
    signature: 'fn elem_mul(&self, a: &mut Elem<R>, b: &Elem<R>, _cpu: cpu::Features)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem::mul_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - _cpu
    argTypes:
    - '&Elem<EA>'
    - '&Elem<EB>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: CommonOps::elem_product
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - elem::mul_mont
    linkageType: ''
    returnType: Elem
    signature: 'fn elem_product<EA: Encoding, EB: Encoding>(&self,a: &Elem<EA>,b:
      &Elem<EB>,_cpu: cpu::Features,) -> Elem<<(EA, EB) as ProductEncoding>::Output>where(EA,
      EB): ProductEncoding,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem::unary_op_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - _cpu
    argTypes:
    - '&mut Elem<R>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 12
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: CommonOps::elem_square
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 2
    functionsReached:
    - elem::unary_op_assign
    linkageType: ''
    returnType: void
    signature: 'fn elem_square(&self, a: &mut Elem<R>, _cpu: cpu::Features)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem::unary_op
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - _cpu
    argTypes:
    - '&Elem<R>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 12
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: CommonOps::elem_squared
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - elem::unary_op
    linkageType: ''
    returnType: Elem
    signature: 'fn elem_squared(&self, a: &Elem<R>, _cpu: cpu::Features) -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&mut Elem<R>'
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 15
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: Modulus::elem_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - elem_mul
    linkageType: ''
    returnType: void
    signature: 'pub fn elem_mul(&self, a: &mut Elem<R>, b: &Elem<R>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&Elem<EA>'
    - '&Elem<EB>'
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: Modulus::elem_product
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - elem_product
    linkageType: ''
    returnType: Elem
    signature: 'pub fn elem_product<EA: Encoding, EB: Encoding>(&self,a: &Elem<EA>,b:
      &Elem<EB>,) -> Elem<<(EA, EB) as ProductEncoding>::Output>where(EA, EB): ProductEncoding,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_square
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&mut Elem<R>'
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 13
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: Modulus::elem_square
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - elem_square
    linkageType: ''
    returnType: void
    signature: 'pub fn elem_square(&self, a: &mut Elem<R>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_squared
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 14
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: Modulus::elem_squared
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - elem_squared
    linkageType: ''
    returnType: Elem
    signature: 'pub fn elem_squared(&self, a: &Elem<R>) -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&elem::Elem<M, E>'
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: Modulus::is_zero
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - is_zero
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_zero<E: Encoding>(&self, a: &elem::Elem<M, E>) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Modulus::is_zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:233,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:234,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: Modulus::elem_verify_is_not_zero
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - Modulus::is_zero
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub fn elem_verify_is_not_zero(&self, a: &Elem<R>) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: Modulus::a
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static PublicElem'
    signature: pub(super) fn a(&self) -> &'static PublicElem<R>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Modulus::b
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static PublicElem'
    signature: pub(super) fn b(&self) -> &'static PublicElem<R>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Point::new_at_infinity
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:250,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:252,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:252,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b
    - _cpu
    argTypes:
    - '&Point'
    - '&Point'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: PrivateKeyOps::point_sum
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 2
    functionsReached:
    - Point::new_at_infinity
    - as_ptr
    - as_mut_ptr
    linkageType: ''
    returnType: Point
    signature: 'pub(super) fn point_sum(&self, a: &Point, b: &Point, _cpu: cpu::Features)
      -> Point'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:260,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:261,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - '&Point'
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: Modulus::point_x
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - Elem::zero
    - into
    - copy_from_slice
    linkageType: ''
    returnType: Elem
    signature: 'pub fn point_x(&self, p: &Point) -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:267,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:268,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - '&Point'
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: Modulus::point_y
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - Elem::zero
    - into
    - copy_from_slice
    linkageType: ''
    returnType: Elem
    signature: 'pub fn point_y(&self, p: &Point) -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:274,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:275,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - p
    argTypes:
    - '&Point'
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: Modulus::point_z
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - Elem::zero
    - into
    - copy_from_slice
    linkageType: ''
    returnType: Elem
    signature: 'pub fn point_z(&self, p: &Point) -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&''a Elem<Unencoded>'
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: PrivateKeyOps::leak_limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - into
    linkageType: ''
    returnType: '&''a [Limb]'
    signature: 'pub fn leak_limbs<''a>(&self, a: &''a Elem<Unencoded>) -> &''a [Limb]'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - cpu
    argTypes:
    - '&Scalar'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: PrivateKeyOps::point_mul_base
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Point
    signature: 'pub(super) fn point_mul_base(&self, a: &Scalar, cpu: cpu::Features)
      -> Point'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Point::new_at_infinity
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:317,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:320,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:321,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:322,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - p_scalar
    - _cpu
    argTypes:
    - '&Scalar'
    - '&(Elem<R>, Elem<R>)'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 327
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 327
    functionName: PrivateKeyOps::point_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 3
    functionsReached:
    - Point::new_at_infinity
    - as_ptr
    - as_mut_ptr
    linkageType: ''
    returnType: Point
    signature: 'pub(super) fn point_mul(&self,p_scalar: &Scalar,(p_x, p_y): &(Elem<R>,
      Elem<R>),_cpu: cpu::Features,) -> Point'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - q
    - a
    argTypes:
    - '&Modulus<Q>'
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: PrivateKeyOps::elem_inverse_squared
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Elem
    signature: 'pub(super) fn elem_inverse_squared(&self, q: &Modulus<Q>, a: &Elem<R>)
      -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:352,1
    - Dst: untrusted::Input::read_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:353,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:353,1
    - Dst: elem_parse_big_endian_fixed_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:354,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:355,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:356,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:361,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:362,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:363,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - q
    - input
    argTypes:
    - '&Modulus<Q>'
    - '&mut untrusted::Reader'
    constantsTouched: []
    func_position:
      end: 367
      start: 347
    functionDepth: 15
    functionLinenumber: 347
    functionLinenumberEnd: 367
    functionName: PublicKeyOps::elem_parse
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - cpu::features
    - Elem::from
    - as_ptr
    - Ok
    - as_mut_ptr
    - Elem::zero
    - elem_parse_big_endian_fixed_consttime
    - untrusted::Input::read_bytes
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn elem_parse(&self,q: &Modulus<Q>,input: &mut untrusted::Reader,)
      -> Result<Elem<R>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: ScalarOps::scalar_modulus
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - scalar_modulus
    linkageType: ''
    returnType: Modulus
    signature: 'pub(super) fn scalar_modulus(&''static self, cpu_features: cpu::Features)
      -> Modulus<N>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: ScalarOps::scalar_bytes_len
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 3
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn scalar_bytes_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&''s Scalar'
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 4
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: ScalarOps::leak_limbs
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 2
    functionsReached:
    - into
    linkageType: ''
    returnType: '&''s [Limb]'
    signature: 'pub fn leak_limbs<''s>(&self, s: &''s Scalar) -> &''s [Limb]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem::mul_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - _cpu
    argTypes:
    - '&Scalar<EA>'
    - '&Scalar<EB>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 405
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 405
    functionName: ScalarOps::scalar_product
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 2
    functionsReached:
    - elem::mul_mont
    linkageType: ''
    returnType: Scalar
    signature: 'pub(super) fn scalar_product<EA: Encoding, EB: Encoding>(&self,a:
      &Scalar<EA>,b: &Scalar<EB>,_cpu: cpu::Features,) -> Scalar<<(EA, EB) as ProductEncoding>::Output>where(EA,
      EB): ProductEncoding,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 426
    functionName: PublicScalarOps::n
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&PublicElem'
    signature: pub fn n(&self) -> &PublicElem<Unencoded>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&Scalar'
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: PublicScalarOps::scalar_as_elem
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Elem
    signature: 'pub fn scalar_as_elem(&self, a: &Scalar) -> Elem<Unencoded>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:440,1
    - Dst: limbs_less_than_limbs_vartime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:441,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&Elem<Unencoded>'
    - '&PublicElem<Unencoded>'
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 14
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: Modulus::elem_less_than_vartime
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - limbs_less_than_limbs_vartime
    - into
    - Result::unwrap_or_else
    linkageType: ''
    returnType: bool
    signature: 'pub fn elem_less_than_vartime(&self, a: &Elem<Unencoded>, b: &PublicElem<Unencoded>)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - cpu
    argTypes:
    - '&Scalar<Unencoded>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 453
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 453
    functionName: PublicScalarOps::scalar_inv_to_mont_vartime
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Scalar
    signature: 'pub(super) fn scalar_inv_to_mont_vartime(&self,s: &Scalar<Unencoded>,cpu:
      cpu::Features,) -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:466,1
    - Dst: Scalar::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - cpu
    argTypes:
    - '&Scalar<Unencoded>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: PrivateScalarOps::to_mont
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - Scalar::from
    - scalar_product
    linkageType: ''
    returnType: Scalar
    signature: 'pub(super) fn to_mont(&self, s: &Scalar<Unencoded>, cpu: cpu::Features)
      -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrivateScalarOps::to_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a
    - cpu
    argTypes:
    - '&Scalar'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: PrivateScalarOps::scalar_inv_to_mont
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - PrivateScalarOps::to_mont
    linkageType: ''
    returnType: Scalar
    signature: 'pub(super) fn scalar_inv_to_mont(&self, a: &Scalar, cpu: cpu::Features)
      -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&PrivateKeyOps::point_mul_base'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:487,1
    - Dst: '&PrivateKeyOps::point_mul'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:488,1
    - Dst: '&PrivateKeyOps::point_sum'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ops
    - g_scalar
    - p_scalar
    - p_xy
    - cpu
    argTypes:
    - '&PrivateKeyOps'
    - '&Scalar'
    - '&Scalar'
    - '&(Elem<R>, Elem<R>)'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: twin_mul_inefficient
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - '&PrivateKeyOps::point_sum'
    - '&PrivateKeyOps::point_mul_base'
    - '&PrivateKeyOps::point_mul'
    linkageType: ''
    returnType: Point
    signature: 'fn twin_mul_inefficient(ops: &PrivateKeyOps,g_scalar: &Scalar,p_scalar:
      &Scalar,p_xy: &(Elem<R>, Elem<R>),cpu: cpu::Features,) -> Point'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:495,1
    - Dst: limbs_reduce_once
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:497,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - elem
    argTypes:
    - '&Elem<Unencoded>'
    constantsTouched: []
    func_position:
      end: 504
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 504
    functionName: Modulus::elem_reduced_to_scalar
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - limbs_reduce_once
    - into
    - Result::unwrap_or_else
    linkageType: ''
    returnType: Scalar
    signature: 'pub fn elem_reduced_to_scalar(&self, elem: &Elem<Unencoded>) -> Scalar<Unencoded>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&CommonOps::elem_squared'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:516,1
    - Dst: '&CommonOps::elem_square'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:518,1
    - Dst: '&CommonOps::elem_product'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ops
    - a
    - squarings
    - b
    - cpu
    argTypes:
    - '&CommonOps'
    - '&Elem<R>'
    - LeakyWord
    - '&Elem<R>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 521
      start: 508
    functionDepth: 14
    functionLinenumber: 508
    functionLinenumberEnd: 521
    functionName: elem_sqr_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 2
    functionsReached:
    - '&CommonOps::elem_squared'
    - '&CommonOps::elem_square'
    - '&CommonOps::elem_product'
    linkageType: ''
    returnType: Elem
    signature: 'fn elem_sqr_mul(ops: &CommonOps,a: &Elem<R>,squarings: LeakyWord,b:
      &Elem<R>,cpu: cpu::Features,) -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&CommonOps::elem_square'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:533,1
    - Dst: '&CommonOps::elem_mul'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ops
    - acc
    - squarings
    - b
    - cpu
    argTypes:
    - '&CommonOps'
    - '&mut Elem<R>'
    - LeakyWord
    - '&Elem<R>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 536
      start: 524
    functionDepth: 13
    functionLinenumber: 524
    functionLinenumberEnd: 536
    functionName: elem_sqr_mul_acc
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 2
    functionsReached:
    - '&CommonOps::elem_mul'
    - '&CommonOps::elem_square'
    linkageType: ''
    returnType: void
    signature: 'fn elem_sqr_mul_acc(ops: &CommonOps,acc: &mut Elem<R>,squarings: LeakyWord,b:
      &Elem<R>,cpu: cpu::Features,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_big_endian_fixed_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - q
    - bytes
    argTypes:
    - '&Modulus<Q>'
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 16
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: elem_parse_big_endian_fixed_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 4
    functionsReached:
    - parse_big_endian_fixed_consttime
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn elem_parse_big_endian_fixed_consttime(q: &Modulus<Q>,bytes:
      untrusted::Input,) -> Result<Elem<Unencoded>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_big_endian_fixed_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - n
    - bytes
    argTypes:
    - '&Modulus<N>'
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 16
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: scalar_parse_big_endian_fixed_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - parse_big_endian_fixed_consttime
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn scalar_parse_big_endian_fixed_consttime(n: &Modulus<N>,bytes:
      untrusted::Input,) -> Result<Scalar, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:560,1
    - Dst: Scalar::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:561,1
    - Dst: parse_big_endian_in_range_and_pad_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:562,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - n
    - allow_zero
    - bytes
    argTypes:
    - '&Modulus<N>'
    - AllowZero
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 569
      start: 555
    functionDepth: 15
    functionLinenumber: 555
    functionLinenumberEnd: 569
    functionName: scalar_parse_big_endian_variable
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 4
    functionsReached:
    - Scalar::zero
    - parse_big_endian_in_range_and_pad_consttime
    - into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn scalar_parse_big_endian_variable(n: &Modulus<N>,allow_zero:
      AllowZero,bytes: untrusted::Input,) -> Result<Scalar, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:575,1
    - Dst: Scalar::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:576,1
    - Dst: parse_big_endian_and_pad_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:579,1
    - Dst: limbs_reduce_once
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:580,1
    - Dst: Result::unwrap_or_else
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:580,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - n
    - bytes
    argTypes:
    - '&Modulus<N>'
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 585
      start: 571
    functionDepth: 6
    functionLinenumber: 571
    functionLinenumberEnd: 585
    functionName: scalar_parse_big_endian_partially_reduced_variable_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 1
    functionsReached:
    - into
    - Result::unwrap_or_else
    - Ok
    - Scalar::zero
    - parse_big_endian_and_pad_consttime
    - limbs_reduce_once
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn scalar_parse_big_endian_partially_reduced_variable_consttime(n:
      &Modulus<N>,bytes: untrusted::Input,) -> Result<Scalar, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:592,1
    - Dst: Bytes::len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:593,1
    - Dst: bytes_len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:593,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:594,1
    - Dst: elem::Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:596,1
    - Dst: parse_big_endian_in_range_and_pad_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:597,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - m
    - bytes
    - allow_zero
    argTypes:
    - '&Modulus<M>'
    - untrusted::Input
    - AllowZero
    constantsTouched: []
    func_position:
      end: 604
      start: 587
    functionDepth: 15
    functionLinenumber: 587
    functionLinenumberEnd: 604
    functionName: parse_big_endian_fixed_consttime
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 7
    functionsReached:
    - into
    - Err
    - elem::Elem::zero
    - parse_big_endian_in_range_and_pad_consttime
    - Ok
    - Bytes::len
    - bytes_len
    linkageType: ''
    returnType: Result
    signature: 'fn parse_big_endian_fixed_consttime<M>(m: &Modulus<M>,bytes: untrusted::Input,allow_zero:
      AllowZero,) -> Result<elem::Elem<M, Unencoded>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:643,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:643,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:644,1
    - Dst: bool::add_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:645,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ops
    argTypes:
    - '&PublicScalarOps'
    constantsTouched: []
    func_position:
      end: 647
      start: 641
    functionDepth: 15
    functionLinenumber: 641
    functionLinenumberEnd: 647
    functionName: tests::q_minus_n_plus_n_equals_0_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - bool::add_assign
    - cpu::features
    - Elem::from
    - elem_modulus
    linkageType: ''
    returnType: void
    signature: 'fn q_minus_n_plus_n_equals_0_test(ops: &PublicScalarOps)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: q_minus_n_plus_n_equals_0_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 650
    functionDepth: 16
    functionLinenumber: 650
    functionLinenumberEnd: 652
    functionName: tests::p256_q_minus_n_plus_n_equals_0_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - q_minus_n_plus_n_equals_0_test
    linkageType: ''
    returnType: void
    signature: fn p256_q_minus_n_plus_n_equals_0_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: q_minus_n_plus_n_equals_0_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 16
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: tests::p384_q_minus_n_plus_n_equals_0_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - q_minus_n_plus_n_equals_0_test
    linkageType: ''
    returnType: void
    signature: fn p384_q_minus_n_plus_n_equals_0_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_add_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:661,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 665
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 665
    functionName: tests::p256_elem_add_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - elem_add_test
    linkageType: ''
    returnType: void
    signature: fn p256_elem_add_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_add_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:669,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 673
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 673
    functionName: tests::p384_elem_add_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - elem_add_test
    linkageType: ''
    returnType: void
    signature: fn p384_elem_add_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:677,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:677,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:678,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:681,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:682,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:683,1
    - Dst: bool::add_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:686,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:687,1
    - Dst: bool::add_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:690,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:691,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 2
    argNames:
    - ops
    - test_file
    argTypes:
    - '&PublicScalarOps'
    - test::File
    constantsTouched: []
    func_position:
      end: 695
      start: 675
    functionDepth: 15
    functionLinenumber: 675
    functionLinenumberEnd: 695
    functionName: tests::elem_add_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - consume_elem
    - bool::add_assign
    - cpu::features
    - assert_limbs_are_equal
    - Ok
    - elem_modulus
    - test::run
    linkageType: ''
    returnType: void
    signature: 'fn elem_add_test(ops: &PublicScalarOps, test_file: test::File)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_sub_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:705,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 710
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 710
    functionName: tests::p384_elem_sub_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - elem_sub_test
    linkageType: ''
    returnType: void
    signature: fn p384_elem_sub_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static CommonOps::elem_modulus'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:717,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:717,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:718,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:721,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:722,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:723,1
    - Dst: Elem::<R>::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:725,1
    - Dst: elem_sub
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:727,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:728,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:729,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:730,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:733,1
    - Dst: Elem::<R>::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:735,1
    - Dst: elem_sub
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:737,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:738,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:739,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:740,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:743,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 3
    argNames:
    - ops
    - elem_sub
    - test_file
    argTypes:
    - '&''static CommonOps'
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb)'
    - test::File
    constantsTouched: []
    func_position:
      end: 747
      start: 712
    functionDepth: 15
    functionLinenumber: 712
    functionLinenumberEnd: 747
    functionName: tests::elem_sub_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - consume_elem
    - elem_sub
    - cpu::features
    - '&''static CommonOps::elem_modulus'
    - as_ptr
    - assert_limbs_are_equal
    - Ok
    - test::run
    - as_mut_ptr
    - Elem::<R>::zero
    linkageType: ''
    returnType: void
    signature: 'fn elem_sub_test(ops: &''static CommonOps,elem_sub: unsafe extern
      "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb),test_file: test::File,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_div_by_2_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:757,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 762
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 762
    functionName: tests::p384_elem_div_by_2_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - elem_div_by_2_test
    linkageType: ''
    returnType: void
    signature: fn p384_elem_div_by_2_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static CommonOps::elem_modulus'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:769,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:769,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:770,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:773,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:774,1
    - Dst: Elem::<R>::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:776,1
    - Dst: elem_div_by_2
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:778,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:778,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:778,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:780,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 3
    argNames:
    - ops
    - elem_div_by_2
    - test_file
    argTypes:
    - '&''static CommonOps'
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb)'
    - test::File
    constantsTouched: []
    func_position:
      end: 784
      start: 764
    functionDepth: 15
    functionLinenumber: 764
    functionLinenumberEnd: 784
    functionName: tests::elem_div_by_2_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - consume_elem
    - cpu::features
    - '&''static CommonOps::elem_modulus'
    - elem_div_by_2
    - as_ptr
    - assert_limbs_are_equal
    - Ok
    - test::run
    - as_mut_ptr
    - Elem::<R>::zero
    linkageType: ''
    returnType: void
    signature: 'fn elem_div_by_2_test(ops: &''static CommonOps,elem_div_by_2: unsafe
      extern "C" fn(r: *mut Limb, a: *const Limb),test_file: test::File,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_neg_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:793,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 798
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 798
    functionName: tests::p256_elem_neg_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - elem_neg_test
    linkageType: ''
    returnType: void
    signature: fn p256_elem_neg_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_neg_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:805,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 810
    functionName: tests::p384_elem_neg_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - elem_neg_test
    linkageType: ''
    returnType: void
    signature: fn p384_elem_neg_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static CommonOps::elem_modulus'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:817,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:817,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:818,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:821,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:822,1
    - Dst: Elem::<R>::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:826,1
    - Dst: elem_neg
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:828,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:828,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:828,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:830,1
    - Dst: Elem::<R>::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:835,1
    - Dst: elem_neg
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:837,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:837,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:837,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:839,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 3
    argNames:
    - ops
    - elem_neg
    - test_file
    argTypes:
    - '&''static CommonOps'
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb)'
    - test::File
    constantsTouched: []
    func_position:
      end: 844
      start: 812
    functionDepth: 15
    functionLinenumber: 812
    functionLinenumberEnd: 844
    functionName: tests::elem_neg_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - consume_elem
    - cpu::features
    - '&''static CommonOps::elem_modulus'
    - elem_neg
    - as_ptr
    - assert_limbs_are_equal
    - Ok
    - test::run
    - as_mut_ptr
    - Elem::<R>::zero
    linkageType: ''
    returnType: void
    signature: 'fn elem_neg_test(ops: &''static CommonOps,elem_neg: unsafe extern
      "C" fn(r: *mut Limb, a: *const Limb),test_file: test::File,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_mul_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:848,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 852
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 852
    functionName: tests::p256_elem_mul_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - elem_mul_test
    linkageType: ''
    returnType: void
    signature: fn p256_elem_mul_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_mul_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:856,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 860
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 860
    functionName: tests::p384_elem_mul_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - elem_mul_test
    linkageType: ''
    returnType: void
    signature: fn p384_elem_mul_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static CommonOps::elem_modulus'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:863,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:863,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:864,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:867,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:868,1
    - Dst: consume_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:869,1
    - Dst: bool::elem_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:870,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:871,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - ops
    - test_file
    argTypes:
    - '&''static CommonOps'
    - test::File
    constantsTouched: []
    func_position:
      end: 875
      start: 862
    functionDepth: 15
    functionLinenumber: 862
    functionLinenumberEnd: 875
    functionName: tests::elem_mul_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - consume_elem
    - cpu::features
    - '&''static CommonOps::elem_modulus'
    - assert_limbs_are_equal
    - Ok
    - test::run
    - bool::elem_mul
    linkageType: ''
    returnType: void
    signature: 'fn elem_mul_test(ops: &''static CommonOps, test_file: test::File)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_mul_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:879,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 883
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 883
    functionName: tests::p256_scalar_mul_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - scalar_mul_test
    - test_vector_file
    linkageType: ''
    returnType: void
    signature: fn p256_scalar_mul_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_mul_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:887,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 891
    functionName: tests::p384_scalar_mul_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - scalar_mul_test
    - test_vector_file
    linkageType: ''
    returnType: void
    signature: fn p384_scalar_mul_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:894,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:896,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:897,1
    - Dst: consume_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:899,1
    - Dst: consume_scalar_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:900,1
    - Dst: consume_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:901,1
    - Dst: '&ScalarOps::scalar_product'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:902,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:903,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - ops
    - test_file
    argTypes:
    - '&ScalarOps'
    - test::File
    constantsTouched: []
    func_position:
      end: 907
      start: 893
    functionDepth: 15
    functionLinenumber: 893
    functionLinenumberEnd: 907
    functionName: tests::scalar_mul_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - cpu::features
    - '&ScalarOps::scalar_product'
    - assert_limbs_are_equal
    - Ok
    - consume_scalar_mont
    - test::run
    - scalar_modulus
    - consume_scalar
    linkageType: ''
    returnType: void
    signature: 'fn scalar_mul_test(ops: &ScalarOps, test_file: test::File)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_square_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:914,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 919
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 919
    functionName: tests::p256_scalar_square_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - scalar_square_test
    linkageType: ''
    returnType: void
    signature: fn p256_scalar_square_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:929,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:931,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:932,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:934,1
    - Dst: consume_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:935,1
    - Dst: consume_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:936,1
    - Dst: sqr_rep
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:945,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:945,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:945,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:947,1
    - Dst: '&ScalarOps::scalar_product'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:951,1
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:952,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 3
    argNames:
    - ops
    - sqr_rep
    - test_file
    argTypes:
    - '&ScalarOps'
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb, rep: LeakyWord)'
    - test::File
    constantsTouched: []
    func_position:
      end: 957
      start: 924
    functionDepth: 15
    functionLinenumber: 924
    functionLinenumberEnd: 957
    functionName: tests::scalar_square_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - sqr_rep
    - cpu::features
    - as_ptr
    - assert_limbs_are_equal
    - '&ScalarOps::scalar_product'
    - Ok
    - test::run
    - as_mut_ptr
    - scalar_modulus
    - consume_scalar
    linkageType: ''
    returnType: void
    signature: 'fn scalar_square_test(ops: &ScalarOps,sqr_rep: unsafe extern "C" fn(r:
      *mut Limb, a: *const Limb, rep: LeakyWord),test_file: test::File,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_inv_to_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:962,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 963
      start: 961
    functionDepth: 15
    functionLinenumber: 961
    functionLinenumberEnd: 963
    functionName: tests::p256_scalar_inv_to_mont_zero_panic_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - cpu::features
    - scalar_inv_to_mont
    linkageType: ''
    returnType: void
    signature: fn p256_scalar_inv_to_mont_zero_panic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_inv_to_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:968,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 969
      start: 967
    functionDepth: 15
    functionLinenumber: 967
    functionLinenumberEnd: 969
    functionName: tests::p384_scalar_inv_to_mont_zero_panic_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - cpu::features
    - scalar_inv_to_mont
    linkageType: ''
    returnType: void
    signature: fn p384_scalar_inv_to_mont_zero_panic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_sum_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:973,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 977
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 977
    functionName: tests::p256_point_sum_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_sum_test
    linkageType: ''
    returnType: void
    signature: fn p256_point_sum_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_sum_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:981,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 985
    functionName: tests::p384_point_sum_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_sum_test
    linkageType: ''
    returnType: void
    signature: fn p384_point_sum_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:988,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:990,1
    - Dst: consume_jacobian_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:993,1
    - Dst: consume_jacobian_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:994,1
    - Dst: consume_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:995,1
    - Dst: '&PrivateKeyOps::point_sum'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:997,1
    - Dst: assert_point_actual_equals_expected
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:998,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - ops
    - test_file
    argTypes:
    - '&PrivateKeyOps'
    - test::File
    constantsTouched: []
    func_position:
      end: 1002
      start: 987
    functionDepth: 15
    functionLinenumber: 987
    functionLinenumberEnd: 1002
    functionName: tests::point_sum_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - consume_point
    - cpu::features
    - consume_jacobian_point
    - Ok
    - assert_point_actual_equals_expected
    - test::run
    - '&PrivateKeyOps::point_sum'
    linkageType: ''
    returnType: void
    signature: 'fn point_sum_test(ops: &PrivateKeyOps, test_file: test::File)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_sum_mixed_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1013,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1018
    functionName: tests::p256_point_sum_mixed_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_sum_mixed_test
    linkageType: ''
    returnType: void
    signature: fn p256_point_sum_mixed_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1031,1
    - Dst: consume_jacobian_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1034,1
    - Dst: consume_affine_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1035,1
    - Dst: consume_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1036,1
    - Dst: Point::new_at_infinity
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1038,1
    - Dst: point_add_affine
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1040,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1040,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1040,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1040,1
    - Dst: assert_point_actual_equals_expected
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1043,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - ops
    - point_add_affine
    - test_file
    argTypes:
    - '&PrivateKeyOps'
    - "unsafe extern \"C\" fn(\n            r: *mut Limb,   // [ops.num_limbs*3]\n\
      \            a: *const Limb, // [ops.num_limbs*3]\n            b: *const Limb,\
      \ // [ops.num_limbs*2]\n        )"
    - test::File
    constantsTouched: []
    func_position:
      end: 1047
      start: 1022
    functionDepth: 13
    functionLinenumber: 1022
    functionLinenumberEnd: 1047
    functionName: tests::point_sum_mixed_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - consume_point
    - Point::new_at_infinity
    - point_add_affine
    - as_ptr
    - consume_affine_point
    - consume_jacobian_point
    - Ok
    - assert_point_actual_equals_expected
    - test::run
    - as_mut_ptr
    linkageType: ''
    returnType: void
    signature: 'fn point_sum_mixed_test(ops: &PrivateKeyOps,point_add_affine: unsafe
      extern "C" fn(r: *mut Limb,   // [ops.num_limbs*3]a: *const Limb, // [ops.num_limbs*3]b:
      *const Limb, // [ops.num_limbs*2]),test_file: test::File,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_double_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1057,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1062
    functionName: tests::p256_point_double_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_double_test
    linkageType: ''
    returnType: void
    signature: fn p256_point_double_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_double_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1072,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1065
    functionDepth: 2
    functionLinenumber: 1065
    functionLinenumberEnd: 1077
    functionName: tests::p384_point_double_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_double_test
    linkageType: ''
    returnType: void
    signature: fn p384_point_double_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1087,1
    - Dst: consume_jacobian_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1090,1
    - Dst: consume_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1091,1
    - Dst: Point::new_at_infinity
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1093,1
    - Dst: point_double
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1095,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1095,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1095,1
    - Dst: assert_point_actual_equals_expected
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1098,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - ops
    - point_double
    - test_file
    argTypes:
    - '&PrivateKeyOps'
    - "unsafe extern \"C\" fn(\n            r: *mut Limb,   // [ops.num_limbs*3]\n\
      \            a: *const Limb, // [ops.num_limbs*3]\n        )"
    - test::File
    constantsTouched: []
    func_position:
      end: 1102
      start: 1079
    functionDepth: 13
    functionLinenumber: 1079
    functionLinenumberEnd: 1102
    functionName: tests::point_double_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - consume_point
    - Point::new_at_infinity
    - point_double
    - as_ptr
    - consume_jacobian_point
    - Ok
    - assert_point_actual_equals_expected
    - test::run
    - as_mut_ptr
    linkageType: ''
    returnType: void
    signature: 'fn point_double_test(ops: &PrivateKeyOps,point_double: unsafe extern
      "C" fn(r: *mut Limb,   // [ops.num_limbs*3]a: *const Limb, // [ops.num_limbs*3]),test_file:
      test::File,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1108,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1109,1
    - Dst: point_mul_base_tests
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1111,1
    - Dst: point_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1113,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1106
    functionDepth: 16
    functionLinenumber: 1106
    functionLinenumberEnd: 1116
    functionName: tests::p256_point_mul_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_mul
    - Elem::from
    - point_mul_base_tests
    linkageType: ''
    returnType: void
    signature: fn p256_point_mul_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1122,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1123,1
    - Dst: point_mul_base_tests
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1126,1
    - Dst: point_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1128,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1120
    functionDepth: 16
    functionLinenumber: 1120
    functionLinenumberEnd: 1131
    functionName: tests::p384_point_mul_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_mul
    - Elem::from
    - point_mul_base_tests
    linkageType: ''
    returnType: void
    signature: fn p384_point_mul_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_mul_serialized_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1135,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1140
    functionName: tests::p256_point_mul_serialized_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_mul_serialized_test
    linkageType: ''
    returnType: void
    signature: fn p256_point_mul_serialized_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1147,1
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1149,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1150,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1151,1
    - Dst: consume_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1153,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1155,1
    - Dst: super::super::public_key::parse_uncompressed_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1156,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1159,1
    - Dst: Result::expect
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1156,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1163,1
    - Dst: '&PrivateKeyOps::point_mul'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1165,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1165,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1169,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1169,1
    - Dst: super::super::private_key::big_endian_affine_from_jacobian
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1170,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1174,1
    - Dst: Result::expect
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1170,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 3
    argNames:
    - priv_ops
    - pub_ops
    - test_file
    argTypes:
    - '&PrivateKeyOps'
    - '&PublicKeyOps'
    - test::File
    constantsTouched: []
    func_position:
      end: 1184
      start: 1142
    functionDepth: 15
    functionLinenumber: 1142
    functionLinenumberEnd: 1184
    functionName: tests::point_mul_serialized_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - super::super::private_key::big_endian_affine_from_jacobian
    - Option::consume_bytes
    - super::super::public_key::parse_uncompressed_point
    - cpu::features
    - Some
    - untrusted::Input::from
    - Ok
    - elem_modulus
    - test::run
    - '&PrivateKeyOps::point_mul'
    - scalar_modulus
    - consume_scalar
    - Result::expect
    - split_at_mut
    - len
    linkageType: ''
    returnType: void
    signature: 'fn point_mul_serialized_test(priv_ops: &PrivateKeyOps,pub_ops: &PublicKeyOps,test_file:
      test::File,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_mul_base_tests
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1188,1
    - Dst: point_mul_base
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1190,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1187
    functionDepth: 16
    functionLinenumber: 1187
    functionLinenumberEnd: 1193
    functionName: tests::p256_point_mul_base_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_mul_base
    - point_mul_base_tests
    linkageType: ''
    returnType: void
    signature: fn p256_point_mul_base_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_mul_base_tests
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1197,1
    - Dst: point_mul_base
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1199,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1196
    functionDepth: 16
    functionLinenumber: 1196
    functionLinenumberEnd: 1202
    functionName: tests::p384_point_mul_base_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_mul_base
    - point_mul_base_tests
    linkageType: ''
    returnType: void
    signature: fn p384_point_mul_base_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1209,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1210,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1211,1
    - Dst: consume_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1213,1
    - Dst: consume_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1214,1
    - Dst: assert_point_actual_equals_expected
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1216,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - ops
    - f
    - test_file
    argTypes:
    - '&PrivateKeyOps'
    - impl Fn(&Scalar, cpu::Features) -> Point
    - test::File
    constantsTouched: []
    func_position:
      end: 1219
      start: 1204
    functionDepth: 15
    functionLinenumber: 1204
    functionLinenumberEnd: 1219
    functionName: tests::point_mul_base_tests
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - consume_point
    - cpu::features
    - Ok
    - assert_point_actual_equals_expected
    - test::run
    - scalar_modulus
    - consume_scalar
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn point_mul_base_tests(ops: &PrivateKeyOps,f: impl Fn(&Scalar,
      cpu::Features) -> Point,test_file: test::File,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1228,1
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1231,1
    - Dst: bool::point_x
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1232,1
    - Dst: bool::point_y
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1233,1
    - Dst: bool::point_z
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1234,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1237,1
    - Dst: assert_elems_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1238,1
    - Dst: '&PrivateKeyOps::elem_inverse_squared'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1241,1
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1242,1
    - Dst: bool::elem_squared
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1244,1
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1245,1
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1246,1
    - Dst: Elem::convert
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1249,1
    - Dst: convert
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1250,1
    - Dst: assert_elems_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1252,1
    - Dst: assert_elems_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 3
    argNames:
    - ops
    - actual_point
    - expected_point
    argTypes:
    - '&PrivateKeyOps'
    - '&Point'
    - '&TestPoint<E>'
    constantsTouched: []
    func_position:
      end: 1256
      start: 1221
    functionDepth: 15
    functionLinenumber: 1221
    functionLinenumberEnd: 1256
    functionName: tests::assert_point_actual_equals_expected
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - convert
    - Elem::convert
    - cpu::features
    - bool::point_x
    - bool::point_z
    - bool::elem_squared
    - bool::point_y
    - '&PrivateKeyOps::elem_inverse_squared'
    - elem_modulus
    - assert_elems_are_equal
    - bool::elem_product
    - Elem::zero
    linkageType: ''
    returnType: void
    signature: 'fn assert_point_actual_equals_expected<E: Encoding>(ops: &PrivateKeyOps,actual_point:
      &Point,expected_point: &TestPoint<E>,) whereElem<R>: Convert<E>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1263,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1263,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1264,1
    - Dst: untrusted::Input::split
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1265,1
    - Dst: split(", ").collect::<Vec<&str>>
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1265,1
    - Dst: Point::new_at_infinity
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1267,1
    - Dst: consume_point_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1268,1
    - Dst: consume_point_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1269,1
    - Dst: consume_point_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 3
    argNames:
    - ops
    - test_case
    - name
    argTypes:
    - '&PrivateKeyOps'
    - '&mut test::TestCase'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1272
      start: 1258
    functionDepth: 15
    functionLinenumber: 1258
    functionLinenumberEnd: 1272
    functionName: tests::consume_jacobian_point
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - split(", ").collect::<Vec<&str>>
    - Point::new_at_infinity
    - cpu::features
    - untrusted::Input::split
    - elem_modulus
    - Option::consume_string
    - consume_point_elem
    linkageType: ''
    returnType: Point
    signature: 'fn consume_jacobian_point(ops: &PrivateKeyOps,test_case: &mut test::TestCase,name:
      &str,) -> Point'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1283,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1283,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1284,1
    - Dst: untrusted::Input::split
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1285,1
    - Dst: split(", ").collect::<Vec<&str>>
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1285,1
    - Dst: consume_point_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1290,1
    - Dst: consume_point_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 3
    argNames:
    - ops
    - test_case
    - name
    argTypes:
    - '&PrivateKeyOps'
    - '&mut test::TestCase'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1293
      start: 1278
    functionDepth: 15
    functionLinenumber: 1278
    functionLinenumberEnd: 1293
    functionName: tests::consume_affine_point
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - split(", ").collect::<Vec<&str>>
    - cpu::features
    - untrusted::Input::split
    - elem_modulus
    - Option::consume_string
    - consume_point_elem
    linkageType: ''
    returnType: AffinePoint
    signature: 'fn consume_affine_point(ops: &PrivateKeyOps,test_case: &mut test::TestCase,name:
      &str,) -> AffinePoint'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1296,1
    - Dst: test::from_hex
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1297,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1297,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1298,1
    - Dst: elem_parse_big_endian_fixed_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1299,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1299,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 4
    argNames:
    - q
    - limbs_out
    - elems
    - i
    argTypes:
    - '&Modulus<Q>'
    - '&mut [Limb]'
    - '&[&str]'
    - usize
    constantsTouched: []
    func_position:
      end: 1302
      start: 1295
    functionDepth: 16
    functionLinenumber: 1295
    functionLinenumberEnd: 1302
    functionName: tests::consume_point_elem
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - into
    - untrusted::Input::from
    - test::from_hex
    - Result::unwrap
    - copy_from_slice
    - elem_parse_big_endian_fixed_consttime
    linkageType: ''
    returnType: void
    signature: 'fn consume_point_elem(q: &Modulus<Q>, limbs_out: &mut [Limb], elems:
      &[&str], i: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::from_hex
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1316,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1316,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1317,1
    - Dst: elem_parse_big_endian_fixed_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1319,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - q
    - elems
    - i
    argTypes:
    - '&Modulus<Q>'
    - '&[&str]'
    - usize
    constantsTouched: []
    func_position:
      end: 1326
      start: 1315
    functionDepth: 16
    functionLinenumber: 1315
    functionLinenumberEnd: 1326
    functionName: t::e::s::t::s::::::::c::o::n::s::u::m::e::_::p::o::i::n::t::consume_point_elem
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - elem_parse_big_endian_fixed_consttime
    - untrusted::Input::from
    - test::from_hex
    - Result::unwrap
    linkageType: ''
    returnType: Elem
    signature: 'fn consume_point_elem<E: Encoding>(q: &Modulus<Q>, elems: &[&str],
      i: usize) -> Elem<E>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1314,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1314,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1328,1
    - Dst: untrusted::Input::split
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1332,1
    - Dst: split(", ").collect::<Vec<&str>>
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1332,1
    - Dst: consume_point_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1334,1
    - Dst: consume_point_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1335,1
    - Dst: TestPoint::Affine
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 3
    argNames:
    - ops
    - test_case
    - name
    argTypes:
    - '&PrivateKeyOps'
    - '&mut test::TestCase'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1337
      start: 1309
    functionDepth: 15
    functionLinenumber: 1309
    functionLinenumberEnd: 1337
    functionName: tests::consume_point
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - split(", ").collect::<Vec<&str>>
    - TestPoint::Affine
    - cpu::features
    - untrusted::Input::split
    - elem_modulus
    - Option::consume_string
    - consume_point_elem
    linkageType: ''
    returnType: TestPoint
    signature: 'fn consume_point<E: Encoding>(ops: &PrivateKeyOps,test_case: &mut
      test::TestCase,name: &str,) -> TestPoint<E>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert_limbs_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - q
    - a
    - b
    argTypes:
    - '&Modulus<Q>'
    - '&Elem<E>'
    - '&Elem<E>'
    constantsTouched: []
    func_position:
      end: 1341
      start: 1339
    functionDepth: 5
    functionLinenumber: 1339
    functionLinenumberEnd: 1341
    functionName: tests::assert_elems_are_equal
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - assert_limbs_are_equal
    linkageType: ''
    returnType: void
    signature: 'fn assert_elems_are_equal<E: Encoding>(q: &Modulus<Q>, a: &Elem<E>,
      b: &Elem<E>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1348,1
    - Dst: alloc::string::String::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1350,1
    - Dst: alloc::string::String::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1351,1
    - Dst: Self::push_str
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1355,1
    - Dst: Self::push_str
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - ops
    - actual
    - expected
    argTypes:
    - '&CommonOps'
    - '&[Limb; elem::NumLimbs::MAX]'
    - '&[Limb; elem::NumLimbs::MAX]'
    constantsTouched: []
    func_position:
      end: 1364
      start: 1343
    functionDepth: 4
    functionLinenumber: 1343
    functionLinenumberEnd: 1364
    functionName: tests::assert_limbs_are_equal
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - alloc::string::String::new
    - into
    - Self::push_str
    linkageType: ''
    returnType: void
    signature: 'fn assert_limbs_are_equal(ops: &CommonOps,actual: &[Limb; elem::NumLimbs::MAX],expected:
      &[Limb; elem::NumLimbs::MAX],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1382,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1383,1
    - Dst: scalar_parse_big_endian_variable
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1384,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - n
    - test_case
    - name
    argTypes:
    - '&Modulus<N>'
    - '&mut test::TestCase'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1385
      start: 1381
    functionDepth: 15
    functionLinenumber: 1381
    functionLinenumberEnd: 1385
    functionName: tests::consume_scalar
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - scalar_parse_big_endian_variable
    - untrusted::Input::from
    - Result::unwrap
    linkageType: ''
    returnType: Scalar
    signature: 'fn consume_scalar(n: &Modulus<N>, test_case: &mut test::TestCase,
      name: &str) -> Scalar'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1392,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1393,1
    - Dst: scalar_parse_big_endian_variable
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1394,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - n
    - test_case
    - name
    argTypes:
    - '&Modulus<N>'
    - '&mut test::TestCase'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1401
      start: 1387
    functionDepth: 15
    functionLinenumber: 1387
    functionLinenumberEnd: 1401
    functionName: tests::consume_scalar_mont
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - scalar_parse_big_endian_variable
    - untrusted::Input::from
    - Result::unwrap
    linkageType: ''
    returnType: Scalar
    signature: 'fn consume_scalar_mont(n: &Modulus<N>,test_case: &mut test::TestCase,name:
      &str,) -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:28,1
    - Dst: generate_private_scalar_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:29,1
    - Dst: cpu
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:29,1
    - Dst: scalar_from_big_endian_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ops
    - n
    - rng
    argTypes:
    - '&PrivateKeyOps'
    - '&Modulus<N>'
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 20
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: random_scalar
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs
    functionUses: 1
    functionsReached:
    - generate_private_scalar_bytes
    - cpu
    - scalar_from_big_endian_bytes
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn random_scalar(ops: &PrivateKeyOps,n: &Modulus<N>,rng:
      &dyn rand::SecureRandom,) -> Result<Scalar, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&dyn rand::SecureRandom::fill'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:68,1
    - Dst: check_scalar_big_endian_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:71,1
    - Dst: Result::is_err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:71,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:78,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ops
    - rng
    - out
    - cpu
    argTypes:
    - '&PrivateKeyOps'
    - '&dyn rand::SecureRandom'
    - '&mut [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 82
      start: 33
    functionDepth: 19
    functionLinenumber: 33
    functionLinenumberEnd: 82
    functionName: generate_private_scalar_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs
    functionUses: 2
    functionsReached:
    - check_scalar_big_endian_bytes
    - '&dyn rand::SecureRandom::fill'
    - Err
    - Result::is_err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn generate_private_scalar_bytes(ops: &PrivateKeyOps,rng:
      &dyn rand::SecureRandom,out: &mut [u8],cpu: cpu::Features,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_from_big_endian_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:91,1
    - Dst: Result::bytes_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:91,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - n
    - private_key
    argTypes:
    - '&Modulus<N>'
    - '&ec::Seed'
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 18
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: private_key_as_scalar
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs
    functionUses: 3
    functionsReached:
    - scalar_from_big_endian_bytes
    - Result::bytes_less_safe
    - Result::unwrap
    linkageType: ''
    returnType: Scalar
    signature: 'pub(super) fn private_key_as_scalar(n: &Modulus<N>, private_key: &ec::Seed)
      -> Scalar'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:100,1
    - Dst: scalar_from_big_endian_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:101,1
    - Dst: Result::map
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - ops
    - bytes
    - cpu
    argTypes:
    - '&PrivateKeyOps'
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 18
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: check_scalar_big_endian_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs
    functionUses: 2
    functionsReached:
    - scalar_modulus
    - scalar_from_big_endian_bytes
    - Result::map
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn check_scalar_big_endian_bytes(ops: &PrivateKeyOps,bytes:
      &[u8],cpu: cpu::Features,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_parse_big_endian_fixed_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:128,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - bytes
    argTypes:
    - '&Modulus<N>'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 129
      start: 109
    functionDepth: 17
    functionLinenumber: 109
    functionLinenumberEnd: 129
    functionName: scalar_from_big_endian_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs
    functionUses: 3
    functionsReached:
    - scalar_parse_big_endian_fixed_consttime
    - untrusted::Input::from
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn scalar_from_big_endian_bytes(n: &Modulus<N>,bytes: &[u8],)
      -> Result<Scalar, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:137,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:138,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:140,1
    - Dst: private_key_as_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:141,1
    - Dst: '&PrivateKeyOps::point_mul_base'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:142,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:144,1
    - Dst: big_endian_affine_from_jacobian
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:148,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 4
    argNames:
    - ops
    - public_out
    - my_private_key
    - cpu
    argTypes:
    - '&PrivateKeyOps'
    - '&mut [u8]'
    - '&ec::Seed'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 149
      start: 131
    functionDepth: 19
    functionLinenumber: 131
    functionLinenumberEnd: 149
    functionName: public_from_private
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs
    functionUses: 2
    functionsReached:
    - Some
    - '&PrivateKeyOps::point_mul_base'
    - private_key_as_scalar
    - elem_modulus
    - big_endian_affine_from_jacobian
    - scalar_modulus
    - split_at_mut
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn public_from_private(ops: &PrivateKeyOps,public_out:
      &mut [u8],my_private_key: &ec::Seed,cpu: cpu::Features,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::point_z
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:156,1
    - Dst: bool::point_x
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:164,1
    - Dst: bool::point_y
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:165,1
    - Dst: '&PrivateKeyOps::elem_inverse_squared'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:167,1
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:169,1
    - Dst: bool::elem_squared
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:174,1
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:175,1
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:176,1
    - Dst: super::verify_affine_point_is_on_the_curve
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:182,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 3
    argNames:
    - ops
    - q
    - p
    argTypes:
    - '&PrivateKeyOps'
    - '&Modulus<Q>'
    - '&Point'
    constantsTouched: []
    func_position:
      end: 185
      start: 151
    functionDepth: 14
    functionLinenumber: 151
    functionLinenumberEnd: 185
    functionName: affine_from_jacobian
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs
    functionUses: 5
    functionsReached:
    - super::verify_affine_point_is_on_the_curve
    - bool::point_x
    - bool::point_z
    - bool::elem_squared
    - '&PrivateKeyOps::elem_inverse_squared'
    - bool::point_y
    - Ok
    - bool::elem_product
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn affine_from_jacobian(ops: &PrivateKeyOps,q: &Modulus<Q>,p:
      &Point,) -> Result<(Elem<R>, Elem<R>), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: affine_from_jacobian
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:194,1
    - Dst: bool::elem_unencoded
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:195,1
    - Dst: limb::big_endian_from_limbs
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:196,1
    - Dst: '&PrivateKeyOps::leak_limbs'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:196,1
    - Dst: bool::elem_unencoded
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:198,1
    - Dst: limb::big_endian_from_limbs
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:199,1
    - Dst: '&PrivateKeyOps::leak_limbs'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:199,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 5
    argNames:
    - ops
    - q
    - x_out
    - y_out
    - p
    argTypes:
    - '&PrivateKeyOps'
    - '&Modulus<Q>'
    - '&mut [u8]'
    - Option<&mut [u8]>
    - '&Point'
    constantsTouched: []
    func_position:
      end: 203
      start: 187
    functionDepth: 15
    functionLinenumber: 187
    functionLinenumberEnd: 203
    functionName: big_endian_affine_from_jacobian
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs
    functionUses: 3
    functionsReached:
    - limb::big_endian_from_limbs
    - '&PrivateKeyOps::leak_limbs'
    - affine_from_jacobian
    - Ok
    - bool::elem_unencoded
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn big_endian_affine_from_jacobian(ops: &PrivateKeyOps,q:
      &Modulus<Q>,x_out: &mut [u8],y_out: Option<&mut [u8]>,p: &Point,) -> Result<(),
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::read_all
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:38,1
    - Dst: untrusted::Input::read_byte
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:40,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:42,1
    - Dst: '&PublicKeyOps::elem_parse'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:47,1
    - Dst: '&PublicKeyOps::elem_parse'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:48,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:49,1
    - Dst: super::verify_affine_point_is_on_the_curve
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:55,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - ops
    - q
    - input
    argTypes:
    - '&PublicKeyOps'
    - '&Modulus<Q>'
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 66
      start: 29
    functionDepth: 16
    functionLinenumber: 29
    functionLinenumberEnd: 66
    functionName: parse_uncompressed_point
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs
    functionUses: 4
    functionsReached:
    - super::verify_affine_point_is_on_the_curve
    - untrusted::Input::read_byte
    - Err
    - Ok
    - untrusted::Input::read_all
    - '&PublicKeyOps::elem_parse'
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn parse_uncompressed_point(ops: &PublicKeyOps,q: &Modulus<Q>,input:
      untrusted::Input,) -> Result<(Elem<R>, Elem<R>), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:76,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:77,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:78,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:82,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:84,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:85,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:86,1
    - Dst: public_key_ops_from_curve_name
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:88,1
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:89,1
    - Dst: parse_uncompressed_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:91,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 75
    functionDepth: 15
    functionLinenumber: 75
    functionLinenumberEnd: 100
    functionName: tests::parse_uncompressed_point_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - cpu::features
    - test_vector_file
    - untrusted::Input::from
    - Ok
    - elem_modulus
    - parse_uncompressed_point
    - test::run
    - Option::consume_string
    - public_key_ops_from_curve_name
    linkageType: ''
    returnType: void
    signature: fn parse_uncompressed_point_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - curve_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: tests::public_key_ops_from_curve_name
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static PublicKeyOps'
    signature: 'fn public_key_ops_from_curve_name(curve_name: &str) -> &''static PublicKeyOps'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec::suite_b::private_key::check_scalar_big_endian_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/curve.rs:29,1
    - Dst: ec::suite_b::private_key::generate_private_scalar_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/curve.rs:37,1
    - Dst: ec::suite_b::private_key::public_from_private
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/curve.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 73
    functionName: suite_b_curve
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/curve.rs
    functionUses: 0
    functionsReached:
    - ec::suite_b::private_key::public_from_private
    - ec::suite_b::private_key::generate_private_scalar_bytes
    - ec::suite_b::private_key::check_scalar_big_endian_bytes
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:61,1
    - Dst: bool::cpu
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - q
    - a
    - squarings
    - b
    argTypes:
    - '&Modulus<Q>'
    - '&Elem<R>'
    - LeakyWord
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 15
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: p::2::5::6::_::e::l::e::m::_::i::n::v::_::s::q::u::a::r::e::d::sqr_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - elem_sqr_mul
    - bool::cpu
    linkageType: ''
    returnType: Elem
    signature: 'fn sqr_mul(q: &Modulus<Q>, a: &Elem<R>, squarings: LeakyWord, b: &Elem<R>)
      -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::elem_sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:66,1
    - Dst: bool::cpu
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - q
    - a
    - squarings
    - b
    argTypes:
    - '&Modulus<Q>'
    - '&mut Elem<R>'
    - LeakyWord
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 14
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: p::2::5::6::_::e::l::e::m::_::i::n::v::_::s::q::u::a::r::e::d::sqr_mul_acc
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - bool::cpu
    - super::elem_sqr_mul_acc
    linkageType: ''
    returnType: void
    signature: 'fn sqr_mul_acc(q: &Modulus<Q>, a: &mut Elem<R>, squarings: LeakyWord,
      b: &Elem<R>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:70,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:71,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:72,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:73,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:74,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:75,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:76,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:79,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:82,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:85,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:88,1
    - Dst: bool::elem_square
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:91,1
    - Dst: bool::elem_square
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 2
    argNames:
    - q
    - a
    argTypes:
    - '&Modulus<Q>'
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 95
      start: 52
    functionDepth: 15
    functionLinenumber: 52
    functionLinenumberEnd: 95
    functionName: p256_elem_inv_squared
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - bool::elem_square
    - sqr_mul
    - sqr_mul_acc
    linkageType: ''
    returnType: Elem
    signature: 'fn p256_elem_inv_squared(q: &Modulus<Q>, a: &Elem<R>) -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Point::new_at_infinity
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:105,1
    - Dst: p256_point_mul_base
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:107,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:107,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - g_scalar
    - _cpu
    argTypes:
    - '&Scalar'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: p256_point_mul_base_impl
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - Point::new_at_infinity
    - p256_point_mul_base
    - as_ptr
    - as_mut_ptr
    linkageType: ''
    returnType: Point
    signature: 'fn p256_point_mul_base_impl(g_scalar: &Scalar, _cpu: cpu::Features)
      -> Point'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_mul_base_vartime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:155,1
    - Dst: point_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:156,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:156,1
    - Dst: point_sum
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - g_scalar
    - p_scalar
    - p_xy
    - cpu
    argTypes:
    - '&Scalar'
    - '&Scalar'
    - '&(Elem<R>, Elem<R>)'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 15
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: twin_mul_nistz256
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - point_mul_base_vartime
    - cpu::features
    - point_sum
    - point_mul
    linkageType: ''
    returnType: Point
    signature: 'fn twin_mul_nistz256(g_scalar: &Scalar,p_scalar: &Scalar,p_xy: &(Elem<R>,
      Elem<R>),cpu: cpu::Features,) -> Point'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Point::new_at_infinity
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:170,1
    - Dst: p256_point_mul_base_vartime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:172,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:172,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - g_scalar
    - _cpu
    argTypes:
    - '&Scalar'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 175
    functionName: point_mul_base_vartime
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 2
    functionsReached:
    - p256_point_mul_base_vartime
    - Point::new_at_infinity
    - as_ptr
    - as_mut_ptr
    linkageType: ''
    returnType: Point
    signature: 'fn point_mul_base_vartime(g_scalar: &Scalar, _cpu: cpu::Features)
      -> Point'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 'super::

        elem::binary_op'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&Scalar<R>'
    - '&Scalar<R>'
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: p::2::5::6::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - 'super::

      elem::binary_op'
    linkageType: ''
    returnType: Scalar
    signature: 'fn mul(a: &Scalar<R>, b: &Scalar<R>) -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Scalar::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:204,1
    - Dst: p256_scalar_sqr_rep_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:205,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:205,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&Scalar<R>'
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: p::2::5::6::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - Scalar::zero
    - p256_scalar_sqr_rep_mont
    - as_ptr
    - as_mut_ptr
    linkageType: ''
    returnType: Scalar
    signature: 'fn sqr(a: &Scalar<R>) -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Scalar::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:212,1
    - Dst: p256_scalar_sqr_rep_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:213,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:213,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:213,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - a
    - squarings
    - b
    argTypes:
    - '&Scalar<R>'
    - LeakyWord
    - '&Scalar<R>'
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 15
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: p::2::5::6::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - mul
    - as_ptr
    - Scalar::zero
    - p256_scalar_sqr_rep_mont
    - as_mut_ptr
    linkageType: ''
    returnType: Scalar
    signature: 'fn sqr_mul(a: &Scalar<R>, squarings: LeakyWord, b: &Scalar<R>) ->
      Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p256_scalar_sqr_rep_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:220,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:220,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:220,1
    - Dst: 'super::

        elem::binary_op_assign'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - acc
    - squarings
    - b
    argTypes:
    - '&mut Scalar<R>'
    - LeakyWord
    - '&Scalar<R>'
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: p::2::5::6::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mul_acc
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - 'super::

      elem::binary_op_assign'
    - p256_scalar_sqr_rep_mont
    - as_ptr
    - as_mut_ptr
    linkageType: ''
    returnType: void
    signature: 'fn sqr_mul_acc(acc: &mut Scalar<R>, squarings: LeakyWord, b: &Scalar<R>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:226,1
    - Dst: sqr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:227,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:228,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:229,1
    - Dst: sqr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:231,1
    - Dst: sqr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:232,1
    - Dst: sqr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:233,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:235,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:236,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:237,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:238,1
    - Dst: sqr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:239,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:240,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:241,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:242,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:243,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:244,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:246,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:247,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:248,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:251,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:254,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:261,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:262,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:263,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:264,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:265,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:266,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:267,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:268,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:269,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:270,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:271,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:272,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:273,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:274,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:275,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:276,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:277,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:278,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 188
    argCount: 2
    argNames:
    - a
    - _cpu
    argTypes:
    - Scalar<R>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 282
      start: 187
    functionDepth: 15
    functionLinenumber: 187
    functionLinenumberEnd: 282
    functionName: p256_scalar_inv_to_mont
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - sqr_mul
    - sqr_mul_acc
    - mul
    - sqr
    linkageType: ''
    returnType: Scalar
    signature: 'fn p256_scalar_inv_to_mont(a: Scalar<R>, _cpu: cpu::Features) -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: point_mul_base_tests
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:328,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 16
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: tests::p256_point_mul_base_vartime_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
    functionUses: 0
    functionsReached:
    - test_vector_file
    - point_mul_base_tests
    linkageType: ''
    returnType: void
    signature: fn p256_point_mul_base_vartime_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:61,1
    - Dst: bool::cpu
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - q
    - a
    - squarings
    - b
    argTypes:
    - '&Modulus<Q>'
    - '&Elem<R>'
    - LeakyWord
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 15
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: p::3::8::4::_::e::l::e::m::_::i::n::v::_::s::q::u::a::r::e::d::sqr_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - elem_sqr_mul
    - bool::cpu
    linkageType: ''
    returnType: Elem
    signature: 'fn sqr_mul(q: &Modulus<Q>, a: &Elem<R>, squarings: LeakyWord, b: &Elem<R>)
      -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::elem_sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:66,1
    - Dst: bool::cpu
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - q
    - a
    - squarings
    - b
    argTypes:
    - '&Modulus<Q>'
    - '&mut Elem<R>'
    - LeakyWord
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 14
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: p::3::8::4::_::e::l::e::m::_::i::n::v::_::s::q::u::a::r::e::d::sqr_mul_acc
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - bool::cpu
    - super::elem_sqr_mul_acc
    linkageType: ''
    returnType: void
    signature: 'fn sqr_mul_acc(q: &Modulus<Q>, a: &mut Elem<R>, squarings: LeakyWord,
      b: &Elem<R>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:70,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:71,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:72,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:73,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:74,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:75,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:77,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:79,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:82,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:90,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:93,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:94,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:98,1
    - Dst: bool::elem_square
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:102,1
    - Dst: bool::elem_square
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 2
    argNames:
    - q
    - a
    argTypes:
    - '&Modulus<Q>'
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 106
      start: 51
    functionDepth: 15
    functionLinenumber: 51
    functionLinenumberEnd: 106
    functionName: p384_elem_inv_squared
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - bool::elem_square
    - sqr_mul
    - sqr_mul_acc
    linkageType: ''
    returnType: Elem
    signature: 'fn p384_elem_inv_squared(q: &Modulus<Q>, a: &Elem<R>) -> Elem<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:110,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:110,1
    - Dst: point_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - a
    - cpu
    argTypes:
    - '&Scalar'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: p384_point_mul_base_impl
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - point_mul
    - Elem::from
    linkageType: ''
    returnType: Point
    signature: 'fn p384_point_mul_base_impl(a: &Scalar, cpu: cpu::Features) -> Point'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 'super::

        elem::binary_op'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&Scalar<R>'
    - '&Scalar<R>'
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - 'super::

      elem::binary_op'
    linkageType: ''
    returnType: Scalar
    signature: 'fn mul(a: &Scalar<R>, b: &Scalar<R>) -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 'super::

        elem::binary_op'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&Scalar<R>'
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - 'super::

      elem::binary_op'
    linkageType: ''
    returnType: Scalar
    signature: 'fn sqr(a: &Scalar<R>) -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unary_op_from_binary_op_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - '&mut Scalar<R>'
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 12
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - unary_op_from_binary_op_assign
    linkageType: ''
    returnType: void
    signature: 'fn sqr_mut(a: &mut Scalar<R>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:169,1
    - Dst: sqr_mut
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:171,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - a
    - squarings
    - b
    argTypes:
    - '&Scalar<R>'
    - LeakyWord
    - '&Scalar<R>'
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 13
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mul
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - mul
    - sqr
    - sqr_mut
    linkageType: ''
    returnType: Scalar
    signature: 'fn sqr_mul(a: &Scalar<R>, squarings: LeakyWord, b: &Scalar<R>) ->
      Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr_mut
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:180,1
    - Dst: 'super::

        elem::binary_op_assign'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - acc
    - squarings
    - b
    argTypes:
    - '&mut Scalar<R>'
    - LeakyWord
    - '&Scalar<R>'
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 13
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mul_acc
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - 'super::

      elem::binary_op_assign'
    - sqr_mut
    linkageType: ''
    returnType: void
    signature: 'fn sqr_mul_acc(acc: &mut Scalar<R>, squarings: LeakyWord, b: &Scalar<R>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Scalar::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:196,1
    - Dst: sqr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:198,1
    - Dst: mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:200,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:203,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:204,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:205,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:207,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:209,1
    - Dst: sqr_mul
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:212,1
    - Dst: sqr_mul_acc
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:264,1
    - Dst: LeakyWord::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:264,1
    - Dst: usize::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 186
    argCount: 2
    argNames:
    - a
    - _cpu
    argTypes:
    - Scalar<R>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 268
      start: 143
    functionDepth: 15
    functionLinenumber: 143
    functionLinenumberEnd: 268
    functionName: p384_scalar_inv_to_mont
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - mul
    - sqr_mul_acc
    - sqr_mul
    - Scalar::zero
    - usize::from
    - sqr
    - LeakyWord::from
    linkageType: ''
    returnType: Scalar
    signature: 'fn p384_scalar_inv_to_mont(a: Scalar<R>, _cpu: cpu::Features) -> Scalar<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p384_elem_mul_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - '*mut Limb'
    - '*const Limb'
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: p384_elem_sqr_mont
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
    functionUses: 0
    functionsReached:
    - p384_elem_mul_mont
    linkageType: ''
    returnType: void
    signature: 'unsafe extern "C" fn p384_elem_sqr_mont(r: *mut Limb,   // [COMMON_OPS.num_limbs]a:
      *const Limb, // [COMMON_OPS.num_limbs])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: NumLimbs::into
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub(super) const fn into(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: core::array::from_fn
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:68,1
    - Dst: Limb::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&PublicElem<M, E>'
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: Elem::from
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 8
    functionsReached:
    - core::array::from_fn
    - Limb::from
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: &PublicElem<M, E>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: Elem::zero
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 12
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: fn zero() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: Elem::one
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 1
    functionsReached:
    - Self::zero
    linkageType: ''
    returnType: Self
    signature: pub fn one() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limbs_from_hex
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hex
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: PublicElem::from_hex
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 0
    functionsReached:
    - limbs_from_hex
    linkageType: ''
    returnType: Self
    signature: 'pub const fn from_hex(hex: &str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_op
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - f
    - a
    - b
    argTypes:
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb)'
    - '&Elem<M, EA>'
    - '&Elem<M, EB>'
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 12
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: mul_mont
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 7
    functionsReached:
    - binary_op
    linkageType: ''
    returnType: Elem
    signature: 'pub fn mul_mont<M, EA: Encoding, EB: Encoding>(f: unsafe extern "C"
      fn(r: *mut Limb, a: *const Limb, b: *const Limb),a: &Elem<M, EA>,b: &Elem<M,
      EB>,) -> Elem<M, <(EA, EB) as ProductEncoding>::Output>where(EA, EB): ProductEncoding,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:125,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:126,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:126,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:126,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - f
    - a
    - b
    argTypes:
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb)'
    - '&Elem<M, EA>'
    - '&Elem<M, EB>'
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 11
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: binary_op
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 4
    functionsReached:
    - as_mut_ptr
    - Elem::zero
    - as_ptr
    - f
    linkageType: ''
    returnType: Elem
    signature: 'pub fn binary_op<M, EA: Encoding, EB: Encoding, ER: Encoding>(f: unsafe
      extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb),a: &Elem<M, EA>,b:
      &Elem<M, EB>,) -> Elem<M, ER>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:137,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:137,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:137,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - f
    - a
    - b
    argTypes:
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb)'
    - '&mut Elem<M, EA>'
    - '&Elem<M, EB>'
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 11
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: binary_op_assign
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 4
    functionsReached:
    - as_mut_ptr
    - as_ptr
    - f
    linkageType: ''
    returnType: void
    signature: 'pub fn binary_op_assign<M, EA: Encoding, EB: Encoding>(f: unsafe extern
      "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb),a: &mut Elem<M, EA>,b:
      &Elem<M, EB>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:146,1
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:147,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:147,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - f
    - a
    argTypes:
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb)'
    - '&Elem<M, E>'
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 11
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: unary_op
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 1
    functionsReached:
    - as_mut_ptr
    - Elem::zero
    - as_ptr
    - f
    linkageType: ''
    returnType: Elem
    signature: 'pub fn unary_op<M, E: Encoding>(f: unsafe extern "C" fn(r: *mut Limb,
      a: *const Limb),a: &Elem<M, E>,) -> Elem<M, E>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:157,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:157,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - f
    - a
    argTypes:
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb)'
    - '&mut Elem<M, E>'
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 11
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: unary_op_assign
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 1
    functionsReached:
    - as_mut_ptr
    - as_ptr
    - f
    linkageType: ''
    returnType: void
    signature: 'pub fn unary_op_assign<M, E: Encoding>(f: unsafe extern "C" fn(r:
      *mut Limb, a: *const Limb),a: &mut Elem<M, E>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:166,1
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:166,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:166,1
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - f
    - a
    argTypes:
    - 'unsafe extern "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb)'
    - '&mut Elem<M, E>'
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 11
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: unary_op_from_binary_op_assign
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
    functionUses: 1
    functionsReached:
    - as_mut_ptr
    - as_ptr
    - f
    linkageType: ''
    returnType: void
    signature: 'pub fn unary_op_from_binary_op_assign<M, E: Encoding>(f: unsafe extern
      "C" fn(r: *mut Limb, a: *const Limb, b: *const Limb),a: &mut Elem<M, E>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest_scalar_
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:46,1
    - Dst: SpdmResult::as_ref
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - msg
    argTypes:
    - '&Modulus<N>'
    - digest::Digest
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 7
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: digest_scalar
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs
    functionUses: 2
    functionsReached:
    - SpdmResult::as_ref
    - digest_scalar_
    linkageType: ''
    returnType: Scalar
    signature: 'pub(super) fn digest_scalar(n: &Modulus<N>, msg: digest::Digest) ->
      Scalar'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest_scalar_
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - n
    - digest
    argTypes:
    - '&Modulus<N>'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 7
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: digest_bytes_scalar
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs
    functionUses: 2
    functionsReached:
    - digest_scalar_
    linkageType: ''
    returnType: Scalar
    signature: 'pub(super) fn digest_bytes_scalar(n: &Modulus<N>, digest: &[u8]) ->
      Scalar'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes_len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:57,1
    - Dst: Digest::len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:58,1
    - Dst: scalar_parse_big_endian_partially_reduced_variable_consttime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:64,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:64,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - n
    - digest
    argTypes:
    - '&Modulus<N>'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 6
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: digest_scalar_
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs
    functionUses: 2
    functionsReached:
    - untrusted::Input::from
    - Result::unwrap
    - bytes_len
    - Digest::len
    - scalar_parse_big_endian_partially_reduced_variable_consttime
    linkageType: ''
    returnType: Scalar
    signature: 'fn digest_scalar_(n: &Modulus<N>, digest: &[u8]) -> Scalar'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:76,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:77,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:78,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:82,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:83,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:84,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:85,1
    - Dst: '&''static agreement::Algorithm::as_str'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:87,1
    - Dst: String::as_str
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:87,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:96,1
    - Dst: scalar_parse_big_endian_variable
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:102,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:105,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:102,1
    - Dst: digest_bytes_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:109,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 75
    functionDepth: 15
    functionLinenumber: 75
    functionLinenumberEnd: 118
    functionName: tests::test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - scalar_parse_big_endian_variable
    - cpu::features
    - '&''static agreement::Algorithm::as_str'
    - String::as_str
    - test_vector_file
    - untrusted::Input::from
    - digest_bytes_scalar
    - Result::unwrap
    - Ok
    - test::run
    - Option::consume_string
    - scalar_modulus
    linkageType: ''
    returnType: void
    signature: fn test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:59,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:63,1
    - Dst: SpdmResult::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:63,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:67,1
    - Dst: super::digest_scalar::digest_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:68,1
    - Dst: EcdsaVerificationAlgorithm::verify_digest
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - public_key
    - msg
    - signature
    argTypes:
    - untrusted::Input
    - untrusted::Input
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 72
      start: 53
    functionDepth: 15
    functionLinenumber: 53
    functionLinenumberEnd: 72
    functionName: EcdsaVerificationAlgorithm::verify
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs
    functionUses: 0
    functionsReached:
    - cpu::features
    - super::digest_scalar::digest_scalar
    - EcdsaVerificationAlgorithm::verify_digest
    - scalar_modulus
    - digest::digest
    - SpdmResult::as_slice_less_safe
    linkageType: ''
    returnType: Result
    signature: 'fn verify(&self,public_key: untrusted::Input,msg: untrusted::Input,signature:
      untrusted::Input,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::elem_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:151,1
    - Dst: bool::elem_unencoded
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:152,1
    - Dst: bool::elems_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:153,1
    - Dst: LimbMask::leak
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - q
    - r
    - x
    - z2
    argTypes:
    - '&Modulus<Q>'
    - '&Elem<Unencoded>'
    - '&Elem<R>'
    - '&Elem<R>'
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: E::c::d::s::a::V::e::r::i::f::i::c::a::t::i::o::n::A::l::g::o::r::i::t::h::m::::::::v::e::r::i::f::y::_::d::i::g::e::s::t::sig_r_equals_x
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs
    functionUses: 0
    functionsReached:
    - bool::elem_unencoded
    - bool::elem_product
    - bool::elems_are_equal
    - LimbMask::leak
    linkageType: ''
    returnType: bool
    signature: 'fn sig_r_equals_x(q: &Modulus<Q>, r: &Elem<Unencoded>, x: &Elem<R>,
      z2: &Elem<R>) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:83,1
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:89,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:90,1
    - Dst: parse_uncompressed_point
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:109,1
    - Dst: SpdmResult::read_all
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:111,1
    - Dst: scalar_parse_big_endian_variable
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:117,1
    - Dst: scalar_parse_big_endian_variable
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:118,1
    - Dst: scalar_inv_to_mont_vartime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:122,1
    - Dst: scalar_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:126,1
    - Dst: scalar_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:127,1
    - Dst: verify_jacobian_point_is_on_the_curve
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:141,1
    - Dst: bool::point_x
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:149,1
    - Dst: scalar_as_elem
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:155,1
    - Dst: sig_r_equals_x
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:156,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:157,1
    - Dst: bool::elem_less_than_vartime
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:159,1
    - Dst: Elem::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:160,1
    - Dst: n
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:160,1
    - Dst: bool::add_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:161,1
    - Dst: sig_r_equals_x
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:162,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:163,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:167,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 102
    argCount: 3
    argNames:
    - public_key
    - e
    - signature
    argTypes:
    - untrusted::Input
    - Scalar
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 168
      start: 77
    functionDepth: 15
    functionLinenumber: 77
    functionLinenumberEnd: 168
    functionName: EcdsaVerificationAlgorithm::verify_digest
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs
    functionUses: 1
    functionsReached:
    - scalar_parse_big_endian_variable
    - bool::elem_less_than_vartime
    - cpu::features
    - bool::point_x
    - bool::add_assign
    - Elem::from
    - Err
    - SpdmResult::read_all
    - scalar_product
    - Ok
    - elem_modulus
    - sig_r_equals_x
    - parse_uncompressed_point
    - n
    - scalar_inv_to_mont_vartime
    - scalar_modulus
    - verify_jacobian_point_is_on_the_curve
    - scalar_as_elem
    linkageType: ''
    returnType: Result
    signature: 'fn verify_digest(&self,public_key: untrusted::Input,e: Scalar,signature:
      untrusted::Input,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static ScalarOps::scalar_bytes_len'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:177,1
    - Dst: untrusted::Input::read_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:178,1
    - Dst: untrusted::Input::read_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:179,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ops
    - input
    argTypes:
    - '&''static ScalarOps'
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: split_rs_fixed
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs
    functionUses: 0
    functionsReached:
    - '&''static ScalarOps::scalar_bytes_len'
    - Ok
    - untrusted::Input::read_bytes
    linkageType: ''
    returnType: Result
    signature: 'fn split_rs_fixed<''a>(ops: &''static ScalarOps,input: &mut untrusted::Reader<''a>,)
      -> Result<(untrusted::Input<''a>, untrusted::Input<''a>), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: der::nested
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:187,1
    - Dst: der::positive_integer
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:188,1
    - Dst: big_endian_without_leading_zero_as_input
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:188,1
    - Dst: der::positive_integer
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:189,1
    - Dst: big_endian_without_leading_zero_as_input
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:189,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - _ops
    - input
    argTypes:
    - '&''static ScalarOps'
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: split_rs_asn1
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs
    functionUses: 0
    functionsReached:
    - big_endian_without_leading_zero_as_input
    - der::positive_integer
    - Ok
    - der::nested
    linkageType: ''
    returnType: Result
    signature: 'fn split_rs_asn1<''a>(_ops: &''static ScalarOps,input: &mut untrusted::Reader<''a>,)
      -> Result<(untrusted::Input<''a>, untrusted::Input<''a>), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:285,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:286,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:287,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:291,1
    - Dst: Result::extend
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:295,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:295,1
    - Dst: Result::extend
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:296,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:296,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:300,1
    - Dst: Vec::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:303,1
    - Dst: Self::extend
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:304,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:304,1
    - Dst: Self::extend
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:305,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:305,1
    - Dst: Option::consume_optional_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:309,1
    - Dst: '&''static agreement::Algorithm::as_str'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:311,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:318,1
    - Dst: super::super::digest_scalar::digest_bytes_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:320,1
    - Dst: Option::verify_digest
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:321,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:322,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:324,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 284
    functionDepth: 15
    functionLinenumber: 284
    functionLinenumberEnd: 331
    functionName: tests::test_digest_based_test_vectors
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - cpu::features
    - '&''static agreement::Algorithm::as_str'
    - super::super::digest_scalar::digest_bytes_scalar
    - test_vector_file
    - untrusted::Input::from
    - Ok
    - Self::extend
    - test::run
    - Option::consume_string
    - Result::extend
    - scalar_modulus
    - Option::verify_digest
    - Option::consume_optional_string
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_digest_based_test_vectors()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: EcdsaSigningAlgorithm::eq
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &Self) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:86,1
    - Dst: ec::Seed::generate
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:87,1
    - Dst: Result::compute_public_key
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:88,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:89,1
    - Dst: pkcs8::wrap_key
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:89,1
    - Dst: Result::bytes_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:91,1
    - Dst: Result::as_ref
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - alg
    - rng
    argTypes:
    - '&''static EcdsaSigningAlgorithm'
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 15
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: EcdsaKeyPair::generate_pkcs8
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 2
    functionsReached:
    - cpu::features
    - Ok
    - Result::as_ref
    - Result::bytes_less_safe
    - Result::compute_public_key
    - pkcs8::wrap_key
    - ec::Seed::generate
    linkageType: ''
    returnType: Result
    signature: 'pub fn generate_pkcs8(alg: &''static EcdsaSigningAlgorithm,rng: &dyn
      rand::SecureRandom,) -> Result<pkcs8::Document, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec::suite_b::key_pair_from_pkcs8
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:111,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:114,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:115,1
    - Dst: Self::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - alg
    - pkcs8
    - rng
    argTypes:
    - '&''static EcdsaSigningAlgorithm'
    - '&[u8]'
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 15
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: EcdsaKeyPair::from_pkcs8
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 5
    functionsReached:
    - untrusted::Input::from
    - cpu::features
    - ec::suite_b::key_pair_from_pkcs8
    - Self::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_pkcs8(alg: &''static EcdsaSigningAlgorithm,pkcs8: &[u8],rng:
      &dyn rand::SecureRandom,) -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec::suite_b::key_pair_from_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:142,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:144,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:145,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:146,1
    - Dst: Self::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - alg
    - private_key
    - public_key
    - rng
    argTypes:
    - '&''static EcdsaSigningAlgorithm'
    - '&[u8]'
    - '&[u8]'
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 15
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: EcdsaKeyPair::from_private_key_and_public_key
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 4
    functionsReached:
    - untrusted::Input::from
    - ec::suite_b::key_pair_from_bytes
    - cpu::features
    - Self::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_private_key_and_public_key(alg: &''static EcdsaSigningAlgorithm,private_key:
      &[u8],public_key: &[u8],rng: &dyn rand::SecureRandom,) -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:156,1
    - Dst: Option::split
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:158,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:159,1
    - Dst: private_key::private_key_as_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:160,1
    - Dst: to_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:161,1
    - Dst: NonceRandomKey::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:163,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:164,1
    - Dst: PublicKey
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 3
    argNames:
    - alg
    - key_pair
    - rng
    argTypes:
    - '&''static EcdsaSigningAlgorithm'
    - ec::KeyPair
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 170
      start: 151
    functionDepth: 15
    functionLinenumber: 151
    functionLinenumberEnd: 170
    functionName: EcdsaKeyPair::new
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - NonceRandomKey::new
    - cpu::features
    - PublicKey
    - Ok
    - Option::split
    - private_key::private_key_as_scalar
    - to_mont
    - scalar_modulus
    linkageType: ''
    returnType: Result
    signature: 'fn new(alg: &''static EcdsaSigningAlgorithm,key_pair: ec::KeyPair,rng:
      &dyn rand::SecureRandom,) -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:178,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:181,1
    - Dst: EcdsaKeyPair::sign_digest
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - rng
    - message
    argTypes:
    - '&dyn rand::SecureRandom'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 193
      start: 173
    functionDepth: 15
    functionLinenumber: 173
    functionLinenumberEnd: 193
    functionName: EcdsaKeyPair::sign
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - digest::digest
    - cpu::features
    - EcdsaKeyPair::sign_digest
    linkageType: ''
    returnType: Result
    signature: 'pub fn sign(&self,rng: &dyn rand::SecureRandom,message: &[u8],) ->
      Result<signature::Signature, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:202,1
    - Dst: EcdsaKeyPair::sign_digest
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:204,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - rng
    - message
    argTypes:
    - '&dyn rand::SecureRandom'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 15
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: EcdsaKeyPair::sign_with_fixed_nonce_during_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - cpu::features
    - digest::digest
    - EcdsaKeyPair::sign_digest
    linkageType: ''
    returnType: Result
    signature: 'fn sign_with_fixed_nonce_during_test(&self,rng: &dyn rand::SecureRandom,message:
      &[u8],) -> Result<signature::Signature, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: elem_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:243,1
    - Dst: scalar_modulus
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:244,1
    - Dst: private_key::random_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:249,1
    - Dst: scalar_inv_to_mont
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:250,1
    - Dst: point_mul_base
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:253,1
    - Dst: private_key::affine_from_jacobian
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:257,1
    - Dst: bool::elem_unencoded
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:258,1
    - Dst: elem_reduced_to_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:259,1
    - Dst: is_zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:261,1
    - Dst: super::digest_scalar::digest_scalar
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:268,1
    - Dst: scalar_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:272,1
    - Dst: add_assign
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:273,1
    - Dst: scalar_product
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:274,1
    - Dst: is_zero
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:276,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:281,1
    - Dst: signature::Signature::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:281,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 75
    argCount: 3
    argNames:
    - h
    - rng
    - cpu
    argTypes:
    - digest::Digest
    - '&dyn rand::SecureRandom'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 287
      start: 209
    functionDepth: 21
    functionLinenumber: 209
    functionLinenumberEnd: 287
    functionName: EcdsaKeyPair::sign_digest
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 2
    functionsReached:
    - is_zero
    - add_assign
    - elem_reduced_to_scalar
    - Err
    - scalar_inv_to_mont
    - scalar_product
    - private_key::random_scalar
    - elem_modulus
    - private_key::affine_from_jacobian
    - super::digest_scalar::digest_scalar
    - bool::elem_unencoded
    - Ok
    - signature::Signature::new
    - point_mul_base
    - scalar_modulus
    linkageType: ''
    returnType: Result
    signature: 'fn sign_digest(&self,h: digest::Digest,rng: &dyn rand::SecureRandom,cpu:
      cpu::Features,) -> Result<signature::Signature, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_struct
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:300,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 14
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: NonceRandom::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - SpdmCertChainBuffer::debug_struct
    - finish
    linkageType: ''
    returnType: core::fmt::Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter<''_>) -> core::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: algorithm
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:313,1
    - Dst: digest::Context::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:314,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:317,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:318,1
    - Dst: Option::block_len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:326,1
    - Dst: Option::len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:326,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:328,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:329,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:332,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:332,1
    - Dst: Self::finish
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:334,1
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:338,1
    - Dst: Nonce::as_ref
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:338,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 1
    argNames:
    - dest
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 341
      start: 305
    functionDepth: 11
    functionLinenumber: 305
    functionLinenumberEnd: 341
    functionName: NonceRandom::fill_impl
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - Self::finish
    - as_ref
    - Ok
    - Self::update
    - digest::Context::new
    - algorithm
    - Option::len
    - '&mut [u8]::copy_from_slice'
    - Nonce::as_ref
    - Option::block_len
    - fill
    linkageType: ''
    returnType: Result
    signature: 'fn fill_impl(&self, dest: &mut [u8]) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&dyn rand::SecureRandom::fill'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:360,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:360,1
    - Dst: error::KeyRejected::rng_failed
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:361,1
    - Dst: digest::Context::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:363,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:364,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:365,1
    - Dst: '&ec::Seed::bytes_less_safe'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:365,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:366,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:366,1
    - Dst: Self::finish
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 3
    argNames:
    - alg
    - seed
    - rng
    argTypes:
    - '&EcdsaSigningAlgorithm'
    - '&ec::Seed'
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 367
      start: 349
    functionDepth: 11
    functionLinenumber: 349
    functionLinenumberEnd: 367
    functionName: NonceRandomKey::new
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 1
    functionsReached:
    - Self::finish
    - '&dyn rand::SecureRandom::fill'
    - error::KeyRejected::rng_failed
    - Ok
    - Self::update
    - Result::map_err
    - digest::Context::new
    - '&ec::Seed::bytes_less_safe'
    - Self
    linkageType: ''
    returnType: Result
    signature: 'fn new(alg: &EcdsaSigningAlgorithm,seed: &ec::Seed,rng: &dyn rand::SecureRandom,)
      -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: EcdsaKeyPair::public_key
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Self::PublicKey'
    signature: fn public_key(&self) -> &Self::PublicKey
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static ScalarOps::scalar_bytes_len'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:390,1
    - Dst: '&mut [u8]::split_at_mut'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:392,1
    - Dst: limb::big_endian_from_limbs
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:393,1
    - Dst: '&''static ScalarOps::leak_limbs'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:393,1
    - Dst: '&[u8]::split_at_mut'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:395,1
    - Dst: limb::big_endian_from_limbs
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:396,1
    - Dst: '&''static ScalarOps::leak_limbs'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - ops
    - r
    - s
    - out
    argTypes:
    - '&''static ScalarOps'
    - '&Scalar'
    - '&Scalar'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 6
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: format_rs_fixed
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - limb::big_endian_from_limbs
    - '&[u8]::split_at_mut'
    - '&''static ScalarOps::scalar_bytes_len'
    - '&''static ScalarOps::leak_limbs'
    - '&mut [u8]::split_at_mut'
    linkageType: ''
    returnType: usize
    signature: 'fn format_rs_fixed(ops: &''static ScalarOps, r: &Scalar, s: &Scalar,
      out: &mut [u8]) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&ScalarOps::scalar_bytes_len'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:406,1
    - Dst: limb::big_endian_from_limbs
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:407,1
    - Dst: '&ScalarOps::leak_limbs'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:407,1
    - Dst: Result::iter
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:414,1
    - Dst: Self::IntoIter::position
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:414,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:414,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:424,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:430,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:433,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:433,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 3
    argNames:
    - ops
    - a
    - out
    argTypes:
    - '&ScalarOps'
    - '&Scalar'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 436
      start: 404
    functionDepth: 6
    functionLinenumber: 404
    functionLinenumberEnd: 436
    functionName: f::o::r::m::a::t::_::r::s::_::a::s::n::1::format_integer_tlv
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - Result::iter
    - limb::big_endian_from_limbs
    - into
    - '&ScalarOps::leak_limbs'
    - unwrap
    - Self::IntoIter::position
    - '&ScalarOps::scalar_bytes_len'
    - copy_from_slice
    - SpdmResult::len
    linkageType: ''
    returnType: usize
    signature: 'fn format_integer_tlv(ops: &ScalarOps, a: &Scalar, out: &mut [u8])
      -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:438,1
    - Dst: format_integer_tlv
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:439,1
    - Dst: format_integer_tlv
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 82
    argCount: 4
    argNames:
    - ops
    - r
    - s
    - out
    argTypes:
    - '&''static ScalarOps'
    - '&Scalar'
    - '&Scalar'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 451
      start: 401
    functionDepth: 7
    functionLinenumber: 401
    functionLinenumberEnd: 451
    functionName: format_rs_asn1
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - into
    - format_integer_tlv
    linkageType: ''
    returnType: usize
    signature: 'fn format_rs_asn1(ops: &''static ScalarOps, r: &Scalar, s: &Scalar,
      out: &mut [u8]) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:534,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:536,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:537,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:541,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:542,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:543,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:544,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:545,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:546,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:548,1
    - Dst: '&''static agreement::Algorithm::as_str'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:550,1
    - Dst: String::as_str
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:550,1
    - Dst: signature::EcdsaKeyPair::from_private_key_and_public_key
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:559,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:559,1
    - Dst: Result::sign_with_fixed_nonce_during_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:563,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:563,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 533
    functionDepth: 14
    functionLinenumber: 533
    functionLinenumberEnd: 572
    functionName: tests::signature_ecdsa_sign_fixed_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - '&''static agreement::Algorithm::as_str'
    - String::as_str
    - Result::sign_with_fixed_nonce_during_test
    - test_vector_file
    - Result::unwrap
    - Ok
    - rand::SystemRandom::new
    - test::run
    - signature::EcdsaKeyPair::from_private_key_and_public_key
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: fn signature_ecdsa_sign_fixed_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:576,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:578,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:579,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:583,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:584,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:585,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:586,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:587,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:588,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:590,1
    - Dst: '&''static agreement::Algorithm::as_str'
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:592,1
    - Dst: String::as_str
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:592,1
    - Dst: signature::EcdsaKeyPair::from_private_key_and_public_key
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:601,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:601,1
    - Dst: Result::sign_with_fixed_nonce_during_test
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:605,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:605,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 614
      start: 575
    functionDepth: 14
    functionLinenumber: 575
    functionLinenumberEnd: 614
    functionName: tests::signature_ecdsa_sign_asn1_test
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - '&''static agreement::Algorithm::as_str'
    - String::as_str
    - Result::sign_with_fixed_nonce_during_test
    - test_vector_file
    - Result::unwrap
    - Ok
    - rand::SystemRandom::new
    - test::run
    - signature::EcdsaKeyPair::from_private_key_and_public_key
    - Option::consume_string
    linkageType: ''
    returnType: void
    signature: fn signature_ecdsa_sign_asn1_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest::Context::new
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519.rs:27,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519.rs:28,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519.rs:29,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519.rs:30,1
    - Dst: Self::finish
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - signature_r
    - public_key
    - msg
    argTypes:
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 11
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: eddsa_digest
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519.rs
    functionUses: 2
    functionsReached:
    - Self::update
    - digest::Context::new
    - Self::finish
    linkageType: ''
    returnType: digest::Digest
    signature: 'pub fn eddsa_digest(signature_r: &[u8], public_key: &[u8], msg: &[u8])
      -> digest::Digest'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: x25519_check_private_key_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn x25519_check_private_key_bytes(bytes: &[u8],_: cpu::Features,)
      -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&dyn rand::SecureRandom::fill'
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - out
    argTypes:
    - '&dyn rand::SecureRandom'
    - '&mut [u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: x25519_generate_private_key
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs
    functionUses: 0
    functionsReached:
    - '&dyn rand::SecureRandom::fill'
    linkageType: ''
    returnType: Result
    signature: 'fn x25519_generate_private_key(rng: &dyn rand::SecureRandom,out: &mut
      [u8],_: cpu::Features,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::try_into'
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:65,1
    - Dst: Result::bytes_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:67,1
    - Dst: '&[u8]::try_into'
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:67,1
    - Dst: ops::MaskedScalar::from_bytes_masked
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:68,1
    - Dst: <cpu::Features as cpu::GetFeature<_>>::get_feature
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:74,1
    - Dst: x25519_neon
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:79,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:80,1
    - Dst: x25519_public_from_private_generic_masked
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:91,1
    - Dst: ops::has_fe25519_adx
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:94,1
    - Dst: bool::into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:94,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - public_out
    - private_key
    - cpu_features
    argTypes:
    - '&mut [u8]'
    - '&ec::Seed'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 99
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 99
    functionName: x25519_public_from_private
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs
    functionUses: 1
    functionsReached:
    - ops::MaskedScalar::from_bytes_masked
    - ops::has_fe25519_adx
    - '&[u8]::try_into'
    - <cpu::Features as cpu::GetFeature<_>>::get_feature
    - x25519_public_from_private_generic_masked
    - Ok
    - '&mut [u8]::try_into'
    - x25519_neon
    - Result::bytes_less_safe
    - bool::into
    linkageType: ''
    returnType: Result
    signature: 'fn x25519_public_from_private(public_out: &mut [u8],private_key: &ec::Seed,cpu_features:
      cpu::Features,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <cpu::Features as cpu::GetFeature<_>>::get_feature
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:121,1
    - Dst: x25519_neon
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:122,1
    - Dst: ops::has_fe25519_adx
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:127,1
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:128,1
    - Dst: x25519_scalar_mult_adx
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:135,1
    - Dst: x25519_scalar_mult_generic_masked
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - out
    - scalar
    - point
    - cpu_features
    argTypes:
    - '&mut ops::EncodedPoint'
    - '&ops::MaskedScalar'
    - '&ops::EncodedPoint'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 149
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 149
    functionName: x::2::5::5::1::9::_::e::c::d::h::scalar_mult
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs
    functionUses: 0
    functionsReached:
    - ops::has_fe25519_adx
    - x25519_scalar_mult_generic_masked
    - <cpu::Features as cpu::GetFeature<_>>::get_feature
    - prefixed_extern
    - x25519_neon
    - x25519_scalar_mult_adx
    linkageType: ''
    returnType: void
    signature: 'fn scalar_mult(out: &mut ops::EncodedPoint,scalar: &ops::MaskedScalar,point:
      &ops::EncodedPoint,#[allow(unused_variables)] cpu_features: cpu::Features,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&ec::Seed::bytes_less_safe'
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:107,1
    - Dst: '&[u8]::try_into'
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:107,1
    - Dst: ops::MaskedScalar::from_bytes_masked
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:108,1
    - Dst: untrusted::Input::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:109,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:109,1
    - Dst: scalar_mult
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:151,1
    - Dst: '&mut [u8]::try_into'
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:152,1
    - Dst: bb::verify_slices_are_equal
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:159,1
    - Dst: is_ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:159,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:161,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 4
    argNames:
    - out
    - my_private_key
    - peer_public_key
    - cpu_features
    argTypes:
    - '&mut [u8]'
    - '&ec::Seed'
    - untrusted::Input
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 165
      start: 101
    functionDepth: 16
    functionLinenumber: 101
    functionLinenumberEnd: 165
    functionName: x25519_ecdh
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs
    functionUses: 0
    functionsReached:
    - ops::MaskedScalar::from_bytes_masked
    - '&[u8]::try_into'
    - untrusted::Input::as_slice_less_safe
    - bb::verify_slices_are_equal
    - Err
    - '&ec::Seed::bytes_less_safe'
    - Ok
    - '&mut [u8]::try_into'
    - try_into
    - is_ok
    - scalar_mult
    linkageType: ''
    returnType: Result
    signature: 'fn x25519_ecdh(out: &mut [u8],my_private_key: &ec::Seed,peer_public_key:
      untrusted::Input,cpu_features: cpu::Features,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x25519_NEON
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - out
    - scalar
    - point
    - _cpu
    argTypes:
    - '&mut ops::EncodedPoint'
    - '&ops::MaskedScalar'
    - '&ops::EncodedPoint'
    - cpu::arm::Neon
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: x25519_neon
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs
    functionUses: 2
    functionsReached:
    - x25519_NEON
    linkageType: ''
    returnType: void
    signature: 'fn x25519_neon(out: &mut ops::EncodedPoint,scalar: &ops::MaskedScalar,point:
      &ops::EncodedPoint,_cpu: cpu::arm::Neon,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:239,1
    - Dst: ec::Seed::from_bytes
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:242,1
    - Dst: Input::from
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:242,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:242,1
    - Dst: x25519_public_from_private
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:245,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 208
    functionDepth: 15
    functionLinenumber: 208
    functionLinenumberEnd: 248
    functionName: tests::test_x25519_public_from_private
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs
    functionUses: 0
    functionsReached:
    - Input::from
    - cpu::features
    - Result::unwrap
    - ec::Seed::from_bytes
    - x25519_public_from_private
    linkageType: ''
    returnType: void
    signature: fn test_x25519_public_from_private()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x25519_fe_neg
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Elem::negate
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 0
    functionsReached:
    - x25519_fe_neg
    linkageType: ''
    returnType: void
    signature: fn negate(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:79,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:80,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:81,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:82,1
    - Dst: x25519_ge_scalarmult_base
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:88,1
    - Dst: has_fe25519_adx
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:88,1
    - Dst: bool::into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - scalar
    - cpu
    argTypes:
    - '&Scalar'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: ExtPoint::from_scalarmult_base
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 2
    functionsReached:
    - x25519_ge_scalarmult_base
    - bool::into
    - Elem::zero
    - has_fe25519_adx
    linkageType: ''
    returnType: Self
    signature: 'pub(super) fn from_scalarmult_base(scalar: &Scalar, cpu: cpu::Features)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:95,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:96,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:97,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:98,1
    - Dst: Result::from
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:101,1
    - Dst: x25519_ge_frombytes_vartime
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:101,1
    - Dst: Self::map
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - encoded
    argTypes:
    - '&EncodedPoint'
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: ExtPoint::from_encoded_point_vartime
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 1
    functionsReached:
    - x25519_ge_frombytes_vartime
    - Elem::zero
    - Self::map
    - Result::from
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_encoded_point_vartime(encoded: &EncodedPoint) -> Result<Self,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_point
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: ExtPoint::into_encoded_point
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 0
    functionsReached:
    - encode_point
    linkageType: ''
    returnType: EncodedPoint
    signature: 'pub(super) fn into_encoded_point(self, cpu_features: cpu::Features)
      -> EncodedPoint'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: negate
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:109,1
    - Dst: negate
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: ExtPoint::invert_vartime
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 0
    functionsReached:
    - negate
    linkageType: ''
    returnType: void
    signature: pub(super) fn invert_vartime(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_point
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Point::into_encoded_point
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 0
    functionsReached:
    - encode_point
    linkageType: ''
    returnType: EncodedPoint
    signature: 'pub(super) fn into_encoded_point(self, cpu_features: cpu::Features)
      -> EncodedPoint'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:140,1
    - Dst: x25519_fe_invert
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:141,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:143,1
    - Dst: x25519_fe_mul_ttt
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:144,1
    - Dst: Elem::zero
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:146,1
    - Dst: x25519_fe_mul_ttt
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:147,1
    - Dst: x25519_fe_tobytes
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:148,1
    - Dst: x25519_fe_isnegative
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 4
    argNames:
    - x
    - y
    - z
    - _cpu_features
    argTypes:
    - Elem<T>
    - Elem<T>
    - Elem<T>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 158
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 158
    functionName: encode_point
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 2
    functionsReached:
    - x25519_fe_tobytes
    - x25519_fe_invert
    - x25519_fe_isnegative
    - x25519_fe_mul_ttt
    - Elem::zero
    linkageType: ''
    returnType: EncodedPoint
    signature: 'fn encode_point(x: Elem<T>, y: Elem<T>, z: Elem<T>, _cpu_features:
      cpu::Features) -> EncodedPoint'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: has_fe25519_adx
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub(super) fn has_fe25519_adx(cpu: cpu::Features) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:33,1
    - Dst: slice::as_chunks
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:36,1
    - Dst: array::from_fn
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:39,1
    - Dst: limb::Limb::from_le_bytes
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:39,1
    - Dst: limb::verify_limbs_less_than_limbs_leak_bit
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:40,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:42,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '[u8; SCALAR_LEN]'
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 15
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: Scalar::from_bytes_checked
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs
    functionUses: 1
    functionsReached:
    - map
    - limb::Limb::from_le_bytes
    - Ok
    - slice::as_chunks
    - Self
    - array::from_fn
    - limb::verify_limbs_less_than_limbs_leak_bit
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_bytes_checked(bytes: [u8; SCALAR_LEN]) -> Result<Self,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:51,1
    - Dst: Digest::as_ref
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:51,1
    - Dst: x25519_sc_reduce
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:52,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:53,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:53,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - digest
    argTypes:
    - digest::Digest
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 6
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: Scalar::from_sha512_digest_reduced
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs
    functionUses: 2
    functionsReached:
    - x25519_sc_reduce
    - unwrap
    - Digest::as_ref
    - copy_from_slice
    - try_into
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_sha512_digest_reduced(digest: digest::Digest) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:65,1
    - Dst: x25519_sc_mask
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '[u8; SCALAR_LEN]'
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: MaskedScalar::from_bytes_masked
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs
    functionUses: 3
    functionsReached:
    - Self
    - x25519_sc_mask
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_bytes_masked(bytes: [u8; SCALAR_LEN]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - MaskedScalar
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Scalar::from
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs
    functionUses: 1
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'fn from(MaskedScalar(scalar): MaskedScalar) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: EdDSAParameters::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:43,1
    - Dst: Result::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:45,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:45,1
    - Dst: SpdmResult::read_all
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:46,1
    - Dst: untrusted::Input::read_bytes
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:47,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:47,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:47,1
    - Dst: untrusted::Input::read_bytes
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:51,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:51,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:51,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:55,1
    - Dst: Scalar::from_bytes_checked
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:58,1
    - Dst: ExtPoint::from_encoded_point_vartime
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:60,1
    - Dst: Vec::invert_vartime
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:61,1
    - Dst: super::eddsa_digest
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:63,1
    - Dst: SpdmResult::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:63,1
    - Dst: Scalar::from_sha512_digest_reduced
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:64,1
    - Dst: Point::new_at_infinity
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:66,1
    - Dst: x25519_ge_double_scalarmult_vartime
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:67,1
    - Dst: into_encoded_point
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:68,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:70,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs:72,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 3
    argNames:
    - public_key
    - msg
    - signature
    argTypes:
    - untrusted::Input
    - untrusted::Input
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 73
      start: 37
    functionDepth: 15
    functionLinenumber: 37
    functionLinenumberEnd: 73
    functionName: EdDSAParameters::verify
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs
    functionUses: 0
    functionsReached:
    - Point::new_at_infinity
    - cpu::features
    - Err
    - super::eddsa_digest
    - Vec::invert_vartime
    - SpdmResult::read_all
    - ExtPoint::from_encoded_point_vartime
    - Ok
    - Scalar::from_sha512_digest_reduced
    - as_slice_less_safe
    - x25519_ge_double_scalarmult_vartime
    - into_encoded_point
    - Result::as_slice_less_safe
    - try_into
    - Scalar::from_bytes_checked
    - SpdmResult::as_slice_less_safe
    - untrusted::Input::read_bytes
    linkageType: ''
    returnType: Result
    signature: 'fn verify(&self,public_key: untrusted::Input,msg: untrusted::Input,signature:
      untrusted::Input,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:52,1
    - Dst: rand::generate
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:53,1
    - Dst: expose
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:53,1
    - Dst: Self::from_seed_
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:54,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:55,1
    - Dst: pkcs8::wrap_key
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:55,1
    - Dst: Option::public_key
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:58,1
    - Dst: Result::as_ref
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - rng
    argTypes:
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 15
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: Ed25519KeyPair::generate_pkcs8
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
    functionUses: 2
    functionsReached:
    - Self::from_seed_
    - cpu::features
    - expose
    - Ok
    - Option::public_key
    - rand::generate
    - Result::as_ref
    - pkcs8::wrap_key
    linkageType: ''
    returnType: Result
    signature: 'pub fn generate_pkcs8(rng: &dyn rand::SecureRandom,) -> Result<pkcs8::Document,
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkcs8::Version::V2Only
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:82,1
    - Dst: unwrap_pkcs8
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:85,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:85,1
    - Dst: Self::from_seed_and_public_key
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:86,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:87,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:88,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - pkcs8
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 13
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: Ed25519KeyPair::from_pkcs8
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
    functionUses: 3
    functionsReached:
    - unwrap_pkcs8
    - untrusted::Input::from
    - Result::unwrap
    - pkcs8::Version::V2Only
    - Self::from_seed_and_public_key
    - as_slice_less_safe
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_pkcs8(pkcs8: &[u8]) -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkcs8::Version::V1OrV2
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:112,1
    - Dst: unwrap_pkcs8
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:115,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:115,1
    - Dst: Self::from_seed_and_public_key
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:117,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:118,1
    - Dst: Result::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:119,1
    - Dst: Self::from_seed_unchecked
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:122,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - pkcs8
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 13
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: Ed25519KeyPair::from_pkcs8_maybe_unchecked
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
    functionUses: 0
    functionsReached:
    - pkcs8::Version::V1OrV2
    - unwrap_pkcs8
    - untrusted::Input::from
    - Self::from_seed_unchecked
    - Self::from_seed_and_public_key
    - Result::as_slice_less_safe
    - as_slice_less_safe
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_pkcs8_maybe_unchecked(pkcs8: &[u8]) -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_seed_unchecked
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:140,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:145,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:146,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:146,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:146,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:147,1
    - Dst: error::KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:149,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:151,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - seed
    - public_key
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 12
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: Ed25519KeyPair::from_seed_and_public_key
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - error::KeyRejected::invalid_encoding
    - Err
    - error::KeyRejected::inconsistent_components
    - Ok
    - Self::from_seed_unchecked
    - Result::len
    - len
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_seed_and_public_key(seed: &[u8],public_key: &[u8],) ->
      Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::try_into'
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:167,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:167,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:169,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:170,1
    - Dst: Self::from_seed_
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:170,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - seed
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 11
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: Ed25519KeyPair::from_seed_unchecked
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
    functionUses: 0
    functionsReached:
    - Self::from_seed_
    - cpu::features
    - '&[u8]::try_into'
    - error::KeyRejected::invalid_encoding
    - Ok
    - Result::map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_seed_unchecked(seed: &[u8]) -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:174,1
    - Dst: Vec::as_ref
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:175,1
    - Dst: '&[u8]::split_at'
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:175,1
    - Dst: MaskedScalar::from_bytes_masked
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:178,1
    - Dst: Result::try_into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:178,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:178,1
    - Dst: Self::into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:178,1
    - Dst: ExtPoint::from_scalarmult_base
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:180,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:184,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:184,1
    - Dst: PublicKey
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:185,1
    - Dst: Vec::into_encoded_point
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - seed
    - cpu_features
    argTypes:
    - '&Seed'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 10
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: Ed25519KeyPair::from_seed_
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::split_at'
    - PublicKey
    - MaskedScalar::from_bytes_masked
    - unwrap
    - Vec::into_encoded_point
    - Self::into
    - ExtPoint::from_scalarmult_base
    - Vec::as_ref
    - Result::unwrap
    - try_into
    - Result::try_into
    - digest::digest
    linkageType: ''
    returnType: Self
    signature: 'fn from_seed_(seed: &Seed, cpu_features: cpu::Features) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:191,1
    - Dst: signature::Signature::new
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:192,1
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:193,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:202,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:203,1
    - Dst: digest::Context::new
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:205,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:206,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:207,1
    - Dst: Self::finish
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:208,1
    - Dst: Scalar::from_sha512_digest_reduced
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:210,1
    - Dst: ExtPoint::from_scalarmult_base
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:212,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:213,1
    - Dst: into_encoded_point
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:213,1
    - Dst: super::eddsa_digest
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:214,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:214,1
    - Dst: Scalar::from_sha512_digest_reduced
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:215,1
    - Dst: x25519_sc_muladd
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:217,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:218,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 1
    argNames:
    - msg
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 227
      start: 190
    functionDepth: 15
    functionLinenumber: 190
    functionLinenumberEnd: 227
    functionName: Ed25519KeyPair::sign
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
    functionUses: 0
    functionsReached:
    - Self::finish
    - cpu::features
    - as_ref
    - unwrap
    - super::eddsa_digest
    - ExtPoint::from_scalarmult_base
    - copy_from_slice
    - prefixed_extern
    - signature::Signature::new
    - Self::update
    - digest::Context::new
    - Scalar::from_sha512_digest_reduced
    - into_encoded_point
    - try_into
    - x25519_sc_muladd
    - split_at_mut
    linkageType: ''
    returnType: signature::Signature
    signature: 'pub fn sign(&self, msg: &[u8]) -> signature::Signature'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: Ed25519KeyPair::public_key
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Self::PublicKey'
    signature: fn public_key(&self) -> &Self::PublicKey
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkcs8::unwrap_key
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:253,1
    - Dst: Result::read_all
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:254,1
    - Dst: der::expect_tag_and_get_value
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:256,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:254,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:258,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - version
    - input
    argTypes:
    - pkcs8::Version
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 8
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: unwrap_pkcs8
    functionSourceFile: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
    functionUses: 2
    functionsReached:
    - error::KeyRejected::invalid_encoding
    - Ok
    - der::expect_tag_and_get_value
    - Result::read_all
    - pkcs8::unwrap_key
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn unwrap_pkcs8(version: pkcs8::Version,input: untrusted::Input,)
      -> Result<(untrusted::Input, Option<untrusted::Input>), error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: from_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/ptr.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '*mut T'
    signature: 'pub fn from_mut<T: ?Sized>(r: &mut T) -> *mut T'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&T'
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: from_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/ptr.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '*const T'
    signature: 'pub const fn from_ref<T: ?Sized>(r: &T) -> *const T'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/polyfill/slice.rs:39,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/polyfill/slice.rs:40,1
    - Dst: split_at
      Src: /src/spdm-rs/external/ring/src/polyfill/slice.rs:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - slice
    - i
    argTypes:
    - '&[T]'
    - usize
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: split_at_checked
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice.rs
    functionUses: 0
    functionsReached:
    - Some
    - split_at
    - len
    linkageType: ''
    returnType: Option
    signature: 'pub fn split_at_checked<T>(slice: &[T], i: usize) -> Option<(&[T],
      &[T])>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/polyfill/slice.rs:51,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/polyfill/slice.rs:52,1
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/polyfill/slice.rs:53,1
    - Dst: ok
      Src: /src/spdm-rs/external/ring/src/polyfill/slice.rs:53,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/polyfill/slice.rs:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - slice
    argTypes:
    - '&mut [T]'
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: split_first_chunk_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice.rs
    functionUses: 1
    functionsReached:
    - map
    - try_into
    - ok
    - split_at_mut
    - len
    linkageType: ''
    returnType: Option
    signature: 'pub fn split_first_chunk_mut<T, const N: usize>(slice: &mut [T],)
      -> Option<(&mut [T; N], &mut [T])>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/polyfill/cstr.rs:50,1
    - Dst: cast
      Src: /src/spdm-rs/external/ring/src/polyfill/cstr.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: Ref::as_ptr
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/cstr.rs
    functionUses: 0
    functionsReached:
    - cast
    - as_ptr
    linkageType: ''
    returnType: '*const c_char'
    signature: pub fn as_ptr(&self) -> *const c_char
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/polyfill/cstr.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&''static [u8]'
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Ref::from_bytes_with_nul_unchecked
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/cstr.rs
    functionUses: 1
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'const unsafe fn from_bytes_with_nul_unchecked(value: &''static [u8])
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_from_bytes_with_nul
      Src: /src/spdm-rs/external/ring/src/polyfill/cstr.rs:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&''static [u8]'
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: unwrap_const_from_bytes_with_nul
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/cstr.rs
    functionUses: 0
    functionsReached:
    - const_from_bytes_with_nul
    linkageType: ''
    returnType: Ref
    signature: 'pub const fn unwrap_const_from_bytes_with_nul(value: &''static [u8])
      -> Ref'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - needle
    argTypes:
    - '&[u8]'
    - '&u8'
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: c::o::n::s::t::_::f::r::o::m::_::b::y::t::e::s::_::w::i::t::h::_::n::u::l::const_contains
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/cstr.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'const fn const_contains(mut value: &[u8], needle: &u8) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_contains
      Src: /src/spdm-rs/external/ring/src/polyfill/cstr.rs:82,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/polyfill/cstr.rs:87,1
    - Dst: Ref::from_bytes_with_nul_unchecked
      Src: /src/spdm-rs/external/ring/src/polyfill/cstr.rs:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&''static [u8]'
    constantsTouched: []
    func_position:
      end: 91
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 91
    functionName: const_from_bytes_with_nul
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/cstr.rs
    functionUses: 1
    functionsReached:
    - Some
    - Ref::from_bytes_with_nul_unchecked
    - const_contains
    linkageType: ''
    returnType: Option
    signature: 'const fn const_from_bytes_with_nul(value: &''static [u8]) -> Option<Ref>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl Fn([I; 4]) -> O
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: '[I; 12]::array_split_map'
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/array_split_map.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[O; 3]'
    signature: 'fn array_split_map(self, f: impl Fn([I; 4]) -> O) -> [O; 3]'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl Fn([I; 8]) -> O
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: '[I; 16]::array_split_map'
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/array_split_map.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[O; 2]'
    signature: 'fn array_split_map(self, f: impl Fn([I; 8]) -> O) -> [O; 2]'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl Fn([I; 4]) -> O
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: '[I; 32]::array_split_map'
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/array_split_map.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[O; 8]'
    signature: 'fn array_split_map(self, f: impl Fn([I; 4]) -> O) -> [O; 8]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert_exact_size_iterator
      Src: /src/spdm-rs/external/ring/src/polyfill/test.rs:6,1
    - Dst: Result::clone
      Src: /src/spdm-rs/external/ring/src/polyfill/test.rs:6,1
    - Dst: assert_exact_size_iterator
      Src: /src/spdm-rs/external/ring/src/polyfill/test.rs:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - it
    - expected
    argTypes:
    - impl ExactSizeIterator<Item = T> + Clone
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 9
      start: 1
    functionDepth: 3
    functionLinenumber: 1
    functionLinenumberEnd: 9
    functionName: assert_iterator
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/test.rs
    functionUses: 2
    functionsReached:
    - Result::clone
    - assert_exact_size_iterator
    linkageType: ''
    returnType: void
    signature: 'pub fn assert_iterator<T>(it: impl ExactSizeIterator<Item = T> + Clone,
      expected: &[T])whereT: Copy + core::fmt::Debug + PartialEq,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/polyfill/test.rs:19,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/polyfill/test.rs:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - it
    - expected
    argTypes:
    - impl ExactSizeIterator<Item = T>
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 29
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 29
    functionName: assert_exact_size_iterator
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/test.rs
    functionUses: 1
    functionsReached:
    - Result::len
    - len
    linkageType: ''
    returnType: void
    signature: 'fn assert_exact_size_iterator<T>(mut it: impl ExactSizeIterator<Item
      = T>, expected: &[T])whereT: Copy + core::fmt::Debug + PartialEq,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: LeadingZerosStripped::clone
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:30,1
    - Dst: peekable
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:31,1
    - Dst: next_if_eq
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:34,1
    - Dst: is_some
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - inner
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: LeadingZerosStripped::new
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs
    functionUses: 3
    functionsReached:
    - is_some
    - peekable
    - next_if_eq
    - len
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(inner: I) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: LeadingZerosStripped::next
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs
    functionUses: 0
    functionsReached:
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_hint
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: LeadingZerosStripped::size_hint
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs
    functionUses: 0
    functionsReached:
    - size_hint
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:73,1
    - Dst: copied
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:73,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:73,1
    - Dst: LeadingZerosStripped::new
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:74,1
    - Dst: untrusted::Input::iter
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:74,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:74,1
    - Dst: super::super::test::assert_iterator
      Src: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: tests::test_leading_zeroes_stripped
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs
    functionUses: 0
    functionsReached:
    - super::super::test::assert_iterator
    - Self::IntoIter::copied
    - copied
    - for_each
    - untrusted::Input::iter
    - iter
    - LeadingZerosStripped::new
    linkageType: ''
    returnType: void
    signature: fn test_leading_zeroes_stripped()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - Option<T>
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: unwrap_const
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/unwrap_const.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: 'pub const fn unwrap_const<T>(x: Option<T>) -> TwhereT: Copy,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:25,1
    - Dst: usize::checked_mul
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:25,1
    - Dst: flat_map
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:26,1
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - inner
    - f
    argTypes:
    - I
    - F
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: ArrayFlatMap::new
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs
    functionUses: 4
    functionsReached:
    - usize::checked_mul
    - Some
    - flat_map
    - len
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(inner: I, f: F) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:39,1
    - Dst: is_some
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: ArrayFlatMap::next
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs
    functionUses: 0
    functionsReached:
    - next
    - is_some
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: ArrayFlatMap::size_hint
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:82,1
    - Dst: copied
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:82,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:82,1
    - Dst: ArrayFlatMap::new
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:83,1
    - Dst: untrusted::Input::iter
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:83,1
    - Dst: Self::IntoIter::copied
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:83,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:83,1
    - Dst: super::super::test::assert_iterator
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 86
    functionName: tests::test_array_flat_map
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs
    functionUses: 0
    functionsReached:
    - super::super::test::assert_iterator
    - ArrayFlatMap::new
    - Self::IntoIter::copied
    - copied
    - for_each
    - untrusted::Input::iter
    - Option::unwrap
    - iter
    linkageType: ''
    returnType: void
    signature: fn test_array_flat_map()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:116,1
    - Dst: copied
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:116,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:116,1
    - Dst: ArrayFlatMap::new
      Src: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 126
    functionName: tests::test_array_flat_map_len_overflow
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs
    functionUses: 0
    functionsReached:
    - for_each
    - iter
    - copied
    - ArrayFlatMap::new
    linkageType: ''
    returnType: void
    signature: fn test_array_flat_map_len_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 101
    functionName: cold_exhaustive_error
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/cold_error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::iter_mut
      Src: /src/spdm-rs/external/ring/src/polyfill/sliceutil.rs:20,1
    - Dst: zip
      Src: /src/spdm-rs/external/ring/src/polyfill/sliceutil.rs:20,1
    - Dst: for_each
      Src: /src/spdm-rs/external/ring/src/polyfill/sliceutil.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - '&mut [T]'
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: overwrite_at_start
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/sliceutil.rs
    functionUses: 6
    functionsReached:
    - Vec::iter_mut
    - for_each
    - zip
    linkageType: ''
    returnType: void
    signature: 'pub fn overwrite_at_start<T: Copy>(a: &mut [T], b: &[T])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:21,1
    - Dst: split_at
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:22,1
    - Dst: AsChunks
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - slice
    argTypes:
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: as_chunks
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 10
    functionsReached:
    - AsChunks
    - split_at
    - len
    linkageType: ''
    returnType: (AsChunks
    signature: 'pub fn as_chunks<T, const N: usize>(slice: &[T]) -> (AsChunks<T, N>,
      &[T])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&''a [T; N]'
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: AsChunks::from_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 0
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_ref(value: &''a [T; N]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: AsChunks::as_flattened
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[T]'
    signature: pub fn as_flattened(&self) -> &[T]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:43,1
    - Dst: cast
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: AsChunks::as_ptr
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 0
    functionsReached:
    - cast
    - as_ptr
    linkageType: ''
    returnType: '*const [T; N]'
    signature: pub fn as_ptr(&self) -> *const [T; N]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: AsChunks::is_empty
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 0
    functionsReached:
    - is_empty
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: AsChunks::len
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_into
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:67,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: AsChunks::index
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - try_into
    linkageType: ''
    returnType: '&Self::Output'
    signature: 'fn index(&self, index: usize) -> &Self::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsChunksIter
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:77,1
    - Dst: chunks_exact
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: AsChunks::into_iter
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 0
    functionsReached:
    - chunks_exact
    - AsChunksIter
    linkageType: ''
    returnType: Self::IntoIter
    signature: fn into_iter(self) -> Self::IntoIter
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:88,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:88,1
    - Dst: Result::try_into
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:88,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: AsChunksIter::next
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 0
    functionsReached:
    - next
    - map
    - Result::unwrap
    - Result::try_into
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - as_2x
    argTypes:
    - AsChunks<'a, T, 8>
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: AsChunks::from
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
    functionUses: 0
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'fn from(as_2x: AsChunks<''a, T, 8>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:20,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:21,1
    - Dst: AsChunksMut
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - slice
    argTypes:
    - '&mut [T]'
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: as_chunks_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 5
    functionsReached:
    - AsChunksMut
    - split_at_mut
    - len
    linkageType: ''
    returnType: (AsChunksMut
    signature: 'pub fn as_chunks_mut<T, const N: usize>(slice: &mut [T]) -> (AsChunksMut<T,
      N>, &mut [T])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: AsChunksMut::as_flattened
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[T]'
    signature: pub fn as_flattened(&self) -> &[T]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: AsChunksMut::as_flattened_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut [T]'
    signature: pub fn as_flattened_mut(&mut self) -> &mut [T]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ptr
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:45,1
    - Dst: cast
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: AsChunksMut::as_ptr
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 0
    functionsReached:
    - cast
    - as_ptr
    linkageType: ''
    returnType: '*const [T; N]'
    signature: pub fn as_ptr(&self) -> *const [T; N]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut_ptr
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:50,1
    - Dst: cast
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: AsChunksMut::as_mut_ptr
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 0
    functionsReached:
    - cast
    - as_mut_ptr
    linkageType: ''
    returnType: '*mut [T; N]'
    signature: pub fn as_mut_ptr(&mut self) -> *mut [T; N]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsChunksMut
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: AsChunksMut::as_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 0
    functionsReached:
    - AsChunksMut
    linkageType: ''
    returnType: AsChunksMut
    signature: pub fn as_mut(&mut self) -> AsChunksMut<T, N>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsChunks::<T, N>::from
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: AsChunksMut::as_ref
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 0
    functionsReached:
    - AsChunks::<T, N>::from
    linkageType: ''
    returnType: AsChunks
    signature: pub fn as_ref(&self) -> AsChunks<T, N>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsChunksMutChunksMutIter
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:68,1
    - Dst: chunks_mut
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: AsChunksMut::chunks_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 0
    functionsReached:
    - chunks_mut
    - AsChunksMutChunksMutIter
    linkageType: ''
    returnType: AsChunksMutChunksMutIter
    signature: 'pub fn chunks_mut<const CHUNK_LEN: usize>(&mut self) -> AsChunksMutChunksMutIter<T,
      N>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:74,1
    - Dst: AsChunksMut
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:75,1
    - Dst: AsChunksMut
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mid
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: AsChunksMut::split_at_mut
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 0
    functionsReached:
    - AsChunksMut
    - split_at_mut
    linkageType: ''
    returnType: (AsChunksMut
    signature: 'pub fn split_at_mut(&mut self, mid: usize) -> (AsChunksMut<T, N>,
      AsChunksMut<T, N>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:86,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: AsChunksMutChunksMutIter::next
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
    functionUses: 0
    functionsReached:
    - next
    - map
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AtomicUsize::new
      Src: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: OnceNonZeroUsize::new
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs
    functionUses: 0
    functionsReached:
    - AtomicUsize::new
    linkageType: ''
    returnType: OnceNonZeroUsize
    signature: pub const fn new() -> OnceNonZeroUsize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs:44,1
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 8
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: OnceNonZeroUsize::get
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs
    functionUses: 0
    functionsReached:
    - NonZeroUsize::new
    - load
    linkageType: ''
    returnType: Option
    signature: pub fn get(&self) -> Option<NonZeroUsize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs:58,1
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs:59,1
    - Dst: OnceNonZeroUsize::init
      Src: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 12
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: OnceNonZeroUsize::get_or_init
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs
    functionUses: 0
    functionsReached:
    - NonZeroUsize::new
    - load
    - OnceNonZeroUsize::init
    linkageType: ''
    returnType: NonZeroUsize
    signature: 'pub fn get_or_init<F>(&self, f: F) -> NonZeroUsizewhereF: FnOnce()
      -> NonZeroUsize,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::get
      Src: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs:68,1
    - Dst: compare_exchange
      Src: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs:69,1
    - Dst: NonZeroUsize::new_unchecked
      Src: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl FnOnce() -> NonZeroUsize
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 13
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: OnceNonZeroUsize::init
    functionSourceFile: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs
    functionUses: 1
    functionsReached:
    - SpdmCertChainBuffer::get
    - compare_exchange
    - NonZeroUsize::new_unchecked
    linkageType: ''
    returnType: NonZeroUsize
    signature: 'fn init(&self, f: impl FnOnce() -> NonZeroUsize) -> NonZeroUsize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_or_init
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:141,1
    - Dst: cpu::Features::new_after_feature_flags_written_and_synced_unchecked
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 101
    functionDepth: 13
    functionLinenumber: 101
    functionLinenumberEnd: 145
    functionName: featureflags::get_or_init
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/arm.rs
    functionUses: 1
    functionsReached:
    - cpu::Features::new_after_feature_flags_written_and_synced_unchecked
    - get_or_init
    linkageType: ''
    returnType: cpu::Features
    signature: pub(in super::super) fn get_or_init() -> cpu::Features
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:154,1
    - Dst: map
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:154,1
    - Dst: unwrap_or
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - _cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 161
      start: 147
    functionDepth: 13
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: featureflags::get
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/arm.rs
    functionUses: 1
    functionsReached:
    - map
    - unwrap_or
    - get
    linkageType: ''
    returnType: u32
    signature: 'pub(in super::super) fn get(_cpu_features: cpu::Features) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - leaf
    - bit
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: c::p::u::i::d::_::t::o::_::c::a::p::s::_::a::n::d::_::s::e::t::_::c::_::f::l::a::g::s::check
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/intel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn check(leaf: u32, bit: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - shift
    argTypes:
    - '&mut u32'
    - Shift
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: c::p::u::i::d::_::t::o::_::c::a::p::s::_::a::n::d::_::s::e::t::_::c::_::f::l::a::g::s::set
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/intel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set(out: &mut u32, shift: Shift)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:133,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:176,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:177,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:179,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:195,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:196,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:207,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:208,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:216,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:218,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:228,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:229,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:231,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:240,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:241,1
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:244,1
    - Dst: u8::store
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:252,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:265,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:266,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:268,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:269,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:274,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:275,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:281,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:284,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:285,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:288,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:290,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:307,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:308,1
    - Dst: check
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:311,1
    - Dst: set
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:313,1
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:318,1
    - Dst: u8::store
      Src: /src/spdm-rs/external/ring/src/cpu/intel.rs:326,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 126
    argCount: 1
    argNames:
    - cpuid
    argTypes:
    - '&[u32; 4]'
    constantsTouched: []
    func_position:
      end: 331
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 331
    functionName: cpuid_to_caps_and_set_c_flags
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/intel.rs
    functionUses: 0
    functionsReached:
    - u8::store
    - prefixed_extern
    - check
    - set
    linkageType: ''
    returnType: u32
    signature: 'fn cpuid_to_caps_and_set_c_flags(cpuid: &[u32; 4]) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: tests::x86_has_sse2
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/intel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn x86_has_sse2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: detect::detect_features
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:103,1
    - Dst: Neon::mask
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:105,1
    - Dst: Neon::mask
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:109,1
    - Dst: Neon::mask
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:121,1
    - Dst: Neon::mask
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:121,1
    - Dst: prefixed_extern
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:124,1
    - Dst: store
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:132,1
    - Dst: usize_from_u32
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:135,1
    - Dst: NonZeroUsize::new
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:136,1
    - Dst: OnceNonZeroUsize::unwrap
      Src: /src/spdm-rs/external/ring/src/cpu/arm.rs:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 137
    functionName: f::e::a::t::u::r::e::f::l::a::g::s::::::::g::e::t::_::o::r::_::i::n::i::t::init
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/arm.rs
    functionUses: 0
    functionsReached:
    - OnceNonZeroUsize::unwrap
    - NonZeroUsize::new
    - Neon::mask
    - prefixed_extern
    - store
    - usize_from_u32
    - detect::detect_features
    linkageType: ''
    returnType: NonZeroUsize
    signature: fn init() -> NonZeroUsize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsProcessorFeaturePresent
      Src: /src/spdm-rs/external/ring/src/cpu/arm/windows.rs:28,1
    - Dst: Aes::mask
      Src: /src/spdm-rs/external/ring/src/cpu/arm/windows.rs:32,1
    - Dst: PMull::mask
      Src: /src/spdm-rs/external/ring/src/cpu/arm/windows.rs:33,1
    - Dst: Sha256::mask
      Src: /src/spdm-rs/external/ring/src/cpu/arm/windows.rs:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: detect_features
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/arm/windows.rs
    functionUses: 1
    functionsReached:
    - Sha256::mask
    - IsProcessorFeaturePresent
    - PMull::mask
    - Aes::mask
    linkageType: ''
    returnType: u32
    signature: pub fn detect_features() -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::size_of_val
      Src: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs:60,1
    - Dst: polyfill::ptr::from_mut
      Src: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs:61,1
    - Dst: cast::<c_void>
      Src: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs:61,1
    - Dst: libc::sysctlbyname
      Src: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs:64,1
    - Dst: SpdmResult::as_ptr
      Src: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs:64,1
    - Dst: core::ptr::null_mut
      Src: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs:64,1
    - Dst: mem::size_of_val
      Src: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - name
    argTypes:
    - cstr::Ref
    constantsTouched: []
    func_position:
      end: 75
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 75
    functionName: d::e::t::e::c::t::_::f::e::a::t::u::r::e::s::detect_feature
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs
    functionUses: 0
    functionsReached:
    - polyfill::ptr::from_mut
    - mem::size_of_val
    - core::ptr::null_mut
    - libc::sysctlbyname
    - cast::<c_void>
    - SpdmResult::as_ptr
    linkageType: ''
    returnType: bool
    signature: 'fn detect_feature(name: cstr::Ref) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 15
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: tests::sha512_detection
    functionSourceFile: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs
    functionUses: 0
    functionsReached:
    - cpu::features
    linkageType: ''
    returnType: void
    signature: fn sha512_detection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::len
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:36,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:37,1
    - Dst: error::KeyRejected::too_large
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:37,1
    - Dst: untrusted::Input::read_all
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:39,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:39,1
    - Dst: untrusted::Input::peek
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:42,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:43,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:43,1
    - Dst: untrusted::Input::read_byte
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:47,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:47,1
    - Dst: error::KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:49,1
    - Dst: u64::from
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:50,1
    - Dst: untrusted::Input::at_end
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:51,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:52,1
    - Dst: NonZeroU64::new
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:61,1
    - Dst: Self::ok_or_else
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:61,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:63,1
    - Dst: error::KeyRejected::too_small
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:63,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:66,1
    - Dst: error::KeyRejected::too_large
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:66,1
    - Dst: SpdmResult::get
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:70,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:71,1
    - Dst: error::KeyRejected::invalid_component
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:71,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:74,1
    - Dst: Self
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:74,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 76
    argCount: 2
    argNames:
    - input
    - min_value
    argTypes:
    - untrusted::Input
    - Self
    constantsTouched: []
    func_position:
      end: 75
      start: 29
    functionDepth: 13
    functionLinenumber: 29
    functionLinenumberEnd: 75
    functionName: PublicExponent::from_be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs
    functionUses: 1
    functionsReached:
    - error::KeyRejected::invalid_component
    - Self::ok_or_else
    - u64::from
    - untrusted::Input::read_byte
    - error::KeyRejected::invalid_encoding
    - Err
    - NonZeroU64::new
    - untrusted::Input::at_end
    - untrusted::Input::peek
    - Ok
    - error::KeyRejected::too_small
    - Self
    - error::KeyRejected::too_large
    - untrusted::Input::read_all
    - untrusted::Input::len
    - SpdmResult::get
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn from_be_bytes(input: untrusted::Input,min_value: Self,)
      -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ArrayFlatMap::new
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:82,1
    - Dst: core::iter::once
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:82,1
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:82,1
    - Dst: Option::unwrap
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:82,1
    - Dst: LeadingZerosStripped::new
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 13
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: PublicExponent::be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs
    functionUses: 0
    functionsReached:
    - ArrayFlatMap::new
    - core::iter::once
    - Option::unwrap
    - LeadingZerosStripped::new
    - get
    linkageType: ''
    returnType: impl ExactSizeIterator
    signature: pub fn be_bytes(&self) -> impl ExactSizeIterator<Item = u8> + Clone
      + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: PublicExponent::value
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonZeroU64
    signature: pub(super) fn value(self) -> NonZeroU64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:97,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: tests::test_public_exponent_constants
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs
    functionUses: 0
    functionsReached:
    - into
    - iter
    linkageType: ''
    returnType: void
    signature: fn test_public_exponent_constants()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::encode
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - encoding
    - m_hash
    - m_out
    - mod_bits
    - rng
    argTypes:
    - '&dyn RsaEncoding'
    - digest::Digest
    - '&mut [u8]'
    - bits::BitLength
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: encode
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding.rs
    functionUses: 342
    functionsReached:
    - Self::encode
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn encode(encoding: &dyn RsaEncoding,m_hash: digest::Digest,m_out:
      &mut [u8],mod_bits: bits::BitLength,rng: &dyn rand::SecureRandom,) -> Result<(),
      error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::output_len
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:76,1
    - Dst: '&mut [u8]::chunks_mut'
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:79,1
    - Dst: Result::enumerate
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:79,1
    - Dst: digest::Context::new
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:80,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:81,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:84,1
    - Dst: u32::to_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:84,1
    - Dst: Result::try_into
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:84,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:84,1
    - Dst: Self::finish
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:85,1
    - Dst: bb::xor_assign_at_start
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:89,1
    - Dst: Digest::as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 3
    argNames:
    - digest_alg
    - seed
    - out
    argTypes:
    - '&''static digest::Algorithm'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 11
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: mgf1
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding.rs
    functionUses: 2
    functionsReached:
    - Self::finish
    - u32::to_be_bytes
    - Digest::as_ref
    - Result::unwrap
    - Self::update
    - Option::output_len
    - digest::Context::new
    - bb::xor_assign_at_start
    - Result::enumerate
    - Result::try_into
    - '&mut [u8]::chunks_mut'
    linkageType: ''
    returnType: void
    signature: 'fn mgf1(digest_alg: &''static digest::Algorithm, seed: &[u8], out:
      &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:102,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:103,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:107,1
    - Dst: String::as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:108,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:115,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:116,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:117,1
    - Dst: Option::digest_alg
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:117,1
    - Dst: SpdmResult::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:117,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:119,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:120,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:123,1
    - Dst: Option::consume_usize_bits
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:125,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:126,1
    - Dst: Elem::read_all
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:129,1
    - Dst: Option::verify
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:129,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 101
    functionDepth: 8
    functionLinenumber: 101
    functionLinenumberEnd: 135
    functionName: test::test_pss_padding_verify
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - String::as_ref
    - test_vector_file
    - untrusted::Input::from
    - Option::digest_alg
    - Elem::read_all
    - Option::verify
    - Ok
    - Option::consume_usize_bits
    - test::run
    - Option::consume_string
    - digest::digest
    - SpdmResult::as_slice_less_safe
    linkageType: ''
    returnType: void
    signature: fn test_pss_padding_verify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:141,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:142,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:146,1
    - Dst: String::as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:147,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:154,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:155,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:156,1
    - Dst: Option::consume_usize_bits
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:157,1
    - Dst: Option::consume_string
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:158,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:162,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:168,1
    - Dst: Option::digest_alg
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:168,1
    - Dst: Option::encode
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:170,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:170,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/padding.rs:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 140
    functionDepth: 8
    functionLinenumber: 140
    functionLinenumberEnd: 176
    functionName: test::test_pss_padding_encode
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - String::as_ref
    - test_vector_file
    - Option::digest_alg
    - Ok
    - Result::unwrap
    - Option::consume_usize_bits
    - test::run
    - Option::consume_string
    - Option::encode
    - digest::digest
    linkageType: ''
    returnType: void
    signature: fn test_pss_padding_encode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_struct
      Src: /src/spdm-rs/external/ring/src/rsa/keypair_components.rs:34,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/rsa/keypair_components.rs:34,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/rsa/keypair_components.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 15
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: KeyPairComponents::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair_components.rs
    functionUses: 0
    functionsReached:
    - SpdmCertChainBuffer::debug_struct
    - field
    - finish
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter<''_>) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkcs8::unwrap_key_
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:100,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:101,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:103,1
    - Dst: Self::from_der
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:105,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkcs8
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 7
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: KeyPair::from_pkcs8
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 11
    functionsReached:
    - untrusted::Input::from
    - pkcs8::unwrap_key_
    - as_slice_less_safe
    - Self::from_der
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_pkcs8(pkcs8: &[u8]) -> Result<Self, KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:127,1
    - Dst: Self::read_all
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:127,1
    - Dst: KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:127,1
    - Dst: der::nested
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:128,1
    - Dst: KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 6
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: KeyPair::from_der
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 4
    functionsReached:
    - untrusted::Input::from
    - KeyRejected::invalid_encoding
    - der::nested
    - Self::read_all
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_der(input: &[u8]) -> Result<Self, KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: der::nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:147,1
    - Dst: Result::map
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:147,1
    - Dst: untrusted::Input::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:148,1
    - Dst: '[O; 3]::map_err'
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:147,1
    - Dst: KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&mut untrusted::Reader<''a>'
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: K::e::y::P::a::i::r::::::::f::r::o::m::_::d::e::r::_::r::e::a::d::e::r::nonnegative_integer
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 0
    functionsReached:
    - der::nonnegative_integer
    - untrusted::Input::as_slice_less_safe
    - Result::map
    - KeyRejected::invalid_encoding
    - '[O; 3]::map_err'
    linkageType: ''
    returnType: Result
    signature: 'fn nonnegative_integer<''a>(input: &mut untrusted::Reader<''a>,) ->
      Result<&''a [u8], KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: der::small_nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:138,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:138,1
    - Dst: KeyRejected::invalid_encoding
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:139,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:141,1
    - Dst: KeyRejected::version_not_supported
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:141,1
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:152,1
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:153,1
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:154,1
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:155,1
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:156,1
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:157,1
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:158,1
    - Dst: nonnegative_integer
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:159,1
    - Dst: Self::from_components
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:171,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&mut untrusted::Reader'
    constantsTouched: []
    func_position:
      end: 172
      start: 137
    functionDepth: 19
    functionLinenumber: 137
    functionLinenumberEnd: 172
    functionName: KeyPair::from_der_reader
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 0
    functionsReached:
    - KeyRejected::version_not_supported
    - Err
    - Self::from_components
    - Result::map_err
    - der::small_nonnegative_integer
    - KeyRejected::invalid_encoding
    - nonnegative_integer
    linkageType: ''
    returnType: Result
    signature: 'fn from_der_reader(input: &mut untrusted::Reader) -> Result<Self,
      KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:228,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:229,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:231,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:232,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:233,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:234,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:235,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:236,1
    - Dst: Self::from_components_
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:238,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - components
    argTypes:
    - '&KeyPairComponents<Public, Private>'
    constantsTouched: []
    func_position:
      end: 239
      start: 219
    functionDepth: 18
    functionLinenumber: 219
    functionLinenumberEnd: 239
    functionName: KeyPair::from_components
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 0
    functionsReached:
    - cpu::features
    - Self::from_components_
    - as_ref
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_components<Public, Private>(components: &KeyPairComponents<Public,
      Private>,) -> Result<Self, KeyRejected>wherePublic: AsRef<[u8]>,Private: AsRef<[u8]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:253,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:254,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:255,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:256,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:257,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:258,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:278,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:279,1
    - Dst: PublicKey::from_modulus_and_exponent
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:280,1
    - Dst: BitLength::from_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:283,1
    - Dst: Result::inner
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:289,1
    - Dst: n
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:289,1
    - Dst: oneRR
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:289,1
    - Dst: Result::inner
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:290,1
    - Dst: n
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:290,1
    - Dst: value
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:290,1
    - Dst: Result::inner
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:306,1
    - Dst: n
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:306,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:306,1
    - Dst: PrivatePrime::new
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:308,1
    - Dst: PrivatePrime::new
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:309,1
    - Dst: to_elem
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:322,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:322,1
    - Dst: KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:325,1
    - Dst: to_elem
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:326,1
    - Dst: map_err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:326,1
    - Dst: KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:329,1
    - Dst: bigint::elem_mul
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:330,1
    - Dst: bigint::elem_mul
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:331,1
    - Dst: Elem::is_zero
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:332,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:333,1
    - Dst: KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:333,1
    - Dst: bigint::OwnedModulusValue::<D>::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:343,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:343,1
    - Dst: KeyRejected::invalid_component
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:344,1
    - Dst: BitLength::half_rounded_up
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:345,1
    - Dst: Vec::len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:345,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:346,1
    - Dst: KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:346,1
    - Dst: Vec::verify_less_than
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:350,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:350,1
    - Dst: KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:351,1
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:355,1
    - Dst: bigint::Elem::from_be_bytes_padded
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:360,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:360,1
    - Dst: KeyRejected::invalid_component
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:361,1
    - Dst: bigint::elem_mul
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:368,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:368,1
    - Dst: bigint::elem_reduced
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:369,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:369,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:369,1
    - Dst: bigint::elem_mul
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:370,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:370,1
    - Dst: bigint::verify_inverses_consttime
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:371,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:371,1
    - Dst: KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:372,1
    - Dst: PrivateCrtPrime::new
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:376,1
    - Dst: PrivateCrtPrime::new
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:377,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:379,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 130
    argCount: 2
    argNames:
    - cpu_features
    argTypes:
    - '&KeyPairComponents<&[u8]>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 385
      start: 241
    functionDepth: 17
    functionLinenumber: 241
    functionLinenumberEnd: 385
    functionName: KeyPair::from_components_
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 0
    functionsReached:
    - PublicKey::from_modulus_and_exponent
    - alloc_zero
    - to_elem
    - Result::map_err
    - bigint::verify_inverses_consttime
    - modulus
    - value
    - BitLength::half_rounded_up
    - bigint::Elem::from_be_bytes_padded
    - n
    - oneRR
    - bigint::OwnedModulusValue::<D>::from_be_bytes
    - KeyRejected::inconsistent_components
    - Vec::verify_less_than
    - bigint::elem_reduced
    - bigint::elem_mul
    - Err
    - Ok
    - Result::inner
    - len_bits
    - map_err
    - KeyRejected::invalid_component
    - BitLength::from_bits
    - Vec::len_bits
    - as_ref
    - untrusted::Input::from
    - Elem::is_zero
    - PrivateCrtPrime::new
    - PrivatePrime::new
    linkageType: ''
    returnType: Result
    signature: fn from_components_(&KeyPairComponents
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: KeyPair::public
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: '&PublicKey'
    signature: pub fn public(&self) -> &PublicKey
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyPair::public
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:398,1
    - Dst: '&PublicKey::modulus_len'
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: KeyPair::public_modulus_len
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 0
    functionsReached:
    - KeyPair::public
    - '&PublicKey::modulus_len'
    linkageType: ''
    returnType: usize
    signature: pub fn public_modulus_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bigint::OwnedModulusValue::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:421,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:430,1
    - Dst: BitLength::half_rounded_up
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:430,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:431,1
    - Dst: KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:431,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:434,1
    - Dst: BitLength::as_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:434,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:435,1
    - Dst: KeyRejected::private_modulus_len_not_multiple_of_512_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:435,1
    - Dst: bigint::OwnedModulus::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:442,1
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:443,1
    - Dst: bigint::One::newRR
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:444,1
    - Dst: OwnedModulus::alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:444,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 3
    argNames:
    - p
    - n_bits
    - cpu_features
    argTypes:
    - untrusted::Input
    - BitLength
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 447
      start: 416
    functionDepth: 14
    functionLinenumber: 416
    functionLinenumberEnd: 447
    functionName: PrivatePrime::new
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 1
    functionsReached:
    - BitLength::as_bits
    - bigint::OwnedModulusValue::from_be_bytes
    - KeyRejected::private_modulus_len_not_multiple_of_512_bits
    - BitLength::half_rounded_up
    - bigint::One::newRR
    - Err
    - OwnedModulus::alloc_zero
    - Ok
    - len_bits
    - bigint::OwnedModulus::from
    - KeyRejected::inconsistent_components
    - modulus
    linkageType: ''
    returnType: Result
    signature: 'fn new(p: untrusted::Input,n_bits: BitLength,cpu_features: cpu::Features,)
      -> Result<Self, KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:464,1
    - Dst: bigint::PrivateExponent::from_be_bytes_padded
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:466,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:466,1
    - Dst: KeyRejected::inconsistent_components
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:467,1
    - Dst: bigint::One::newRRR
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:478,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - p
    - dP
    - cpu_features
    argTypes:
    - PrivatePrime<M>
    - untrusted::Input
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 485
      start: 459
    functionDepth: 16
    functionLinenumber: 459
    functionLinenumberEnd: 485
    functionName: PrivateCrtPrime::new
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 1
    functionsReached:
    - bigint::One::newRRR
    - Ok
    - Result::map_err
    - bigint::PrivateExponent::from_be_bytes_padded
    - KeyRejected::inconsistent_components
    - modulus
    linkageType: ''
    returnType: Result
    signature: 'fn new(p: PrivatePrime<M>,dP: untrusted::Input,cpu_features: cpu::Features,)
      -> Result<Self, KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:540,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:542,1
    - Dst: KeyPair::public
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:542,1
    - Dst: '&PublicKey::modulus_len'
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:542,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:543,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:546,1
    - Dst: '&''static dyn RsaEncoding::digest_alg'
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:546,1
    - Dst: padding::encode
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:550,1
    - Dst: KeyPair::public
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:554,1
    - Dst: '&PublicKey::inner'
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:554,1
    - Dst: n
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:554,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:554,1
    - Dst: KeyPair::private_exponentiate
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:562,1
    - Dst: fill_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:565,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 4
    argNames:
    - padding_alg
    - rng
    - msg
    - signature
    argTypes:
    - '&''static dyn RsaEncoding'
    - '&dyn rand::SecureRandom'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 568
      start: 533
    functionDepth: 15
    functionLinenumber: 533
    functionLinenumberEnd: 568
    functionName: KeyPair::sign
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 0
    functionsReached:
    - padding::encode
    - cpu::features
    - SpdmResult::len
    - Err
    - '&PublicKey::inner'
    - KeyPair::private_exponentiate
    - '&''static dyn RsaEncoding::digest_alg'
    - Ok
    - n
    - len_bits
    - '&PublicKey::modulus_len'
    - fill_be_bytes
    - digest::digest
    - KeyPair::public
    linkageType: ''
    returnType: Result
    signature: 'pub fn sign(&self,padding_alg: &''static dyn RsaEncoding,rng: &dyn
      rand::SecureRandom,msg: &[u8],signature: &mut [u8],) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:587,1
    - Dst: n
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:587,1
    - Dst: value
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:587,1
    - Dst: inner
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:588,1
    - Dst: n
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:588,1
    - Dst: oneRR
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:588,1
    - Dst: bigint::Elem::from_be_bytes_padded
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:591,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:591,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:597,1
    - Dst: elem_exp_consttime
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:598,1
    - Dst: elem_exp_consttime
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:599,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:599,1
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:605,1
    - Dst: bigint::elem_reduced_once
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:606,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:606,1
    - Dst: bigint::elem_sub
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:607,1
    - Dst: bigint::elem_mul
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:608,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:615,1
    - Dst: bigint::elem_widen
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:616,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:616,1
    - Dst: to_elem
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:617,1
    - Dst: bigint::elem_mul
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:618,1
    - Dst: bigint::elem_mul
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:619,1
    - Dst: bigint::elem_widen
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:620,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:620,1
    - Dst: bigint::elem_add
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:621,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:634,1
    - Dst: inner
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:635,1
    - Dst: exponentiate_elem
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:635,1
    - Dst: bigint::elem_verify_equal_consttime
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:639,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:644,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 2
    argNames:
    - base
    - cpu_features
    argTypes:
    - '&[u8]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 645
      start: 577
    functionDepth: 12
    functionLinenumber: 577
    functionLinenumberEnd: 645
    functionName: KeyPair::private_exponentiate
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 1
    functionsReached:
    - alloc_zero
    - to_elem
    - bigint::elem_reduced_once
    - bigint::elem_sub
    - modulus
    - value
    - bigint::elem_widen
    - bigint::Elem::from_be_bytes_padded
    - n
    - oneRR
    - elem_exp_consttime
    - bigint::elem_mul
    - exponentiate_elem
    - Ok
    - len_bits
    - untrusted::Input::from
    - bigint::elem_verify_equal_consttime
    - bigint::elem_add
    - inner
    linkageType: ''
    returnType: Result
    signature: 'fn private_exponentiate(&self,base: &[u8],cpu_features: cpu::Features,)
      -> Result<bigint::Elem<N>, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:656,1
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:657,1
    - Dst: test_vector_file
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:658,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:662,1
    - Dst: KeyPair::from_pkcs8
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:663,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:663,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:665,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:666,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:667,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:668,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:669,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:670,1
    - Dst: Result::len
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:677,1
    - Dst: Option::len
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:677,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:678,1
    - Dst: Option::private_exponentiate
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:679,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:679,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/keypair.rs:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 684
      start: 655
    functionDepth: 15
    functionLinenumber: 655
    functionLinenumberEnd: 684
    functionName: tests::test_rsakeypair_private_exponentiate
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/keypair.rs
    functionUses: 0
    functionsReached:
    - Option::consume_bytes
    - cpu::features
    - test_vector_file
    - KeyPair::from_pkcs8
    - Result::unwrap
    - copy_from_slice
    - Option::private_exponentiate
    - Ok
    - Option::len
    - test::run
    - Result::len
    linkageType: ''
    returnType: void
    signature: fn test_rsakeypair_private_exponentiate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_public_key
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:34,1
    - Dst: verify_rsa_
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:35,1
    - Dst: big_endian_without_leading_zero_as_input
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:38,1
    - Dst: big_endian_without_leading_zero_as_input
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:39,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - public_key
    - msg
    - signature
    argTypes:
    - untrusted::Input
    - untrusted::Input
    - untrusted::Input
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 17
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: RsaParameters::verify
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/verification.rs
    functionUses: 0
    functionsReached:
    - cpu::features
    - verify_rsa_
    - big_endian_without_leading_zero_as_input
    - parse_public_key
    linkageType: ''
    returnType: Result
    signature: 'fn verify(&self,public_key: untrusted::Input,msg: untrusted::Input,signature:
      untrusted::Input,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: rsa_params
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/verification.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verify_rsa_
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:185,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:188,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:188,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:189,1
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:189,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:191,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:192,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - params
    - message
    - signature
    argTypes:
    - '&RsaParameters'
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 17
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: super::PublicKeyComponents::verify
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/verification.rs
    functionUses: 0
    functionsReached:
    - untrusted::Input::from
    - cpu::features
    - verify_rsa_
    - as_ref
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify(&self,params: &RsaParameters,message: &[u8],signature:
      &[u8],) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits::BitLength::from_byte_len
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:206,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:206,1
    - Dst: public_key::Inner::from_modulus_and_exponent
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:213,1
    - Dst: Option::exponentiate
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:224,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:227,1
    - Dst: digest_alg
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:227,1
    - Dst: SpdmResult::as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:227,1
    - Dst: untrusted::Input::from
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:228,1
    - Dst: Self::read_all
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:228,1
    - Dst: verify
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:229,1
    - Dst: Option::n
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:229,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/verification.rs:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 5
    argNames:
    - params
    - msg
    - signature
    - cpu_features
    argTypes:
    - '&RsaParameters'
    - (untrusted::Input, untrusted::Input)
    - untrusted::Input
    - untrusted::Input
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 231
      start: 198
    functionDepth: 16
    functionLinenumber: 198
    functionLinenumberEnd: 231
    functionName: verify_rsa_
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/verification.rs
    functionUses: 2
    functionsReached:
    - untrusted::Input::from
    - verify
    - bits::BitLength::from_byte_len
    - Result::map_err
    - Option::exponentiate
    - digest_alg
    - len_bits
    - Self::read_all
    - Option::n
    - public_key::Inner::from_modulus_and_exponent
    - digest::digest
    - SpdmResult::as_slice_less_safe
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn verify_rsa_(params: &RsaParameters,(n, e): (untrusted::Input,
      untrusted::Input),msg: untrusted::Input,signature: untrusted::Input,cpu_features:
      cpu::Features,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmResult::clone
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:19,1
    - Dst: cpu::features
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:23,1
    - Dst: SpdmResult::modulus
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:24,1
    - Dst: '&bigint::Elem::clone_into'
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:25,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 15
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: PublicModulus::clone
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs
    functionUses: 0
    functionsReached:
    - '&bigint::Elem::clone_into'
    - cpu::features
    - alloc_zero
    - SpdmResult::modulus
    - SpdmResult::clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RangeInclusive<bits::BitLength>::start
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:47,1
    - Dst: RangeInclusive<bits::BitLength>::end
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:48,1
    - Dst: bigint::OwnedModulusValue::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:56,1
    - Dst: SpdmResult::len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:57,1
    - Dst: bits::BitLength::from_byte_len
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:63,1
    - Dst: Self::as_usize_bytes_rounded_up
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:63,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:63,1
    - Dst: unwrap
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:63,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:67,1
    - Dst: error::KeyRejected::too_small
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:67,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:70,1
    - Dst: error::KeyRejected::too_large
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:70,1
    - Dst: bigint::OwnedModulus::from
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:72,1
    - Dst: SpdmResult::modulus
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:73,1
    - Dst: bigint::One::newRR
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:74,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:74,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - n
    - allowed_bit_lengths
    - cpu_features
    argTypes:
    - untrusted::Input
    - RangeInclusive<bits::BitLength>
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 77
      start: 39
    functionDepth: 14
    functionLinenumber: 39
    functionLinenumberEnd: 77
    functionName: PublicModulus::from_be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs
    functionUses: 1
    functionsReached:
    - bigint::OwnedModulusValue::from_be_bytes
    - bigint::One::newRR
    - Self::as_usize_bytes_rounded_up
    - alloc_zero
    - Err
    - unwrap
    - bits::BitLength::from_byte_len
    - error::KeyRejected::too_small
    - Ok
    - SpdmResult::len_bits
    - Result::map_err
    - SpdmResult::modulus
    - RangeInclusive<bits::BitLength>::end
    - bigint::OwnedModulus::from
    - error::KeyRejected::too_large
    - RangeInclusive<bits::BitLength>::start
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn from_be_bytes(n: untrusted::Input,allowed_bit_lengths:
      RangeInclusive<bits::BitLength>,cpu_features: cpu::Features,) -> Result<Self,
      error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: PublicModulus::be_bytes
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs
    functionUses: 0
    functionsReached:
    - be_bytes
    linkageType: ''
    returnType: impl ExactSizeIterator
    signature: pub fn be_bytes(&self) -> impl ExactSizeIterator<Item = u8> + Clone
      + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: PublicModulus::len_bits
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs
    functionUses: 0
    functionsReached:
    - len_bits
    linkageType: ''
    returnType: bits::BitLength
    signature: pub fn len_bits(&self) -> bits::BitLength
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: modulus
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu_features
    argTypes:
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 16
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: PublicModulus::value
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs
    functionUses: 0
    functionsReached:
    - modulus
    linkageType: ''
    returnType: bigint::Modulus
    signature: 'pub(super) fn value(&self, cpu_features: cpu::Features) -> bigint::Modulus<N>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: PublicModulus::oneRR
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: '&bigint::Elem'
    signature: pub(super) fn oneRR(&self) -> &bigint::Elem<N, RR>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Inner::from_modulus_and_exponent
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:43,1
    - Dst: io::Positive::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:59,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:59,1
    - Dst: error::KeyRejected::unexpected_error
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:60,1
    - Dst: io::Positive::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:61,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:61,1
    - Dst: error::KeyRejected::unexpected_error
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:62,1
    - Dst: der_writer::write_all
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:63,1
    - Dst: der_writer::write_positive_integer
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:64,1
    - Dst: der_writer::write_positive_integer
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:65,1
    - Dst: Result::map_err
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:63,1
    - Dst: error::KeyRejected::unexpected_error
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:67,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 6
    argNames:
    - n
    - e
    - n_min_bits
    - n_max_bits
    - e_min_value
    - cpu_features
    argTypes:
    - untrusted::Input
    - untrusted::Input
    - bits::BitLength
    - bits::BitLength
    - PublicExponent
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 70
      start: 35
    functionDepth: 16
    functionLinenumber: 35
    functionLinenumberEnd: 70
    functionName: PublicKey::from_modulus_and_exponent
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 1
    functionsReached:
    - io::Positive::from_be_bytes
    - der_writer::write_all
    - error::KeyRejected::unexpected_error
    - Inner::from_modulus_and_exponent
    - Ok
    - Result::map_err
    - der_writer::write_positive_integer
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn from_modulus_and_exponent(n: untrusted::Input,e: untrusted::Input,n_min_bits:
      bits::BitLength,n_max_bits: bits::BitLength,e_min_value: PublicExponent,cpu_features:
      cpu::Features,) -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:77,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:77,1
    - Dst: as_usize_bytes_rounded_up
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 13
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: PublicKey::modulus_len
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 4
    functionsReached:
    - n
    - as_usize_bytes_rounded_up
    - len_bits
    linkageType: ''
    returnType: usize
    signature: pub fn modulus_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: PublicKey::inner
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&Inner'
    signature: pub(super) fn inner(&self) -> &Inner
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PublicModulus::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:111,1
    - Dst: PublicExponent::from_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:113,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - n
    - e
    - n_min_bits
    - n_max_bits
    - e_min_value
    - cpu_features
    argTypes:
    - untrusted::Input
    - untrusted::Input
    - bits::BitLength
    - bits::BitLength
    - PublicExponent
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 123
      start: 94
    functionDepth: 15
    functionLinenumber: 94
    functionLinenumberEnd: 123
    functionName: Inner::from_modulus_and_exponent
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 2
    functionsReached:
    - PublicExponent::from_be_bytes
    - PublicModulus::from_be_bytes
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn from_modulus_and_exponent(n: untrusted::Input,e: untrusted::Input,n_min_bits:
      bits::BitLength,n_max_bits: bits::BitLength,e_min_value: PublicExponent,cpu_features:
      cpu::Features,) -> Result<Self, error::KeyRejected>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Inner::n
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&PublicModulus'
    signature: pub(super) fn n(&self) -> &PublicModulus
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Inner::e
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PublicExponent
    signature: pub(super) fn e(&self) -> PublicExponent
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:150,1
    - Dst: SpdmBaseAsymAlgo::len
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:154,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:154,1
    - Dst: as_usize_bytes_rounded_up
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:154,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:155,1
    - Dst: bigint::Elem::from_be_bytes_padded
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:161,1
    - Dst: SpdmResult::is_zero
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:162,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:163,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:167,1
    - Dst: Inner::exponentiate_elem
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:168,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:171,1
    - Dst: fill_be_bytes_n
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:171,1
    - Dst: len_bits
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 3
    argNames:
    - base
    - out_buffer
    - cpu_features
    argTypes:
    - untrusted::Input
    - '&''out mut [u8; PUBLIC_KEY_PUBLIC_MODULUS_MAX_LEN]'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 172
      start: 144
    functionDepth: 16
    functionLinenumber: 144
    functionLinenumberEnd: 172
    functionName: Inner::exponentiate
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 0
    functionsReached:
    - value
    - alloc_zero
    - Err
    - fill_be_bytes_n
    - Inner::exponentiate_elem
    - Ok
    - bigint::Elem::from_be_bytes_padded
    - as_usize_bytes_rounded_up
    - len_bits
    - SpdmBaseAsymAlgo::len
    - SpdmResult::is_zero
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn exponentiate<''out>(&self,base: untrusted::Input,out_buffer:
      &''out mut [u8; PUBLIC_KEY_PUBLIC_MODULUS_MAX_LEN],cpu_features: cpu::Features,)
      -> Result<&''out [u8], error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroU64::try_from
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:184,1
    - Dst: value
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:184,1
    - Dst: get
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:184,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:184,1
    - Dst: value
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:188,1
    - Dst: alloc_zero
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:190,1
    - Dst: bigint::elem_mul_into
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:191,1
    - Dst: oneRR
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:191,1
    - Dst: bigint::elem_exp_vartime
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:197,1
    - Dst: bigint::elem_mul
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 3
    argNames:
    - out
    - base
    - cpu_features
    argTypes:
    - bigint::Storage<N>
    - '&bigint::Elem<N>'
    - cpu::Features
    constantsTouched: []
    func_position:
      end: 201
      start: 177
    functionDepth: 13
    functionLinenumber: 177
    functionLinenumberEnd: 201
    functionName: Inner::exponentiate_elem
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 1
    functionsReached:
    - value
    - alloc_zero
    - bigint::elem_mul
    - NonZeroU64::try_from
    - Result::unwrap
    - oneRR
    - bigint::elem_exp_vartime
    - get
    - bigint::elem_mul_into
    linkageType: ''
    returnType: bigint::Elem
    signature: 'pub(super) fn exponentiate_elem(&self,out: bigint::Storage<N>,base:
      &bigint::Elem<N>,cpu_features: cpu::Features,) -> bigint::Elem<N>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitLength::as_usize_bytes_rounded_up
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:221,1
    - Dst: Elem::fill_be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:224,1
    - Dst: '&mut [u8; PUBLIC_KEY_PUBLIC_MODULUS_MAX_LEN]::split_at'
      Src: /src/spdm-rs/external/ring/src/rsa/public_key.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - elem
    - n_bits
    - out
    argTypes:
    - bigint::Elem<N>
    - bits::BitLength
    - '&mut [u8; PUBLIC_KEY_PUBLIC_MODULUS_MAX_LEN]'
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 7
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: fill_be_bytes_n
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key.rs
    functionUses: 1
    functionsReached:
    - Elem::fill_be_bytes
    - BitLength::as_usize_bytes_rounded_up
    - '&mut [u8; PUBLIC_KEY_PUBLIC_MODULUS_MAX_LEN]::split_at'
    linkageType: ''
    returnType: '&[u8]'
    signature: 'fn fill_be_bytes_n(elem: bigint::Elem<N>,n_bits: bits::BitLength,out:
      &mut [u8; PUBLIC_KEY_PUBLIC_MODULUS_MAX_LEN],) -> &[u8]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpdmCertChainBuffer::debug_struct
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:35,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:35,1
    - Dst: field
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:35,1
    - Dst: finish
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut core::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 15
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: PublicKeyComponents::fmt
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs
    functionUses: 0
    functionsReached:
    - SpdmCertChainBuffer::debug_struct
    - field
    - finish
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut core::fmt::Formatter<''_>) -> Result<(), core::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::inner
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:48,1
    - Dst: n
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:48,1
    - Dst: be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:48,1
    - Dst: '[u8; 8]::collect'
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:48,1
    - Dst: Result::inner
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:49,1
    - Dst: e
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:49,1
    - Dst: be_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:49,1
    - Dst: '[u8; 8]::collect'
      Src: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - public_key
    argTypes:
    - '&PublicKey'
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 12
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: PublicKeyComponents::from
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs
    functionUses: 0
    functionsReached:
    - '[u8; 8]::collect'
    - e
    - be_bytes
    - Result::inner
    - n
    linkageType: ''
    returnType: Self
    signature: 'fn from(public_key: &PublicKey) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: PKCS1::digest_alg
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static digest::Algorithm'
    signature: fn digest_alg(&self) -> &'static digest::Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkcs1_encode
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:46,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - m_hash
    - m_out
    - _mod_bits
    - _rng
    argTypes:
    - digest::Digest
    - '&mut [u8]'
    - bits::BitLength
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: PKCS1::encode
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs
    functionUses: 0
    functionsReached:
    - pkcs1_encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self,m_hash: digest::Digest,m_out: &mut [u8],_mod_bits:
      bits::BitLength,_rng: &dyn rand::SecureRandom,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits::BitLength::as_usize_bytes_rounded_up
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:61,1
    - Dst: pkcs1_encode
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:62,1
    - Dst: read_bytes_to_end
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:63,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:63,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:64,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 3
    argNames:
    - m_hash
    - m
    - mod_bits
    argTypes:
    - digest::Digest
    - '&mut untrusted::Reader'
    - bits::BitLength
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: PKCS1::verify
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs
    functionUses: 0
    functionsReached:
    - Err
    - read_bytes_to_end
    - Ok
    - bits::BitLength::as_usize_bytes_rounded_up
    - as_slice_less_safe
    - pkcs1_encode
    linkageType: ''
    returnType: Result
    signature: 'fn verify(&self,m_hash: digest::Digest,m: &mut untrusted::Reader,mod_bits:
      bits::BitLength,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:77,1
    - Dst: output_len
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:77,1
    - Dst: Self::len
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:82,1
    - Dst: split_at_mut
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:90,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:90,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:91,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:92,1
    - Dst: digest::Digest::as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 3
    argNames:
    - pkcs1
    - m_hash
    - m_out
    argTypes:
    - '&PKCS1'
    - digest::Digest
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 93
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 93
    functionName: pkcs1_encode
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs
    functionUses: 2
    functionsReached:
    - Self::len
    - digest::Digest::as_ref
    - copy_from_slice
    - output_len
    - split_at_mut
    - len
    linkageType: ''
    returnType: void
    signature: 'fn pkcs1_encode(pkcs1: &PKCS1, m_hash: digest::Digest, m_out: &mut
      [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: rsa_pkcs1_padding
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:3,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:4,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:5,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:6,1
    - Dst: into
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: pkcs1_digestinfo_prefix
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: PSS::digest_alg
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static digest::Algorithm'
    signature: fn digest_alg(&self) -> &'static digest::Algorithm
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PSSMetrics::new
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:48,1
    - Dst: Self::split_at_mut
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:68,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:70,1
    - Dst: '&dyn rand::SecureRandom::fill'
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:75,1
    - Dst: pss_digest
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:80,1
    - Dst: fill
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:83,1
    - Dst: super::mgf1
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:89,1
    - Dst: Vec::as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:89,1
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:95,1
    - Dst: Vec::as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:95,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 62
    argCount: 4
    argNames:
    - m_hash
    - m_out
    - mod_bits
    - rng
    argTypes:
    - digest::Digest
    - '&mut [u8]'
    - bits::BitLength
    - '&dyn rand::SecureRandom'
    constantsTouched: []
    func_position:
      end: 99
      start: 41
    functionDepth: 12
    functionLinenumber: 41
    functionLinenumberEnd: 99
    functionName: PSS::encode
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs
    functionUses: 0
    functionsReached:
    - '&dyn rand::SecureRandom::fill'
    - PSSMetrics::new
    - pss_digest
    - fill
    - super::mgf1
    - Vec::as_ref
    - copy_from_slice
    - Ok
    - Self::split_at_mut
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self,m_hash: digest::Digest,m_out: &mut [u8],mod_bits:
      bits::BitLength,rng: &dyn rand::SecureRandom,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PSSMetrics::new
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:111,1
    - Dst: read_byte
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:123,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:124,1
    - Dst: Self::read_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:137,1
    - Dst: Self::read_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:138,1
    - Dst: Self::read_byte
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:141,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:142,1
    - Dst: super::mgf1
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:149,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:149,1
    - Dst: read_all
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:151,1
    - Dst: read_byte
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:153,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:155,1
    - Dst: read_bytes
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:161,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:161,1
    - Dst: bb::xor_assign_at_start
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:162,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:162,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:163,1
    - Dst: iter
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:171,1
    - Dst: any
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:171,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:172,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:175,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:179,1
    - Dst: pss_digest
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:182,1
    - Dst: as_slice_less_safe
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:185,1
    - Dst: digest::Digest::as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:185,1
    - Dst: Err
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:186,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:189,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 123
    argCount: 3
    argNames:
    - m_hash
    - m
    - mod_bits
    argTypes:
    - digest::Digest
    - '&mut untrusted::Reader'
    - bits::BitLength
    constantsTouched: []
    func_position:
      end: 190
      start: 105
    functionDepth: 12
    functionLinenumber: 105
    functionLinenumberEnd: 190
    functionName: PSS::verify
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs
    functionUses: 0
    functionsReached:
    - any
    - digest::Digest::as_ref
    - Err
    - PSSMetrics::new
    - Self::read_byte
    - read_bytes
    - pss_digest
    - super::mgf1
    - Ok
    - read_all
    - bb::xor_assign_at_start
    - iter
    - as_slice_less_safe
    - read_byte
    - Self::read_bytes
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn verify(&self,m_hash: digest::Digest,m: &mut untrusted::Reader,mod_bits:
      bits::BitLength,) -> Result<(), error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits::BitLength::try_sub_1
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:208,1
    - Dst: as_usize_bytes_rounded_up
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:209,1
    - Dst: as_bits
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:210,1
    - Dst: Option::output_len
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:214,1
    - Dst: checked_sub
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:226,1
    - Dst: ok_or
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:226,1
    - Dst: checked_sub
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:227,1
    - Dst: ok_or
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:227,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - digest_alg
    - mod_bits
    argTypes:
    - '&''static digest::Algorithm'
    - bits::BitLength
    constantsTouched: []
    func_position:
      end: 239
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 239
    functionName: PSSMetrics::new
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs
    functionUses: 2
    functionsReached:
    - checked_sub
    - Ok
    - bits::BitLength::try_sub_1
    - ok_or
    - Option::output_len
    - as_bits
    - as_usize_bytes_rounded_up
    linkageType: ''
    returnType: Result
    signature: 'fn new(digest_alg: &''static digest::Algorithm,mod_bits: bits::BitLength,)
      -> Result<Self, error::Unspecified>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest::Context::new
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:251,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:252,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:253,1
    - Dst: digest::Digest::as_ref
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:253,1
    - Dst: Self::update
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:254,1
    - Dst: Self::finish
      Src: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - digest_alg
    - m_hash
    - salt
    argTypes:
    - '&''static digest::Algorithm'
    - digest::Digest
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 11
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: pss_digest
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs
    functionUses: 2
    functionsReached:
    - Self::update
    - digest::Context::new
    - digest::Digest::as_ref
    - Self::finish
    linkageType: ''
    returnType: digest::Digest
    signature: 'fn pss_digest(digest_alg: &''static digest::Algorithm,m_hash: digest::Digest,salt:
      &[u8],) -> digest::Digest'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: rsa_pss_padding
    functionSourceFile: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::run
      Src: /src/spdm-rs/external/ring/cavp/tests/shavs.rs:30,1
    - Dst: Option::consume_usize
      Src: /src/spdm-rs/external/ring/cavp/tests/shavs.rs:32,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/cavp/tests/shavs.rs:34,1
    - Dst: SpdmResult::truncate
      Src: /src/spdm-rs/external/ring/cavp/tests/shavs.rs:39,1
    - Dst: Option::consume_bytes
      Src: /src/spdm-rs/external/ring/cavp/tests/shavs.rs:43,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/cavp/tests/shavs.rs:44,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/cavp/tests/shavs.rs:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - digest_alg
    - test_file
    argTypes:
    - '&''static digest::Algorithm'
    - test::File
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 8
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: digest_shavs::run_known_answer_test
    functionSourceFile: /src/spdm-rs/external/ring/cavp/tests/shavs.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::truncate
    - Option::consume_bytes
    - Ok
    - Option::consume_usize
    - test::run
    - digest::digest
    linkageType: ''
    returnType: void
    signature: 'fn run_known_answer_test(digest_alg: &''static digest::Algorithm,
      test_file: test::File)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bench_with_input
      Src: /src/spdm-rs/external/ring/bench/digest.rs:46,1
    - Dst: BenchmarkId::new
      Src: /src/spdm-rs/external/ring/bench/digest.rs:47,1
    - Dst: Small
      Src: /src/spdm-rs/external/ring/bench/digest.rs:54,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/external/ring/bench/digest.rs:61,1
    - Dst: digest::digest
      Src: /src/spdm-rs/external/ring/bench/digest.rs:62,1
    - Dst: criterion::black_box
      Src: /src/spdm-rs/external/ring/bench/digest.rs:63,1
    - Dst: Digest::as_ref
      Src: /src/spdm-rs/external/ring/bench/digest.rs:63,1
    - Dst: '&[u8]::len'
      Src: /src/spdm-rs/external/ring/bench/digest.rs:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 69
      start: 43
    functionDepth: 10
    functionLinenumber: 43
    functionLinenumberEnd: 69
    functionName: oneshot
    functionSourceFile: /src/spdm-rs/external/ring/bench/digest.rs
    functionUses: 0
    functionsReached:
    - BenchmarkId::new
    - bench_with_input
    - SpdmResult::iter
    - Digest::as_ref
    - Small
    - '&[u8]::len'
    - criterion::black_box
    - digest::digest
    linkageType: ''
    returnType: void
    signature: 'fn oneshot(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/spdm-rs/external/ring/bench/aead.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: NonceSequence::new
    functionSourceFile: /src/spdm-rs/external/ring/bench/aead.rs
    functionUses: 2
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: const fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/spdm-rs/external/ring/bench/aead.rs:74,1
    - Dst: u64::to_be_bytes
      Src: /src/spdm-rs/external/ring/bench/aead.rs:74,1
    - Dst: checked_add
      Src: /src/spdm-rs/external/ring/bench/aead.rs:75,1
    - Dst: ok_or
      Src: /src/spdm-rs/external/ring/bench/aead.rs:75,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/bench/aead.rs:76,1
    - Dst: aead::Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/bench/aead.rs:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: NonceSequence::advance
    functionSourceFile: /src/spdm-rs/external/ring/bench/aead.rs
    functionUses: 0
    functionsReached:
    - u64::to_be_bytes
    - checked_add
    - Ok
    - copy_from_slice
    - ok_or
    - aead::Nonce::assume_unique_for_key
    linkageType: ''
    returnType: Result
    signature: fn advance(&mut self) -> Result<aead::Nonce, error::Unspecified>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/spdm-rs/external/ring/bench/aead.rs:81,1
    - Dst: SystemRandom::new
      Src: /src/spdm-rs/external/ring/bench/aead.rs:83,1
    - Dst: throughput
      Src: /src/spdm-rs/external/ring/bench/aead.rs:87,1
    - Dst: criterion::Throughput::BytesDecimal
      Src: /src/spdm-rs/external/ring/bench/aead.rs:87,1
    - Dst: bench_with_input
      Src: /src/spdm-rs/external/ring/bench/aead.rs:88,1
    - Dst: bench_id
      Src: /src/spdm-rs/external/ring/bench/aead.rs:89,1
    - Dst: Self::fill
      Src: /src/spdm-rs/external/ring/bench/aead.rs:93,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/aead.rs:93,1
    - Dst: aead::UnboundKey::new
      Src: /src/spdm-rs/external/ring/bench/aead.rs:94,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/aead.rs:94,1
    - Dst: aead::SealingKey::new
      Src: /src/spdm-rs/external/ring/bench/aead.rs:95,1
    - Dst: NonceSequence::new
      Src: /src/spdm-rs/external/ring/bench/aead.rs:95,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/external/ring/bench/aead.rs:99,1
    - Dst: aead::Aad::from
      Src: /src/spdm-rs/external/ring/bench/aead.rs:100,1
    - Dst: criterion::black_box
      Src: /src/spdm-rs/external/ring/bench/aead.rs:100,1
    - Dst: Option::seal_in_place_separate_tag
      Src: /src/spdm-rs/external/ring/bench/aead.rs:101,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/aead.rs:101,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/bench/aead.rs:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 108
      start: 80
    functionDepth: 12
    functionLinenumber: 80
    functionLinenumberEnd: 108
    functionName: seal_in_place_separate_tag
    functionSourceFile: /src/spdm-rs/external/ring/bench/aead.rs
    functionUses: 6
    functionsReached:
    - NonceSequence::new
    - bench_with_input
    - SpdmResult::iter
    - aead::Aad::from
    - SystemRandom::new
    - Result::unwrap
    - benchmark_group
    - Self::fill
    - criterion::black_box
    - Ok
    - bench_id
    - aead::UnboundKey::new
    - Option::seal_in_place_separate_tag
    - criterion::Throughput::BytesDecimal
    - throughput
    - aead::SealingKey::new
    linkageType: ''
    returnType: void
    signature: 'fn seal_in_place_separate_tag(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/spdm-rs/external/ring/bench/aead.rs:111,1
    - Dst: SystemRandom::new
      Src: /src/spdm-rs/external/ring/bench/aead.rs:113,1
    - Dst: throughput
      Src: /src/spdm-rs/external/ring/bench/aead.rs:117,1
    - Dst: criterion::Throughput::BytesDecimal
      Src: /src/spdm-rs/external/ring/bench/aead.rs:117,1
    - Dst: bench_with_input
      Src: /src/spdm-rs/external/ring/bench/aead.rs:118,1
    - Dst: bench_id
      Src: /src/spdm-rs/external/ring/bench/aead.rs:119,1
    - Dst: Self::fill
      Src: /src/spdm-rs/external/ring/bench/aead.rs:123,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/aead.rs:123,1
    - Dst: aead::UnboundKey::new
      Src: /src/spdm-rs/external/ring/bench/aead.rs:124,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/aead.rs:124,1
    - Dst: aead::LessSafeKey::new
      Src: /src/spdm-rs/external/ring/bench/aead.rs:125,1
    - Dst: aead::Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/bench/aead.rs:128,1
    - Dst: aead::Aad::from
      Src: /src/spdm-rs/external/ring/bench/aead.rs:129,1
    - Dst: Option::seal_in_place_append_tag
      Src: /src/spdm-rs/external/ring/bench/aead.rs:131,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/aead.rs:131,1
    - Dst: core::cmp::max
      Src: /src/spdm-rs/external/ring/bench/aead.rs:135,1
    - Dst: len
      Src: /src/spdm-rs/external/ring/bench/aead.rs:135,1
    - Dst: SpdmResult::iter_batched
      Src: /src/spdm-rs/external/ring/bench/aead.rs:137,1
    - Dst: clone
      Src: /src/spdm-rs/external/ring/bench/aead.rs:138,1
    - Dst: aead::Nonce::assume_unique_for_key
      Src: /src/spdm-rs/external/ring/bench/aead.rs:141,1
    - Dst: aead::Aad::from
      Src: /src/spdm-rs/external/ring/bench/aead.rs:143,1
    - Dst: criterion::black_box
      Src: /src/spdm-rs/external/ring/bench/aead.rs:143,1
    - Dst: Option::open_in_place
      Src: /src/spdm-rs/external/ring/bench/aead.rs:144,1
    - Dst: Ok
      Src: /src/spdm-rs/external/ring/bench/aead.rs:146,1
    - Dst: BatchSize::NumBatches
      Src: /src/spdm-rs/external/ring/bench/aead.rs:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 63
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 154
      start: 110
    functionDepth: 12
    functionLinenumber: 110
    functionLinenumberEnd: 154
    functionName: open_in_place
    functionSourceFile: /src/spdm-rs/external/ring/bench/aead.rs
    functionUses: 6
    functionsReached:
    - aead::Aad::from
    - clone
    - criterion::black_box
    - bench_id
    - BatchSize::NumBatches
    - throughput
    - SpdmResult::iter_batched
    - bench_with_input
    - Option::seal_in_place_append_tag
    - SystemRandom::new
    - aead::UnboundKey::new
    - criterion::Throughput::BytesDecimal
    - core::cmp::max
    - Ok
    - benchmark_group
    - Self::fill
    - Option::open_in_place
    - aead::LessSafeKey::new
    - Result::unwrap
    - aead::Nonce::assume_unique_for_key
    - len
    linkageType: ''
    returnType: void
    signature: 'fn open_in_place(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BenchmarkId::new
      Src: /src/spdm-rs/external/ring/bench/aead.rs:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - func_name
    - alg_name
    - record_len
    argTypes:
    - '&str'
    - '&str'
    - usize
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: bench_id
    functionSourceFile: /src/spdm-rs/external/ring/bench/aead.rs
    functionUses: 2
    functionsReached:
    - BenchmarkId::new
    linkageType: ''
    returnType: BenchmarkId
    signature: 'fn bench_id(func_name: &str, alg_name: &str, record_len: usize) ->
      BenchmarkId'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bench_function
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:30,1
    - Dst: bench_name
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:30,1
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:31,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:32,1
    - Dst: EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:33,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:33,1
    - Dst: criterion::black_box
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 16
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: generate_key
    functionSourceFile: /src/spdm-rs/external/ring/bench/agreement.rs
    functionUses: 0
    functionsReached:
    - bench_function
    - SpdmResult::iter
    - Result::unwrap
    - criterion::black_box
    - rand::SystemRandom::new
    - bench_name
    - EphemeralPrivateKey::generate
    linkageType: ''
    returnType: void
    signature: 'fn generate_key(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bench_function
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:42,1
    - Dst: bench_name
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:42,1
    - Dst: rand::SystemRandom::new
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:43,1
    - Dst: EphemeralPrivateKey::generate
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:44,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:44,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:45,1
    - Dst: compute_public_key
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:46,1
    - Dst: criterion::black_box
      Src: /src/spdm-rs/external/ring/bench/agreement.rs:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 16
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: compute_public_key
    functionSourceFile: /src/spdm-rs/external/ring/bench/agreement.rs
    functionUses: 10
    functionsReached:
    - bench_function
    - SpdmResult::iter
    - Result::unwrap
    - criterion::black_box
    - rand::SystemRandom::new
    - bench_name
    - compute_public_key
    - EphemeralPrivateKey::generate
    linkageType: ''
    returnType: void
    signature: 'fn compute_public_key(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - alg_name
    - bench_name
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: bench_name
    functionSourceFile: /src/spdm-rs/external/ring/bench/agreement.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: 'fn bench_name(alg_name: &str, bench_name: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 40
    functionName: verify_case
    functionSourceFile: /src/spdm-rs/external/ring/bench/rsa.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unknown
      Src: /src/spdm-rs/codec/src/macros.rs:6,1
    - Dst: enum_builder::clone
      Src: /src/spdm-rs/codec/src/macros.rs:10,1
    - Dst: enum_builder::get_u32
      Src: /src/spdm-rs/codec/src/macros.rs:19,1
    - Dst: u32::encode
      Src: /src/spdm-rs/codec/src/macros.rs:19,1
    - Dst: u32::read
      Src: /src/spdm-rs/codec/src/macros.rs:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 10
    functionDepth: 14
    functionLinenumber: 10
    functionLinenumberEnd: 116
    functionName: enum_builder
    functionSourceFile: /src/spdm-rs/codec/src/macros.rs
    functionUses: 0
    functionsReached:
    - u32::read
    - Unknown
    - u32::encode
    - enum_builder::get_u32
    - enum_builder::clone
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/lib.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: tests::it_works
    functionSourceFile: /src/spdm-rs/codec/src/lib.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn it_works()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: Reader::init
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 243
    functionsReached: []
    linkageType: ''
    returnType: Reader
    signature: 'pub fn init(bytes: &[u8]) -> Reader'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/codec/src/codec.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: Reader::rest
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn rest(&mut self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::left
      Src: /src/spdm-rs/codec/src/codec.rs:34,1
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: Reader::take
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 1
    functionsReached:
    - Reader::left
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn take(&mut self, len: usize) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/codec/src/codec.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Reader::any_left
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: bool
    signature: pub fn any_left(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/codec/src/codec.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Reader::left
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn left(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Reader::used
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn used(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::take
      Src: /src/spdm-rs/codec/src/codec.rs:56,1
    - Dst: Option::map
      Src: /src/spdm-rs/codec/src/codec.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Reader::sub
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Option::map
    - Reader::take
    linkageType: ''
    returnType: Option
    signature: 'pub fn sub(&mut self, len: usize) -> Option<Reader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: Reader::as_ref
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_ref(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: Writer::init
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 288
    functionsReached: []
    linkageType: ''
    returnType: Writer
    signature: 'pub fn init(bytes: &mut [u8]) -> Writer'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Writer::clear
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn clear(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::left
      Src: /src/spdm-rs/codec/src/codec.rs:85,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/codec/src/codec.rs:85,1
    - Dst: SpdmResult::len
      Src: /src/spdm-rs/codec/src/codec.rs:88,1
    - Dst: SpdmResult::iter
      Src: /src/spdm-rs/codec/src/codec.rs:89,1
    - Dst: Self::IntoIter::enumerate
      Src: /src/spdm-rs/codec/src/codec.rs:89,1
    - Dst: take
      Src: /src/spdm-rs/codec/src/codec.rs:89,1
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: Writer::extend_from_slice
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 24
    functionsReached:
    - SpdmResult::iter
    - Some
    - take
    - Writer::left
    - Self::IntoIter::enumerate
    - SpdmResult::len
    linkageType: ''
    returnType: Option
    signature: 'pub fn extend_from_slice(&mut self, value: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::left
      Src: /src/spdm-rs/codec/src/codec.rs:97,1
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: Writer::push
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Writer::left
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn push(&mut self, value: u8) -> Option<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/spdm-rs/codec/src/codec.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Writer::left
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 2
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn left(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Writer::left_slice
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn left_slice(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Writer::mut_left_slice
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&mut [u8]'
    signature: pub fn mut_left_slice(&mut self) -> &mut [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: Writer::used
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn used(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: Writer::used_slice
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn used_slice(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: Writer::mut_used_slice
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: '&mut [u8]'
    signature: pub fn mut_used_slice(&mut self) -> &mut [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/codec.rs:146,1
    - Dst: Self::read
      Src: /src/spdm-rs/codec/src/codec.rs:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: Codec::read_bytes
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Self::read
    - Reader::init
    linkageType: ''
    returnType: Option
    signature: 'fn read_bytes(bytes: &[u8]) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: alloc::vec::Vec::new
      Src: /src/spdm-rs/codec/src/codec.rs:154,1
    - Dst: T::read
      Src: /src/spdm-rs/codec/src/codec.rs:156,1
    - Dst: push
      Src: /src/spdm-rs/codec/src/codec.rs:157,1
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - reader
    - count
    argTypes:
    - '&mut Reader'
    - usize
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 6
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: Codec::read_vec
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - T::read
    - push
    - alloc::vec::Vec::new
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read_vec<T: Codec>(reader: &mut Reader, count: usize) -> Option<alloc::vec::Vec<T>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/codec/src/codec.rs:166,1
    - Dst: alloc::vec::Vec::iter
      Src: /src/spdm-rs/codec/src/codec.rs:167,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/codec/src/codec.rs:168,1
    - Dst: Ok
      Src: /src/spdm-rs/codec/src/codec.rs:170,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/codec/src/codec.rs:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: alloc::vec::Vec::encode
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - alloc::vec::Vec::iter
    - SpdmResult::encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: alloc::vec::Vec::read
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn read(_reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/spdm-rs/codec/src/codec.rs:185,1
    - Dst: encode
      Src: /src/spdm-rs/codec/src/codec.rs:186,1
    - Dst: Ok
      Src: /src/spdm-rs/codec/src/codec.rs:187,1
    - Dst: encode
      Src: /src/spdm-rs/codec/src/codec.rs:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: Option::encode
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 3
    functionsReached:
    - encode
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, writer: &mut Writer) -> Result<usize, EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::read
      Src: /src/spdm-rs/codec/src/codec.rs:196,1
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:198,1
    - Dst: T::read
      Src: /src/spdm-rs/codec/src/codec.rs:198,1
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: Option::read
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - T::read
    - u8::read
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: decode_u8
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn decode_u8(bytes: &[u8]) -> Option<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::push
      Src: /src/spdm-rs/codec/src/codec.rs:211,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:211,1
    - Dst: Ok
      Src: /src/spdm-rs/codec/src/codec.rs:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: u8::encode
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 2
    functionsReached:
    - Bytes::push
    - Option::ok_or
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/spdm-rs/codec/src/codec.rs:215,1
    - Dst: Option::and_then
      Src: /src/spdm-rs/codec/src/codec.rs:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: u8::read
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 153
    functionsReached:
    - Option::and_then
    - take
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - v
    - out
    argTypes:
    - u16
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: put_u16
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn put_u16(v: u16, out: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:225,1
    - Dst: u16::from
      Src: /src/spdm-rs/codec/src/codec.rs:225,1
    - Dst: u16::from
      Src: /src/spdm-rs/codec/src/codec.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: decode_u16
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - u16::from
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn decode_u16(bytes: &[u8]) -> Option<u16>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_u16
      Src: /src/spdm-rs/codec/src/codec.rs:231,1
    - Dst: Bytes::extend_from_slice
      Src: /src/spdm-rs/codec/src/codec.rs:232,1
    - Dst: ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:232,1
    - Dst: Ok
      Src: /src/spdm-rs/codec/src/codec.rs:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: u16::encode
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 1
    functionsReached:
    - ok_or
    - put_u16
    - Ok
    - Bytes::extend_from_slice
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/spdm-rs/codec/src/codec.rs:237,1
    - Dst: Option::and_then
      Src: /src/spdm-rs/codec/src/codec.rs:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: u16::read
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 60
    functionsReached:
    - Option::and_then
    - take
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<u16>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u24
      Src: /src/spdm-rs/codec/src/codec.rs:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: u24::new
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 14
    functionsReached:
    - u24
    linkageType: ''
    returnType: u24
    signature: 'pub fn new(v: u32) -> u24'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: u24::get
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn get(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:257,1
    - Dst: u24
      Src: /src/spdm-rs/codec/src/codec.rs:257,1
    - Dst: u32::from
      Src: /src/spdm-rs/codec/src/codec.rs:257,1
    - Dst: u32::from
      Src: /src/spdm-rs/codec/src/codec.rs:258,1
    - Dst: u32::from
      Src: /src/spdm-rs/codec/src/codec.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: u24::decode
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - u24
    - u32::from
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn decode(bytes: &[u8]) -> Option<u24>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::push
      Src: /src/spdm-rs/codec/src/codec.rs:265,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:265,1
    - Dst: Bytes::push
      Src: /src/spdm-rs/codec/src/codec.rs:266,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:266,1
    - Dst: Bytes::push
      Src: /src/spdm-rs/codec/src/codec.rs:267,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:267,1
    - Dst: Ok
      Src: /src/spdm-rs/codec/src/codec.rs:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: u24::encode
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 4
    functionsReached:
    - Bytes::push
    - Option::ok_or
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/spdm-rs/codec/src/codec.rs:272,1
    - Dst: Option::and_then
      Src: /src/spdm-rs/codec/src/codec.rs:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: u24::read
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 5
    functionsReached:
    - Option::and_then
    - take
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<u24>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:277,1
    - Dst: u32::from
      Src: /src/spdm-rs/codec/src/codec.rs:278,1
    - Dst: u32::from
      Src: /src/spdm-rs/codec/src/codec.rs:279,1
    - Dst: u32::from
      Src: /src/spdm-rs/codec/src/codec.rs:280,1
    - Dst: u32::from
      Src: /src/spdm-rs/codec/src/codec.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 283
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 283
    functionName: decode_u32
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - u32::from
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn decode_u32(bytes: &[u8]) -> Option<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::push
      Src: /src/spdm-rs/codec/src/codec.rs:287,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:287,1
    - Dst: Bytes::push
      Src: /src/spdm-rs/codec/src/codec.rs:288,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:288,1
    - Dst: Bytes::push
      Src: /src/spdm-rs/codec/src/codec.rs:289,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:289,1
    - Dst: Bytes::push
      Src: /src/spdm-rs/codec/src/codec.rs:290,1
    - Dst: Option::ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:290,1
    - Dst: Ok
      Src: /src/spdm-rs/codec/src/codec.rs:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 4
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: u32::encode
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 1
    functionsReached:
    - Bytes::push
    - Option::ok_or
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/spdm-rs/codec/src/codec.rs:295,1
    - Dst: Option::and_then
      Src: /src/spdm-rs/codec/src/codec.rs:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: u32::read
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 45
    functionsReached:
    - Option::and_then
    - take
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 2
    argNames:
    - v
    - bytes
    argTypes:
    - u64
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: put_u64
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn put_u64(v: u64, bytes: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:311,1
    - Dst: u64::from
      Src: /src/spdm-rs/codec/src/codec.rs:312,1
    - Dst: u64::from
      Src: /src/spdm-rs/codec/src/codec.rs:313,1
    - Dst: u64::from
      Src: /src/spdm-rs/codec/src/codec.rs:314,1
    - Dst: u64::from
      Src: /src/spdm-rs/codec/src/codec.rs:315,1
    - Dst: u64::from
      Src: /src/spdm-rs/codec/src/codec.rs:316,1
    - Dst: u64::from
      Src: /src/spdm-rs/codec/src/codec.rs:317,1
    - Dst: u64::from
      Src: /src/spdm-rs/codec/src/codec.rs:318,1
    - Dst: u64::from
      Src: /src/spdm-rs/codec/src/codec.rs:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 321
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 321
    functionName: decode_u64
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn decode_u64(bytes: &[u8]) -> Option<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_u64
      Src: /src/spdm-rs/codec/src/codec.rs:326,1
    - Dst: Bytes::extend_from_slice
      Src: /src/spdm-rs/codec/src/codec.rs:327,1
    - Dst: ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:327,1
    - Dst: Ok
      Src: /src/spdm-rs/codec/src/codec.rs:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: u64::encode
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - ok_or
    - put_u64
    - Ok
    - Bytes::extend_from_slice
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/spdm-rs/codec/src/codec.rs:332,1
    - Dst: Option::and_then
      Src: /src/spdm-rs/codec/src/codec.rs:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: u64::read
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 16
    functionsReached:
    - Option::and_then
    - take
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::extend_from_slice
      Src: /src/spdm-rs/codec/src/codec.rs:338,1
    - Dst: u128::to_le_bytes
      Src: /src/spdm-rs/codec/src/codec.rs:339,1
    - Dst: ok_or
      Src: /src/spdm-rs/codec/src/codec.rs:338,1
    - Dst: Ok
      Src: /src/spdm-rs/codec/src/codec.rs:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 342
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 342
    functionName: u128::encode
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - ok_or
    - Ok
    - u128::to_le_bytes
    - Bytes::extend_from_slice
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::size_of::<u128>
      Src: /src/spdm-rs/codec/src/codec.rs:345,1
    - Dst: SimpleLogger::copy_from_slice
      Src: /src/spdm-rs/codec/src/codec.rs:346,1
    - Dst: take
      Src: /src/spdm-rs/codec/src/codec.rs:346,1
    - Dst: mem::size_of::<u128>
      Src: /src/spdm-rs/codec/src/codec.rs:346,1
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:348,1
    - Dst: u128::from_le_bytes
      Src: /src/spdm-rs/codec/src/codec.rs:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: u128::read
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - u128::from_le_bytes
    - Some
    - take
    - mem::size_of::<u128>
    - SimpleLogger::copy_from_slice
    linkageType: ''
    returnType: Option
    signature: 'fn read(r: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bytes::used
      Src: /src/spdm-rs/codec/src/codec.rs:354,1
    - Dst: '[T; N]::iter'
      Src: /src/spdm-rs/codec/src/codec.rs:355,1
    - Dst: Vec::encode
      Src: /src/spdm-rs/codec/src/codec.rs:356,1
    - Dst: Ok
      Src: /src/spdm-rs/codec/src/codec.rs:358,1
    - Dst: Bytes::used
      Src: /src/spdm-rs/codec/src/codec.rs:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&mut Writer'
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: '[T; N]::encode'
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - '[T; N]::iter'
    - Vec::encode
    - Ok
    - Bytes::used
    linkageType: ''
    returnType: Result
    signature: 'fn encode(&self, bytes: &mut Writer) -> Result<usize, EncodeErr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::default
      Src: /src/spdm-rs/codec/src/codec.rs:362,1
    - Dst: iter_mut
      Src: /src/spdm-rs/codec/src/codec.rs:363,1
    - Dst: T::read
      Src: /src/spdm-rs/codec/src/codec.rs:364,1
    - Dst: Some
      Src: /src/spdm-rs/codec/src/codec.rs:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Reader'
    constantsTouched: []
    func_position:
      end: 368
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 368
    functionName: '[T; N]::read'
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - T::read
    - Some
    - T::default
    - iter_mut
    linkageType: ''
    returnType: Option
    signature: 'fn read(reader: &mut Reader) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/codec/src/codec.rs:381,1
    - Dst: reverse
      Src: /src/spdm-rs/codec/src/codec.rs:389,1
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/codec.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 398
    functionName: tests::test_u128
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - reverse
    - Writer::init
    - Reader::init
    linkageType: ''
    returnType: void
    signature: fn test_u128()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/codec/src/codec.rs:405,1
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/codec.rs:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 413
    functionName: tests::test_u64
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_u64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/codec/src/codec.rs:417,1
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/codec.rs:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: tests::test_u32
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_u32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/codec/src/codec.rs:428,1
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/codec.rs:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: tests::test_u16
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_u16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/codec/src/codec.rs:439,1
    - Dst: u24::new
      Src: /src/spdm-rs/codec/src/codec.rs:440,1
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/codec.rs:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 445
    functionName: tests::test_u24
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - u24::new
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_u24()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u24::new
      Src: /src/spdm-rs/codec/src/codec.rs:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: tests::test_u24_max_size
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - u24::new
    linkageType: ''
    returnType: void
    signature: fn test_u24_max_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/codec/src/codec.rs:454,1
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/codec.rs:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: tests::test_u8
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_u8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/codec/src/codec.rs:464,1
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/codec.rs:467,1
    - Dst: Result::rest
      Src: /src/spdm-rs/codec/src/codec.rs:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 473
    functionName: tests::test_case0_rest
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Result::rest
    - Reader::init
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_rest()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 482
    functionName: tests::test_case0_any_left
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_any_left()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 491
    functionName: tests::test_case1_any_left
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case1_any_left()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/codec/src/codec.rs:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: tests::test_case0_read_bytes
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - Writer::init
    linkageType: ''
    returnType: void
    signature: fn test_case0_read_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: tests::test_case0_sub
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_case0_sub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::init
      Src: /src/spdm-rs/codec/src/codec.rs:514,1
    - Dst: SpdmResult::encode
      Src: /src/spdm-rs/codec/src/codec.rs:515,1
    - Dst: Result::unwrap
      Src: /src/spdm-rs/codec/src/codec.rs:515,1
    - Dst: Reader::init
      Src: /src/spdm-rs/codec/src/codec.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: tests::test_case0_array
    functionSourceFile: /src/spdm-rs/codec/src/codec.rs
    functionUses: 0
    functionsReached:
    - SpdmResult::encode
    - Reader::init
    - Writer::init
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_case0_array()
Fuzzer filename: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/encapsulated_request_certificate_req.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - send_receive_stop
  - test_spdm
  - test_idekm_tdisp
  - new_logger_from_env
  - emu_main
  - emu_main
  - emu_main_inner
  - main
  source_file: /src/spdm-rs/test/spdm-requester-emu/src/main.rs
- function_names:
  - pci_ide_km_device_key_prog
  - pci_ide_km_device_key_set_go
  - pci_ide_km_device_key_set_stop
  - pci_ide_km_device_query
  - init_device_idekm_instance
  source_file: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_idekm_example.rs
- function_names:
  - pci_tdisp_device_capabilities
  - pci_tdisp_device_error
  - pci_tdisp_device_interface_report
  - pci_tdisp_device_interface_state
  - pci_tdisp_device_lock_interface
  - pci_tdisp_device_start_interface
  - pci_tdisp_device_stop_interface
  - pci_tdisp_device_bind_p2p_stream
  - pci_tdisp_device_unbind_p2p_stream
  - pci_tdisp_device_set_mmio_attribute
  - pci_tdisp_device_vdm_response
  - pci_tdisp_device_version
  - init_device_tdisp_instance
  source_file: /src/spdm-rs/test/spdm-responder-emu/src/spdm_device_tdisp_example.rs
- function_names:
  - process_socket_message
  - new_logger_from_env
  - emu_main
  - emu_main
  - emu_main_inner
  - handle_message
  - send_hello
  - send_unknown
  - send_stop
  - send_pci_discovery
  - pci_idekm_tdisp_rsp_dispatcher
  - main
  source_file: /src/spdm-rs/test/spdm-responder-emu/src/main.rs
- function_names:
  - init_handlers
  - main
  - handle_input_json
  - register_handlers
  - get_handler
  - handle_algorithm_sha2_256
  - handle_algorithm_sha2_384
  - algorithm_sha2
  - handle_algorithm_hmac_sha2_256
  - handle_algorithm_hmac_sha2_384
  - algorithm_hmac_sha2
  - ecdsa_verify
  - handle_algorithm_ecdsa
  - handle_algorithm_aead
  - handle_algorithm_ecdhe
  - handle_algorithm_rsa
  - from_hex
  - from_hex_digit
  - to_hex
  source_file: /src/spdm-rs/test/cavp_acvts_test/src/main.rs
- function_names:
  - block_on
  source_file: /src/spdm-rs/test/spdm-emu/src/async_runtime.rs
- function_names:
  - measurement_collection_impl
  - generate_measurement_summary_hash_impl
  - handshake_secret_hkdf_expand_impl
  - master_secret_hkdf_expand_impl
  - tests::test_case0_measurement_collection
  source_file: /src/spdm-rs/test/spdm-emu/src/secret_impl_sample.rs
- function_names:
  - TcpTransport::receive
  - TcpTransport::send
  - TcpTransport::flush_all
  source_file: /src/spdm-rs/test/spdm-emu/src/tcp_transport.rs
- function_names:
  - start_watchdog
  - stop_watchdog
  - reset_watchdog
  - init_watchdog
  source_file: /src/spdm-rs/test/spdm-emu/src/watchdog_impl_sample.rs
- function_names:
  - crypto_mbedtls_register_handles
  source_file: /src/spdm-rs/test/spdm-emu/src/crypto.rs
- function_names:
  - SocketIoTransport::new
  - SocketIoTransport::receive
  - SocketIoTransport::send
  - SocketIoTransport::flush_all
  source_file: /src/spdm-rs/test/spdm-emu/src/socket_io_transport.rs
- function_names:
  - MAX
  source_file: /src/spdm-rs/test/spdm-emu/src/lib.rs
- function_names:
  - SpdmSocketHeader::encode
  - SpdmSocketHeader::read
  - receive_message
  - send_message
  - tests::test_case0_spdm_socket_header
  source_file: /src/spdm-rs/test/spdm-emu/src/spdm_emu.rs
- function_names:
  - asym_sign
  - sign_ecdsa_asym_algo
  - sign_rsa_asym_algo
  - pqc_asym_sign
  - get_test_key_directory
  source_file: /src/spdm-rs/test/spdm-emu/src/crypto_callback.rs
- function_names:
  - test_spdm_config_info_codec
  - test_spdm_negotiate_info_codec
  - test_managed_buffer_a_codec
  - test_managed_buffer_b_codec
  - test_managed_buffer_c_codec
  - test_managed_buffer_m_codec
  - test_managed_buffer_k_codec
  - test_managed_buffer_f_codec
  - test_managed_buffer_m1m2_codec
  - test_managed_buffer_l1l2_codec
  - test_managed_buffer_th_codec
  - test_managed_buffer_12sign_codec
  - test_spdm_measurement_content_changed_codec
  - test_spdm_runtime_info_codec_no_hashed
  - test_spdm_runtime_info_codec_hashed
  - test_spdm_provision_info_codec
  - test_spdm_provision_info_codec_with_populated_data
  - test_spdm_provision_info_codec_edge_cases
  - test_spdm_peer_info_codec
  - test_spdm_peer_info_codec_with_populated_data
  - test_spdm_peer_info_codec_edge_cases
  - test_spdm_encap_context_codec
  - test_empty_managed_buffers_codec
  - test_option_fields_codec
  - test_max_size_buffers
  - test_error_conditions
  - test_spdm_runtime_info_size_variations
  - test_spdm_negotiate_info_comprehensive
  - test_mixed_buffer_stress
  - test_large_struct_memory_boundaries
  source_file: /src/spdm-rs/test/spdmlib-test/src/test_library_codec.rs
- function_names:
  - start_watchdog
  - stop_watchdog
  - reset_watchdog
  - init_watchdog
  source_file: /src/spdm-rs/test/spdmlib-test/src/watchdog_impl_sample.rs
- function_names: []
  source_file: /src/spdm-rs/test/spdmlib-test/src/lib.rs
- function_names:
  - test_case0_spdm_opaque_struct
  - test_case0_spdm_digest_struct
  - test_case0_spdm_signature_struct
  - test_case0_spdm_measurement_record_structure
  - test_case1_spdm_measurement_record_structure
  - test_case0_spdm_dhe_exchange_struct
  - test_case0_spdm_dmtf_measurement_structure
  - test_case0_spdm_measurement_block_structure
  - test_case0_spdm_context_export_import
  - test_case1_spdm_context_export_import_with_cert_data
  - test_case2_spdm_context_export_import_with_sessions
  - test_case3_spdm_context_export_import_boundary_conditions
  source_file: /src/spdm-rs/test/spdmlib-test/src/test_library.rs
- function_names:
  - intergration_client_server
  source_file: /src/spdm-rs/test/spdmlib-test/src/test_client_server.rs
- function_names:
  - test_case0_send_receive_spdm_key_exchange
  - test_case1_send_receive_spdm_key_exchange
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_exchange_req.rs
- function_names:
  - test_case0_send_receive_spdm_measurement
  - test_handle_spdm_measurement_record_response
  - test_case1_send_receive_spdm_measurement
  - test_case3_send_receive_spdm_measurement
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_measurements_req.rs
- function_names:
  - test_case0_send_receive_spdm_heartbeat
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/heartbeat_req.rs
- function_names:
  - test_case0_send_receive_spdm_capability
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_capabilities_req.rs
- function_names:
  - test_case0_send_receive_spdm_version
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_version_req.rs
- function_names:
  - test_case0_start_session
  - test_case0_get_next_half_session
  - test_case0_receive_secured_message
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/context.rs
- function_names:
  - test_encap_handle_get_digest
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_digest.rs
- function_names:
  - test_case0_send_receive_spdm_challenge
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/challenge_req.rs
- function_names:
  - test_case0_send_receive_spdm_digest
  - issue_other_request_before_vca_negotiated
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_digests_req.rs
- function_names: []
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/mod.rs
- function_names:
  - test_case0_send_receive_spdm_end_session
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/end_session_req.rs
- function_names:
  - test_case0_send_receive_spdm_key_update
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/key_update_req.rs
- function_names:
  - test_case0_send_receive_spdm_algorithm
  - test_case1_send_receive_spdm_algorithm
  - test_case2_send_receive_spdm_algorithm
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/negotiate_algorithms_req.rs
- function_names:
  - test_case0_send_receive_spdm_finish
  - test_case1_send_receive_spdm_finish
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/finish_req.rs
- function_names:
  - test_encap_handle_get_certificate
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_certificate.rs
- function_names:
  - test_case0_send_spdm_vendor_defined_request
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/vendor_req.rs
- function_names:
  - test_encode_encap_error_response
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_error.rs
- function_names:
  - test_send_get_encapsulated_request
  - test_receive_encapsulated_request
  - test_receive_encapsulated_response_ack
  - setup_test_context_and_session
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/encap_req.rs
- function_names:
  - test_case0_send_receive_spdm_certificate
  - test_handle_spdm_certificate_partial_response
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/get_certificate_req.rs
- function_names:
  - test_case0_send_receive_spdm_psk_finish
  - test_case1_send_receive_spdm_psk_finish
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_finish_req.rs
- function_names:
  - test_case0_send_receive_spdm_psk_exchange
  - test_case1_send_receive_spdm_psk_exchange
  source_file: /src/spdm-rs/test/spdmlib-test/src/requester_tests/psk_exchange_req.rs
- function_names:
  - test_case0_handle_spdm_end_session
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/end_session_rsp.rs
- function_names:
  - test_case0_handle_spdm_digest
  - test_case1_handle_spdm_digest
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/digest_rsp.rs
- function_names:
  - test_case0_handle_spdm_version
  - construct_version_positive
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/version_rsp.rs
- function_names:
  - test_case0_handle_spdm_capability
  - consturct_capability_positive
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/capability_rsp.rs
- function_names:
  - test_encode_encap_requst_get_digest
  - test_handle_encap_response_digest
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_digest.rs
- function_names:
  - test_case0_handle_spdm_psk_finish
  - test_case1_handle_spdm_psk_finish
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_finish_rsp.rs
- function_names:
  - test_case0_send_secured_message
  - test_case1_send_secured_message
  - test_case0_receive_message
  - test_case0_process_message
  - test_case0_dispatch_secured_message
  - dispatch_secured_data
  - dispatch_data
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/context.rs
- function_names:
  - test_case0_send_spdm_error
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/error_rsp.rs
- function_names:
  - test_case0_handle_spdm_key_exchange
  - test_case1_handle_spdm_key_exchange
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_exchange_rsp.rs
- function_names:
  - test_case0_handle_spdm_heartbeat
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/heartbeat_rsp.rs
- function_names:
  - test_case0_handle_spdm_algorithm
  - consturct_algorithm_positive
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/algorithm_rsp.rs
- function_names: []
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/mod.rs
- function_names:
  - test_case0_handle_spdm_vendor_defined_request
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/vendor_rsp.rs
- function_names:
  - test_case0_handle_spdm_psk_exchange
  - test_case1_handle_spdm_psk_exchange
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/psk_exchange_rsp.rs
- function_names:
  - test_case0_handle_spdm_key_update
  - test_case1_handle_spdm_key_update
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/key_update_rsp.rs
- function_names:
  - test_case0_handle_spdm_certificate
  - construct_certificate_positive
  - test_case1_handle_spdm_certificate
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/certificate_rsp.rs
- function_names:
  - test_encode_encap_requst_get_certificate
  - test_handle_encap_response_certificate
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_get_certificate.rs
- function_names:
  - test_case0_handle_spdm_finish
  - test_case1_handle_spdm_finish
  - test_case2_handle_spdm_finish
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/finish_rsp.rs
- function_names:
  - test_case0_handle_spdm_measurement
  - test_case1_handle_spdm_measurement
  - test_handle_spdm_measurement_runner
  - test_case2_handle_spdm_measurements
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/measurement_rsp.rs
- function_names:
  - test_handle_get_encapsulated_request
  - test_handle_deliver_encapsulated_reponse_digest
  - test_handle_deliver_encapsulated_reponse_cert
  - setup_test_context_and_session
  - write_spdm_get_digest_response
  - write_spdm_get_certificate_response
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/encap_rsp.rs
- function_names:
  - test_case0_handle_spdm_challenge
  - test_case1_handle_spdm_challenge
  source_file: /src/spdm-rs/test/spdmlib-test/src/responder_tests/challenge_rsp.rs
- function_names:
  - CHALLENGE::encode
  - CHALLENGE::read
  - CHALLENGE_AUTH::new
  - CHALLENGE_AUTH::encode
  - CHALLENGE_AUTH::read
  source_file: /src/spdm-rs/test/spdmlib-test/src/protocol/challenge.rs
- function_names:
  - NEGOTIATE_ALGORITHMS::encode
  - NEGOTIATE_ALGORITHMS::read
  - ALGORITHMS::encode
  - ALGORITHMS::read
  source_file: /src/spdm-rs/test/spdmlib-test/src/protocol/algorithm.rs
- function_names:
  - GET_CERTIFICATE::encode
  - GET_CERTIFICATE::read
  - CERTIFICATE::encode
  - CERTIFICATE::read
  source_file: /src/spdm-rs/test/spdmlib-test/src/protocol/certificate.rs
- function_names:
  - Message::encode
  - Message::read
  source_file: /src/spdm-rs/test/spdmlib-test/src/protocol/mod.rs
- function_names:
  - GET_DIGESTS::encode
  - GET_DIGESTS::read
  - DIGESTS::new
  - DIGESTS::encode
  - DIGESTS::read
  - test
  source_file: /src/spdm-rs/test/spdmlib-test/src/protocol/digest.rs
- function_names:
  - GET_MEASUREMENTS::encode
  - GET_MEASUREMENTS::read
  - MEASUREMENTS::new
  - MEASUREMENTS::encode
  - MEASUREMENTS::read
  source_file: /src/spdm-rs/test/spdmlib-test/src/protocol/measurement.rs
- function_names:
  - GET_CAPABILITIES::encode
  - GET_CAPABILITIES::read
  - CAPABILITIES::encode
  - CAPABILITIES::read
  source_file: /src/spdm-rs/test/spdmlib-test/src/protocol/capability.rs
- function_names:
  - GET_VERSION::encode
  - GET_VERSION::read
  - VERSION::encode
  - VERSION::read
  source_file: /src/spdm-rs/test/spdmlib-test/src/protocol/version.rs
- function_names:
  - measurement_collection_impl
  - generate_measurement_summary_hash_impl
  - handshake_secret_hkdf_expand_impl
  - master_secret_hkdf_expand_impl
  - asym_sign
  - sign_ecdsa_asym_algo
  - pqc_asym_sign
  - fake_asym_sign
  - fake_pqc_asym_sign
  source_file: /src/spdm-rs/test/spdmlib-test/src/common/secret_callback.rs
- function_names: []
  source_file: /src/spdm-rs/test/spdmlib-test/src/common/mod.rs
- function_names:
  - create_info
  - new_context
  - new_spdm_message
  - req_create_info
  - rsp_create_info
  - get_test_key_directory
  - get_rsp_cert_chain_buff
  - TestCase::config
  - TestCase::input_to_vec
  - TestCase::expected_to_vec
  - TestCase::get_certificate_chain_buffer
  - ResponderRunner::run
  source_file: /src/spdm-rs/test/spdmlib-test/src/common/util.rs
- function_names:
  - fake_hmac
  - fake_hmac_verify
  - fake_encrypt
  - fake_decrypt
  - get_random
  - fake_asym_verify
  - fake_pqc_asym_verify
  - fake_hkdf_extract
  - fake_hkdf_expand
  - fake_get_cert_from_cert_chain
  - fake_verify_cert_chain
  - test_0_crypto_init
  source_file: /src/spdm-rs/test/spdmlib-test/src/common/crypto_callback.rs
- function_names:
  - MySpdmDeviceIo::send
  - MySpdmDeviceIo::receive
  - MySpdmDeviceIo::flush_all
  - FakeSpdmDeviceIo::new
  - FakeSpdmDeviceIo::receive
  - FakeSpdmDeviceIo::send
  - FakeSpdmDeviceIo::flush_all
  - SpdmDeviceIoReceve::new
  - SpdmDeviceIoReceve::receive
  - SpdmDeviceIoReceve::send
  - SpdmDeviceIoReceve::flush_all
  - FakeSpdmDeviceIoReceve::new
  - FakeSpdmDeviceIoReceve::receive
  - FakeSpdmDeviceIoReceve::send
  - FakeSpdmDeviceIoReceve::flush_all
  - SharedBuffer::new
  - SharedBuffer::set_buffer_ref
  - SharedBuffer::set_buffer
  - SharedBuffer::get_buffer
  - test_fake_device_io
  - TestTransportEncap::encap
  - TestTransportEncap::decap
  - TestTransportEncap::encap_app
  - TestTransportEncap::decap_app
  - TestTransportEncap::get_sequence_number_count
  - TestTransportEncap::get_max_random_count
  - TestSpdmDeviceIo::new
  - TestSpdmDeviceIo::receive
  - TestSpdmDeviceIo::send
  - TestSpdmDeviceIo::flush_all
  - test_header_generater_callback
  - test_test_device_io
  source_file: /src/spdm-rs/test/spdmlib-test/src/common/device_io.rs
- function_names:
  - FunctionId::encode
  - FunctionId::read
  - InterfaceId::encode
  - InterfaceId::read
  - u8::from
  - u8::from
  - TdiState::try_from
  - TdiState::default
  - TdiState::encode
  - TdiState::read
  - u8::from
  - u8::from
  - TdispRequestResponseCode::try_from
  - TdispRequestResponseCode::encode
  - TdispRequestResponseCode::read
  - TdispVersion::default
  - TdispVersion::partial_cmp
  - TdispVersion::encode
  - TdispVersion::read
  - TdispMessageHeader::encode
  - TdispMessageHeader::read
  - u32::from
  - u32::from
  - TdispErrorCode::try_from
  - TdispErrorCode::encode
  - TdispErrorCode::read
  - ReqGetTdispVersion::encode
  - ReqGetTdispVersion::read
  - RspTdispVersion::encode
  - RspTdispVersion::read
  - ReqGetTdispCapabilities::encode
  - ReqGetTdispCapabilities::read
  - LockInterfaceFlag::encode
  - LockInterfaceFlag::read
  - RspTdispCapabilities::encode
  - RspTdispCapabilities::read
  - ReqLockInterfaceRequest::encode
  - ReqLockInterfaceRequest::read
  - RspLockInterfaceResponse::encode
  - RspLockInterfaceResponse::read
  - ReqGetDeviceInterfaceReport::encode
  - ReqGetDeviceInterfaceReport::read
  - InterfaceInfo::encode
  - InterfaceInfo::read
  - RspDeviceInterfaceReport::encode
  - RspDeviceInterfaceReport::read
  - ReqGetDeviceInterfaceState::encode
  - ReqGetDeviceInterfaceState::read
  - RspDeviceInterfaceState::encode
  - RspDeviceInterfaceState::read
  - ReqStartInterfaceRequest::encode
  - ReqStartInterfaceRequest::read
  - RspStartInterfaceResponse::encode
  - RspStartInterfaceResponse::read
  - ReqStopInterfaceRequest::encode
  - ReqStopInterfaceRequest::read
  - RspStopInterfaceResponse::encode
  - RspStopInterfaceResponse::read
  - ReqBindP2PStreamRequest::encode
  - ReqBindP2PStreamRequest::read
  - RspBindP2PStreamResponse::encode
  - RspBindP2PStreamResponse::read
  - ReqUnBindP2PStreamRequest::encode
  - ReqUnBindP2PStreamRequest::read
  - RspUnBindP2PStreamResponse::encode
  - RspUnBindP2PStreamResponse::read
  - MMIORangeAttribute::encode
  - MMIORangeAttribute::read
  - TdispMmioRange::default
  - TdispMmioRange::encode
  - TdispMmioRange::read
  - ReqSetMmioAttributeRequest::encode
  - ReqSetMmioAttributeRequest::read
  - RspSetMmioAttributeResponse::encode
  - RspSetMmioAttributeResponse::read
  - RspTdispError::encode
  - RspTdispError::read
  - vendor_id
  - TdiReportStructure::default
  - TdiReportStructure::encode
  - TdiReportStructure::read
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp.rs
- function_names: []
  source_file: /src/spdm-rs/tdisp/src/lib.rs
- function_names:
  - pci_tdisp_req_lock_interface_request
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_lock_interface_request.rs
- function_names:
  - pci_tdisp_req_get_tdisp_version
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_version.rs
- function_names:
  - pci_tdisp_req_get_device_interface_state
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_state.rs
- function_names:
  - pci_tdisp_req_get_tdisp_capabilities
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_tdisp_capabilities.rs
- function_names:
  - pci_tdisp_req_set_mmio_attribute_request
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_set_mmio_attribute_request.rs
- function_names:
  - pci_tdisp_req_bind_p2p_stream_request
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_bind_p2p_stream_request.rs
- function_names: []
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/mod.rs
- function_names:
  - pci_tdisp_req_stop_interface_request
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_stop_interface_request.rs
- function_names:
  - pci_tdisp_req_unbind_p2p_stream_request
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_unbind_p2p_stream_request.rs
- function_names:
  - pci_tdisp_req_vdm_request
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_vdm_request.rs
- function_names:
  - pci_tdisp_req_start_interface_request
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_start_interface_request.rs
- function_names:
  - pci_tdisp_req_get_device_interface_report
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_requester/pci_tdisp_req_get_device_interface_report.rs
- function_names:
  - pci_tdisp_rsp_dispatcher
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_dispatcher.rs
- function_names:
  - register
  - pci_tdisp_device_capabilities
  - pci_tdisp_rsp_capabilities
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_capabilities.rs
- function_names:
  - register
  - pci_tdisp_device_interface_report
  - pci_tdisp_rsp_interface_report
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_report.rs
- function_names:
  - register
  - pci_tdisp_device_bind_p2p_stream
  - pci_tdisp_rsp_bind_p2p_stream
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_bind_p2p_stream_request.rs
- function_names:
  - register
  - pci_tdisp_device_lock_interface
  - pci_tdisp_rsp_lock_interface
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_lock_interface_request.rs
- function_names:
  - register
  - pci_tdisp_device_vdm_response
  - pci_tdisp_rsp_vdm_response
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_vdm_response.rs
- function_names:
  - register
  - pci_tdisp_device_error
  - write_error
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_error.rs
- function_names:
  - register
  - pci_tdisp_device_version
  - pci_tdisp_rsp_version
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_tdisp_version.rs
- function_names:
  - register
  - pci_tdisp_device_stop_interface
  - pci_tdisp_rsp_stop_interface
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_stop_interface_request.rs
- function_names: []
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/mod.rs
- function_names:
  - register
  - pci_tdisp_device_unbind_p2p_stream
  - pci_tdisp_rsp_unbind_p2p_stream
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_unbind_p2p_stream_request.rs
- function_names:
  - register
  - pci_tdisp_device_set_mmio_attribute
  - pci_tdisp_rsp_set_mmio_attribute
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_set_mmio_attribute_request.rs
- function_names:
  - register
  - pci_tdisp_device_start_interface
  - pci_tdisp_rsp_start_interface
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_start_interface_request.rs
- function_names:
  - register
  - pci_tdisp_device_interface_state
  - pci_tdisp_rsp_interface_state
  source_file: /src/spdm-rs/tdisp/src/pci_tdisp_responder/pci_tdisp_rsp_device_interface_state.rs
- function_names:
  - QueryDataObject::encode
  - QueryDataObject::read
  - QueryRespDataObject::encode
  - QueryRespDataObject::read
  - Aes256GcmKeyBuffer::encode
  - Aes256GcmKeyBuffer::read
  - KeyProgDataObject::encode
  - KeyProgDataObject::read
  - KpAckStatus::default
  - u8::from
  - KpAckStatus::try_from
  - KpAckStatus::encode
  - KpAckStatus::read
  - KpAckDataObject::encode
  - KpAckDataObject::read
  - KSetGoDataObject::encode
  - KSetGoDataObject::read
  - KSetStopDataObject::encode
  - KSetStopDataObject::read
  - KGoStopAckDataObject::encode
  - KGoStopAckDataObject::read
  - vendor_id
  source_file: /src/spdm-rs/idekm/src/pci_idekm.rs
- function_names: []
  source_file: /src/spdm-rs/idekm/src/lib.rs
- function_names:
  - IdekmReqContext::pci_ide_km_key_set_go
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_go.rs
- function_names:
  - IdekmReqContext::pci_ide_km_query
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_query.rs
- function_names:
  - IdekmReqContext::pci_ide_km_key_prog
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_prog.rs
- function_names: []
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_requester/mod.rs
- function_names:
  - IdekmReqContext::pci_ide_km_key_set_stop
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_requester/pci_ide_km_req_key_set_stop.rs
- function_names:
  - register
  - pci_ide_km_device_key_set_go
  - pci_ide_km_rsp_key_set_go
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_go.rs
- function_names:
  - register
  - pci_ide_km_device_key_prog
  - pci_ide_km_rsp_key_prog
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_prog.rs
- function_names:
  - register
  - pci_ide_km_device_key_set_stop
  - pci_ide_km_rsp_key_set_stop
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_key_set_stop.rs
- function_names: []
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_responder/mod.rs
- function_names:
  - register
  - pci_ide_km_device_query
  - pci_ide_km_rsp_query
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_query.rs
- function_names:
  - pci_ide_km_rsp_dispatcher
  source_file: /src/spdm-rs/idekm/src/pci_ide_km_responder/pci_ide_km_rsp_dispatcher.rs
- function_names:
  - pass_rsp_handle_spdm_version
  - pass_rsp_handle_spdm_capability
  - pass_rsp_handle_spdm_algorithm
  - pass_rsp_handle_spdm_digest
  - pass_rsp_handle_spdm_certificate
  - pass_rsp_handle_spdm_challenge
  - pass_rsp_handle_spdm_measurement
  - pass_rsp_handle_spdm_key_exchange
  - pass_rsp_handle_spdm_psk_exchange
  source_file: /src/spdm-rs/fuzz-target/pass_context/src/pass_responder.rs
- function_names:
  - fuzz_total_requesters
  source_file: /src/spdm-rs/fuzz-target/pass_context/src/pass_requester.rs
- function_names:
  - new_logger_from_env
  - main
  source_file: /src/spdm-rs/fuzz-target/pass_context/src/main.rs
- function_names:
  - run_spdm
  - permutation
  - main
  source_file: /src/spdm-rs/fuzz-target/random_requester/src/main.rs
- function_names:
  - fuzz_handle_spdm_measurement
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/measurement_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_psk_exchange
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/pskexchange_rsp/src/main.rs
- function_names:
  - fuzz_handle_deliver_encapsulated_reponse
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_key_update
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/key_update_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_psk_finish
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/psk_finish_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_heartbeat
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/heartbeat_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_version
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/version_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_digest
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/digest_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_challenge
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/challenge_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_vendor_defined_request
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/vendor_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_end_session
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/end_session_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_certificate
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/certificate_rsp/src/main.rs
- function_names:
  - fuzz_handle_encap_response_certificate
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_certificate_rsp/src/main.rs
- function_names:
  - fuzz_handle_encap_response_digest
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/deliver_encapsulated_response_digest_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_finish
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/finish_rsp/src/main.rs
- function_names:
  - fuzz_handle_get_encapsulated_request
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/get_encapsulated_request_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_algorithm
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/algorithm_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_key_exchange
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/keyexchange_rsp/src/main.rs
- function_names:
  - fuzz_handle_spdm_capability
  - main
  source_file: /src/spdm-rs/fuzz-target/responder/capability_rsp/src/main.rs
- function_names:
  - fake_hkdf_extract
  - fake_hkdf_expand
  source_file: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_hkdf_impl.rs
- function_names:
  - fake_encrypt
  - fake_decrypt
  source_file: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_aead_impl.rs
- function_names: []
  source_file: /src/spdm-rs/fuzz-target/fuzzlib/src/time.rs
- function_names:
  - measurement_collection_impl
  - generate_measurement_summary_hash_impl
  - handshake_secret_hkdf_expand_impl
  - master_secret_hkdf_expand_impl
  source_file: /src/spdm-rs/fuzz-target/fuzzlib/src/secret.rs
- function_names:
  - FakeSpdmDeviceIoReceve::new
  - FakeSpdmDeviceIoReceve::receive
  - FakeSpdmDeviceIoReceve::send
  - FakeSpdmDeviceIoReceve::flush_all
  - FuzzTmpSpdmDeviceIoReceve::new
  - FuzzTmpSpdmDeviceIoReceve::receive
  - FuzzTmpSpdmDeviceIoReceve::send
  - FuzzTmpSpdmDeviceIoReceve::flush_all
  - FuzzSpdmDeviceIoReceve::new
  - FuzzSpdmDeviceIoReceve::receive
  - FuzzSpdmDeviceIoReceve::send
  - FuzzSpdmDeviceIoReceve::flush_all
  - FakeSpdmDeviceIo::new
  - FakeSpdmDeviceIo::set_rx
  - FakeSpdmDeviceIo::receive
  - FakeSpdmDeviceIo::send
  - FakeSpdmDeviceIo::flush_all
  - test_single_run
  source_file: /src/spdm-rs/fuzz-target/fuzzlib/src/fake_device_io.rs
- function_names:
  - new_logger_from_env
  - certificata_data
  source_file: /src/spdm-rs/fuzz-target/fuzzlib/src/lib.rs
- function_names:
  - fuzz_send_receive_spdm_challenge
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/challenge_req/src/main.rs
- function_names:
  - fuzz_encap_handle_get_certificate
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/encapsulated_request_certificate_req/src/main.rs
- function_names:
  - fuzz_send_spdm_vendor_defined_request
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/vendor_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_capability
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/capability_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_heartbeat
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/heartbeat_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_digest
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/digest_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_algorithm
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/algorithm_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_key_exchange
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/key_exchange_req/src/main.rs
- function_names:
  - fuzz_session_based_mutual_authenticate
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/encapsulated_request_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_finish
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/finish_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_psk_finish
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/psk_finish_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_version
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/version_req/src/main.rs
- function_names:
  - f::u::z::z::_::s::e::n::d::_::r::e::c::e::i::v::e::_::s::p::d::m::_::k::e::y::_::u::p::d::a::t::e::f
  - fuzz_send_receive_spdm_key_update
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/key_update_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_certificate
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/certificate_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_end_session
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/end_session_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_measurement
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/measurement_req/src/main.rs
- function_names:
  - fuzz_encap_handle_get_digest
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/encapsulated_request_digest_req/src/main.rs
- function_names:
  - fuzz_send_receive_spdm_psk_exchange
  - main
  source_file: /src/spdm-rs/fuzz-target/requester/psk_exchange_req/src/main.rs
- function_names:
  - MctpMessageType::default
  - MctpMessageHeader::encode
  - MctpMessageHeader::read
  - MctpTransportEncap::encap
  - MctpTransportEncap::decap
  - MctpTransportEncap::encap_app
  - MctpTransportEncap::decap_app
  - MctpTransportEncap::get_sequence_number_count
  - MctpTransportEncap::get_max_random_count
  - tests::test_case0_mctpmessageheader
  - tests::test_case0_encap
  - tests::test_case0_decap
  - tests::test_case0_encap_app
  - tests::test_case0_decap_app
  - tests::test_case0_get_sequence_number_count
  - tests::test_case0_get_max_random_count
  source_file: /src/spdm-rs/mctp_transport/src/header.rs
- function_names: []
  source_file: /src/spdm-rs/mctp_transport/src/lib.rs
- function_names:
  - Task::wake_by_ref
  - Arc::is_pending
  - Executor::run
  - Executor::block_on
  - Executor::add_task
  - Executor::poll_tasks
  - Executor::active_tasks_count
  source_file: /src/spdm-rs/executor/src/executor.rs
- function_names:
  - run
  - block_on
  - add_task
  - poll_tasks
  - active_tasks_count
  source_file: /src/spdm-rs/executor/src/lib.rs
- function_names:
  - read_rtc
  - bcd_to_binary
  - is_24_hour_format
  - is_binary_mode
  - read_cmos_register
  - get_update_in_progress_flag
  - read_datetime_register
  - read_hour_register
  - read_date_time
  source_file: /src/spdm-rs/sys_time/src/rtc.rs
- function_names:
  - get_sys_time
  source_file: /src/spdm-rs/sys_time/src/lib.rs
- function_names:
  - PciDoeVendorId::default
  - PciDoeDataObjectType::default
  - PciDoeMessageHeader::encode
  - PciDoeMessageHeader::read
  - PciDoeTransportEncap::encap
  - PciDoeTransportEncap::decap
  - PciDoeTransportEncap::encap_app
  - PciDoeTransportEncap::decap_app
  - PciDoeTransportEncap::get_sequence_number_count
  - PciDoeTransportEncap::get_max_random_count
  - tests_header::test_case0_pcidoemessageheader
  - tests_header::test_case1_pcidoemessageheader
  - tests_header::test_case2_pcidoemessageheader
  - tests_header::test_case3_pcidoemessageheader
  - tests_header::test_case4_pcidoemessageheader
  - tests_header::test_case5_pcidoemessageheader
  source_file: /src/spdm-rs/pcidoe_transport/src/header.rs
- function_names: []
  source_file: /src/spdm-rs/pcidoe_transport/src/lib.rs
- function_names:
  - SpdmConfig::validate_content
  - TEMPLATE
  - main
  source_file: /src/spdm-rs/spdmlib/build.rs
- function_names:
  - StatusSeverity::default
  - StatusSeverity::try_from
  - StatusCodeCore::try_from
  - StatusCodeCore::default
  - StatusCodeCrypto::try_from
  - StatusCodeCrypto::default
  - StatusCodeCertParse::try_from
  - StatusCodeCertParse::default
  - StatusCodeTransport::try_from
  - StatusCodeTransport::default
  - StatusCodeMeasCollect::try_from
  - StatusCodeMeasCollect::default
  - StatusCodeRNG::try_from
  - StatusCodeRNG::default
  - StatusCodeVdmError::try_from
  - StatusCode::default
  - StatusCode::try_from
  - StatusCode::try_into
  - SpdmErrorMessageData::default
  - SpdmStatus::eq
  - SpdmStatus::encode
  - SpdmStatus::read
  - SpdmStatus::get_u32
  - SpdmStatus::from_u32
  - SpdmStatus::spdm_status_is_success
  - SpdmStatus::spdm_status_is_error
  - SpdmStatus::spdm_status_set_error_data
  - SpdmStatus::fmt
  - spdm_return_status
  - SPDM_STATUS_VDM_DEFINED_ERROR
  source_file: /src/spdm-rs/spdmlib/src/error.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/lib.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/config.rs
- function_names:
  - check_cert_chain_format
  - check_cert_format
  - check_tbs_certificate
  - check_signature_algorithm
  - check_signature_value
  - check_tag_is_sequence
  - check_tag_is_num_oid
  - check_tag_is_bool
  - check_tag_is_octet_string
  - check_length
  - check_version
  - check_object_identifier
  - check_name
  - check_validity
  - check_public_key_info
  - check_and_get_extensions
  - get_key_usage_value
  - check_extensions_spdm_oid
  - find_target_object_identifier_in_single_extension
  - find_target_object_identifier_in_extensions
  - check_and_get_extn_id
  - check_and_skip_common_sequence
  - check_and_skip_common_tag
  - check_and_get_common_tag
  - get_oid_by_base_asym_algo
  - object_identifiers_are_same
  - is_root_certificate
  - check_leaf_certificate
  - tests::test_case0_object_identifiers_are_same
  - tests::test_case0_get_oid_by_base_asym_algo
  - tests::test_case0_check_and_skip_common_tag
  - tests::test_case0_check_object_identifier
  - tests::test_case0_check_version
  - tests::test_case0_check_length
  - tests::test_case0_check_tag_is_sequence
  - tests::test_case0_check_signature_algorithm
  - tests::test_case0_check_tbs_certificate
  - tests::test_case1_check_tbs_certificate
  - tests::test_case0_check_cert_format
  - tests::test_case0_check_cert_chain_format
  - tests::test_case0_is_root_certificate
  - tests::test_case0_get_key_usage_value
  - tests::test_case1_get_key_usage_value
  - tests::test_case0_check_extensions_spdm_oid
  - tests::test_case0_check_and_get_extn_id
  - tests::test_case0_find_target_object_identifiers
  - tests::test_case0_check_leaf_certificate
  - tests::test_check_length_short_form
  - tests::test_check_length_short_form_large_than_128
  - tests::test_check_length_long_form
  - tests::test_check_length_long_form_smaller_than_128
  - tests::test_check_length_overflow_the_length_of_k_octets_bytes_is_less_than_k
  - tests::test_check_cert_format_large_length
  source_file: /src/spdm-rs/spdmlib/src/crypto/x509v3.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_callbacks.rs
- function_names:
  - BytesMutStrubbed::with_capacity
  - BytesMutStrubbed::new
  - BytesMutStrubbed::len
  - BytesMutStrubbed::is_empty
  - BytesMutStrubbed::capacity
  - BytesMutStrubbed::extend_from_slice
  - BytesMutStrubbed::reserve
  - BytesMutStrubbed::resize
  - BytesMutStrubbed::clear
  - BytesMutStrubbed::truncate
  - BytesMutStrubbed::zeroed
  - BytesMutStrubbed::put_u8
  - BytesMutStrubbed::drop
  - BytesMutStrubbed::remaining
  - BytesMutStrubbed::chunk
  - BytesMutStrubbed::advance
  - BytesMutStrubbed::copy_to_bytes
  - BytesMutStrubbed::as_ref
  - BytesMutStrubbed::deref
  - BytesMutStrubbed::as_mut
  - BytesMutStrubbed::deref_mut
  - BytesMutStrubbed::from
  - BytesMutStrubbed::from
  - BytesMutStrubbed::eq
  - BytesMutStrubbed::partial_cmp
  - BytesMutStrubbed::cmp
  - BytesMutStrubbed::hash
  - BytesMutStrubbed::borrow
  - BytesMutStrubbed::borrow_mut
  - BytesMutStrubbed::clone
  - BytesMutStrubbed::into_iter
  - '&''a BytesMutStrubbed::into_iter'
  - BytesMutStrubbed::extend
  - BytesMutStrubbed::extend
  - BytesMutStrubbed::extend
  - BytesMutStrubbed::from_iter
  - BytesMutStrubbed::from_iter
  source_file: /src/spdm-rs/spdmlib/src/crypto/bytes_mut_scrubbed.rs
- function_names:
  - hash::register
  - hash::hash_all
  - hash::SpdmHashCtx::clone
  - hash::SpdmHashCtx::drop
  - hash::SpdmHashCtx::encode
  - hash::SpdmHashCtx::read
  - hash::hash_ctx_init
  - hash::hash_ctx_update
  - hash::hash_ctx_finalize
  - hash::hash_ctx_dup
  - hmac::register
  - hmac::hmac
  - hmac::hmac_verify
  - asym_verify::register
  - asym_verify::verify
  - pqc_asym_verify::register
  - pqc_asym_verify::verify
  - dhe::register
  - dhe::generate_key_pair
  - kem_decap::register
  - kem_decap::generate_key_pair
  - kem_encap::register
  - kem_encap::new_key
  - cert_operation::register
  - cert_operation::get_cert_from_cert_chain
  - cert_operation::verify_cert_chain
  - hkdf::register
  - hkdf::hkdf_extract
  - hkdf::hkdf_expand
  - aead::register
  - aead::encrypt
  - aead::decrypt
  - rand::register
  - rand::get_random
  - spdm_asym_verify
  source_file: /src/spdm-rs/spdmlib/src/crypto/mod.rs
- function_names:
  - test_case_hash
  - test_case_gcm256
  - test_case_gcm128
  - test_case_chacha20_poly1305
  - from_hex
  - from_hex_to_aead_key
  - from_hex_to_aead_iv
  - from_hex_digit
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_tests.rs
- function_names:
  - run_self_tests
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/mod.rs
- function_names:
  - encrypt_self_test
  - decrypt_self_test
  - run_self_tests
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/aead_st/mod.rs
- function_names:
  - run_self_tests
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/hash_st/mod.rs
- function_names:
  - run_self_tests
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/dhe_st/mod.rs
- function_names:
  - run_self_tests
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/hmac_st/mod.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/dhe_vectors_p256.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/ecdsa_p256_sha384_sig_ver.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/ecdsa_p256_sha256_sig_ver.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/ecdsa_p384_sha384_sig_ver.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/gcm_decrypt256.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/sha384_short_msg.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/hmac_sha384.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/sha256_short_msg.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/hmac_sha512.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/ecdsa_p384_sha256_sig_ver.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/gcm_encrypt_ext_iv256.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/mod.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/dhe_vectors_p384.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/hmac_sha256.rs
- function_names:
  - get_cavs_vectors
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/cavs_vectors/rsa_sig_ver.rs
- function_names:
  - ecdsa_verify
  - run_self_tests
  source_file: /src/spdm-rs/spdmlib/src/crypto/fips/asym_verify_st/mod.rs
- function_names:
  - pqc_asym_verify
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/pqc_asym_verify_impl.rs
- function_names:
  - hkdf_extract
  - hkdf_expand
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/hkdf_impl.rs
- function_names:
  - hmac
  - hmac_verify
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/hmac_impl.rs
- function_names:
  - generate_key_pair
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/dhe_impl.rs
- function_names:
  - hash_all
  - hash_ext::hash_ctx_update
  - hash_ext::hash_ctx_finalize
  - hash_ext::hash_ctx_dup
  - hash_ext::hash_ctx_init
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/hash_impl.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/mod.rs
- function_names:
  - get_cert_from_cert_chain
  - verify_cert_chain
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/cert_operation_impl.rs
- function_names:
  - asym_verify
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/asym_verify_impl.rs
- function_names:
  - encrypt
  - decrypt
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/aead_impl.rs
- function_names:
  - kem_generate_key_pair
  - kem_new_key
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/kem_impl.rs
- function_names:
  - get_random
  source_file: /src/spdm-rs/spdmlib/src/crypto/crypto_null/rand_impl.rs
- function_names:
  - pqc_asym_verify
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/pqc_asym_verify_impl.rs
- function_names:
  - hkdf_extract
  - hkdf_expand
  - SpdmCryptoHkdfKeyLen::new
  - SpdmCryptoHkdfKeyLen::len
  - tests::test_case0_hkdf_expand
  - tests::test_case1_hkdf_expand
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hkdf_impl.rs
- function_names:
  - hmac
  - hmac_verify
  - tests::test_case0_hmac_verify
  - tests::test_case1_hmac_verify
  - tests::test_case2_hmac_verify
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hmac_impl.rs
- function_names:
  - generate_key_pair
  - SpdmDheKeyExchangeP256::compute_final_key
  - SpdmDheKeyExchangeP256::generate_key_pair
  - SpdmDheKeyExchangeP384::compute_final_key
  - SpdmDheKeyExchangeP384::generate_key_pair
  - tests::test_case0_dhe
  - tests::test_case1_dhe
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/dhe_impl.rs
- function_names:
  - hash_all
  - hash_ext::hash_ctx_update
  - hash_ext::hash_ctx_finalize
  - hash_ext::hash_ctx_dup
  - hash_ext::hash_ctx_init
  - hash_ext::insert_to_table
  - tests::test_case0_hash_all
  - tests::test_case1_hash_all
  - tests::test_case2_hash_all
  - tests::test_case0_hash_update
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/hash_impl.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/mod.rs
- function_names:
  - get_cert_from_cert_chain
  - SpdmRequesterEkuValidator::validate
  - spdm_requester_eku_validator
  - SpdmResponderEkuValidator::validate
  - spdm_responder_eku_validator
  - verify_cert_chain
  - tests::test_case0_cert_from_cert_chain
  - tests::test_case1_cert_from_cert_chain
  - tests::test_case2_cert_from_cert_chain
  - tests::test_case3_cert_from_cert_chain
  - tests::test_case4_cert_from_cert_chain
  - tests::test_case5_cert_from_cert_chain
  - tests::test_verify_cert_chain_case1
  - tests::test_certificate_eku_v3_end_with_eku_example_1
  - tests::test_certificate_eku_v3_end_with_eku_spdm_oid_3
  - tests::test_certificate_eku_v3_end_with_eku_spdm_oid_4
  - tests::test_certificate_eku_v3_end_with_eku_spdm_oid_3_and_4
  - tests::test_certificate_eku_v3_end_without_eku
  - tests::test_certificate_eku_v3_end_with_eku_spdm_without_spdm_oid
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/cert_operation_impl.rs
- function_names:
  - parse_der_length
  - extract_spki_pubkey
  - asym_verify
  - ecc_signature_bin_to_der
  - tests::test_case0_ecc_signature_bin_to_der
  - tests::test_case1_ecc_signature_bin_to_der
  - tests::test_case2_ecc_signature_bin_to_der
  - tests::test_case3_ecc_signature_bin_to_der
  - tests::test_case0_asym_verify
  - tests::test_case1_asym_verify
  - tests::test_case2_asym_verify
  - tests::test_case3_asym_verify
  - tests::test_extract_spki_pubkey_rfc7250
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/asym_verify_impl.rs
- function_names:
  - encrypt
  - decrypt
  - OneNonceSequence::new
  - OneNonceSequence::advance
  - make_key
  - tests::test_case0_encrypt
  - tests::test_case1_encrypt
  - tests::test_case2_encrypt
  - tests::test_case3_encrypt
  - tests::test_case4_encrypt
  - tests::test_case5_encrypt
  - tests::test_case6_encrypt
  - tests::test_case0_decrypt
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/aead_impl.rs
- function_names:
  - kem_generate_key_pair
  - kem_new_key
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/kem_impl.rs
- function_names:
  - get_random
  - tests::test_case0_get_random
  - tests::test_case1_get_random
  source_file: /src/spdm-rs/spdmlib/src/crypto/spdm_ring/rand_impl.rs
- function_names:
  - SpdmHeartbeatRequestPayload::spdm_encode
  - SpdmHeartbeatRequestPayload::spdm_read
  - SpdmHeartbeatResponsePayload::spdm_encode
  - SpdmHeartbeatResponsePayload::spdm_read
  - tests::test_case0_spdm_heartbeat_response_payload
  - tests::test_case0_spdm_heartbeat_request_payload
  source_file: /src/spdm-rs/spdmlib/src/message/heartbeat.rs
- function_names:
  - SpdmChallengeRequestPayload::spdm_encode
  - SpdmChallengeRequestPayload::spdm_read
  - SpdmChallengeAuthResponsePayload::spdm_encode
  - SpdmChallengeAuthResponsePayload::spdm_read
  - tests::test_case0_spdm_challenge_request_payload
  - tests::test_case1_spdm_challenge_request_payload
  - tests::test_case0_spdm_challenge_auth_response_payload
  - tests::test_case1_spdm_challenge_auth_response_payload
  source_file: /src/spdm-rs/spdmlib/src/message/challenge.rs
- function_names:
  - test_chunk_get_and_response_struct
  - test_chunk_response_msg_overflow
  source_file: /src/spdm-rs/spdmlib/src/message/chunk_get_test.rs
- function_names:
  - test_capability_struct
  - test_capability_request_struct
  - test_capability_response_struct
  source_file: /src/spdm-rs/spdmlib/src/message/capability_test.rs
- function_names:
  - SpdmKeyExchangeRequestPayload::spdm_encode
  - SpdmKeyExchangeRequestPayload::spdm_read
  - SpdmKeyExchangeMutAuthAttributes::encode
  - SpdmKeyExchangeMutAuthAttributes::read
  - SpdmKeyExchangeResponsePayload::spdm_encode
  - SpdmKeyExchangeResponsePayload::spdm_read
  - tests::test_case0_spdm_key_exchange_mut_auth_attributes
  - tests::test_case0_spdm_key_exchange_request_payload
  - tests::test_case0_spdm_key_exchange_response_payload
  - tests::test_case1_spdm_key_exchange_response_payload
  source_file: /src/spdm-rs/spdmlib/src/message/key_exchange.rs
- function_names:
  - test_key_update_struct
  source_file: /src/spdm-rs/spdmlib/src/message/key_update_test.rs
- function_names:
  - test_digest_struct
  - test_digest_struct_case2
  source_file: /src/spdm-rs/spdmlib/src/message/digest_test.rs
- function_names:
  - create_spdm_context
  - new_spdm_message
  - DeviceIO::send
  - DeviceIO::receive
  - DeviceIO::flush_all
  - TransportEncap::encap
  - TransportEncap::decap
  - TransportEncap::encap_app
  - TransportEncap::decap_app
  - TransportEncap::get_sequence_number_count
  - TransportEncap::get_max_random_count
  source_file: /src/spdm-rs/spdmlib/src/message/mod_test.common.inc.rs
- function_names:
  - SpdmNegotiateAlgorithmsRequestPayload::spdm_encode
  - SpdmNegotiateAlgorithmsRequestPayload::spdm_read
  - SpdmAlgorithmsResponsePayload::spdm_encode
  - SpdmAlgorithmsResponsePayload::spdm_read
  - tests::test_case0_spdm_negotiate_algorithms_request_payload
  - tests::test_case1_spdm_negotiate_algorithms_request_payload
  - tests::test_case2_spdm_negotiate_algorithms_request_payload
  - tests::test_case0_spdm_algorithms_response_payload
  - tests::test_case1_spdm_algorithms_response_payload
  - tests::test_case2_spdm_algorithms_response_payload
  source_file: /src/spdm-rs/spdmlib/src/message/algorithm.rs
- function_names:
  - test_finish_struct
  source_file: /src/spdm-rs/spdmlib/src/message/finish_test.rs
- function_names:
  - RegistryOrStandardsBodyID::get_default_vendor_id_len
  - VendorIDStruct::encode
  - VendorIDStruct::read
  - VendorIDStruct::read_bytes
  - VendorIDStruct::eq
  - VendorIDStruct::default
  - VendorDefinedReqPayloadStruct::encode
  - VendorDefinedReqPayloadStruct::read
  - VendorDefinedReqPayloadStruct::encode_large
  - VendorDefinedReqPayloadStruct::read_large
  - VendorDefinedRspPayloadStruct::encode
  - VendorDefinedRspPayloadStruct::read
  - VendorDefinedRspPayloadStruct::encode_large
  - VendorDefinedRspPayloadStruct::read_large
  - SpdmVendorDefinedRequestPayload::spdm_encode
  - SpdmVendorDefinedRequestPayload::spdm_read
  - SpdmVendorDefinedResponsePayload::spdm_encode
  - SpdmVendorDefinedResponsePayload::spdm_read
  - register_vendor_defined_struct
  - vendor_defined_request_handler
  - register_vendor_defined_struct_ex
  - vendor_defined_request_handler_ex
  source_file: /src/spdm-rs/spdmlib/src/message/vendor.rs
- function_names:
  - test_case1_spdmversion_struct
  source_file: /src/spdm-rs/spdmlib/src/message/version_test.rs
- function_names:
  - SpdmFinishRequestAttributes::encode
  - SpdmFinishRequestAttributes::read
  - SpdmFinishRequestPayload::spdm_encode
  - SpdmFinishRequestPayload::spdm_read
  - SpdmFinishResponsePayload::spdm_encode
  - SpdmFinishResponsePayload::spdm_read
  - tests::test_case0_spdm_finish_request_payload
  - tests::test_case1_spdm_finish_request_payload
  - tests::test_case0_spdm_finish_response_payload
  - tests::test_case1_spdm_finish_response_payload
  source_file: /src/spdm-rs/spdmlib/src/message/finish.rs
- function_names:
  - SpdmGetCertificateRequestPayload::spdm_encode
  - SpdmGetCertificateRequestPayload::spdm_read
  - SpdmCertificateResponsePayload::default
  - SpdmCertificateResponsePayload::spdm_encode
  - SpdmCertificateResponsePayload::spdm_read
  - tests::test_case0_spdm_get_certificate_request_payload
  - tests::test_case0_spdm_certificate_response_payload
  source_file: /src/spdm-rs/spdmlib/src/message/certificate.rs
- function_names:
  - SpdmErrorCode::default
  - SpdmErrorResponseNoneExtData::spdm_encode
  - SpdmErrorResponseNoneExtData::spdm_read
  - SpdmErrorResponseNotReadyExtData::encode
  - SpdmErrorResponseNotReadyExtData::read
  - SpdmErrorResponseNotReadyExtData::spdm_encode
  - SpdmErrorResponseNotReadyExtData::spdm_read
  - SpdmErrorResponseVendorExtData::spdm_encode
  - SpdmErrorResponseVendorExtData::spdm_read
  - SpdmErrorResponseExtData::default
  - SpdmErrorResponsePayload::spdm_encode
  - SpdmErrorResponsePayload::spdm_read
  - tests::test_case0_spdm_error_response_not_ready_ext_data
  - tests::test_case0_spdm_error_response_vendor_ext_data
  - tests::test_case1_spdm_error_response_vendor_ext_data
  - tests::test_case0_spdm_error_response_payload
  - tests::new_spdm_response
  source_file: /src/spdm-rs/spdmlib/src/message/error.rs
- function_names:
  - SpdmRequestResponseCode::default
  - SpdmMessageHeader::encode
  - SpdmMessageHeader::read
  - SpdmMessageGeneralPayload::encode
  - SpdmMessageGeneralPayload::read
  - SpdmMessageGeneralPayload::spdm_encode
  - SpdmMessageGeneralPayload::spdm_read
  - SpdmMessage::read_with_detailed_error
  - SpdmMessage::spdm_encode
  - SpdmMessage::spdm_read
  - tests::test_case0_spdm_message_header
  - tests::test_case0_spdm_message
  - tests::test_case1_spdm_message
  - tests::test_case2_spdm_message
  - tests::test_case3_spdm_message
  - tests::test_case4_spdm_message
  - tests::test_case5_spdm_message
  - tests::test_case6_spdm_message
  - tests::test_case7_spdm_message
  - tests::test_case8_spdm_message
  - tests::test_case9_spdm_message
  - tests::test_case10_spdm_message
  - tests::test_case12_spdm_message
  - tests::test_case13_spdm_message
  - tests::test_case114_spdm_message
  - tests::test_case15_spdm_message
  - tests::test_case17_spdm_message
  - tests::test_case18_spdm_message
  - tests::test_case19_spdm_message
  - tests::test_case20_spdm_message
  - tests::test_case21_spdm_message
  - tests::test_case22_spdm_message
  - tests::test_case23_spdm_message
  - tests::test_case24_spdm_message
  - tests::test_case25_spdm_message
  - tests::test_case26_spdm_message
  - tests::test_case27_spdm_message
  - tests::test_case28_spdm_message
  source_file: /src/spdm-rs/spdmlib/src/message/mod.rs
- function_names:
  - SpdmKeyUpdateOperation::default
  - SpdmKeyUpdateRequestPayload::spdm_encode
  - SpdmKeyUpdateRequestPayload::spdm_read
  - SpdmKeyUpdateResponsePayload::spdm_encode
  - SpdmKeyUpdateResponsePayload::spdm_read
  - tests::test_case0_spdm_key_update_request_payload
  - tests::test_case0_spdm_key_update_response_payload
  source_file: /src/spdm-rs/spdmlib/src/message/key_update.rs
- function_names:
  - SpdmChunkSendRequestPayload::spdm_encode
  - SpdmChunkSendRequestPayload::spdm_read
  - SpdmChunkSenderAttributes::encode
  - SpdmChunkSenderAttributes::read
  - SpdmChunkSendAckResponsePayload::spdm_encode
  - SpdmChunkSendAckResponsePayload::spdm_read
  - SpdmChunkReceiverAttributes::encode
  - SpdmChunkReceiverAttributes::read
  source_file: /src/spdm-rs/spdmlib/src/message/chunk_send.rs
- function_names:
  - SpdmChunkGetRequestPayload::spdm_encode
  - SpdmChunkGetRequestPayload::spdm_read
  - SpdmChunkResponsePayload::spdm_encode
  - SpdmChunkResponsePayload::spdm_read
  source_file: /src/spdm-rs/spdmlib/src/message/chunk_get.rs
- function_names:
  - test_measurement_struct
  - test_measurement_response
  source_file: /src/spdm-rs/spdmlib/src/message/measurement_test.rs
- function_names:
  - test_end_session_struct
  source_file: /src/spdm-rs/spdmlib/src/message/end_session_test.rs
- function_names:
  - test_heartbeat_struct
  source_file: /src/spdm-rs/spdmlib/src/message/heartbeat_test.rs
- function_names:
  - test_certificate_struct
  - test_certificate_struct_negative
  source_file: /src/spdm-rs/spdmlib/src/message/certificate_test.rs
- function_names:
  - SpdmPskExchangeRequestPayload::spdm_encode
  - SpdmPskExchangeRequestPayload::spdm_read
  - SpdmPskExchangeResponsePayload::spdm_encode
  - SpdmPskExchangeResponsePayload::spdm_read
  - tests::test_case0_spdm_psk_exchange_request_payload
  - tests::test_case1_spdm_psk_exchange_request_payload
  - tests::test_case0_spdm_psk_exchange_response_payload
  - tests::test_case1_spdm_psk_exchange_response_payload
  source_file: /src/spdm-rs/spdmlib/src/message/psk_exchange.rs
- function_names:
  - SpdmRespondIfReadyRequestPayload::spdm_encode
  - SpdmRespondIfReadyRequestPayload::spdm_read
  - SpdmRespondIfReadyRespondPayload::spdm_encode
  - SpdmRespondIfReadyRespondPayload::spdm_read
  source_file: /src/spdm-rs/spdmlib/src/message/respond_if_ready.rs
- function_names:
  - SpdmGetEncapsulatedRequestPayload::spdm_encode
  - SpdmGetEncapsulatedRequestPayload::spdm_read
  - SpdmEncapsulatedRequestPayload::spdm_encode
  - SpdmEncapsulatedRequestPayload::spdm_read
  - SpdmDeliverEncapsulatedResponsePayload::spdm_encode
  - SpdmDeliverEncapsulatedResponsePayload::spdm_read
  - SpdmEncapsulatedResponseAckPayload::spdm_encode
  - SpdmEncapsulatedResponseAckPayload::spdm_read
  - SpdmEncapsulatedResponseAckPayloadType::default
  source_file: /src/spdm-rs/spdmlib/src/message/encapsulated.rs
- function_names:
  - test_key_exchange_req_struct
  - test_key_exchange_req_struct_extend
  - test_key_exchange_rsp_struct
  - test_key_exchange_rsp_struct_extend
  source_file: /src/spdm-rs/spdmlib/src/message/key_exchange_test.rs
- function_names:
  - SpdmGetDigestsRequestPayload::spdm_encode
  - SpdmGetDigestsRequestPayload::spdm_read
  - SpdmDigestsResponsePayload::spdm_encode
  - SpdmDigestsResponsePayload::spdm_read
  - tests::test_case0_spdm_digests_response_payload
  - tests::test_case1_spdm_digests_response_payload
  - tests::test_case0_spdm_get_digests_request_payload
  source_file: /src/spdm-rs/spdmlib/src/message/digest.rs
- function_names:
  - test_get_encapsulated_request_payload
  - test_encapsulated_request_payload
  - test_deliver_encapsulated_response_payload
  - test_encapsulated_response_ack_payload
  - test_encapsulated_response_ack_payload_ver11
  source_file: /src/spdm-rs/spdmlib/src/message/encapsulated_test.rs
- function_names:
  - SpdmEndSessionRequestAttributes::encode
  - SpdmEndSessionRequestAttributes::read
  - SpdmEndSessionRequestPayload::spdm_encode
  - SpdmEndSessionRequestPayload::spdm_read
  - SpdmEndSessionResponsePayload::spdm_encode
  - SpdmEndSessionResponsePayload::spdm_read
  - tests::test_case0_spdm_end_session_request_attributes
  - tests::test_case0_spdm_end_session_request_payload
  - tests::test_case0_spdm_end_session_response_payload
  source_file: /src/spdm-rs/spdmlib/src/message/end_session.rs
- function_names:
  - test_challenge_struct
  - test_challenge_struct_opaque_data_length_negative
  source_file: /src/spdm-rs/spdmlib/src/message/challenge_test.rs
- function_names:
  - test_negotiate_struct
  - test_negotiate_struct_response_negative_ext_alg_count_2
  source_file: /src/spdm-rs/spdmlib/src/message/algorithm_test.rs
- function_names:
  - SpdmPskFinishRequestPayload::spdm_encode
  - SpdmPskFinishRequestPayload::spdm_read
  - SpdmPskFinishResponsePayload::spdm_encode
  - SpdmPskFinishResponsePayload::spdm_read
  - tests::test_case0_spdm_psk_finish_request_payload
  - tests::test_case0_spdm_psk_finish_response_payload
  source_file: /src/spdm-rs/spdmlib/src/message/psk_finish.rs
- function_names:
  - test_chunk_send_struct
  - test_chunk_send_ack_struct
  source_file: /src/spdm-rs/spdmlib/src/message/chunk_send_test.rs
- function_names:
  - SpdmMeasurementAttributes::encode
  - SpdmMeasurementAttributes::read
  - SpdmMeasurementOperation::default
  - SpdmGetMeasurementsRequestPayload::spdm_encode
  - SpdmGetMeasurementsRequestPayload::spdm_read
  - SpdmMeasurementsResponsePayload::spdm_encode
  - SpdmMeasurementsResponsePayload::spdm_read
  - tests::test_case0_spdm_spdm_measuremente_attributes
  - tests::test_case0_spdm_get_measurements_request_payload
  - tests::test_case1_spdm_get_measurements_request_payload
  - tests::test_case2_spdm_get_measurements_request_payload
  - tests::test_case0_spdm_measurements_response_payload
  - tests::test_case0_spdm_measurement_content_changed
  source_file: /src/spdm-rs/spdmlib/src/message/measurement.rs
- function_names:
  - SpdmGetCapabilitiesRequestPayload::spdm_encode
  - SpdmGetCapabilitiesRequestPayload::spdm_read
  - SpdmCapabilitiesResponsePayload::spdm_encode
  - SpdmCapabilitiesResponsePayload::spdm_read
  - tests::test_case0_spdm_response_capability_flags
  - tests::test_case1_spdm_response_capability_flags
  - tests::test_case2_spdm_response_capability_flags
  - tests::test_case0_spdm_request_capability_flags
  - tests::test_case1_spdm_request_capability_flags
  - tests::test_case3_spdm_request_capability_flags
  - tests::test_case0_spdm_get_capabilities_request_payload
  - tests::test_case1_spdm_get_capabilities_request_payload
  - tests::test_case2_spdm_get_capabilities_request_payload
  - tests::test_case0_spdm_capabilities_response_payload
  - tests::test_case1_spdm_capabilities_response_payload
  - tests::test_case2_spdm_capabilities_response_payload
  - tests::new_spdm_response_capability_flags
  - tests::new_spdm_request_capability_flags
  source_file: /src/spdm-rs/spdmlib/src/message/capability.rs
- function_names:
  - SpdmGetVersionRequestPayload::spdm_encode
  - SpdmGetVersionRequestPayload::spdm_read
  - SpdmVersionStruct::encode
  - SpdmVersionStruct::read
  - SpdmVersionResponsePayload::spdm_encode
  - SpdmVersionResponsePayload::spdm_read
  - tests::test_case1_spdmversion_struct
  - tests::test_case2_spdmversion_struct
  - tests::test_case0_spdm_version_response_payload
  - tests::test_case0_spdm_get_version_request_payload
  source_file: /src/spdm-rs/spdmlib/src/message/version.rs
- function_names:
  - register
  - start_watchdog
  - stop_watchdog
  - reset_watchdog
  source_file: /src/spdm-rs/spdmlib/src/watchdog/mod.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/watchdog/watchdog_callbacks.rs
- function_names:
  - SpdmMeasurementSpecification::encode
  - SpdmMeasurementSpecification::read
  - SpdmMeasurementSpecification::prioritize
  - SpdmMeasurementSpecification::is_no_more_than_one_selected
  - SpdmMeasurementSpecification::is_valid
  - SpdmMeasurementSpecification::is_valid_one_select
  - SpdmAlgoOtherParams::encode
  - SpdmAlgoOtherParams::read
  - SpdmMeasurementHashAlgo::get_size
  - SpdmMeasurementHashAlgo::is_no_more_than_one_selected
  - SpdmMeasurementHashAlgo::is_valid
  - SpdmMeasurementHashAlgo::is_valid_one_select
  - SpdmMeasurementHashAlgo::encode
  - SpdmMeasurementHashAlgo::read
  - SpdmBaseAsymAlgo::prioritize
  - SpdmBaseAsymAlgo::get_sig_size
  - SpdmBaseAsymAlgo::is_no_more_than_one_selected
  - SpdmBaseAsymAlgo::is_valid
  - SpdmBaseAsymAlgo::is_valid_one_select
  - SpdmBaseAsymAlgo::encode
  - SpdmBaseAsymAlgo::read
  - SpdmPqcAsymAlgo::prioritize
  - SpdmPqcAsymAlgo::get_sig_size
  - SpdmPqcAsymAlgo::is_no_more_than_one_selected
  - SpdmPqcAsymAlgo::is_valid
  - SpdmPqcAsymAlgo::is_valid_one_select
  - SpdmPqcAsymAlgo::encode
  - SpdmPqcAsymAlgo::read
  - SpdmBaseHashAlgo::prioritize
  - SpdmBaseHashAlgo::get_size
  - SpdmBaseHashAlgo::is_no_more_than_one_selected
  - SpdmBaseHashAlgo::is_valid
  - SpdmBaseHashAlgo::is_valid_one_select
  - SpdmBaseHashAlgo::encode
  - SpdmBaseHashAlgo::read
  - SpdmMelSpecification::encode
  - SpdmMelSpecification::read
  - SpdmMelSpecification::prioritize
  - SpdmMelSpecification::is_no_more_than_one_selected
  - SpdmMelSpecification::is_valid
  - SpdmMelSpecification::is_valid_one_select
  - SpdmDheAlgo::prioritize
  - SpdmDheAlgo::get_key_size
  - SpdmDheAlgo::is_no_more_than_one_selected
  - SpdmDheAlgo::is_valid
  - SpdmDheAlgo::is_valid_one_select
  - SpdmDheAlgo::encode
  - SpdmDheAlgo::read
  - SpdmKemAlgo::prioritize
  - SpdmKemAlgo::get_encap_key_size
  - SpdmKemAlgo::get_cipher_text_size
  - SpdmKemAlgo::is_no_more_than_one_selected
  - SpdmKemAlgo::is_valid
  - SpdmKemAlgo::is_valid_one_select
  - SpdmKemAlgo::encode
  - SpdmKemAlgo::read
  - SpdmAeadAlgo::prioritize
  - SpdmAeadAlgo::get_key_size
  - SpdmAeadAlgo::get_iv_size
  - SpdmAeadAlgo::get_tag_size
  - SpdmAeadAlgo::is_no_more_than_one_selected
  - SpdmAeadAlgo::is_valid
  - SpdmAeadAlgo::is_valid_one_select
  - SpdmAeadAlgo::encode
  - SpdmAeadAlgo::read
  - SpdmReqAsymAlgo::prioritize
  - SpdmReqAsymAlgo::get_sig_size
  - SpdmReqAsymAlgo::is_no_more_than_one_selected
  - SpdmReqAsymAlgo::is_valid
  - SpdmReqAsymAlgo::is_valid_one_select
  - SpdmReqAsymAlgo::encode
  - SpdmReqAsymAlgo::read
  - SpdmReqAsymAlgo::to_base
  - SpdmReqAsymAlgo::from_base
  - SpdmPqcReqAsymAlgo::prioritize
  - SpdmPqcReqAsymAlgo::get_sig_size
  - SpdmPqcReqAsymAlgo::is_no_more_than_one_selected
  - SpdmPqcReqAsymAlgo::is_valid
  - SpdmPqcReqAsymAlgo::is_valid_one_select
  - SpdmPqcReqAsymAlgo::encode
  - SpdmPqcReqAsymAlgo::read
  - SpdmPqcReqAsymAlgo::to_base
  - SpdmPqcReqAsymAlgo::from_base
  - SpdmKeyScheduleAlgo::prioritize
  - SpdmKeyScheduleAlgo::is_no_more_than_one_selected
  - SpdmKeyScheduleAlgo::is_valid
  - SpdmKeyScheduleAlgo::is_valid_one_select
  - SpdmKeyScheduleAlgo::encode
  - SpdmKeyScheduleAlgo::read
  - SpdmUnknownAlgo::encode
  - SpdmUnknownAlgo::read
  - SpdmAlgType::default
  - SpdmAlg::default
  - SpdmAlgStruct::encode
  - SpdmAlgStruct::read
  - SpdmCertificateModelType::default
  - SpdmKeyUsageMask::encode
  - SpdmKeyUsageMask::read
  - SpdmMeasurementSummaryHashType::default
  - SpdmNonceStruct::encode
  - SpdmNonceStruct::read
  - SpdmChallengeContextStruct::encode
  - SpdmChallengeContextStruct::read
  - SpdmMeasurementContextStruct::encode
  - SpdmMeasurementContextStruct::read
  - SpdmRandomStruct::encode
  - SpdmRandomStruct::read
  - SpdmSignatureStruct::default
  - SpdmSignatureStruct::as_ref
  - SpdmSignatureStruct::from
  - SpdmCertChainData::default
  - SpdmCertChainData::as_ref
  - SpdmCertChainData::encode
  - SpdmCertChainData::read
  - SpdmCertChainBuffer::default
  - SpdmCertChainBuffer::as_ref
  - SpdmCertChainBuffer::new
  - SpdmCertChainBuffer::encode
  - SpdmCertChainBuffer::read
  - SpdmDmtfMeasurementStructure::default
  - SpdmDmtfMeasurementStructure::encode
  - SpdmDmtfMeasurementStructure::read
  - SpdmMeasurementBlockStructure::encode
  - SpdmMeasurementBlockStructure::read
  - SpdmMeasurementRecordStructure::default
  - SpdmDheExchangeStruct::default
  - SpdmDheExchangeStruct::as_ref
  - SpdmDheExchangeStruct::from
  - SpdmKemEncapKeyStruct::default
  - SpdmKemEncapKeyStruct::as_ref
  - SpdmKemEncapKeyStruct::from
  - SpdmKemCipherTextStruct::default
  - SpdmKemCipherTextStruct::as_ref
  - SpdmKemCipherTextStruct::from
  - SpdmReqExchangeStruct::default
  - SpdmReqExchangeStruct::as_ref
  - SpdmReqExchangeStruct::from
  - SpdmReqExchangeStruct::from_dhe
  - SpdmReqExchangeStruct::to_dhe
  - SpdmReqExchangeStruct::from_kem
  - SpdmReqExchangeStruct::to_kem
  - SpdmRspExchangeStruct::default
  - SpdmRspExchangeStruct::as_ref
  - SpdmRspExchangeStruct::from
  - SpdmRspExchangeStruct::from_dhe
  - SpdmRspExchangeStruct::to_dhe
  - SpdmRspExchangeStruct::from_kem
  - SpdmRspExchangeStruct::to_kem
  - SpdmPskContextStruct::default
  - SpdmPskContextStruct::as_ref
  - SpdmPskHintStruct::default
  - SpdmPskHintStruct::as_ref
  - SpdmPskHintStruct::encode
  - SpdmPskHintStruct::read
  - create_sensitive_datatype
  - SpdmHkdfInputKeyingMaterial::as_ref
  - SpdmHkdfInputKeyingMaterial::get_data_size
  - SpdmHandshakeSecretStruct::from_spdm_hkdf_okm
  - SpdmHandshakeSecretStruct::from_spdm_hkdf_prk
  - SpdmDirectionHandshakeSecretStruct::from_spdm_hkdf_okm
  - SpdmDirectionHandshakeSecretStruct::from_spdm_hkdf_prk
  - SpdmMasterSecretStruct::from_spdm_hkdf_okm
  - SpdmMasterSecretStruct::from_spdm_hkdf_prk
  - SpdmDirectionDataSecretStruct::from_spdm_hkdf_okm
  - SpdmDirectionDataSecretStruct::from_spdm_hkdf_prk
  - SpdmAeadKeyStruct::from_spdm_hkdf_okm
  - SpdmAeadKeyStruct::from_spdm_hkdf_prk
  - SpdmAeadIvStruct::from_spdm_hkdf_okm
  - SpdmAeadIvStruct::from_spdm_hkdf_prk
  - SpdmFinishedKeyStruct::from_spdm_hkdf_okm
  - SpdmFinishedKeyStruct::from_spdm_hkdf_prk
  - SpdmExportMasterSecretStruct::from_spdm_hkdf_okm
  - SpdmExportMasterSecretStruct::from_spdm_hkdf_prk
  - SpdmHkdfPseudoRandomKey::from_input_keying_material
  - tests::test_case0_spdm_measurement_specification
  - tests::test_case0_spdm_algo_other_params_selection
  - tests::test_case0_spdm_measurement_hash_algo
  - tests::test_case0_spdm_base_asym_algo
  - tests::test_case0_spdm_base_hash_algo
  - tests::test_case0_spdm_dhe_algo
  - tests::test_case0_spdm_aead_algo
  - tests::test_case0_spdm_req_asym_algo
  - tests::test_case0_spdm_key_schedule_algo
  - tests::test_case0_spdm_nonce_struct
  - tests::test_case0_spdm_challenge_context_struct
  - tests::test_case0_spdm_measurement_context_struct
  - tests::test_case0_spdm_random_struct
  - tests::test_case0_spdm_alg_struct
  - tests::test_case3_spdm_alg_struct
  - tests::test_case0_spdm_digest_struct
  - tests::test_case1_spdm_measurement_specification
  - tests::test_case1_spdm_signature_struct
  - tests::test_case1_spdm_measurement_hash_algo
  - tests::test_case1_spdm_base_asym_algo
  - tests::test_case1_spdm_dhe_algo
  - tests::test_case1_spdm_aead_algo
  - tests::test_case2_spdm_aead_algo
  - tests::test_case3_spdm_aead_algo
  - tests::test_case4_spdm_aead_algo
  - tests::test_case1_spdm_req_asym_algo
  - tests::test_case0_spdm_unknown_algo
  source_file: /src/spdm-rs/spdmlib/src/protocol/algo.rs
- function_names:
  - gen_array
  - gen_array_clone
  source_file: /src/spdm-rs/spdmlib/src/protocol/mod.rs
- function_names:
  - SpdmRequestCapabilityFlags::encode
  - SpdmRequestCapabilityFlags::read
  - SpdmRequestCapabilityExFlags::encode
  - SpdmRequestCapabilityExFlags::read
  - SpdmResponseCapabilityFlags::encode
  - SpdmResponseCapabilityFlags::read
  - SpdmResponseCapabilityExFlags::encode
  - SpdmResponseCapabilityExFlags::read
  - SpdmCapabilityParam1::encode
  - SpdmCapabilityParam1::read
  source_file: /src/spdm-rs/spdmlib/src/protocol/capability.rs
- function_names:
  - SpdmVersion::default
  - SpdmVersion::try_from
  - u8::from
  - u8::from
  - SpdmVersion::encode
  - SpdmVersion::read
  source_file: /src/spdm-rs/spdmlib/src/protocol/version.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/secret/secret_callback.rs
- function_names:
  - measurement::register
  - measurement::measurement_collection
  - measurement::generate_measurement_summary_hash
  - psk::register
  - psk::handshake_secret_hkdf_expand
  - psk::master_secret_hkdf_expand
  - asym_sign::register
  - asym_sign::sign
  - pqc_asym_sign::register
  - pqc_asym_sign::sign
  - spdm_asym_sign
  source_file: /src/spdm-rs/spdmlib/src/secret/mod.rs
- function_names:
  - GeneralOpaqueDataHeader::encode
  - GeneralOpaqueDataHeader::read
  - GeneralOpaqueDataHeader::spdm_encode
  - GeneralOpaqueDataHeader::spdm_read
  - FM1OpaqueDataHeader::encode
  - FM1OpaqueDataHeader::read
  - FM1OpaqueDataHeader::spdm_encode
  - FM1OpaqueDataHeader::spdm_read
  - u8::from
  - u8::from
  - SMDataId::try_from
  - SMDataId::encode
  - SMDataId::read
  - SecuredMessageVersion::default
  - SecuredMessageVersion::encode
  - SecuredMessageVersion::read
  - SecuredMessageVersion::spdm_encode
  - SecuredMessageVersion::spdm_read
  - u8::from
  - u8::from
  - u16::from
  - u16::from
  - SecuredMessageVersion::try_from
  - SecuredMessageVersion::try_from
  - SecuredMessageVersion::eq
  - SecuredMessageVersionList::encode
  - SecuredMessageVersionList::read
  - SecuredMessageVersionList::spdm_encode
  - SecuredMessageVersionList::spdm_read
  - SMVersionSelOpaque::encode
  - SMVersionSelOpaque::read
  - SMVersionSelOpaque::spdm_encode
  - SMVersionSelOpaque::spdm_read
  - SMSupportedVerListOpaque::encode
  - SMSupportedVerListOpaque::read
  - SMSupportedVerListOpaque::spdm_encode
  - SMSupportedVerListOpaque::spdm_read
  - SpdmOpaqueStruct::default
  - SpdmOpaqueStruct::spdm_encode
  - SpdmOpaqueStruct::spdm_read
  - SpdmOpaqueStruct::from_sm_version_sel_opaque
  - SpdmOpaqueStruct::to_sm_version_sel_opaque
  - SpdmOpaqueStruct::from_sm_supported_ver_list_opaque
  - SpdmOpaqueStruct::to_sm_supported_ver_list_opaque
  - SpdmOpaqueStruct::rsp_get_dmtf_supported_secure_spdm_version_list
  - SpdmOpaqueStruct::req_get_dmtf_secure_spdm_version_selection
  source_file: /src/spdm-rs/spdmlib/src/common/opaque.rs
- function_names:
  - SpdmKeySchedule::default
  - SpdmKeySchedule::encode
  - SpdmKeySchedule::read
  - SpdmKeySchedule::new
  - SpdmKeySchedule::derive_handshake_secret
  - SpdmKeySchedule::derive_master_secret
  - SpdmKeySchedule::derive_request_handshake_secret
  - SpdmKeySchedule::derive_response_handshake_secret
  - SpdmKeySchedule::derive_finished_key
  - SpdmKeySchedule::derive_aead_key_iv
  - SpdmKeySchedule::derive_request_data_secret
  - SpdmKeySchedule::derive_response_data_secret
  - SpdmKeySchedule::derive_export_master_secret
  - SpdmKeySchedule::derive_update_secret
  - SpdmKeySchedule::binconcat
  source_file: /src/spdm-rs/spdmlib/src/common/key_schedule.rs
- function_names:
  - SpdmConnectionState::default
  - SpdmContext::new
  - SpdmContext::get_hash_size
  - SpdmContext::get_asym_sig_size
  - SpdmContext::get_req_asym_sig_size
  - SpdmContext::get_req_key_exchange_size
  - SpdmContext::get_rsp_key_exchange_size
  - SpdmContext::reset_runtime_info
  - SpdmContext::reset_negotiate_info
  - SpdmContext::reset_peer_info
  - SpdmContext::reset_context
  - SpdmContext::get_immutable_session_via_id
  - SpdmContext::get_session_via_id
  - SpdmContext::get_next_avaiable_session
  - SpdmContext::get_session_status
  - SpdmContext::get_next_half_session_id
  - SpdmContext::construct_my_cert_chain
  - SpdmContext::get_signing_prefix_context
  - SpdmContext::append_message_a
  - SpdmContext::reset_message_a
  - SpdmContext::append_message_b
  - SpdmContext::reset_message_b
  - SpdmContext::append_message_c
  - SpdmContext::reset_message_c
  - SpdmContext::append_message_m
  - SpdmContext::reset_message_m
  - SpdmContext::append_message_k
  - SpdmContext::reset_message_k
  - SpdmContext::append_message_f
  - SpdmContext::append_message_f
  - SpdmContext::reset_message_f
  - SpdmContext::calc_req_transcript_data
  - SpdmContext::calc_rsp_transcript_data
  - SpdmContext::calc_req_transcript_hash
  - SpdmContext::calc_rsp_transcript_hash
  - SpdmContext::calc_req_transcript_hash
  - SpdmContext::calc_rsp_transcript_hash
  - SpdmContext::get_certchain_hash_local
  - SpdmContext::get_certchain_hash_peer
  - SpdmContext::reset_buffer_via_request_code
  - SpdmContext::encap
  - SpdmContext::encode_secured_message
  - SpdmContext::decap
  - SpdmContext::decode_secured_message
  - SpdmContext::export
  - SpdmContext::import
  - SpdmConfigInfo::encode
  - SpdmConfigInfo::read
  - SpdmNegotiateInfo::encode
  - SpdmNegotiateInfo::read
  - ManagedBufferA::append_message
  - ManagedBufferA::reset_message
  - ManagedBufferA::as_ref
  - ManagedBufferA::default
  - ManagedBufferA::encode
  - ManagedBufferA::read
  - ManagedBufferB::append_message
  - ManagedBufferB::reset_message
  - ManagedBufferB::as_ref
  - ManagedBufferB::default
  - ManagedBufferB::encode
  - ManagedBufferB::read
  - ManagedBufferC::append_message
  - ManagedBufferC::reset_message
  - ManagedBufferC::as_ref
  - ManagedBufferC::default
  - ManagedBufferM::append_message
  - ManagedBufferM::reset_message
  - ManagedBufferM::as_ref
  - ManagedBufferM::default
  - ManagedBufferK::append_message
  - ManagedBufferK::reset_message
  - ManagedBufferK::as_ref
  - ManagedBufferK::default
  - ManagedBufferF::append_message
  - ManagedBufferF::reset_message
  - ManagedBufferF::as_ref
  - ManagedBufferF::default
  - ManagedBufferM1M2::append_message
  - ManagedBufferM1M2::reset_message
  - ManagedBufferM1M2::as_ref
  - ManagedBufferM1M2::default
  - ManagedBufferL1L2::append_message
  - ManagedBufferL1L2::reset_message
  - ManagedBufferL1L2::as_ref
  - ManagedBufferL1L2::default
  - ManagedBufferTH::append_message
  - ManagedBufferTH::reset_message
  - ManagedBufferTH::as_ref
  - ManagedBufferTH::default
  - ManagedBuffer12Sign::append_message
  - ManagedBuffer12Sign::reset_message
  - ManagedBuffer12Sign::as_ref
  - ManagedBuffer12Sign::default
  - ManagedBufferC::encode
  - ManagedBufferC::read
  - ManagedBufferM::encode
  - ManagedBufferM::read
  - ManagedBufferK::encode
  - ManagedBufferK::read
  - ManagedBufferF::encode
  - ManagedBufferF::read
  - ManagedBufferM1M2::encode
  - ManagedBufferM1M2::read
  - ManagedBufferL1L2::encode
  - ManagedBufferL1L2::read
  - ManagedBufferTH::encode
  - ManagedBufferTH::read
  - ManagedBuffer12Sign::encode
  - ManagedBuffer12Sign::read
  - ManagedVdmBuffer::append_message
  - ManagedVdmBuffer::reset_message
  - ManagedVdmBuffer::as_ref
  - ManagedVdmBuffer::default
  - ManagedVdmBuffer::encode
  - ManagedVdmBuffer::read
  - SpdmMeasurementContentChanged::default
  - SpdmMeasurementContentChanged::encode
  - SpdmMeasurementContentChanged::read
  - SpdmMeasurementContentChanged::try_from
  - u8::from
  - SpdmRuntimeInfo::set_connection_state
  - SpdmRuntimeInfo::get_connection_state
  - SpdmRuntimeInfo::set_last_session_id
  - SpdmRuntimeInfo::get_last_session_id
  - SpdmRuntimeInfo::set_peer_used_cert_chain_slot_id
  - SpdmRuntimeInfo::get_peer_used_cert_chain_slot_id
  - SpdmRuntimeInfo::set_local_used_cert_chain_slot_id
  - SpdmRuntimeInfo::get_local_used_cert_chain_slot_id
  - SpdmRuntimeInfo::encode
  - SpdmRuntimeInfo::read
  - SpdmRuntimeInfo::encode
  - SpdmRuntimeInfo::read
  - SpdmProvisionInfo::encode
  - SpdmProvisionInfo::read
  - SpdmProvisionInfo::default
  - SpdmPeerInfo::encode
  - SpdmPeerInfo::read
  - SpdmEncapContext::encode
  - SpdmEncapContext::read
  - SpdmChunkStatus::default
  - SpdmChunkContext::default
  source_file: /src/spdm-rs/spdmlib/src/common/mod.rs
- function_names:
  - SpdmCodec::spdm_read_bytes
  - SpdmDigestStruct::spdm_encode
  - SpdmDigestStruct::spdm_read
  - SpdmSignatureStruct::spdm_encode
  - SpdmSignatureStruct::spdm_read
  - SpdmMeasurementRecordStructure::verify_measurement_record
  - SpdmMeasurementRecordStructure::spdm_encode
  - SpdmMeasurementRecordStructure::spdm_read
  - SpdmDheExchangeStruct::spdm_encode
  - SpdmDheExchangeStruct::spdm_read
  - SpdmKemEncapKeyStruct::spdm_encode
  - SpdmKemEncapKeyStruct::spdm_read
  - SpdmKemCipherTextStruct::spdm_encode
  - SpdmKemCipherTextStruct::spdm_read
  - SpdmReqExchangeStruct::spdm_encode
  - SpdmReqExchangeStruct::spdm_read
  - SpdmRspExchangeStruct::spdm_encode
  - SpdmRspExchangeStruct::spdm_read
  - SpdmDmtfMeasurementStructure::spdm_encode
  - SpdmDmtfMeasurementStructure::spdm_read
  - SpdmMeasurementBlockStructure::spdm_encode
  - SpdmMeasurementBlockStructure::spdm_read
  source_file: /src/spdm-rs/spdmlib/src/common/spdm_codec.rs
- function_names:
  - SpdmSessionState::default
  - SpdmSessionCryptoParam::encode
  - SpdmSessionCryptoParam::read
  - SpdmSessionSharedSecretRoot::encode
  - SpdmSessionSharedSecretRoot::read
  - SpdmSessionSecretParam::encode
  - SpdmSessionSecretParam::read
  - SpdmSessionHandshakeSecret::encode
  - SpdmSessionHandshakeSecret::read
  - SpdmSessionApplicationSecret::encode
  - SpdmSessionApplicationSecret::read
  - SpdmSessionTransportParam::encode
  - SpdmSessionTransportParam::read
  - SpdmSessionRuntimeInfo::encode
  - SpdmSessionRuntimeInfo::read
  - SpdmSessionRuntimeInfo::encode
  - SpdmSessionRuntimeInfo::read
  - SpdmSession::default
  - SpdmSession::encode
  - SpdmSession::read
  - SpdmSession::new
  - SpdmSession::set_request_direction_sequence_number
  - SpdmSession::get_request_direction_sequence_number
  - SpdmSession::set_response_direction_sequence_number
  - SpdmSession::get_response_direction_sequence_number
  - SpdmSession::get_application_secret
  - SpdmSession::set_application_secret
  - SpdmSession::set_default
  - SpdmSession::get_session_id
  - SpdmSession::set_session_id
  - SpdmSession::setup
  - SpdmSession::teardown
  - SpdmSession::set_use_psk
  - SpdmSession::get_use_psk
  - SpdmSession::set_th1
  - SpdmSession::get_th1
  - SpdmSession::set_th2
  - SpdmSession::get_th2
  - SpdmSession::set_shared_secret
  - SpdmSession::get_crypto_param
  - SpdmSession::set_crypto_param
  - SpdmSession::set_transport_param
  - SpdmSession::set_session_state
  - SpdmSession::get_session_state
  - SpdmSession::set_mut_auth_requested
  - SpdmSession::get_mut_auth_requested
  - SpdmSession::generate_handshake_secret
  - SpdmSession::generate_data_secret
  - SpdmSession::create_data_secret_update
  - SpdmSession::activate_data_secret_update
  - SpdmSession::generate_hmac_with_response_finished_key
  - SpdmSession::generate_hmac_with_request_finished_key
  - SpdmSession::verify_hmac_with_response_finished_key
  - SpdmSession::verify_hmac_with_request_finished_key
  - SpdmSession::export_keys
  - SpdmSession::encode_spdm_secured_message
  - SpdmSession::decode_spdm_secured_message
  - SpdmSession::encode_msg
  - SpdmSession::decode_msg
  - tests_session::test_case0_sequence_number_overflow
  - tests_session::test_case1_sequence_number_overflow
  - tests_session::test_case2_sequence_number_overflow
  - tests_session::test_case3_sequence_number_overflow
  - tests_session::test_case0_activate_data_secret_update
  - tests_session::test_case0_decode_msg
  - tests_session::test_case0_encode_msg
  - tests_session::test_case0_setup
  - tests_session::test_case0_teardown
  source_file: /src/spdm-rs/spdmlib/src/common/session.rs
- function_names:
  - ResponderContext::handle_spdm_end_session
  - ResponderContext::write_spdm_end_session_response
  source_file: /src/spdm-rs/spdmlib/src/responder/end_session_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_digest
  - ResponderContext::write_spdm_digest_response
  source_file: /src/spdm-rs/spdmlib/src/responder/digest_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_version
  - ResponderContext::write_spdm_version_response
  source_file: /src/spdm-rs/spdmlib/src/responder/version_rsp.rs
- function_names:
  - register
  - dispatch_secured_app_message_cb
  source_file: /src/spdm-rs/spdmlib/src/responder/app_message_handler.rs
- function_names:
  - ResponderContext::handle_spdm_capability
  - ResponderContext::write_spdm_capability_response
  source_file: /src/spdm-rs/spdmlib/src/responder/capability_rsp.rs
- function_names:
  - ResponderContext::encode_encap_request_get_digest
  - ResponderContext::handle_encap_response_digest
  source_file: /src/spdm-rs/spdmlib/src/responder/encap_get_digest.rs
- function_names:
  - ResponderContext::handle_spdm_psk_finish
  - ResponderContext::write_spdm_psk_finish_response
  source_file: /src/spdm-rs/spdmlib/src/responder/psk_finish_rsp.rs
- function_names:
  - ResponderContext::new
  - ResponderContext::send_message
  - ResponderContext::process_message
  - ResponderContext::receive_message
  - ResponderContext::dispatch_secured_message
  - ResponderContext::dispatch_secured_app_message
  - ResponderContext::dispatch_message
  - ResponderContext::handle_spdm_chunk_send
  - ResponderContext::write_spdm_chunk_send_response
  - ResponderContext::handle_spdm_chunk_get
  - ResponderContext::write_spdm_chunk_get_response
  source_file: /src/spdm-rs/spdmlib/src/responder/context.rs
- function_names:
  - ResponderContext::write_spdm_error
  - ResponderContext::handle_error_request
  - ResponderContext::write_error_response
  source_file: /src/spdm-rs/spdmlib/src/responder/error_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_key_exchange
  - ResponderContext::write_spdm_key_exchange_response
  - ResponderContext::generate_key_exchange_rsp_signature
  - ResponderContext::generate_key_exchange_rsp_signature
  source_file: /src/spdm-rs/spdmlib/src/responder/key_exchange_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_heartbeat
  - ResponderContext::write_spdm_heartbeat_response
  source_file: /src/spdm-rs/spdmlib/src/responder/heartbeat_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_algorithm
  - ResponderContext::write_spdm_algorithm
  source_file: /src/spdm-rs/spdmlib/src/responder/algorithm_rsp.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/responder/mod.rs
- function_names:
  - ResponderContext::handle_spdm_vendor_defined_request
  - ResponderContext::write_spdm_vendor_defined_response
  - ResponderContext::respond_to_vendor_defined_request
  - ResponderContext::respond_to_vendor_defined_request_ex
  source_file: /src/spdm-rs/spdmlib/src/responder/vendor_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_psk_exchange
  - ResponderContext::write_spdm_psk_exchange_response
  source_file: /src/spdm-rs/spdmlib/src/responder/psk_exchange_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_key_update
  - ResponderContext::write_spdm_key_update_response
  source_file: /src/spdm-rs/spdmlib/src/responder/key_update_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_certificate
  - ResponderContext::write_spdm_certificate_response
  source_file: /src/spdm-rs/spdmlib/src/responder/certificate_rsp.rs
- function_names:
  - ResponderContext::encode_encap_requst_get_certificate
  - ResponderContext::handle_encap_response_certificate
  - ResponderContext::verify_spdm_certificate_chain
  source_file: /src/spdm-rs/spdmlib/src/responder/encap_get_certificate.rs
- function_names:
  - ResponderContext::handle_spdm_finish
  - ResponderContext::write_spdm_finish_response
  - ResponderContext::verify_finish_req_signature
  - ResponderContext::verify_finish_req_signature
  source_file: /src/spdm-rs/spdmlib/src/responder/finish_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_measurement
  - ResponderContext::write_spdm_measurement_response
  - ResponderContext::generate_measurement_signature
  - ResponderContext::generate_measurement_signature
  source_file: /src/spdm-rs/spdmlib/src/responder/measurement_rsp.rs
- function_names:
  - ResponderContext::handle_get_encapsulated_request
  - ResponderContext::write_encap_request_response
  - ResponderContext::handle_deliver_encapsulated_reponse
  - ResponderContext::write_encap_response_ack_response
  - ResponderContext::encap_check_version_cap_state
  - ResponderContext::process_encapsulated_response
  - ResponderContext::handle_encap_error_response_main
  source_file: /src/spdm-rs/spdmlib/src/responder/encap_rsp.rs
- function_names:
  - ResponderContext::handle_spdm_challenge
  - ResponderContext::write_spdm_challenge_response
  - ResponderContext::generate_challenge_auth_signature
  - ResponderContext::generate_challenge_auth_signature
  source_file: /src/spdm-rs/spdmlib/src/responder/challenge_rsp.rs
- function_names:
  - RequesterContext::send_receive_spdm_key_exchange
  - RequesterContext::encode_spdm_key_exchange
  - RequesterContext::handle_spdm_key_exchange_response
  - RequesterContext::verify_key_exchange_rsp_signature
  - RequesterContext::verify_key_exchange_rsp_signature
  source_file: /src/spdm-rs/spdmlib/src/requester/key_exchange_req.rs
- function_names:
  - RequesterContext::session_based_mutual_authenticate
  source_file: /src/spdm-rs/spdmlib/src/requester/mutual_authenticate.rs
- function_names:
  - RequesterContext::send_receive_spdm_measurement_record
  - RequesterContext::delegate_send_receive_spdm_measurement_record
  - RequesterContext::encode_spdm_measurement_record
  - RequesterContext::handle_spdm_measurement_record_response
  - RequesterContext::send_receive_spdm_measurement
  - RequesterContext::verify_measurement_signature
  - RequesterContext::verify_measurement_signature
  source_file: /src/spdm-rs/spdmlib/src/requester/get_measurements_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_heartbeat
  - RequesterContext::encode_spdm_heartbeat
  - RequesterContext::handle_spdm_heartbeat_response
  source_file: /src/spdm-rs/spdmlib/src/requester/heartbeat_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_capability
  - RequesterContext::encode_spdm_capability
  - RequesterContext::handle_spdm_capability_response
  source_file: /src/spdm-rs/spdmlib/src/requester/get_capabilities_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_version
  - RequesterContext::encode_spdm_version
  - RequesterContext::handle_spdm_version_response
  source_file: /src/spdm-rs/spdmlib/src/requester/get_version_req.rs
- function_names:
  - RequesterContext::new
  - RequesterContext::init_connection
  - RequesterContext::start_session
  - RequesterContext::end_session
  - RequesterContext::send_message
  - RequesterContext::send_single_message
  - RequesterContext::receive_message
  - RequesterContext::receive_single_message
  - RequesterContext::receive_large_response
  - RequesterContext::handle_spdm_chunk_response
  - RequesterContext::send_large_request
  - RequesterContext::handle_spdm_chunk_send_ack_response
  source_file: /src/spdm-rs/spdmlib/src/requester/context.rs
- function_names:
  - RequesterContext::encap_handle_get_digest
  source_file: /src/spdm-rs/spdmlib/src/requester/encap_digest.rs
- function_names:
  - RequesterContext::send_receive_spdm_challenge
  - RequesterContext::encode_spdm_challenge
  - RequesterContext::handle_spdm_challenge_response
  - RequesterContext::verify_challenge_auth_signature
  - RequesterContext::verify_challenge_auth_signature
  source_file: /src/spdm-rs/spdmlib/src/requester/challenge_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_digest
  - RequesterContext::encode_spdm_digest
  - RequesterContext::handle_spdm_digest_response
  source_file: /src/spdm-rs/spdmlib/src/requester/get_digests_req.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/requester/mod.rs
- function_names:
  - RequesterContext::send_receive_spdm_end_session
  - RequesterContext::encode_spdm_end_session
  - RequesterContext::handle_spdm_end_session_response
  source_file: /src/spdm-rs/spdmlib/src/requester/end_session_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_key_update_op
  - RequesterContext::encode_spdm_key_update_op
  - RequesterContext::handle_spdm_key_update_op_response
  - RequesterContext::send_receive_spdm_key_update
  source_file: /src/spdm-rs/spdmlib/src/requester/key_update_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_algorithm
  - RequesterContext::encode_spdm_algorithm
  - RequesterContext::handle_spdm_algorithm_response
  source_file: /src/spdm-rs/spdmlib/src/requester/negotiate_algorithms_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_finish
  - RequesterContext::delegate_send_receive_spdm_finish
  - RequesterContext::encode_spdm_finish
  - RequesterContext::handle_spdm_finish_response
  - RequesterContext::generate_finish_req_signature
  - RequesterContext::generate_finish_req_signature
  source_file: /src/spdm-rs/spdmlib/src/requester/finish_req.rs
- function_names:
  - RequesterContext::spdm_handle_simple_error_response
  - RequesterContext::spdm_handle_error_response_main
  source_file: /src/spdm-rs/spdmlib/src/requester/handle_error_response_req.rs
- function_names:
  - RequesterContext::encap_handle_get_certificate
  source_file: /src/spdm-rs/spdmlib/src/requester/encap_certificate.rs
- function_names:
  - RequesterContext::send_spdm_vendor_defined_request
  - RequesterContext::handle_spdm_vendor_defined_respond
  source_file: /src/spdm-rs/spdmlib/src/requester/vendor_req.rs
- function_names:
  - RequesterContext::encode_encap_error_response
  source_file: /src/spdm-rs/spdmlib/src/requester/encap_error.rs
- function_names:
  - RequesterContext::get_encapsulated_request_response
  - RequesterContext::send_get_encapsulated_request
  - RequesterContext::receive_encapsulated_request
  - RequesterContext::receive_encapsulated_response_ack
  - RequesterContext::process_encapsulated_request
  source_file: /src/spdm-rs/spdmlib/src/requester/encap_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_certificate_partial
  - RequesterContext::encode_spdm_certificate_partial
  - RequesterContext::handle_spdm_certificate_partial_response
  - RequesterContext::send_receive_spdm_certificate
  - RequesterContext::verify_spdm_certificate_chain
  source_file: /src/spdm-rs/spdmlib/src/requester/get_certificate_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_psk_finish
  - RequesterContext::delegate_send_receive_spdm_psk_finish
  - RequesterContext::encode_spdm_psk_finish
  - RequesterContext::handle_spdm_psk_finish_response
  source_file: /src/spdm-rs/spdmlib/src/requester/psk_finish_req.rs
- function_names:
  - RequesterContext::send_receive_spdm_psk_exchange
  - RequesterContext::encode_spdm_psk_exchange
  - RequesterContext::handle_spdm_psk_exchange_response
  source_file: /src/spdm-rs/spdmlib/src/requester/psk_exchange_req.rs
- function_names:
  - register
  - sleep
  source_file: /src/spdm-rs/spdmlib/src/time/mod.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib/src/time/time_callbacks.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/end_session_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/digest_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/key_exchange_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/digest_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/version_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/capability_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/heartbeat_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/version_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/psk_finish_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/heartbeat_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/challenge_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/algorithm_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/deliver_encapsulated_response_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/certificate_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/end_session_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/deliver_encapsulated_response_certificate_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/vendor_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/measurement_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/encapsulated_request_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/capability_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/key_update_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/encapsulated_request_certificate_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/pskexchange_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/finish_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/key_update_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/certificate_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/get_encapsulated_request_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/vendor_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/keyexchange_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/encapsulated_request_digest_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/finish_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/psk_finish_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/deliver_encapsulated_response_digest_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/measurement_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/algorithm_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/psk_exchange_req.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/challenge_rsp.rs
- function_names:
  - fuzz_target
  source_file: /src/spdm-rs/spdmlib/fuzz/fuzz_targets/fuzz_x509v3.rs
- function_names:
  - main
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/build.rs
- function_names:
  - rand
  - enable
  - disable
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/self_test.rs
- function_names:
  - mbedtls_aesni_has_support
  - mbedtls_internal_aes_encrypt
  - mbedtls_internal_aes_decrypt
  - mbedtls_platform_gmtime_r
  - mbedtls_time
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/lib.rs
- function_names:
  - StaticMutex::init
  - StaticMutex::free
  - StaticMutex::lock
  - StaticMutex::unlock
  - test_double_free
  - tests::double_free
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/mbedtls-platform-support/src/threading.rs
- function_names:
  - pqc_asym_verify
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/pqc_asym_verify_impl.rs
- function_names:
  - hkdf_extract
  - hkdf_expand
  - tests::test_case0_hkdf_expand
  - tests::test_case1_hkdf_expand
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hkdf_impl.rs
- function_names:
  - hmac
  - hmac_verify
  - tests::test_case_rfc4231_2
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hmac_impl.rs
- function_names:
  - generate_key_pair
  - SpdmDheKeyExchangeP256::generate_key_pair
  - SpdmDheKeyExchangeP256::compute_final_key
  - SpdmDheKeyExchangeP384::generate_key_pair
  - SpdmDheKeyExchangeP384::compute_final_key
  - RdRand::call
  - RdRand::data_ptr
  - test_case0_dhe
  - test_case1_dhe
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/dhe_impl.rs
- function_names:
  - hash_ext::hash_ctx_init
  - hash_ext::hash_ctx_update
  - hash_ext::hash_ctx_finalize
  - hash_ext::hash_ctx_dup
  - hash_ext::insert_to_table
  - hash_ext::get_hash_ctx_count
  - hash_all
  - test_case1_hash_all
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/hash_impl.rs
- function_names:
  - get_cert_from_cert_chain
  - verify_cert_chain
  - test_certificate
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/cert_operation_impl.rs
- function_names:
  - asym_verify
  - ecc_signature_bin_to_der
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/asym_verify_impl.rs
- function_names: []
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/lib.rs
- function_names:
  - encrypt
  - decrypt
  - test::test_case_gcm256
  - test::from_hex
  - test::from_hex_to_aead_key
  - test::from_hex_to_aead_iv
  - test::from_hex_digit
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/aead_impl.rs
- function_names:
  - kem_generate_key_pair
  - kem_new_key
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/kem_impl.rs
- function_names:
  - random
  - get_random
  source_file: /src/spdm-rs/spdmlib_crypto_mbedtls/src/rand_impl.rs
- function_names:
  - env::var_os
  - env::var
  - cpp_flags
  - AsmTarget::use_nasm
  - main
  - ring_build_rs_main
  - pregenerate_asm_main
  - generate_sources_and_preassemble
  - build_c_code
  - new_build
  - build_library
  - obj_path
  - configure_cc
  - nasm
  - run_command_with_args
  - run_command
  - sources_for_arch
  - perlasm_src_dsts
  - asm_srcs
  - is_perlasm
  - asm_path
  - perlasm
  - join_components_with_forward_slashes
  - get_perl_exe
  - get_command
  - emit_rerun_if_changed
  - walk_dir
  - generate_prefix_symbols_headers
  - generate_prefix_symbols_header
  - prefix_all_symbols
  source_file: /src/spdm-rs/external/ring/build.rs
- function_names:
  - error_impl_std_error_error_test
  source_file: /src/spdm-rs/external/ring/tests/error_tests.rs
- function_names:
  - ecdsa_from_pkcs8_test
  - ecdsa_generate_pkcs8_test
  - signature_ecdsa_verify_asn1_test
  - signature_ecdsa_verify_fixed_test
  - ecdsa_test_public_key_coverage
  - signature_ecdsa_sign_fixed_sign_and_verify_test
  - signature_ecdsa_sign_asn1_test
  source_file: /src/spdm-rs/external/ring/tests/ecdsa_tests.rs
- function_names:
  - hkdf_tests
  - hkdf_output_len_tests
  - My::len
  - My::from
  source_file: /src/spdm-rs/external/ring/tests/hkdf_tests.rs
- function_names:
  - test_signature_ed25519
  - test_signature_ed25519_verify
  - test_signature_verification
  - test_ed25519_from_seed_and_public_key_misuse
  - test_ed25519_from_pkcs8_unchecked
  - test_ed25519_from_pkcs8
  - test_ed25519_from_pkcs8_
  - ed25519_test_generate_pkcs8
  - ed25519_test_public_key_coverage
  source_file: /src/spdm-rs/external/ring/tests/ed25519_tests.rs
- function_names:
  - pbkdf2_tests
  source_file: /src/spdm-rs/external/ring/tests/pbkdf2_tests.rs
- function_names:
  - hmac_tests
  - hmac_test_case_inner
  - hmac_debug
  source_file: /src/spdm-rs/external/ring/tests/hmac_tests.rs
- function_names:
  - rsa_from_pkcs8_test
  - test_signature_rsa_pkcs1_sign
  - test_signature_rsa_pss_sign
  - test_signature_rsa_pkcs1_sign_output_buffer_len
  - test_signature_rsa_pkcs1_verify
  - test_signature_rsa_pss_verify
  - test_signature_rsa_primitive_verification
  - rsa_test_keypair_coverage
  - test_public_key_coverage
  source_file: /src/spdm-rs/external/ring/tests/rsa_tests.rs
- function_names:
  - signature_impl_test
  source_file: /src/spdm-rs/external/ring/tests/signature_tests.rs
- function_names:
  - agreement_traits
  - agreement_agree_ephemeral
  - t::e::s::t::_::a::g::r::e::e::m::e::n::t::_::e::c::d::h::_::x::2::5::5::1::9::_::r::f::c::_::i::t::e::r::a::t::e::d::expect_iterated_x25519
  - test_agreement_ecdh_x25519_rfc_iterated
  - x25519
  - x25519_
  - h
  - alg_from_curve_name
  source_file: /src/spdm-rs/external/ring/tests/agreement_tests.rs
- function_names:
  - quic_aes_128
  - quic_aes_256
  - quic_chacha20
  - test_quic
  - test_key_len
  - test_sample_len
  source_file: /src/spdm-rs/external/ring/tests/quic_tests.rs
- function_names:
  - test_system_random_lengths
  - test_system_random_traits
  source_file: /src/spdm-rs/external/ring/tests/rand_tests.rs
- function_names:
  - digest_misc
  - test_i_u_f
  - test_fmt_algorithm
  - digest_test_fmt
  source_file: /src/spdm-rs/external/ring/tests/digest_tests.rs
- function_names:
  - test_known_answer
  - test_aead
  - test_aead
  - test_seal_append_tag
  - test_seal_separate_tag
  - test_open_in_place
  - test_open_in_place_seperate_tag
  - test_open_within
  - sealing_key_seal_in_place_append_tag
  - sealing_key_seal_in_place_separate_tag
  - opening_key_open_in_place
  - opening_key_open_within
  - less_safe_key_seal_in_place_append_tag
  - less_safe_key_open_in_place
  - less_safe_key_seal_in_place_separate_tag
  - less_safe_key_open_within
  - key_sizes
  - test_aead_nonce_sizes
  - aead_chacha20_poly1305_openssh
  - aead_test_aad_traits
  - test_nonce_traits
  - test_tag_traits
  - test_aead_key_traits
  - test_aead_key_traits_all
  - test_aead_key_debug
  - test_aead_lesssafekey_clone_for_algorithm
  - test_aead_lesssafekey_clone_aes_128_gcm
  - test_aead_lesssafekey_clone_aes_256_gcm
  - test_aead_lesssafekey_clone_chacha20_poly1305
  - make_key
  - make_less_safe_key
  - OneNonceSequence::new
  - OneNonceSequence::advance
  source_file: /src/spdm-rs/external/ring/tests/aead_tests.rs
- function_names:
  - test_verify_slices_are_equal
  source_file: /src/spdm-rs/external/ring/tests/constant_time_tests.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/c.rs
- function_names:
  - BitLength::from_byte_len
  - BitLength::from_byte_len
  - BitLength::from_byte_len
  - BitLength::from_bits
  - BitLength::as_bits
  - BitLength::half_rounded_up
  - BitLength::as_usize_bytes_rounded_up
  - BitLength::try_sub_1
  - BitLength::to_be_bytes
  - BitLength::from
  - BitLength::try_from
  source_file: /src/spdm-rs/external/ring/src/bits.rs
- function_names:
  - core::result::Result::from
  - tests::size_and_alignment
  - tests::semantics
  source_file: /src/spdm-rs/external/ring/src/bssl.rs
- function_names:
  - derive_debug_via_id
  - derive_debug_via_field
  - derive_debug_self_as_ref_hex_bytes
  - write_hex_tuple
  - HexStr::fmt
  - write_hex_bytes
  source_file: /src/spdm-rs/external/ring/src/debug.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/arithmetic.rs
- function_names:
  - Template::alg_id_value
  - Template::alg_id_value_
  - Template::curve_oid
  - unwrap_key
  - unwrap_key_
  - unwrap_key__
  - Document::as_ref
  - wrap_key
  - wrap_key_
  source_file: /src/spdm-rs/external/ring/src/pkcs8.rs
- function_names:
  - Algorithm::digest_algorithm
  - Tag::as_ref
  - Key::fmt
  - Key::generate
  - Key::construct
  - Key::new
  - Key::try_new
  - Key::algorithm
  - Key::sign
  - Key::verify
  - Algorithm::len
  - Key::from
  - Context::fmt
  - Context::with_key
  - Context::update
  - Context::sign
  - Context::try_sign
  - sign
  - verify
  - tests::hmac_signing_key_coverage
  source_file: /src/spdm-rs/external/ring/src/hmac.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/io.rs
- function_names:
  - limbs_equal_limbs_consttime
  - limbs_less_than_limbs
  - verify_limbs_less_than_limbs_leak_bit
  - limbs_less_than_limbs_vartime
  - limb_is_zero
  - limbs_are_zero
  - limbs_reject_even_leak_bit
  - verify_limbs_equal_1_leak_bit
  - limbs_minimal_bits
  - limbs_reduce_once
  - parse_big_endian_in_range_and_pad_consttime
  - parse_big_endian_and_pad_consttime
  - big_endian_from_limbs
  - unstripped_be_bytes
  - fold_5_bit_windows
  - limbs_add_assign_mod
  - limbs_double_mod
  - limbs_negative_odd
  - tests::leak_in_test
  - tests::test_limbs_are_even
  - tests::test_limbs_are_zero
  - tests::test_limbs_equal_limb
  - tests::test_parse_big_endian_and_pad_consttime
  - tests::test_big_endian_from_limbs_same_length
  - tests::test_big_endian_from_limbs_fewer_limbs
  - tests::test_limbs_minimal_bits
  source_file: /src/spdm-rs/external/ring/src/limb.rs
- function_names:
  - impl_get_feature
  - features::Values::get_feature
  - features::Values::get_feature
  - features::Values::get_feature
  - Features::get_feature
  - features
  - tests::test_static_is_subset_of_dynamic
  source_file: /src/spdm-rs/external/ring/src/cpu.rs
- function_names:
  - derive
  - try_derive
  - derive_block
  - verify
  - try_verify
  source_file: /src/spdm-rs/external/ring/src/pbkdf2.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/lib.rs
- function_names:
  - compile_time_assert_clone
  - compile_time_assert_copy
  - compile_time_assert_eq
  - compile_time_assert_send
  - compile_time_assert_sync
  - compile_time_assert_std_error_error
  - TestCase::consume_bool
  - TestCase::consume_digest_alg
  - TestCase::consume_bytes
  - TestCase::consume_optional_bytes
  - TestCase::consume_usize
  - TestCase::consume_usize_bits
  - TestCase::consume_string
  - TestCase::consume_optional_string
  - test_vector_file
  - run
  - from_hex
  - from_hex_digit
  - parse_test_case
  - tests::one_ok
  - tests::one_err
  - tests::one_panics
  - tests::first_err
  - tests::middle_err
  - tests::last_err
  - tests::err_one
  - tests::first_panic
  - tests::middle_panic
  - tests::last_panic
  - tests::panic_one
  - tests::syntax_error
  source_file: /src/spdm-rs/external/ring/src/testutil.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/ec.rs
- function_names:
  - T::fill
  - Random::expose
  - generate
  - SystemRandom::new
  - SystemRandom::fill_impl
  source_file: /src/spdm-rs/external/ring/src/rand.rs
- function_names:
  - BlockContext::new
  - BlockContext::update
  - BlockContext::try_finish
  - BlockContext::block_data_order
  - FinishError::pending_not_a_partial_block
  - Context::new
  - Context::clone_from
  - Context::update
  - Context::finish
  - Context::try_finish
  - Context::algorithm
  - digest
  - Digest::compute_from
  - Digest::algorithm
  - Digest::as_ref
  - Digest::fmt
  - Algorithm::eq
  - Algorithm::block_len
  - Algorithm::chaining_len
  - Algorithm::output_len
  - format_output
  - BlockLen::into
  - BlockLen::len_len
  - OutputLen::into
  - max_input_tests
  - tests::max_input_test
  - tests::too_long_input_test_block
  - tests::too_long_input_test_byte
  - tests::nearly_full_context
  source_file: /src/spdm-rs/external/ring/src/digest.rs
- function_names:
  - Aad::from
  - Aad::as_ref
  - Aad::empty
  - Aad::fmt
  - Aad::eq
  - max_input_len
  - Tag::as_ref
  - Tag::try_from
  - Tag::from
  source_file: /src/spdm-rs/external/ring/src/aead.rs
- function_names:
  - verify_slices_are_equal
  source_file: /src/spdm-rs/external/ring/src/deprecated_constant_time.rs
- function_names:
  - core_name_and_version
  - prefix
  - prefixed_extern
  - prefixed_export
  - prefixed_item
  source_file: /src/spdm-rs/external/ring/src/prefixed.rs
- function_names:
  - Signature::new
  - Signature::as_ref
  - UnparsedPublicKey::as_ref
  - UnparsedPublicKey::fmt
  - UnparsedPublicKey::new
  - UnparsedPublicKey::verify
  source_file: /src/spdm-rs/external/ring/src/signature.rs
- function_names:
  - Algorithm::eq
  - EphemeralPrivateKey::generate
  - EphemeralPrivateKey::compute_public_key
  - EphemeralPrivateKey::algorithm
  - EphemeralPrivateKey::bytes
  - EphemeralPrivateKey::bytes_for_test
  - EphemeralPrivateKey::from_bytes_for_test
  - PublicKey::as_ref
  - PublicKey::fmt
  - PublicKey::algorithm
  - UnparsedPublicKey::as_ref
  - UnparsedPublicKey::fmt
  - UnparsedPublicKey::new
  - UnparsedPublicKey::algorithm
  - UnparsedPublicKey::bytes
  - agree_ephemeral
  - agree_ephemeral_
  source_file: /src/spdm-rs/external/ring/src/agreement.rs
- function_names:
  - Algorithm::hmac_algorithm
  - Algorithm::len
  - Salt::new
  - Salt::extract
  - Salt::algorithm
  - Salt::from
  - Prk::new_less_safe
  - Prk::expand
  - Prk::from
  - Okm::len
  - Okm::fill
  - fill_okm
  source_file: /src/spdm-rs/external/ring/src/hkdf.rs
- function_names:
  - u64_from_usize
  - usize_from_u32
  - usize_from_u64
  - usize_from_u64_saturated
  - tests::test_usize_from_u64_saturated
  source_file: /src/spdm-rs/external/ring/src/polyfill.rs
- function_names:
  - parse_public_key
  source_file: /src/spdm-rs/external/ring/src/rsa.rs
- function_names:
  - test_file
  source_file: /src/spdm-rs/external/ring/src/deprecated_test.rs
- function_names:
  - usize::from
  - LengthMeasurement::zero
  - LengthMeasurement::write_byte
  - LengthMeasurement::write_bytes
  - Writer::with_capacity
  - Box::from
  - Writer::write_byte
  - Writer::write_bytes
  - write_copy
  - TooLongError::new
  source_file: /src/spdm-rs/external/ring/src/io/writer.rs
- function_names:
  - usize::from
  - u8::from
  - Tag::into
  - expect_tag_and_get_value
  - read_tag_and_get_value
  - bit_string_with_no_unused_bits
  - bit_string_tagged_with_no_unused_bits
  - nested
  - nonnegative_integer
  - small_nonnegative_integer
  - positive_integer
  - tests::with_i
  - tests::test_small_nonnegative_integer
  - tests::test_positive_integer
  source_file: /src/spdm-rs/external/ring/src/io/der.rs
- function_names:
  - Positive::from_be_bytes
  - Positive::big_endian_without_leading_zero
  - Positive::big_endian_without_leading_zero_as_input
  - Positive::first_byte
  - tests::test_from_be_bytes
  source_file: /src/spdm-rs/external/ring/src/io/positive.rs
- function_names:
  - write_positive_integer
  - write_all
  - write_tlv
  source_file: /src/spdm-rs/external/ring/src/io/der_writer.rs
- function_names:
  - test_from_byte_len_overflow
  source_file: /src/spdm-rs/external/ring/src/tests/bits_tests.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/tests/mod.rs
- function_names:
  - InputTooLongError::new
  source_file: /src/spdm-rs/external/ring/src/error/input_too_long.rs
- function_names:
  - Unspecified::from
  - Unspecified::from
  - Unspecified::from
  source_file: /src/spdm-rs/external/ring/src/error/into_unspecified.rs
- function_names:
  - erase
  source_file: /src/spdm-rs/external/ring/src/error/mod.rs
- function_names:
  - Unspecified::fmt
  source_file: /src/spdm-rs/external/ring/src/error/unspecified.rs
- function_names:
  - KeyRejected::inconsistent_components
  - KeyRejected::invalid_component
  - KeyRejected::invalid_encoding
  - KeyRejected::rng_failed
  - KeyRejected::public_key_is_missing
  - KeyRejected::too_small
  - KeyRejected::too_large
  - KeyRejected::version_not_supported
  - KeyRejected::wrong_algorithm
  - KeyRejected::private_modulus_len_not_multiple_of_512_bits
  - KeyRejected::unexpected_error
  - KeyRejected::fmt
  source_file: /src/spdm-rs/external/ring/src/error/key_rejected.rs
- function_names:
  - parse_digit
  - limbs_from_hex
  source_file: /src/spdm-rs/external/ring/src/arithmetic/constant.rs
- function_names:
  - bn_mul_mont_ffi
  - bn_mul_mont_ffi
  source_file: /src/spdm-rs/external/ring/src/arithmetic/ffi.rs
- function_names:
  - N0::precalculated
  source_file: /src/spdm-rs/external/ring/src/arithmetic/n0.rs
- function_names:
  - Storage::from
  - Elem::clone_into
  - Elem::is_zero
  - from_montgomery_amm
  - Elem::into_unencoded
  - Elem::from_be_bytes_padded
  - Elem::fill_be_bytes
  - elem_mul_into
  - elem_mul
  - elem_double
  - elem_reduced_once
  - elem_reduced
  - elem_squared
  - elem_widen
  - elem_add
  - elem_sub
  - One::newRR
  - One::newRRR
  - One::as_ref
  - One::clone_into
  - elem_exp_vartime
  - elem_exp_consttime
  - e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::gather
  - e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::power
  - e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::entry
  - e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::entry_mut
  - elem_exp_consttime_inner
  - e::l::e::m::_::e::x::p::_::c::o::n::s::t::t::i::m::e::_::i::n::n::e::r::scatter_powers_of_2
  - elem_exp_consttime_inner
  - verify_inverses_consttime
  - elem_verify_equal_consttime
  - unwrap_impossible_len_mismatch_error
  - unwrap_impossible_limb_slice_error
  - tests::test_elem_exp_consttime
  - tests::test_elem_mul
  - tests::test_elem_squared
  - tests::test_elem_reduced
  - tests::test_elem_reduced_once
  - tests::consume_elem
  - tests::consume_elem_unchecked
  - tests::consume_modulus
  - tests::assert_elem_eq
  - tests::into_encoded
  source_file: /src/spdm-rs/external/ring/src/arithmetic/bigint.rs
- function_names:
  - AliasingSlices2::with_non_dangling_non_null_pointers_ra
  - '&mut [T]::with_potentially_dangling_non_null_pointers_ra'
  - (&mut [T], &[T])::with_potentially_dangling_non_null_pointers_ra
  - AliasingSlices3::with_non_dangling_non_null_pointers_rab
  - '&mut [T]::with_potentially_dangling_non_null_pointers_rab'
  - (&mut [T], &[T], &[T])::with_potentially_dangling_non_null_pointers_rab
  - (RA, &[T])::with_potentially_dangling_non_null_pointers_rab
  source_file: /src/spdm-rs/external/ring/src/arithmetic/inout.rs
- function_names:
  - limbs_mul_mont
  - limbs_from_mont_in_place
  - limbs_mul
  - limbs_square_mont
  - tests::test_mul_add_words
  source_file: /src/spdm-rs/external/ring/src/arithmetic/montgomery.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/arithmetic/limbs/mod.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/arithmetic/limbs/aarch64/mod.rs
- function_names:
  - sqr_mont5
  source_file: /src/spdm-rs/external/ring/src/arithmetic/limbs/aarch64/mont.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mod.rs
- function_names:
  - mul_mont5
  - mul_mont5_4x
  - sqr_mont5
  - scatter5
  - gather5
  - mul_mont_gather5_amm
  - power5_amm
  - check_common
  - check_common_with_n
  source_file: /src/spdm-rs/external/ring/src/arithmetic/limbs/x86_64/mont.rs
- function_names:
  - BoxedLimbs::deref
  - BoxedLimbs::deref_mut
  - BoxedLimbs::clone
  - BoxedLimbs::from_be_bytes_padded_less_than
  - BoxedLimbs::zero
  - BoxedLimbs::into_limbs
  source_file: /src/spdm-rs/external/ring/src/arithmetic/bigint/boxed_limbs.rs
- function_names:
  - OwnedModulus::clone
  - OwnedModulus::from
  - OwnedModulus::to_elem
  - OwnedModulus::modulus
  - OwnedModulus::len_bits
  - OwnedModulus::be_bytes
  - Modulus::oneR
  - Modulus::alloc_zero
  - Modulus::limbs
  - Modulus::n0
  - Modulus::len_bits
  - Modulus::cpu_features
  source_file: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulus.rs
- function_names:
  - PrivateExponent::from_be_bytes_padded
  - PrivateExponent::from_be_bytes_for_test_only
  - PrivateExponent::limbs
  source_file: /src/spdm-rs/external/ring/src/arithmetic/bigint/private_exponent.rs
- function_names:
  - OwnedModulusValue::clone
  - OwnedModulusValue::from_be_bytes
  - OwnedModulusValue::verify_less_than
  - OwnedModulusValue::len_bits
  - OwnedModulusValue::limbs
  source_file: /src/spdm-rs/external/ring/src/arithmetic/bigint/modulusvalue.rs
- function_names:
  - AlignedStorage::zeroed
  - AlignedStorage::aligned_chunks_mut
  source_file: /src/spdm-rs/external/ring/src/arithmetic/limbs512/storage.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/arithmetic/limbs512/mod.rs
- function_names:
  - verify_slices_are_equal
  - xor_16
  - xor_assign
  - xor_assign_at_start
  - tests::leak_in_test
  - tests::test_constant_time
  - tests::constant_time_conditional_memcpy
  - tests::constant_time_conditional_memxor
  - tests::test_bool_mask_bitwise_and_is_logical_and
  source_file: /src/spdm-rs/external/ring/src/bb/mod.rs
- function_names:
  - BoolMask::leak
  - BoolMask::bitand
  source_file: /src/spdm-rs/external/ring/src/bb/boolmask.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/bb/word.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/bb/leaky.rs
- function_names:
  - parity
  - sha1_block_data_order
  - block_data_order
  - step3
  - rotl
  source_file: /src/spdm-rs/external/ring/src/digest/sha1.rs
- function_names:
  - DynState::new32
  - DynState::new64
  - DynState::format_output
  - sha1_block_data_order
  - sha256_block_data_order
  - sha512_block_data_order
  source_file: /src/spdm-rs/external/ring/src/digest/dynstate.rs
- function_names:
  - block_data_order
  - ch
  - maj
  - SIGMA_0
  - SIGMA_1
  - sigma_0
  - sigma_1
  - Wrapping::from_be_bytes
  - Wrapping::rotr
  - Wrapping::zero_w
  - Wrapping::from_be_bytes
  - Wrapping::rotr
  - Wrapping::zero_w
  source_file: /src/spdm-rs/external/ring/src/digest/sha2/fallback.rs
- function_names:
  - block_data_order_32
  source_file: /src/spdm-rs/external/ring/src/digest/sha2/sha2_32.rs
- function_names:
  - sha2_ffi
  - sha2_32_ffi
  - sha2_64_ffi
  - sha2_ffi
  source_file: /src/spdm-rs/external/ring/src/digest/sha2/ffi.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/digest/sha2/mod.rs
- function_names:
  - block_data_order_64
  source_file: /src/spdm-rs/external/ring/src/digest/sha2/sha2_64.rs
- function_names:
  - UnboundKey::new
  - UnboundKey::algorithm
  - UnboundKey::into_inner
  - UnboundKey::fmt
  - UnboundKey::from
  source_file: /src/spdm-rs/external/ring/src/aead/unbound_key.rs
- function_names:
  - Nonce::try_assume_unique_for_key
  - Nonce::assume_unique_for_key
  - Nonce::as_ref
  source_file: /src/spdm-rs/external/ring/src/aead/nonce.rs
- function_names:
  - Key::new
  - Key::encrypt_single_block_with_ctr_0
  - Key::new_mask
  - Key::encrypt
  - Key::words_less_safe
  - Counter::zero_one_less_safe
  - Counter::from_nonce_and_ctr
  - Counter::into_words_less_safe
  - tests::chacha20_test_default
  - tests::chacha20_test_fallback
  - tests::chacha20_test
  - tests::chacha20_test_case_inner
  source_file: /src/spdm-rs/external/ring/src/aead/chacha.rs
- function_names:
  - HeaderProtectionKey::from
  - HeaderProtectionKey::new
  - HeaderProtectionKey::new_mask
  - HeaderProtectionKey::algorithm
  - '&''static Algorithm::len'
  - Algorithm::key_len
  - Algorithm::sample_len
  - Algorithm::eq
  - aes_init_128
  - aes_init_256
  - aes_new_mask
  - chacha20_init
  - chacha20_new_mask
  source_file: /src/spdm-rs/external/ring/src/aead/quic.rs
- function_names:
  - Key::new
  - Context::from_key
  - Context::update_block
  - Context::update
  - Context::update_internal
  - Context::finish
  - sign
  - tests::test_poly1305
  source_file: /src/spdm-rs/external/ring/src/aead/poly1305.rs
- function_names:
  - '&''static Algorithm::len'
  - Algorithm::key_len
  - Algorithm::tag_len
  - Algorithm::nonce_len
  - Algorithm::new_key
  - Algorithm::open_within
  - Algorithm::seal
  - Algorithm::eq
  - aes_gcm_init_128
  - aes_gcm_init_256
  - aes_gcm_seal
  - aes_gcm_open
  - chacha20_poly1305_init
  - chacha20_poly1305_seal
  - chacha20_poly1305_open
  source_file: /src/spdm-rs/external/ring/src/aead/algorithm.rs
- function_names:
  - SealingKey::new
  - SealingKey::seal_in_place
  - OpeningKey::new
  - OpeningKey::decrypt_packet_length
  - OpeningKey::open_in_place
  - Key::new
  - make_nonce
  source_file: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305_openssh.rs
- function_names:
  - SealingKey::new
  - SealingKey::algorithm
  - SealingKey::fmt
  - SealingKey::seal_in_place_append_tag
  - SealingKey::seal_in_place_separate_tag
  source_file: /src/spdm-rs/external/ring/src/aead/sealing_key.rs
- function_names:
  - Key::new
  - Key::encrypt_block
  - Key::new_mask
  - Counter::one
  - Counter::increment
  - Counter::increment_by_less_safe
  - Iv::from
  - encrypt_block_using_encrypt_iv_xor_block
  - encrypt_iv_xor_block_using_encrypt_block
  - encrypt_iv_xor_block_using_ctr32
  - tests::test_aes
  - tests::consume_key
  - aes_gcm_tests::test_aes_gcm_counter_blocks_max
  - aes_gcm_tests::test_aes_gcm_counter_blocks_max_minus_one
  - a::e::s::_::g::c::m::_::t::e::s::t::s::::::::t::e::s::t::_::a::e::s::_::g::c::m::_::c::o::u::n::t::e::r::_::b::l::o::c::k::s::ctr32
  - aes_gcm_tests::test_aes_gcm_counter_blocks
  source_file: /src/spdm-rs/external/ring/src/aead/aes.rs
- function_names:
  - LessSafeKey::new
  - LessSafeKey::new_
  - LessSafeKey::open_in_place_separate_tag
  - LessSafeKey::open_in_place
  - LessSafeKey::open_within
  - LessSafeKey::seal_in_place_append_tag
  - LessSafeKey::seal_in_place_separate_tag
  - LessSafeKey::algorithm
  - LessSafeKey::fmt_debug
  - LessSafeKey::fmt
  source_file: /src/spdm-rs/external/ring/src/aead/less_safe_key.rs
- function_names:
  - Context::new
  - Context::in_out_whole_block_bits
  - Context::inner
  - Context::inner
  - Context::inner
  - Context::update_blocks
  - Context::update_block
  - Context::pre_finish
  source_file: /src/spdm-rs/external/ring/src/aead/gcm.rs
- function_names:
  - shift_full_blocks
  source_file: /src/spdm-rs/external/ring/src/aead/shift.rs
- function_names:
  - OpeningKey::new
  - OpeningKey::algorithm
  - OpeningKey::fmt
  - OpeningKey::open_in_place
  - OpeningKey::open_within
  source_file: /src/spdm-rs/external/ring/src/aead/opening_key.rs
- function_names:
  - Key::new
  - DynKey::new
  - DynKey::new_neon
  - DynKey::new_ssse3
  - DynKey::new_fallback
  - derive_gcm_key_value
  - seal
  - seal_whole_partial
  - seal_strided
  - seal_finish
  - open
  - open_whole_partial
  - open_strided
  - open_finish
  - finish
  source_file: /src/spdm-rs/external/ring/src/aead/aes_gcm.rs
- function_names:
  - State::new_context
  - State::update_internal
  - State::finish
  source_file: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_fallback.rs
- function_names:
  - data_len
  - State::new_context
  - State::update_internal
  - State::finish
  source_file: /src/spdm-rs/external/ring/src/aead/poly1305/ffi_arm_neon.rs
- function_names:
  - Key::new
  - seal
  - seal_fallback
  - open
  - open_fallback
  - check_input_lengths
  - begin
  - finish
  - poly1305_update_padded_16
  source_file: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/mod.rs
- function_names:
  - declare_open
  - declare_seal
  - seal
  - open
  source_file: /src/spdm-rs/external/ring/src/aead/chacha20_poly1305/integrated.rs
- function_names:
  - Key::new
  - Key::encrypt_block
  - Key::encrypt_iv_xor_block
  - Key::ctr32_encrypt_within
  source_file: /src/spdm-rs/external/ring/src/aead/aes/fallback.rs
- function_names:
  - ctr32_encrypt_blocks_with_vpaes_key
  source_file: /src/spdm-rs/external/ring/src/aead/aes/bs.rs
- function_names:
  - AES_KEY::new
  - AES_KEY::derive
  - AES_KEY::rounds
  - set_encrypt_key
  - encrypt_block
  - AES_KEY::encrypt_block
  - ctr32_encrypt_blocks
  - AES_KEY::ctr32_encrypt_blocks
  source_file: /src/spdm-rs/external/ring/src/aead/aes/ffi.rs
- function_names:
  - Key::new
  - Key::new
  - Key::inner_less_safe
  - Key::encrypt_block
  - Key::encrypt_iv_xor_block
  - Key::ctr32_encrypt_within
  source_file: /src/spdm-rs/external/ring/src/aead/aes/hw.rs
- function_names:
  - Key::new
  - Key::encrypt_block
  - Key::encrypt_iv_xor_block
  - Key::ctr32_encrypt_within
  - Key::ctr32_encrypt_within
  - Key::encrypt_block
  - Key::encrypt_iv_xor_block
  - Key::ctr32_encrypt_within
  source_file: /src/spdm-rs/external/ring/src/aead/aes/vp.rs
- function_names:
  - Key::new
  - Key::update_block
  - Key::update_blocks
  - g::c::m::_::m::u::l::6::4::_::n::o::h::w::lo
  - g::c::m::_::m::u::l::6::4::_::n::o::h::w::hi
  - g::c::m::_::m::u::l::6::4::_::n::o::h::w::mul
  - gcm_mul64_nohw
  - g::c::m::_::m::u::l::3::2::_::n::o::h::w::mul
  - gcm_mul32_nohw
  - g::c::m::_::m::u::l::6::4::_::n::o::h::w::lo
  - g::c::m::_::m::u::l::6::4::_::n::o::h::w::hi
  - gcm_mul64_nohw
  - init
  - gcm_polyval_nohw
  - gmult
  - ghash
  - with_swapped_xi
  source_file: /src/spdm-rs/external/ring/src/aead/gcm/fallback.rs
- function_names:
  - Key::new
  - Key::inner
  - Key::update_block
  - Key::update_blocks
  source_file: /src/spdm-rs/external/ring/src/aead/gcm/clmulavxmovbe.rs
- function_names:
  - Key::new
  - Key::inner
  - Key::update_block
  - Key::update_block
  - Key::update_blocks
  source_file: /src/spdm-rs/external/ring/src/aead/gcm/clmul.rs
- function_names:
  - Key::new
  - Key::inner
  - Key::update_block
  source_file: /src/spdm-rs/external/ring/src/aead/gcm/vclmulavx2.rs
- function_names:
  - Key::new
  - Key::update_block
  - Key::update_blocks
  source_file: /src/spdm-rs/external/ring/src/aead/gcm/neon.rs
- function_names:
  - htable_new
  - ghash
  - KeyValue::new
  - KeyValue::into_inner
  - HTable::new
  - HTable::gmult
  - HTable::ghash
  - Xi::bitxor_assign
  source_file: /src/spdm-rs/external/ring/src/aead/gcm/ffi.rs
- function_names:
  - ChaCha20_ctr32
  - chacha_core
  - q::u::a::r::t::e::r::r::o::u::n::d::step
  - quarterround
  source_file: /src/spdm-rs/external/ring/src/aead/chacha/fallback.rs
- function_names:
  - chacha20_ctr32_ffi
  - chacha20_ctr32_ffi
  source_file: /src/spdm-rs/external/ring/src/aead/chacha/ffi.rs
- function_names:
  - Array::new
  - Array::into_unwritten_output
  - Array::input
  source_file: /src/spdm-rs/external/ring/src/aead/overlapping/array.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/aead/overlapping/mod.rs
- function_names:
  - PartialBlock::new
  - PartialBlock::overwrite_at_start
  - PartialBlock::input
  - PartialBlock::len
  source_file: /src/spdm-rs/external/ring/src/aead/overlapping/partial_block.rs
- function_names:
  - Overlapping::from
  - Overlapping::new
  - Overlapping::copy_within
  - Overlapping::into_slice_src_mut
  - Overlapping::into_unwritten_output
  - Overlapping::len
  - Overlapping::input
  - Overlapping::with_input_output_len
  - Overlapping::split_first_chunk
  source_file: /src/spdm-rs/external/ring/src/aead/overlapping/base.rs
- function_names:
  - seal_whole
  - open_whole
  source_file: /src/spdm-rs/external/ring/src/aead/aes_gcm/aarch64.rs
- function_names:
  - seal_whole_vaes_clmul_avx2
  - open_whole_vaes_clmul_avx2
  source_file: /src/spdm-rs/external/ring/src/aead/aes_gcm/vaesclmulavx2.rs
- function_names:
  - seal
  - open
  source_file: /src/spdm-rs/external/ring/src/aead/aes_gcm/aeshwclmulmovbe.rs
- function_names:
  - KeyPair::derive
  - KeyPair::public_key
  - KeyPair::split
  - Seed::generate
  - Seed::from_bytes
  - Seed::bytes_less_safe
  - Seed::compute_public_key
  - PublicKey::as_ref
  source_file: /src/spdm-rs/external/ring/src/ec/keys.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/ec/curve25519.rs
- function_names:
  - verify_affine_point_is_on_the_curve
  - verify_jacobian_point_is_on_the_curve
  - verify_affine_point_is_on_the_curve_scaled
  - key_pair_from_pkcs8
  - key_pair_from_pkcs8_
  - key_pair_from_bytes
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b.rs
- function_names:
  - ecdh
  - ecdh
  - tests::test_agreement_suite_b_ecdh_generate
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/ecdh.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa.rs
- function_names:
  - Point::new_at_infinity
  - CommonOps::elem_modulus
  - CommonOps::scalar_modulus
  - CommonOps::len
  - CommonOps::n_limbs
  - Modulus::cpu
  - Modulus::bytes_len
  - Modulus::add_assign
  - Modulus::elems_are_equal
  - Modulus::elem_unencoded
  - CommonOps::is_zero
  - CommonOps::elem_mul
  - CommonOps::elem_product
  - CommonOps::elem_square
  - CommonOps::elem_squared
  - Modulus::elem_mul
  - Modulus::elem_product
  - Modulus::elem_square
  - Modulus::elem_squared
  - Modulus::is_zero
  - Modulus::elem_verify_is_not_zero
  - Modulus::a
  - Modulus::b
  - PrivateKeyOps::point_sum
  - Modulus::point_x
  - Modulus::point_y
  - Modulus::point_z
  - PrivateKeyOps::leak_limbs
  - PrivateKeyOps::point_mul_base
  - PrivateKeyOps::point_mul
  - PrivateKeyOps::elem_inverse_squared
  - PublicKeyOps::elem_parse
  - ScalarOps::scalar_modulus
  - ScalarOps::scalar_bytes_len
  - ScalarOps::leak_limbs
  - ScalarOps::scalar_product
  - PublicScalarOps::n
  - PublicScalarOps::scalar_as_elem
  - Modulus::elem_less_than_vartime
  - PublicScalarOps::scalar_inv_to_mont_vartime
  - PrivateScalarOps::to_mont
  - PrivateScalarOps::scalar_inv_to_mont
  - twin_mul_inefficient
  - Modulus::elem_reduced_to_scalar
  - elem_sqr_mul
  - elem_sqr_mul_acc
  - elem_parse_big_endian_fixed_consttime
  - scalar_parse_big_endian_fixed_consttime
  - scalar_parse_big_endian_variable
  - scalar_parse_big_endian_partially_reduced_variable_consttime
  - parse_big_endian_fixed_consttime
  - unwrap_impossible_len_mismatch_error
  - tests::q_minus_n_plus_n_equals_0_test
  - tests::p256_q_minus_n_plus_n_equals_0_test
  - tests::p384_q_minus_n_plus_n_equals_0_test
  - tests::p256_elem_add_test
  - tests::p384_elem_add_test
  - tests::elem_add_test
  - tests::p384_elem_sub_test
  - tests::elem_sub_test
  - tests::p384_elem_div_by_2_test
  - tests::elem_div_by_2_test
  - tests::p256_elem_neg_test
  - tests::p384_elem_neg_test
  - tests::elem_neg_test
  - tests::p256_elem_mul_test
  - tests::p384_elem_mul_test
  - tests::elem_mul_test
  - tests::p256_scalar_mul_test
  - tests::p384_scalar_mul_test
  - tests::scalar_mul_test
  - tests::p256_scalar_square_test
  - tests::scalar_square_test
  - tests::p256_scalar_inv_to_mont_zero_panic_test
  - tests::p384_scalar_inv_to_mont_zero_panic_test
  - tests::p256_point_sum_test
  - tests::p384_point_sum_test
  - tests::point_sum_test
  - tests::p256_point_sum_mixed_test
  - tests::point_sum_mixed_test
  - tests::p256_point_double_test
  - tests::p384_point_double_test
  - tests::point_double_test
  - tests::p256_point_mul_test
  - tests::p384_point_mul_test
  - tests::p256_point_mul_serialized_test
  - tests::point_mul_serialized_test
  - tests::p256_point_mul_base_test
  - tests::p384_point_mul_base_test
  - tests::point_mul_base_tests
  - tests::assert_point_actual_equals_expected
  - tests::consume_jacobian_point
  - tests::consume_affine_point
  - tests::consume_point_elem
  - t::e::s::t::s::::::::c::o::n::s::u::m::e::_::p::o::i::n::t::consume_point_elem
  - tests::consume_point
  - tests::assert_elems_are_equal
  - tests::assert_limbs_are_equal
  - tests::consume_elem
  - tests::consume_scalar
  - tests::consume_scalar_mont
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/ops.rs
- function_names:
  - random_scalar
  - generate_private_scalar_bytes
  - private_key_as_scalar
  - check_scalar_big_endian_bytes
  - scalar_from_big_endian_bytes
  - public_from_private
  - affine_from_jacobian
  - big_endian_affine_from_jacobian
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/private_key.rs
- function_names:
  - parse_uncompressed_point
  - tests::parse_uncompressed_point_test
  - tests::public_key_ops_from_curve_name
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/public_key.rs
- function_names:
  - suite_b_curve
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/curve.rs
- function_names:
  - p::2::5::6::_::e::l::e::m::_::i::n::v::_::s::q::u::a::r::e::d::sqr_mul
  - p::2::5::6::_::e::l::e::m::_::i::n::v::_::s::q::u::a::r::e::d::sqr_mul_acc
  - p256_elem_inv_squared
  - p256_point_mul_base_impl
  - twin_mul_nistz256
  - point_mul_base_vartime
  - p::2::5::6::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::mul
  - p::2::5::6::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr
  - p::2::5::6::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mul
  - p::2::5::6::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mul_acc
  - p256_scalar_inv_to_mont
  - tests::p256_point_mul_base_vartime_test
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p256.rs
- function_names:
  - p::3::8::4::_::e::l::e::m::_::i::n::v::_::s::q::u::a::r::e::d::sqr_mul
  - p::3::8::4::_::e::l::e::m::_::i::n::v::_::s::q::u::a::r::e::d::sqr_mul_acc
  - p384_elem_inv_squared
  - p384_point_mul_base_impl
  - p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::mul
  - p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr
  - p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mut
  - p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mul
  - p::3::8::4::_::s::c::a::l::a::r::_::i::n::v::_::t::o::_::m::o::n::t::sqr_mul_acc
  - p384_scalar_inv_to_mont
  - p384_elem_sqr_mont
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/ops/p384.rs
- function_names:
  - NumLimbs::into
  - Elem::from
  - Elem::zero
  - Elem::one
  - PublicElem::from_hex
  - mul_mont
  - binary_op
  - binary_op_assign
  - unary_op
  - unary_op_assign
  - unary_op_from_binary_op_assign
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/ops/elem.rs
- function_names:
  - digest_scalar
  - digest_bytes_scalar
  - digest_scalar_
  - tests::test
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/digest_scalar.rs
- function_names:
  - EcdsaVerificationAlgorithm::verify
  - E::c::d::s::a::V::e::r::i::f::i::c::a::t::i::o::n::A::l::g::o::r::i::t::h::m::::::::v::e::r::i::f::y::_::d::i::g::e::s::t::sig_r_equals_x
  - EcdsaVerificationAlgorithm::verify_digest
  - split_rs_fixed
  - split_rs_asn1
  - tests::test_digest_based_test_vectors
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/verification.rs
- function_names:
  - EcdsaSigningAlgorithm::eq
  - EcdsaKeyPair::generate_pkcs8
  - EcdsaKeyPair::from_pkcs8
  - EcdsaKeyPair::from_private_key_and_public_key
  - EcdsaKeyPair::new
  - EcdsaKeyPair::sign
  - EcdsaKeyPair::sign_with_fixed_nonce_during_test
  - EcdsaKeyPair::sign_digest
  - NonceRandom::fmt
  - NonceRandom::fill_impl
  - NonceRandomKey::new
  - EcdsaKeyPair::public_key
  - PublicKey::as_ref
  - format_rs_fixed
  - f::o::r::m::a::t::_::r::s::_::a::s::n::1::format_integer_tlv
  - format_rs_asn1
  - tests::signature_ecdsa_sign_fixed_test
  - tests::signature_ecdsa_sign_asn1_test
  source_file: /src/spdm-rs/external/ring/src/ec/suite_b/ecdsa/signing.rs
- function_names:
  - eddsa_digest
  source_file: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519.rs
- function_names:
  - x25519_check_private_key_bytes
  - x25519_generate_private_key
  - x25519_public_from_private
  - x::2::5::5::1::9::_::e::c::d::h::scalar_mult
  - x25519_ecdh
  - x25519_neon
  - tests::test_x25519_public_from_private
  source_file: /src/spdm-rs/external/ring/src/ec/curve25519/x25519.rs
- function_names:
  - Elem::zero
  - Elem::negate
  - ExtPoint::from_scalarmult_base
  - ExtPoint::from_encoded_point_vartime
  - ExtPoint::into_encoded_point
  - ExtPoint::invert_vartime
  - Point::new_at_infinity
  - Point::into_encoded_point
  - encode_point
  - has_fe25519_adx
  source_file: /src/spdm-rs/external/ring/src/ec/curve25519/ops.rs
- function_names:
  - Scalar::from_bytes_checked
  - Scalar::from_sha512_digest_reduced
  - MaskedScalar::from_bytes_masked
  - Scalar::from
  source_file: /src/spdm-rs/external/ring/src/ec/curve25519/scalar.rs
- function_names:
  - EdDSAParameters::fmt
  - EdDSAParameters::verify
  source_file: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/verification.rs
- function_names:
  - Ed25519KeyPair::generate_pkcs8
  - Ed25519KeyPair::from_pkcs8
  - Ed25519KeyPair::from_pkcs8_maybe_unchecked
  - Ed25519KeyPair::from_seed_and_public_key
  - Ed25519KeyPair::from_seed_unchecked
  - Ed25519KeyPair::from_seed_
  - Ed25519KeyPair::sign
  - Ed25519KeyPair::public_key
  - PublicKey::as_ref
  - unwrap_pkcs8
  source_file: /src/spdm-rs/external/ring/src/ec/curve25519/ed25519/signing.rs
- function_names: []
  source_file: /src/spdm-rs/external/ring/src/polyfill/notsend.rs
- function_names:
  - from_mut
  - from_ref
  source_file: /src/spdm-rs/external/ring/src/polyfill/ptr.rs
- function_names:
  - split_at_checked
  - split_first_chunk_mut
  source_file: /src/spdm-rs/external/ring/src/polyfill/slice.rs
- function_names:
  - Ref::as_ptr
  - Ref::from_bytes_with_nul_unchecked
  - unwrap_const_from_bytes_with_nul
  - c::o::n::s::t::_::f::r::o::m::_::b::y::t::e::s::_::w::i::t::h::_::n::u::l::const_contains
  - const_from_bytes_with_nul
  source_file: /src/spdm-rs/external/ring/src/polyfill/cstr.rs
- function_names:
  - '[I; 12]::array_split_map'
  - '[I; 16]::array_split_map'
  - '[I; 32]::array_split_map'
  - '[I; 16]::array_split_map'
  source_file: /src/spdm-rs/external/ring/src/polyfill/array_split_map.rs
- function_names:
  - assert_iterator
  - assert_exact_size_iterator
  source_file: /src/spdm-rs/external/ring/src/polyfill/test.rs
- function_names:
  - LeadingZerosStripped::clone
  - LeadingZerosStripped::new
  - LeadingZerosStripped::next
  - LeadingZerosStripped::size_hint
  - tests::test_leading_zeroes_stripped
  source_file: /src/spdm-rs/external/ring/src/polyfill/leading_zeros_skipped.rs
- function_names:
  - unwrap_const
  source_file: /src/spdm-rs/external/ring/src/polyfill/unwrap_const.rs
- function_names:
  - ArrayFlatMap::new
  - ArrayFlatMap::next
  - ArrayFlatMap::size_hint
  - tests::test_array_flat_map
  - tests::test_array_flat_map_len_overflow
  source_file: /src/spdm-rs/external/ring/src/polyfill/array_flat_map.rs
- function_names:
  - cold_exhaustive_error
  source_file: /src/spdm-rs/external/ring/src/polyfill/cold_error.rs
- function_names:
  - overwrite_at_start
  source_file: /src/spdm-rs/external/ring/src/polyfill/sliceutil.rs
- function_names:
  - as_chunks
  - AsChunks::from_ref
  - AsChunks::as_flattened
  - AsChunks::as_ptr
  - AsChunks::is_empty
  - AsChunks::len
  - AsChunks::index
  - AsChunks::into_iter
  - AsChunksIter::next
  - AsChunks::from
  - AsChunks::from
  - AsChunks::from
  source_file: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks.rs
- function_names:
  - as_chunks_mut
  - AsChunksMut::as_flattened
  - AsChunksMut::as_flattened_mut
  - AsChunksMut::as_ptr
  - AsChunksMut::as_ptr
  - AsChunksMut::as_mut_ptr
  - AsChunksMut::as_mut
  - AsChunksMut::as_ref
  - AsChunksMut::chunks_mut
  - AsChunksMut::split_at_mut
  - AsChunksMutChunksMutIter::next
  source_file: /src/spdm-rs/external/ring/src/polyfill/slice/as_chunks_mut.rs
- function_names:
  - OnceNonZeroUsize::new
  - OnceNonZeroUsize::get
  - OnceNonZeroUsize::get_or_init
  - OnceNonZeroUsize::init
  source_file: /src/spdm-rs/external/ring/src/polyfill/once_cell/race.rs
- function_names:
  - featureflags::get_or_init
  - featureflags::get
  - c::p::u::i::d::_::t::o::_::c::a::p::s::_::a::n::d::_::s::e::t::_::c::_::f::l::a::g::s::check
  - c::p::u::i::d::_::t::o::_::c::a::p::s::_::a::n::d::_::s::e::t::_::c::_::f::l::a::g::s::set
  - cpuid_to_caps_and_set_c_flags
  - tests::x86_has_sse2
  source_file: /src/spdm-rs/external/ring/src/cpu/intel.rs
- function_names:
  - f::e::a::t::u::r::e::f::l::a::g::s::::::::g::e::t::_::o::r::_::i::n::i::t::init
  - featureflags::get_or_init
  - featureflags::get
  source_file: /src/spdm-rs/external/ring/src/cpu/arm.rs
- function_names:
  - detect_features
  source_file: /src/spdm-rs/external/ring/src/cpu/arm/fuchsia.rs
- function_names:
  - detect_features
  - detect_features
  - detect_features
  source_file: /src/spdm-rs/external/ring/src/cpu/arm/linux.rs
- function_names:
  - d::e::t::e::c::t::_::f::e::a::t::u::r::e::s::detect_feature
  - detect_features
  - tests::sha512_detection
  source_file: /src/spdm-rs/external/ring/src/cpu/arm/darwin.rs
- function_names:
  - detect_features
  source_file: /src/spdm-rs/external/ring/src/cpu/arm/windows.rs
- function_names:
  - PublicExponent::from_be_bytes
  - PublicExponent::be_bytes
  - PublicExponent::value
  - tests::test_public_exponent_constants
  source_file: /src/spdm-rs/external/ring/src/rsa/public_exponent.rs
- function_names:
  - encode
  - mgf1
  - test::test_pss_padding_verify
  - test::test_pss_padding_encode
  source_file: /src/spdm-rs/external/ring/src/rsa/padding.rs
- function_names:
  - KeyPairComponents::fmt
  source_file: /src/spdm-rs/external/ring/src/rsa/keypair_components.rs
- function_names:
  - KeyPair::from_pkcs8
  - KeyPair::from_der
  - K::e::y::P::a::i::r::::::::f::r::o::m::_::d::e::r::_::r::e::a::d::e::r::nonnegative_integer
  - KeyPair::from_der_reader
  - KeyPair::from_components
  - KeyPair::from_components_
  - KeyPair::public
  - KeyPair::public_modulus_len
  - KeyPair::public_key
  - PrivatePrime::new
  - PrivateCrtPrime::new
  - elem_exp_consttime
  - KeyPair::sign
  - KeyPair::private_exponentiate
  - tests::test_rsakeypair_private_exponentiate
  source_file: /src/spdm-rs/external/ring/src/rsa/keypair.rs
- function_names:
  - RsaParameters::verify
  - rsa_params
  - super::PublicKeyComponents::verify
  - verify_rsa_
  source_file: /src/spdm-rs/external/ring/src/rsa/verification.rs
- function_names:
  - PublicModulus::clone
  - PublicModulus::from_be_bytes
  - PublicModulus::be_bytes
  - PublicModulus::len_bits
  - PublicModulus::value
  - PublicModulus::oneRR
  source_file: /src/spdm-rs/external/ring/src/rsa/public_modulus.rs
- function_names:
  - PublicKey::from_modulus_and_exponent
  - PublicKey::modulus_len
  - PublicKey::inner
  - Inner::from_modulus_and_exponent
  - Inner::n
  - Inner::e
  - Inner::exponentiate
  - Inner::exponentiate_elem
  - PublicKey::as_ref
  - fill_be_bytes_n
  source_file: /src/spdm-rs/external/ring/src/rsa/public_key.rs
- function_names:
  - PublicKeyComponents::fmt
  - PublicKeyComponents::from
  source_file: /src/spdm-rs/external/ring/src/rsa/public_key_components.rs
- function_names:
  - PKCS1::digest_alg
  - PKCS1::encode
  - PKCS1::verify
  - pkcs1_encode
  - rsa_pkcs1_padding
  - pkcs1_digestinfo_prefix
  source_file: /src/spdm-rs/external/ring/src/rsa/padding/pkcs1.rs
- function_names:
  - PSS::digest_alg
  - PSS::encode
  - PSS::verify
  - PSSMetrics::new
  - pss_digest
  - rsa_pss_padding
  source_file: /src/spdm-rs/external/ring/src/rsa/padding/pss.rs
- function_names:
  - digest_shavs::run_known_answer_test
  source_file: /src/spdm-rs/external/ring/cavp/tests/shavs.rs
- function_names:
  - sign
  - verify
  source_file: /src/spdm-rs/external/ring/bench/ecdsa.rs
- function_names:
  - oneshot
  source_file: /src/spdm-rs/external/ring/bench/digest.rs
- function_names:
  - NonceSequence::new
  - NonceSequence::advance
  - seal_in_place_separate_tag
  - open_in_place
  - bench_id
  source_file: /src/spdm-rs/external/ring/bench/aead.rs
- function_names:
  - generate_key
  - compute_public_key
  - agree_ephemeral
  - bench_name
  source_file: /src/spdm-rs/external/ring/bench/agreement.rs
- function_names:
  - verify_case
  - verify
  source_file: /src/spdm-rs/external/ring/bench/rsa.rs
- function_names:
  - enum_builder
  source_file: /src/spdm-rs/codec/src/macros.rs
- function_names:
  - tests::it_works
  source_file: /src/spdm-rs/codec/src/lib.rs
- function_names:
  - Reader::init
  - Reader::rest
  - Reader::take
  - Reader::any_left
  - Reader::left
  - Reader::used
  - Reader::sub
  - Reader::as_ref
  - Writer::init
  - Writer::clear
  - Writer::extend_from_slice
  - Writer::push
  - Writer::left
  - Writer::left_slice
  - Writer::mut_left_slice
  - Writer::used
  - Writer::used_slice
  - Writer::mut_used_slice
  - Codec::read_bytes
  - Codec::read_vec
  - alloc::vec::Vec::encode
  - alloc::vec::Vec::read
  - Option::encode
  - Option::read
  - decode_u8
  - u8::encode
  - u8::read
  - put_u16
  - decode_u16
  - u16::encode
  - u16::read
  - u24::new
  - u24::get
  - u24::decode
  - u24::encode
  - u24::read
  - decode_u32
  - u32::encode
  - u32::read
  - put_u64
  - decode_u64
  - u64::encode
  - u64::read
  - u128::encode
  - u128::read
  - '[T; N]::encode'
  - '[T; N]::read'
  - tests::test_u128
  - tests::test_u64
  - tests::test_u32
  - tests::test_u16
  - tests::test_u24
  - tests::test_u24_max_size
  - tests::test_u8
  - tests::test_case0_rest
  - tests::test_case0_any_left
  - tests::test_case1_any_left
  - tests::test_case0_read_bytes
  - tests::test_case0_sub
  - tests::test_case0_array
  source_file: /src/spdm-rs/codec/src/codec.rs
